runner-runtime 1.0.95 → 1.0.97

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.
Files changed (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +5 -6
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("atomic-sleep"),t=require("lodash"),s=require("fs"),n=require("json-schema-faker-pro"),a=require("path"),r=require("exp-mock"),o=require("mockjs5-pro"),i=require("mime"),c=require("os"),l=require("buffer/"),p=require("@apipost/url-join"),u=require("apipost-tools"),d=require("jsonpath"),m=require("json5"),g=require("file-type"),y=require("content-disposition"),f=require("is-svg"),h=require("json-bigint"),b=require("strip-json-comments"),v=require("tough-cookie"),_=require("is-image"),k=require("postman-collection"),x=require("uuid"),q=require("minimatch"),S=require("postman-runtime-pro"),O=require("msgpack5");function E(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var D,w,j,$,T,V,I,N,R,C,U,A,J=E(e),P=E(t),B=E(s),z=E(n),L=E(a),F=E(r),W=E(o),M=E(i),H=E(c),X=E(l),G=E(p),K=E(u),Y=E(d),Q=E(m),Z=E(g),ee=E(y),te=E(f),se=E(h),ne=E(b),ae=E(v),re=E(_),oe=E(k),ie=E(x),ce=E(q),le=E(S),pe=E(O);function ue(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function de(){if(w)return D;w=1;const e=J.default,t=P.default,s=B.default,n=z.default,a=L.default,{mockExp:r}=F.default,o=W.default,i=M.default,c=H.default,l=X.default.Buffer,p=G.default,u=function(e,s,n){if(t.isArray(e)){const a=t.find(e,t.matchesProperty("target_id",s));if(a){if(n.includes(a.parent_id))return;t.isString(a.parent_id)&&(n.push(a.parent_id),u(e,a.parent_id,n))}}},d=()=>{const e={};if(new Array("natural","integer","float","character","range","date","time","datetime","now","guid","increment","url","protocol","domain","tld","email","ip","region","province","city","county","county","zip","first","last","name","cfirst","clast","cname","color","rgb","rgba","hsl","paragraph","cparagraph","sentence","csentence","word","cword","title","ctitle","username","user_name","nickname","nick_name","avatar","icon","img","photo","pic","description","id","userid","user_id","articleid","article_id").forEach((t=>{e[`$${t}`]=o.mock(`@${t}`)})),process&&process?.IS_ECHOAPI){["region","province","city","county","cfirst","clast","cname","cparagraph","csentence","cword","ctitle"].forEach((t=>{var s;e[`$${t}`]=(s=`$${t}`,function(){return s})})),new Array("phone","mobile","telephone").forEach((t=>{e[`$${t}`]=(()=>{const e=Math.floor(900*Math.random())+100,t=Math.floor(1e7*Math.random())+1e6;return`${e}-${t.toString().slice(0,3)}-${t.toString().slice(3)}`})()}))}else new Array("phone","mobile","telephone").forEach((s=>{e[`$${s}`]=(()=>{let e="1";return e+=t.random(3,9).toString(),e+=t.times(9,(()=>t.random(0,9))).join(""),e})()}));return e.$timestamp=t.toInteger(Date.now()/1e3),e.$microTimestamp=(new Date).getTime(),e.$randomInt=Math.floor(1e3*Math.random()),e.$randomFloat=1e3*Math.random(),e};return D={atomicSleep:e,jsfGenerate:(e,s=[],a,r={})=>{let o;if(n.option({alwaysFakeOptionals:!0,useExamplesValue:!0,fillProperties:!1,useDefaultValue:!0,mockRules:s,customFunctions:r,lang:"zh-cn"}),t.some(["default","examples","pattern","format","x-mock","enum"],(s=>t.includes(t.keys(e?.schema||e),s))))try{o=n.generate(e)}catch(e){}if(!t.isUndefined(o))return o},getAPIFromCollection:function(e,s){return t.find(e,t.matchesProperty("target_id",s))},getParentTargetIDs:u,base64toCacheFile:(e,n,r,o)=>{let p=n;try{s.statSync(p)}catch(u){if(!t.isEmpty(r)){const u=String(r).match(/data:([0-9a-zA-Z\/\-]+);base64,/i),d=i.getExtension(u&&u[1]?u[1]:"");if(t.isString(d)){const i=a.resolve(c.tmpdir(),`${o}`);try{s.mkdirSync(i)}catch(e){}let u=n;t.endsWith(u,`.${d}`)||(u=`${e}.${d}`);const m=a.resolve(i,u);try{s.writeFileSync(m,l.from(t.replace(r,/^data:[0-9a-zA-Z\/\-]+;base64,/,""),"base64")),p=m}catch(e){}}}}return p},replace2RegExp:(e,s,n)=>{try{return t.replace(e,new RegExp(String(s),"ig"),String(n))}catch(a){return t.replace(e,s,String(n))}},getInsideVariables:d,repeatArrayToLength:(e,s)=>{if(t.isArray(e)||(e=t.values(e)),t.isEmpty(e))return[];const n=t.ceil(s/e.length),a=t.flattenDeep(t.fill(new Array(n),e));return t.take(a,s)},convertEndRuntimeState:(e,s)=>{try{const{startTime:n,startVariables:a}=t.get(e,[s,"iteration"],{}),r=Date.now(),o={},i={};["globals","environment","iterationData","variables"].forEach((e=>{t.assign(o,t.get(a,`${e}`))})),t.forEach(o,((e,s)=>{let n;t.set(i,[s,"value"],e),t.isUndefined(e)||["variables","iterationData","environment","globals"].some((e=>{if(!t.isUndefined(t.get(a,[`${e}`,s])))return n=e,!0})),t.set(i,[s,"actedUpon"],n)}));const{environment:c={},variables:l={},_globals:p={},iterationData:u={}}=t.get(e,"variables",{}),d={environment:c,variables:l,iterationData:u,globals:p},m={};["globals","environment","iterationData","variables"].forEach((e=>{t.assign(m,t.get(d,`${e}`))}));const g={};return t.forEach(m,((e,s)=>{if(!t.includes(["_pm.response.code","_pm.response.setBody"],s)){let n;["variables","iterationData","environment","globals"].some((e=>{if(!t.isUndefined(t.get(d,[`${e}`,s])))return n=e,!0})),t.set(g,[s],{start:t.pick(i[s],["value","actedUpon"]),current:{value:e,actedUpon:n}})}})),{startTime:n,endTime:r,currentVariables:g}}catch(e){}},returnBoolean:(e,s,n)=>{let a=!1;if(""===e)return"null"==s;switch(s){case"eq":a=e==n;break;case"uneq":a=e!=n;break;case"gt":a=t.gt(Number(e),Number(n));break;case"gte":a=t.gte(Number(e),Number(n));break;case"lt":a=t.lt(Number(e),Number(n));break;case"lte":a=t.lte(Number(e),Number(n));break;case"includes":a=t.includes(e,n)||t.includes(e,Number(n));break;case"unincludes":a=!t.includes(e,n)&&!t.includes(e,Number(n));break;case"null":a=t.isEmpty(e);break;case"notnull":a=!t.isEmpty(e);break;case"exist":a=!t.isUndefined(e);break;case"notexist":a=t.isUndefined(e);break;case"regularmatch":try{a=new RegExp(String(n).substring(1,String(n).length-1)).test(e)}catch(e){}break;case"belongscollection":a=t.split(n,",").indexOf(e)>-1;break;case"notbelongscollection":a=-1==t.split(n,",").indexOf(e)}return a},variableReplaceForCondition:(e,s,n)=>{if(!t.startsWith(e,"{{")||!t.endsWith(e,"}}"))return e;const a=d();["globals","_globals","environment","iterationData","variables"].forEach((e=>{t.assign(a,t.get(s,`${e}`))})),e=t.replace(e,/\{\{([^}]+)\}\}/g,((e,s)=>t.get(a,s.trim(),e)));const{lang:o,custom_functions:i}=n;try{const s=r(e,a,o,i);if(s===e&&t.startsWith(e,"{{")&&t.endsWith(e,"}}"))return;return s}catch(e){return}},getCaseInsensitive:(e,s)=>{try{const n=t.toLower(s);if(!t.isObject(e))return;for(const s in e)if(t.toLower(s)===n)return e[s]}catch(e){}},camelCaseToSnakeCase:e=>(["arrCookies","fitForShow","mimeType","requestStart","responseSize","responseTime"].forEach((s=>{const n=t.snakeCase(s),a=t.get(e,`response.${s}`);t.isUndefined(a)||(t.set(e,`response.${n}`,a),t.unset(e,`response.${s}`))})),e),formatAutotestReportList:e=>{const s=[];return t.forEach(t.cloneDeep(e),(e=>{const n=e?.type;t.includes(["assert","assert_visual","api","sample","script","sql"],n)?s.push(t.assign(t.pick(e?.response,["timings","response_time","response_at","proxy","status","code","response_size"]),t.pick(e?.request,["url","method","name","target_id","project_id"]),t.pick(e,["type","event_id","test_id","iteration_id","startTime","endTime","currentVariables"]),{type:n,status:{assert:t.isEmpty(e?.status?.success_assert)?"OK":e?.status?.success_assert,http:e?.status?.http||"OK"}})):t.includes(["if"],n)?s.push(t.assign(t.pick(e,["type","event_id","test_id","iteration_id","startTime","endTime","currentVariables"]),{type:n,status:{...e?.data}})):t.includes(["wait"],n)&&s.push(t.assign(t.pick(e,["type","event_id","test_id","iteration_id","startTime","endTime","currentVariables"]),{type:n,sleep:e?.data?.sleep||0}))})),s},getVariableActedUpon:(e,s)=>{let n;return["variables","iterationData","environment","globals"].some((a=>{if(t.includes(t.keys(t.get(e,`variables.${a}`)),s))return n=a,!0})),n},variableReplace:(e,s,n)=>{const a=d();["globals","_globals","environment","iterationData","variables"].forEach((e=>{t.assign(a,t.get(s,`${e}`))})),e=t.replace(e,/\{\{([^}]+)\}\}/g,((e,s)=>t.get(a,s.trim(),e)));const{lang:o,custom_functions:i}=n;try{return r(e,a,o,i)}catch(t){return e}},formatAutotestReport:(e,s)=>{const n={assert:{total:0,success:0,error:0},http:{total:0,success:0,error:0},start_at:e,end_at:Date.now(),total_time:Date.now()-e,iteration_count:t.size(s),total_response_time:null,avg_response_time:null,total_response_size:0,avg_response_size:0};let a=0,r=0;return t.forEach(t.cloneDeep(s),(e=>{if(t.includes(["api","sample"],e?.type)&&(n.http.total++,a+=t.toInteger(e?.response?.response_size),r+=t.toInteger(e?.response?.response_time),"ok"!=t.toLower(e?.status?.http)&&n.http.error++),t.includes(["api","sample","assert","assert_visual"],e?.type)&&!t.isEmpty(e?.status?.assert)&&t.isArray(e?.status?.assert)){const s=t.filter(e?.status?.assert,(e=>!1===e?.passed));n.assert.total=n.assert.total+t.size(e?.status?.assert),n.assert.error=n.assert.error+t.size(s)}})),n.http.success=n.http.total-n.http.error,n.assert.success=n.assert.total-n.assert.error,n.avg_response_time=t.round(r/n.http.total,2)||0,n.avg_response_size=t.round(a/n.http.total,2)||0,n.total_response_time=r,n.total_response_size=a,n},encodeURIComponentUnique:e=>{if(t.startsWith(e,"{{")&&t.endsWith(e,"}}"))return e;try{return decodeURIComponent(e)==e?encodeURIComponent(e):e}catch(t){return encodeURIComponent(e)}},smartUrlJoin:(e,...t)=>{for(let e of t)if(/^[a-zA-Z]+:\/\//.test(e))return e;return p(e,...t)}}}function me(){if(V)return T;V=1;const e=Z.default,t=ee.default,s=K.default,n=te.default,a=se.default({storeAsString:!0}),r=ne.default,o=M.default,{mockExp:i}=F.default,c=ae.default,l=X.default.Buffer,p=re.default,{getAPIFromCollection:u,smartUrlJoin:d,jsfGenerate:m,replace2RegExp:g,getParentTargetIDs:y,encodeURIComponentUnique:f,base64toCacheFile:h,getInsideVariables:b,convertEndRuntimeState:v,getCaseInsensitive:_,camelCaseToSnakeCase:k}=de(),{generateHarFromRequest:x}=function(){if($)return j;function e(e){return(e||[]).map((({key:e,value:t})=>({name:e,value:t})))}function t(e){return(e||[]).map((({key:e,value:t})=>({name:e,value:String(t)})))}function s(e){const{mode:t}=e;return"none"===t?{mimeType:"none",params:[],text:""}:"urlencoded"===t?{mimeType:"application/x-www-form-urlencoded",params:(e.urlencoded||[]).map((({key:e,value:t})=>({name:e,value:String(t)})))}:"formdata"===t?{mimeType:"multipart/form-data",params:(e.formdata||[]).map((({key:e,value:t,type:s="text"})=>{const n={name:e,value:String(t)};return"file"===s&&(n.fileName=t),n}))}:"raw"===t?{mimeType:"text/plain",text:String(e.raw)}:"json"===t?{mimeType:"application/json",text:JSON.stringify(e.json||{})}:{mimeType:"none",params:[],text:""}}return $=1,j={generateHarFromRequest:function(n){const{method:a="GET",headers:r=[],queryParams:o=[],body:i={mode:"none"}}=n;return{log:{version:"1.2",creator:{name:"Custom Node Request to HAR Converter",version:"1.0"},entries:[{request:{method:a.toUpperCase(),httpVersion:"HTTP/1.1",url:String(n?.url||"http://"),headers:e(r),queryString:t(o),postData:s(i),headersSize:-1,bodySize:-1},response:{status:200,statusText:"OK",httpVersion:"HTTP/1.1",cookies:[],headers:[],content:{size:0,mimeType:"application/json"},redirectURL:"",headersSize:-1,bodySize:-1},cache:{},timings:{send:0,wait:0,receive:0},startedDateTime:(new Date).toISOString(),time:0}]}}}}}(),q=P.default,S=oe.default,O=S.Url,E=S.Event,D=W.default,{v4:w}=ie.default,I=B.default,{minimatch:N}=ce.default,R=le.default,C=(e,t,s)=>{const{requestJson:n}=e,{database_configs:a,env:r,dynamic_option:o,custom_functions:i}=s;let c="";q.forEach(i,((e,t)=>{""!=(t=q.trim(t))&&(c=`\n ${c}\n\n function ${t}(text) {\n try{\n ${e}\n }catch(e){\n return text;\n }\n }\n `)}));const l=["const response = {};","\n const splitCookieString = (input)=> {\n let index = input.indexOf('=');\n if (index === -1) {\n return [input];\n }\n return [input.slice(0, index), input.slice(index + 1)];\n }\n ",`\n const getMainProcessSocketPath = ()=>{ \n try{\n return atob("${q.get(process,"env.ELECTRON_PIPE")}");\n }catch(e){\n return "${q.get(process,"env.ELECTRON_PIPE")}";\n }\n }\n `,"let lodashv4 = require('lodash');","let Mock = require('mockjs');","let xml2json = xml2Json;","let JSON5 = require('json5');","let aTools = require('apipost-tools');","let jsonpath = require('jsonpath');",`let _envTmpVariablesData = ${JSON.stringify(r)}`,`let _dynamicValueOptions = ${JSON.stringify(o)}`,"let $ = {}; $.md5 = function(str){return CryptoJS.MD5(str).toString()};$.ajax = pm.ajaxSendRequest;",'pm.environment.getPreUrl = function(){return _.get(_envTmpVariablesData, "env_pre_url");}','pm.environment.getName = function(){return _.get(_envTmpVariablesData, "env_name");}',"pm.environment.getCollection = function(){return pm.environment.toObject();}",'pm.variables.getPreUrl = function(){return _.get(_envTmpVariablesData, "env_pre_url");}','pm.variables.getName = function(){return _.get(_envTmpVariablesData, "env_name");}',"pm.variables.getCollection = function(){return pm.environment.toObject();}","pm.environment.delete = pm.environment.unset;","pm.variables.delete = pm.variables.unset;","pm.globals.delete = pm.globals.unset;","pm.Visualizing = pm.visualizer.set","\n // Database\n pm.queryDatabase = async (dbconfig) => {\n const { query } = dbconfig;\n const { createUnixClient } = require('net'), socketPath = getMainProcessSocketPath();\n\n try{\n const result = await createUnixClient(socketPath, JSON.stringify({\n action: 'queryDatabase',\n data: { dbconfig, query }\n }));\n return JSON.parse(Buffer.from(JSON.parse(result.toString())).toString());\n }catch(e){\n console.error(\"Database error: \" + String(e))\n throw new Error(String(e));\n // return { err: 'error', result:String(e)}\n }\n };\n\n // pm.execute/Async\n pm.executeAsync = pm.execute = async (file, args, option) => {\n const { createUnixClient } = require('net'), socketPath = getMainProcessSocketPath();\n\n try {\n const result = await createUnixClient(socketPath, JSON.stringify({\n action: 'execute',\n data: { file, args, option }\n }));\n\n const resultObj = JSON.parse(Buffer.from(JSON.parse(result.toString())).toString());\n\n if(resultObj?.status == 'success'){\n return resultObj?.result\n }else{\n console.error(\"pm.execute error: \" + String(resultObj?.result))\n throw new Error(resultObj?.result);\n }\n }catch (e) {\n console.error(\"pm.execute error: \" + String(e))\n throw new Error(e);\n }\n };\n ",`\n let _requestTmpBodyObject = request?.data\n try{\n _requestTmpBodyObject = JSON.stringify(JSON5.parse(request?.data));\n }catch(e){}\n \n try{\n let _requestTmpVariablesData = ${JSON.stringify({name:n?.name})}\n _.assign(request, {\n request_headers: pm.request?.headers?.toObject(), \n request_bodys: _requestTmpBodyObject, \n request_querys: pm.request?.url?.query?.toObject(),\n request_variables: pm.request?.url?.variables?.toObject(),\n mode: "${q.get(n,"request.body.mode")}",\n contentType: pm.request?.headers?.get('content-type'),\n id: "${n?.sample_id||n?.target_id}",\n name: _.get(_requestTmpVariablesData, "name") || "HTTP request",\n url: String(pm.request?.url),\n uri: pm.request?.url\n });\n }catch(e){}\n\n // // 获取最终请求body\n // try{\n // pm.getFinalRequestRawBody = () => {\n // let requestBody = pm.variables.replaceIn(request.request_bodys);\n\n // if(lodashv4.isString(requestBody)){\n // const regex = /{{([^}]+)}}/g;\n // const matches = requestBody.match(regex);\n // if (!lodashv4.isEmpty(matches)) {\n // lodashv4.forEach(matches, (match) => {\n // try {\n // const tmpVal = mockExp(match, _dynamicValueOptions?.all_vars || {}, _dynamicValueOptions?.lang || 'en', _dynamicValueOptions?.custom_functions || {});\n\n // if (tmpVal != match && !lodashv4.isUndefined(tmpVal)) {\n // requestBody = lodashv4.replace(requestBody, match, tmpVal);\n // }\n // } catch (e) { }\n // })\n // }\n\n // pm.setRequestBody(requestBody);\n // }\n \n // return requestBody;\n // }\n // }catch(e){\n // pm.getFinalRequestRawBody = () => {}\n // }\n\n // // 变量替换(含动态值)\n // try{\n // pm.mock = (str) => {\n // if(lodashv4.isString(str)){\n // const regex = /{{([^}]+)}}/g;\n // const matches = str.match(regex);\n // if (!lodashv4.isEmpty(matches)) {\n // lodashv4.forEach(matches, (match) => {\n // try {\n // const tmpVal = mockExp(match, _dynamicValueOptions?.all_vars || {}, _dynamicValueOptions?.lang || 'en', _dynamicValueOptions?.custom_functions || {});\n\n // if (tmpVal != match && !lodashv4.isUndefined(tmpVal)) {\n // str = lodashv4.replace(str, match, tmpVal);\n // }\n // } catch (e) { }\n // })\n // }\n\n // }\n // return str;\n // }\n // }catch(e){\n // pm.mock = (str) => {return str}\n // }\n `,"if(_.isObject(pm.response)){","try{","_.set(response, 'headers', pm.response.headers?.toObject());","}catch(e){}","try{ // 设置cookie\n response.cookies = {};\n const responseCookies = lodashv4.get(pm.response.headers.toObject(), 'set-cookie');\n lodashv4.forEach(lodashv4.isArray(responseCookies)?responseCookies:[responseCookies], (cookieStr) => {\n let cookieArr = splitCookieString(lodashv4.head(lodashv4.split(cookieStr, ';')));\n let cookieValue = lodashv4.join(lodashv4.tail(cookieArr),'');\n\n if(cookieArr[0] && cookieValue){\n try{\n _.set(response.cookies, cookieArr[0], decodeURIComponent(cookieValue))\n }catch(e){\n _.set(response.cookies, cookieArr[0], cookieValue)\n }\n }\n })\n }catch(e){}\n ","_.set(pm, 'response.raw.responseText', pm.response.text());","_.set(response, 'raw.responseText', pm.response.text());","try{","_.set(response, 'json', pm.response.json());","_.set(response, 'raw.json', pm.response.json());","}catch(e){_.set(response, 'raw.json', {})}","_.set(response, 'raw.status', pm.response.code);","_.set(response, 'raw.responseTime', pm.response.responseTime);"," pm.response.setBody = function (body) {"," if (typeof body !== 'string') {"," body = JSON.stringify(body);"," }"," if (typeof body === 'string') {"," const originalText = _.cloneDeep(pm.response.text());"," try {"," const originalJson = _.cloneDeep(pm.response.json());"," pm.response.originalJson = function () {"," return originalJson;"," };"," }"," catch (e) {"," pm.response.originalJson = function () {"," return null;"," };"," }"," pm.response.originalText = function () {"," return originalText;"," };",' pm.response.stream = {type: "Buffer", data:Array.from(Buffer.from(body))};',' pm.variables.set("_pm.response.setBody", body);'," }"," };",""," pm.response.setCode = function (code) {"," if (typeof code === 'number') {"," pm.response.originalCode = function () {"," return pm.response.code;"," };",""," pm.response.code = code;",' pm.variables.set("_pm.response.code", code);'," }"," };","}","const apipost = postman;","const apt = fox = ea = echoapi = insomnia = pm;",`\n // Compatible with tc\n const expect = pm.expect;\n const assert = pm.assert;\n assert.equal = (source, dist) => { return source === dist }\n const tc = {};\n try {\n // global\n tc.loadModule = require;\n tc.info = {};\n tc.delay = sleep;\n\n // Ignored library\n tc.exec = () => { console.warn("The tc.exec script syntax of Thunder client is not supported.") }\n tc.runRequest = () => { console.warn("The tc.runRequest script syntax of Thunder client is not supported, Please use pm.sendRequest() instead.") }\n tc.skipRequest = () => { console.warn("The tc.skipRequest script syntax of Thunder client is not supported.") }\n tc.chartHTML = () => { console.warn("The tc.chartHTML script syntax of Thunder client is not supported.") }\n tc.retryRequest = () => { console.warn("The tc.retryRequest script syntax of Thunder client is not supported.") }\n tc.runRequest = () => { console.warn("The tc.runRequest script syntax of Thunder client is not supported.") }\n tc.setCookie = () => { console.warn("The tc.setCookie script syntax of Thunder client is not supported.") }\n tc.clearCookies = () => { console.warn("The tc.clearCookies script syntax of Thunder client is not supported.") }\n tc.getCookies = () => { console.warn("The tc.getCookies script syntax of Thunder client is not supported.") }\n tc.readFile = () => { console.warn("The tc.readFile script syntax of Thunder client is not supported.") }\n tc.loadFromPath = () => { console.warn("The tc.loadFromPath script syntax of Thunder client is not supported.") }\n\n // test\n tc.test = (name, func) => {\n if (lodashv4.isFunction(func)) {\n if(!lodashv4.isUndefined(func())){\n try{\n pm.test(name, func)\n }catch(e){}\n }else{\n pm.test(name, pm.expect(func()).to.equal(true))\n }\n } else {\n pm.test(name, pm.expect(lodashv4.toInteger(func) > 0 ? true : false).to.equal(true))\n }\n }\n\n // var\n tc.setVar = (key, value) => { pm.environment.set(key, value) };\n tc.getVar = (key) => { return pm.environment.get(key) };\n\n // Param\n tc.setParam = (key, value) => { pm.setRequestQuery(key, value) };\n\n // request\n tc.request = lodashv4.cloneDeep(request);\n tc.request.body = {};\n tc.request.name = request.name;\n tc.request.id = request.id;\n tc.request.name = request.name;\n tc.request.setHeader = (key, value) => { pm.setRequestHeader(key, value) };\n tc.request.getHeader = (key) => { return pm.request.headers.get(key) };\n tc.request.setBody = (key, value) => { pm.setRequestBody(key, value) };\n\n // response\n if (lodashv4.isObject(pm.response)) {\n tc.response = lodashv4.cloneDeep(response);\n tc.response.size = pm.response.responseSize;\n tc.response.status = pm.response.code;\n tc.response.time = pm.response.responseTime;\n tc.response.text = response?.raw?.responseText;\n tc.response.contentType = lodashv4.get(response, 'headers.content-type');\n tc.response.cookies = lodashv4.toPairs(lodashv4.get(tc, 'response.cookies')).map(([key, value]) => ({ key, value }));\n tc.response.headers = lodashv4.cloneDeep(lodashv4.cloneDeep(pm.response.headers.toJSON()));\n tc.response.getHeader = (key) => { return lodashv4.get(response.headers, lodashv4.toLower(key)) };\n tc.response.getBinary = () => { console.warn("The tc.getBinary script syntax of Thunder client is not supported.") }\n }\n } catch (e) {\n console.warn("Thunder Client script has an issue; please check manually. EchoAPI is fully compatible with Postman.")\n }\n \n // 自定义函数\n ${c}\n `],p={prerequest:[],test:[]},u={pre_tasks:"prerequest",post_tasks:"test"};return q.forEach(q.keys(u),(e=>{let t=q.join(l,"\n");q.forEach(q.get(n,`request.${e}`),(e=>{if(q.isObject(e)&&e.enabled>0)switch(e.type){case"customScript":!q.isEmpty(e?.data)&&q.isString(e?.data)&&"undefined"!=e?.data&&(t=`${t}\n${q.trim(e?.data)}\n`);break;case"database":let s=a[e.data?.connectionId]||{};q.isEmpty(s)||(s=JSON.stringify(s,null,"\t"),t=`${t}\n ! await (async function(){ \n const dbData = ${JSON.stringify(e.data||{query:""})} // 此处先进性expmock替换\n const query = pm.variables.replaceIn(lodashv4.get(dbData, "query"));\n const method = pm.variables.replaceIn(lodashv4.get(dbData, "method") || "");\n\n try{\n let dbResultList = await pm.queryDatabase(lodashv4.assign(${s},{\n method:method,\n query:query\n }));\n\n let {err, result} = dbResultList;\n\n if(err == 'success'){\n if(${e.data?.isConsoleOutput} > 0){\n console.log(query, result)\n }\n if(lodashv4.isObject(result)){\n lodashv4.forEach(${JSON.stringify(e.data?.variables||[])}, (item) => {\n let extra_value = jsonpath.value(result, lodashv4.trim(item?.pattern) || "$");\n pm[item?.type].set(item?.name, extra_value);\n });\n }else{\n if(!lodashv4.isObject(result)){\n lodashv4.forEach(${JSON.stringify(e.data?.variables||[])}, (item) => {\n let extra_value = result;\n pm[item?.type].set(item?.name, extra_value);\n });\n }\n } \n }else{\n console.error(query, String(result))\n } \n }catch(e){};\n })();`);break;case"wait":const n=q.toInteger(e?.data);n>0&&(t=`${t}\nsleep(${n});`);break;case"assert":t=`${t}\n !(function(){ \n let assertObjectData = ${JSON.stringify(e)};\n let responseData = '';\n let expertData = null;\n let expertExpression = '';\n let expertValue = null;\n\n if(_.get(assertObjectData, "data.type") == 'responseJson'){\n try{\n responseData = pm.response.json();\n }catch(e){\n responseData = xml2Json(pm.response.text()) || {}\n }\n\n expertData = jsonpath.value(responseData, _.get(assertObjectData, "data.expression.path") || "$");\n }else if(_.get(assertObjectData, "data.type") == 'responseXml'){\n try{\n responseData = pm.response.text();\n var xpath = require('xpath');\n var dom = require('xmldom').DOMParser;\n expertData = String(xpath.select(_.get(assertObjectData, "data.expression.path"), new dom().parseFromString(responseData, 'text/xml')));\n }catch(e){}\n }else if(_.get(assertObjectData, "data.type") == 'responseText'){\n expertData = pm.response.text();\n }else if(_.get(assertObjectData, "data.type") == 'responseHeader'){\n expertData = pm.response.headers.get(_.get(assertObjectData, "data.expression.path"));\n }else if(_.get(assertObjectData, "data.type") == 'responseCookie'){\n expertData = _.get(response.cookies, _.get(assertObjectData, "data.expression.path"));\n }else if(_.get(assertObjectData, "data.type") == 'responseCode'){\n expertData = pm.response.code;\n }else if(_.get(assertObjectData, "data.type") == 'responseTime'){\n expertData = pm.response.responseTime;\n }else if(_.get(assertObjectData, "data.type") == 'responseSize'){\n expertData = pm.response.responseSize;\n }else if(_.get(assertObjectData, "data.type") == 'tempVars'){\n expertData = pm.variables.get(_.trim(_.get(assertObjectData, "data.expression.path"), '{}'));\n }else if(_.get(assertObjectData, "data.type") == 'envVars'){\n expertData = pm.environment.get(_.trim(_.get(assertObjectData, "data.expression.path"), '{}'));\n }else if(_.get(assertObjectData, "data.type") == 'globalVars'){\n expertData = pm.globals.get(_.trim(_.get(assertObjectData, "data.expression.path"), '{}'));\n }\n \n expertValue = pm.variables.replaceIn(_.get(assertObjectData, "data.expression.compareValue"));\n \n if(_.get(assertObjectData, "data.expression.compareType") == "eq"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(String(expertData)).to.eql(String(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "uneq"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(String(expertData)).to.not.eql(String(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "lt"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(lodashv4.toNumber(expertData)).to.be.below(lodashv4.toNumber(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "lte"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(lodashv4.toNumber(expertData)).to.be.at.most(lodashv4.toNumber(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "gt"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(lodashv4.toNumber(expertData)).to.be.above(lodashv4.toNumber(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "gte"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(lodashv4.toNumber(expertData)).to.be.at.least(lodashv4.toNumber(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "includes"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(String(expertData)).to.include(String(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "unincludes"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(String(expertData)).to.not.include(String(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "null"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(expertData).to.be.empty;\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "notnull"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(String(expertData)).to.not.be.empty;\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "exist"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(expertData).to.exist;\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "notexist"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(expertData).to.not.exist;\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "regularmatch"){\n expertExpression = null;\n\n if(!lodashv4.isEmpty(expertValue)){\n expertValue = new RegExp(lodashv4.trim(expertValue, '/'));\n\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(expertData).to.match(expertValue);\n });\n }\n }else if(_.get(assertObjectData, "data.expression.compareType") == "belongscollection"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(String(expertData)).to.be.oneOf(lodashv4.split(expertValue, ","));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "notbelongscollection"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(String(expertData)).to.not.be.oneOf(lodashv4.split(expertValue, ","));\n });\n }\n })();\n `;break;case"pickVars":const r={tempVars:"variables",envVars:"environment",globalVars:"globals"};switch(t=`${t}\n\n !(function(){ \n `,e.data?.source){case"requestHeader":t=`${t}\n\n let varSource = request?.headers;\n `;break;case"requestBody":t=`${t}\n\n let varSource = request?.request_bodys;\n if(typeof varSource === 'string'){\n try{\n varSource = JSON5.parse(varSource)\n }catch(e){}\n }\n `;break;case"responseJson":t=`${t}\n\n let varSource = '';\n\n try{\n varSource = pm.response.json();\n }catch(e){\n varSource = xml2Json(pm.response.text())\n }\n `;break;case"responseXml":case"responseText":t=`${t}\n\n let varSource = pm.response.text();\n `;break;case"responseHeader":t=`${t}\n\n let varSource = pm.response.headers;\n `;break;case"responseCookie":t=`${t}\n\n let varSource = response.cookies;\n `;break;case"responseCode":t=`${t}\n\n let varSource = pm.response.code;\n `;break;case"responseTime":t=`${t}\n\n let varSource = pm.response.responseTime;\n `;break;case"responseSize":t=`${t}\n\n let varSource = pm.response.responseSize;\n `}q.forEach(e.data?.variables,(s=>{if(q.isObject(s)&&""!=s?.name&&!q.isUndefined(r[s?.type]))switch(e.data?.source){case"requestHeader":t=`${t}\n\n !(function(){\n let pickVars = ${JSON.stringify(s)};\n try{\n pm[${JSON.stringify(r[s?.type])}].set(_.get(pickVars,"name"), _.get(varSource, lodashv4.toLower(_.trim(_.get(pickVars,"expression")))));\n }catch(e){}\n })();\n `;break;case"requestBody":case"responseJson":t=`${t}\n\n !(function(){\n let pickVars = ${JSON.stringify(s)};\n pm[${JSON.stringify(r[s?.type])}].set(_.get(pickVars,"name"), jsonpath.value(varSource, _.trim(_.get(pickVars,"expression")) || "$"));\n })();\n `;break;case"responseXml":t=`${t}\n\n !(function(){\n let pickVars = ${JSON.stringify(s)};\n let xmlValue = '';\n var xpath = require('xpath');\n var dom = require('xmldom').DOMParser;\n\n try{\n xmlValue = String(xpath.select(_.trim(_.get(pickVars,"expression")), new dom().parseFromString(varSource, 'text/xml')));\n }catch(e){}\n\n pm[${JSON.stringify(r[s?.type])}].set(_.get(pickVars, "name"), xmlValue);\n })();\n `;break;case"responseHeader":t=`${t}\n\n !(function(){\n let pickVars = ${JSON.stringify(s)};\n try{\n pm[${JSON.stringify(r[s?.type])}].set(_.get(pickVars,"name"), varSource.get(_.trim(_.get(pickVars,"expression"))));\n }catch(e){}\n })();\n `;break;case"responseCookie":t=`${t}\n\n !(function(){\n let pickVars = ${JSON.stringify(s)};\n pm[${JSON.stringify(r[s?.type])}].set(_.get(pickVars,"name"), _.get(varSource, _.trim(_.get(pickVars,"expression"))));\n })();\n `;break;case"responseText":case"responseCode":case"responseTime":case"responseSize":t=`${t}\n\n !(function(){\n let pickVars = ${JSON.stringify(s)};\n pm[${JSON.stringify(r[s?.type])}].set(_.trim(_.get(pickVars, "name")), varSource);\n })();\n `}})),t=`${t}\n })();`}})),t=`${t}\n\n if(_.isObject(pm.response)){\n if(!_.isFunction(pm.response.originalText) || pm.response.originalText() == pm.response.text()){\n if(response?.raw?.responseText != pm.response.text()){\n pm.response.setBody(response?.raw?.responseText);\n }else if(pm.response?.raw?.responseText != pm.response.text()){\n pm.response.setBody(pm.response?.raw?.responseText);\n }\n }\n }\n `;const s=q.split(t,"\n");p[u[e]].push({listen:u[e],script:{exec:q.isEmpty(q.filter(q.get(n,`request.${e}`),(e=>e?.enabled>0)))?[]:s,type:"text/javascript"}})})),p[t]};const U=(e,t)=>{const s=q.assign(q.pick(e,["event_id","test_id"]),q.pick(e?.data,["target_id","project_id"]));if(q.includes(["api","sample","sse","request"],e?.type)){q.toInteger(e?.auto_sync)>0||q.includes(["http_request","get_parsed_request"],t?.scene)?q.assign(s,u(t?.collection,q.get(e,"data.target_id"))):q.assign(s,q.get(e,"data.apiData"));const n=[];if(q.includes(["sample"],e?.type)){const s=q.get(u(t?.collection,q.get(e,"data.target_id")),"parent_id");q.isString(s)&&s&&y(t?.collection,s,n)}else y(t?.collection,q.get(e,"data.target_id"),n);q.includes(n,"0")||n.push("0"),q.forEach(n,(e=>{const n={};"0"==e?q.assign(n,q.get(t,"project.request")):q.assign(n,q.get(u(t?.collection,e),"request")),q.isObject(n)&&!q.isEmpty(n)&&["header","body","query","cookie"].forEach((e=>{let t=q.filter(q.get(n,`${e}.parameter`),(e=>q.toInteger(e.is_system)>0||e.is_checked>0));if(!q.isEmpty(t)&&q.isArray(t)){const n=q.filter(q.get(s,`request.${e}.parameter`),(e=>e.is_checked>0))||[],a=q.chain(n).groupBy("key").map((e=>q.reduce(e,((e,t)=>t.is_checked>0?t:e),e[e.length-1]))).value(),r=q.chain(t).groupBy("key").map((e=>q.reduce(e,((e,t)=>t.is_checked>0?t:e),e[e.length-1]))).value();"header"==e?q.set(s,`request.${e}.parameter`,q.unionBy(a,r,(e=>q.toLower(e.key)))):q.set(s,`request.${e}.parameter`,q.unionBy(a,r,"key"))}}))}));let a={},r=q.get(s,"server_id");q.forEach(q.reverse(n),(e=>{const n={};if("0"==e)q.assign(n,q.get(t,"project.request"));else{const a=q.get(u(t?.collection,e),"server_id");q.isUndefined(q.get(s,"server_id"))&&q.isString(a)&&(r=a),q.assign(n,q.get(u(t?.collection,e),"request"))}q.isObject(n)&&!q.isEmpty(n)&&["auth","pre_script","test","pre_tasks","post_tasks"].forEach((e=>{const t=q.get(n,`${e}`);q.isEmpty(t)||(q.isArray(t)?a[e]=q.union(a[e],t):q.isObject(t)?"auth"==e&&"inherit"!=q.get(t,"type")&&(q.set(a,"auth.type",q.get(t,"type")),q.set(a,`auth.${q.get(t,"type")}`,q.get(t,`${q.get(t,"type")}`))):q.isString(t)&&(a[e]=`${a[e]}\n${t}`))}))})),q.forEach(a,((e,t)=>{q.isEmpty(e)||(q.isArray(e)?q.set(s,`request.${t}`,q.union(e,q.get(s,`request.${t}`))):q.isObject(e)?"auth"==t&&"inherit"==q.get(s,"request.auth.type")&&(q.set(s,"request.auth.type",q.get(e,"type")),q.set(s,`request.auth.${q.get(e,"type")}`,q.get(e,`${q.get(e,"type")}`))):q.isString(e)&&q.set(s,`request.${t}`,`${e}\n${q.get(s,`request.${t}`)}`))})),q.unset(a);const o=[];q.get(t,"cookies.switch")>0&&q.isArray(q.get(t,"cookies.data"))&&q.forEach(q.get(t,"cookies.data"),(e=>{let t=q.trim(e?.key);if(q.isObject(e)&&!q.isEmpty(t)){let s=q.find(o,q.matchesProperty("key",t)),n=e?.domain;try{const t=new O(e?.domain);n=q.join(t?.host,".")}catch(e){}const a={key:t,value:e?.value,domain:n,path:("undefined"!=e?.path?e?.path:"/")||"/",expires:e?.expires||new Date((new Date).getTime()+36e5),maxAge:e?.maxAge||3600,secure:!!q.toInteger(e?.secure),httpOnly:!!q.toInteger(e?.httpOnly),sameSite:e?.sameSite||"strict"};s>-1?o[s]=a:o.push(a)}})),q.isArray(q.get(s,"request.cookie.parameter"))&&q.forEach(q.get(s,"request.cookie.parameter"),(e=>{let t=q.trim(e?.key);if(q.isObject(e)&&!q.isEmpty(t)&&e?.is_checked>0){let s=q.find(o,q.matchesProperty("key",t)),n={key:t,value:e?.value,schema:e?.schema};s>-1?o[s]=n:o.push(n)}})),q.set(s,"request.cookie.parameter",o),q.unset(o),q.isString(r)&&"0"!==q.toString(r)||(r="1");const i=q.isString(q.get(s,"url"))?q.get(s,"url"):q.get(s,"request.url"),{globals:c,env:l}=t;let p=q.trim(q.get(s,"pre_url",""));""==p&&(p=q.trim(q.get(q.find(q.get(t,"env.env_pre_urls"),(e=>e?.server_id==r)),"uri"))),""!=p&&("2"!=t?.env?.env_id||q.endsWith(p,"/")||(p=`${p}/`),q.startsWith(p,"{{")||q.startsWith(q.toLower(p),"http://")||q.startsWith(q.toLower(p),"https://")?q.set(s,"url",d(p,i)):q.set(s,"url",d("http://",p,i)));let m=s?.url;q.forEach(q.assign({},c,q.get(l,"environment")),((e,t)=>{m=g(m,`{{${t}}}`,String(e))})),q.set(s,"initVarReplacedUrl",m)}else if(q.includes(["script"],e?.type))q.set(s,"request.pre_tasks",[{type:"customScript",enabled:1,data:e?.data?.content}]);else if(q.includes(["assert"],e?.type))q.set(s,"name","脚本断言"),q.set(s,"request.pre_tasks",[{type:"customScript",enabled:1,data:e?.data?.content}]);else if(q.includes(["sql"],e?.type))q.set(s,"request.pre_tasks",[{type:"database",id:e?.event_id,name:"Database",enabled:1,data:q.assign({connectionId:"",query:"",isConsoleOutput:1,variables:[]},e?.data)}]);else if(q.includes(["assert_visual"],e?.type)){const{type:t,expression:n}=e?.data?.data||{};q.isString(t)&&!q.isEmpty(n)&&(q.set(s,"name","可视化断言"),q.set(s,"request.pre_tasks",[{type:"assert",id:e?.event_id,name:"Visual assertion",enabled:1,data:{type:t,expression:q.assign({compareType:"eq",compareValue:"",path:""},n)}}]))}const n=((e,t)=>{const s={},n=q.get(t,"system_configs",{}),o=e=>{try{return q.toInteger(n?.auto_gen_mock_url)>0?D.mock(e):e}catch(t){return e}},i=o(q.get(e,"url")||q.get(e,"request.url")),c=new O(i);try{c?.query.clear()}catch(e){}const l=q.toInteger(q.get(e,"request.query.query_add_equal")||-1);q.forEach(q.get(e,"request.query.parameter"),(e=>{if(q.isObject(e)&&e?.is_checked>0){let{key:s,value:n,schema:a}=e;if(s=String(o(q.trim(s))),n=String(o(n)),""==n&&q.isObject(a)){const e=m(a,[],t?.lang,t?.custom_functions||{});q.isUndefined(e)||(n=e)}""!=s&&c?.query?.members?.push(""==n&&l<1?new S.QueryParam({key:s,value:null}):new S.QueryParam({key:s,value:n}))}})),"2"!=t?.env?.env_id||q.includes(q.keys(c?.query?.toObject()),"target_id")||c?.query?.members?.push(new S.QueryParam({key:"target_id",value:e?.target_id}));const p=[];if(q.isArray(q.get(c,"path"))){const e=q.map(q.get(c,"path"),(e=>q.startsWith(e,"{")&&!q.startsWith(e,"{{")&&q.endsWith(e,"}")&&!q.endsWith(e,"}}")?":"+e.slice(1,-1):e));q.set(c,"path",e)}if(q.forEach(q.get(e,"request.restful.parameter"),(e=>{if(q.isObject(e)&&e?.is_checked>0){let{key:s,value:n,schema:a}=e;if(s=o(q.trim(s)),n=o(n),""==n&&q.isObject(a)){const e=m(a,[],t?.lang,t?.custom_functions||{});q.isUndefined(e)||(n=e)}""!=s&&p.push({key:s,value:n})}})),q.isUndefined(c?.protocol)){const e=/^{{.*}}/;q.startsWith(q.first(c?.host),"{{")||e.test(q.first(c?.host))||q.set(c,"protocol","http")}const u=String(c);if(c?.query?.members?.length>0)try{q.set(c,"query",c?.query?.toJSON())}catch(e){q.set(c,"query",c?.query?.toObject())}else q.set(c,"query",void 0);q.set(s,"url",{raw:u,variable:p,...c}),q.set(s,"protocol",q.get(e,"protocol")||"http/1.1");let d=q.get(e,"method")||"GET";q.includes(["CONNECT"],q.toUpper(d))&&(d="GET"),q.set(s,"method",d);const g={},y=q.get(e,"request.auth.type")||"noauth";if(q.isString(y)&&"noauth"!=y&&"inherit"!=y)switch(y){case"kv":q.assign(g,{type:"apikey",apikey:[{key:"in",value:q.get(e,"request.auth.kv.in")||"header",type:"string"},{key:"value",value:o(q.get(e,"request.auth.kv.value"))||"",type:"string"},{key:"key",value:o(q.get(e,"request.auth.kv.key"))||"",type:"string"}]});break;case"basic":q.assign(g,{type:"basic",basic:[{key:"password",value:o(q.get(e,"request.auth.basic.password"))||"",type:"string"},{key:"username",value:o(q.get(e,"request.auth.basic.username"))||"",type:"string"}]});break;case"bearer":q.assign(g,{type:"bearer",bearer:[{key:"token",value:o(q.get(e,"request.auth.bearer.key"))||"",type:"string"}]});break;case"digest":const t={username:"username",password:"password",realm:"realm",nonce:"nonce",algorithm:"algorithm",qop:"qop",opaque:"opaque",nc:"nonceCount",cnonce:"clientNonce",disableRetryRequest:"disableRetryRequest"};q.set(g,"type",y),q.set(g,y,[]),q.forEach(q.get(e,`request.auth.${y}`),((e,s)=>{s=t[o(s)],q.isString(e)&&(e=o(e));const n=q.isBoolean(e)?e:q.isInteger(e)?!!e:q.isString(e)?e:"",a=q.isInteger(e)||q.isBoolean(e)?"boolean":"string";g[y].push({key:s,value:n,type:a})})),-1==q.keys(q.get(e,`request.auth.${y}`)).indexOf("disableRetryRequest")&&g[y].push({key:"disableRetryRequest",value:!1,type:"boolean"});break;case"hawk":case"oauth1":case"oauth2":case"awsv4":case"ntlm":case"jwt":case"asap":case"edgegrid":q.set(g,"type",y),q.set(g,y,[]),q.forEach(q.get(e,`request.auth.${y}`),((e,t)=>{q.isString(e)&&(e=o(e)),t=o(t);const s=q.isBoolean(e)?e:q.isInteger(e)?!!e:q.isString(e)?e:"",n=q.isInteger(e)||q.isBoolean(e)?"boolean":"string";g[y].push({key:t,value:s,type:n})}))}!q.isEmpty(g)&&q.set(s,"auth",g);const b=[];q.forEach(q.get(e,"request.header.parameter"),(e=>{if(q.isObject(e)&&e?.is_checked>0){let s=!(e?.is_checked>0),{key:n,value:a,schema:r}=e;if(n=o(q.trim(n)),a=o(a),""==a&&q.isObject(r)){const e=m(r,[],t?.lang,t?.custom_functions||{});q.isUndefined(e)||(a=e)}""!=n&&b.push({key:n,value:a,disabled:s})}}));let v="";if("oauth2"==g?.type&&q.isArray(g?.oauth2)){const e=q.find(g.oauth2,{key:"addTokenTo"}),t=q.find(g.oauth2,{key:"headerPrefix"}),n=q.find(g.oauth2,{key:"access_token"});if(n?.value)if(v=n.value,v=t?.value?t.value+" "+v:"Bearer "+v,"header"==e?.value)b.push({key:"Authorization",value:v,disabled:!1}),v="";else if("queryParams"==e?.value){v=n.value;const e=s.url.raw,t=new URL(e);t.searchParams.set("access_token",v);const a=s.url.query||[];a.push({key:"access_token",value:v}),q.set(s,"url",{...s.url,raw:t.toString(),query:a}),v=""}else v=""}const _=new Map,k=[];q.forEach(b,((e,t)=>{const s=e.key.toLowerCase();_.has(s)&&k.push(_.get(s)),_.set(s,t)})),k.length>0&&q.forEachRight(k,(e=>{e>-1&&b.splice(e,1)})),q.set(s,"header",b);try{if(""!=s?.url?.raw){let n={};q.isString(q.get(e,"initVarReplacedUrl"))&&!q.isEmpty(q.get(e,"initVarReplacedUrl"))&&(n=new O(q.get(e,"initVarReplacedUrl")));const a=[];if(q.forEach(q.get(e,"request.cookie.parameter"),(r=>{if(q.isObject(r)){let i=f(o(r.key||r.name)),c=o(r.value);if(""==c&&q.isObject(r?.schema)){const e=m(r?.schema,[],t?.lang,t?.custom_functions||{});q.isUndefined(e)||(c=e)}(q.isUndefined(q.get(e,"request.cookie.cookie_encode"))||q.parseInt(q.get(e,"request.cookie.cookie_encode"))>0)&&(c=f(c));let l=q.assign(r,{key:i,name:i,value:c}),p=q.isEmpty(s?.url?.host)?s?.url?.raw:q.join(s?.url?.host,"."),u=s?.url?.path;q.isEmpty(n)||(p=q.isEmpty(n.host)?q.get(e,"initVarReplacedUrl"):q.join(n.host,"."),u=n.path);let d=q.join(u,"/");!q.startsWith(d,"/")&&q.startsWith(l?.path,"/")&&(d=`/${d}`),!q.endsWith(d,"/")&&q.endsWith(l?.path,"/")&&(d=`${d}/`),(q.isUndefined(l?.domain)||N(p,l?.domain)||q.endsWith(p,l?.domain))&&(q.isUndefined(l?.path)||"/"==l?.path||q.startsWith(d||"/",l?.path))&&(q.isUndefined(l?.expires)||q.gt(new Date(String(l?.expires)),new Date))&&a.push(`${l.name}=${l.value}`)}})),!q.isEmpty(a)){const e=q.find(s.header,(e=>q.toLower(e.key)===q.toLower("cookie")));e?e.value=q.join(a,";"):s.header.push({key:"Cookie",value:q.join(a,";")})}}}catch(e){}const x={},E=q.get(e,"request.body.mode")||"none";if(q.isString(E)&&"none"!=E){const n={"form-data":"formdata",plain:"text",binary:"file",msgpack:"msgpack"};switch(E){case"form-data":case"urlencoded":q.set(x,"mode",n[E]?n[E]:E),q.set(x,x.mode,[]);const i=q.get(e,"request.body.parameter");q.forEach(i,(s=>{if(q.isObject(s)&&s.is_checked>0&&""!=o(s.key))if("form-data"==E&&"file"===q.toLower(s.field_type)){const t=h(s.key,s.value,s.file_base64,e?.target_id);x[x.mode].push({key:o(s.key),src:t,type:"file",disabled:!1})}else{let{value:e,schema:n}=s;if(e=o(e),""==e&&q.isObject(n)){const s=m(n,[],t?.lang,t?.custom_functions||{});q.isUndefined(s)||(e=s)}"form-data"==E&&""!=s.content_type?x[x.mode].push({key:o(s.key),value:e,type:"text",disabled:!1,contentType:s.content_type}):x[x.mode].push({key:o(s.key),value:e,type:"text",disabled:!1})}}));break;case"binary":const c=h("binary",q.get(e,"request.body.binary.file_path"),q.get(e,"request.body.binary.data_url"),e?.target_id);q.assign(x,{mode:"file",file:{src:c}});break;default:let l=o(q.get(e,"request.body.raw"));if("msgpack"==E){const e=pe.default();try{l=e.encode(a.parse(r(l))).slice(),Object.setPrototypeOf(l,Object.getPrototypeOf({}))}catch(e){}const t=q.find(s.header,(e=>q.toLower(e.key)===q.toLower("content-type")));t?t.value="application/msgpack":s.header.push({key:"content-type",value:"application/msgpack"})}else if("json"==E&&t?.request_param_auto_json>0)try{l=a.stringify(a.parse(r(l))),Object.setPrototypeOf(l,Object.getPrototypeOf({}))}catch(e){}q.assign(x,{mode:"raw",raw:l,options:{raw:{language:n[E]?n[E]:E}}})}}return!q.isEmpty(x)&&q.set(s,"body",x),s})(s,t);return{requestJson:s,postmanJSON:n}};return T=(a,r,u,d,m)=>{const{scene:g}=r;return new Promise(((y,f)=>{try{Date.now();const{requestJson:D,postmanJSON:j}=U(a,r),$=new S.Item({name:q.get(D,"name")||"New request",request:j,event:[],protocolProfileBehavior:{disableBodyPruning:!0,disabledSystemHeaders:{accept:!0,"accept-encoding":!0,connection:!0}}}),T=((e,t,s)=>{const{requestJson:n}=e,a=[];q.forEach(q.get(s,"variables"),((e,t)=>{a.push({value:e,key:t,type:"any",enabled:!0})}));const r=new S.VariableScope({values:a}),o=[q.get(s,"iterationData")],i=[];q.forEach(q.get(s,"environment"),((e,t)=>{i.push({value:e,key:t,type:"any",enabled:!0})}));const c=new S.VariableScope({values:i}),l=[];q.forEach(q.defaults(q.get(s,"globals")||{},b()),((e,t)=>{l.push({value:e,key:t,type:"any",enabled:!0})}));const p=new S.VariableScope({values:l}),u={strictSSL:!1,protocolVersion:"http/1.1"==n?.protocol||q.includes(["sse"],n?.target_type)||q.isEmpty(n?.target_type)?"http1":"auto"==n?.protocol?"auto":"http2",timings:!0,verbose:!1,implicitCacheControl:!0,implicitTraceHeader:!1,followOriginalHttpMethod:q.get(t,"system_configs.follow_original_method")>0,followRedirects:q.get(t,"system_configs.auto_redirect")>0,maxRedirects:q.max([q.toInteger(q.get(t,"system_configs.max_redirect_time")),5])};q.get(t,"system_configs.ca_cert.open")>0&&""!=q.trim(q.get(t,"system_configs.ca_cert.path"))&&q.set(u,"extendedRootCA",q.trim(q.get(t,"system_configs.ca_cert.path")));const d=[];q.forEach(q.get(t,"system_configs.client_cert"),((e,t)=>{const s=new O(t);if(q.isObject(e)){s.port<=0&&(t=`${s.protocol}://${q.join(s.host,".")}:443`),["key","crt","pfx"].forEach((t=>{let s=q.get(e,`${t}.file_url`);if(q.isEmpty(s)&&(q.isEmpty(q.get(e,`${t}.file_base64`))||(s=h(q.get(e,`${t}.file_name`),q.get(e,`${t}.file_name`),q.get(e,`${t}.file_base64`),w()))),!q.isEmpty(s))try{I.statSync(s),q.set(e,`${t}.file_url`,s)}catch(e){}}));const n={name:`Client cert for ${t}`,matches:[t,`${t}/*`],passphrase:e?.password};["key","crt","pfx"].forEach((t=>{q.isEmpty(q.get(e,`${t}.file_url`))||q.set(n,"crt"==t?"cert":t,{src:q.get(e,`${t}.file_url`)})})),d.push(n)}}));let m=q.toInteger(q.get(t,"system_configs.send_timeout"));q.inRange(m,0,604800)||(m=0);const g={timeout:{request:m,script:0,global:0},delay:{item:0,iteration:0},iterationCount:1,fileResolver:B.default,data:o,environment:c,localVariables:r,globals:p,requester:u,systemProxy:async function(e,s){try{const n={},a=new O(e),r=q.toLower(q.join(a?.host,"."));if(1==q.get(t,"system_configs.proxy.type")){const e=q.get(t,"system_configs.proxy.auth.host").match(/(([^:]+):(\d+))/);if(q.isArray(e)&&q.toInteger(e[3])>0){let s=q.get(t,"system_configs.proxy.bypass");q.isString(s)&&(s=s.split(","));let o=q.find(s,(e=>N(r,e))),i=q.get(t,"system_configs.proxy.protocols");q.isString(i)&&(i=i.split(","));let c=q.find(i,(e=>(q.toLower(a?.protocol)||"http")==q.toLower(e)));!o&&c&&(q.set(n,"host",e[2]),q.set(n,"port",q.toInteger(e[3])))}}else if(-1==q.get(t,"system_configs.proxy.type")){let s=q.isString(q.get(process,"env.NO_PROXY"))&&q.get(t,"system_configs.proxy.envfirst")>0?String(q.get(process,"env.NO_PROXY")).split(","):[];if(q.isEmpty(s)||q.isUndefined(q.find(s,(e=>N(r,e))))){const s=String("https"==a?.protocol?q.get(process,"env.HTTPS_PROXY"):q.get(process,"env.HTTP_PROXY"));if((q.get(t,"system_configs.proxy.envfirst")>0||q.isEmpty(q.get(process,"versions.electron")))&&!q.isEmpty(s)&&"undefined"!=s){let e=new O(s);q.set(n,"host",q.join(e?.host,".")||""),q.set(n,"port",q.toInteger(e?.port)>0?q.toInteger(e?.port):0)}else if(!q.isEmpty(q.get(process,"versions.electron")))try{const t=(await require("electron").session.defaultSession.resolveProxy(e)).match(/PROXY (([^:]+):(\d+))/);q.isObject(t)&&q.isString(t[2])&&!q.isEmpty(t[2])&&q.toInteger(t[3])>0&&(q.set(n,"host",t[2]),q.set(n,"port",q.toInteger(t[3])))}catch(e){}}}return q.isString(n.host)&&""!=n.host&&(q.set(n,"tunnel","http"!=q.toLower(a?.protocol)),q.set(n,"authenticate",q.get(t,"system_configs.proxy.auth.authenticate")>0),n.authenticate&&(q.set(n,"username",q.get(t,"system_configs.proxy.auth.username")),q.set(n,"password",q.get(t,"system_configs.proxy.auth.password")))),!q.isEmpty(n)&&q.isString(n.host)&&""!=n.host&&"undefined"!=n.host?s(null,n):s(null,null)}catch(e){return s(null,null)}}};return q.isEmpty(d)||q.assign(g,{certificates:new S.CertificateList({},d)}),g})({requestJson:D,postmanJSON:j},r,d?.variables||{});(new R.Runner).run(new S.Collection({info:{name:q.get(D,"name")||"New request"},item:[$]}),T,((h,O)=>{h?f({action:"systemError",message:String(h),event_id:a?.event_id}):(q.set(d,[a?.event_id,"exception"],null),q.set(d,[a?.event_id,"error"],null),q.set(d,[a?.event_id,"console"],[]),q.set(d,[a?.event_id,"assertions"],[]),q.set(d,[a?.event_id,"visualizer"],{error:null,processed_template:""}),O.start({exception(e,t){if(t&&!q.includes(["assert_visual","assert"],a?.type)){const s=q.get(e,e?.scriptId);if(q.set(d,[a?.event_id,"exception",s],t),q.set(d,[a?.event_id,"error"],{error_type:s,message:t?.message}),q.includes(["prerequest","test"],s)){q.isUndefined(q.get(d,[a?.event_id,"console"]))&&q.set(d,[a?.event_id,"console"],[]);const e=Date.now();d[a?.event_id].console.push({time:e,level:"error",args:[String(t?.message)]})}if("prerequest"===s)try{O.abort(),q.isUndefined(q.get(d,[a?.event_id,"request"]))&&q.set(d,[a?.event_id,"request"],q.pick(D,["name","method","url"]))}catch(e){}}},console(e,t,...s){console.log(e,t,...s,3333),q.isUndefined(q.get(d,[a?.event_id,"console"]))&&q.set(d,[a?.event_id,"console"],[]);const n=Date.now();d[a?.event_id].console.push({time:n,level:t,args:s})},beforeRequest(e,t,s,n,a){const o=b();if(["globals","environment","variables"].forEach((e=>{q.assign(o,q.get(d,`variables.${e}`))})),((e,t,s,n)=>{const{postmanJSON:a}=t,{lang:r,custom_functions:o}=n,c=q.cloneDeep(o),l=/{{([^}]+)}}/g;let p=String(e?.url||"");if(!q.isEmpty(p)){const t=p.match(l);q.isEmpty(t)||(q.forEach(t,(e=>{try{const t=i(e,s,r,c);t==e||q.isUndefined(t)||(p=q.replace(p,e,t))}catch(e){}})),q.set(e,"url",new S.Url(p)))}q.forEach(q.get(a,"url.path"),((t,s)=>{if(q.startsWith(t,":")){const n=q.findKey(q.get(a,"url.variable"),(e=>e?.key==q.trimStart(t,":")));q.startsWith(q.get(a,`url.variable.${n}.value`),"{{")&&q.endsWith(q.get(a,`url.variable.${n}.value`),"}}")&&!q.isUndefined(q.get(e,`url.path.${s}`))&&q.set(a,`url.variable.${n}.value`,q.get(e,`url.path.${s}`))}})),q.isEmpty(e.headers)||e?.headers?.each((e=>{e?.disabled||["key","value"].forEach((t=>{let n=String(q.get(e,t));const a=n.match(l);q.isEmpty(a)||(q.forEach(a,(e=>{try{const t=i(e,s,r,c);t==e||q.isUndefined(t)||(n=q.replace(n,e,t))}catch(e){}})),q.set(e,t,n))}))}));const u=q.get(e,"body.mode");switch(u){case"urlencoded":case"formdata":q.isEmpty(e?.body[u])||e?.body[u].each(((e,t)=>{e?.disabled||["key","value"].forEach((t=>{let n=q.get(e,t);if(q.isString(n)){const a=n.match(l);q.isEmpty(a)||(q.forEach(a,(e=>{try{const t=i(e,s,r,c);t==e||q.isUndefined(t)||(n=q.replace(n,e,t))}catch(e){}})),q.set(e,t,n))}}))}));break;default:let t=q.get(e,"body.raw");if(q.isString(t)&&!q.isEmpty(t)){const n=t.match(l);q.isEmpty(n)||(q.forEach(n,(e=>{try{const n=i(e,s,r,c);n==e||q.isUndefined(n)||(t=q.replace(t,e,n))}catch(e){}})),q.set(e,"body.raw",t))}}})(s,{postmanJSON:j},o,q.pick(r,["lang","custom_functions"])),q.includes(["get_parsed_request"],g)){try{a?.abort(),O?.abort()}catch(e){}y(),u(x(s))}},beforePrerequest(e,t,s,n){if(!e){const e=C({requestJson:D,postmanJSON:j},"prerequest",r);q.forEach(e,(e=>{const n=new E(e);s.push(n),q.set(t,n?.script?.id,n?.listen)}))}},prerequest(e,t,s,n){e||q.forEach(s,(e=>{q.forEach(["_variables","environment","globals"],(t=>{const s=q.get(e,`result.${t}`),n={};try{q.forEach(q.get(s.toJSON(),"values"),(e=>{n[e?.key]=e?.value}))}catch(e){}try{const e=q.difference(q.keys(q.get(d,["variables",t])),q.keys(n));q.forEach(e,(e=>{"globals"!=t||q.includes(q.keys(b()),e)?"_variables"==t?q.unset(d,["variables","variables",e]):q.unset(d,["variables",t,e]):(q.unset(d,["variables","_globals",e]),q.unset(d,["variables",t,e]))})),q.forEach(n,((e,s)=>{let n=t;"_variables"===t&&(n="variables"),"globals"!==t||q.includes(q.keys(b()),s)||q.set(d,["variables","_globals",s],e),q.set(d,["variables",n,s],e)}))}catch(e){}}))}))},response:async(r,i,m,f,h,b,v)=>{if(q.includes(["get_parsed_request"],g)){try{O.abort()}catch(e){}u(x(f)),y()}else{if(r){if(!q.includes(["script","sql","assert_visual","assert"],a?.type)){q.set(d,[a?.event_id,"exception","prerequest"],String(r)),q.set(d,[a?.event_id,"error"],{error_type:"prerequest",message:String(r)}),q.isUndefined(q.get(d,[a?.event_id,"console"]))&&q.set(d,[a?.event_id,"console"],[]);const e=Date.now();d[a?.event_id].console.push({time:e,level:"error",args:[String(r?.message)]})}}else q.set(d,[a?.event_id,"response"],await async function(a,r){const i=q.cloneDeep(a);q.unset(i,"_details");try{q.assign(i,{body:String(i.stream)})}catch(e){}try{let t="Monaco",a={ext:"json",mime:"application/json"};if(n(i.body))q.assign(a,{ext:"svg",mime:"image/svg+xml"}),t="Image";else{const n=await e.fromBuffer(i.stream);if(q.isObject(n))q.assign(a,n),t=p(`test.${a?.ext}`)?"Image":"pdf"==a?.ext?"Pdf":"xml"==a?.ext?"Monaco":"Other";else{const e=_(i?.headers||{},"content-type")||"";if(q.isEmpty(e)){const e=s.isJson(i.body)?"json":s.isJsonp(i.body)?"jsonp":"html";a={ext:e,mime:o.getType(e)||"application/jsonp"}}else a={ext:o.getExtension(e),mime:o.getType(o.getExtension(e))}}}q.assign(i,{mimeType:a,fitForShow:t})}catch(e){}const l={};try{q.assign(l,q.reduce(a.headers?.toJSON(),((e,t)=>(e[t.key]?(Array.isArray(e[t.key])||(e[t.key]=[e[t.key]]),e[t.key].push(t.value)):e[t.key]=t.value,e)),{}))}catch(e){}try{q.assign(i,{headers:l})}catch(e){}let u=`${i?.id}.${i?.mimeType?.ext}`;try{if(u=q.get(t.parse(_(l||{},"content-disposition")),"parameters.filename"),q.isString(u))try{u=decodeURIComponent(u)}catch(e){}}catch(e){}i.filename=u,i.cookies={},i.arrCookies=[];let d=_(l||{},"set-cookie");q.isString(d)&&(d=[d]);try{q.forEach(d,(e=>{const t=c.Cookie.parse(e).toJSON();q.assign(t,{name:t?.key,cookie_id:s.snowflakeId(`cookie_id_${w()}`)}),i.arrCookies.push(t);const{key:n,value:a}=t;i.cookies[n]=a}))}catch(e){}const m=q.get(r,"execution.data.0.timings.requestStart")||Date.now();return q.assign(i,{proxy:q.get(r,"execution.data.0.request.proxy")||{},timings:q.mapKeys(q.get(r,"execution.data.0.timings.offset")||{},((e,t)=>q.snakeCase(t))),requestStart:m,response_at:m}),i}(m,v));const i=function(e,t,s,n){const a=q.assign(q.cloneDeep(e),q.pick(t,["project_id","target_id","name"]));a.mode=q.get(t,"request.body.mode");try{a.paths=q.fromPairs((q.get(s,"url.variable")||[]).map((e=>[e.key,e.value])))||{}}catch(e){}try{const e=q.mapValues(q.keyBy(q.get(n,"execution.data[0].request.headers")||{},"key"),"value");!q.isEmpty(e)&&q.isObject(e)?a.headers=e:a.headers=q.reduce(a.headers?.toJSON(),((e,t)=>(e[t.key]=t.value,e)),{})}catch(e){}try{a.querys=a.url?.query?.toObject(),a.url=String(a.url)}catch(e){}try{if(a.body=q.get(e,`body.${q.get(e,"body.mode")}`),"msgpack"==a.mode){const e=require("msgpack5")();try{a.body=JSON.stringify(e.decode(l.from(q.values(a.body))))}catch(e){}}try{a.body=a.body.toObject()}catch(e){}}catch(e){}try{a.uri=e?.url.toJSON(),q.forEach(a.uri,((e,t)=>{"query"==t?a.uri[t]=e.toObject():"host"==t?a.uri[t]=q.join(e,"."):"path"==t?a.uri[t]=q.join(e,"/"):q.isArray(e)&&(a.uri[t]=q.join(e,""))}))}catch(e){}a.cookies={};try{const e=a.headers?.cookie;!q.isEmpty(e)&&q.isString(e)&&q.forEach(q.split(e,";"),(e=>{const{key:t,value:s}=c.Cookie.parse(e).toJSON();a.cookies[t]=s}))}catch(e){}return a}(f,D,j,v);q.set(d,[a?.event_id,"request"],i)}},beforeTest(e,t,s,n){if(!e&&!q.includes(["get_parsed_request"],g)){const e=C({requestJson:D,postmanJSON:j},"test",r);q.forEach(e,(e=>{const n=new E(e);s.push(n),q.set(t,n?.script?.id,n?.listen)}))}},test(e,t,s,n){if(!e&&!q.includes(["get_parsed_request"],g)){q.forEach(s,(e=>{q.forEach(["_variables","environment","globals"],(t=>{const s=q.get(e,`result.${t}`),n={};try{q.forEach(q.get(s.toJSON(),"values"),(e=>{n[e?.key]=e?.value}))}catch(e){}try{const e=q.difference(q.keys(q.get(d,["variables",t])),q.keys(n));q.forEach(e,(e=>{"globals"!=t||q.includes(q.keys(b()),e)?"_variables"==t?q.unset(d,["variables","variables",e]):q.unset(d,["variables",t,e]):(q.unset(d,["variables","_globals",e]),q.unset(d,["variables",t,e]))})),q.forEach(n,((e,s)=>{let n=t;"_variables"===t&&(n="variables"),"globals"!==t||q.includes(q.keys(b()),s)||q.set(d,["variables","_globals",s],e),q.set(d,["variables",n,s],e)}))}catch(e){}}))}));const e=q.get(d,["variables","variables","_pm.response.setBody"]),t=q.toInteger(q.get(d,["variables","variables","_pm.response.code"]));q.isString(e)&&(q.set(d,[a?.event_id,"response","stream"],{type:"Buffer",data:Array.from(l.from(e))}),q.set(d,[a?.event_id,"response","body"],e)),t>0&&q.set(d,[a?.event_id,"response","code"],t)}},assertion(e,t){q.includes(["get_parsed_request"],g)||!q.isEmpty(t)&&q.isArray(t)&&(q.isUndefined(q.get(d,[a?.event_id,"assertions"]))&&q.set(d,[a?.event_id,"assertions"],[]),d[a?.event_id].assertions=q.unionWith(q.concat(q.get(d,[a?.event_id,"assertions"]),t),q.isEqual))},item(e,t,s,n,r){if(!q.includes(["get_parsed_request"],g))if(!e&&q.isObject(n)){const{error:e,processedTemplate:t}=n;q.set(d[a?.event_id],"visualizer",{error:e,processed_template:t})}else q.set(d[a?.event_id],"visualizer",{error:null,processed_template:""})},responseData(e,t){q.includes(["get_parsed_request"],g)||"sse"!==D?.target_type||u({action:"sse",data:{stream:t,size:q.size(t),time:Date.now()},msg:"success",error:null})},done(e,t){if(!q.includes(["get_parsed_request"],g)){if(!e){const e=q.filter(q.get(d,[a?.event_id,"assertions"]),(e=>!1===e?.passed));let t="Ok";q.inRange(q.toInteger(q.get(d,[a?.event_id,"response","code"])),200,300)||(t=q.get(d,[a?.event_id,"response","status"])||q.get(d,[a?.event_id,"error","message"])),q.set(d,[a?.event_id,"status"],{assert:q.get(d,[a?.event_id,"assertions"],[]),success_assert:e,http:t})}try{const e=v(d,a?.event_id)||{},t=q.pick(q.get(d,"variables"),["environment","_globals"]),s=q.assign(k(q.get(d,a?.event_id)),q.pick(e,["startTime","endTime","currentVariables"])),n=q.assign(q.pick(D,["parent_id","project_id","test_id","target_id"]),q.defaults(q.pick(s,["error","iteration_id","startTime","endTime","currentVariables"]),{error:null}),{action:"request",type:a?.type,data:q.assign({variables:{globals:q.get(t,"_globals",{}),environment:q.get(t,"environment",{})}},q.omit(q.cloneDeep(s),["error"])),event_id:a?.event_id});"auto_test"===g||"sse"===D?.target_type?q.includes(["assert","assert_visual","api","sample","script","sql"],a?.type)&&(m.push(q.assign(k(q.get(q.cloneDeep(d),a?.event_id)),q.pick(a,["type","event_id","test_id","iteration_id"]))),u({action:"request",data:q.assign(n,{type:a?.type})})):u(n)}catch(e){f({action:"systemError",message:String(e),event_id:a?.event_id})}}y()}}))}))}catch(e){f({action:"systemError",message:String(e),event_id:a?.event_id})}}))}}function ge(){if(C)return R;C=1;const e=J.default,t=Y.default,s=K.default,n=Q.default,a=P.default,{returnBoolean:r,variableReplaceForCondition:o,variableReplace:i,getVariableActedUpon:c,convertEndRuntimeState:l,repeatArrayToLength:p}=de(),u=me(),d=function(){if(N)return I;N=1;const e=J.default,t=P.default,{variableReplace:s,convertEndRuntimeState:n}=de();return I=async(a,r,o,i,c)=>{try{const l=t.toInteger(s(a?.data?.sleep,i?.variables,r))||0;l>0&&e(l);const p=n(i,a?.event_id)||{},u={action:"request",data:t.assign({data:{sleep:l}},t.pick(p,["startTime","endTime","currentVariables"]),t.pick(a,["project_id","test_id","event_id","type"]),t.pick(t.get(i,a?.event_id),["iteration_id"]))};c.push(u?.data),o(u)}catch(e){throw{action:"systemError",message:String(e),event_id:a?.event_id}}}}(),m={api:u,sample:u,sse:u,request:u,script:u,assert:u,assert_visual:u,sql:u,wait:d,if:async(e,t,s,n,i)=>{try{const{data:p,children:u}=e,d=a.filter(u,(e=>a.toInteger(e?.enabled>0))),m=o(p?.var,n?.variables,t),g=p?.compare,f=o(p?.value,n?.variables,t),h=r(m,g,f),b=l(n,e?.event_id)||{},v={action:"request",data:a.assign({data:{isMatched:h,condition:{leftValue:{variable:p?.var,value:m,actedUpon:c(n,a.trim(p?.var,"{}"))||"Fixed"},compare:g,rightValue:{variable:p?.value,value:f,actedUpon:c(n,a.trim(p?.value,"{}"))||"Fixed"}}}},a.pick(b,["startTime","endTime","currentVariables"]),a.pick(e,["project_id","test_id","event_id","type"]),a.pick(a.get(n,e?.event_id),["iteration_id"]))};if(i.push(v?.data),s(v),h&&a.isArray(d)&&!a.isEmpty(d)){const{iterationData:e}=t,r=[e];await y(d,a.assign(a.cloneDeep(t),{iterationDataArr:r}),s,n,i)}}catch(t){throw{action:"systemError",message:String(t),event_id:e?.event_id}}},begin:async(e,t,s,n,r)=>{try{const{children:o}=e,i=a.filter(o,(e=>a.toInteger(e?.enabled>0)));if(a.isArray(i)&&!a.isEmpty(i)){const{iterationData:e}=t,o=[e];await y(i,a.assign(a.cloneDeep(t),{iterationDataArr:o}),s,n,r)}}catch(t){throw{action:"systemError",message:String(t),event_id:e?.event_id}}},loop:async(e,s,c,l,u)=>{try{const{data:d,children:m}=e,g=a.filter(m,(e=>a.toInteger(e?.enabled>0))),f=a.toInteger(i(a.get(d,"sleep",0),l?.variables,s)),h=a.toInteger(a.get(s,"startTime",Date.now())),b=a.toInteger(a.get(s,"timeout",a.toInteger(i(a.get(d,"loop_timeout",0),l?.variables,s))));if(a.isArray(g)&&!a.isEmpty(g)){const e=[];if((a.toInteger(d?.enable_data)||1)>0){switch(a.toInteger(d?.loop_data_type)||1){case 1:a.assign(e,a.values(a.get(d,"loop_traverse_data.iterationData",[])));break;case 2:const r=a.trim(a.get(d,"loop_iteration_data"));if(a.isString(r)&&""!=r){const s={1:"response.body",2:"response.headers",3:"response.cookies",4:"response.code",5:"request.url",6:"request.method",7:"request.querys",8:"request.body",9:"request.headers",10:"request.cookies"},o=a.toInteger(a.get(d,"loop_extract.var")),i=a.get(l,`${r}.${s[o]||"response.body"}`),c=a.trim(String(a.get(d,"loop_extract.value","$")));let p;switch(o){case 1:case 8:try{p=a.isString(i)?t.value(n.parse(i),c):t.value(i,c)}catch(e){}break;case 2:case 3:case 7:case 9:case 10:p=a.get(i,c);break;case 4:case 5:case 6:p=a.cloneDeep(i)}if(a.isString(p))try{p=n.parse(p)}catch(e){}a.isNumber(p)&&(p=String(p));let u=[];a.isArray(p)?u=a.map(p,(e=>a.isObject(e)?a.pickBy(e,(e=>!a.isObject(e))):{0:e})):a.isObject(p)?a.forEach(p,((e,t)=>{if(!a.isObject(e)){const s={};a.set(s,t,e),u.push(s)}})):a.isString(p)&&(u=a.map(a.values(p),((e,t)=>{const s={};return s[String(t)]=e,s}))),a.assign(e,u)}break;case 3:{let t=i(a.get(d,"loop_variable",""),l?.variables,s);if(a.isString(t))try{t=n.parse(t)}catch(e){}a.isNumber(t)&&(t=String(t));let r=[];a.isArray(t)?r=a.map(t,(e=>a.isObject(e)?a.pickBy(e,(e=>!a.isObject(e))):{0:e})):a.isObject(t)?a.forEach(t,((e,t)=>{if(!a.isObject(e)){const s={};a.set(s,t,e),r.push(s)}})):a.isString(t)&&(r=a.map(a.values(t),((e,t)=>{const s={};return s[String(t)]=e,s}))),a.assign(e,r)}break;case 4:{let t=a.split(a.get(d,"loop_fixed_value",""),","),s=[];a.forEach(t,((e,t)=>{a.isObject(e)||s.push({$key:t,$item:e})})),a.assign(e,s)}}}const m=a.toInteger(a.get(d,"loop_type",1));if(a.includes([1,2],m)){const t=1===m?a.size(e):a.toInteger(a.get(d,"limit",1));if(t>0){let n=a.cloneDeep(e);2===m&&(n=p(n,t)),n=a.flatMap(n,(e=>a.times(a.size(g),(()=>e))));const r=a.flatten(a.times(t,(()=>a.cloneDeep(g))));await y(r,a.assign(a.cloneDeep(s),{iterationDataArr:n,sleep:f,startTime:h,timeout:b}),c,l,u)}}else if(a.includes([3],m))for(;;){const t=a.get(s,"condition",a.get(d,"loop_condition",{})),n=o(t?.var,l?.variables,s),i=t?.compare,p=o(t?.value,l?.variables,s);if(!(0===b||b>0&&h+b>Date.now())||r(n,i,p))break;await y(a.cloneDeep(g),a.assign(a.cloneDeep(s),{iterationDataArr:e,sleep:f,condition:t,startTime:h,timeout:b}),c,l,u)}}}catch(t){throw{action:"systemError",message:String(t),event_id:e?.event_id}}}},g=async(e,t,n,r,o)=>{a.isUndefined(e.event_id)&&"http_request"===t?.scene&&a.set(e,"event_id",a.get(e,"data.target_id")),a.assign(r?.variables?.iterationData,a.get(t,"iterationData")),a.set(r,[e.event_id,"iteration_id"],s.snowflakeId());const i=a.get(m,`${e?.type}`);if(a.isFunction(i)){const{total:s,scene:c}=t;a.set(r,[e.event_id,"iteration","startTime"],Date.now());const{environment:l={},variables:p={},_globals:u={},iterationData:d={}}=a.get(r,"variables",{});a.set(r,[e.event_id,"iteration","startVariables"],a.cloneDeep({environment:l,variables:p,iterationData:d,globals:u}));try{Date.now();await i(e,t,n,r,o),"auto_test"==c&&a.isInteger(e?.progress)&&n({action:"process",data:{processCurrentCount:e?.progress+1,processTotalCount:s,event_id:e?.event_id,testing_id:e?.test_id}})}catch(e){if(a.toInteger(t?.ignore_error)<1)throw e}}},y=async(t,s,n,r,o)=>{const i=t.shift();if(a.isObject(i)&&a.has(i,"type")&&a.toInteger(i?.enabled)>0){let{iterationDataArr:c}=s;a.isArray(c)||(c=a.values(c));const l=c.shift()||{};try{const{sleep:t}=s;await g(i,{...s,iterationData:l},n,r,o),a.toInteger(t)>0&&e(t)}catch(e){if(a.toInteger(s?.ignore_error)<1)throw e}a.isArray(t)&&!a.isEmpty(t)&&await y(t,{...s,iterationDataArr:c},n,r,o)}};return R={executeEvent:g,iterationEvent:y}}var ye=ue(function(){if(A)return U;A=1;const{repeatArrayToLength:e,formatAutotestReport:t,formatAutotestReportList:s,getInsideVariables:n}=de(),a=P.default,{mockExp:r}=F.default,o=K.default,{executeEvent:i,iterationEvent:c}=ge(),l=["systemError"];return U={run:async(p,u,d)=>{const{iterationCount:m,iterationData:g,scene:y}=u;"auto_test"==y&&(p=a.filter(p,(function(e){return a.toInteger(e?.enabled)>0})));const f=a.cloneDeep(a.flatten(new Array("auto_test"==y?a.max([a.toInteger(m),1]):1).fill(p)))||[],h=a.pick(u,["scene","lang","project","env","globals","cookies","system_configs","custom_functions","collection","database_configs","enable_sandbox","sleep","name","testing_id"]),b={variables:{environment:{},variables:{},globals:{},_globals:{},iterationData:{},iterationDataArr:[]}},v=[];if("http_request"!=y){const e=/{{([^}]+)}}/g;a.forEach(a.values(a.cloneDeep(g)),((t,s)=>{const o=a.cloneDeep(t);a.isObject(t)&&!a.isEmpty(t)&&a.forEach(t,((t,s)=>{if(""!=a.trim(t)&&a.isString(t)){const i=t.match(e);a.isEmpty(i)||a.forEach(i,(e=>{try{const i=r(e,n(),u?.lang,u?.custom_functions||{});i==e||a.isUndefined(i)||a.set(o,[s],a.replace(t,e,i))}catch(e){}}))}})),v.push(o)}))}const _=a.flatMap(e(a.cloneDeep(v),a.max([a.toInteger(m),1])),(e=>a.times(a.size(p),(()=>e)))),k={environment:a.get(u,"env.environment",{}),globals:a.get(u,"globals",{}),iterationDataArr:_};["environment","globals","iterationDataArr"].forEach((e=>{a.forEach(k[e],((t,s)=>{a.isUndefined(a.get(b,["variables",e,s]))&&(a.set(b,["variables",e,s],t),"globals"===e&&a.set(b,["variables",`_${e}`,s],t))}))}));const x=[],q=Date.now();if("http_request"==y){const e=a.first(f);if(a.isObject(e)&&a.has(e,"type"))try{await i(e,a.assign(h,{iterationData:{}}),d,b,x)}catch(e){if(a.includes(l,e?.action))throw e}}else{const e=[];if(a.forEach(f,((t,s)=>{t?.enabled>0&&e.push(a.assign(a.cloneDeep(t),{progress:s}))})),!a.isEmpty(e)){const t=a.size(e);try{await c(e,a.assign(h,{iterationDataArr:_,total:t}),d,b,x)}catch(e){d(e)}}const n=a.pick(a.get(b,"variables"),["environment","_globals"]);d({action:"complete",data:a.assign(t(q,x),{list:s(x),variables:{globals:u?.enable_sandbox>0?{}:a.get(n,"_globals",{}),environment:u?.enable_sandbox>0?{}:a.get(n,"environment",{})}},a.pick(a.get(u,"env",{}),["env_id","env_name"]),{testing_id:a.get(a.first(x),"test_id")},{report_name:`${u?.name}`},{report_id:o.snowflakeId()})})}},request2HAR:(e,t)=>new Promise((async(s,n)=>{const r=a.pick(t,["scene","lang","project","env","globals","cookies","system_configs","custom_functions","collection","database_configs","enable_sandbox","sleep","name","testing_id"]),o={variables:{environment:{},variables:{},globals:{},_globals:{},iterationData:{},iterationDataArr:[]}},c={environment:a.get(t,"env.environment",{}),globals:a.get(t,"globals",{})};["environment","globals"].forEach((e=>{a.forEach(c[e],((t,s)=>{a.isUndefined(a.get(o,["variables",e,s]))&&(a.set(o,["variables",e,s],t),"globals"===e&&a.set(o,["variables",`_${e}`,s],t))}))}));const l=[],p=a.first(e);if(a.isObject(p)&&a.has(p,"type"))try{await i(p,a.assign(r,{scene:"get_parsed_request"}),(e=>{s(e)}),o,l)}catch(e){n(e)}}))}}());module.exports=ye;
1
+ "use strict";var e,t,s,n,r,a,o,i,c,p,l,u,d=require("atomic-sleep"),m=require("lodash"),g=require("fs"),y=require("json-schema-faker-pro"),h=require("path"),f=require("exp-mock"),b=require("mockjs5-pro"),v=require("mime"),_=require("os"),k=require("buffer/"),x=require("@apipost/url-join"),q=require("apipost-tools"),S=require("jsonpath"),O=require("json5"),E=require("file-type"),D=require("content-disposition"),w=require("is-svg"),j=require("json-bigint"),$=require("strip-json-comments"),T=require("tough-cookie"),V=require("is-image"),N=require("postman-collection"),R=require("uuid"),I=require("minimatch"),J=require("postman-runtime-pro"),C=require("msgpack5");function U(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function A(){if(t)return e;t=1;const s=d,n=m,r=g,a=y,o=h,{mockExp:i}=f,c=b,p=v,l=_,u=k.Buffer,q=x,S=function(e,t,s){if(n.isArray(e)){const r=n.find(e,n.matchesProperty("target_id",t));if(r){if(s.includes(r.parent_id))return;n.isString(r.parent_id)&&(s.push(r.parent_id),S(e,r.parent_id,s))}}},O=()=>{const e={};if(new Array("natural","integer","float","character","range","date","time","datetime","now","guid","increment","url","protocol","domain","tld","email","ip","region","province","city","county","county","zip","first","last","name","cfirst","clast","cname","color","rgb","rgba","hsl","paragraph","cparagraph","sentence","csentence","word","cword","title","ctitle","username","user_name","nickname","nick_name","avatar","icon","img","photo","pic","description","id","userid","user_id","articleid","article_id").forEach(t=>{e[`$${t}`]=c.mock(`@${t}`)}),process&&process?.IS_ECHOAPI){["region","province","city","county","cfirst","clast","cname","cparagraph","csentence","cword","ctitle"].forEach(t=>{var s;e[`$${t}`]=(s=`$${t}`,function(){return s})}),new Array("phone","mobile","telephone").forEach(t=>{e[`$${t}`]=(()=>{const e=Math.floor(900*Math.random())+100,t=Math.floor(1e7*Math.random())+1e6;return`${e}-${t.toString().slice(0,3)}-${t.toString().slice(3)}`})()})}else new Array("phone","mobile","telephone").forEach(t=>{e[`$${t}`]=(()=>{let e="1";return e+=n.random(3,9).toString(),e+=n.times(9,()=>n.random(0,9)).join(""),e})()});return e.$timestamp=n.toInteger(Date.now()/1e3),e.$microTimestamp=(new Date).getTime(),e.$randomInt=Math.floor(1e3*Math.random()),e.$randomFloat=1e3*Math.random(),e};return e={getStringRequestBody:e=>{let t="";try{if(!e||!e?.mode)return t;switch(e.mode){case"raw":t=e?.raw||"",n.isObject(t)&&(t=JSON.stringify(t));break;case"urlencoded":{const s={};n.forEach(e?.urlencoded,e=>{e.disabled||(s[e.key]=e.value)}),t=JSON.stringify(s);break}case"formdata":{const s={};n.forEach(e?.formdata,e=>{e.disabled||(s[e.key]=e.value)}),t=JSON.stringify(s);break}}return t}catch(e){return t}},atomicSleep:s,jsfGenerate:(e,t=[],s,r={})=>{let o;if(a.option({alwaysFakeOptionals:!0,useExamplesValue:!0,fillProperties:!1,useDefaultValue:!0,mockRules:t,customFunctions:r,lang:"zh-cn"}),n.some(["default","examples","pattern","format","x-mock","enum"],t=>n.includes(n.keys(e?.schema||e),t)))try{o=a.generate(e)}catch(e){}if(!n.isUndefined(o))return o},getAPIFromCollection:function(e,t){return n.find(e,n.matchesProperty("target_id",t))},getParentTargetIDs:S,base64toCacheFile:(e,t,s,a)=>{let i=t;try{r.statSync(i)}catch(c){if(!n.isEmpty(s)){const c=String(s).match(/data:([0-9a-zA-Z\/\-]+);base64,/i),d=p.getExtension(c&&c[1]?c[1]:"");if(n.isString(d)){const c=o.resolve(l.tmpdir(),`${a}`);try{r.mkdirSync(c)}catch(e){}let p=t;n.endsWith(p,`.${d}`)||(p=`${e}.${d}`);const m=o.resolve(c,p);try{r.writeFileSync(m,u.from(n.replace(s,/^data:[0-9a-zA-Z\/\-]+;base64,/,""),"base64")),i=m}catch(e){}}}}return i},replace2RegExp:(e,t,s)=>{try{return n.replace(e,new RegExp(String(t),"ig"),String(s))}catch(r){return n.replace(e,t,String(s))}},getInsideVariables:O,repeatArrayToLength:(e,t)=>{if(n.isArray(e)||(e=n.values(e)),n.isEmpty(e))return[];const s=n.ceil(t/e.length),r=n.flattenDeep(n.fill(new Array(s),e));return n.take(r,t)},convertEndRuntimeState:(e,t)=>{try{const{startTime:s,startVariables:r}=n.get(e,[t,"iteration"],{}),a=Date.now(),o={},i={};["globals","environment","iterationData","variables"].forEach(e=>{n.assign(o,n.get(r,`${e}`))}),n.forEach(o,(e,t)=>{let s;n.set(i,[t,"value"],e),n.isUndefined(e)||["variables","iterationData","environment","globals"].some(e=>{if(!n.isUndefined(n.get(r,[`${e}`,t])))return s=e,!0}),n.set(i,[t,"actedUpon"],s)});const{environment:c={},variables:p={},_globals:l={},iterationData:u={}}=n.get(e,"variables",{}),d={environment:c,variables:p,iterationData:u,globals:l},m={};["globals","environment","iterationData","variables"].forEach(e=>{n.assign(m,n.get(d,`${e}`))});const g={};return n.forEach(m,(e,t)=>{if(!n.includes(["_pm.response.code","_pm.response.setBody"],t)){let s;["variables","iterationData","environment","globals"].some(e=>{if(!n.isUndefined(n.get(d,[`${e}`,t])))return s=e,!0}),n.set(g,[t],{start:n.pick(i[t],["value","actedUpon"]),current:{value:e,actedUpon:s}})}}),{startTime:s,endTime:a,currentVariables:g}}catch(e){}},returnBoolean:(e,t,s)=>{let r=!1;if(""===e)return"null"==t;switch(t){case"eq":r=e==s;break;case"uneq":r=e!=s;break;case"gt":r=n.gt(Number(e),Number(s));break;case"gte":r=n.gte(Number(e),Number(s));break;case"lt":r=n.lt(Number(e),Number(s));break;case"lte":r=n.lte(Number(e),Number(s));break;case"includes":r=n.includes(e,s)||n.includes(e,Number(s));break;case"unincludes":r=!n.includes(e,s)&&!n.includes(e,Number(s));break;case"null":r=n.isEmpty(e);break;case"notnull":r=!n.isEmpty(e);break;case"exist":r=!n.isUndefined(e);break;case"notexist":r=n.isUndefined(e);break;case"regularmatch":try{r=new RegExp(String(s).substring(1,String(s).length-1)).test(e)}catch(e){}break;case"belongscollection":r=n.split(s,",").indexOf(e)>-1;break;case"notbelongscollection":r=-1==n.split(s,",").indexOf(e)}return r},variableReplaceForCondition:(e,t,s)=>{if(!n.startsWith(e,"{{")||!n.endsWith(e,"}}"))return e;const r=O();["globals","_globals","environment","iterationData","variables"].forEach(e=>{n.assign(r,n.get(t,`${e}`))}),e=n.replace(e,/\{\{([^}]+)\}\}/g,(e,t)=>n.get(r,t.trim(),e));const{lang:a,custom_functions:o}=s;try{const t=i(e,r,a,o);if(t===e&&n.startsWith(e,"{{")&&n.endsWith(e,"}}"))return;return t}catch(e){return}},getCaseInsensitive:(e,t)=>{try{const s=n.toLower(t);if(!n.isObject(e))return;for(const t in e)if(n.toLower(t)===s)return e[t]}catch(e){}},camelCaseToSnakeCase:e=>(["arrCookies","fitForShow","mimeType","requestStart","responseSize","responseTime"].forEach(t=>{const s=n.snakeCase(t),r=n.get(e,`response.${t}`);n.isUndefined(r)||(n.set(e,`response.${s}`,r),n.unset(e,`response.${t}`))}),e),formatAutotestReportList:e=>{const t=[];return n.forEach(n.cloneDeep(e),e=>{const s=e?.type;n.includes(["assert","assert_visual","api","sample","script","sql"],s)?t.push(n.assign(n.pick(e?.response,["timings","response_time","response_at","proxy","status","code","response_size"]),n.pick(e?.request,["url","method","name","target_id","project_id"]),n.pick(e,["type","event_id","test_id","iteration_id","startTime","endTime","currentVariables"]),{type:s,status:{assert:n.isEmpty(e?.status?.success_assert)?"OK":e?.status?.success_assert,http:e?.status?.http||"OK"}})):n.includes(["if"],s)?t.push(n.assign(n.pick(e,["type","event_id","test_id","iteration_id","startTime","endTime","currentVariables"]),{type:s,status:{...e?.data}})):n.includes(["wait"],s)&&t.push(n.assign(n.pick(e,["type","event_id","test_id","iteration_id","startTime","endTime","currentVariables"]),{type:s,sleep:e?.data?.sleep||0}))}),t},getVariableActedUpon:(e,t)=>{let s;return["variables","iterationData","environment","globals"].some(r=>{if(n.includes(n.keys(n.get(e,`variables.${r}`)),t))return s=r,!0}),s},variableReplace:(e,t,s)=>{const r=O();["globals","_globals","environment","iterationData","variables"].forEach(e=>{n.assign(r,n.get(t,`${e}`))}),e=n.replace(e,/\{\{([^}]+)\}\}/g,(e,t)=>n.get(r,t.trim(),e));const{lang:a,custom_functions:o}=s;try{return i(e,r,a,o)}catch(t){return e}},formatAutotestReport:(e,t)=>{const s={assert:{total:0,success:0,error:0},http:{total:0,success:0,error:0},start_at:e,end_at:Date.now(),total_time:Date.now()-e,iteration_count:n.size(t),total_response_time:null,avg_response_time:null,total_response_size:0,avg_response_size:0};let r=0,a=0;return n.forEach(n.cloneDeep(t),e=>{if(n.includes(["api","sample"],e?.type)&&(s.http.total++,r+=n.toInteger(e?.response?.response_size),a+=n.toInteger(e?.response?.response_time),"ok"!=n.toLower(e?.status?.http)&&s.http.error++),n.includes(["api","sample","assert","assert_visual"],e?.type)&&!n.isEmpty(e?.status?.assert)&&n.isArray(e?.status?.assert)){const t=n.filter(e?.status?.assert,e=>!1===e?.passed);s.assert.total=s.assert.total+n.size(e?.status?.assert),s.assert.error=s.assert.error+n.size(t)}}),s.http.success=s.http.total-s.http.error,s.assert.success=s.assert.total-s.assert.error,s.avg_response_time=n.round(a/s.http.total,2)||0,s.avg_response_size=n.round(r/s.http.total,2)||0,s.total_response_time=a,s.total_response_size=r,s},encodeURIComponentUnique:e=>{if(n.startsWith(e,"{{")&&n.endsWith(e,"}}"))return e;try{return decodeURIComponent(e)==e?encodeURIComponent(e):e}catch(t){return encodeURIComponent(e)}},smartUrlJoin:(e,...t)=>{for(let e of t)if(/^[a-zA-Z]+:\/\//.test(e))return e;return q(e,...t)}}}function P(){if(a)return r;a=1;const e=E,t=D,o=q,i=w,c=j({storeAsString:!0}),p=$,l=v,{mockExp:u}=f,d=T,y=k.Buffer,h=V,{getAPIFromCollection:_,smartUrlJoin:x,getStringRequestBody:S,jsfGenerate:O,replace2RegExp:U,getParentTargetIDs:P,encodeURIComponentUnique:B,base64toCacheFile:z,getInsideVariables:L,convertEndRuntimeState:F,getCaseInsensitive:M,camelCaseToSnakeCase:W}=A(),{generateHarFromRequest:H}=function(){if(n)return s;function e(e){return(e||[]).map(({key:e,value:t})=>({name:e,value:t}))}function t(e){return(e||[]).map(({key:e,value:t})=>({name:e,value:String(t)}))}function r(e){const{mode:t}=e;return"none"===t?{mimeType:"none",params:[],text:""}:"urlencoded"===t?{mimeType:"application/x-www-form-urlencoded",params:(e.urlencoded||[]).map(({key:e,value:t})=>({name:e,value:String(t)}))}:"formdata"===t?{mimeType:"multipart/form-data",params:(e.formdata||[]).map(({key:e,value:t,type:s="text"})=>{const n={name:e,value:String(t)};return"file"===s&&(n.fileName=t),n})}:"raw"===t?{mimeType:"text/plain",text:String(e.raw)}:"json"===t?{mimeType:"application/json",text:JSON.stringify(e.json||{})}:{mimeType:"none",params:[],text:""}}return n=1,s={generateHarFromRequest:function(s){const{method:n="GET",headers:a=[],queryParams:o=[],body:i={mode:"none"}}=s;return{log:{version:"1.2",creator:{name:"Custom Node Request to HAR Converter",version:"1.0"},entries:[{request:{method:n.toUpperCase(),httpVersion:"HTTP/1.1",url:String(s?.url||"http://"),headers:e(a),queryString:t(o),postData:r(i),headersSize:-1,bodySize:-1},response:{status:200,statusText:"OK",httpVersion:"HTTP/1.1",cookies:[],headers:[],content:{size:0,mimeType:"application/json"},redirectURL:"",headersSize:-1,bodySize:-1},cache:{},timings:{send:0,wait:0,receive:0},startedDateTime:(new Date).toISOString(),time:0}]}}}}}(),X=m,G=N,K=G.Url,Y=G.Event,Q=b,{v4:Z}=R,ee=g,{minimatch:te}=I,se=J,ne=(e,t,s)=>{let n=S(e?.postmanJSON?.body);if(!X.isEmpty(n)){const e=/{{([^}]+)}}/g,t=n.match(e);X.isEmpty(t)||X.forEach(t,e=>{try{const t=u(e,L()||{},s?.lang,s?.custom_functions);t==e||X.isUndefined(t)||(n=X.replace(n,e,t))}catch(e){}})}if(X.includes(["urlencoded","formdata"],e?.postmanJSON?.body?.mode))try{n=JSON.parse(n)}catch(e){n={}}const r={data:n};let a="";X.forEach(s?.custom_functions,(e,t)=>{""!=(t=X.trim(t))&&(a=`\n ${a}\n\n function ${t}(text) {\n try{\n ${e}\n }catch(e){\n return text;\n }\n }\n `)});const{requestJson:o}=e,{database_configs:i,env:c}=s,p=["const response = {};","\n const splitCookieString = (input)=> {\n let index = input.indexOf('=');\n if (index === -1) {\n return [input];\n }\n return [input.slice(0, index), input.slice(index + 1)];\n }\n ",`\n const getMainProcessSocketPath = ()=>{ \n try{\n return atob("${X.get(process,"env.ELECTRON_PIPE")}");\n }catch(e){\n return "${X.get(process,"env.ELECTRON_PIPE")}";\n }\n }\n `,"let lodashv4 = require('lodash');","let { mockExp } = require('exp-mock-light');","let Mock = require('mockjs');","let xml2json = xml2Json;","let JSON5 = require('json5');","let aTools = require('apipost-tools');","let jsonpath = require('jsonpath');",`let _envTmpVariablesData = ${JSON.stringify(c)}`,`let _parsedRequestBodyObjData = ${JSON.stringify(r)}`,`let _customFunctions = ${JSON.stringify(s?.custom_functions||{})}`,"let $ = {}; $.md5 = function(str){return CryptoJS.MD5(str).toString()};$.ajax = pm.ajaxSendRequest;",'pm.environment.getPreUrl = function(){return _.get(_envTmpVariablesData, "env_pre_url");}','pm.environment.getName = function(){return _.get(_envTmpVariablesData, "env_name");}',"pm.environment.getCollection = function(){return pm.environment.toObject();}",'pm.variables.getPreUrl = function(){return _.get(_envTmpVariablesData, "env_pre_url");}','pm.variables.getName = function(){return _.get(_envTmpVariablesData, "env_name");}',"pm.variables.getCollection = function(){return pm.environment.toObject();}","pm.environment.delete = pm.environment.unset;","pm.variables.delete = pm.variables.unset;","pm.globals.delete = pm.globals.unset;","pm.Visualizing = pm.visualizer.set","\n // Database\n pm.queryDatabase = async (dbconfig) => {\n const { query } = dbconfig;\n const { createUnixClient } = require('net'), socketPath = getMainProcessSocketPath();\n\n try{\n const result = await createUnixClient(socketPath, JSON.stringify({\n action: 'queryDatabase',\n data: { dbconfig, query }\n }));\n return JSON.parse(Buffer.from(JSON.parse(result.toString())).toString());\n }catch(e){\n console.error(\"Database error: \" + String(e))\n throw new Error(String(e));\n // return { err: 'error', result:String(e)}\n }\n };\n\n // pm.execute/Async\n pm.executeAsync = pm.execute = async (file, args, option) => {\n const { createUnixClient } = require('net'), socketPath = getMainProcessSocketPath();\n\n try {\n const result = await createUnixClient(socketPath, JSON.stringify({\n action: 'execute',\n data: { file, args, option }\n }));\n\n const resultObj = JSON.parse(Buffer.from(JSON.parse(result.toString())).toString());\n\n if(resultObj?.status == 'success'){\n return resultObj?.result\n }else{\n console.error(\"pm.execute error: \" + String(resultObj?.result))\n throw new Error(resultObj?.result);\n }\n }catch (e) {\n console.error(\"pm.execute error: \" + String(e))\n throw new Error(e);\n }\n };\n ",`\n let _requestTmpBodyObject = request?.data\n try{\n _requestTmpBodyObject = JSON.stringify(JSON5.parse(request?.data));\n }catch(e){}\n \n try{\n let _requestTmpVariablesData = ${JSON.stringify({name:o?.name})}\n _.assign(request, {\n request_headers: pm.request?.headers?.toObject(), \n request_bodys: _requestTmpBodyObject, \n request_querys: pm.request?.url?.query?.toObject(),\n request_variables: pm.request?.url?.variables?.toObject(),\n request_parsed_bodys: _.get(_parsedRequestBodyObjData, 'data', ''),\n mode: "${X.get(o,"request.body.mode")}",\n contentType: pm.request?.headers?.get('content-type'),\n id: "${o?.sample_id||o?.target_id}",\n name: _.get(_requestTmpVariablesData, "name") || "HTTP request",\n url: String(pm.request?.url),\n uri: pm.request?.url\n });\n }catch(e){}\n\n // 替换变量\n const _replaceMockExp = (str) => {\n if (lodashv4.isString(str)) {\n const regex = /{{([^}]+)}}/g;\n const matches = str.match(regex);\n if (!lodashv4.isEmpty(matches)) {\n lodashv4.forEach(matches, (match) => {\n try {\n const tmpVal = mockExp(match, pm.variables.toObject(), 'en', _customFunctions || {});\n\n if (tmpVal != match && !lodashv4.isUndefined(tmpVal)) {\n str = lodashv4.replace(str, match, tmpVal);\n }\n } catch (e) { }\n })\n }\n }\n\n return str;\n }\n\n // 获取最终请求body \n if('${t}' == 'prerequest'){\n try {\n pm.getFinalRequestRawBody = () => {\n let requestBody = pm.variables.replaceIn(request.request_parsed_bodys);\n\n if (lodashv4.isString(requestBody)) {\n requestBody = _replaceMockExp(requestBody)\n }\n\n if (lodashv4.isObject(requestBody)) {\n requestBody = JSON.parse(_replaceMockExp(JSON.stringify(requestBody)))\n }\n\n pm.setRequestBody(requestBody)\n return requestBody;\n }\n } catch (e) {\n pm.getFinalRequestRawBody = () => { return request.request_parsed_bodys; }\n }\n }\n `,"if(_.isObject(pm.response)){","try{","_.set(response, 'headers', pm.response.headers?.toObject());","}catch(e){}","try{ // 设置cookie\n response.cookies = {};\n const responseCookies = lodashv4.get(pm.response.headers.toObject(), 'set-cookie');\n lodashv4.forEach(lodashv4.isArray(responseCookies)?responseCookies:[responseCookies], (cookieStr) => {\n let cookieArr = splitCookieString(lodashv4.head(lodashv4.split(cookieStr, ';')));\n let cookieValue = lodashv4.join(lodashv4.tail(cookieArr),'');\n\n if(cookieArr[0] && cookieValue){\n try{\n _.set(response.cookies, cookieArr[0], decodeURIComponent(cookieValue))\n }catch(e){\n _.set(response.cookies, cookieArr[0], cookieValue)\n }\n }\n })\n }catch(e){}\n ","_.set(pm, 'response.raw.responseText', pm.response.text());","_.set(response, 'raw.responseText', pm.response.text());","try{","_.set(response, 'json', pm.response.json());","_.set(response, 'raw.json', pm.response.json());","}catch(e){_.set(response, 'raw.json', {})}","_.set(response, 'raw.status', pm.response.code);","_.set(response, 'raw.responseTime', pm.response.responseTime);"," pm.response.setBody = function (body) {"," if (typeof body !== 'string') {"," body = JSON.stringify(body);"," }"," if (typeof body === 'string') {"," const originalText = _.cloneDeep(pm.response.text());"," try {"," const originalJson = _.cloneDeep(pm.response.json());"," pm.response.originalJson = function () {"," return originalJson;"," };"," }"," catch (e) {"," pm.response.originalJson = function () {"," return null;"," };"," }"," pm.response.originalText = function () {"," return originalText;"," };",' pm.response.stream = {type: "Buffer", data:Array.from(Buffer.from(body))};',' pm.variables.set("_pm.response.setBody", body);'," }"," };",""," pm.response.setCode = function (code) {"," if (typeof code === 'number') {"," pm.response.originalCode = function () {"," return pm.response.code;"," };",""," pm.response.code = code;",' pm.variables.set("_pm.response.code", code);'," }"," };","}","const apipost = postman;","const apt = fox = ea = echoapi = insomnia = pm;",`\n // Compatible with tc\n const expect = pm.expect;\n const assert = pm.assert;\n assert.equal = (source, dist) => { return source === dist }\n const tc = {};\n try {\n // global\n tc.loadModule = require;\n tc.info = {};\n tc.delay = sleep;\n\n // Ignored library\n tc.exec = () => { console.warn("The tc.exec script syntax of Thunder client is not supported.") }\n tc.runRequest = () => { console.warn("The tc.runRequest script syntax of Thunder client is not supported, Please use pm.sendRequest() instead.") }\n tc.skipRequest = () => { console.warn("The tc.skipRequest script syntax of Thunder client is not supported.") }\n tc.chartHTML = () => { console.warn("The tc.chartHTML script syntax of Thunder client is not supported.") }\n tc.retryRequest = () => { console.warn("The tc.retryRequest script syntax of Thunder client is not supported.") }\n tc.runRequest = () => { console.warn("The tc.runRequest script syntax of Thunder client is not supported.") }\n tc.setCookie = () => { console.warn("The tc.setCookie script syntax of Thunder client is not supported.") }\n tc.clearCookies = () => { console.warn("The tc.clearCookies script syntax of Thunder client is not supported.") }\n tc.getCookies = () => { console.warn("The tc.getCookies script syntax of Thunder client is not supported.") }\n tc.readFile = () => { console.warn("The tc.readFile script syntax of Thunder client is not supported.") }\n tc.loadFromPath = () => { console.warn("The tc.loadFromPath script syntax of Thunder client is not supported.") }\n\n // test\n tc.test = (name, func) => {\n if (lodashv4.isFunction(func)) {\n if(!lodashv4.isUndefined(func())){\n try{\n pm.test(name, func)\n }catch(e){}\n }else{\n pm.test(name, pm.expect(func()).to.equal(true))\n }\n } else {\n pm.test(name, pm.expect(lodashv4.toInteger(func) > 0 ? true : false).to.equal(true))\n }\n }\n\n // var\n tc.setVar = (key, value) => { pm.environment.set(key, value) };\n tc.getVar = (key) => { return pm.environment.get(key) };\n\n // Param\n tc.setParam = (key, value) => { pm.setRequestQuery(key, value) };\n\n // request\n tc.request = lodashv4.cloneDeep(request);\n tc.request.body = {};\n tc.request.name = request.name;\n tc.request.id = request.id;\n tc.request.name = request.name;\n tc.request.setHeader = (key, value) => { pm.setRequestHeader(key, value) };\n tc.request.getHeader = (key) => { return pm.request.headers.get(key) };\n tc.request.setBody = (key, value) => { pm.setRequestBody(key, value) };\n\n // response\n if (lodashv4.isObject(pm.response)) {\n tc.response = lodashv4.cloneDeep(response);\n tc.response.size = pm.response.responseSize;\n tc.response.status = pm.response.code;\n tc.response.time = pm.response.responseTime;\n tc.response.text = response?.raw?.responseText;\n tc.response.contentType = lodashv4.get(response, 'headers.content-type');\n tc.response.cookies = lodashv4.toPairs(lodashv4.get(tc, 'response.cookies')).map(([key, value]) => ({ key, value }));\n tc.response.headers = lodashv4.cloneDeep(lodashv4.cloneDeep(pm.response.headers.toJSON()));\n tc.response.getHeader = (key) => { return lodashv4.get(response.headers, lodashv4.toLower(key)) };\n tc.response.getBinary = () => { console.warn("The tc.getBinary script syntax of Thunder client is not supported.") }\n }\n } catch (e) {\n console.warn("Thunder Client script has an issue; please check manually. EchoAPI is fully compatible with Postman.")\n }\n \n // 自定义函数\n ${a}\n `],l={prerequest:[],test:[]},d={pre_tasks:"prerequest",post_tasks:"test"};return X.forEach(X.keys(d),e=>{let t=X.join(p,"\n");X.forEach(X.get(o,`request.${e}`),e=>{if(X.isObject(e)&&e.enabled>0)switch(e.type){case"customScript":!X.isEmpty(e?.data)&&X.isString(e?.data)&&"undefined"!=e?.data&&(t=`${t}\n${X.trim(e?.data)}\n`);break;case"database":let n=i[e.data?.connectionId]||{};if(!X.isEmpty(n)){n=JSON.stringify(n,null,"\t");let r=X.get(e,"data.query","");if(!X.isEmpty(r)){const e=/{{([^}]+)}}/g,t=r.match(e);X.isEmpty(t)||X.forEach(t,e=>{try{const t=u(e,L()||{},s?.lang,s?.custom_functions);t==e||X.isUndefined(t)||(r=X.replace(r,e,t)),console.log(r,1111,t,2222)}catch(e){}})}X.set(e,"data.query",r),t=`${t}\n ! await (async function(){ \n const dbData = ${JSON.stringify(e.data||{query:""})} // 此处先进性expmock替换\n const query = _replaceMockExp(pm.variables.replaceIn(lodashv4.get(dbData, "query")));\n const method = pm.variables.replaceIn(lodashv4.get(dbData, "method") || "");\n\n try{\n let dbResultList = await pm.queryDatabase(lodashv4.assign(${n},{\n method:method,\n query:query\n }));\n\n let {err, result} = dbResultList;\n\n if(err == 'success'){\n if(${e.data?.isConsoleOutput} > 0){\n console.log(query, result)\n }\n if(lodashv4.isObject(result)){\n lodashv4.forEach(${JSON.stringify(e.data?.variables||[])}, (item) => {\n let extra_value = jsonpath.value(result, lodashv4.trim(item?.pattern) || "$");\n pm[item?.type].set(item?.name, extra_value);\n });\n }else{\n if(!lodashv4.isObject(result)){\n lodashv4.forEach(${JSON.stringify(e.data?.variables||[])}, (item) => {\n let extra_value = result;\n pm[item?.type].set(item?.name, extra_value);\n });\n }\n } \n }else{\n console.error(query, String(result))\n } \n }catch(e){};\n })();`}break;case"wait":const r=X.toInteger(e?.data);r>0&&(t=`${t}\nsleep(${r});`);break;case"assert":t=`${t}\n !(function(){ \n let assertObjectData = ${JSON.stringify(e)};\n let responseData = '';\n let expertData = null;\n let expertExpression = '';\n let expertValue = null;\n\n if(_.get(assertObjectData, "data.type") == 'responseJson'){\n try{\n responseData = pm.response.json();\n }catch(e){\n responseData = xml2Json(pm.response.text()) || {}\n }\n\n expertData = jsonpath.value(responseData, _.get(assertObjectData, "data.expression.path") || "$");\n }else if(_.get(assertObjectData, "data.type") == 'responseXml'){\n try{\n responseData = pm.response.text();\n var xpath = require('xpath');\n var dom = require('xmldom').DOMParser;\n expertData = String(xpath.select(_.get(assertObjectData, "data.expression.path"), new dom().parseFromString(responseData, 'text/xml')));\n }catch(e){}\n }else if(_.get(assertObjectData, "data.type") == 'responseText'){\n expertData = pm.response.text();\n }else if(_.get(assertObjectData, "data.type") == 'responseHeader'){\n expertData = pm.response.headers.get(_.get(assertObjectData, "data.expression.path"));\n }else if(_.get(assertObjectData, "data.type") == 'responseCookie'){\n expertData = _.get(response.cookies, _.get(assertObjectData, "data.expression.path"));\n }else if(_.get(assertObjectData, "data.type") == 'responseCode'){\n expertData = pm.response.code;\n }else if(_.get(assertObjectData, "data.type") == 'responseTime'){\n expertData = pm.response.responseTime;\n }else if(_.get(assertObjectData, "data.type") == 'responseSize'){\n expertData = pm.response.responseSize;\n }else if(_.get(assertObjectData, "data.type") == 'tempVars'){\n expertData = pm.variables.get(_.trim(_.get(assertObjectData, "data.expression.path"), '{}'));\n }else if(_.get(assertObjectData, "data.type") == 'envVars'){\n expertData = pm.environment.get(_.trim(_.get(assertObjectData, "data.expression.path"), '{}'));\n }else if(_.get(assertObjectData, "data.type") == 'globalVars'){\n expertData = pm.globals.get(_.trim(_.get(assertObjectData, "data.expression.path"), '{}'));\n }\n \n expertValue = pm.variables.replaceIn(_.get(assertObjectData, "data.expression.compareValue"));\n \n if(_.get(assertObjectData, "data.expression.compareType") == "eq"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(String(expertData)).to.eql(String(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "uneq"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(String(expertData)).to.not.eql(String(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "lt"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(lodashv4.toNumber(expertData)).to.be.below(lodashv4.toNumber(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "lte"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(lodashv4.toNumber(expertData)).to.be.at.most(lodashv4.toNumber(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "gt"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(lodashv4.toNumber(expertData)).to.be.above(lodashv4.toNumber(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "gte"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(lodashv4.toNumber(expertData)).to.be.at.least(lodashv4.toNumber(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "includes"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(String(expertData)).to.include(String(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "unincludes"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(String(expertData)).to.not.include(String(expertValue));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "null"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(expertData).to.be.empty;\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "notnull"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(String(expertData)).to.not.be.empty;\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "exist"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(expertData).to.exist;\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "notexist"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(expertData).to.not.exist;\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "regularmatch"){\n expertExpression = null;\n\n if(!lodashv4.isEmpty(expertValue)){\n expertValue = new RegExp(lodashv4.trim(expertValue, '/'));\n\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(expertData).to.match(expertValue);\n });\n }\n }else if(_.get(assertObjectData, "data.expression.compareType") == "belongscollection"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(String(expertData)).to.be.oneOf(lodashv4.split(expertValue, ","));\n });\n }else if(_.get(assertObjectData, "data.expression.compareType") == "notbelongscollection"){\n expertExpression = null;\n pm.test(_.get(assertObjectData, "name"), function () {\n pm.expect(String(expertData)).to.not.be.oneOf(lodashv4.split(expertValue, ","));\n });\n }\n })();\n `;break;case"pickVars":const a={tempVars:"variables",envVars:"environment",globalVars:"globals"};switch(t=`${t}\n\n !(function(){ \n `,e.data?.source){case"requestHeader":t=`${t}\n\n let varSource = request?.headers;\n `;break;case"requestBody":t=`${t}\n\n let varSource = request?.request_bodys;\n if(typeof varSource === 'string'){\n try{\n varSource = JSON5.parse(varSource)\n }catch(e){}\n }\n `;break;case"responseJson":t=`${t}\n\n let varSource = '';\n\n try{\n varSource = pm.response.json();\n }catch(e){\n varSource = xml2Json(pm.response.text())\n }\n `;break;case"responseXml":case"responseText":t=`${t}\n\n let varSource = pm.response.text();\n `;break;case"responseHeader":t=`${t}\n\n let varSource = pm.response.headers;\n `;break;case"responseCookie":t=`${t}\n\n let varSource = response.cookies;\n `;break;case"responseCode":t=`${t}\n\n let varSource = pm.response.code;\n `;break;case"responseTime":t=`${t}\n\n let varSource = pm.response.responseTime;\n `;break;case"responseSize":t=`${t}\n\n let varSource = pm.response.responseSize;\n `}X.forEach(e.data?.variables,s=>{if(X.isObject(s)&&""!=s?.name&&!X.isUndefined(a[s?.type]))switch(e.data?.source){case"requestHeader":t=`${t}\n\n !(function(){\n let pickVars = ${JSON.stringify(s)};\n try{\n pm[${JSON.stringify(a[s?.type])}].set(_.get(pickVars,"name"), _.get(varSource, lodashv4.toLower(_.trim(_.get(pickVars,"expression")))));\n }catch(e){}\n })();\n `;break;case"requestBody":case"responseJson":t=`${t}\n\n !(function(){\n let pickVars = ${JSON.stringify(s)};\n pm[${JSON.stringify(a[s?.type])}].set(_.get(pickVars,"name"), jsonpath.value(varSource, _.trim(_.get(pickVars,"expression")) || "$"));\n })();\n `;break;case"responseXml":t=`${t}\n\n !(function(){\n let pickVars = ${JSON.stringify(s)};\n let xmlValue = '';\n var xpath = require('xpath');\n var dom = require('xmldom').DOMParser;\n\n try{\n xmlValue = String(xpath.select(_.trim(_.get(pickVars,"expression")), new dom().parseFromString(varSource, 'text/xml')));\n }catch(e){}\n\n pm[${JSON.stringify(a[s?.type])}].set(_.get(pickVars, "name"), xmlValue);\n })();\n `;break;case"responseHeader":t=`${t}\n\n !(function(){\n let pickVars = ${JSON.stringify(s)};\n try{\n pm[${JSON.stringify(a[s?.type])}].set(_.get(pickVars,"name"), varSource.get(_.trim(_.get(pickVars,"expression"))));\n }catch(e){}\n })();\n `;break;case"responseCookie":t=`${t}\n\n !(function(){\n let pickVars = ${JSON.stringify(s)};\n pm[${JSON.stringify(a[s?.type])}].set(_.get(pickVars,"name"), _.get(varSource, _.trim(_.get(pickVars,"expression"))));\n })();\n `;break;case"responseText":case"responseCode":case"responseTime":case"responseSize":t=`${t}\n\n !(function(){\n let pickVars = ${JSON.stringify(s)};\n pm[${JSON.stringify(a[s?.type])}].set(_.trim(_.get(pickVars, "name")), varSource);\n })();\n `}}),t=`${t}\n })();`}}),t=`${t}\n\n if(_.isObject(pm.response)){\n if(!_.isFunction(pm.response.originalText) || pm.response.originalText() == pm.response.text()){\n if(response?.raw?.responseText != pm.response.text()){\n pm.response.setBody(response?.raw?.responseText);\n }else if(pm.response?.raw?.responseText != pm.response.text()){\n pm.response.setBody(pm.response?.raw?.responseText);\n }\n }\n }\n `;const n=X.split(t,"\n");l[d[e]].push({listen:d[e],script:{exec:X.isEmpty(X.filter(X.get(o,`request.${e}`),e=>e?.enabled>0))?[]:n,type:"text/javascript"}})}),l[t]};const re=(e,t)=>{const s=X.assign(X.pick(e,["event_id","test_id"]),X.pick(e?.data,["target_id","project_id"]));if(X.includes(["api","sample","sse","request"],e?.type)){X.toInteger(e?.auto_sync)>0||X.includes(["http_request","get_parsed_request"],t?.scene)?X.assign(s,_(t?.collection,X.get(e,"data.target_id"))):X.assign(s,X.get(e,"data.apiData"));const n=[];if(X.includes(["sample"],e?.type)){const s=X.get(_(t?.collection,X.get(e,"data.target_id")),"parent_id");X.isString(s)&&s&&P(t?.collection,s,n)}else P(t?.collection,X.get(e,"data.target_id"),n);X.includes(n,"0")||n.push("0"),X.forEach(n,e=>{const n={};"0"==e?X.assign(n,X.get(t,"project.request")):X.assign(n,X.get(_(t?.collection,e),"request")),X.isObject(n)&&!X.isEmpty(n)&&["header","body","query","cookie"].forEach(e=>{let t=X.filter(X.get(n,`${e}.parameter`),e=>X.toInteger(e.is_system)>0||e.is_checked>0);if(!X.isEmpty(t)&&X.isArray(t)){const n=X.filter(X.get(s,`request.${e}.parameter`),e=>e.is_checked>0)||[],r=X.chain(n).groupBy("key").map(e=>X.reduce(e,(e,t)=>t.is_checked>0?t:e,e[e.length-1])).value(),a=X.chain(t).groupBy("key").map(e=>X.reduce(e,(e,t)=>t.is_checked>0?t:e,e[e.length-1])).value();"header"==e?X.set(s,`request.${e}.parameter`,X.unionBy(r,a,e=>X.toLower(e.key))):X.set(s,`request.${e}.parameter`,X.unionBy(r,a,"key"))}})});let r={},a=X.get(s,"server_id");X.forEach(X.reverse(n),e=>{const n={};if("0"==e)X.assign(n,X.get(t,"project.request"));else{const r=X.get(_(t?.collection,e),"server_id");X.isUndefined(X.get(s,"server_id"))&&X.isString(r)&&(a=r),X.assign(n,X.get(_(t?.collection,e),"request"))}X.isObject(n)&&!X.isEmpty(n)&&["auth","pre_script","test","pre_tasks","post_tasks"].forEach(e=>{const t=X.get(n,`${e}`);X.isEmpty(t)||(X.isArray(t)?r[e]=X.union(r[e],t):X.isObject(t)?"auth"==e&&"inherit"!=X.get(t,"type")&&(X.set(r,"auth.type",X.get(t,"type")),X.set(r,`auth.${X.get(t,"type")}`,X.get(t,`${X.get(t,"type")}`))):X.isString(t)&&(r[e]=`${r[e]}\n${t}`))})}),X.forEach(r,(e,t)=>{X.isEmpty(e)||(X.isArray(e)?X.set(s,`request.${t}`,X.union(e,X.get(s,`request.${t}`))):X.isObject(e)?"auth"==t&&"inherit"==X.get(s,"request.auth.type")&&(X.set(s,"request.auth.type",X.get(e,"type")),X.set(s,`request.auth.${X.get(e,"type")}`,X.get(e,`${X.get(e,"type")}`))):X.isString(e)&&X.set(s,`request.${t}`,`${e}\n${X.get(s,`request.${t}`)}`))}),X.unset(r);const o=[];X.get(t,"cookies.switch")>0&&X.isArray(X.get(t,"cookies.data"))&&X.forEach(X.get(t,"cookies.data"),e=>{let t=X.trim(e?.key);if(X.isObject(e)&&!X.isEmpty(t)){let s=X.find(o,X.matchesProperty("key",t)),n=e?.domain;try{const t=new K(e?.domain);n=X.join(t?.host,".")}catch(e){}const r={key:t,value:e?.value,domain:n,path:("undefined"!=e?.path?e?.path:"/")||"/",expires:e?.expires||new Date((new Date).getTime()+36e5),maxAge:e?.maxAge||3600,secure:!!X.toInteger(e?.secure),httpOnly:!!X.toInteger(e?.httpOnly),sameSite:e?.sameSite||"strict"};s>-1?o[s]=r:o.push(r)}}),X.isArray(X.get(s,"request.cookie.parameter"))&&X.forEach(X.get(s,"request.cookie.parameter"),e=>{let t=X.trim(e?.key);if(X.isObject(e)&&!X.isEmpty(t)&&e?.is_checked>0){let s=X.find(o,X.matchesProperty("key",t)),n={key:t,value:e?.value,schema:e?.schema};s>-1?o[s]=n:o.push(n)}}),X.set(s,"request.cookie.parameter",o),X.unset(o),X.isString(a)&&"0"!==X.toString(a)||(a="1");const i=X.isString(X.get(s,"url"))?X.get(s,"url"):X.get(s,"request.url"),{globals:c,env:p}=t;let l=X.trim(X.get(s,"pre_url",""));""==l&&(l=X.trim(X.get(X.find(X.get(t,"env.env_pre_urls"),e=>e?.server_id==a),"uri"))),""!=l&&("2"!=t?.env?.env_id||X.endsWith(l,"/")||(l=`${l}/`),X.startsWith(l,"{{")||X.startsWith(X.toLower(l),"http://")||X.startsWith(X.toLower(l),"https://")?X.set(s,"url",x(l,i)):X.set(s,"url",x("http://",l,i)));let u=s?.url;X.forEach(X.assign({},c,X.get(p,"environment")),(e,t)=>{u=U(u,`{{${t}}}`,String(e))}),X.set(s,"initVarReplacedUrl",u)}else if(X.includes(["script"],e?.type))X.set(s,"request.pre_tasks",[{type:"customScript",enabled:1,data:e?.data?.content}]);else if(X.includes(["assert"],e?.type))X.set(s,"name","脚本断言"),X.set(s,"request.pre_tasks",[{type:"customScript",enabled:1,data:e?.data?.content}]);else if(X.includes(["sql"],e?.type))X.set(s,"request.pre_tasks",[{type:"database",id:e?.event_id,name:"Database",enabled:1,data:X.assign({connectionId:"",query:"",isConsoleOutput:1,variables:[]},e?.data)}]);else if(X.includes(["assert_visual"],e?.type)){const{type:t,expression:n}=e?.data?.data||{};X.isString(t)&&!X.isEmpty(n)&&(X.set(s,"name","可视化断言"),X.set(s,"request.pre_tasks",[{type:"assert",id:e?.event_id,name:"Visual assertion",enabled:1,data:{type:t,expression:X.assign({compareType:"eq",compareValue:"",path:""},n)}}]))}const n=((e,t)=>{const s={},n=X.get(t,"system_configs",{}),r=e=>{try{return X.toInteger(n?.auto_gen_mock_url)>0?Q.mock(e):e}catch(t){return e}},a=r(X.get(e,"url")||X.get(e,"request.url")),o=new K(a);try{o?.query.clear()}catch(e){}const i=X.toInteger(X.get(e,"request.query.query_add_equal")||-1);X.forEach(X.get(e,"request.query.parameter"),e=>{if(X.isObject(e)&&e?.is_checked>0){let{key:s,value:n,schema:a}=e;if(s=String(r(X.trim(s))),n=String(r(n)),""==n&&X.isObject(a)){const e=O(a,[],t?.lang,t?.custom_functions||{});X.isUndefined(e)||(n=e)}""!=s&&o?.query?.members?.push(""==n&&i<1?new G.QueryParam({key:s,value:null}):new G.QueryParam({key:s,value:n}))}}),"2"!=t?.env?.env_id||X.includes(X.keys(o?.query?.toObject()),"target_id")||o?.query?.members?.push(new G.QueryParam({key:"target_id",value:e?.target_id}));const l=[];if(X.isArray(X.get(o,"path"))){const e=X.map(X.get(o,"path"),e=>X.startsWith(e,"{")&&!X.startsWith(e,"{{")&&X.endsWith(e,"}")&&!X.endsWith(e,"}}")?":"+e.slice(1,-1):e);X.set(o,"path",e)}if(X.forEach(X.get(e,"request.restful.parameter"),e=>{if(X.isObject(e)&&e?.is_checked>0){let{key:s,value:n,schema:a}=e;if(s=r(X.trim(s)),n=r(n),""==n&&X.isObject(a)){const e=O(a,[],t?.lang,t?.custom_functions||{});X.isUndefined(e)||(n=e)}""!=s&&l.push({key:s,value:n})}}),X.isUndefined(o?.protocol)){const e=/^{{.*}}/;X.startsWith(X.first(o?.host),"{{")||e.test(X.first(o?.host))||X.set(o,"protocol","http")}const u=String(o);if(o?.query?.members?.length>0)try{X.set(o,"query",o?.query?.toJSON())}catch(e){X.set(o,"query",o?.query?.toObject())}else X.set(o,"query",void 0);X.set(s,"url",{raw:u,variable:l,...o}),X.set(s,"protocol",X.get(e,"protocol")||"http/1.1");let d=X.get(e,"method")||"GET";X.includes(["CONNECT"],X.toUpper(d))&&(d="GET"),X.set(s,"method",d);const m={},g=X.get(e,"request.auth.type")||"noauth";if(X.isString(g)&&"noauth"!=g&&"inherit"!=g)switch(g){case"kv":X.assign(m,{type:"apikey",apikey:[{key:"in",value:X.get(e,"request.auth.kv.in")||"header",type:"string"},{key:"value",value:r(X.get(e,"request.auth.kv.value"))||"",type:"string"},{key:"key",value:r(X.get(e,"request.auth.kv.key"))||"",type:"string"}]});break;case"basic":X.assign(m,{type:"basic",basic:[{key:"password",value:r(X.get(e,"request.auth.basic.password"))||"",type:"string"},{key:"username",value:r(X.get(e,"request.auth.basic.username"))||"",type:"string"}]});break;case"bearer":X.assign(m,{type:"bearer",bearer:[{key:"token",value:r(X.get(e,"request.auth.bearer.key"))||"",type:"string"}]});break;case"digest":const t={username:"username",password:"password",realm:"realm",nonce:"nonce",algorithm:"algorithm",qop:"qop",opaque:"opaque",nc:"nonceCount",cnonce:"clientNonce",disableRetryRequest:"disableRetryRequest"};X.set(m,"type",g),X.set(m,g,[]),X.forEach(X.get(e,`request.auth.${g}`),(e,s)=>{s=t[r(s)],X.isString(e)&&(e=r(e));const n=X.isBoolean(e)?e:X.isInteger(e)?!!e:X.isString(e)?e:"",a=X.isInteger(e)||X.isBoolean(e)?"boolean":"string";m[g].push({key:s,value:n,type:a})}),-1==X.keys(X.get(e,`request.auth.${g}`)).indexOf("disableRetryRequest")&&m[g].push({key:"disableRetryRequest",value:!1,type:"boolean"});break;case"hawk":case"oauth1":case"oauth2":case"awsv4":case"ntlm":case"jwt":case"asap":case"edgegrid":X.set(m,"type",g),X.set(m,g,[]),X.forEach(X.get(e,`request.auth.${g}`),(e,t)=>{X.isString(e)&&(e=r(e)),t=r(t);const s=X.isBoolean(e)?e:X.isInteger(e)?!!e:X.isString(e)?e:"",n=X.isInteger(e)||X.isBoolean(e)?"boolean":"string";m[g].push({key:t,value:s,type:n})})}!X.isEmpty(m)&&X.set(s,"auth",m);const y=[];X.forEach(X.get(e,"request.header.parameter"),e=>{if(X.isObject(e)&&e?.is_checked>0){let s=!(e?.is_checked>0),{key:n,value:a,schema:o}=e;if(n=r(X.trim(n)),a=r(a),""==a&&X.isObject(o)){const e=O(o,[],t?.lang,t?.custom_functions||{});X.isUndefined(e)||(a=e)}""!=n&&y.push({key:n,value:a,disabled:s})}});let h="";if("oauth2"==m?.type&&X.isArray(m?.oauth2)){const e=X.find(m.oauth2,{key:"addTokenTo"}),t=X.find(m.oauth2,{key:"headerPrefix"}),n=X.find(m.oauth2,{key:"access_token"});if(n?.value)if(h=n.value,h=t?.value?t.value+" "+h:"Bearer "+h,"header"==e?.value)y.push({key:"Authorization",value:h,disabled:!1}),h="";else if("queryParams"==e?.value){h=n.value;const e=s.url.raw,t=new URL(e);t.searchParams.set("access_token",h);const r=s.url.query||[];r.push({key:"access_token",value:h}),X.set(s,"url",{...s.url,raw:t.toString(),query:r}),h=""}else h=""}const f=new Map,b=[];X.forEach(y,(e,t)=>{const s=e.key.toLowerCase();f.has(s)&&b.push(f.get(s)),f.set(s,t)}),b.length>0&&X.forEachRight(b,e=>{e>-1&&y.splice(e,1)}),X.set(s,"header",y);try{if(""!=s?.url?.raw){let n={};X.isString(X.get(e,"initVarReplacedUrl"))&&!X.isEmpty(X.get(e,"initVarReplacedUrl"))&&(n=new K(X.get(e,"initVarReplacedUrl")));const a=[];if(X.forEach(X.get(e,"request.cookie.parameter"),o=>{if(X.isObject(o)){let i=B(r(o.key||o.name)),c=r(o.value);if(""==c&&X.isObject(o?.schema)){const e=O(o?.schema,[],t?.lang,t?.custom_functions||{});X.isUndefined(e)||(c=e)}(X.isUndefined(X.get(e,"request.cookie.cookie_encode"))||X.parseInt(X.get(e,"request.cookie.cookie_encode"))>0)&&(c=B(c));let p=X.assign(o,{key:i,name:i,value:c}),l=X.isEmpty(s?.url?.host)?s?.url?.raw:X.join(s?.url?.host,"."),u=s?.url?.path;X.isEmpty(n)||(l=X.isEmpty(n.host)?X.get(e,"initVarReplacedUrl"):X.join(n.host,"."),u=n.path);let d=X.join(u,"/");!X.startsWith(d,"/")&&X.startsWith(p?.path,"/")&&(d=`/${d}`),!X.endsWith(d,"/")&&X.endsWith(p?.path,"/")&&(d=`${d}/`),(X.isUndefined(p?.domain)||te(l,p?.domain)||X.endsWith(l,p?.domain))&&(X.isUndefined(p?.path)||"/"==p?.path||X.startsWith(d||"/",p?.path))&&(X.isUndefined(p?.expires)||X.gt(new Date(String(p?.expires)),new Date))&&a.push(`${p.name}=${p.value}`)}}),!X.isEmpty(a)){const e=X.find(s.header,e=>X.toLower(e.key)===X.toLower("cookie"));e?e.value=X.join(a,";"):s.header.push({key:"Cookie",value:X.join(a,";")})}}}catch(e){}const v={},_=X.get(e,"request.body.mode")||"none";if(X.isString(_)&&"none"!=_){const n={"form-data":"formdata",plain:"text",binary:"file",msgpack:"msgpack"};switch(_){case"form-data":case"urlencoded":X.set(v,"mode",n[_]?n[_]:_),X.set(v,v.mode,[]);const a=X.get(e,"request.body.parameter");X.forEach(a,s=>{if(X.isObject(s)&&s.is_checked>0&&""!=r(s.key))if("form-data"==_&&"file"===X.toLower(s.field_type)){const t=z(s.key,s.value,s.file_base64,e?.target_id);v[v.mode].push({key:r(s.key),src:t,type:"file",disabled:!1})}else{let{value:e,schema:n}=s;if(e=r(e),""==e&&X.isObject(n)){const s=O(n,[],t?.lang,t?.custom_functions||{});X.isUndefined(s)||(e=s)}"form-data"==_&&""!=s.content_type?v[v.mode].push({key:r(s.key),value:e,type:"text",disabled:!1,contentType:s.content_type}):v[v.mode].push({key:r(s.key),value:e,type:"text",disabled:!1})}});break;case"binary":const o=z("binary",X.get(e,"request.body.binary.file_path"),X.get(e,"request.body.binary.data_url"),e?.target_id);X.assign(v,{mode:"file",file:{src:o}});break;default:let i=r(X.get(e,"request.body.raw"));if("msgpack"==_){const e=C();try{i=e.encode(c.parse(p(i))).slice(),Object.setPrototypeOf(i,Object.getPrototypeOf({}))}catch(e){}const t=X.find(s.header,e=>X.toLower(e.key)===X.toLower("content-type"));t?t.value="application/msgpack":s.header.push({key:"content-type",value:"application/msgpack"})}else if("json"==_&&t?.request_param_auto_json>0)try{i=c.stringify(c.parse(p(i))),Object.setPrototypeOf(i,Object.getPrototypeOf({}))}catch(e){}X.assign(v,{mode:"raw",raw:i,options:{raw:{language:n[_]?n[_]:_}}})}}return!X.isEmpty(v)&&X.set(s,"body",v),s})(s,t);return{requestJson:s,postmanJSON:n}};return r=(s,n,r,a,c)=>{const{scene:p}=n;return new Promise((m,f)=>{try{const b=Date.now(),{requestJson:v,postmanJSON:_}=re(s,n),k=new G.Item({name:X.get(v,"name")||"New request",request:_,event:[],protocolProfileBehavior:{disableBodyPruning:!0,disabledSystemHeaders:{accept:!0,"accept-encoding":!0,connection:!0}}}),x=((e,t,s)=>{const{requestJson:n}=e,r=[];X.forEach(X.get(s,"variables"),(e,t)=>{r.push({value:e,key:t,type:"any",enabled:!0})});const a=new G.VariableScope({values:r}),o=[X.get(s,"iterationData")],i=[];X.forEach(X.get(s,"environment"),(e,t)=>{i.push({value:e,key:t,type:"any",enabled:!0})});const c=new G.VariableScope({values:i}),p=[];X.forEach(X.defaults(X.get(s,"globals")||{},L()),(e,t)=>{p.push({value:e,key:t,type:"any",enabled:!0})});const l=new G.VariableScope({values:p}),u={strictSSL:!1,protocolVersion:"http/1.1"==n?.protocol||X.includes(["sse"],n?.target_type)||X.isEmpty(n?.target_type)?"http1":"auto"==n?.protocol?"auto":"http2",timings:!0,verbose:!1,implicitCacheControl:!0,implicitTraceHeader:!1,followOriginalHttpMethod:X.get(t,"system_configs.follow_original_method")>0,followRedirects:X.get(t,"system_configs.auto_redirect")>0,maxRedirects:X.max([X.toInteger(X.get(t,"system_configs.max_redirect_time")),5])};X.get(t,"system_configs.ca_cert.open")>0&&""!=X.trim(X.get(t,"system_configs.ca_cert.path"))&&X.set(u,"extendedRootCA",X.trim(X.get(t,"system_configs.ca_cert.path")));const d=[];X.forEach(X.get(t,"system_configs.client_cert"),(e,t)=>{const s=new K(t);if(X.isObject(e)){s.port<=0&&(t=`${s.protocol}://${X.join(s.host,".")}:443`),["key","crt","pfx"].forEach(t=>{let s=X.get(e,`${t}.file_url`);if(X.isEmpty(s)&&(X.isEmpty(X.get(e,`${t}.file_base64`))||(s=z(X.get(e,`${t}.file_name`),X.get(e,`${t}.file_name`),X.get(e,`${t}.file_base64`),Z()))),!X.isEmpty(s))try{ee.statSync(s),X.set(e,`${t}.file_url`,s)}catch(e){}});const n={name:`Client cert for ${t}`,matches:[t,`${t}/*`],passphrase:e?.password};["key","crt","pfx"].forEach(t=>{X.isEmpty(X.get(e,`${t}.file_url`))||X.set(n,"crt"==t?"cert":t,{src:X.get(e,`${t}.file_url`)})}),d.push(n)}});let m=X.toInteger(X.get(t,"system_configs.send_timeout"));X.inRange(m,0,604800)||(m=0);const y={timeout:{request:m,script:0,global:0},delay:{item:0,iteration:0},iterationCount:1,fileResolver:g,data:o,environment:c,localVariables:a,globals:l,requester:u,systemProxy:async function(e,s){try{const n={},r=new K(e),a=X.toLower(X.join(r?.host,"."));if(1==X.get(t,"system_configs.proxy.type")){const e=X.get(t,"system_configs.proxy.auth.host").match(/(([^:]+):(\d+))/);if(X.isArray(e)&&X.toInteger(e[3])>0){let s=X.get(t,"system_configs.proxy.bypass");X.isString(s)&&(s=s.split(","));let o=X.find(s,e=>te(a,e)),i=X.get(t,"system_configs.proxy.protocols");X.isString(i)&&(i=i.split(","));let c=X.find(i,e=>(X.toLower(r?.protocol)||"http")==X.toLower(e));!o&&c&&(X.set(n,"host",e[2]),X.set(n,"port",X.toInteger(e[3])))}}else if(-1==X.get(t,"system_configs.proxy.type")){let s=X.isString(X.get(process,"env.NO_PROXY"))&&X.get(t,"system_configs.proxy.envfirst")>0?String(X.get(process,"env.NO_PROXY")).split(","):[];if(X.isEmpty(s)||X.isUndefined(X.find(s,e=>te(a,e)))){const s=String("https"==r?.protocol?X.get(process,"env.HTTPS_PROXY"):X.get(process,"env.HTTP_PROXY"));if((X.get(t,"system_configs.proxy.envfirst")>0||X.isEmpty(X.get(process,"versions.electron")))&&!X.isEmpty(s)&&"undefined"!=s){let e=new K(s);X.set(n,"host",X.join(e?.host,".")||""),X.set(n,"port",X.toInteger(e?.port)>0?X.toInteger(e?.port):0)}else if(!X.isEmpty(X.get(process,"versions.electron")))try{const t=(await require("electron").session.defaultSession.resolveProxy(e)).match(/PROXY (([^:]+):(\d+))/);X.isObject(t)&&X.isString(t[2])&&!X.isEmpty(t[2])&&X.toInteger(t[3])>0&&(X.set(n,"host",t[2]),X.set(n,"port",X.toInteger(t[3])))}catch(e){}}}return X.isString(n.host)&&""!=n.host&&(X.set(n,"tunnel","http"!=X.toLower(r?.protocol)),X.set(n,"authenticate",X.get(t,"system_configs.proxy.auth.authenticate")>0),n.authenticate&&(X.set(n,"username",X.get(t,"system_configs.proxy.auth.username")),X.set(n,"password",X.get(t,"system_configs.proxy.auth.password")))),!X.isEmpty(n)&&X.isString(n.host)&&""!=n.host&&"undefined"!=n.host?s(null,n):s(null,null)}catch(e){return s(null,null)}}};return X.isEmpty(d)||X.assign(y,{certificates:new G.CertificateList({},d)}),y})({requestJson:v,postmanJSON:_},n,a?.variables||{});(new se.Runner).run(new G.Collection({info:{name:X.get(v,"name")||"New request"},item:[k]}),x,(g,k)=>{g?f({action:"systemError",message:String(g),event_id:s?.event_id}):(X.set(a,[s?.event_id,"exception"],null),X.set(a,[s?.event_id,"error"],null),X.set(a,[s?.event_id,"console"],[]),X.set(a,[s?.event_id,"assertions"],[]),X.set(a,[s?.event_id,"visualizer"],{error:null,processed_template:""}),k.start({exception(e,t){if(t&&!X.includes(["assert_visual","assert"],s?.type)){const n=X.get(e,e?.scriptId);if(X.set(a,[s?.event_id,"exception",n],t),X.set(a,[s?.event_id,"error"],{error_type:n,message:t?.message}),X.includes(["prerequest","test"],n)){X.isUndefined(X.get(a,[s?.event_id,"console"]))&&X.set(a,[s?.event_id,"console"],[]);const e=Date.now();a[s?.event_id].console.push({time:e,level:"error",args:[String(t?.message)]})}if("prerequest"===n)try{k.abort(),X.isUndefined(X.get(a,[s?.event_id,"request"]))&&X.set(a,[s?.event_id,"request"],X.pick(v,["name","method","url"]))}catch(e){}}},console(e,t,...n){console.log(...n,3333),X.isUndefined(X.get(a,[s?.event_id,"console"]))&&X.set(a,[s?.event_id,"console"],[]);const r=Date.now();a[s?.event_id].console.push({time:r,level:t,args:n})},beforeRequest(e,t,s,o,i){const c=L();if(["globals","environment","variables"].forEach(e=>{X.assign(c,X.get(a,`variables.${e}`))}),((e,t,s,n)=>{const{postmanJSON:r}=t,{lang:a,custom_functions:o}=n,i=X.cloneDeep(o),c=/{{([^}]+)}}/g;let p=String(e?.url||"");if(!X.isEmpty(p)){const t=p.match(c);X.isEmpty(t)||(X.forEach(t,e=>{try{const t=u(e,s,a,i);t==e||X.isUndefined(t)||(p=X.replace(p,e,t))}catch(e){}}),X.set(e,"url",new G.Url(p)))}X.forEach(X.get(r,"url.path"),(t,s)=>{if(X.startsWith(t,":")){const n=X.findKey(X.get(r,"url.variable"),e=>e?.key==X.trimStart(t,":"));X.startsWith(X.get(r,`url.variable.${n}.value`),"{{")&&X.endsWith(X.get(r,`url.variable.${n}.value`),"}}")&&!X.isUndefined(X.get(e,`url.path.${s}`))&&X.set(r,`url.variable.${n}.value`,X.get(e,`url.path.${s}`))}}),X.isEmpty(e.headers)||e?.headers?.each(e=>{e?.disabled||["key","value"].forEach(t=>{let n=String(X.get(e,t));const r=n.match(c);X.isEmpty(r)||(X.forEach(r,e=>{try{const t=u(e,s,a,i);t==e||X.isUndefined(t)||(n=X.replace(n,e,t))}catch(e){}}),X.set(e,t,n))})});const l=X.get(e,"body.mode");switch(l){case"urlencoded":case"formdata":X.isEmpty(e?.body[l])||e?.body[l].each((e,t)=>{e?.disabled||["key","value"].forEach(t=>{let n=X.get(e,t);if(X.isString(n)){const r=n.match(c);X.isEmpty(r)||(X.forEach(r,e=>{try{const t=u(e,s,a,i);t==e||X.isUndefined(t)||(n=X.replace(n,e,t))}catch(e){}}),X.set(e,t,n))}})});break;default:let t=X.get(e,"body.raw");if(X.isString(t)&&!X.isEmpty(t)){const n=t.match(c);X.isEmpty(n)||(X.forEach(n,e=>{try{const n=u(e,s,a,i);n==e||X.isUndefined(n)||(t=X.replace(t,e,n))}catch(e){}}),X.set(e,"body.raw",t))}}})(s,{postmanJSON:_},c,X.pick(n,["lang","custom_functions"])),X.includes(["get_parsed_request"],p)){try{i?.abort(),k?.abort()}catch(e){}m(),r(H(s))}},beforePrerequest(e,t,s,r){if(!e){const e=ne({requestJson:v,postmanJSON:_},"prerequest",n);X.forEach(e,e=>{const n=new Y(e);s.push(n),X.set(t,n?.script?.id,n?.listen)})}},prerequest(e,t,s,n){e||X.forEach(s,e=>{X.forEach(["_variables","environment","globals"],t=>{const s=X.get(e,`result.${t}`),n={};try{X.forEach(X.get(s.toJSON(),"values"),e=>{n[e?.key]=e?.value})}catch(e){}try{const e=X.difference(X.keys(X.get(a,["variables",t])),X.keys(n));X.forEach(e,e=>{"globals"!=t||X.includes(X.keys(L()),e)?"_variables"==t?X.unset(a,["variables","variables",e]):X.unset(a,["variables",t,e]):(X.unset(a,["variables","_globals",e]),X.unset(a,["variables",t,e]))}),X.forEach(n,(e,s)=>{let n=t;"_variables"===t&&(n="variables"),"globals"!==t||X.includes(X.keys(L()),s)||X.set(a,["variables","_globals",s],e),X.set(a,["variables",n,s],e)})}catch(e){}})})},response:async(n,c,u,g,f,x,q)=>{if(console.log("response total time: "+(Date.now()-b)),X.includes(["get_parsed_request"],p)){try{k.abort()}catch(e){}r(H(g)),m()}else{if(n){if(!X.includes(["script","sql","assert_visual","assert"],s?.type)){X.set(a,[s?.event_id,"exception","prerequest"],String(n)),X.set(a,[s?.event_id,"error"],{error_type:"prerequest",message:String(n)}),X.isUndefined(X.get(a,[s?.event_id,"console"]))&&X.set(a,[s?.event_id,"console"],[]);const e=Date.now();a[s?.event_id].console.push({time:e,level:"error",args:[String(n?.message)]})}}else X.set(a,[s?.event_id,"response"],await async function(s,n){const r=X.cloneDeep(s);X.unset(r,"_details");try{X.assign(r,{body:String(r.stream)})}catch(e){}try{let t="Monaco",s={ext:"json",mime:"application/json"};if(i(r.body))X.assign(s,{ext:"svg",mime:"image/svg+xml"}),t="Image";else{const n=await e.fromBuffer(r.stream);if(X.isObject(n))X.assign(s,n),t=h(`test.${s?.ext}`)?"Image":"pdf"==s?.ext?"Pdf":"xml"==s?.ext?"Monaco":"Other";else{const e=M(r?.headers||{},"content-type")||"";if(X.isEmpty(e)){const e=o.isJson(r.body)?"json":o.isJsonp(r.body)?"jsonp":"html";s={ext:e,mime:l.getType(e)||"application/jsonp"}}else s={ext:l.getExtension(e),mime:l.getType(l.getExtension(e))}}}X.assign(r,{mimeType:s,fitForShow:t})}catch(e){}const a={};try{X.assign(a,X.reduce(s.headers?.toJSON(),(e,t)=>(e[t.key]?(Array.isArray(e[t.key])||(e[t.key]=[e[t.key]]),e[t.key].push(t.value)):e[t.key]=t.value,e),{}))}catch(e){}try{X.assign(r,{headers:a})}catch(e){}let c=`${r?.id}.${r?.mimeType?.ext}`;try{if(c=X.get(t.parse(M(a||{},"content-disposition")),"parameters.filename"),X.isString(c))try{c=decodeURIComponent(c)}catch(e){}}catch(e){}r.filename=c,r.cookies={},r.arrCookies=[];let p=M(a||{},"set-cookie");X.isString(p)&&(p=[p]);try{X.forEach(p,e=>{const t=d.Cookie.parse(e).toJSON();X.assign(t,{name:t?.key,cookie_id:o.snowflakeId(`cookie_id_${Z()}`)}),r.arrCookies.push(t);const{key:s,value:n}=t;r.cookies[s]=n})}catch(e){}const u=X.get(n,"execution.data.0.timings.requestStart")||Date.now();return X.assign(r,{proxy:X.get(n,"execution.data.0.request.proxy")||{},timings:X.mapKeys(X.get(n,"execution.data.0.timings.offset")||{},(e,t)=>X.snakeCase(t)),requestStart:u,response_at:u}),r}(u,q));const r=function(e,t,s,n){const r=X.assign(X.cloneDeep(e),X.pick(t,["project_id","target_id","name"]));r.mode=X.get(t,"request.body.mode");try{r.paths=X.fromPairs((X.get(s,"url.variable")||[]).map(e=>[e.key,e.value]))||{}}catch(e){}try{const e=X.mapValues(X.keyBy(X.get(n,"execution.data[0].request.headers")||{},"key"),"value");!X.isEmpty(e)&&X.isObject(e)?r.headers=e:r.headers=X.reduce(r.headers?.toJSON(),(e,t)=>(e[t.key]=t.value,e),{})}catch(e){}try{r.querys=r.url?.query?.toObject(),r.url=String(r.url)}catch(e){}try{if(r.body=X.get(e,`body.${X.get(e,"body.mode")}`),"msgpack"==r.mode){const e=require("msgpack5")();try{r.body=JSON.stringify(e.decode(y.from(X.values(r.body))))}catch(e){}}try{r.body=r.body.toObject()}catch(e){}}catch(e){}try{r.uri=e?.url.toJSON(),X.forEach(r.uri,(e,t)=>{"query"==t?r.uri[t]=e.toObject():"host"==t?r.uri[t]=X.join(e,"."):"path"==t?r.uri[t]=X.join(e,"/"):X.isArray(e)&&(r.uri[t]=X.join(e,""))})}catch(e){}r.cookies={};try{const e=r.headers?.cookie;!X.isEmpty(e)&&X.isString(e)&&X.forEach(X.split(e,";"),e=>{const{key:t,value:s}=d.Cookie.parse(e).toJSON();r.cookies[t]=s})}catch(e){}return r}(g,v,_,q);X.set(a,[s?.event_id,"request"],r)}},beforeTest(e,t,s,r){if(!e&&!X.includes(["get_parsed_request"],p)){const e=ne({requestJson:v,postmanJSON:_},"test",n);X.forEach(e,e=>{const n=new Y(e);s.push(n),X.set(t,n?.script?.id,n?.listen)})}},test(e,t,n,r){if(!e&&!X.includes(["get_parsed_request"],p)){X.forEach(n,e=>{X.forEach(["_variables","environment","globals"],t=>{const s=X.get(e,`result.${t}`),n={};try{X.forEach(X.get(s.toJSON(),"values"),e=>{n[e?.key]=e?.value})}catch(e){}try{const e=X.difference(X.keys(X.get(a,["variables",t])),X.keys(n));X.forEach(e,e=>{"globals"!=t||X.includes(X.keys(L()),e)?"_variables"==t?X.unset(a,["variables","variables",e]):X.unset(a,["variables",t,e]):(X.unset(a,["variables","_globals",e]),X.unset(a,["variables",t,e]))}),X.forEach(n,(e,s)=>{let n=t;"_variables"===t&&(n="variables"),"globals"!==t||X.includes(X.keys(L()),s)||X.set(a,["variables","_globals",s],e),X.set(a,["variables",n,s],e)})}catch(e){}})});const e=X.get(a,["variables","variables","_pm.response.setBody"]),t=X.toInteger(X.get(a,["variables","variables","_pm.response.code"]));X.isString(e)&&(X.set(a,[s?.event_id,"response","stream"],{type:"Buffer",data:Array.from(y.from(e))}),X.set(a,[s?.event_id,"response","body"],e)),t>0&&X.set(a,[s?.event_id,"response","code"],t)}},assertion(e,t){X.includes(["get_parsed_request"],p)||!X.isEmpty(t)&&X.isArray(t)&&(X.isUndefined(X.get(a,[s?.event_id,"assertions"]))&&X.set(a,[s?.event_id,"assertions"],[]),a[s?.event_id].assertions=X.unionWith(X.concat(X.get(a,[s?.event_id,"assertions"]),t),X.isEqual))},item(e,t,n,r,o){if(!X.includes(["get_parsed_request"],p))if(!e&&X.isObject(r)){const{error:e,processedTemplate:t}=r;X.set(a[s?.event_id],"visualizer",{error:e,processed_template:t})}else X.set(a[s?.event_id],"visualizer",{error:null,processed_template:""})},responseData(e,t){X.includes(["get_parsed_request"],p)||"sse"!==v?.target_type||r({action:"sse",data:{stream:t,size:X.size(t),time:Date.now()},msg:"success",error:null})},done(e,t){if(console.log("done total time: "+(Date.now()-b)),!X.includes(["get_parsed_request"],p)){if(!e){const e=X.filter(X.get(a,[s?.event_id,"assertions"]),e=>!1===e?.passed);let t="Ok";X.inRange(X.toInteger(X.get(a,[s?.event_id,"response","code"])),200,300)||(t=X.get(a,[s?.event_id,"response","status"])||X.get(a,[s?.event_id,"error","message"])),X.set(a,[s?.event_id,"status"],{assert:X.get(a,[s?.event_id,"assertions"],[]),success_assert:e,http:t})}try{const e=F(a,s?.event_id)||{},t=X.pick(X.get(a,"variables"),["environment","_globals"]),n=X.assign(W(X.get(a,s?.event_id)),X.pick(e,["startTime","endTime","currentVariables"])),o=X.assign(X.pick(v,["parent_id","project_id","test_id","target_id"]),X.defaults(X.pick(n,["error","iteration_id","startTime","endTime","currentVariables"]),{error:null}),{action:"request",type:s?.type,data:X.assign({variables:{globals:X.get(t,"_globals",{}),environment:X.get(t,"environment",{})}},X.omit(X.cloneDeep(n),["error"])),event_id:s?.event_id});"auto_test"===p||"sse"===v?.target_type?X.includes(["assert","assert_visual","api","sample","script","sql"],s?.type)&&(c.push(X.assign(W(X.get(X.cloneDeep(a),s?.event_id)),X.pick(s,["type","event_id","test_id","iteration_id"]))),r({action:"request",data:X.assign(o,{type:s?.type})})):r(o)}catch(e){f({action:"systemError",message:String(e),event_id:s?.event_id})}}m()}}))})}catch(e){f({action:"systemError",message:String(e),event_id:s?.event_id})}})}}function B(){if(p)return c;p=1;const e=d,t=S,s=q,n=O,r=m,{returnBoolean:a,variableReplaceForCondition:l,variableReplace:u,getVariableActedUpon:g,convertEndRuntimeState:y,repeatArrayToLength:h}=A(),f=P(),b=function(){if(i)return o;i=1;const e=d,t=m,{variableReplace:s,convertEndRuntimeState:n}=A();return o=async(r,a,o,i,c)=>{try{const p=t.toInteger(s(r?.data?.sleep,i?.variables,a))||0;p>0&&e(p);const l=n(i,r?.event_id)||{},u={action:"request",data:t.assign({data:{sleep:p}},t.pick(l,["startTime","endTime","currentVariables"]),t.pick(r,["project_id","test_id","event_id","type"]),t.pick(t.get(i,r?.event_id),["iteration_id"]))};c.push(u?.data),o(u)}catch(e){throw{action:"systemError",message:String(e),event_id:r?.event_id}}}}(),v={api:f,sample:f,sse:f,request:f,script:f,assert:f,assert_visual:f,sql:f,wait:b,if:async(e,t,s,n,o)=>{try{const{data:i,children:c}=e,p=r.filter(c,e=>r.toInteger(e?.enabled>0)),u=l(i?.var,n?.variables,t),d=i?.compare,m=l(i?.value,n?.variables,t),h=a(u,d,m),f=y(n,e?.event_id)||{},b={action:"request",data:r.assign({data:{isMatched:h,condition:{leftValue:{variable:i?.var,value:u,actedUpon:g(n,r.trim(i?.var,"{}"))||"Fixed"},compare:d,rightValue:{variable:i?.value,value:m,actedUpon:g(n,r.trim(i?.value,"{}"))||"Fixed"}}}},r.pick(f,["startTime","endTime","currentVariables"]),r.pick(e,["project_id","test_id","event_id","type"]),r.pick(r.get(n,e?.event_id),["iteration_id"]))};if(o.push(b?.data),s(b),h&&r.isArray(p)&&!r.isEmpty(p)){const{iterationData:e}=t,a=[e];await k(p,r.assign(r.cloneDeep(t),{iterationDataArr:a}),s,n,o)}}catch(t){throw{action:"systemError",message:String(t),event_id:e?.event_id}}},begin:async(e,t,s,n,a)=>{try{const{children:o}=e,i=r.filter(o,e=>r.toInteger(e?.enabled>0));if(r.isArray(i)&&!r.isEmpty(i)){const{iterationData:e}=t,o=[e];await k(i,r.assign(r.cloneDeep(t),{iterationDataArr:o}),s,n,a)}}catch(t){throw{action:"systemError",message:String(t),event_id:e?.event_id}}},loop:async(e,s,o,i,c)=>{try{const{data:p,children:d}=e,m=r.filter(d,e=>r.toInteger(e?.enabled>0)),g=r.toInteger(u(r.get(p,"sleep",0),i?.variables,s)),y=r.toInteger(r.get(s,"startTime",Date.now())),f=r.toInteger(r.get(s,"timeout",r.toInteger(u(r.get(p,"loop_timeout",0),i?.variables,s))));if(r.isArray(m)&&!r.isEmpty(m)){const e=[];if((r.toInteger(p?.enable_data)||1)>0){switch(r.toInteger(p?.loop_data_type)||1){case 1:r.assign(e,r.values(r.get(p,"loop_traverse_data.iterationData",[])));break;case 2:const a=r.trim(r.get(p,"loop_iteration_data"));if(r.isString(a)&&""!=a){const s={1:"response.body",2:"response.headers",3:"response.cookies",4:"response.code",5:"request.url",6:"request.method",7:"request.querys",8:"request.body",9:"request.headers",10:"request.cookies"},o=r.toInteger(r.get(p,"loop_extract.var")),c=r.get(i,`${a}.${s[o]||"response.body"}`),l=r.trim(String(r.get(p,"loop_extract.value","$")));let u;switch(o){case 1:case 8:try{u=r.isString(c)?t.value(n.parse(c),l):t.value(c,l)}catch(e){}break;case 2:case 3:case 7:case 9:case 10:u=r.get(c,l);break;case 4:case 5:case 6:u=r.cloneDeep(c)}if(r.isString(u))try{u=n.parse(u)}catch(e){}r.isNumber(u)&&(u=String(u));let d=[];r.isArray(u)?d=r.map(u,e=>r.isObject(e)?r.pickBy(e,e=>!r.isObject(e)):{0:e}):r.isObject(u)?r.forEach(u,(e,t)=>{if(!r.isObject(e)){const s={};r.set(s,t,e),d.push(s)}}):r.isString(u)&&(d=r.map(r.values(u),(e,t)=>{const s={};return s[String(t)]=e,s})),r.assign(e,d)}break;case 3:{let t=u(r.get(p,"loop_variable",""),i?.variables,s);if(r.isString(t))try{t=n.parse(t)}catch(e){}r.isNumber(t)&&(t=String(t));let a=[];r.isArray(t)?a=r.map(t,e=>r.isObject(e)?r.pickBy(e,e=>!r.isObject(e)):{0:e}):r.isObject(t)?r.forEach(t,(e,t)=>{if(!r.isObject(e)){const s={};r.set(s,t,e),a.push(s)}}):r.isString(t)&&(a=r.map(r.values(t),(e,t)=>{const s={};return s[String(t)]=e,s})),r.assign(e,a)}break;case 4:{let t=r.split(r.get(p,"loop_fixed_value",""),","),s=[];r.forEach(t,(e,t)=>{r.isObject(e)||s.push({$key:t,$item:e})}),r.assign(e,s)}}}const d=r.toInteger(r.get(p,"loop_type",1));if(r.includes([1,2],d)){const t=1===d?r.size(e):r.toInteger(r.get(p,"limit",1));if(t>0){let n=r.cloneDeep(e);2===d&&(n=h(n,t)),n=r.flatMap(n,e=>r.times(r.size(m),()=>e));const a=r.flatten(r.times(t,()=>r.cloneDeep(m)));await k(a,r.assign(r.cloneDeep(s),{iterationDataArr:n,sleep:g,startTime:y,timeout:f}),o,i,c)}}else if(r.includes([3],d))for(;;){const t=r.get(s,"condition",r.get(p,"loop_condition",{})),n=l(t?.var,i?.variables,s),u=t?.compare,d=l(t?.value,i?.variables,s);if(!(0===f||f>0&&y+f>Date.now())||a(n,u,d))break;await k(r.cloneDeep(m),r.assign(r.cloneDeep(s),{iterationDataArr:e,sleep:g,condition:t,startTime:y,timeout:f}),o,i,c)}}}catch(t){throw{action:"systemError",message:String(t),event_id:e?.event_id}}}},_=async(e,t,n,a,o)=>{r.isUndefined(e.event_id)&&"http_request"===t?.scene&&r.set(e,"event_id",r.get(e,"data.target_id")),r.assign(a?.variables?.iterationData,r.get(t,"iterationData")),r.set(a,[e.event_id,"iteration_id"],s.snowflakeId());const i=r.get(v,`${e?.type}`);if(r.isFunction(i)){const{total:s,scene:c}=t;r.set(a,[e.event_id,"iteration","startTime"],Date.now());const{environment:p={},variables:l={},_globals:u={},iterationData:d={}}=r.get(a,"variables",{});r.set(a,[e.event_id,"iteration","startVariables"],r.cloneDeep({environment:p,variables:l,iterationData:d,globals:u}));try{Date.now();await i(e,t,n,a,o),"auto_test"==c&&r.isInteger(e?.progress)&&n({action:"process",data:{processCurrentCount:e?.progress+1,processTotalCount:s,event_id:e?.event_id,testing_id:e?.test_id}})}catch(e){if(r.toInteger(t?.ignore_error)<1)throw e}}},k=async(t,s,n,a,o)=>{const i=t.shift();if(r.isObject(i)&&r.has(i,"type")&&r.toInteger(i?.enabled)>0){let{iterationDataArr:c}=s;r.isArray(c)||(c=r.values(c));const p=c.shift()||{};try{const{sleep:t}=s;await _(i,{...s,iterationData:p},n,a,o),r.toInteger(t)>0&&e(t)}catch(e){if(r.toInteger(s?.ignore_error)<1)throw e}r.isArray(t)&&!r.isEmpty(t)&&await k(t,{...s,iterationDataArr:c},n,a,o)}};return c={executeEvent:_,iterationEvent:k}}var z=U(function(){if(u)return l;u=1;const{repeatArrayToLength:e,formatAutotestReport:t,formatAutotestReportList:s,getInsideVariables:n}=A(),r=m,{mockExp:a}=f,o=q,{executeEvent:i,iterationEvent:c}=B(),p=["systemError"];return l={run:async(l,u,d)=>{const{iterationCount:m,iterationData:g,scene:y}=u;"auto_test"==y&&(l=r.filter(l,function(e){return r.toInteger(e?.enabled)>0}));const h=r.cloneDeep(r.flatten(new Array("auto_test"==y?r.max([r.toInteger(m),1]):1).fill(l)))||[],f=r.pick(u,["scene","lang","project","env","globals","cookies","system_configs","custom_functions","collection","database_configs","enable_sandbox","sleep","name","testing_id"]),b={variables:{environment:{},variables:{},globals:{},_globals:{},iterationData:{},iterationDataArr:[]}},v=[];if("http_request"!=y){const e=/{{([^}]+)}}/g;r.forEach(r.values(r.cloneDeep(g)),(t,s)=>{const o=r.cloneDeep(t);r.isObject(t)&&!r.isEmpty(t)&&r.forEach(t,(t,s)=>{if(""!=r.trim(t)&&r.isString(t)){const i=t.match(e);r.isEmpty(i)||r.forEach(i,e=>{try{const i=a(e,n(),u?.lang,u?.custom_functions||{});i==e||r.isUndefined(i)||r.set(o,[s],r.replace(t,e,i))}catch(e){}})}}),v.push(o)})}const _=r.flatMap(e(r.cloneDeep(v),r.max([r.toInteger(m),1])),e=>r.times(r.size(l),()=>e)),k={environment:r.get(u,"env.environment",{}),globals:r.get(u,"globals",{}),iterationDataArr:_};["environment","globals","iterationDataArr"].forEach(e=>{r.forEach(k[e],(t,s)=>{r.isUndefined(r.get(b,["variables",e,s]))&&(r.set(b,["variables",e,s],t),"globals"===e&&r.set(b,["variables",`_${e}`,s],t))})});const x=[],q=Date.now();if("http_request"==y){const e=r.first(h);if(r.isObject(e)&&r.has(e,"type"))try{await i(e,r.assign(f,{iterationData:{}}),d,b,x)}catch(e){if(r.includes(p,e?.action))throw e}}else{const e=[];if(r.forEach(h,(t,s)=>{t?.enabled>0&&e.push(r.assign(r.cloneDeep(t),{progress:s}))}),!r.isEmpty(e)){const t=r.size(e);try{await c(e,r.assign(f,{iterationDataArr:_,total:t}),d,b,x)}catch(e){d(e)}}const n=r.pick(r.get(b,"variables"),["environment","_globals"]);d({action:"complete",data:r.assign(t(q,x),{list:s(x),variables:{globals:u?.enable_sandbox>0?{}:r.get(n,"_globals",{}),environment:u?.enable_sandbox>0?{}:r.get(n,"environment",{})}},r.pick(r.get(u,"env",{}),["env_id","env_name"]),{testing_id:r.get(r.first(x),"test_id")},{report_name:`${u?.name}`},{report_id:o.snowflakeId()})})}},request2HAR:(e,t)=>new Promise(async(s,n)=>{const a=r.pick(t,["scene","lang","project","env","globals","cookies","system_configs","custom_functions","collection","database_configs","enable_sandbox","sleep","name","testing_id"]),o={variables:{environment:{},variables:{},globals:{},_globals:{},iterationData:{},iterationDataArr:[]}},c={environment:r.get(t,"env.environment",{}),globals:r.get(t,"globals",{})};["environment","globals"].forEach(e=>{r.forEach(c[e],(t,s)=>{r.isUndefined(r.get(o,["variables",e,s]))&&(r.set(o,["variables",e,s],t),"globals"===e&&r.set(o,["variables",`_${e}`,s],t))})});const p=[],l=r.first(e);if(r.isObject(l)&&r.has(l,"type"))try{await i(l,r.assign(a,{scene:"get_parsed_request"}),e=>{s(e)},o,p)}catch(e){n(e)}})}}());module.exports=z;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "runner-runtime",
3
- "version": "1.0.95",
3
+ "version": "1.0.97",
4
4
  "description": "runner-runtime.",
5
5
  "main": "./dist/index.js",
6
6
  "files": [
@@ -26,7 +26,8 @@
26
26
  "homepage": "https://github.com/Apipost-Team/runner-runtime#readme",
27
27
  "devDependencies": {
28
28
  "@rollup/plugin-commonjs": "^28.0.5",
29
- "@rollup/plugin-terser": "^0.4.4"
29
+ "@rollup/plugin-terser": "^0.4.4",
30
+ "rollup": "^4.44.1"
30
31
  },
31
32
  "dependencies": {
32
33
  "@apipost/url-join": "^1.0.1",
@@ -48,12 +49,10 @@
48
49
  "msgpack5": "^6.0.2",
49
50
  "net": "^1.0.2",
50
51
  "postman-collection": "^5.0.2",
51
- "postman-runtime-pro": "^7.43.20",
52
- "request-har": "^1.0.0",
52
+ "postman-runtime-pro": "^7.43.22",
53
53
  "strip-json-comments": "^3.1.1",
54
54
  "tough": "^0.6.0",
55
55
  "tough-cookie": "^5.1.2",
56
- "uuid": "^9.0.1",
57
- "validator": "^13.15.0"
56
+ "uuid": "^9.0.1"
58
57
  }
59
58
  }