@usebruno/filestore 0.8.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("node:worker_threads"),t=require("lodash"),r=require("@usebruno/lang"),s=require("yaml");function n(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var a=n(t),o=n(s);const i=[{type:"authorization",sendIn:"headers",source:"oauth2_additional_parameters_auth_req_headers"},{type:"authorization",sendIn:"queryparams",source:"oauth2_additional_parameters_auth_req_queryparams"},{type:"token",sendIn:"headers",source:"oauth2_additional_parameters_access_token_req_headers"},{type:"token",sendIn:"queryparams",source:"oauth2_additional_parameters_access_token_req_queryparams"},{type:"token",sendIn:"body",source:"oauth2_additional_parameters_access_token_req_bodyvalues"},{type:"refresh",sendIn:"headers",source:"oauth2_additional_parameters_refresh_token_req_headers"},{type:"refresh",sendIn:"queryparams",source:"oauth2_additional_parameters_refresh_token_req_queryparams"},{type:"refresh",sendIn:"body",source:"oauth2_additional_parameters_refresh_token_req_bodyvalues"}],l=(e,t)=>e?.length?e.map((e=>({...e,sendIn:t}))):[],c=(e,t,r)=>{if(!((e,t)=>"authorization"===e?"authorization_code"===t||"implicit"===t:"token"!==e&&"refresh"!==e||"implicit"!==t)(t,r))return[];const s=i.filter((e=>e.type===t)),n=[];for(const t of s){const r=e[t.source],s=l(r,t.sendIn);n.push(...s)}return n},u=(e,t=!1)=>{try{const s=t?e:r.bruToJsonV2(e);let n=a.get(s,"meta.type");switch(n){case"http":default:n="http-request";break;case"graphql":n="graphql-request";break;case"grpc":n="grpc-request";break;case"ws":n="ws-request"}const o=a.get(s,"meta.seq"),i={"grpc-request":"grpc.url","ws-request":"ws.url",default:"http.url"},l={type:n,name:a.get(s,"meta.name"),seq:a.isNaN(o)?1:Number(o),settings:a.get(s,"settings",{}),tags:a.get(s,"meta.tags",[]),request:{method:"grpc-request"===n?a.get(s,"grpc.method",""):String(a.get(s,"http.method")??"").toUpperCase(),url:a.get(s,i[n],a.get(s,i.default)),headers:"grpc-request"===n?a.get(s,"metadata",[]):a.get(s,"headers",[]),auth:a.get(s,"auth",{}),body:a.get(s,"body",{}),script:a.get(s,"script",{}),vars:a.get(s,"vars",{}),assertions:a.get(s,"assertions",[]),tests:a.get(s,"tests",""),docs:a.get(s,"docs","")},examples:a.get(s,"examples",[]).map((e=>d(e,!0,n,a.get(s,"http.method"))))};if("grpc-request"===n){const e=a.get(s,"grpc.methodType");e&&(l.request.methodType=e);const t=a.get(s,"grpc.protoPath");t&&(l.request.protoPath=t),l.request.auth.mode=a.get(s,"grpc.auth","none"),l.request.body=a.get(s,"body",{mode:"grpc",grpc:a.get(s,"body.grpc",[{name:"message 1",content:"{}"}])})}else"ws-request"===n?(l.request.auth.mode=a.get(s,"ws.auth","none"),l.request.body=a.get(s,"body",{mode:"ws",ws:a.get(s,"body.ws",[{name:"message 1",content:"{}"}])})):(l.request.params=a.get(s,"params",[]),l.request.auth.mode=a.get(s,"http.auth","none"),l.request.body.mode=a.get(s,"http.body","none"));const u=s?.auth?.oauth2?.grantType;if(u){const e=(e=>{const t=e.auth.oauth2.grantType,r={};try{const s=["authorization","token","refresh"];for(const n of s){const s=c(e,n,t);s.length>0&&(r[n]=s)}}catch(e){console.error(e),console.error("Error while getting the oauth2 additional parameters!")}return r})(s);Object.keys(e||{}).length>0&&(l.request.auth.oauth2.additionalParameters=e)}return l}catch(e){throw console.log("parseBruRequest error",e),e}},d=(e,t=!1,s,n)=>{try{const o=t?e:r.bruToJsonV2(e),i=s||a.get(o,"meta.type","http"),l=n||a.get(o,"http.method","GET");let c=i;switch(i){case"http":default:c="http-request";break;case"graphql":c="graphql-request";break;case"grpc":c="grpc-request";break;case"ws":c="ws-request"}let u=a.get(o,"response.status","200"),d=a.get(o,"response.statusText","OK");isNaN(Number(u))&&!isNaN(Number(d))&&([u,d]=[d,u]);return{type:c,name:a.get(o,"name"),description:a.get(o,"description",""),request:{method:a.get(o,"request.method")||l,url:a.get(o,"request.url"),headers:a.get(o,"request.headers",[]),body:a.get(o,"request.body",{mode:"none"}),params:a.get(o,"request.params",[])},response:{headers:a.get(o,"response.headers",[]).map((e=>({name:e.name,value:e.value}))),status:Number(u)||200,statusText:d||"OK",body:{type:a.get(o,"response.body.type","json"),content:a.get(o,"response.body.content","")}}}}catch(e){throw console.log("bruExampleToJson error",e),e}},p=e=>{try{return{name:a.get(e,"name"),description:a.get(e,"description",""),request:{method:a.get(e,"request.method"),url:a.get(e,"request.url"),headers:a.get(e,"request.headers",[]),body:a.get(e,"request.body",{}),params:a.get(e,"request.params",[])},response:a.get(e,"response",{})}}catch(e){throw e}},m=["info","http","graphql","grpc","websocket","runtime","settings","examples","docs","items","request"],h=e=>{const t=o.stringify(e,{lineWidth:0,indent:2,minContentWidth:0,defaultStringType:"PLAIN"}).split("\n"),r=[];for(let e=0;e<t.length;e++){const s=t[e];if(e>0&&!s.startsWith(" ")&&!s.startsWith("\t")){const e=s.split(":")[0];m.includes(e)&&r.length>0&&""!==r[r.length-1].trim()&&r.push("")}r.push(s)}return r.join("\n")},{customAlphabet:g}=require("nanoid"),y=e=>"string"==typeof e,f=e=>"number"==typeof e,q=e=>y(e)&&e.trim().length>0,k=(e,t="")=>null==e?t:"string"==typeof e?e:String(e),b=()=>g("useandom26T198340PX75pxJACKVERYMINDBUSHWOLFGQZbfghjklqvwyzrict",21)(),w=e=>"boolean"==typeof e?e:void 0,v=e=>{if(!Array.isArray(e)||0===e.length)return;const t=e.filter((e=>e&&q(e.name))).map((e=>{const t=(e=>{if(y(e))switch(e.trim().toLowerCase()){case"headers":return"header";case"queryparams":return"query";case"body":return"body";default:return}})(e.sendIn);if(!t)return;const r={name:e.name.trim(),placement:t};return q(e.value)&&(r.value=e.value),r})).filter((e=>Boolean(e)));return t.length>0?t:void 0},T=e=>{const t={};return q(e.clientId)&&(t.clientId=e.clientId),q(e.clientSecret)&&(t.clientSecret=e.clientSecret),q(e.credentialsPlacement)&&(t.placement=e.credentialsPlacement),Object.keys(t).length>0?t:void 0},U=e=>{const t={};return q(e.credentialsId)&&(t.id=e.credentialsId),q(e.tokenPlacement)||(t.placement={header:""}),"header"===e.tokenPlacement&&(t.placement={header:e.tokenHeaderPrefix}),"url"===e.tokenPlacement&&(t.placement={query:e.tokenQueryKey}),t.source=e.tokenSource||"access_token",Object.keys(t).length>0?t:void 0},P=e=>{const t=w(e.autoFetchToken),r=w(e.autoRefreshToken),s={};return void 0!==t&&(s.autoFetchToken=t),void 0!==r&&(s.autoRefreshToken=r),Object.keys(s).length>0?s:void 0},x=e=>{const t={type:"oauth2",flow:"resource_owner_password_credentials"};q(e.accessTokenUrl)&&(t.accessTokenUrl=e.accessTokenUrl),q(e.refreshTokenUrl)&&(t.refreshTokenUrl=e.refreshTokenUrl);const r=T(e);r&&(t.credentials=r);const s=(e=>{const t={};return q(e.username)&&(t.username=e.username),q(e.password)&&(t.password=e.password),Object.keys(t).length>0?t:void 0})(e);s&&(t.resourceOwner=s),q(e.scope)&&(t.scope=e.scope);const n=v(e.additionalParameters?.token),a=v(e.additionalParameters?.refresh);(n||a)&&(t.additionalParameters={},n&&(t.additionalParameters.accessTokenRequest=n),a&&(t.additionalParameters.refreshTokenRequest=a));const o=U(e);o&&(t.tokenConfig=o);const i=P(e);return i&&(t.settings=i),t},_=e=>{if(e)switch(e.grantType){case"client_credentials":return(e=>{const t={type:"oauth2",flow:"client_credentials"};q(e.accessTokenUrl)&&(t.accessTokenUrl=e.accessTokenUrl),q(e.refreshTokenUrl)&&(t.refreshTokenUrl=e.refreshTokenUrl);const r=T(e);r&&(t.credentials=r),q(e.scope)&&(t.scope=e.scope);const s=v(e.additionalParameters?.token),n=v(e.additionalParameters?.refresh);(s||n)&&(t.additionalParameters={},s&&(t.additionalParameters.accessTokenRequest=s),n&&(t.additionalParameters.refreshTokenRequest=n));const a=U(e);a&&(t.tokenConfig=a);const o=P(e);return o&&(t.settings=o),t})(e);case"password":return x(e);case"authorization_code":return(e=>{const t={type:"oauth2",flow:"authorization_code"};q(e.authorizationUrl)&&(t.authorizationUrl=e.authorizationUrl),q(e.accessTokenUrl)&&(t.accessTokenUrl=e.accessTokenUrl),q(e.refreshTokenUrl)&&(t.refreshTokenUrl=e.refreshTokenUrl),q(e.callbackUrl)&&(t.callbackUrl=e.callbackUrl);const r=T(e);r&&(t.credentials=r);const s=v(e.additionalParameters?.authorization),n=v(e.additionalParameters?.token),a=v(e.additionalParameters?.refresh);(s||n||a)&&(t.additionalParameters={},s&&(t.additionalParameters.authorizationRequest=s),n&&(t.additionalParameters.accessTokenRequest=n),a&&(t.additionalParameters.refreshTokenRequest=a)),q(e.scope)&&(t.scope=e.scope),q(e.state)&&(t.state=e.state);const o=(e=>{if(null!=e)return e?{}:{disabled:!0}})(e.pkce);o&&(t.pkce=o);const i=U(e);i&&(t.tokenConfig=i);const l=P(e);return l&&(t.settings=l),t})(e);case"implicit":return(e=>{const t={type:"oauth2",flow:"implicit"};q(e.authorizationUrl)&&(t.authorizationUrl=e.authorizationUrl),q(e.callbackUrl)&&(t.callbackUrl=e.callbackUrl),q(e.clientId)&&(t.credentials={clientId:e.clientId}),q(e.scope)&&(t.scope=e.scope),q(e.state)&&(t.state=e.state);const r=v(e.additionalParameters?.authorization);r&&(t.additionalParameters={authorizationRequest:r});const s=U(e);s&&(t.tokenConfig=s);const n=P(e);return n&&(t.settings=n),t})(e);default:return void console.warn(`toOpenCollectionOAuth2: Unsupported OAuth2 grant type "${e.grantType}".`)}},R=e=>{if(!Array.isArray(e)||0===e.length)return null;const t=e.map((e=>{const t=(e=>{if(!e)return null;switch(e){case"header":return"headers";case"query":return"queryparams";case"body":return"body";default:return null}})(e.placement);return{name:e.name||null,value:e.value||null,sendIn:t||"headers",enabled:!0}}));return t.length>0?t:null},C=e=>{if(e&&"none"!==e.mode){if("inherit"===e.mode)return"inherit";switch(e.mode){case"awsv4":return(e=>{const t={type:"awsv4"};return e?(y(e.accessKeyId)&&(t.accessKeyId=e.accessKeyId),y(e.secretAccessKey)&&(t.secretAccessKey=e.secretAccessKey),y(e.sessionToken)&&(t.sessionToken=e.sessionToken),y(e.service)&&(t.service=e.service),y(e.region)&&(t.region=e.region),y(e.profileName)&&(t.profileName=e.profileName),t):t})(e.awsv4);case"basic":return(e=>{const t={type:"basic"};return e?(y(e.username)&&(t.username=e.username),y(e.password)&&(t.password=e.password),t):t})(e.basic);case"bearer":return(e=>{const t={type:"bearer"};return e?(y(e.token)&&(t.token=e.token),t):t})(e.bearer);case"digest":return(e=>{const t={type:"digest"};return e?(y(e.username)&&(t.username=e.username),y(e.password)&&(t.password=e.password),t):t})(e.digest);case"ntlm":return(e=>{const t={type:"ntlm"};return e?(y(e.username)&&(t.username=e.username),y(e.password)&&(t.password=e.password),y(e.domain)&&(t.domain=e.domain),t):t})(e.ntlm);case"wsse":return(e=>{const t={type:"wsse"};return e?(y(e.username)&&(t.username=e.username),y(e.password)&&(t.password=e.password),t):t})(e.wsse);case"apikey":return(e=>{const t={type:"apikey"};return e?(y(e.key)&&(t.key=e.key),y(e.value)&&(t.value=e.value),y(e.placement)&&("header"===e.placement?t.placement="header":"queryparams"===e.placement&&(t.placement="query")),t):t})(e.apikey);case"oauth2":return _(e.oauth2);default:return void console.warn(`toOpenCollectionAuth failed: Unsupported auth mode "${e.mode}".`)}}},I=e=>{const t={mode:"none",awsv4:null,basic:null,bearer:null,digest:null,ntlm:null,oauth2:null,wsse:null,apikey:null};if(!e)return t;if("inherit"===e)return t.mode="inherit",t;switch(e.type){case"awsv4":t.mode="awsv4",t.awsv4={accessKeyId:e.accessKeyId||null,secretAccessKey:e.secretAccessKey||null,sessionToken:e.sessionToken||null,service:e.service||null,region:e.region||null,profileName:e.profileName||null};break;case"basic":t.mode="basic",t.basic={username:e.username||null,password:e.password||null};break;case"bearer":t.mode="bearer",t.bearer={token:e.token||""};break;case"digest":t.mode="digest",t.digest={username:e.username||null,password:e.password||null};break;case"ntlm":t.mode="ntlm",t.ntlm={username:e.username||null,password:e.password||null,domain:e.domain||null};break;case"wsse":t.mode="wsse",t.wsse={username:e.username||null,password:e.password||null};break;case"apikey":t.mode="apikey",t.apikey={key:e.key||null,value:e.value||null,placement:"query"===e.placement?"queryparams":"header"===e.placement?"header":null};break;case"oauth2":t.mode="oauth2",t.oauth2=(e=>{if(!e)return null;const t={grantType:"authorization_code",username:null,password:null,callbackUrl:null,authorizationUrl:null,accessTokenUrl:null,clientId:null,clientSecret:null,scope:null,state:null,pkce:!1,credentialsPlacement:null,credentialsId:null,tokenPlacement:null,tokenHeaderPrefix:null,tokenQueryKey:null,tokenSource:"access_token",refreshTokenUrl:null,autoRefreshToken:!1,autoFetchToken:!0,additionalParameters:null};switch(e.flow){case"client_credentials":if(t.grantType="client_credentials",e.accessTokenUrl&&(t.accessTokenUrl=e.accessTokenUrl),e.refreshTokenUrl&&(t.refreshTokenUrl=e.refreshTokenUrl),e.credentials?.clientId&&(t.clientId=e.credentials.clientId),e.credentials?.clientSecret&&(t.clientSecret=e.credentials.clientSecret),e.credentials?.placement&&(t.credentialsPlacement=e.credentials.placement),e.scope&&(t.scope=e.scope),e.tokenConfig?.id&&(t.credentialsId=e.tokenConfig.id),e.tokenConfig?.source&&(t.tokenSource=e.tokenConfig.source||"access_token"),e.tokenConfig?.placement&&("header"in e.tokenConfig.placement?(t.tokenPlacement="header",t.tokenHeaderPrefix=e.tokenConfig.placement.header||""):"query"in e.tokenConfig.placement&&(t.tokenPlacement="url",t.tokenQueryKey=e.tokenConfig.placement.query||"")),e.additionalParameters){const r={};if(e.additionalParameters.accessTokenRequest){const t=R(e.additionalParameters.accessTokenRequest);t&&(r.token=t)}if(e.additionalParameters.refreshTokenRequest){const t=R(e.additionalParameters.refreshTokenRequest);t&&(r.refresh=t)}Object.keys(r).length>0&&(t.additionalParameters=r)}break;case"resource_owner_password_credentials":if(t.grantType="password",e.accessTokenUrl&&(t.accessTokenUrl=e.accessTokenUrl),e.refreshTokenUrl&&(t.refreshTokenUrl=e.refreshTokenUrl),e.credentials?.clientId&&(t.clientId=e.credentials.clientId),e.credentials?.clientSecret&&(t.clientSecret=e.credentials.clientSecret),e.credentials?.placement&&(t.credentialsPlacement=e.credentials.placement),e.resourceOwner?.username&&(t.username=e.resourceOwner.username),e.resourceOwner?.password&&(t.password=e.resourceOwner.password),e.scope&&(t.scope=e.scope),e.tokenConfig?.id&&(t.credentialsId=e.tokenConfig.id),e.tokenConfig?.source&&(t.tokenSource=e.tokenConfig.source||"access_token"),e.tokenConfig?.placement&&("header"in e.tokenConfig.placement?(t.tokenPlacement="header",t.tokenHeaderPrefix=e.tokenConfig.placement.header||""):"query"in e.tokenConfig.placement&&(t.tokenPlacement="url",t.tokenQueryKey=e.tokenConfig.placement.query||"")),e.additionalParameters){const r={};if(e.additionalParameters.accessTokenRequest){const t=R(e.additionalParameters.accessTokenRequest);t&&(r.token=t)}if(e.additionalParameters.refreshTokenRequest){const t=R(e.additionalParameters.refreshTokenRequest);t&&(r.refresh=t)}Object.keys(r).length>0&&(t.additionalParameters=r)}break;case"authorization_code":if(t.grantType="authorization_code",e.authorizationUrl&&(t.authorizationUrl=e.authorizationUrl),e.accessTokenUrl&&(t.accessTokenUrl=e.accessTokenUrl),e.refreshTokenUrl&&(t.refreshTokenUrl=e.refreshTokenUrl),e.callbackUrl&&(t.callbackUrl=e.callbackUrl),e.credentials?.clientId&&(t.clientId=e.credentials.clientId),e.credentials?.clientSecret&&(t.clientSecret=e.credentials.clientSecret),e.credentials?.placement&&(t.credentialsPlacement=e.credentials.placement),e.scope&&(t.scope=e.scope),e.state&&(t.state=e.state),e.tokenConfig?.id&&(t.credentialsId=e.tokenConfig.id),e.tokenConfig?.source&&(t.tokenSource=e.tokenConfig.source||"access_token"),e.tokenConfig?.placement&&("header"in e.tokenConfig.placement?(t.tokenPlacement="header",t.tokenHeaderPrefix=e.tokenConfig.placement.header||""):"query"in e.tokenConfig.placement&&(t.tokenPlacement="url",t.tokenQueryKey=e.tokenConfig.placement.query||"")),e.additionalParameters){const r={};if(e.additionalParameters.authorizationRequest){const t=R(e.additionalParameters.authorizationRequest);t&&(r.authorization=t)}if(e.additionalParameters.accessTokenRequest){const t=R(e.additionalParameters.accessTokenRequest);t&&(r.token=t)}if(e.additionalParameters.refreshTokenRequest){const t=R(e.additionalParameters.refreshTokenRequest);t&&(r.refresh=t)}Object.keys(r).length>0&&(t.additionalParameters=r)}break;case"implicit":if(t.grantType="implicit",e.authorizationUrl&&(t.authorizationUrl=e.authorizationUrl),e.callbackUrl&&(t.callbackUrl=e.callbackUrl),e.credentials?.clientId&&(t.clientId=e.credentials.clientId),e.scope&&(t.scope=e.scope),e.state&&(t.state=e.state),e.tokenConfig?.id&&(t.credentialsId=e.tokenConfig.id),e.tokenConfig?.source&&(t.tokenSource=e.tokenConfig.source||"access_token"),e.tokenConfig?.placement&&("header"in e.tokenConfig.placement?(t.tokenPlacement="header",t.tokenHeaderPrefix=e.tokenConfig.placement.header||""):"query"in e.tokenConfig.placement&&(t.tokenPlacement="url",t.tokenQueryKey=e.tokenConfig.placement.query||"")),e.additionalParameters){const r={};if(e.additionalParameters.authorizationRequest){const t=R(e.additionalParameters.authorizationRequest);t&&(r.authorization=t)}Object.keys(r).length>0&&(t.additionalParameters=r)}break;default:return null}if(void 0!==e.settings?.autoFetchToken&&(t.autoFetchToken=e.settings.autoFetchToken),void 0!==e.settings?.autoRefreshToken&&(t.autoRefreshToken=e.settings.autoRefreshToken),"authorization_code"===t.grantType&&"authorization_code"===e.flow){const r=e;void 0!==r.pkce&&(t.pkce=!r.pkce.disabled)}return null===t.additionalParameters&&delete t.additionalParameters,t})(e);break;default:console.warn("toBrunoAuth failed: Unsupported auth type")}return t},j=e=>{if(!e?.length)return;const t=e.map((e=>{const t={name:e.name||"",value:e.value||""};return e?.description?.trim().length&&(t.description=e.description),!1===e.enabled&&(t.disabled=!0),t}));return t.length?t:void 0},E=e=>{if(!e?.length)return;const t=e.map((e=>({uid:b(),name:k(e.name),value:k(e.value),enabled:!("disabled"in e)||!0!==e.disabled})));return t.length?t:void 0},z=e=>{if(!e?.length)return;const t=e.map((e=>{const t={name:e.name||"",value:e.value||"",type:e.type};return e?.description?.trim().length&&(t.description=e.description),!1===e.enabled&&(t.disabled=!0),t}));return t.length?t:void 0},N=e=>{if(!e?.length)return;const t=e.map((e=>{const t={uid:b(),name:k(e.name),value:k(e.value),type:e.type,enabled:!0!==e.disabled};return e.description&&("string"==typeof e.description&&e.description.trim().length?t.description=e.description:"object"==typeof e.description&&e.description.content?.trim().length&&(t.description=e.description.content)),t}));return t.length?t:void 0},O=e=>{if(e)switch(e.mode){case"none":case"graphql":default:return;case"json":return{type:"json",data:e.json||""};case"text":return{type:"text",data:e.text||""};case"xml":return{type:"xml",data:e.xml||""};case"sparql":return{type:"sparql",data:e.sparql||""};case"formUrlEncoded":const t=e.formUrlEncoded?.map((e=>{const t={name:e.name||"",value:e.value||""};return e?.description?.trim().length&&(t.description=e.description),!1===e.enabled&&(t.disabled=!0),t}))||[];return{type:"form-urlencoded",...t.length>0&&{data:t}};case"multipartForm":const r=e.multipartForm?.map((e=>{const t={name:e.name||"",type:e.type,value:e.value||("file"===e.type?[]:"")};return e?.contentType?.trim().length&&(t.contentType=e.contentType),e?.description?.trim().length&&(t.description=e.description),!1===e.enabled&&(t.disabled=!0),t}))||[];return{type:"multipart-form",...r.length>0&&{data:r}};case"file":const s=e.file?.map((e=>({filePath:e.filePath||"",contentType:e.contentType||"",selected:e.selected??!1})))||[];return{type:"file",...s.length>0&&{data:s}}}},S=e=>{if(!e)return{mode:"none",json:null,text:null,xml:null,sparql:null,formUrlEncoded:[],multipartForm:[],graphql:null,file:[]};const t={mode:"none",json:null,text:null,xml:null,sparql:null,formUrlEncoded:[],multipartForm:[],graphql:null,file:[]};switch(e.type){case"json":t.mode="json",t.json=e.data||"";break;case"text":t.mode="text",t.text=e.data||"";break;case"xml":t.mode="xml",t.xml=e.data||"";break;case"sparql":t.mode="sparql",t.sparql=e.data||"";break;case"form-urlencoded":t.mode="formUrlEncoded",t.formUrlEncoded=e.data?.map((e=>{const t={uid:b(),name:k(e.name),value:k(e.value),enabled:!0!==e.disabled};return e.description&&("string"==typeof e.description&&e.description.trim().length?t.description=e.description:"object"==typeof e.description&&e.description.content?.trim().length&&(t.description=e.description.content)),t}))||[];break;case"multipart-form":t.mode="multipartForm",t.multipartForm=e.data?.map((e=>{const t={uid:b(),type:e.type,name:k(e.name),value:"file"===e.type?e.value||[]:k(e.value),contentType:e.contentType||null,enabled:!0!==e.disabled};return e.description&&("string"==typeof e.description&&e.description.trim().length?t.description=e.description:"object"==typeof e.description&&e.description.content?.trim().length&&(t.description=e.description.content)),t}))||[];break;case"file":t.mode="file",t.file=e.data?.map((e=>({uid:b(),filePath:e.filePath||"",contentType:e.contentType||"",selected:e.selected??!1})))||[]}return t},A=e=>{const t=e&&"req"in e?e.req:e,r=Array.isArray(t)?t:[];if(!r.length)return;const s=r.map((e=>{const t={name:e.name||"",value:e.value||""};return e?.description?.trim().length&&(t.description=e.description),!1===e.enabled&&(t.disabled=!0),t}));return s.length>0?s:void 0},F=e=>{if(!e?.length)return{req:[],res:[]};const t=[];return e.forEach((e=>{const r={uid:b(),name:k(e.name),value:k(e.value),enabled:!0!==e.disabled,local:!1};e.description&&(r.description="string"==typeof e.description?e.description:e.description?.content||""),t.push(r)})),{req:t,res:[]}},K=e=>{if(!e?.length)return;const t=e.map((e=>{const t={type:"set-variable",phase:"after-response",selector:{expression:e.value||"",method:"jsonq"},variable:{name:e.name||"",scope:e.local?"request":"runtime"}};return e.description?.trim().length&&(t.description=e.description),!1===e.enabled&&(t.disabled=!0),t}));return t.length>0?t:void 0},W=e=>{if(!e?.length)return[];const t=[];return e.forEach((e=>{if("set-variable"===e.type&&"after-response"===e.phase){const r=e,s={uid:b(),name:k(r.variable?.name),value:k(r.selector?.expression),enabled:!0!==r.disabled,local:!1};r.description&&(s.description="string"==typeof r.description?r.description:r.description?.content||""),t.push(s)}})),t},H=e=>{const t=[];return e?.script?.req?.trim().length&&t.push({type:"before-request",code:e.script.req.trim()}),e?.script?.res?.trim().length&&t.push({type:"after-response",code:e.script.res.trim()}),e?.tests?.trim().length&&t.push({type:"tests",code:e.tests.trim()}),t.length>0?t:void 0},Q=e=>{if(!e||!Array.isArray(e)||0===e.length)return;const t={};for(const r of e)"before-request"===r.type&&r.code&&(t.script||(t.script={}),t.script.req=r.code),"after-response"===r.type&&r.code&&(t.script||(t.script={}),t.script.res=r.code),"tests"===r.type&&r.code&&(t.tests=r.code);return Object.keys(t).length>0?t:void 0},B=["eq","neq","gt","gte","lt","lte","in","notIn","contains","notContains","length","matches","notMatches","startsWith","endsWith","between","isEmpty","isNotEmpty","isNull","isUndefined","isDefined","isTruthy","isFalsy","isJson","isNumber","isString","isBoolean","isArray"],G=["isEmpty","isNotEmpty","isNull","isUndefined","isDefined","isTruthy","isFalsy","isJson","isNumber","isString","isBoolean","isArray"],J=e=>{if(!e?.length)return;const t=e.map((e=>{const{operator:t,value:r}=((e="")=>{if(!e||"string"!=typeof e||!e.length)return{operator:"eq",value:e};const[t,...r]=e.trim().split(" "),s=r.join(" ");return G.includes(t)?{operator:t,value:void 0}:B.includes(t)?{operator:t,value:s}:{operator:"eq",value:e}})(e.value||""),s={expression:e.name||"",operator:t,...void 0!==r&&{value:r}};return e?.description?.trim().length&&(s.description=e.description),!1===e.enabled&&(s.disabled=!0),s}));return t.length>0?t:void 0},$=e=>{if(!e?.length)return;const t=e.map((e=>{let t=k(e.operator);void 0!==e.value&&null!==e.value&&(t=`${e.operator} ${k(e.value)}`);const r={uid:b(),name:k(e.expression),value:t,enabled:!0!==e.disabled};return e.description&&("string"==typeof e.description&&e.description.trim().length?r.description=e.description:"object"==typeof e.description&&e.description.content?.trim().length&&(r.description=e.description.content)),r}));return t.length>0?t:void 0},L=e=>{if(!e?.length)return;const t=e.map((e=>({uid:b(),name:k(e.name),value:k(e.value),enabled:!0!==e.disabled})));return t.length?t:void 0},D=e=>{try{const s=(e=>o.parse(e))(e),n=(e=>{const t=e?.info?.type;switch(t){case"http":e.runtime?.auth&&!e.http?.auth&&(e.http.auth=e.runtime.auth);break;case"graphql":e.runtime?.auth&&!e.graphql?.auth&&(e.graphql.auth=e.runtime.auth);break;case"grpc":e.runtime?.auth&&!e.grpc?.auth&&(e.grpc.auth=e.runtime.auth);break;case"websocket":e.runtime?.auth&&!e.websocket?.auth&&(e.websocket.auth=e.runtime.auth)}return e})(s),a="info"in(r=n)&&r.info&&"type"in r.info?r.info.type:"type"in r?r.type:void 0;if(!n||!a)throw new Error("Invalid item: missing type");switch(a){case"http":return(e=>{const t=e.info,r=e.http,s=e.runtime,n={url:k(r?.url),method:k(r?.method,"GET"),headers:E(r?.headers)||[],params:N(r?.params)||[],auth:I(r?.auth),body:S(r?.body)||{mode:"none",json:null,text:null,xml:null,sparql:null,formUrlEncoded:[],multipartForm:[],graphql:null,file:[]},script:{req:null,res:null},vars:{req:[],res:[]},assertions:[],tests:null,docs:null},a=Q(s?.scripts);a?.script&&n.script&&(a.script.req&&(n.script.req=a.script.req),a.script.res&&(n.script.res=a.script.res)),a?.tests&&(n.tests=a.tests);const o=F(s?.variables),i=W(s?.actions);n.vars={req:o.req,res:i};const l=$(s?.assertions);l&&(n.assertions=l),e.docs&&(n.docs=e.docs);const c={uid:b(),type:"http-request",seq:t?.seq||1,name:k(t?.name,"Untitled Request"),tags:t?.tags||[],request:n,settings:null,fileContent:null,root:null,items:[],examples:[],filename:null,pathname:null};if(e.settings){const t={};"boolean"==typeof e.settings.encodeUrl?t.encodeUrl=e.settings.encodeUrl:t.encodeUrl=!0,"number"==typeof e.settings.timeout?t.timeout=e.settings.timeout:"inherit"===e.settings.timeout?t.timeout="inherit":t.timeout=0,"boolean"==typeof e.settings.followRedirects?t.followRedirects=e.settings.followRedirects:t.followRedirects=!0,"number"==typeof e.settings.maxRedirects?t.maxRedirects=e.settings.maxRedirects:t.maxRedirects=5,c.settings=t}return e.examples?.length&&(c.examples=e.examples.map((e=>{const t={uid:b(),itemUid:b(),name:k(e.name,"Untitled Example"),type:"http-request",request:null,response:null};return e.description&&("string"==typeof e.description&&e.description.trim().length?t.description=e.description:"object"==typeof e.description&&e.description.content?.trim().length&&(t.description=e.description.content)),e.request&&(t.request={url:k(e.request.url),method:k(e.request.method,"GET"),headers:E(e.request.headers)||[],params:N(e.request.params)||[],body:S(e.request.body)||{mode:"none",json:null,text:null,xml:null,sparql:null,formUrlEncoded:null,multipartForm:null,graphql:null,file:null}}),e.response&&(t.response={status:"number"==typeof e.response.status?e.response.status:void 0!==e.response.status?Number(e.response.status):null,statusText:e.response.statusText||null,headers:E(e.response.headers)||[],body:null},e.response.body&&(t.response.body={type:e.response.body.type||"text",content:e.response.body.data||""})),t}))),c})(n);case"graphql":return(e=>{const t=e.info,r=e.graphql,s=e.runtime,n={url:k(r?.url),method:k(r?.method,"POST"),headers:E(r?.headers)||[],params:N(r?.params)||[],auth:I(r?.auth),body:{mode:"graphql",json:null,text:null,xml:null,sparql:null,formUrlEncoded:[],multipartForm:[],graphql:{query:r?.body?.query||"",variables:r?.body?.variables||""},file:[]},script:{req:null,res:null},vars:{req:[],res:[]},assertions:[],tests:null,docs:null},a=Q(s?.scripts);a?.script&&n.script&&(a.script.req&&(n.script.req=a.script.req),a.script.res&&(n.script.res=a.script.res)),a?.tests&&(n.tests=a.tests);const o=F(s?.variables),i=W(s?.actions);n.vars={req:o.req,res:i};const l=$(s?.assertions);l&&(n.assertions=l),e.docs&&(n.docs=e.docs);const c={uid:b(),type:"graphql-request",seq:t?.seq||1,name:k(t?.name,"Untitled Request"),tags:t?.tags||[],request:n,settings:null,fileContent:null,root:null,items:[],examples:[],filename:null,pathname:null};if(e.settings){const t={};"boolean"==typeof e.settings.encodeUrl?t.encodeUrl=e.settings.encodeUrl:t.encodeUrl=!0,"number"==typeof e.settings.timeout?t.timeout=e.settings.timeout:"inherit"===e.settings.timeout?t.timeout="inherit":t.timeout=0,"boolean"==typeof e.settings.followRedirects?t.followRedirects=e.settings.followRedirects:t.followRedirects=!0,"number"==typeof e.settings.maxRedirects?t.maxRedirects=e.settings.maxRedirects:t.maxRedirects=5,c.settings=t}return c})(n);case"grpc":return(e=>{const t=e.info,r=e.grpc,s=e.runtime,n={url:k(r?.url),method:k(r?.method),methodType:r?.methodType||"",protoPath:r?.protoFilePath||null,headers:L(r?.metadata)||[],auth:I(r?.auth),body:{mode:"grpc",grpc:[]},script:{req:null,res:null},vars:{req:[],res:[]},assertions:[],tests:null,docs:null};q(r?.message)&&(n.body.grpc=[{name:"",content:r?.message}]);const a=Q(s?.scripts);a?.script&&n.script&&(a.script.req&&(n.script.req=a.script.req),a.script.res&&(n.script.res=a.script.res)),a?.tests&&(n.tests=a.tests);const o=F(s?.variables);n.vars=o;const i=$(s?.assertions);return i&&(n.assertions=i),e.docs&&(n.docs=e.docs),{uid:b(),type:"grpc-request",seq:t?.seq||1,name:k(t?.name,"Untitled Request"),tags:t?.tags||[],request:n,settings:{},fileContent:null,root:null,items:[],examples:[],filename:null,pathname:null}})(n);case"websocket":return(e=>{const t=e.info,r=e.websocket,s=e.runtime,n={url:k(r?.url),headers:E(r?.headers)||[],auth:I(r?.auth),body:{mode:"ws",ws:[]},script:{req:null,res:null},vars:{req:[],res:[]},assertions:[],tests:null,docs:null};if(r?.message){const e=r.message,t=k(e.data);t.trim().length&&(n.body.ws=[{name:"",type:e.type||"text",content:t}])}const a=Q(s?.scripts);a?.script&&n.script&&(a.script.req&&(n.script.req=a.script.req),a.script.res&&(n.script.res=a.script.res)),a?.tests&&(n.tests=a.tests);const o=F(s?.variables);n.vars=o,e.docs&&(n.docs=e.docs);const i={timeout:0,keepAliveInterval:0};return e.settings&&("number"==typeof e.settings.timeout&&(i.timeout=e.settings.timeout),"number"==typeof e.settings.keepAliveInterval&&(i.keepAliveInterval=e.settings.keepAliveInterval)),{uid:b(),type:"ws-request",seq:t?.seq||1,name:k(t?.name,"Untitled Request"),tags:t?.tags||[],request:n,settings:i,fileContent:null,root:null,items:[],examples:[],filename:null,pathname:null}})(n);case"script":return t=n,{uid:b(),type:"js",seq:1,name:"Script",tags:[],request:null,settings:null,fileContent:t.script||"",root:null,items:[],examples:[],filename:null,pathname:null};case"folder":throw new Error("Folder items should be handled separately using parseFolder");default:throw new Error(`Unsupported item type: ${a}`)}}catch(e){throw console.error("Error parsing item:",e),e}var t,r},M=e=>{try{switch(e.type){case"http-request":return(e=>{try{const t={},r=e.request,s={name:q(e.name)?e.name:"Untitled Request",type:"http"};e.seq&&(s.seq=e.seq),e.tags?.length&&(s.tags=e.tags),t.info=s;const n={method:q(r.method)?r.method:"GET",url:q(r.url)?r.url:""},a=j(r.headers);a&&(n.headers=a);const o=z(r.params);o&&(n.params=o);const i=O(r.body);i&&(n.body=i);const l=C(r.auth);l&&(n.auth=l),t.http=n;const c={};let u=!1;const d=A(r.vars);d&&(c.variables=d,u=!0);const p=H(r);p&&(c.scripts=p,u=!0);const m=J(r.assertions);m&&(c.assertions=m,u=!0);const g=r.vars?.res,y=K(g);y&&(c.actions=y,u=!0),u&&(t.runtime=c);const k=e.settings,b={};b.encodeUrl=!0===k?.encodeUrl||!1!==k?.encodeUrl;const w=k?.timeout;f(w)?b.timeout=w:b.timeout=0,b.followRedirects=!0===k?.followRedirects||!1!==k?.followRedirects;const v=k?.maxRedirects;if(f(v)?b.maxRedirects=v:b.maxRedirects=5,t.settings=b,e.examples?.length){const r=e.examples.map((e=>{const t={};if(t.name=e?.name||"Untitled Example",q(e.description)&&(t.description=e.description),e.request){t.request={},t.request.url=e.request.url||"",t.request.method=e.request.method||"GET";const r=j(e.request.headers);r&&(t.request.headers=r);const s=z(e.request.params);s&&(t.request.params=s);const n=O(e.request.body);void 0!==n&&(t.request.body=n)}if(e.response){t.response={};const r=Number(e.response.status);Number.isInteger(r)&&r>0&&(t.response.status=r),q(e.response.statusText)&&(t.response.statusText=e.response.statusText);const s=(e=>{if(!e?.length)return;const t=e.map((e=>({name:e.name||"",value:e.value||""})));return t.length?t:void 0})(e.response.headers);if(s&&(t.response.headers=s),e.response.body&&e.response.body.type&&void 0!==e.response.body.content){const r=e.response.body.content,s="string"==typeof r?r:JSON.stringify(r,null,2);t.response.body={type:e.response.body.type,data:s}}}return t}));r?.length&&(t.examples=r)}return q(r.docs)&&(t.docs=r.docs),h(t)}catch(e){throw console.error("Error stringifying HTTP request:",e),e}})(e);case"graphql-request":return(e=>{try{const t={},r=e.request,s={name:q(e.name)?e.name:"Untitled Request",type:"graphql"};e.seq&&(s.seq=e.seq),e.tags?.length&&(s.tags=e.tags),t.info=s;const n={method:q(r.method)?r.method:"POST",url:q(r.url)?r.url:""},a=j(r.headers);a&&(n.headers=a);const o=z(r.params);if(o&&(n.params=o),"graphql"===r.body?.mode&&r.body.graphql){const e={};let t=!1;q(r.body.graphql.query)&&(e.query=r.body.graphql.query,t=!0),q(r.body.graphql.variables)&&(e.variables=r.body.graphql.variables,t=!0),t&&(n.body=e)}const i=C(r.auth);i&&(n.auth=i),t.graphql=n;const l={};let c=!1;const u=A(r.vars);u&&(l.variables=u,c=!0);const d=H(r);d&&(l.scripts=d,c=!0);const p=J(r.assertions);p&&(l.assertions=p,c=!0);const m=r.vars?.res,g=K(m);g&&(l.actions=g,c=!0),c&&(t.runtime=l);const y=e.settings,k={};k.encodeUrl=!0===y?.encodeUrl||!1!==y?.encodeUrl;const b=y?.timeout;f(b)?k.timeout=b:k.timeout=0,k.followRedirects=!0===y?.followRedirects||!1!==y?.followRedirects;const w=y?.maxRedirects;return f(w)?k.maxRedirects=w:k.maxRedirects=5,t.settings=k,q(r.docs)&&(t.docs=r.docs),h(t)}catch(e){throw console.error("Error stringifying GraphQL request:",e),e}})(e);case"grpc-request":return(e=>{try{const t={},r=e.request,s={name:q(e.name)?e.name:"Untitled Request",type:"grpc"};e.seq&&(s.seq=e.seq),e.tags?.length&&(s.tags=e.tags),t.info=s;const n={url:q(r.url)?r.url:"",method:q(r.method)?r.method:""};if(r.methodType&&(n.methodType=r.methodType),q(r.protoPath)&&(n.protoFilePath=r.protoPath),r.headers?.length){const e=r.headers.map((e=>{const t={name:e.name||"",value:e.value||""};return e?.description?.trim().length&&(t.description=e.description),!1===e.enabled&&(t.disabled=!0),t}));e.length&&(n.metadata=e)}if("grpc"===r.body?.mode&&r.body.grpc?.length){const e=r.body.grpc;if(e.length){const t=e[0].content||"";t.trim().length&&(n.message=t)}}const a=C(r.auth);a&&(n.auth=a),t.grpc=n;const o={};let i=!1;const l=A(r.vars);l&&(o.variables=l,i=!0);const c=H(r);c&&(o.scripts=c,i=!0);const u=J(r.assertions);return u&&(o.assertions=u,i=!0),i&&(t.runtime=o),q(r.docs)&&(t.docs=r.docs),h(t)}catch(e){throw console.error("Error stringifying gRPC request:",e),e}})(e);case"ws-request":return(e=>{try{const t={},r=e.request,s={name:q(e.name)?e.name:"Untitled Request",type:"websocket"};e.seq&&(s.seq=e.seq),e.tags?.length&&(s.tags=e.tags),t.info=s;const n={url:q(r.url)?r.url:""},a=j(r.headers);if(a&&(n.headers=a),"ws"===r.body?.mode&&r.body.ws?.length){const e=r.body.ws;if(e.length){const t=e[0],r={type:t.type||"text",data:t.content||""};r.data.trim().length&&(n.message=r)}}const o=C(r.auth);o&&(n.auth=o),t.websocket=n;const i={};let l=!1;const c=A(r.vars);c&&(i.variables=c,l=!0);const u=H(r);u&&(i.scripts=u,l=!0),l&&(t.runtime=i);const d=e.settings;if(d){t.settings={};const e=Number(d.timeout);t.settings.timeout=isNaN(e)?0:e;const r=Number(d.keepAliveInterval);t.settings.keepAliveInterval=isNaN(r)?0:r}return q(r.docs)&&(t.docs=r.docs),h(t)}catch(e){throw console.error("Error stringifying WebSocket request:",e),e}})(e);case"js":return(e=>{try{const t={type:"script"};return e.fileContent?.trim().length&&(t.script=e.fileContent),h(t)}catch(e){throw console.error("Error stringifying script:",e),e}})(e);case"folder":throw new Error("Folder items should be handled separately using stringifyFolder");default:throw new Error(`Unsupported item type: ${e.type}`)}}catch(e){throw console.error("Error stringifying item:",e),e}},V="yml";e.parentPort?.on("message",(async t=>{try{const{taskType:s,data:n}=t,{data:o,format:i=V}=n;let l;if("parse"===s)l="yml"===i?D(o):u(o);else{if("stringify"!==s)throw new Error(`Unknown task type: ${s}`);l="yml"===i?M(o):(e=>{try{let t=a.get(e,"type");switch(t){case"http-request":default:t="http";break;case"graphql-request":t="graphql";break;case"grpc-request":t="grpc";break;case"ws-request":t="ws"}const s=a.get(e,"seq"),n={meta:{name:a.get(e,"name"),type:t,seq:a.isNaN(s)?1:Number(s),tags:a.get(e,"tags",[])}};if("http"===t||"graphql"===t)n.http={method:String(a.get(e,"request.method")??"").toLowerCase(),url:a.get(e,"request.url"),auth:a.get(e,"request.auth.mode","none"),body:a.get(e,"request.body.mode","none")},n.params=a.get(e,"request.params",[]),n.body=a.get(e,"request.body",{mode:"json",json:"{}"});else if("grpc"===t){n.grpc={url:a.get(e,"request.url"),auth:a.get(e,"request.auth.mode","none"),body:a.get(e,"request.body.mode","grpc")};const t=a.get(e,"request.method"),r=a.get(e,"request.methodType"),s=a.get(e,"request.protoPath");t&&(n.grpc.method=t),r&&(n.grpc.methodType=r),s&&(n.grpc.protoPath=s),n.body=a.get(e,"request.body",{mode:"grpc",grpc:a.get(e,"request.body.grpc",[{name:"message 1",content:"{}"}])})}else"ws"===t&&(n.ws={url:a.get(e,"request.url"),auth:a.get(e,"request.auth.mode","none"),body:a.get(e,"request.body.mode","ws")},n.body=a.get(e,"request.body",{mode:"ws",ws:a.get(e,"request.body.ws",[{name:"message 1",content:"{}"}])}));return"grpc"===t?n.metadata=a.get(e,"request.headers",[]):n.headers=a.get(e,"request.headers",[]),n.auth=a.get(e,"request.auth",{}),n.script=a.get(e,"request.script",{}),n.vars={req:a.get(e,"request.vars.req",[]),res:a.get(e,"request.vars.res",[])},n.assertions=a.get(e,"request.assertions",[]),n.tests=a.get(e,"request.tests",""),n.settings=a.get(e,"settings",{}),n.docs=a.get(e,"request.docs",""),n.examples=a.get(e,"examples",[]).map((e=>p(e))),r.jsonToBruV2(n)}catch(e){throw e}})(o)}e.parentPort?.postMessage(l)}catch(t){console.error("Worker error:",t),e.parentPort?.postMessage({error:t?.message})}}));
1
+ "use strict";var e=require("node:worker_threads"),t=require("lodash"),r=require("@usebruno/lang"),s=require("yaml");function n(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var a=n(t),o=n(s);const i=[{type:"authorization",sendIn:"headers",source:"oauth2_additional_parameters_auth_req_headers"},{type:"authorization",sendIn:"queryparams",source:"oauth2_additional_parameters_auth_req_queryparams"},{type:"token",sendIn:"headers",source:"oauth2_additional_parameters_access_token_req_headers"},{type:"token",sendIn:"queryparams",source:"oauth2_additional_parameters_access_token_req_queryparams"},{type:"token",sendIn:"body",source:"oauth2_additional_parameters_access_token_req_bodyvalues"},{type:"refresh",sendIn:"headers",source:"oauth2_additional_parameters_refresh_token_req_headers"},{type:"refresh",sendIn:"queryparams",source:"oauth2_additional_parameters_refresh_token_req_queryparams"},{type:"refresh",sendIn:"body",source:"oauth2_additional_parameters_refresh_token_req_bodyvalues"}],l=(e,t)=>e?.length?e.map((e=>({...e,sendIn:t}))):[],c=(e,t,r)=>{if(!((e,t)=>"authorization"===e?"authorization_code"===t||"implicit"===t:"token"!==e&&"refresh"!==e||"implicit"!==t)(t,r))return[];const s=i.filter((e=>e.type===t)),n=[];for(const t of s){const r=e[t.source],s=l(r,t.sendIn);n.push(...s)}return n},u=(e,t=!1)=>{try{const s=t?e:r.bruToJsonV2(e);let n=a.get(s,"meta.type");switch(n){case"http":default:n="http-request";break;case"graphql":n="graphql-request";break;case"grpc":n="grpc-request";break;case"ws":n="ws-request"}const o=a.get(s,"meta.seq"),i=a.get(s,"meta.tags",[]),l={"grpc-request":"grpc.url","ws-request":"ws.url",default:"http.url"},u={type:n,name:a.get(s,"meta.name"),seq:a.isNaN(o)?1:Number(o),settings:a.get(s,"settings",{}),tags:Array.isArray(i)?i:[],request:{method:"grpc-request"===n?a.get(s,"grpc.method",""):String(a.get(s,"http.method")??"").toUpperCase(),url:a.get(s,l[n],a.get(s,l.default)),headers:"grpc-request"===n?a.get(s,"metadata",[]):a.get(s,"headers",[]),auth:a.get(s,"auth",{}),body:a.get(s,"body",{}),script:a.get(s,"script",{}),vars:a.get(s,"vars",{}),assertions:a.get(s,"assertions",[]),tests:a.get(s,"tests",""),docs:a.get(s,"docs","")},examples:a.get(s,"examples",[]).map((e=>d(e,!0,n,a.get(s,"http.method"))))};if("grpc-request"===n){const e=a.get(s,"grpc.methodType");e&&(u.request.methodType=e);const t=a.get(s,"grpc.protoPath");t&&(u.request.protoPath=t),u.request.auth.mode=a.get(s,"grpc.auth","none"),u.request.body=a.get(s,"body",{mode:"grpc",grpc:a.get(s,"body.grpc",[{name:"message 1",content:"{}"}])})}else"ws-request"===n?(u.request.auth.mode=a.get(s,"ws.auth","none"),u.request.body=a.get(s,"body",{mode:"ws",ws:a.get(s,"body.ws",[{name:"message 1",content:"{}"}])})):(u.request.params=a.get(s,"params",[]),u.request.auth.mode=a.get(s,"http.auth","none"),u.request.body.mode=a.get(s,"http.body","none"));const p=s?.auth?.oauth2?.grantType;if(p){const e=(e=>{const t=e.auth.oauth2.grantType,r={};try{const s=["authorization","token","refresh"];for(const n of s){const s=c(e,n,t);s.length>0&&(r[n]=s)}}catch(e){console.error(e),console.error("Error while getting the oauth2 additional parameters!")}return r})(s);Object.keys(e||{}).length>0&&(u.request.auth.oauth2.additionalParameters=e)}return u}catch(e){throw console.log("parseBruRequest error",e),e}},d=(e,t=!1,s,n)=>{try{const o=t?e:r.bruToJsonV2(e),i=s||a.get(o,"meta.type","http"),l=n||a.get(o,"http.method","GET");let c=i;switch(i){case"http":default:c="http-request";break;case"graphql":c="graphql-request";break;case"grpc":c="grpc-request";break;case"ws":c="ws-request"}let u=a.get(o,"response.status","200"),d=a.get(o,"response.statusText","OK");isNaN(Number(u))&&!isNaN(Number(d))&&([u,d]=[d,u]);return{type:c,name:a.get(o,"name"),description:a.get(o,"description",""),request:{method:a.get(o,"request.method")||l,url:a.get(o,"request.url"),headers:a.get(o,"request.headers",[]),body:a.get(o,"request.body",{mode:"none"}),params:a.get(o,"request.params",[])},response:{headers:a.get(o,"response.headers",[]).map((e=>({name:e.name,value:e.value}))),status:Number(u)||200,statusText:d||"OK",body:{type:a.get(o,"response.body.type","json"),content:a.get(o,"response.body.content","")}}}}catch(e){throw console.log("bruExampleToJson error",e),e}},p=e=>{try{return{name:a.get(e,"name"),description:a.get(e,"description",""),request:{method:a.get(e,"request.method"),url:a.get(e,"request.url"),headers:a.get(e,"request.headers",[]),body:a.get(e,"request.body",{}),params:a.get(e,"request.params",[])},response:a.get(e,"response",{})}}catch(e){throw e}},m=["info","http","graphql","grpc","websocket","runtime","settings","examples","docs","items","request"],h=e=>{const t=o.stringify(e,{lineWidth:0,indent:2,minContentWidth:0,defaultStringType:"PLAIN"}).split("\n"),r=[];for(let e=0;e<t.length;e++){const s=t[e];if(e>0&&!s.startsWith(" ")&&!s.startsWith("\t")){const e=s.split(":")[0];m.includes(e)&&r.length>0&&""!==r[r.length-1].trim()&&r.push("")}r.push(s)}return r.join("\n")},{customAlphabet:g}=require("nanoid"),y=e=>"string"==typeof e,f=e=>"number"==typeof e,q=e=>y(e)&&e.trim().length>0,k=(e,t="")=>null==e?t:"string"==typeof e?e:String(e),b=()=>g("useandom26T198340PX75pxJACKVERYMINDBUSHWOLFGQZbfghjklqvwyzrict",21)(),v=e=>"boolean"==typeof e?e:void 0,w=e=>{if(!Array.isArray(e)||0===e.length)return;const t=e.filter((e=>e&&q(e.name))).map((e=>{const t=(e=>{if(y(e))switch(e.trim().toLowerCase()){case"headers":return"header";case"queryparams":return"query";case"body":return"body";default:return}})(e.sendIn);if(!t)return;const r={name:e.name.trim(),placement:t};return q(e.value)&&(r.value=e.value),r})).filter((e=>Boolean(e)));return t.length>0?t:void 0},T=e=>{const t={};return q(e.clientId)&&(t.clientId=e.clientId),q(e.clientSecret)&&(t.clientSecret=e.clientSecret),q(e.credentialsPlacement)&&(t.placement=e.credentialsPlacement),Object.keys(t).length>0?t:void 0},U=e=>{const t={};return q(e.credentialsId)&&(t.id=e.credentialsId),q(e.tokenPlacement)||(t.placement={header:""}),"header"===e.tokenPlacement&&(t.placement={header:e.tokenHeaderPrefix}),"url"===e.tokenPlacement&&(t.placement={query:e.tokenQueryKey}),t.source=e.tokenSource||"access_token",Object.keys(t).length>0?t:void 0},P=e=>{const t=v(e.autoFetchToken),r=v(e.autoRefreshToken),s={};return void 0!==t&&(s.autoFetchToken=t),void 0!==r&&(s.autoRefreshToken=r),Object.keys(s).length>0?s:void 0},x=e=>{const t={type:"oauth2",flow:"resource_owner_password_credentials"};q(e.accessTokenUrl)&&(t.accessTokenUrl=e.accessTokenUrl),q(e.refreshTokenUrl)&&(t.refreshTokenUrl=e.refreshTokenUrl);const r=T(e);r&&(t.credentials=r);const s=(e=>{const t={};return q(e.username)&&(t.username=e.username),q(e.password)&&(t.password=e.password),Object.keys(t).length>0?t:void 0})(e);s&&(t.resourceOwner=s),q(e.scope)&&(t.scope=e.scope);const n=w(e.additionalParameters?.token),a=w(e.additionalParameters?.refresh);(n||a)&&(t.additionalParameters={},n&&(t.additionalParameters.accessTokenRequest=n),a&&(t.additionalParameters.refreshTokenRequest=a));const o=U(e);o&&(t.tokenConfig=o);const i=P(e);return i&&(t.settings=i),t},_=e=>{if(e)switch(e.grantType){case"client_credentials":return(e=>{const t={type:"oauth2",flow:"client_credentials"};q(e.accessTokenUrl)&&(t.accessTokenUrl=e.accessTokenUrl),q(e.refreshTokenUrl)&&(t.refreshTokenUrl=e.refreshTokenUrl);const r=T(e);r&&(t.credentials=r),q(e.scope)&&(t.scope=e.scope);const s=w(e.additionalParameters?.token),n=w(e.additionalParameters?.refresh);(s||n)&&(t.additionalParameters={},s&&(t.additionalParameters.accessTokenRequest=s),n&&(t.additionalParameters.refreshTokenRequest=n));const a=U(e);a&&(t.tokenConfig=a);const o=P(e);return o&&(t.settings=o),t})(e);case"password":return x(e);case"authorization_code":return(e=>{const t={type:"oauth2",flow:"authorization_code"};q(e.authorizationUrl)&&(t.authorizationUrl=e.authorizationUrl),q(e.accessTokenUrl)&&(t.accessTokenUrl=e.accessTokenUrl),q(e.refreshTokenUrl)&&(t.refreshTokenUrl=e.refreshTokenUrl),q(e.callbackUrl)&&(t.callbackUrl=e.callbackUrl);const r=T(e);r&&(t.credentials=r);const s=w(e.additionalParameters?.authorization),n=w(e.additionalParameters?.token),a=w(e.additionalParameters?.refresh);(s||n||a)&&(t.additionalParameters={},s&&(t.additionalParameters.authorizationRequest=s),n&&(t.additionalParameters.accessTokenRequest=n),a&&(t.additionalParameters.refreshTokenRequest=a)),q(e.scope)&&(t.scope=e.scope),q(e.state)&&(t.state=e.state);const o=(e=>{if(null!=e)return e?{}:{disabled:!0}})(e.pkce);o&&(t.pkce=o);const i=U(e);i&&(t.tokenConfig=i);const l=P(e);return l&&(t.settings=l),t})(e);case"implicit":return(e=>{const t={type:"oauth2",flow:"implicit"};q(e.authorizationUrl)&&(t.authorizationUrl=e.authorizationUrl),q(e.callbackUrl)&&(t.callbackUrl=e.callbackUrl),q(e.clientId)&&(t.credentials={clientId:e.clientId}),q(e.scope)&&(t.scope=e.scope),q(e.state)&&(t.state=e.state);const r=w(e.additionalParameters?.authorization);r&&(t.additionalParameters={authorizationRequest:r});const s=U(e);s&&(t.tokenConfig=s);const n=P(e);return n&&(t.settings=n),t})(e);default:return void console.warn(`toOpenCollectionOAuth2: Unsupported OAuth2 grant type "${e.grantType}".`)}},R=e=>{if(!Array.isArray(e)||0===e.length)return null;const t=e.map((e=>{const t=(e=>{if(!e)return null;switch(e){case"header":return"headers";case"query":return"queryparams";case"body":return"body";default:return null}})(e.placement);return{name:e.name||null,value:e.value||null,sendIn:t||"headers",enabled:!0}}));return t.length>0?t:null},C=e=>{if(e&&"none"!==e.mode){if("inherit"===e.mode)return"inherit";switch(e.mode){case"awsv4":return(e=>{const t={type:"awsv4"};return e?(y(e.accessKeyId)&&(t.accessKeyId=e.accessKeyId),y(e.secretAccessKey)&&(t.secretAccessKey=e.secretAccessKey),y(e.sessionToken)&&(t.sessionToken=e.sessionToken),y(e.service)&&(t.service=e.service),y(e.region)&&(t.region=e.region),y(e.profileName)&&(t.profileName=e.profileName),t):t})(e.awsv4);case"basic":return(e=>{const t={type:"basic"};return e?(y(e.username)&&(t.username=e.username),y(e.password)&&(t.password=e.password),t):t})(e.basic);case"bearer":return(e=>{const t={type:"bearer"};return e?(y(e.token)&&(t.token=e.token),t):t})(e.bearer);case"digest":return(e=>{const t={type:"digest"};return e?(y(e.username)&&(t.username=e.username),y(e.password)&&(t.password=e.password),t):t})(e.digest);case"ntlm":return(e=>{const t={type:"ntlm"};return e?(y(e.username)&&(t.username=e.username),y(e.password)&&(t.password=e.password),y(e.domain)&&(t.domain=e.domain),t):t})(e.ntlm);case"wsse":return(e=>{const t={type:"wsse"};return e?(y(e.username)&&(t.username=e.username),y(e.password)&&(t.password=e.password),t):t})(e.wsse);case"apikey":return(e=>{const t={type:"apikey"};return e?(y(e.key)&&(t.key=e.key),y(e.value)&&(t.value=e.value),y(e.placement)&&("header"===e.placement?t.placement="header":"queryparams"===e.placement&&(t.placement="query")),t):t})(e.apikey);case"oauth1":return(e=>{const t={type:"oauth1"};return e?(y(e.consumerKey)&&(t.consumerKey=e.consumerKey),y(e.consumerSecret)&&(t.consumerSecret=e.consumerSecret),y(e.accessToken)&&(t.accessToken=e.accessToken),y(e.accessTokenSecret)&&(t.accessTokenSecret=e.accessTokenSecret),y(e.callbackUrl)&&(t.callbackUrl=e.callbackUrl),y(e.verifier)&&(t.verifier=e.verifier),y(e.signatureMethod)&&(t.signatureMethod=e.signatureMethod),y(e.privateKey)&&(t.privateKey="file"===e.privateKeyType?{type:"file",value:e.privateKey}:{type:"text",value:e.privateKey}),y(e.timestamp)&&(t.timestamp=e.timestamp),y(e.nonce)&&(t.nonce=e.nonce),y(e.version)&&(t.version=e.version),y(e.realm)&&(t.realm=e.realm),y(e.placement)&&(t.placement=e.placement),"boolean"==typeof e.includeBodyHash&&(t.includeBodyHash=e.includeBodyHash),t):t})(e.oauth1);case"oauth2":return _(e.oauth2);default:return void console.warn(`toOpenCollectionAuth failed: Unsupported auth mode "${e.mode}".`)}}},I=e=>{const t={mode:"none",awsv4:null,basic:null,bearer:null,digest:null,ntlm:null,oauth2:null,wsse:null,apikey:null};if(!e)return t;if("inherit"===e)return t.mode="inherit",t;switch(e.type){case"awsv4":t.mode="awsv4",t.awsv4={accessKeyId:e.accessKeyId||null,secretAccessKey:e.secretAccessKey||null,sessionToken:e.sessionToken||null,service:e.service||null,region:e.region||null,profileName:e.profileName||null};break;case"basic":t.mode="basic",t.basic={username:e.username||null,password:e.password||null};break;case"bearer":t.mode="bearer",t.bearer={token:e.token||""};break;case"digest":t.mode="digest",t.digest={username:e.username||null,password:e.password||null};break;case"ntlm":t.mode="ntlm",t.ntlm={username:e.username||null,password:e.password||null,domain:e.domain||null};break;case"wsse":t.mode="wsse",t.wsse={username:e.username||null,password:e.password||null};break;case"apikey":t.mode="apikey",t.apikey={key:e.key||null,value:e.value||null,placement:"query"===e.placement?"queryparams":"header"===e.placement?"header":null};break;case"oauth1":t.mode="oauth1",t.oauth1={consumerKey:e.consumerKey||null,consumerSecret:e.consumerSecret||null,accessToken:e.accessToken||null,accessTokenSecret:e.accessTokenSecret||null,callbackUrl:e.callbackUrl||null,verifier:e.verifier||null,signatureMethod:e.signatureMethod||"HMAC-SHA1",privateKey:("object"==typeof e.privateKey&&e.privateKey?e.privateKey.value:e.privateKey)||null,privateKeyType:"object"==typeof e.privateKey&&e.privateKey?e.privateKey.type:"text",timestamp:e.timestamp||null,nonce:e.nonce||null,version:e.version||"1.0",realm:e.realm||null,placement:e.placement||"header",includeBodyHash:e.includeBodyHash||!1};break;case"oauth2":t.mode="oauth2",t.oauth2=(e=>{if(!e)return null;const t={grantType:"authorization_code",username:null,password:null,callbackUrl:null,authorizationUrl:null,accessTokenUrl:null,clientId:null,clientSecret:null,scope:null,state:null,pkce:!1,credentialsPlacement:null,credentialsId:null,tokenPlacement:null,tokenHeaderPrefix:null,tokenQueryKey:null,tokenSource:"access_token",refreshTokenUrl:null,autoRefreshToken:!1,autoFetchToken:!0,additionalParameters:null};switch(e.flow){case"client_credentials":if(t.grantType="client_credentials",e.accessTokenUrl&&(t.accessTokenUrl=e.accessTokenUrl),e.refreshTokenUrl&&(t.refreshTokenUrl=e.refreshTokenUrl),e.credentials?.clientId&&(t.clientId=e.credentials.clientId),e.credentials?.clientSecret&&(t.clientSecret=e.credentials.clientSecret),e.credentials?.placement&&(t.credentialsPlacement=e.credentials.placement),e.scope&&(t.scope=e.scope),e.tokenConfig?.id&&(t.credentialsId=e.tokenConfig.id),e.tokenConfig?.source&&(t.tokenSource=e.tokenConfig.source||"access_token"),e.tokenConfig?.placement&&("header"in e.tokenConfig.placement?(t.tokenPlacement="header",t.tokenHeaderPrefix=e.tokenConfig.placement.header||""):"query"in e.tokenConfig.placement&&(t.tokenPlacement="url",t.tokenQueryKey=e.tokenConfig.placement.query||"")),e.additionalParameters){const r={};if(e.additionalParameters.accessTokenRequest){const t=R(e.additionalParameters.accessTokenRequest);t&&(r.token=t)}if(e.additionalParameters.refreshTokenRequest){const t=R(e.additionalParameters.refreshTokenRequest);t&&(r.refresh=t)}Object.keys(r).length>0&&(t.additionalParameters=r)}break;case"resource_owner_password_credentials":if(t.grantType="password",e.accessTokenUrl&&(t.accessTokenUrl=e.accessTokenUrl),e.refreshTokenUrl&&(t.refreshTokenUrl=e.refreshTokenUrl),e.credentials?.clientId&&(t.clientId=e.credentials.clientId),e.credentials?.clientSecret&&(t.clientSecret=e.credentials.clientSecret),e.credentials?.placement&&(t.credentialsPlacement=e.credentials.placement),e.resourceOwner?.username&&(t.username=e.resourceOwner.username),e.resourceOwner?.password&&(t.password=e.resourceOwner.password),e.scope&&(t.scope=e.scope),e.tokenConfig?.id&&(t.credentialsId=e.tokenConfig.id),e.tokenConfig?.source&&(t.tokenSource=e.tokenConfig.source||"access_token"),e.tokenConfig?.placement&&("header"in e.tokenConfig.placement?(t.tokenPlacement="header",t.tokenHeaderPrefix=e.tokenConfig.placement.header||""):"query"in e.tokenConfig.placement&&(t.tokenPlacement="url",t.tokenQueryKey=e.tokenConfig.placement.query||"")),e.additionalParameters){const r={};if(e.additionalParameters.accessTokenRequest){const t=R(e.additionalParameters.accessTokenRequest);t&&(r.token=t)}if(e.additionalParameters.refreshTokenRequest){const t=R(e.additionalParameters.refreshTokenRequest);t&&(r.refresh=t)}Object.keys(r).length>0&&(t.additionalParameters=r)}break;case"authorization_code":if(t.grantType="authorization_code",e.authorizationUrl&&(t.authorizationUrl=e.authorizationUrl),e.accessTokenUrl&&(t.accessTokenUrl=e.accessTokenUrl),e.refreshTokenUrl&&(t.refreshTokenUrl=e.refreshTokenUrl),e.callbackUrl&&(t.callbackUrl=e.callbackUrl),e.credentials?.clientId&&(t.clientId=e.credentials.clientId),e.credentials?.clientSecret&&(t.clientSecret=e.credentials.clientSecret),e.credentials?.placement&&(t.credentialsPlacement=e.credentials.placement),e.scope&&(t.scope=e.scope),e.state&&(t.state=e.state),e.tokenConfig?.id&&(t.credentialsId=e.tokenConfig.id),e.tokenConfig?.source&&(t.tokenSource=e.tokenConfig.source||"access_token"),e.tokenConfig?.placement&&("header"in e.tokenConfig.placement?(t.tokenPlacement="header",t.tokenHeaderPrefix=e.tokenConfig.placement.header||""):"query"in e.tokenConfig.placement&&(t.tokenPlacement="url",t.tokenQueryKey=e.tokenConfig.placement.query||"")),e.additionalParameters){const r={};if(e.additionalParameters.authorizationRequest){const t=R(e.additionalParameters.authorizationRequest);t&&(r.authorization=t)}if(e.additionalParameters.accessTokenRequest){const t=R(e.additionalParameters.accessTokenRequest);t&&(r.token=t)}if(e.additionalParameters.refreshTokenRequest){const t=R(e.additionalParameters.refreshTokenRequest);t&&(r.refresh=t)}Object.keys(r).length>0&&(t.additionalParameters=r)}break;case"implicit":if(t.grantType="implicit",e.authorizationUrl&&(t.authorizationUrl=e.authorizationUrl),e.callbackUrl&&(t.callbackUrl=e.callbackUrl),e.credentials?.clientId&&(t.clientId=e.credentials.clientId),e.scope&&(t.scope=e.scope),e.state&&(t.state=e.state),e.tokenConfig?.id&&(t.credentialsId=e.tokenConfig.id),e.tokenConfig?.source&&(t.tokenSource=e.tokenConfig.source||"access_token"),e.tokenConfig?.placement&&("header"in e.tokenConfig.placement?(t.tokenPlacement="header",t.tokenHeaderPrefix=e.tokenConfig.placement.header||""):"query"in e.tokenConfig.placement&&(t.tokenPlacement="url",t.tokenQueryKey=e.tokenConfig.placement.query||"")),e.additionalParameters){const r={};if(e.additionalParameters.authorizationRequest){const t=R(e.additionalParameters.authorizationRequest);t&&(r.authorization=t)}Object.keys(r).length>0&&(t.additionalParameters=r)}break;default:return null}if(void 0!==e.settings?.autoFetchToken&&(t.autoFetchToken=e.settings.autoFetchToken),void 0!==e.settings?.autoRefreshToken&&(t.autoRefreshToken=e.settings.autoRefreshToken),"authorization_code"===t.grantType&&"authorization_code"===e.flow){const r=e;void 0!==r.pkce&&(t.pkce=!r.pkce.disabled)}return null===t.additionalParameters&&delete t.additionalParameters,t})(e);break;default:console.warn("toBrunoAuth failed: Unsupported auth type")}return t},j=e=>{if(!e?.length)return;const t=e.map((e=>{const t={name:e.name||"",value:e.value||""};return e?.description?.trim().length&&(t.description=e.description),!1===e.enabled&&(t.disabled=!0),t}));return t.length?t:void 0},S=e=>{if(!e?.length)return;const t=e.map((e=>({uid:b(),name:k(e.name),value:k(e.value),enabled:!("disabled"in e)||!0!==e.disabled})));return t.length?t:void 0},E=e=>{if(!e?.length)return;const t=e.map((e=>{const t={name:e.name||"",value:e.value||"",type:e.type};return e?.description?.trim().length&&(t.description=e.description),!1===e.enabled&&(t.disabled=!0),t}));return t.length?t:void 0},K=e=>{if(!e?.length)return;const t=e.map((e=>{const t={uid:b(),name:k(e.name),value:k(e.value),type:e.type,enabled:!0!==e.disabled};return e.description&&("string"==typeof e.description&&e.description.trim().length?t.description=e.description:"object"==typeof e.description&&e.description.content?.trim().length&&(t.description=e.description.content)),t}));return t.length?t:void 0},z=e=>{if(e)switch(e.mode){case"none":case"graphql":default:return;case"json":return{type:"json",data:e.json||""};case"text":return{type:"text",data:e.text||""};case"xml":return{type:"xml",data:e.xml||""};case"sparql":return{type:"sparql",data:e.sparql||""};case"formUrlEncoded":const t=e.formUrlEncoded?.map((e=>{const t={name:e.name||"",value:e.value||""};return e?.description?.trim().length&&(t.description=e.description),!1===e.enabled&&(t.disabled=!0),t}))||[];return{type:"form-urlencoded",...t.length>0&&{data:t}};case"multipartForm":const r=e.multipartForm?.map((e=>{const t={name:e.name||"",type:e.type,value:e.value||("file"===e.type?[]:"")};return e?.contentType?.trim().length&&(t.contentType=e.contentType),e?.description?.trim().length&&(t.description=e.description),!1===e.enabled&&(t.disabled=!0),t}))||[];return{type:"multipart-form",...r.length>0&&{data:r}};case"file":const s=e.file?.map((e=>({filePath:e.filePath||"",contentType:e.contentType||"",selected:e.selected??!1})))||[];return{type:"file",...s.length>0&&{data:s}}}},N=e=>{if(!e)return{mode:"none",json:null,text:null,xml:null,sparql:null,formUrlEncoded:[],multipartForm:[],graphql:null,file:[]};const t={mode:"none",json:null,text:null,xml:null,sparql:null,formUrlEncoded:[],multipartForm:[],graphql:null,file:[]};switch(e.type){case"json":t.mode="json",t.json=e.data||"";break;case"text":t.mode="text",t.text=e.data||"";break;case"xml":t.mode="xml",t.xml=e.data||"";break;case"sparql":t.mode="sparql",t.sparql=e.data||"";break;case"form-urlencoded":t.mode="formUrlEncoded",t.formUrlEncoded=e.data?.map((e=>{const t={uid:b(),name:k(e.name),value:k(e.value),enabled:!0!==e.disabled};return e.description&&("string"==typeof e.description&&e.description.trim().length?t.description=e.description:"object"==typeof e.description&&e.description.content?.trim().length&&(t.description=e.description.content)),t}))||[];break;case"multipart-form":t.mode="multipartForm",t.multipartForm=e.data?.map((e=>{const t={uid:b(),type:e.type,name:k(e.name),value:"file"===e.type?e.value||[]:k(e.value),contentType:e.contentType||null,enabled:!0!==e.disabled};return e.description&&("string"==typeof e.description&&e.description.trim().length?t.description=e.description:"object"==typeof e.description&&e.description.content?.trim().length&&(t.description=e.description.content)),t}))||[];break;case"file":t.mode="file",t.file=e.data?.map((e=>({uid:b(),filePath:e.filePath||"",contentType:e.contentType||"",selected:e.selected??!1})))||[]}return t},A=e=>{const t=e&&"req"in e?e.req:e,r=Array.isArray(t)?t:[];if(!r.length)return;const s=r.map((e=>{const t={name:e.name||"",value:e.datatype&&"string"!==e.datatype?{type:e.datatype,data:k(e.value)}:e.value||""};return e?.description?.trim().length&&(t.description=e.description),!1===e.enabled&&(t.disabled=!0),t}));return s.length>0?s:void 0},O=e=>{if(!e?.length)return{req:[],res:[]};const t=[];return e.forEach((e=>{const r={uid:b(),name:k(e.name),value:"",enabled:!0!==e.disabled,local:!1};var s;"object"==typeof(s=e.value)&&null!==s&&!Array.isArray(s)&&"type"in s&&"data"in s?(r.value=k(e.value.data),"string"!==e.value.type&&"null"!==e.value.type&&(r.datatype=e.value.type)):r.value=k(e.value),e.description&&(r.description="string"==typeof e.description?e.description:e.description?.content||""),t.push(r)})),{req:t,res:[]}},F=e=>{if(!e?.length)return;const t=e.map((e=>{const t={type:"set-variable",phase:"after-response",selector:{expression:e.value||"",method:"jsonq"},variable:{name:e.name||"",scope:e.local?"request":"runtime"}};return e.description?.trim().length&&(t.description=e.description),!1===e.enabled&&(t.disabled=!0),t}));return t.length>0?t:void 0},H=e=>{if(!e?.length)return[];const t=[];return e.forEach((e=>{if("set-variable"===e.type&&"after-response"===e.phase){const r=e,s={uid:b(),name:k(r.variable?.name),value:k(r.selector?.expression),enabled:!0!==r.disabled,local:!1};r.description&&(s.description="string"==typeof r.description?r.description:r.description?.content||""),t.push(s)}})),t},B=e=>{const t=[];return e?.script?.req?.trim().length&&t.push({type:"before-request",code:e.script.req.trim()}),e?.script?.res?.trim().length&&t.push({type:"after-response",code:e.script.res.trim()}),e?.tests?.trim().length&&t.push({type:"tests",code:e.tests.trim()}),t.length>0?t:void 0},M=e=>{if(!e||!Array.isArray(e)||0===e.length)return;const t={};for(const r of e)"before-request"===r.type&&r.code&&(t.script||(t.script={}),t.script.req=r.code),"after-response"===r.type&&r.code&&(t.script||(t.script={}),t.script.res=r.code),"tests"===r.type&&r.code&&(t.tests=r.code);return Object.keys(t).length>0?t:void 0},W=["eq","neq","gt","gte","lt","lte","in","notIn","contains","notContains","length","matches","notMatches","startsWith","endsWith","between","isEmpty","isNotEmpty","isNull","isUndefined","isDefined","isTruthy","isFalsy","isJson","isNumber","isString","isBoolean","isArray"],Q=["isEmpty","isNotEmpty","isNull","isUndefined","isDefined","isTruthy","isFalsy","isJson","isNumber","isString","isBoolean","isArray"],G=e=>{if(!e?.length)return;const t=e.map((e=>{const{operator:t,value:r}=((e="")=>{if(!e||"string"!=typeof e||!e.length)return{operator:"eq",value:e};const[t,...r]=e.trim().split(" "),s=r.join(" ");return Q.includes(t)?{operator:t,value:void 0}:W.includes(t)?{operator:t,value:s}:{operator:"eq",value:e}})(e.value||""),s={expression:e.name||"",operator:t,...void 0!==r&&{value:r}};return e?.description?.trim().length&&(s.description=e.description),!1===e.enabled&&(s.disabled=!0),s}));return t.length>0?t:void 0},J=e=>{if(!e?.length)return;const t=e.map((e=>{let t=k(e.operator);void 0!==e.value&&null!==e.value&&(t=`${e.operator} ${k(e.value)}`);const r={uid:b(),name:k(e.expression),value:t,enabled:!0!==e.disabled};return e.description&&("string"==typeof e.description&&e.description.trim().length?r.description=e.description:"object"==typeof e.description&&e.description.content?.trim().length&&(r.description=e.description.content)),r}));return t.length>0?t:void 0},$=e=>{if(!e?.length)return;const t=e.map((e=>({uid:b(),name:k(e.name),value:k(e.value),enabled:!0!==e.disabled})));return t.length?t:void 0},L=e=>{try{const s=(e=>o.parse(e))(e),n=(e=>{const t=e?.info?.type;switch(t){case"http":e.runtime?.auth&&!e.http?.auth&&(e.http.auth=e.runtime.auth);break;case"graphql":e.runtime?.auth&&!e.graphql?.auth&&(e.graphql.auth=e.runtime.auth);break;case"grpc":e.runtime?.auth&&!e.grpc?.auth&&(e.grpc.auth=e.runtime.auth);break;case"websocket":e.runtime?.auth&&!e.websocket?.auth&&(e.websocket.auth=e.runtime.auth)}return e})(s),a="info"in(r=n)&&r.info&&"type"in r.info?r.info.type:"type"in r?r.type:void 0;if(!n||!a)throw new Error("Invalid item: missing type");switch(a){case"http":return(e=>{const t=e.info,r=e.http,s=e.runtime,n={url:k(r?.url),method:k(r?.method,"GET"),headers:S(r?.headers)||[],params:K(r?.params)||[],auth:I(r?.auth),body:N(r?.body)||{mode:"none",json:null,text:null,xml:null,sparql:null,formUrlEncoded:[],multipartForm:[],graphql:null,file:[]},script:{req:null,res:null},vars:{req:[],res:[]},assertions:[],tests:null,docs:null},a=M(s?.scripts);a?.script&&n.script&&(a.script.req&&(n.script.req=a.script.req),a.script.res&&(n.script.res=a.script.res)),a?.tests&&(n.tests=a.tests);const o=O(s?.variables),i=H(s?.actions);n.vars={req:o.req,res:i};const l=J(s?.assertions);l&&(n.assertions=l),e.docs&&(n.docs=e.docs);const c={uid:b(),type:"http-request",seq:t?.seq||1,name:k(t?.name,"Untitled Request"),tags:t?.tags||[],request:n,settings:null,fileContent:null,root:null,items:[],examples:[],filename:null,pathname:null};if(e.settings){const t={};"boolean"==typeof e.settings.encodeUrl?t.encodeUrl=e.settings.encodeUrl:t.encodeUrl=!0,"number"==typeof e.settings.timeout?t.timeout=e.settings.timeout:"inherit"===e.settings.timeout?t.timeout="inherit":t.timeout=0,"boolean"==typeof e.settings.followRedirects?t.followRedirects=e.settings.followRedirects:t.followRedirects=!0,"number"==typeof e.settings.maxRedirects?t.maxRedirects=e.settings.maxRedirects:t.maxRedirects=5,c.settings=t}return e.examples?.length&&(c.examples=e.examples.map((e=>{const t={uid:b(),itemUid:b(),name:k(e.name,"Untitled Example"),type:"http-request",request:null,response:null};return e.description&&("string"==typeof e.description&&e.description.trim().length?t.description=e.description:"object"==typeof e.description&&e.description.content?.trim().length&&(t.description=e.description.content)),e.request&&(t.request={url:k(e.request.url),method:k(e.request.method,"GET"),headers:S(e.request.headers)||[],params:K(e.request.params)||[],body:N(e.request.body)||{mode:"none",json:null,text:null,xml:null,sparql:null,formUrlEncoded:null,multipartForm:null,graphql:null,file:null}}),e.response&&(t.response={status:"number"==typeof e.response.status?e.response.status:void 0!==e.response.status?Number(e.response.status):null,statusText:e.response.statusText||null,headers:S(e.response.headers)||[],body:null},e.response.body&&(t.response.body={type:e.response.body.type||"text",content:e.response.body.data||""})),t}))),c})(n);case"graphql":return(e=>{const t=e.info,r=e.graphql,s=e.runtime,n={url:k(r?.url),method:k(r?.method,"POST"),headers:S(r?.headers)||[],params:K(r?.params)||[],auth:I(r?.auth),body:{mode:"graphql",json:null,text:null,xml:null,sparql:null,formUrlEncoded:[],multipartForm:[],graphql:{query:r?.body?.query||"",variables:r?.body?.variables||""},file:[]},script:{req:null,res:null},vars:{req:[],res:[]},assertions:[],tests:null,docs:null},a=M(s?.scripts);a?.script&&n.script&&(a.script.req&&(n.script.req=a.script.req),a.script.res&&(n.script.res=a.script.res)),a?.tests&&(n.tests=a.tests);const o=O(s?.variables),i=H(s?.actions);n.vars={req:o.req,res:i};const l=J(s?.assertions);l&&(n.assertions=l),e.docs&&(n.docs=e.docs);const c={uid:b(),type:"graphql-request",seq:t?.seq||1,name:k(t?.name,"Untitled Request"),tags:t?.tags||[],request:n,settings:null,fileContent:null,root:null,items:[],examples:[],filename:null,pathname:null};if(e.settings){const t={};"boolean"==typeof e.settings.encodeUrl?t.encodeUrl=e.settings.encodeUrl:t.encodeUrl=!0,"number"==typeof e.settings.timeout?t.timeout=e.settings.timeout:"inherit"===e.settings.timeout?t.timeout="inherit":t.timeout=0,"boolean"==typeof e.settings.followRedirects?t.followRedirects=e.settings.followRedirects:t.followRedirects=!0,"number"==typeof e.settings.maxRedirects?t.maxRedirects=e.settings.maxRedirects:t.maxRedirects=5,c.settings=t}return c})(n);case"grpc":return(e=>{const t=e.info,r=e.grpc,s=e.runtime,n={url:k(r?.url),method:k(r?.method),methodType:r?.methodType||"",protoPath:r?.protoFilePath||null,headers:$(r?.metadata)||[],auth:I(r?.auth),body:{mode:"grpc",grpc:[]},script:{req:null,res:null},vars:{req:[],res:[]},assertions:[],tests:null,docs:null};q(r?.message)&&(n.body.grpc=[{name:"",content:r?.message}]);const a=M(s?.scripts);a?.script&&n.script&&(a.script.req&&(n.script.req=a.script.req),a.script.res&&(n.script.res=a.script.res)),a?.tests&&(n.tests=a.tests);const o=O(s?.variables);n.vars=o;const i=J(s?.assertions);return i&&(n.assertions=i),e.docs&&(n.docs=e.docs),{uid:b(),type:"grpc-request",seq:t?.seq||1,name:k(t?.name,"Untitled Request"),tags:t?.tags||[],request:n,settings:{},fileContent:null,root:null,items:[],examples:[],filename:null,pathname:null}})(n);case"websocket":return(e=>{const t=e.info,r=e.websocket,s=e.runtime,n={url:k(r?.url),headers:S(r?.headers)||[],auth:I(r?.auth),body:{mode:"ws",ws:[]},script:{req:null,res:null},vars:{req:[],res:[]},assertions:[],tests:null,docs:null};if(r?.message){const e=r.message,t=k(e.data);t.trim().length&&(n.body.ws=[{name:"",type:e.type||"text",content:t}])}const a=M(s?.scripts);a?.script&&n.script&&(a.script.req&&(n.script.req=a.script.req),a.script.res&&(n.script.res=a.script.res)),a?.tests&&(n.tests=a.tests);const o=O(s?.variables);n.vars=o,e.docs&&(n.docs=e.docs);const i={timeout:0,keepAliveInterval:0};return e.settings&&("number"==typeof e.settings.timeout&&(i.timeout=e.settings.timeout),"number"==typeof e.settings.keepAliveInterval&&(i.keepAliveInterval=e.settings.keepAliveInterval)),{uid:b(),type:"ws-request",seq:t?.seq||1,name:k(t?.name,"Untitled Request"),tags:t?.tags||[],request:n,settings:i,fileContent:null,root:null,items:[],examples:[],filename:null,pathname:null}})(n);case"script":return t=n,{uid:b(),type:"js",seq:1,name:"Script",tags:[],request:null,settings:null,fileContent:t.script||"",root:null,items:[],examples:[],filename:null,pathname:null};case"folder":throw new Error("Folder items should be handled separately using parseFolder");default:throw new Error(`Unsupported item type: ${a}`)}}catch(e){throw console.error("Error parsing item:",e),e}var t,r},D=e=>{try{switch(e.type){case"http-request":return(e=>{try{const t={},r=e.request,s={name:q(e.name)?e.name:"Untitled Request",type:"http"};e.seq&&(s.seq=e.seq),e.tags?.length&&(s.tags=e.tags),t.info=s;const n={method:q(r.method)?r.method:"GET",url:q(r.url)?r.url:""},a=j(r.headers);a&&(n.headers=a);const o=E(r.params);o&&(n.params=o);const i=z(r.body);i&&(n.body=i);const l=C(r.auth);l&&(n.auth=l),t.http=n;const c={};let u=!1;const d=A(r.vars);d&&(c.variables=d,u=!0);const p=B(r);p&&(c.scripts=p,u=!0);const m=G(r.assertions);m&&(c.assertions=m,u=!0);const g=r.vars?.res,y=F(g);y&&(c.actions=y,u=!0),u&&(t.runtime=c);const k=e.settings,b={};b.encodeUrl=!0===k?.encodeUrl||!1!==k?.encodeUrl;const v=k?.timeout;f(v)?b.timeout=v:b.timeout=0,b.followRedirects=!0===k?.followRedirects||!1!==k?.followRedirects;const w=k?.maxRedirects;if(f(w)?b.maxRedirects=w:b.maxRedirects=5,t.settings=b,e.examples?.length){const r=e.examples.map((e=>{const t={};if(t.name=e?.name||"Untitled Example",q(e.description)&&(t.description=e.description),e.request){t.request={},t.request.url=e.request.url||"",t.request.method=e.request.method||"GET";const r=j(e.request.headers);r&&(t.request.headers=r);const s=E(e.request.params);s&&(t.request.params=s);const n=z(e.request.body);void 0!==n&&(t.request.body=n)}if(e.response){t.response={};const r=Number(e.response.status);Number.isInteger(r)&&r>0&&(t.response.status=r),q(e.response.statusText)&&(t.response.statusText=e.response.statusText);const s=(e=>{if(!e?.length)return;const t=e.map((e=>({name:e.name||"",value:e.value||""})));return t.length?t:void 0})(e.response.headers);if(s&&(t.response.headers=s),e.response.body&&e.response.body.type&&void 0!==e.response.body.content){const r=e.response.body.content,s="string"==typeof r?r:JSON.stringify(r,null,2);t.response.body={type:e.response.body.type,data:s}}}return t}));r?.length&&(t.examples=r)}return q(r.docs)&&(t.docs=r.docs),h(t)}catch(e){throw console.error("Error stringifying HTTP request:",e),e}})(e);case"graphql-request":return(e=>{try{const t={},r=e.request,s={name:q(e.name)?e.name:"Untitled Request",type:"graphql"};e.seq&&(s.seq=e.seq),e.tags?.length&&(s.tags=e.tags),t.info=s;const n={method:q(r.method)?r.method:"POST",url:q(r.url)?r.url:""},a=j(r.headers);a&&(n.headers=a);const o=E(r.params);if(o&&(n.params=o),"graphql"===r.body?.mode&&r.body.graphql){const e={};let t=!1;q(r.body.graphql.query)&&(e.query=r.body.graphql.query,t=!0),q(r.body.graphql.variables)&&(e.variables=r.body.graphql.variables,t=!0),t&&(n.body=e)}const i=C(r.auth);i&&(n.auth=i),t.graphql=n;const l={};let c=!1;const u=A(r.vars);u&&(l.variables=u,c=!0);const d=B(r);d&&(l.scripts=d,c=!0);const p=G(r.assertions);p&&(l.assertions=p,c=!0);const m=r.vars?.res,g=F(m);g&&(l.actions=g,c=!0),c&&(t.runtime=l);const y=e.settings,k={};k.encodeUrl=!0===y?.encodeUrl||!1!==y?.encodeUrl;const b=y?.timeout;f(b)?k.timeout=b:k.timeout=0,k.followRedirects=!0===y?.followRedirects||!1!==y?.followRedirects;const v=y?.maxRedirects;return f(v)?k.maxRedirects=v:k.maxRedirects=5,t.settings=k,q(r.docs)&&(t.docs=r.docs),h(t)}catch(e){throw console.error("Error stringifying GraphQL request:",e),e}})(e);case"grpc-request":return(e=>{try{const t={},r=e.request,s={name:q(e.name)?e.name:"Untitled Request",type:"grpc"};e.seq&&(s.seq=e.seq),e.tags?.length&&(s.tags=e.tags),t.info=s;const n={url:q(r.url)?r.url:"",method:q(r.method)?r.method:""};if(r.methodType&&(n.methodType=r.methodType),q(r.protoPath)&&(n.protoFilePath=r.protoPath),r.headers?.length){const e=r.headers.map((e=>{const t={name:e.name||"",value:e.value||""};return e?.description?.trim().length&&(t.description=e.description),!1===e.enabled&&(t.disabled=!0),t}));e.length&&(n.metadata=e)}if("grpc"===r.body?.mode&&r.body.grpc?.length){const e=r.body.grpc;if(e.length){const t=e[0].content||"";t.trim().length&&(n.message=t)}}const a=C(r.auth);a&&(n.auth=a),t.grpc=n;const o={};let i=!1;const l=A(r.vars);l&&(o.variables=l,i=!0);const c=B(r);c&&(o.scripts=c,i=!0);const u=G(r.assertions);return u&&(o.assertions=u,i=!0),i&&(t.runtime=o),q(r.docs)&&(t.docs=r.docs),h(t)}catch(e){throw console.error("Error stringifying gRPC request:",e),e}})(e);case"ws-request":return(e=>{try{const t={},r=e.request,s={name:q(e.name)?e.name:"Untitled Request",type:"websocket"};e.seq&&(s.seq=e.seq),e.tags?.length&&(s.tags=e.tags),t.info=s;const n={url:q(r.url)?r.url:""},a=j(r.headers);if(a&&(n.headers=a),"ws"===r.body?.mode&&r.body.ws?.length){const e=r.body.ws;if(e.length){const t=e[0],r={type:t.type||"text",data:t.content||""};r.data.trim().length&&(n.message=r)}}const o=C(r.auth);o&&(n.auth=o),t.websocket=n;const i={};let l=!1;const c=A(r.vars);c&&(i.variables=c,l=!0);const u=B(r);u&&(i.scripts=u,l=!0),l&&(t.runtime=i);const d=e.settings;if(d){t.settings={};const e=Number(d.timeout);t.settings.timeout=isNaN(e)?0:e;const r=Number(d.keepAliveInterval);t.settings.keepAliveInterval=isNaN(r)?0:r}return q(r.docs)&&(t.docs=r.docs),h(t)}catch(e){throw console.error("Error stringifying WebSocket request:",e),e}})(e);case"js":return(e=>{try{const t={type:"script"};return e.fileContent?.trim().length&&(t.script=e.fileContent),h(t)}catch(e){throw console.error("Error stringifying script:",e),e}})(e);case"folder":throw new Error("Folder items should be handled separately using stringifyFolder");default:throw new Error(`Unsupported item type: ${e.type}`)}}catch(e){throw console.error("Error stringifying item:",e),e}},V="yml";e.parentPort?.on("message",(async t=>{try{const{taskType:s,data:n}=t,{data:o,format:i=V}=n;let l;if("parse"===s)l="yml"===i?L(o):u(o);else{if("stringify"!==s)throw new Error(`Unknown task type: ${s}`);l="yml"===i?D(o):(e=>{try{let t=a.get(e,"type");switch(t){case"http-request":default:t="http";break;case"graphql-request":t="graphql";break;case"grpc-request":t="grpc";break;case"ws-request":t="ws"}const s=a.get(e,"seq"),n={meta:{name:a.get(e,"name"),type:t,seq:a.isNaN(s)?1:Number(s),tags:a.get(e,"tags",[])}};if("http"===t||"graphql"===t)n.http={method:String(a.get(e,"request.method")??"").toLowerCase(),url:a.get(e,"request.url"),auth:a.get(e,"request.auth.mode","none"),body:a.get(e,"request.body.mode","none")},n.params=a.get(e,"request.params",[]),n.body=a.get(e,"request.body",{mode:"json",json:"{}"});else if("grpc"===t){n.grpc={url:a.get(e,"request.url"),auth:a.get(e,"request.auth.mode","none"),body:a.get(e,"request.body.mode","grpc")};const t=a.get(e,"request.method"),r=a.get(e,"request.methodType"),s=a.get(e,"request.protoPath");t&&(n.grpc.method=t),r&&(n.grpc.methodType=r),s&&(n.grpc.protoPath=s),n.body=a.get(e,"request.body",{mode:"grpc",grpc:a.get(e,"request.body.grpc",[{name:"message 1",content:"{}"}])})}else"ws"===t&&(n.ws={url:a.get(e,"request.url"),auth:a.get(e,"request.auth.mode","none"),body:a.get(e,"request.body.mode","ws")},n.body=a.get(e,"request.body",{mode:"ws",ws:a.get(e,"request.body.ws",[{name:"message 1",content:"{}"}])}));return"grpc"===t?n.metadata=a.get(e,"request.headers",[]):n.headers=a.get(e,"request.headers",[]),n.auth=a.get(e,"request.auth",{}),n.script=a.get(e,"request.script",{}),n.vars={req:a.get(e,"request.vars.req",[]),res:a.get(e,"request.vars.res",[])},n.assertions=a.get(e,"request.assertions",[]),n.tests=a.get(e,"request.tests",""),n.settings=a.get(e,"settings",{}),n.docs=a.get(e,"request.docs",""),n.examples=a.get(e,"examples",[]).map((e=>p(e))),r.jsonToBruV2(n)}catch(e){throw e}})(o)}e.parentPort?.postMessage(l)}catch(t){console.error("Worker error:",t),e.parentPort?.postMessage({error:t?.message})}}));
2
2
  //# sourceMappingURL=worker-script.js.map