mock-service-cli-ultra 4.11.0 → 4.11.1
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.
- package/dist/api-client/client.js +5 -3
- package/dist/meta.json +23 -5
- package/dist/runtime.js +2 -2
- package/docs/api-client.md +2 -0
- package/package.json +1 -1
|
@@ -1273,8 +1273,10 @@
|
|
|
1273
1273
|
async function send() {
|
|
1274
1274
|
const tab = active();
|
|
1275
1275
|
if (tab.job) return;
|
|
1276
|
-
|
|
1277
|
-
|
|
1276
|
+
// 用独立副本承载 Secret 变量引用,保持 tab.request 对象不变;
|
|
1277
|
+
// 否则正文编辑器、参数表等面板闭包会继续指向发送前的旧对象,之后的修改不会被发送或保存。
|
|
1278
|
+
const request = secureRequest(tab.request);
|
|
1279
|
+
const data = await api('/executions', 'POST', { request, ...executionContext(tab.collectionId) });
|
|
1278
1280
|
tab.job = data.executionId;
|
|
1279
1281
|
if (active() === tab) {
|
|
1280
1282
|
syncSend();
|
|
@@ -1297,7 +1299,7 @@
|
|
|
1297
1299
|
state.history.unshift({
|
|
1298
1300
|
id: id(),
|
|
1299
1301
|
time: Date.now(),
|
|
1300
|
-
request: persistable(
|
|
1302
|
+
request: persistable(request),
|
|
1301
1303
|
status: tab.result.status,
|
|
1302
1304
|
duration: tab.result.duration
|
|
1303
1305
|
});
|
package/dist/meta.json
CHANGED
|
@@ -2996,8 +2996,13 @@
|
|
|
2996
2996
|
],
|
|
2997
2997
|
"format": "cjs"
|
|
2998
2998
|
},
|
|
2999
|
+
"src/lib/apiClient/headers.js": {
|
|
3000
|
+
"bytes": 298,
|
|
3001
|
+
"imports": [],
|
|
3002
|
+
"format": "cjs"
|
|
3003
|
+
},
|
|
2999
3004
|
"src/lib/apiClient/engine.js": {
|
|
3000
|
-
"bytes":
|
|
3005
|
+
"bytes": 20060,
|
|
3001
3006
|
"imports": [
|
|
3002
3007
|
{
|
|
3003
3008
|
"path": "http",
|
|
@@ -3064,6 +3069,11 @@
|
|
|
3064
3069
|
"kind": "require-call",
|
|
3065
3070
|
"original": "./download"
|
|
3066
3071
|
},
|
|
3072
|
+
{
|
|
3073
|
+
"path": "src/lib/apiClient/headers.js",
|
|
3074
|
+
"kind": "require-call",
|
|
3075
|
+
"original": "./headers"
|
|
3076
|
+
},
|
|
3067
3077
|
{
|
|
3068
3078
|
"path": "src/lib/apiClient/model.js",
|
|
3069
3079
|
"kind": "require-call",
|
|
@@ -4652,7 +4662,7 @@
|
|
|
4652
4662
|
"format": "cjs"
|
|
4653
4663
|
},
|
|
4654
4664
|
"src/lib/apiClient/importers.js": {
|
|
4655
|
-
"bytes":
|
|
4665
|
+
"bytes": 20033,
|
|
4656
4666
|
"imports": [
|
|
4657
4667
|
{
|
|
4658
4668
|
"path": "crypto",
|
|
@@ -4664,6 +4674,11 @@
|
|
|
4664
4674
|
"kind": "require-call",
|
|
4665
4675
|
"original": "yaml"
|
|
4666
4676
|
},
|
|
4677
|
+
{
|
|
4678
|
+
"path": "src/lib/apiClient/headers.js",
|
|
4679
|
+
"kind": "require-call",
|
|
4680
|
+
"original": "./headers"
|
|
4681
|
+
},
|
|
4667
4682
|
{
|
|
4668
4683
|
"path": "src/lib/apiClient/model.js",
|
|
4669
4684
|
"kind": "require-call",
|
|
@@ -12417,8 +12432,11 @@
|
|
|
12417
12432
|
"src/lib/apiClient/download.js": {
|
|
12418
12433
|
"bytesInOutput": 803
|
|
12419
12434
|
},
|
|
12435
|
+
"src/lib/apiClient/headers.js": {
|
|
12436
|
+
"bytesInOutput": 332
|
|
12437
|
+
},
|
|
12420
12438
|
"src/lib/apiClient/engine.js": {
|
|
12421
|
-
"bytesInOutput":
|
|
12439
|
+
"bytesInOutput": 15255
|
|
12422
12440
|
},
|
|
12423
12441
|
"node_modules/yaml/dist/nodes/identity.js": {
|
|
12424
12442
|
"bytesInOutput": 1436
|
|
@@ -12637,7 +12655,7 @@
|
|
|
12637
12655
|
"bytesInOutput": 1499
|
|
12638
12656
|
},
|
|
12639
12657
|
"src/lib/apiClient/importers.js": {
|
|
12640
|
-
"bytesInOutput":
|
|
12658
|
+
"bytesInOutput": 16479
|
|
12641
12659
|
},
|
|
12642
12660
|
"node_modules/colors/lib/styles.js": {
|
|
12643
12661
|
"bytesInOutput": 1119
|
|
@@ -13597,7 +13615,7 @@
|
|
|
13597
13615
|
"bytesInOutput": 553
|
|
13598
13616
|
}
|
|
13599
13617
|
},
|
|
13600
|
-
"bytes":
|
|
13618
|
+
"bytes": 2140895
|
|
13601
13619
|
}
|
|
13602
13620
|
}
|
|
13603
13621
|
}
|
package/dist/runtime.js
CHANGED
|
@@ -74,7 +74,7 @@ Please see the 3.x to 4.x migration guide for details on how to update your app.
|
|
|
74
74
|
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim();exports2.IP_V6_REGEX_OBJECT=new RegExp(`^${IP_V6_REGEX}$`)}});var require_canonicalDomain=__commonJS({"node_modules/tough-cookie/dist/cookie/canonicalDomain.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.canonicalDomain=canonicalDomain;var constants_1=require_constants();function domainToASCII(domain){return new URL(`http://${domain}`).hostname}function canonicalDomain(domainName){if(domainName==null)return;let str=domainName.trim().replace(/^\./,"");return constants_1.IP_V6_REGEX_OBJECT.test(str)?(str.startsWith("[")||(str="["+str),str.endsWith("]")||(str=str+"]"),domainToASCII(str).slice(1,-1)):/[^\u0001-\u007f]/.test(str)?domainToASCII(str):str.toLowerCase()}}});var require_formatDate=__commonJS({"node_modules/tough-cookie/dist/cookie/formatDate.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.formatDate=formatDate;function formatDate(date){return date.toUTCString()}}});var require_parseDate=__commonJS({"node_modules/tough-cookie/dist/cookie/parseDate.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.parseDate=parseDate;var DATE_DELIM=/[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/,MONTH_TO_NUM={jan:0,feb:1,mar:2,apr:3,may:4,jun:5,jul:6,aug:7,sep:8,oct:9,nov:10,dec:11};function parseDigits(token,minDigits,maxDigits,trailingOK){let count=0;for(;count<token.length;){let c=token.charCodeAt(count);if(c<=47||c>=58)break;count++}if(!(count<minDigits||count>maxDigits)&&!(!trailingOK&&count!=token.length))return parseInt(token.slice(0,count),10)}function parseTime(token){let parts=token.split(":"),result=[0,0,0];if(parts.length===3){for(let i=0;i<3;i++){let trailingOK=i==2,numPart=parts[i];if(numPart===void 0)return;let num=parseDigits(numPart,1,2,trailingOK);if(num===void 0)return;result[i]=num}return result}}function parseMonth(token){switch(token=String(token).slice(0,3).toLowerCase(),token){case"jan":return MONTH_TO_NUM.jan;case"feb":return MONTH_TO_NUM.feb;case"mar":return MONTH_TO_NUM.mar;case"apr":return MONTH_TO_NUM.apr;case"may":return MONTH_TO_NUM.may;case"jun":return MONTH_TO_NUM.jun;case"jul":return MONTH_TO_NUM.jul;case"aug":return MONTH_TO_NUM.aug;case"sep":return MONTH_TO_NUM.sep;case"oct":return MONTH_TO_NUM.oct;case"nov":return MONTH_TO_NUM.nov;case"dec":return MONTH_TO_NUM.dec;default:return}}function parseDate(cookieDate){if(!cookieDate)return;let tokens=cookieDate.split(DATE_DELIM),hour,minute,second,dayOfMonth,month,year;for(let i=0;i<tokens.length;i++){let token=(tokens[i]??"").trim();if(token.length){if(second===void 0){let result=parseTime(token);if(result){hour=result[0],minute=result[1],second=result[2];continue}}if(dayOfMonth===void 0){let result=parseDigits(token,1,2,!0);if(result!==void 0){dayOfMonth=result;continue}}if(month===void 0){let result=parseMonth(token);if(result!==void 0){month=result;continue}}if(year===void 0){let result=parseDigits(token,2,4,!0);result!==void 0&&(year=result,year>=70&&year<=99?year+=1900:year>=0&&year<=69&&(year+=2e3))}}}if(!(dayOfMonth===void 0||month===void 0||year===void 0||hour===void 0||minute===void 0||second===void 0||dayOfMonth<1||dayOfMonth>31||year<1601||hour>23||minute>59||second>59))return new Date(Date.UTC(year,month,dayOfMonth,hour,minute,second))}}});var require_cookie2=__commonJS({"node_modules/tough-cookie/dist/cookie/cookie.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result};Object.defineProperty(exports2,"__esModule",{value:!0});exports2.Cookie=void 0;var getPublicSuffix_1=require_getPublicSuffix(),validators=__importStar(require_validators()),utils_1=require_utils3(),formatDate_1=require_formatDate(),parseDate_1=require_parseDate(),canonicalDomain_1=require_canonicalDomain(),COOKIE_OCTETS=/^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/,PATH_VALUE=/[\x20-\x3A\x3C-\x7E]+/,CONTROL_CHARS=/[\x00-\x1F]/,TERMINATORS=[`
|
|
75
75
|
`,"\r","\0"];function trimTerminator(str){if(validators.isEmptyString(str))return str;for(let t=0;t<TERMINATORS.length;t++){let terminator=TERMINATORS[t],terminatorIdx=terminator?str.indexOf(terminator):-1;terminatorIdx!==-1&&(str=str.slice(0,terminatorIdx))}return str}function parseCookiePair(cookiePair,looseMode){cookiePair=trimTerminator(cookiePair);let firstEq=cookiePair.indexOf("=");if(looseMode)firstEq===0&&(cookiePair=cookiePair.substring(1),firstEq=cookiePair.indexOf("="));else if(firstEq<=0)return;let cookieName,cookieValue;if(firstEq<=0?(cookieName="",cookieValue=cookiePair.trim()):(cookieName=cookiePair.slice(0,firstEq).trim(),cookieValue=cookiePair.slice(firstEq+1).trim()),CONTROL_CHARS.test(cookieName)||CONTROL_CHARS.test(cookieValue))return;let c=new Cookie;return c.key=cookieName,c.value=cookieValue,c}function parse(str,options){if(validators.isEmptyString(str)||!validators.isString(str))return;str=str.trim();let firstSemi=str.indexOf(";"),cookiePair=firstSemi===-1?str:str.slice(0,firstSemi),c=parseCookiePair(cookiePair,options?.loose??!1);if(!c)return;if(firstSemi===-1)return c;let unparsed=str.slice(firstSemi+1).trim();if(unparsed.length===0)return c;let cookie_avs=unparsed.split(";");for(;cookie_avs.length;){let av=(cookie_avs.shift()??"").trim();if(av.length===0)continue;let av_sep=av.indexOf("="),av_key,av_value;switch(av_sep===-1?(av_key=av,av_value=null):(av_key=av.slice(0,av_sep),av_value=av.slice(av_sep+1)),av_key=av_key.trim().toLowerCase(),av_value&&(av_value=av_value.trim()),av_key){case"expires":if(av_value){let exp=(0,parseDate_1.parseDate)(av_value);exp&&(c.expires=exp)}break;case"max-age":if(av_value&&/^-?[0-9]+$/.test(av_value)){let delta=parseInt(av_value,10);c.setMaxAge(delta)}break;case"domain":if(av_value){let domain=av_value.trim().replace(/^\./,"");domain&&(c.domain=domain.toLowerCase())}break;case"path":c.path=av_value&&av_value[0]==="/"?av_value:null;break;case"secure":c.secure=!0;break;case"httponly":c.httpOnly=!0;break;case"samesite":switch(av_value?av_value.toLowerCase():""){case"strict":c.sameSite="strict";break;case"lax":c.sameSite="lax";break;case"none":c.sameSite="none";break;default:c.sameSite=void 0;break}break;default:c.extensions=c.extensions||[],c.extensions.push(av);break}}return c}function fromJSON(str){if(!str||validators.isEmptyString(str))return;let obj;if(typeof str=="string")try{obj=JSON.parse(str)}catch{return}else obj=str;let c=new Cookie;return Cookie.serializableProperties.forEach(prop=>{if(obj&&typeof obj=="object"&&(0,utils_1.inOperator)(prop,obj)){let val=obj[prop];if(val===void 0||(0,utils_1.inOperator)(prop,cookieDefaults)&&val===cookieDefaults[prop])return;switch(prop){case"key":case"value":case"sameSite":typeof val=="string"&&(c[prop]=val);break;case"expires":case"creation":case"lastAccessed":typeof val=="number"||typeof val=="string"||val instanceof Date?c[prop]=obj[prop]=="Infinity"?"Infinity":new Date(val):val===null&&(c[prop]=null);break;case"maxAge":(typeof val=="number"||val==="Infinity"||val==="-Infinity")&&(c[prop]=val);break;case"domain":case"path":(typeof val=="string"||val===null)&&(c[prop]=val);break;case"secure":case"httpOnly":typeof val=="boolean"&&(c[prop]=val);break;case"extensions":Array.isArray(val)&&val.every(item=>typeof item=="string")&&(c[prop]=val);break;case"hostOnly":case"pathIsDefault":(typeof val=="boolean"||val===null)&&(c[prop]=val);break}}}),c}var cookieDefaults={key:"",value:"",expires:"Infinity",maxAge:null,domain:null,path:null,secure:!1,httpOnly:!1,extensions:null,hostOnly:null,pathIsDefault:null,creation:null,lastAccessed:null,sameSite:void 0},Cookie=class _Cookie{constructor(options={}){this.key=options.key??cookieDefaults.key,this.value=options.value??cookieDefaults.value,this.expires=options.expires??cookieDefaults.expires,this.maxAge=options.maxAge??cookieDefaults.maxAge,this.domain=options.domain??cookieDefaults.domain,this.path=options.path??cookieDefaults.path,this.secure=options.secure??cookieDefaults.secure,this.httpOnly=options.httpOnly??cookieDefaults.httpOnly,this.extensions=options.extensions??cookieDefaults.extensions,this.creation=options.creation??cookieDefaults.creation,this.hostOnly=options.hostOnly??cookieDefaults.hostOnly,this.pathIsDefault=options.pathIsDefault??cookieDefaults.pathIsDefault,this.lastAccessed=options.lastAccessed??cookieDefaults.lastAccessed,this.sameSite=options.sameSite??cookieDefaults.sameSite,this.creation=options.creation??new Date,Object.defineProperty(this,"creationIndex",{configurable:!1,enumerable:!1,writable:!0,value:++_Cookie.cookiesCreated}),this.creationIndex=_Cookie.cookiesCreated}[Symbol.for("nodejs.util.inspect.custom")](){let now=Date.now(),hostOnly=this.hostOnly!=null?this.hostOnly.toString():"?",createAge=this.creation&&this.creation!=="Infinity"?`${String(now-this.creation.getTime())}ms`:"?",accessAge=this.lastAccessed&&this.lastAccessed!=="Infinity"?`${String(now-this.lastAccessed.getTime())}ms`:"?";return`Cookie="${this.toString()}; hostOnly=${hostOnly}; aAge=${accessAge}; cAge=${createAge}"`}toJSON(){let obj={};for(let prop of _Cookie.serializableProperties){let val=this[prop];if(val!==cookieDefaults[prop])switch(prop){case"key":case"value":case"sameSite":typeof val=="string"&&(obj[prop]=val);break;case"expires":case"creation":case"lastAccessed":typeof val=="number"||typeof val=="string"||val instanceof Date?obj[prop]=val=="Infinity"?"Infinity":new Date(val).toISOString():val===null&&(obj[prop]=null);break;case"maxAge":(typeof val=="number"||val==="Infinity"||val==="-Infinity")&&(obj[prop]=val);break;case"domain":case"path":(typeof val=="string"||val===null)&&(obj[prop]=val);break;case"secure":case"httpOnly":typeof val=="boolean"&&(obj[prop]=val);break;case"extensions":Array.isArray(val)&&(obj[prop]=val);break;case"hostOnly":case"pathIsDefault":(typeof val=="boolean"||val===null)&&(obj[prop]=val);break}}return obj}clone(){return fromJSON(this.toJSON())}validate(){if(!this.value||!COOKIE_OCTETS.test(this.value)||this.expires!="Infinity"&&!(this.expires instanceof Date)&&!(0,parseDate_1.parseDate)(this.expires)||this.maxAge!=null&&this.maxAge!=="Infinity"&&(this.maxAge==="-Infinity"||this.maxAge<=0)||this.path!=null&&!PATH_VALUE.test(this.path))return!1;let cdomain=this.cdomain();return!(cdomain&&(cdomain.match(/\.$/)||(0,getPublicSuffix_1.getPublicSuffix)(cdomain)==null))}setExpires(exp){exp instanceof Date?this.expires=exp:this.expires=(0,parseDate_1.parseDate)(exp)||"Infinity"}setMaxAge(age){age===1/0?this.maxAge="Infinity":age===-1/0?this.maxAge="-Infinity":this.maxAge=age}cookieString(){let val=this.value||"";return this.key?`${this.key}=${val}`:val}toString(){let str=this.cookieString();return this.expires!="Infinity"&&this.expires instanceof Date&&(str+=`; Expires=${(0,formatDate_1.formatDate)(this.expires)}`),this.maxAge!=null&&this.maxAge!=1/0&&(str+=`; Max-Age=${String(this.maxAge)}`),this.domain&&!this.hostOnly&&(str+=`; Domain=${this.domain}`),this.path&&(str+=`; Path=${this.path}`),this.secure&&(str+="; Secure"),this.httpOnly&&(str+="; HttpOnly"),this.sameSite&&this.sameSite!=="none"&&(this.sameSite.toLowerCase()===_Cookie.sameSiteCanonical.lax.toLowerCase()?str+=`; SameSite=${_Cookie.sameSiteCanonical.lax}`:this.sameSite.toLowerCase()===_Cookie.sameSiteCanonical.strict.toLowerCase()?str+=`; SameSite=${_Cookie.sameSiteCanonical.strict}`:str+=`; SameSite=${this.sameSite}`),this.extensions&&this.extensions.forEach(ext=>{str+=`; ${ext}`}),str}TTL(now=Date.now()){if(this.maxAge!=null&&typeof this.maxAge=="number")return this.maxAge<=0?0:this.maxAge*1e3;let expires=this.expires;return expires==="Infinity"?1/0:(expires?.getTime()??now)-(now||Date.now())}expiryTime(now){if(this.maxAge!=null){let relativeTo=now||this.lastAccessed||new Date,maxAge=typeof this.maxAge=="number"?this.maxAge:-1/0,age=maxAge<=0?-1/0:maxAge*1e3;return relativeTo==="Infinity"?1/0:relativeTo.getTime()+age}return this.expires=="Infinity"?1/0:this.expires?this.expires.getTime():void 0}expiryDate(now){let millisec=this.expiryTime(now);return millisec==1/0?new Date(2147483647e3):millisec==-1/0?new Date(0):millisec==null?void 0:new Date(millisec)}isPersistent(){return this.maxAge!=null||this.expires!="Infinity"}canonicalizedDomain(){return(0,canonicalDomain_1.canonicalDomain)(this.domain)}cdomain(){return(0,canonicalDomain_1.canonicalDomain)(this.domain)}static parse(str,options){return parse(str,options)}static fromJSON(str){return fromJSON(str)}};exports2.Cookie=Cookie;Cookie.cookiesCreated=0;Cookie.sameSiteLevel={strict:3,lax:2,none:1};Cookie.sameSiteCanonical={strict:"Strict",lax:"Lax"};Cookie.serializableProperties=["key","value","expires","maxAge","domain","path","secure","httpOnly","extensions","hostOnly","pathIsDefault","creation","lastAccessed","sameSite"]}});var require_cookieCompare=__commonJS({"node_modules/tough-cookie/dist/cookie/cookieCompare.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.cookieCompare=cookieCompare;var MAX_TIME=2147483647e3;function cookieCompare(a,b){let cmp,aPathLen=a.path?a.path.length:0;if(cmp=(b.path?b.path.length:0)-aPathLen,cmp!==0)return cmp;let aTime=a.creation&&a.creation instanceof Date?a.creation.getTime():MAX_TIME,bTime=b.creation&&b.creation instanceof Date?b.creation.getTime():MAX_TIME;return cmp=aTime-bTime,cmp!==0||(cmp=(a.creationIndex||0)-(b.creationIndex||0)),cmp}}});var require_defaultPath=__commonJS({"node_modules/tough-cookie/dist/cookie/defaultPath.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.defaultPath=defaultPath;function defaultPath(path){if(!path||path.slice(0,1)!=="/")return"/";if(path==="/")return path;let rightSlash=path.lastIndexOf("/");return rightSlash===0?"/":path.slice(0,rightSlash)}}});var require_domainMatch=__commonJS({"node_modules/tough-cookie/dist/cookie/domainMatch.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.domainMatch=domainMatch;var canonicalDomain_1=require_canonicalDomain(),IP_REGEX_LOWERCASE=/(?:^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$)|(?:^(?:(?:[a-f\d]{1,4}:){7}(?:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|:[a-f\d]{1,4}|:)|(?:[a-f\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,2}|:)|(?:[a-f\d]{1,4}:){4}(?:(?::[a-f\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,3}|:)|(?:[a-f\d]{1,4}:){3}(?:(?::[a-f\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,4}|:)|(?:[a-f\d]{1,4}:){2}(?:(?::[a-f\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,5}|:)|(?:[a-f\d]{1,4}:){1}(?:(?::[a-f\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,6}|:)|(?::(?:(?::[a-f\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}|(?::[a-f\d]{1,4}){1,7}|:)))$)/;function domainMatch(domain,cookieDomain,canonicalize){if(domain==null||cookieDomain==null)return;let _str,_domStr;if(canonicalize!==!1?(_str=(0,canonicalDomain_1.canonicalDomain)(domain),_domStr=(0,canonicalDomain_1.canonicalDomain)(cookieDomain)):(_str=domain,_domStr=cookieDomain),_str==null||_domStr==null)return;if(_str==_domStr)return!0;let idx=_str.lastIndexOf(_domStr);return idx<=0||_str.length!==_domStr.length+idx||_str.substring(idx-1,idx)!=="."?!1:!IP_REGEX_LOWERCASE.test(_str)}}});var require_cookieJar=__commonJS({"node_modules/tough-cookie/dist/cookie/cookieJar.js"(exports2){"use strict";var __createBinding=exports2&&exports2.__createBinding||(Object.create?(function(o,m,k,k2){k2===void 0&&(k2=k);var desc=Object.getOwnPropertyDescriptor(m,k);(!desc||("get"in desc?!m.__esModule:desc.writable||desc.configurable))&&(desc={enumerable:!0,get:function(){return m[k]}}),Object.defineProperty(o,k2,desc)}):(function(o,m,k,k2){k2===void 0&&(k2=k),o[k2]=m[k]})),__setModuleDefault=exports2&&exports2.__setModuleDefault||(Object.create?(function(o,v){Object.defineProperty(o,"default",{enumerable:!0,value:v})}):function(o,v){o.default=v}),__importStar=exports2&&exports2.__importStar||function(mod){if(mod&&mod.__esModule)return mod;var result={};if(mod!=null)for(var k in mod)k!=="default"&&Object.prototype.hasOwnProperty.call(mod,k)&&__createBinding(result,mod,k);return __setModuleDefault(result,mod),result};Object.defineProperty(exports2,"__esModule",{value:!0});exports2.CookieJar=void 0;var getPublicSuffix_1=require_getPublicSuffix(),validators=__importStar(require_validators()),validators_1=require_validators(),store_1=require_store(),memstore_1=require_memstore(),pathMatch_1=require_pathMatch(),cookie_1=require_cookie2(),utils_1=require_utils3(),canonicalDomain_1=require_canonicalDomain(),constants_1=require_constants(),defaultPath_1=require_defaultPath(),domainMatch_1=require_domainMatch(),cookieCompare_1=require_cookieCompare(),version_1=require_version(),defaultSetCookieOptions={loose:!1,sameSiteContext:void 0,ignoreError:!1,http:!0},defaultGetCookieOptions={http:!0,expire:!0,allPaths:!1,sameSiteContext:void 0,sort:void 0},SAME_SITE_CONTEXT_VAL_ERR='Invalid sameSiteContext option for getCookies(); expected one of "strict", "lax", or "none"';function getCookieContext(url){if(url&&typeof url=="object"&&"hostname"in url&&typeof url.hostname=="string"&&"pathname"in url&&typeof url.pathname=="string"&&"protocol"in url&&typeof url.protocol=="string")return{hostname:url.hostname,pathname:url.pathname,protocol:url.protocol};if(typeof url=="string")try{return new URL(decodeURI(url))}catch{return new URL(url)}else throw new validators_1.ParameterError("`url` argument is not a string or URL.")}function checkSameSiteContext(value){let context=String(value).toLowerCase();if(context==="none"||context==="lax"||context==="strict")return context}function isSecurePrefixConditionMet(cookie){return!(typeof cookie.key=="string"&&cookie.key.startsWith("__Secure-"))||cookie.secure}function isHostPrefixConditionMet(cookie){return!(typeof cookie.key=="string"&&cookie.key.startsWith("__Host-"))||!!(cookie.secure&&cookie.hostOnly&&cookie.path!=null&&cookie.path==="/")}function getNormalizedPrefixSecurity(prefixSecurity){let normalizedPrefixSecurity=prefixSecurity.toLowerCase();switch(normalizedPrefixSecurity){case constants_1.PrefixSecurityEnum.STRICT:case constants_1.PrefixSecurityEnum.SILENT:case constants_1.PrefixSecurityEnum.DISABLED:return normalizedPrefixSecurity;default:return constants_1.PrefixSecurityEnum.SILENT}}var CookieJar=class _CookieJar{constructor(store,options){typeof options=="boolean"&&(options={rejectPublicSuffixes:options}),this.rejectPublicSuffixes=options?.rejectPublicSuffixes??!0,this.enableLooseMode=options?.looseMode??!1,this.allowSpecialUseDomain=options?.allowSpecialUseDomain??!0,this.prefixSecurity=getNormalizedPrefixSecurity(options?.prefixSecurity??"silent"),this.store=store??new memstore_1.MemoryCookieStore}callSync(fn){if(!this.store.synchronous)throw new Error("CookieJar store is not synchronous; use async API instead.");let syncErr=null,syncResult;try{fn.call(this,(error,result)=>{syncErr=error,syncResult=result})}catch(err){syncErr=err}if(syncErr)throw syncErr;return syncResult}setCookie(cookie,url,options,callback){typeof options=="function"&&(callback=options,options=void 0);let promiseCallback=(0,utils_1.createPromiseCallback)(callback),cb=promiseCallback.callback,context;try{if(typeof url=="string"&&validators.validate(validators.isNonEmptyString(url),callback,(0,utils_1.safeToString)(options)),context=getCookieContext(url),typeof url=="function")return promiseCallback.reject(new Error("No URL was specified"));if(typeof options=="function"&&(options=defaultSetCookieOptions),validators.validate(typeof cb=="function",cb),!validators.isNonEmptyString(cookie)&&!validators.isObject(cookie)&&cookie instanceof String&&cookie.length==0)return promiseCallback.resolve(void 0)}catch(err){return promiseCallback.reject(err)}let host=(0,canonicalDomain_1.canonicalDomain)(context.hostname)??null,loose=options?.loose||this.enableLooseMode,sameSiteContext=null;if(options?.sameSiteContext&&(sameSiteContext=checkSameSiteContext(options.sameSiteContext),!sameSiteContext))return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR));if(typeof cookie=="string"||cookie instanceof String){let parsedCookie=cookie_1.Cookie.parse(cookie.toString(),{loose});if(!parsedCookie){let err=new Error("Cookie failed to parse");return options?.ignoreError?promiseCallback.resolve(void 0):promiseCallback.reject(err)}cookie=parsedCookie}else if(!(cookie instanceof cookie_1.Cookie)){let err=new Error("First argument to setCookie must be a Cookie object or string");return options?.ignoreError?promiseCallback.resolve(void 0):promiseCallback.reject(err)}let now=options?.now||new Date;if(this.rejectPublicSuffixes&&cookie.domain)try{let cdomain=cookie.cdomain();if((typeof cdomain=="string"?(0,getPublicSuffix_1.getPublicSuffix)(cdomain,{allowSpecialUseDomain:this.allowSpecialUseDomain,ignoreError:options?.ignoreError}):null)==null&&!constants_1.IP_V6_REGEX_OBJECT.test(cookie.domain)){let err=new Error("Cookie has domain set to a public suffix");return options?.ignoreError?promiseCallback.resolve(void 0):promiseCallback.reject(err)}}catch(err){return options?.ignoreError?promiseCallback.resolve(void 0):promiseCallback.reject(err)}if(cookie.domain){if(!(0,domainMatch_1.domainMatch)(host??void 0,cookie.cdomain()??void 0,!1)){let err=new Error(`Cookie not in this host's domain. Cookie:${cookie.cdomain()??"null"} Request:${host??"null"}`);return options?.ignoreError?promiseCallback.resolve(void 0):promiseCallback.reject(err)}cookie.hostOnly==null&&(cookie.hostOnly=!1)}else cookie.hostOnly=!0,cookie.domain=host;if((!cookie.path||cookie.path[0]!=="/")&&(cookie.path=(0,defaultPath_1.defaultPath)(context.pathname),cookie.pathIsDefault=!0),options?.http===!1&&cookie.httpOnly){let err=new Error("Cookie is HttpOnly and this isn't an HTTP API");return options.ignoreError?promiseCallback.resolve(void 0):promiseCallback.reject(err)}if(cookie.sameSite!=="none"&&cookie.sameSite!==void 0&&sameSiteContext&&sameSiteContext==="none"){let err=new Error("Cookie is SameSite but this is a cross-origin request");return options?.ignoreError?promiseCallback.resolve(void 0):promiseCallback.reject(err)}let ignoreErrorForPrefixSecurity=this.prefixSecurity===constants_1.PrefixSecurityEnum.SILENT;if(!(this.prefixSecurity===constants_1.PrefixSecurityEnum.DISABLED)){let errorFound=!1,errorMsg;if(isSecurePrefixConditionMet(cookie)?isHostPrefixConditionMet(cookie)||(errorFound=!0,errorMsg="Cookie has __Host prefix but either Secure or HostOnly attribute is not set or Path is not '/'"):(errorFound=!0,errorMsg="Cookie has __Secure prefix but Secure attribute is not set"),errorFound)return options?.ignoreError||ignoreErrorForPrefixSecurity?promiseCallback.resolve(void 0):promiseCallback.reject(new Error(errorMsg))}let store=this.store;store.updateCookie||(store.updateCookie=async function(_oldCookie,newCookie,cb2){return this.putCookie(newCookie).then(()=>cb2?.(null),error=>cb2?.(error))});let withCookie=function(err,oldCookie){if(err){cb(err);return}let next=function(err2){err2?cb(err2):typeof cookie=="string"?cb(null,void 0):cb(null,cookie)};if(oldCookie){if(options&&"http"in options&&options.http===!1&&oldCookie.httpOnly){err=new Error("old Cookie is HttpOnly and this isn't an HTTP API"),options.ignoreError?cb(null,void 0):cb(err);return}cookie instanceof cookie_1.Cookie&&(cookie.creation=oldCookie.creation,cookie.creationIndex=oldCookie.creationIndex,cookie.lastAccessed=now,store.updateCookie(oldCookie,cookie,next))}else cookie instanceof cookie_1.Cookie&&(cookie.creation=cookie.lastAccessed=now,store.putCookie(cookie,next))};return store.findCookie(cookie.domain,cookie.path,cookie.key,withCookie),promiseCallback.promise}setCookieSync(cookie,url,options){let setCookieFn=options?this.setCookie.bind(this,cookie,url,options):this.setCookie.bind(this,cookie,url);return this.callSync(setCookieFn)}getCookies(url,options,callback){typeof options=="function"?(callback=options,options=defaultGetCookieOptions):options===void 0&&(options=defaultGetCookieOptions);let promiseCallback=(0,utils_1.createPromiseCallback)(callback),cb=promiseCallback.callback,context;try{typeof url=="string"&&validators.validate(validators.isNonEmptyString(url),cb,url),context=getCookieContext(url),validators.validate(validators.isObject(options),cb,(0,utils_1.safeToString)(options)),validators.validate(typeof cb=="function",cb)}catch(parameterError){return promiseCallback.reject(parameterError)}let host=(0,canonicalDomain_1.canonicalDomain)(context.hostname),path=context.pathname||"/",secure=context.protocol&&(context.protocol=="https:"||context.protocol=="wss:"),sameSiteLevel=0;if(options.sameSiteContext){let sameSiteContext=checkSameSiteContext(options.sameSiteContext);if(sameSiteContext==null)return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR));if(sameSiteLevel=cookie_1.Cookie.sameSiteLevel[sameSiteContext],!sameSiteLevel)return promiseCallback.reject(new Error(SAME_SITE_CONTEXT_VAL_ERR))}let http=options.http??!0,now=Date.now(),expireCheck=options.expire??!0,allPaths=options.allPaths??!1,store=this.store;function matchingCookie(c){if(c.hostOnly){if(c.domain!=host)return!1}else if(!(0,domainMatch_1.domainMatch)(host??void 0,c.domain??void 0,!1))return!1;if(!allPaths&&typeof c.path=="string"&&!(0,pathMatch_1.pathMatch)(path,c.path)||c.secure&&!secure||c.httpOnly&&!http)return!1;if(sameSiteLevel){let cookieLevel;if(c.sameSite==="lax"?cookieLevel=cookie_1.Cookie.sameSiteLevel.lax:c.sameSite==="strict"?cookieLevel=cookie_1.Cookie.sameSiteLevel.strict:cookieLevel=cookie_1.Cookie.sameSiteLevel.none,cookieLevel>sameSiteLevel)return!1}let expiryTime=c.expiryTime();return expireCheck&&expiryTime!=null&&expiryTime<=now?(store.removeCookie(c.domain,c.path,c.key,()=>{}),!1):!0}return store.findCookies(host,allPaths?null:path,this.allowSpecialUseDomain,(err,cookies)=>{if(err){cb(err);return}if(cookies==null){cb(null,[]);return}cookies=cookies.filter(matchingCookie),"sort"in options&&options.sort!==!1&&(cookies=cookies.sort(cookieCompare_1.cookieCompare));let now2=new Date;for(let cookie of cookies)cookie.lastAccessed=now2;cb(null,cookies)}),promiseCallback.promise}getCookiesSync(url,options){return this.callSync(this.getCookies.bind(this,url,options))??[]}getCookieString(url,options,callback){typeof options=="function"&&(callback=options,options=void 0);let promiseCallback=(0,utils_1.createPromiseCallback)(callback),next=function(err,cookies){err?promiseCallback.callback(err):promiseCallback.callback(null,cookies?.sort(cookieCompare_1.cookieCompare).map(c=>c.cookieString()).join("; "))};return this.getCookies(url,options,next),promiseCallback.promise}getCookieStringSync(url,options){return this.callSync(options?this.getCookieString.bind(this,url,options):this.getCookieString.bind(this,url))??""}getSetCookieStrings(url,options,callback){typeof options=="function"&&(callback=options,options=void 0);let promiseCallback=(0,utils_1.createPromiseCallback)(callback),next=function(err,cookies){err?promiseCallback.callback(err):promiseCallback.callback(null,cookies?.map(c=>c.toString()))};return this.getCookies(url,options,next),promiseCallback.promise}getSetCookieStringsSync(url,options={}){return this.callSync(this.getSetCookieStrings.bind(this,url,options))??[]}serialize(callback){let promiseCallback=(0,utils_1.createPromiseCallback)(callback),type=this.store.constructor.name;validators.isObject(type)&&(type=null);let serialized={version:`tough-cookie@${version_1.version}`,storeType:type,rejectPublicSuffixes:this.rejectPublicSuffixes,enableLooseMode:this.enableLooseMode,allowSpecialUseDomain:this.allowSpecialUseDomain,prefixSecurity:getNormalizedPrefixSecurity(this.prefixSecurity),cookies:[]};return typeof this.store.getAllCookies!="function"?promiseCallback.reject(new Error("store does not support getAllCookies and cannot be serialized")):(this.store.getAllCookies((err,cookies)=>{if(err){promiseCallback.callback(err);return}if(cookies==null){promiseCallback.callback(null,serialized);return}serialized.cookies=cookies.map(cookie=>{let serializedCookie=cookie.toJSON();return delete serializedCookie.creationIndex,serializedCookie}),promiseCallback.callback(null,serialized)}),promiseCallback.promise)}serializeSync(){return this.callSync(callback=>{this.serialize(callback)})}toJSON(){return this.serializeSync()}_importCookies(serialized,callback){let cookies;if(serialized&&typeof serialized=="object"&&(0,utils_1.inOperator)("cookies",serialized)&&Array.isArray(serialized.cookies)&&(cookies=serialized.cookies),!cookies){callback(new Error("serialized jar has no cookies array"),void 0);return}cookies=cookies.slice();let putNext=err=>{if(err){callback(err,void 0);return}if(Array.isArray(cookies)){if(!cookies.length){callback(err,this);return}let cookie;try{cookie=cookie_1.Cookie.fromJSON(cookies.shift())}catch(e){callback(e instanceof Error?e:new Error,void 0);return}if(cookie===void 0){putNext(null);return}this.store.putCookie(cookie,putNext)}};putNext(null)}_importCookiesSync(serialized){this.callSync(this._importCookies.bind(this,serialized))}clone(newStore,callback){typeof newStore=="function"&&(callback=newStore,newStore=void 0);let promiseCallback=(0,utils_1.createPromiseCallback)(callback),cb=promiseCallback.callback;return this.serialize((err,serialized)=>err?promiseCallback.reject(err):_CookieJar.deserialize(serialized??"",newStore,cb)),promiseCallback.promise}_cloneSync(newStore){let cloneFn=newStore&&typeof newStore!="function"?this.clone.bind(this,newStore):this.clone.bind(this);return this.callSync(callback=>{cloneFn(callback)})}cloneSync(newStore){if(!newStore)return this._cloneSync();if(!newStore.synchronous)throw new Error("CookieJar clone destination store is not synchronous; use async API instead.");return this._cloneSync(newStore)}removeAllCookies(callback){let promiseCallback=(0,utils_1.createPromiseCallback)(callback),cb=promiseCallback.callback,store=this.store;return typeof store.removeAllCookies=="function"&&store.removeAllCookies!==store_1.Store.prototype.removeAllCookies?(store.removeAllCookies(cb),promiseCallback.promise):(store.getAllCookies((err,cookies)=>{if(err){cb(err);return}if(cookies||(cookies=[]),cookies.length===0){cb(null,void 0);return}let completedCount=0,removeErrors=[],removeCookieCb=function(removeErr){if(removeErr&&removeErrors.push(removeErr),completedCount++,completedCount===cookies.length){removeErrors[0]?cb(removeErrors[0]):cb(null,void 0);return}};cookies.forEach(cookie=>{store.removeCookie(cookie.domain,cookie.path,cookie.key,removeCookieCb)})}),promiseCallback.promise)}removeAllCookiesSync(){this.callSync(callback=>{this.removeAllCookies(callback)})}static deserialize(strOrObj,store,callback){typeof store=="function"&&(callback=store,store=void 0);let promiseCallback=(0,utils_1.createPromiseCallback)(callback),serialized;if(typeof strOrObj=="string")try{serialized=JSON.parse(strOrObj)}catch(e){return promiseCallback.reject(e instanceof Error?e:new Error)}else serialized=strOrObj;let readSerializedProperty=property=>serialized&&typeof serialized=="object"&&(0,utils_1.inOperator)(property,serialized)?serialized[property]:void 0,readSerializedBoolean=property=>{let value=readSerializedProperty(property);return typeof value=="boolean"?value:void 0},readSerializedString=property=>{let value=readSerializedProperty(property);return typeof value=="string"?value:void 0},jar=new _CookieJar(store,{rejectPublicSuffixes:readSerializedBoolean("rejectPublicSuffixes"),looseMode:readSerializedBoolean("enableLooseMode"),allowSpecialUseDomain:readSerializedBoolean("allowSpecialUseDomain"),prefixSecurity:getNormalizedPrefixSecurity(readSerializedString("prefixSecurity")??"silent")});return jar._importCookies(serialized,err=>{if(err){promiseCallback.callback(err);return}promiseCallback.callback(null,jar)}),promiseCallback.promise}static deserializeSync(strOrObj,store){let serialized=typeof strOrObj=="string"?JSON.parse(strOrObj):strOrObj,readSerializedProperty=property=>serialized&&typeof serialized=="object"&&(0,utils_1.inOperator)(property,serialized)?serialized[property]:void 0,readSerializedBoolean=property=>{let value=readSerializedProperty(property);return typeof value=="boolean"?value:void 0},readSerializedString=property=>{let value=readSerializedProperty(property);return typeof value=="string"?value:void 0},jar=new _CookieJar(store,{rejectPublicSuffixes:readSerializedBoolean("rejectPublicSuffixes"),looseMode:readSerializedBoolean("enableLooseMode"),allowSpecialUseDomain:readSerializedBoolean("allowSpecialUseDomain"),prefixSecurity:getNormalizedPrefixSecurity(readSerializedString("prefixSecurity")??"silent")});if(!jar.store.synchronous)throw new Error("CookieJar store is not synchronous; use async API instead.");return jar._importCookiesSync(serialized),jar}static fromJSON(jsonString,store){return _CookieJar.deserializeSync(jsonString,store)}};exports2.CookieJar=CookieJar}});var require_permutePath=__commonJS({"node_modules/tough-cookie/dist/cookie/permutePath.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.permutePath=permutePath;function permutePath(path){if(path==="/")return["/"];let permutations=[path];for(;path.length>1;){let lindex=path.lastIndexOf("/");if(lindex===0)break;path=path.slice(0,lindex),permutations.push(path)}return permutations.push("/"),permutations}}});var require_cookie3=__commonJS({"node_modules/tough-cookie/dist/cookie/index.js"(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:!0});exports2.permutePath=exports2.parseDate=exports2.formatDate=exports2.domainMatch=exports2.defaultPath=exports2.CookieJar=exports2.cookieCompare=exports2.Cookie=exports2.PrefixSecurityEnum=exports2.canonicalDomain=exports2.version=exports2.ParameterError=exports2.Store=exports2.getPublicSuffix=exports2.permuteDomain=exports2.pathMatch=exports2.MemoryCookieStore=void 0;exports2.parse=parse;exports2.fromJSON=fromJSON;var memstore_1=require_memstore();Object.defineProperty(exports2,"MemoryCookieStore",{enumerable:!0,get:function(){return memstore_1.MemoryCookieStore}});var pathMatch_1=require_pathMatch();Object.defineProperty(exports2,"pathMatch",{enumerable:!0,get:function(){return pathMatch_1.pathMatch}});var permuteDomain_1=require_permuteDomain();Object.defineProperty(exports2,"permuteDomain",{enumerable:!0,get:function(){return permuteDomain_1.permuteDomain}});var getPublicSuffix_1=require_getPublicSuffix();Object.defineProperty(exports2,"getPublicSuffix",{enumerable:!0,get:function(){return getPublicSuffix_1.getPublicSuffix}});var store_1=require_store();Object.defineProperty(exports2,"Store",{enumerable:!0,get:function(){return store_1.Store}});var validators_1=require_validators();Object.defineProperty(exports2,"ParameterError",{enumerable:!0,get:function(){return validators_1.ParameterError}});var version_1=require_version();Object.defineProperty(exports2,"version",{enumerable:!0,get:function(){return version_1.version}});var canonicalDomain_1=require_canonicalDomain();Object.defineProperty(exports2,"canonicalDomain",{enumerable:!0,get:function(){return canonicalDomain_1.canonicalDomain}});var constants_1=require_constants();Object.defineProperty(exports2,"PrefixSecurityEnum",{enumerable:!0,get:function(){return constants_1.PrefixSecurityEnum}});var cookie_1=require_cookie2();Object.defineProperty(exports2,"Cookie",{enumerable:!0,get:function(){return cookie_1.Cookie}});var cookieCompare_1=require_cookieCompare();Object.defineProperty(exports2,"cookieCompare",{enumerable:!0,get:function(){return cookieCompare_1.cookieCompare}});var cookieJar_1=require_cookieJar();Object.defineProperty(exports2,"CookieJar",{enumerable:!0,get:function(){return cookieJar_1.CookieJar}});var defaultPath_1=require_defaultPath();Object.defineProperty(exports2,"defaultPath",{enumerable:!0,get:function(){return defaultPath_1.defaultPath}});var domainMatch_1=require_domainMatch();Object.defineProperty(exports2,"domainMatch",{enumerable:!0,get:function(){return domainMatch_1.domainMatch}});var formatDate_1=require_formatDate();Object.defineProperty(exports2,"formatDate",{enumerable:!0,get:function(){return formatDate_1.formatDate}});var parseDate_1=require_parseDate();Object.defineProperty(exports2,"parseDate",{enumerable:!0,get:function(){return parseDate_1.parseDate}});var permutePath_1=require_permutePath();Object.defineProperty(exports2,"permutePath",{enumerable:!0,get:function(){return permutePath_1.permutePath}});var cookie_2=require_cookie2();function parse(str,options){return cookie_2.Cookie.parse(str,options)}function fromJSON(str){return cookie_2.Cookie.fromJSON(str)}}});var require_model=__commonJS({"src/lib/apiClient/model.js"(exports2,module2){var crypto=require("crypto"),METHODS=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"],LIMITS={request:20*1024*1024,response:50*1024*1024,preview:1024*1024,disk:256*1024*1024},sensitive=/authorization|cookie|password|token|secret|api[-_]?key/i;function fail(message,status=400){let error=new Error(message);return error.status=status,error}function check(value,message,status=400){if(!value)throw fail(message,status)}function safeObject(value,depth=0){if(check(depth<60,"\u6570\u636E\u5D4C\u5957\u8FC7\u6DF1"),!(!value||typeof value!="object"))for(let key of Object.keys(value))check(!["__proto__","prototype","constructor"].includes(key),"\u4E0D\u5141\u8BB8\u7684\u5BF9\u8C61\u5B57\u6BB5"),safeObject(value[key],depth+1)}function entries(value=[]){return check(Array.isArray(value)&&value.length<=2e3,"\u53C2\u6570\u5FC5\u987B\u662F\u5217\u8868\uFF08\u6700\u591A 2000 \u9879\uFF09"),value.map(row=>(check(row&&typeof row.key=="string"&&typeof row.value=="string","\u53C2\u6570\u9700\u8981\u5B57\u7B26\u4E32 key/value"),{...row,enabled:row.enabled!==!1}))}function request(value){check(value&&typeof value=="object","\u8BF7\u6C42\u4E0D\u80FD\u4E3A\u7A7A"),safeObject(value),check(METHODS.includes(value.method),"\u4E0D\u652F\u6301\u7684 HTTP \u65B9\u6CD5"),check(typeof value.url=="string"&&value.url.length<=32768,"URL \u65E0\u6548\u6216\u8FC7\u957F");let body=value.body||{type:"none"};check(["none","json","text","xml","form","multipart","binary"].includes(body.type),"\u4E0D\u652F\u6301\u7684\u6B63\u6587\u7C7B\u578B");let settings={timeout:3e4,redirects:!0,verifyTls:!0,cookies:!0,...value.settings};check(Number.isInteger(settings.timeout)&&settings.timeout>=1e3&&settings.timeout<=3e5,"\u8D85\u65F6\u5FC5\u987B\u4E3A 1000\u2013300000 \u6BEB\u79D2");for(let key of["redirects","verifyTls","cookies"])check(typeof settings[key]=="boolean",`\u8BBE\u7F6E ${key} \u5FC5\u987B\u662F\u5E03\u5C14\u503C`);let auth=value.auth||{type:"inherit"};check(["inherit","none","basic","bearer","apiKey"].includes(auth.type),"\u4E0D\u652F\u6301\u7684\u8BA4\u8BC1\u65B9\u5F0F"),auth.type==="apiKey"&&check(auth.in===void 0||["header","query"].includes(auth.in),"API Key \u4F4D\u7F6E\u65E0\u6548");for(let key of["username","password","token","key","value"])check(auth[key]===void 0||typeof auth[key]=="string",`\u8BA4\u8BC1 ${key} \u5FC5\u987B\u662F\u5B57\u7B26\u4E32`);(body.type==="form"||body.type==="multipart")&&entries(body.fields||[]),body.text!==void 0&&check(typeof body.text=="string","\u6B63\u6587\u5FC5\u987B\u662F\u5B57\u7B26\u4E32");for(let key of["assertions","extractors"])check(value[key]===void 0||Array.isArray(value[key])&&value[key].length<=100,`${key} \u6700\u591A 100 \u9879`);for(let rule of value.assertions||[])check(rule&&typeof rule=="object"&&["status","header","json","time"].includes(rule.source),"\u65AD\u8A00\u6765\u6E90\u65E0\u6548"),check(["exists","equals","contains","type","lessThan"].includes(rule.op),"\u65AD\u8A00\u64CD\u4F5C\u65E0\u6548");for(let rule of value.extractors||[])check(rule&&typeof rule.name=="string"&&rule.name&&["json","header"].includes(rule.source),"\u53D8\u91CF\u63D0\u53D6\u89C4\u5219\u65E0\u6548");return{...value,id:value.id||crypto.randomUUID(),name:String(value.name||"\u65B0\u8BF7\u6C42").slice(0,200),headers:entries(value.headers),query:entries(value.query),body,auth,settings,assertions:value.assertions||[],extractors:value.extractors||[]}}function resource(kind,value){safeObject(value),check(value&&typeof value.name=="string"&&value.name.trim(),"\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A"),check(value.schemaVersion===void 0||value.schemaVersion===1,"\u4E0D\u652F\u6301\u7684 schemaVersion");let result={...value,schemaVersion:1,variables:entries(value.variables)};if(kind==="collections"){value.auth&&(result.auth=request({method:"GET",url:"",auth:value.auth}).auth);let count=0,ids=new Set,visit=(items,depth=0)=>(check(Array.isArray(items)&&depth<=20,"\u96C6\u5408\u76EE\u5F55\u65E0\u6548\u6216\u8FC7\u6DF1"),items.map(item=>{check(++count<=1e4,"\u96C6\u5408\u6700\u591A 10000 \u4E2A\u6761\u76EE");let id=item.id||crypto.randomUUID();return check(typeof id=="string"&&!ids.has(id),"\u6761\u76EE ID \u5FC5\u987B\u552F\u4E00"),ids.add(id),item.type==="folder"?{id,type:"folder",name:String(item.name||"\u76EE\u5F55"),items:visit(item.items||[],depth+1)}:request({...item,id})}));result.items=visit(value.items||[])}return result}function variables(...groups){let result=Object.create(null);for(let group of groups)if(Array.isArray(group))for(let row of group)row.enabled!==!1&&(result[row.key]=row.value);else group&&typeof group=="object"&&Object.assign(result,group);return result}function interpolate(value,vars,seen=[]){return typeof value=="string"?value.replace(/\{\{\s*([^{}]+?)\s*\}\}/g,(_,key)=>(check(Object.hasOwn(vars,key)&&vars[key]!==void 0,`\u672A\u5B9A\u4E49\u53D8\u91CF: ${key}`),check(!seen.includes(key)&&seen.length<20,`\u53D8\u91CF\u5FAA\u73AF\u5F15\u7528: ${key}`),interpolate(String(vars[key]),vars,[...seen,key]))):Array.isArray(value)?value.map(row=>interpolate(row,vars,seen)):value&&typeof value=="object"?value.enabled===!1?value:Object.fromEntries(Object.entries(value).map(([key,item])=>[key,interpolate(item,vars,seen)])):value}function pointer(value,path){if(path==="")return value;check(typeof path=="string"&&path.startsWith("/"),"JSON Pointer \u5FC5\u987B\u4EE5 / \u5F00\u59CB");for(let key of path.slice(1).split("/").map(part=>part.replace(/~1/g,"/").replace(/~0/g,"~"))){if(value===null||typeof value!="object"||!Object.hasOwn(value,key))return;value=value[key]}return value}function evaluate(rules,result,json){let select=rule=>{if(rule.source==="status")return result.status;if(rule.source==="time")return result.duration;if(rule.source==="header")return result.headers.find(row=>row.key.toLowerCase()===String(rule.path).toLowerCase())?.value;if(rule.source==="json")return pointer(json,rule.path);throw fail("\u4E0D\u652F\u6301\u7684\u65AD\u8A00\u6765\u6E90")},assertions=(rules.assertions||[]).map(rule=>{try{let actual=select(rule),passed;switch(rule.op){case"exists":passed=actual!==void 0;break;case"equals":passed=JSON.stringify(actual)===JSON.stringify(rule.value);break;case"contains":passed=(typeof actual=="string"||Array.isArray(actual))&&actual.includes(rule.value);break;case"type":passed=(Array.isArray(actual)?"array":actual===null?"null":typeof actual)===rule.value;break;case"lessThan":passed=typeof actual=="number"&&actual<Number(rule.value);break;default:throw fail("\u4E0D\u652F\u6301\u7684\u65AD\u8A00\u64CD\u4F5C")}return{name:rule.name||`${rule.source} ${rule.path||""} ${rule.op}`,passed,actual}}catch(error){return{name:rule.name||"\u65AD\u8A00",passed:!1,error:error.message}}}),extracted=Object.create(null),errors=[];for(let rule of rules.extractors||[])try{check(typeof rule.name=="string"&&rule.name&&!["__proto__","constructor","prototype"].includes(rule.name),"\u63D0\u53D6\u53D8\u91CF\u540D\u65E0\u6548"),check(["header","json"].includes(rule.source),"\u63D0\u53D6\u4EC5\u652F\u6301 header/json");let value=select(rule);check(value!==void 0,`\u63D0\u53D6\u5931\u8D25: ${rule.name}`),extracted[rule.name]=typeof value=="object"?JSON.stringify(value):String(value)}catch(error){errors.push(error.message)}return{assertions,extracted,extractionErrors:errors}}function redact(value){if(Array.isArray(value))return value.map(redact);if(!value||typeof value!="object")return value;let output={};for(let[key,item]of Object.entries(value)){if(["uploadId","revision"].includes(key))continue;if(key==="url"&&typeof item=="string"){output[key]=item.replace(/([?&])([^=&]+)=([^&#]*)/g,(whole,separator,name,val)=>{try{return sensitive.test(decodeURIComponent(name))&&!/\{\{[^{}]+\}\}/.test(decodeURIComponent(val))?`${separator}${name}=`:whole}catch{return whole}});continue}let isSecret=key==="value"&&(value.secret||sensitive.test(value.key||""))||["password","token","username"].includes(key)||key==="value"&&value.type==="apiKey";output[key]=isSecret&&typeof item=="string"&&!/\{\{[^{}]+\}\}/.test(item)?"":redact(item)}return output}function flatten(items){return items.flatMap(item=>item.type==="folder"?flatten(item.items):[item])}module2.exports={METHODS,LIMITS,sensitive,fail,check,safeObject,entries,request,resource,variables,interpolate,pointer,evaluate,redact,flatten}}});var require_store2=__commonJS({"src/lib/apiClient/store.js"(exports2,module2){var fs=require("fs/promises"),{constants}=require("fs"),path=require("path"),crypto=require("crypto"),{check,fail,resource,redact}=require_model(),hash=data=>crypto.createHash("sha256").update(data).digest("hex"),uuid=/^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/i,Workspace=class{constructor(root){this.root=path.resolve(root),this.id=hash(this.root)}async directory(kind,create=!1){check(["collections","environments"].includes(kind),"\u8D44\u6E90\u7C7B\u578B\u65E0\u6548"),create&&await fs.mkdir(this.root,{recursive:!0});let rootStat=await fs.lstat(this.root);check(rootStat.isDirectory()&&!rootStat.isSymbolicLink(),"\u5DE5\u4F5C\u533A\u4E0D\u80FD\u662F\u7B26\u53F7\u94FE\u63A5",403);try{let file=path.join(this.root,"workspace.json"),metadata=await fs.lstat(file);check(metadata.isFile()&&!metadata.isSymbolicLink()&&metadata.size<65536,"\u5DE5\u4F5C\u533A\u5143\u6570\u636E\u65E0\u6548"),check(JSON.parse(await fs.readFile(file,"utf8")).schemaVersion===1,"\u4E0D\u652F\u6301\u7684\u5DE5\u4F5C\u533A schemaVersion")}catch(error){if(error.code!=="ENOENT")throw error}let dir=path.join(this.root,kind);create&&await fs.mkdir(dir,{recursive:!0});let stat=await fs.lstat(dir);return check(stat.isDirectory()&&!stat.isSymbolicLink(),"\u5DE5\u4F5C\u533A\u5B50\u76EE\u5F55\u4E0D\u80FD\u662F\u7B26\u53F7\u94FE\u63A5"),dir}async read(kind,id){check(uuid.test(id),"\u8D44\u6E90 ID \u65E0\u6548");let dir=await this.directory(kind),file=path.join(dir,`${id}.json`),stat=await fs.lstat(file);check(stat.isFile()&&!stat.isSymbolicLink()&&stat.size<=20*1024*1024,"\u5DE5\u4F5C\u533A\u6587\u4EF6\u65E0\u6548\u6216\u8FC7\u5927");let handle=await fs.open(file,constants.O_RDONLY|(constants.O_NOFOLLOW||0)),text;try{check((await handle.stat()).size<=20*1024*1024,"\u5DE5\u4F5C\u533A\u6587\u4EF6\u8FC7\u5927"),text=await handle.readFile("utf8")}finally{await handle.close()}return{...resource(kind,JSON.parse(text)),id,revision:hash(text)}}async list(kind){let dir;try{dir=await this.directory(kind)}catch(error){if(error.code==="ENOENT")return[];throw error}let names=await fs.readdir(dir),rows=[];for(let name of names.filter(name2=>uuid.test(name2.slice(0,-5))&&name2.endsWith(".json")))rows.push(await this.read(kind,name.slice(0,-5)));return rows.sort((a,b)=>a.name.localeCompare(b.name))}async write(kind,id,value,revision,remove=!1){check(uuid.test(id),"\u8D44\u6E90 ID \u65E0\u6548");let data=remove?null:{...redact(resource(kind,value)),id},dir=await this.directory(kind,!0),lock=path.join(this.root,".write-lock");try{await fs.mkdir(lock)}catch(error){throw error.code==="EEXIST"?fail("\u5DE5\u4F5C\u533A\u6B63\u5728\u5199\u5165\uFF1B\u8BF7\u7A0D\u540E\u91CD\u8BD5\uFF08\u5F02\u5E38\u9000\u51FA\u540E\u53EF\u624B\u52A8\u79FB\u9664 .write-lock\uFF09",409):error}let temp=path.join(dir,`.${crypto.randomUUID()}.tmp`);try{let current=null;try{current=await this.read(kind,id)}catch(error){if(error.code!=="ENOENT")throw error}check((current?.revision||null)===(revision||null),"\u6587\u4EF6\u5DF2\u88AB\u5176\u4ED6\u7A97\u53E3\u6216\u5916\u90E8\u5DE5\u5177\u4FEE\u6539\uFF0C\u8BF7\u91CD\u65B0\u52A0\u8F7D\u540E\u4FDD\u5B58");let file=path.join(dir,`${id}.json`);if(remove)return check(current,"\u8D44\u6E90\u4E0D\u5B58\u5728"),await fs.unlink(file),{id};let text=`${JSON.stringify(data,null,2)}
|
|
76
76
|
`;check(Buffer.byteLength(text)<=20*1024*1024,"\u96C6\u5408\u6587\u4EF6\u8D85\u8FC7 20 MiB"),await fs.writeFile(temp,text,{flag:"wx",mode:384}),await fs.rename(temp,file);let metadata=path.join(this.root,"workspace.json");try{await fs.writeFile(metadata,JSON.stringify({schemaVersion:1},null,2)+`
|
|
77
|
-
`,{flag:"wx",mode:384})}catch(error){if(error.code!=="EEXIST")throw error}return{...data,revision:hash(text)}}catch(error){throw error.message.startsWith("\u6587\u4EF6\u5DF2\u88AB")&&(error.status=409),error}finally{await fs.rm(temp,{force:!0}),await fs.rmdir(lock)}}};module2.exports={Workspace}}});var require_download=__commonJS({"src/lib/apiClient/download.js"(exports2,module2){var contentDisposition=require_content_disposition(),mime=require_mime_types();function responseFilename(headers){let name;try{name=contentDisposition.parse(headers["content-disposition"]).parameters.filename}catch{}if(typeof name=="string"&&(name=name.split(/[/\\]/).pop().replace(/[\u0000-\u001f\u007f-\u009f<>:"|?*\u202a-\u202e\u2066-\u2069]/g,"_").replace(/^[. ]+|[. ]+$/g,""),name&&name.length<=180))return/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\.|$)/i.test(name)&&(name=`_${name}`),name;let type=String(headers["content-type"]||"").split(";")[0].trim().toLowerCase();return`response.${(type.endsWith("+json")?"json":type.endsWith("+xml")?"xml":mime.extension(type))||"bin"}`}module2.exports={responseFilename}}});var require_engine=__commonJS({"src/lib/apiClient/engine.js"(exports2,module2){var http=require("http"),https=require("https"),fs=require("fs"),fsp=require("fs/promises"),os=require("os"),path=require("path"),crypto=require("crypto"),zlib=require("zlib"),{Transform}=require("stream"),{pipeline}=require("stream/promises"),{Worker}=require("worker_threads"),{CookieJar}=require_cookie3(),{responseFilename}=require_download(),{LIMITS,fail,check,request,interpolate,variables,redact,sensitive}=require_model(),TemporaryFiles=class{constructor(){this.files=new Map,this.bytes=0,this.ready=fsp.mkdtemp(path.join(os.tmpdir(),"mock-api-client-")).then(dir=>(this.dir=dir,dir))}async create(owner){await this.ready,check(this.files.size<500,"\u4E34\u65F6\u6587\u4EF6\u6570\u91CF\u5DF2\u8FBE\u4E0A\u9650");let id=crypto.randomUUID(),file={id,owner,path:path.join(this.dir,id),size:0,time:Date.now()};return this.files.set(id,file),file}add(file,size){if(this.bytes+size>LIMITS.disk)throw fail("\u4E34\u65F6\u5B58\u50A8\u8D85\u8FC7 256 MiB\uFF0C\u8BF7\u6E05\u7406\u7ED3\u679C\u540E\u91CD\u8BD5",413);file.size+=size,this.bytes+=size}get(id,owner){let file=this.files.get(id);if(!file||file.owner!==owner)throw fail("\u4E34\u65F6\u6587\u4EF6\u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F",404);return file}async remove(id){let file=this.files.get(id);file&&(this.files.delete(id),this.bytes-=file.size,await fsp.rm(file.path,{force:!0}))}async close(){await this.ready,await fsp.rm(this.dir,{recursive:!0,force:!0}),this.files.clear(),this.bytes=0}};function target(value){let url;try{url=new URL(value)}catch{throw fail("\u8BF7\u8F93\u5165\u5B8C\u6574\u7684 HTTP/HTTPS URL")}return check(["http:","https:"].includes(url.protocol)&&!url.username&&!url.password,"\u4EC5\u652F\u6301 HTTP/HTTPS\uFF1B\u8BF7\u5728\u8BA4\u8BC1\u9762\u677F\u8BBE\u7F6E\u51ED\u636E"),url.hash="",url}function headerRows(raw){let result=[];for(let i=0;i<raw.length;i+=2)result.push({key:raw[i],value:raw[i+1]});return result}function outgoingHeaders(rows){let headers=Object.create(null);for(let row of rows.filter(row2=>row2.enabled!==!1)){try{http.validateHeaderName(row.key),http.validateHeaderValue(row.key,row.value)}catch{throw fail("\u8BF7\u6C42\u5934\u540D\u79F0\u6216\u503C\u65E0\u6548\uFF0C\u8BF7\u68C0\u67E5 Headers")}let key=row.key.toLowerCase();check(!
|
|
77
|
+
`,{flag:"wx",mode:384})}catch(error){if(error.code!=="EEXIST")throw error}return{...data,revision:hash(text)}}catch(error){throw error.message.startsWith("\u6587\u4EF6\u5DF2\u88AB")&&(error.status=409),error}finally{await fs.rm(temp,{force:!0}),await fs.rmdir(lock)}}};module2.exports={Workspace}}});var require_download=__commonJS({"src/lib/apiClient/download.js"(exports2,module2){var contentDisposition=require_content_disposition(),mime=require_mime_types();function responseFilename(headers){let name;try{name=contentDisposition.parse(headers["content-disposition"]).parameters.filename}catch{}if(typeof name=="string"&&(name=name.split(/[/\\]/).pop().replace(/[\u0000-\u001f\u007f-\u009f<>:"|?*\u202a-\u202e\u2066-\u2069]/g,"_").replace(/^[. ]+|[. ]+$/g,""),name&&name.length<=180))return/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\.|$)/i.test(name)&&(name=`_${name}`),name;let type=String(headers["content-type"]||"").split(";")[0].trim().toLowerCase();return`response.${(type.endsWith("+json")?"json":type.endsWith("+xml")?"xml":mime.extension(type))||"bin"}`}module2.exports={responseFilename}}});var require_headers=__commonJS({"src/lib/apiClient/headers.js"(exports2,module2){var managedHeaders=new Set(["host","content-length","connection","transfer-encoding","upgrade","proxy-authorization","proxy-connection","trailer","te"]),isManagedHeader=name=>managedHeaders.has(name.toLowerCase());module2.exports={isManagedHeader}}});var require_engine=__commonJS({"src/lib/apiClient/engine.js"(exports2,module2){var http=require("http"),https=require("https"),fs=require("fs"),fsp=require("fs/promises"),os=require("os"),path=require("path"),crypto=require("crypto"),zlib=require("zlib"),{Transform}=require("stream"),{pipeline}=require("stream/promises"),{Worker}=require("worker_threads"),{CookieJar}=require_cookie3(),{responseFilename}=require_download(),{isManagedHeader}=require_headers(),{LIMITS,fail,check,request,interpolate,variables,redact,sensitive}=require_model(),TemporaryFiles=class{constructor(){this.files=new Map,this.bytes=0,this.ready=fsp.mkdtemp(path.join(os.tmpdir(),"mock-api-client-")).then(dir=>(this.dir=dir,dir))}async create(owner){await this.ready,check(this.files.size<500,"\u4E34\u65F6\u6587\u4EF6\u6570\u91CF\u5DF2\u8FBE\u4E0A\u9650");let id=crypto.randomUUID(),file={id,owner,path:path.join(this.dir,id),size:0,time:Date.now()};return this.files.set(id,file),file}add(file,size){if(this.bytes+size>LIMITS.disk)throw fail("\u4E34\u65F6\u5B58\u50A8\u8D85\u8FC7 256 MiB\uFF0C\u8BF7\u6E05\u7406\u7ED3\u679C\u540E\u91CD\u8BD5",413);file.size+=size,this.bytes+=size}get(id,owner){let file=this.files.get(id);if(!file||file.owner!==owner)throw fail("\u4E34\u65F6\u6587\u4EF6\u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F",404);return file}async remove(id){let file=this.files.get(id);file&&(this.files.delete(id),this.bytes-=file.size,await fsp.rm(file.path,{force:!0}))}async close(){await this.ready,await fsp.rm(this.dir,{recursive:!0,force:!0}),this.files.clear(),this.bytes=0}};function target(value){let url;try{url=new URL(value)}catch{throw fail("\u8BF7\u8F93\u5165\u5B8C\u6574\u7684 HTTP/HTTPS URL")}return check(["http:","https:"].includes(url.protocol)&&!url.username&&!url.password,"\u4EC5\u652F\u6301 HTTP/HTTPS\uFF1B\u8BF7\u5728\u8BA4\u8BC1\u9762\u677F\u8BBE\u7F6E\u51ED\u636E"),url.hash="",url}function headerRows(raw){let result=[];for(let i=0;i<raw.length;i+=2)result.push({key:raw[i],value:raw[i+1]});return result}function outgoingHeaders(rows){let headers=Object.create(null);for(let row of rows.filter(row2=>row2.enabled!==!1)){try{http.validateHeaderName(row.key),http.validateHeaderValue(row.key,row.value)}catch{throw fail("\u8BF7\u6C42\u5934\u540D\u79F0\u6216\u503C\u65E0\u6548\uFF0C\u8BF7\u68C0\u67E5 Headers")}let key=row.key.toLowerCase();check(!isManagedHeader(key),`\u8BF7\u6C42\u5934 ${row.key} \u7531\u5BA2\u6237\u7AEF\u7BA1\u7406`),headers[key]?headers[key]=[].concat(headers[key],row.value):headers[key]=row.value}return headers}async function bodyBuffer(body,headers,files,owner){let setType=value=>{headers["content-type"]||(headers["content-type"]=value)};if(body.type==="none")return null;if(body.type==="binary")return fsp.readFile(files.get(body.uploadId,owner).path);if(body.type==="multipart"){let boundary=`----MockClient${crypto.randomBytes(16).toString("hex")}`;headers["content-type"]=`multipart/form-data; boundary=${boundary}`;let chunks=[],size=0,append=chunk=>{let data=Buffer.isBuffer(chunk)?chunk:Buffer.from(chunk);size+=data.length,check(size<=LIMITS.request,"\u8BF7\u6C42\u6B63\u6587\u8D85\u8FC7 20 MiB"),chunks.push(data)};for(let row of(body.fields||[]).filter(row2=>row2.enabled!==!1)){if(check(!/[\r\n"]/.test(row.key),"\u8868\u5355\u5B57\u6BB5\u540D\u65E0\u6548"),append(`--${boundary}\r
|
|
78
78
|
Content-Disposition: form-data; name="${row.key}"`),row.uploadId||row.file){let file=files.get(row.uploadId,owner);append(`; filename="${String(file.name||"file").replace(/[\r\n"\\]/g,"_")}"\r
|
|
79
79
|
Content-Type: application/octet-stream\r
|
|
80
80
|
\r
|
|
@@ -218,7 +218,7 @@ ${end.comment}`:end.comment}this.doc.range[2]=end.offset;break}default:this.erro
|
|
|
218
218
|
`)+1;for(;nl!==0;)this.onNewLine(this.offset+nl),nl=this.source.indexOf(`
|
|
219
219
|
`,nl)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(map){let it=map.items[map.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,it.value){let end="end"in it.value?it.value.end:void 0;(Array.isArray(end)?end[end.length-1]:void 0)?.type==="comment"?end?.push(this.sourceToken):map.items.push({start:[this.sourceToken]})}else it.sep?it.sep.push(this.sourceToken):it.start.push(this.sourceToken);return;case"space":case"comment":if(it.value)map.items.push({start:[this.sourceToken]});else if(it.sep)it.sep.push(this.sourceToken);else{if(this.atIndentedComment(it.start,map.indent)){let end=map.items[map.items.length-2]?.value?.end;if(Array.isArray(end)){arrayPushArray(end,it.start),end.push(this.sourceToken),map.items.pop();return}}it.start.push(this.sourceToken)}return}if(this.indent>=map.indent){let atMapIndent=!this.onKeyLine&&this.indent===map.indent,atNextItem=atMapIndent&&(it.sep||it.explicitKey)&&this.type!=="seq-item-ind",start=[];if(atNextItem&&it.sep&&!it.value){let nl=[];for(let i=0;i<it.sep.length;++i){let st=it.sep[i];switch(st.type){case"newline":nl.push(i);break;case"space":break;case"comment":st.indent>map.indent&&(nl.length=0);break;default:nl.length=0}}nl.length>=2&&(start=it.sep.splice(nl[1]))}switch(this.type){case"anchor":case"tag":atNextItem||it.value?(start.push(this.sourceToken),map.items.push({start}),this.onKeyLine=!0):it.sep?it.sep.push(this.sourceToken):it.start.push(this.sourceToken);return;case"explicit-key-ind":!it.sep&&!it.explicitKey?(it.start.push(this.sourceToken),it.explicitKey=!0):atNextItem||it.value?(start.push(this.sourceToken),map.items.push({start,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(it.explicitKey)if(it.sep)if(it.value)map.items.push({start:[],key:null,sep:[this.sourceToken]});else if(includesToken(it.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]});else if(isFlowToken(it.key)&&!includesToken(it.sep,"newline")){let start2=getFirstKeyStartProps(it.start),key=it.key,sep=it.sep;sep.push(this.sourceToken),delete it.key,delete it.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:start2,key,sep}]})}else start.length>0?it.sep=it.sep.concat(start,this.sourceToken):it.sep.push(this.sourceToken);else if(includesToken(it.start,"newline"))Object.assign(it,{key:null,sep:[this.sourceToken]});else{let start2=getFirstKeyStartProps(it.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:start2,key:null,sep:[this.sourceToken]}]})}else it.sep?it.value||atNextItem?map.items.push({start,key:null,sep:[this.sourceToken]}):includesToken(it.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):it.sep.push(this.sourceToken):Object.assign(it,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let fs=this.flowScalar(this.type);atNextItem||it.value?(map.items.push({start,key:fs,sep:[]}),this.onKeyLine=!0):it.sep?this.stack.push(fs):(Object.assign(it,{key:fs,sep:[]}),this.onKeyLine=!0);return}default:{let bv=this.startBlockValue(map);if(bv){if(bv.type==="block-seq"){if(!it.explicitKey&&it.sep&&!includesToken(it.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else atMapIndent&&map.items.push({start});this.stack.push(bv);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(seq){let it=seq.items[seq.items.length-1];switch(this.type){case"newline":if(it.value){let end="end"in it.value?it.value.end:void 0;(Array.isArray(end)?end[end.length-1]:void 0)?.type==="comment"?end?.push(this.sourceToken):seq.items.push({start:[this.sourceToken]})}else it.start.push(this.sourceToken);return;case"space":case"comment":if(it.value)seq.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(it.start,seq.indent)){let end=seq.items[seq.items.length-2]?.value?.end;if(Array.isArray(end)){arrayPushArray(end,it.start),end.push(this.sourceToken),seq.items.pop();return}}it.start.push(this.sourceToken)}return;case"anchor":case"tag":if(it.value||this.indent<=seq.indent)break;it.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==seq.indent)break;it.value||includesToken(it.start,"seq-item-ind")?seq.items.push({start:[this.sourceToken]}):it.start.push(this.sourceToken);return}if(this.indent>seq.indent){let bv=this.startBlockValue(seq);if(bv){this.stack.push(bv);return}}yield*this.pop(),yield*this.step()}*flowCollection(fc){let it=fc.items[fc.items.length-1];if(this.type==="flow-error-end"){let top;do yield*this.pop(),top=this.peek(1);while(top?.type==="flow-collection")}else if(fc.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!it||it.sep?fc.items.push({start:[this.sourceToken]}):it.start.push(this.sourceToken);return;case"map-value-ind":!it||it.value?fc.items.push({start:[],key:null,sep:[this.sourceToken]}):it.sep?it.sep.push(this.sourceToken):Object.assign(it,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!it||it.value?fc.items.push({start:[this.sourceToken]}):it.sep?it.sep.push(this.sourceToken):it.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let fs=this.flowScalar(this.type);!it||it.value?fc.items.push({start:[],key:fs,sep:[]}):it.sep?this.stack.push(fs):Object.assign(it,{key:fs,sep:[]});return}case"flow-map-end":case"flow-seq-end":fc.end.push(this.sourceToken);return}let bv=this.startBlockValue(fc);bv?this.stack.push(bv):(yield*this.pop(),yield*this.step())}else{let parent=this.peek(2);if(parent.type==="block-map"&&(this.type==="map-value-ind"&&parent.indent===fc.indent||this.type==="newline"&&!parent.items[parent.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&parent.type!=="flow-collection"){let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);fixFlowSeqItems(fc);let sep=fc.end.splice(1,fc.end.length);sep.push(this.sourceToken);let map={type:"block-map",offset:fc.offset,indent:fc.indent,items:[{start,key:fc,sep}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=map}else yield*this.lineEnd(fc)}}flowScalar(type){if(this.onNewLine){let nl=this.source.indexOf(`
|
|
220
220
|
`)+1;for(;nl!==0;)this.onNewLine(this.offset+nl),nl=this.source.indexOf(`
|
|
221
|
-
`,nl)+1}return{type,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(parent){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);return start.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(start,indent){return this.type!=="comment"||this.indent<=indent?!1:start.every(st=>st.type==="newline"||st.type==="space")}*documentEnd(docEnd){this.type!=="doc-mode"&&(docEnd.end?docEnd.end.push(this.sourceToken):docEnd.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(token){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:token.end?token.end.push(this.sourceToken):token.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};exports2.Parser=Parser}});var require_public_api=__commonJS({"node_modules/yaml/dist/public-api.js"(exports2){"use strict";var composer=require_composer(),Document=require_Document(),errors=require_errors(),log=require_log(),identity=require_identity(),lineCounter=require_line_counter(),parser=require_parser();function parseOptions(options){let prettyErrors=options.prettyErrors!==!1;return{lineCounter:options.lineCounter||prettyErrors&&new lineCounter.LineCounter||null,prettyErrors}}function parseAllDocuments(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),docs=Array.from(composer$1.compose(parser$1.parse(source)));if(prettyErrors&&lineCounter2)for(let doc of docs)doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2));return docs.length>0?docs:Object.assign([],{empty:!0},composer$1.streamInfo())}function parseDocument(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),doc=null;for(let _doc of composer$1.compose(parser$1.parse(source),!0,source.length))if(!doc)doc=_doc;else if(doc.options.logLevel!=="silent"){doc.errors.push(new errors.YAMLParseError(_doc.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return prettyErrors&&lineCounter2&&(doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2))),doc}function parse(src,reviver,options){let _reviver;typeof reviver=="function"?_reviver=reviver:options===void 0&&reviver&&typeof reviver=="object"&&(options=reviver);let doc=parseDocument(src,options);if(!doc)return null;if(doc.warnings.forEach(warning=>log.warn(doc.options.logLevel,warning)),doc.errors.length>0){if(doc.options.logLevel!=="silent")throw doc.errors[0];doc.errors=[]}return doc.toJS(Object.assign({reviver:_reviver},options))}function stringify(value,replacer,options){let _replacer=null;if(typeof replacer=="function"||Array.isArray(replacer)?_replacer=replacer:options===void 0&&replacer&&(options=replacer),typeof options=="string"&&(options=options.length),typeof options=="number"){let indent=Math.round(options);options=indent<1?void 0:indent>8?{indent:8}:{indent}}if(value===void 0){let{keepUndefined}=options??replacer??{};if(!keepUndefined)return}return identity.isDocument(value)&&!_replacer?value.toString(options):new Document.Document(value,_replacer,options).toString(options)}exports2.parse=parse;exports2.parseAllDocuments=parseAllDocuments;exports2.parseDocument=parseDocument;exports2.stringify=stringify}});var require_dist=__commonJS({"node_modules/yaml/dist/index.js"(exports2){"use strict";var composer=require_composer(),Document=require_Document(),Schema=require_Schema(),errors=require_errors(),Alias=require_Alias(),identity=require_identity(),Pair=require_Pair(),Scalar=require_Scalar(),YAMLMap=require_YAMLMap(),YAMLSeq=require_YAMLSeq(),cst=require_cst(),lexer=require_lexer(),lineCounter=require_line_counter(),parser=require_parser(),publicApi=require_public_api(),visit=require_visit();exports2.Composer=composer.Composer;exports2.Document=Document.Document;exports2.Schema=Schema.Schema;exports2.YAMLError=errors.YAMLError;exports2.YAMLParseError=errors.YAMLParseError;exports2.YAMLWarning=errors.YAMLWarning;exports2.Alias=Alias.Alias;exports2.isAlias=identity.isAlias;exports2.isCollection=identity.isCollection;exports2.isDocument=identity.isDocument;exports2.isMap=identity.isMap;exports2.isNode=identity.isNode;exports2.isPair=identity.isPair;exports2.isScalar=identity.isScalar;exports2.isSeq=identity.isSeq;exports2.Pair=Pair.Pair;exports2.Scalar=Scalar.Scalar;exports2.YAMLMap=YAMLMap.YAMLMap;exports2.YAMLSeq=YAMLSeq.YAMLSeq;exports2.CST=cst;exports2.Lexer=lexer.Lexer;exports2.LineCounter=lineCounter.LineCounter;exports2.Parser=parser.Parser;exports2.parse=publicApi.parse;exports2.parseAllDocuments=publicApi.parseAllDocuments;exports2.parseDocument=publicApi.parseDocument;exports2.stringify=publicApi.stringify;exports2.visit=visit.visit;exports2.visitAsync=visit.visitAsync}});var require_importers=__commonJS({"src/lib/apiClient/importers.js"(exports2,module2){var crypto=require("crypto"),YAML=require_dist(),{check,fail,safeObject,request,resource,redact,pointer,flatten}=require_model(),id=()=>crypto.randomUUID(),pair=(key,value,extra={})=>({key:String(key),value:String(value??""),enabled:!0,...extra});function shellTokens(text){let tokens=[],token="",quote="",started=!1;text=text.replace(/\\\r?\n/g,"");for(let i=0;i<text.length;i++){let char=text[i];if(char==="\\"&"e!=="'"){check(i+1<text.length,"cURL \u8F6C\u4E49\u4E0D\u5B8C\u6574"),token+=text[++i],started=!0;continue}if(quote){char===quote?quote="":token+=char,started=!0;continue}if(char==="'"||char==='"'){quote=char,started=!0;continue}if(/\s/.test(char)){started&&tokens.push(token),token="",started=!1;continue}check(!/[;|<>`]/.test(char)&&!(char==="$"&&text[i+1]==="("),"\u4EC5\u5141\u8BB8\u5355\u6761 cURL\uFF0C\u4E0D\u652F\u6301 shell \u547D\u4EE4"),token+=char,started=!0}return check(!quote,"cURL \u5F15\u53F7\u672A\u95ED\u5408"),started&&tokens.push(token),check(tokens.shift()?.toLowerCase()==="curl","\u8BF7\u8F93\u5165\u4EE5 curl \u5F00\u59CB\u7684\u547D\u4EE4"),tokens}function curl(text,warnings){let tokens=shellTokens(text),item={id:id(),name:"\u5BFC\u5165\u7684 cURL",method:"GET",url:"",headers:[],query:[],body:{type:"none"},auth:{type:"none"}},explicitMethod=!1;for(let i=0;i<tokens.length;i++){let flag=tokens[i],attached;if(flag.startsWith("--")&&flag.includes("=")){let index=flag.indexOf("=");attached=flag.slice(index+1),flag=flag.slice(0,index)}else/^-[XHduF].+/.test(flag)&&(attached=flag.slice(2),flag=flag.slice(0,2));let value=()=>{let result=attached??tokens[++i];return check(result!==void 0,`${flag} \u7F3A\u5C11\u53C2\u6570`),result};if(["-X","--request"].includes(flag))item.method=value().toUpperCase(),explicitMethod=!0;else if(["-H","--header"].includes(flag)){let line=value(),colon=line.indexOf(":");check(colon>0,"\u8BF7\u6C42\u5934\u683C\u5F0F\u4E3A Name: Value"),item.headers.push(pair(line.slice(0,colon),line.slice(colon+1).trim()))}else if(["-d","--data","--data-raw","--data-binary","--data-urlencode"].includes(flag)){let data=value();if(explicitMethod||(item.method="POST"),data.startsWith("@")&&flag!=="--data-raw")item.body={type:"binary"},warnings.push("cURL \u6587\u4EF6\u5F15\u7528\u9700\u8981\u91CD\u65B0\u9009\u62E9\u6587\u4EF6");else if(flag==="--data-urlencode"){let index=data.indexOf("=");item.body={type:"form",fields:[...item.body.fields||[],pair(index<0?data:data.slice(0,index),index<0?"":data.slice(index+1))]}}else item.body={type:"text",text:item.body.text?`${item.body.text}&${data}`:data}}else if(["-F","--form"].includes(flag)){let data=value(),index=data.indexOf("=");check(index>0,"\u8868\u5355\u683C\u5F0F\u4E3A key=value");let val=data.slice(index+1);item.body={type:"multipart",fields:[...item.body.fields||[],pair(data.slice(0,index),val.startsWith("@")?"":val,{file:val.startsWith("@")})]},val.startsWith("@")&&warnings.push("multipart \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9"),explicitMethod||(item.method="POST")}else if(["-u","--user"].includes(flag)){let data=value(),index=data.indexOf(":");item.auth={type:"basic",username:index<0?data:data.slice(0,index),password:index<0?"":data.slice(index+1)}}else if(["-b","--cookie"].includes(flag)){let val=value();val.includes("=")?item.headers.push(pair("Cookie",val)):warnings.push("\u4E0D\u8BFB\u53D6 cURL Cookie \u6587\u4EF6")}else if(flag==="--url")item.url=value();else if(["-I","--head"].includes(flag))item.method="HEAD",explicitMethod=!0;else if(["-k","--insecure"].includes(flag))item.settings={...item.settings,verifyTls:!1},warnings.push("\u6B64\u8BF7\u6C42\u5DF2\u5173\u95ED TLS \u9A8C\u8BC1");else if(["-L","--location"].includes(flag))item.settings={...item.settings,redirects:!0};else if(["--compressed","-s","--silent","-S","--show-error","-v","--verbose"].includes(flag))warnings.push(`\u5FFD\u7565 cURL \u9009\u9879 ${flag}`);else{if(flag.startsWith("-"))throw fail(`\u4E0D\u652F\u6301\u7684 cURL \u9009\u9879: ${flag}`);check(!item.url,"\u4EC5\u652F\u6301\u4E00\u4E2A URL"),item.url=flag}}check(item.url,"cURL \u7F3A\u5C11 URL");let type=item.headers.find(row=>row.key.toLowerCase()==="content-type")?.value||"";return item.body.type==="text"&&type.includes("json")&&(item.body.type="json"),{id:id(),name:"cURL \u5BFC\u5165",variables:[],items:[request(item)]}}function postman(data,warnings){check(data.info?.schema?.includes("/v2.1.0/"),"\u4EC5\u652F\u6301 Postman Collection v2.1");let vars=rows=>(rows||[]).map(row=>pair(row.key,row.value,{secret:row.type==="secret",enabled:!row.disabled})),auth=source=>{if(!source)return{type:"inherit"};let values=Object.fromEntries((source[source.type]||[]).map(row=>[row.key,row.value]));return source.type==="noauth"?{type:"none"}:source.type==="basic"?{type:"basic",username:values.username||"",password:values.password||""}:source.type==="bearer"?{type:"bearer",token:values.token||""}:source.type==="apikey"?{type:"apiKey",key:values.key||"",value:values.value||"",in:values.in||"header"}:(warnings.push(`\u4E0D\u652F\u6301 Postman \u8BA4\u8BC1 ${source.type}`),{type:"none"})},visit=(items,inheritedAuth)=>(items||[]).map(item=>{if(item.event?.length&&warnings.push(`${item.name}: \u811A\u672C\u672A\u5BFC\u5165`),item.variable?.length&&warnings.push(`${item.name}: \u6587\u4EF6\u5939/\u8BF7\u6C42\u5C40\u90E8\u53D8\u91CF\u8BF7\u79FB\u81F3\u96C6\u5408\u6216\u73AF\u5883`),item.response?.length&&warnings.push(`${item.name}: \u5DF2\u4FDD\u5B58\u7684\u54CD\u5E94\u793A\u4F8B\u672A\u5BFC\u5165`),item.item)return{id:id(),name:item.name,type:"folder",items:visit(item.item,item.auth?auth(item.auth):inheritedAuth)};let source=typeof item.request=="string"?{url:item.request}:item.request;check(source,"Postman \u8BF7\u6C42\u7F3A\u5931");let inputUrl=source.url,url=typeof inputUrl=="string"?inputUrl:inputUrl?.raw||"",query=typeof inputUrl=="object"&&inputUrl.query?vars(inputUrl.query):[];query.length&&(url=url.split("?")[0]);let variables=typeof inputUrl=="object"?inputUrl.variable||[]:[];for(let row of variables)url=url.replace(`:${row.key}`,row.value||`{{${row.key}}}`);let body={type:"none"};return source.body?.mode==="raw"?Object.assign(body,{type:source.body.options?.raw?.language==="json"?"json":"text",text:source.body.raw||""}):source.body?.mode==="urlencoded"?Object.assign(body,{type:"form",fields:vars(source.body.urlencoded)}):source.body?.mode==="formdata"?(Object.assign(body,{type:"multipart",fields:(source.body.formdata||[]).map(row=>pair(row.key,row.type==="file"?"":row.value,{file:row.type==="file",enabled:!row.disabled}))}),body.fields.some(row=>row.file)&&warnings.push(`${item.name}: \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9`)):source.body?.mode==="file"?(body.type="binary",warnings.push(`${item.name}: \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9`)):source.body?.mode&&warnings.push(`${item.name}: \u4E0D\u652F\u6301 Body ${source.body.mode}`),source.body?.options?.raw?.language&&!["json","text","xml","html"].includes(source.body.options.raw.language)&&warnings.push(`${item.name}: Body \u8BED\u8A00\u5DF2\u4F5C\u4E3A\u7EAF\u6587\u672C\u5BFC\u5165`),source.event?.length&&warnings.push(`${item.name}: \u8BF7\u6C42\u811A\u672C\u672A\u5BFC\u5165`),(source.protocolProfileBehavior||item.protocolProfileBehavior)&&warnings.push(`${item.name}: \u534F\u8BAE\u6269\u5C55\u8BBE\u7F6E\u672A\u5BFC\u5165`),request({id:id(),name:item.name,method:source.method||"GET",url,query,headers:vars(source.header),body,auth:source.auth?auth(source.auth):inheritedAuth})});return data.event?.length&&warnings.push("\u96C6\u5408\u811A\u672C\u672A\u5BFC\u5165"),/\{\{\$/.test(JSON.stringify(data))&&warnings.push("Postman \u52A8\u6001\u53D8\u91CF\u4E0D\u6267\u884C\uFF0C\u8BF7\u66FF\u6362\u4E3A\u73AF\u5883\u53D8\u91CF"),{id:id(),name:data.info.name||"Postman \u5BFC\u5165",variables:vars(data.variable),auth:auth(data.auth),items:visit(data.item,auth(data.auth))}}function openapi(data,warnings){check(/^3\.[01]\./.test(data.openapi||""),"\u4EC5\u652F\u6301 OpenAPI 3.0/3.1");let ref=(value,visited=new Set)=>{if(!value?.$ref)return value||{};if(!value.$ref.startsWith("#/"))return warnings.push(`\u5916\u90E8\u5F15\u7528\u672A\u89E3\u6790: ${value.$ref}`),{};if(visited.has(value.$ref))return warnings.push(`\u5FAA\u73AF\u5F15\u7528\u672A\u5C55\u5F00: ${value.$ref}`),{};visited.add(value.$ref);let found=pointer(data,value.$ref.slice(1));return found||warnings.push(`\u5F15\u7528\u4E0D\u5B58\u5728: ${value.$ref}`),ref(found,visited)},example=(input,seen=new Set,depth=0)=>{if(depth>8||input?.$ref&&seen.has(input.$ref))return null;input?.$ref&&(seen=new Set(seen),seen.add(input.$ref));let schema=ref(input);return schema.example!==void 0?schema.example:schema.default!==void 0?schema.default:schema.enum?.length?schema.enum[0]:schema.type==="object"||schema.properties?Object.fromEntries(Object.entries(schema.properties||{}).map(([key,val])=>[key,example(val,seen,depth+1)])):schema.type==="array"?[example(schema.items,seen,depth+1)]:schema.type==="boolean"?!1:["integer","number"].includes(schema.type)?0:""},folders=new Map,result={id:id(),name:data.info?.title||"OpenAPI \u5BFC\u5165",variables:[],items:[]};for(let[route,pathValue]of Object.entries(data.paths||{})){let pathItem=ref(pathValue);for(let method of["get","post","put","patch","delete","head","options"]){if(!pathItem[method])continue;let op=ref(pathItem[method]),server=(op.servers||pathItem.servers||data.servers||[{url:"{{baseUrl}}"}])[0],base=server.url;for(let[key,val]of Object.entries(server.variables||{}))base=base.replace(`{${key}}`,val.default??`{{${key}}}`);!/^https?:\/\//.test(base)&&!base.startsWith("{{")&&(warnings.push("\u76F8\u5BF9 server URL \u9700\u8981\u8BBE\u7F6E baseUrl"),base=`{{baseUrl}}${base}`);let url=base.replace(/\/$/,"")+route,query=[],headers=[],params=new Map;for(let raw of[...pathItem.parameters||[],...op.parameters||[]]){let p=ref(raw);params.set(`${p.in}:${p.name}`,p)}for(let p of params.values()){let val=p.example??example(p.schema);if(p.style&&!["form","simple"].includes(p.style)&&warnings.push(`${op.operationId||route}: \u53C2\u6570 ${p.name} \u7684 ${p.style} \u5E8F\u5217\u5316\u9700\u624B\u52A8\u914D\u7F6E`),p.in==="path")url=url.replace(`{${p.name}}`,val===""?`{{${p.name}}}`:encodeURIComponent(String(val)));else if(p.in==="query"){val&&typeof val=="object"&&!Array.isArray(val)&&warnings.push(`${route}: \u5BF9\u8C61\u53C2\u6570 ${p.name} \u7684\u5E8F\u5217\u5316\u9700\u624B\u52A8\u786E\u8BA4`);let values=Array.isArray(val)?p.explode===!1?[val.join(",")]:val:[val];for(let v of values)query.push(pair(p.name,typeof v=="object"?JSON.stringify(v):v))}else p.in==="header"?headers.push(pair(p.name,val)):p.in==="cookie"&&warnings.push(`${route}: Cookie \u53C2\u6570\u8BF7\u5728 Cookie \u9762\u677F\u914D\u7F6E`)}let content=ref(op.requestBody).content||{},contentType=Object.keys(content).find(key=>key.includes("json"))||Object.keys(content)[0],body={type:"none"};if(contentType){let media=ref(content[contentType]),val=media.example??Object.values(media.examples||{}).map(ref)[0]?.value??example(media.schema);contentType.includes("json")?body={type:"json",text:JSON.stringify(val,null,2)}:["multipart/form-data","application/x-www-form-urlencoded"].includes(contentType)?(body={type:contentType.startsWith("multipart")?"multipart":"form",fields:Object.entries(val||{}).map(([key,value])=>pair(key,value,{file:ref(media.schema).properties?.[key]?.format==="binary"}))},body.fields.some(row=>row.file)&&warnings.push(`${route}: \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9`)):body={type:"text",text:typeof val=="string"?val:JSON.stringify(val)},body.type!=="multipart"&&headers.push(pair("Content-Type",contentType)),Object.keys(content).length>1&&warnings.push(`${route}: \u5DF2\u9009\u62E9 ${contentType}\uFF0C\u5176\u4ED6\u6B63\u6587\u7C7B\u578B\u672A\u5BFC\u5165`)}let auth={type:"none"},security=op.security??data.security??[];if(security.length){let names=Object.keys(security[0]),scheme=ref(data.components?.securitySchemes?.[names[0]]);(security.length>1||names.length>1)&&warnings.push(`${route}: \u591A\u79CD\u8BA4\u8BC1\u8981\u6C42\u9700\u624B\u52A8\u786E\u8BA4`),scheme.type==="http"&&scheme.scheme==="basic"?auth={type:"basic",username:"{{username}}",password:"{{password}}"}:scheme.type==="http"&&scheme.scheme==="bearer"||scheme.type==="oauth2"?auth={type:"bearer",token:"{{token}}"}:scheme.type==="apiKey"&&scheme.in!=="cookie"?auth={type:"apiKey",key:scheme.name,in:scheme.in,value:"{{apiKey}}"}:warnings.push(`${route}: \u8BA4\u8BC1 ${scheme.type||names[0]} \u9700\u624B\u52A8\u914D\u7F6E`),scheme.type==="oauth2"&&warnings.push(`${route}: OAuth Token \u9700\u624B\u52A8\u63D0\u4F9B`)}let tag=op.tags?.[0]||"\u9ED8\u8BA4";if(!folders.has(tag)){let folder={id:id(),type:"folder",name:tag,items:[]};folders.set(tag,folder),result.items.push(folder)}folders.get(tag).items.push(request({id:id(),name:op.summary||op.operationId||`${method.toUpperCase()} ${route}`,method:method.toUpperCase(),url,query,headers,body,auth})),(op.callbacks||op.links)&&warnings.push(`${route}: callbacks/links \u672A\u5BFC\u5165`)}}return data.webhooks&&warnings.push("OpenAPI webhooks \u672A\u5BFC\u5165"),result}function preview(format,text){check(typeof text=="string"&&Buffer.byteLength(text)<=20*1024*1024,"\u5BFC\u5165\u5185\u5BB9\u8D85\u8FC7 20 MiB");let warnings=[],value;if(format==="curl")value=curl(text,warnings);else{let data;try{data=YAML.parse(text,{maxAliasCount:30,uniqueKeys:!0})}catch{throw fail("JSON/YAML \u683C\u5F0F\u65E0\u6548")}if(safeObject(data),format==="postman")value=postman(data,warnings);else if(format==="openapi")value=openapi(data,warnings);else if(format==="native")check(data.schemaVersion===1,"\u539F\u751F\u683C\u5F0F\u9700\u8981 schemaVersion: 1"),value={...data,id:id()};else throw fail("\u4E0D\u652F\u6301\u7684\u5BFC\u5165\u683C\u5F0F")}let clean=redact(resource("collections",value));return JSON.stringify(clean)!==JSON.stringify(resource("collections",value))&&warnings.push("\u660E\u6587\u8BA4\u8BC1\u4E0E\u654F\u611F\u5B57\u6BB5\u5DF2\u6E05\u7A7A\uFF0C\u8BF7\u4F7F\u7528\u4F1A\u8BDD Secret \u53D8\u91CF\u91CD\u65B0\u586B\u5199"),{collection:clean,count:flatten(clean.items).length,warnings:[...new Set(warnings)]}}function exportCurl(input){let value=redact(request(input)),quote=text=>"'"+String(text).replace(/'/g,"'\\''")+"'",url=value.url,params=value.query.filter(row=>row.enabled!==!1).map(row=>`${encodeURIComponent(row.key)}=${encodeURIComponent(row.value).replace(/%7B/gi,"{").replace(/%7D/gi,"}")}`).join("&");params&&(url+=(url.includes("?")?"&":"?")+params);let parts=["curl","-X",value.method,quote(url)];for(let row of value.headers.filter(row2=>row2.enabled!==!1))parts.push("-H",quote(`${row.key}: ${row.value}`));if(value.auth.type==="bearer"&&parts.push("-H",quote(`Authorization: Bearer ${value.auth.token||"{{token}}"}`)),value.auth.type==="basic"&&parts.push("-u",quote(`${value.auth.username||"{{username}}"}:${value.auth.password||"{{password}}"}`)),value.auth.type==="apiKey")if(value.auth.in==="query"){let separator=url.includes("?")?"&":"?";parts[3]=quote(`${url}${separator}${encodeURIComponent(value.auth.key)}=${value.auth.value||"{{apiKey}}"}`)}else parts.push("-H",quote(`${value.auth.key}: ${value.auth.value||"{{apiKey}}"}`));if(["json","text","xml"].includes(value.body.type)&&(value.headers.some(row=>row.key.toLowerCase()==="content-type")||parts.push("-H",quote(`Content-Type: ${value.body.type==="json"?"application/json":value.body.type==="xml"?"application/xml":"text/plain"}`)),parts.push("--data-raw",quote(value.body.text||""))),value.body.type==="form")for(let row of(value.body.fields||[]).filter(row2=>row2.enabled!==!1))parts.push("--data-urlencode",quote(`${row.key}=${row.value}`));if(value.body.type==="multipart")for(let row of(value.body.fields||[]).filter(row2=>row2.enabled!==!1))parts.push("-F",quote(`${row.key}=${row.file?"@SELECT_FILE":row.value}`));return value.body.type==="binary"&&parts.push("--data-binary",quote("@SELECT_FILE")),value.settings.verifyTls||parts.push("--insecure"),parts.join(" ")}module2.exports={preview,exportCurl,shellTokens}}});var require_styles=__commonJS({"node_modules/colors/lib/styles.js"(exports2,module2){var styles={};module2.exports=styles;var codes={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightRed:[91,39],brightGreen:[92,39],brightYellow:[93,39],brightBlue:[94,39],brightMagenta:[95,39],brightCyan:[96,39],brightWhite:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgGray:[100,49],bgGrey:[100,49],bgBrightRed:[101,49],bgBrightGreen:[102,49],bgBrightYellow:[103,49],bgBrightBlue:[104,49],bgBrightMagenta:[105,49],bgBrightCyan:[106,49],bgBrightWhite:[107,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(codes).forEach(function(key){var val=codes[key],style=styles[key]=[];style.open="\x1B["+val[0]+"m",style.close="\x1B["+val[1]+"m"})}});var require_has_flag=__commonJS({"node_modules/colors/lib/system/has-flag.js"(exports2,module2){"use strict";module2.exports=function(flag,argv){argv=argv||process.argv;var terminatorPos=argv.indexOf("--"),prefix=/^-{1,2}/.test(flag)?"":"--",pos=argv.indexOf(prefix+flag);return pos!==-1&&(terminatorPos===-1?!0:pos<terminatorPos)}}});var require_supports_colors=__commonJS({"node_modules/colors/lib/system/supports-colors.js"(exports2,module2){"use strict";var os=require("os"),hasFlag=require_has_flag(),env=process.env,forceColor=void 0;hasFlag("no-color")||hasFlag("no-colors")||hasFlag("color=false")?forceColor=!1:(hasFlag("color")||hasFlag("colors")||hasFlag("color=true")||hasFlag("color=always"))&&(forceColor=!0);"FORCE_COLOR"in env&&(forceColor=env.FORCE_COLOR.length===0||parseInt(env.FORCE_COLOR,10)!==0);function translateLevel(level){return level===0?!1:{level,hasBasic:!0,has256:level>=2,has16m:level>=3}}function supportsColor(stream){if(forceColor===!1)return 0;if(hasFlag("color=16m")||hasFlag("color=full")||hasFlag("color=truecolor"))return 3;if(hasFlag("color=256"))return 2;if(stream&&!stream.isTTY&&forceColor!==!0)return 0;var min=forceColor?1:0;if(process.platform==="win32"){var osRelease=os.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(osRelease[0])>=10&&Number(osRelease[2])>=10586?Number(osRelease[2])>=14931?3:2:1}if("CI"in env)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(function(sign){return sign in env})||env.CI_NAME==="codeship"?1:min;if("TEAMCITY_VERSION"in env)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION)?1:0;if("TERM_PROGRAM"in env){var version=parseInt((env.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(env.TERM_PROGRAM){case"iTerm.app":return version>=3?3:2;case"Hyper":return 3;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(env.TERM)?2:/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)||"COLORTERM"in env?1:(env.TERM==="dumb",min)}function getSupportLevel(stream){var level=supportsColor(stream);return translateLevel(level)}module2.exports={supportsColor:getSupportLevel,stdout:getSupportLevel(process.stdout),stderr:getSupportLevel(process.stderr)}}});var require_trap=__commonJS({"node_modules/colors/lib/custom/trap.js"(exports2,module2){module2.exports=function(text,options){var result="";text=text||"Run the trap, drop the bass",text=text.split("");var trap={a:["@","\u0104","\u023A","\u0245","\u0394","\u039B","\u0414"],b:["\xDF","\u0181","\u0243","\u026E","\u03B2","\u0E3F"],c:["\xA9","\u023B","\u03FE"],d:["\xD0","\u018A","\u0500","\u0501","\u0502","\u0503"],e:["\xCB","\u0115","\u018E","\u0258","\u03A3","\u03BE","\u04BC","\u0A6C"],f:["\u04FA"],g:["\u0262"],h:["\u0126","\u0195","\u04A2","\u04BA","\u04C7","\u050A"],i:["\u0F0F"],j:["\u0134"],k:["\u0138","\u04A0","\u04C3","\u051E"],l:["\u0139"],m:["\u028D","\u04CD","\u04CE","\u0520","\u0521","\u0D69"],n:["\xD1","\u014B","\u019D","\u0376","\u03A0","\u048A"],o:["\xD8","\xF5","\xF8","\u01FE","\u0298","\u047A","\u05DD","\u06DD","\u0E4F"],p:["\u01F7","\u048E"],q:["\u09CD"],r:["\xAE","\u01A6","\u0210","\u024C","\u0280","\u042F"],s:["\xA7","\u03DE","\u03DF","\u03E8"],t:["\u0141","\u0166","\u0373"],u:["\u01B1","\u054D"],v:["\u05D8"],w:["\u0428","\u0460","\u047C","\u0D70"],x:["\u04B2","\u04FE","\u04FC","\u04FD"],y:["\xA5","\u04B0","\u04CB"],z:["\u01B5","\u0240"]};return text.forEach(function(c){c=c.toLowerCase();var chars=trap[c]||[" "],rand=Math.floor(Math.random()*chars.length);typeof trap[c]<"u"?result+=trap[c][rand]:result+=c}),result}}});var require_zalgo=__commonJS({"node_modules/colors/lib/custom/zalgo.js"(exports2,module2){module2.exports=function(text,options){text=text||" he is here ";var soul={up:["\u030D","\u030E","\u0304","\u0305","\u033F","\u0311","\u0306","\u0310","\u0352","\u0357","\u0351","\u0307","\u0308","\u030A","\u0342","\u0313","\u0308","\u034A","\u034B","\u034C","\u0303","\u0302","\u030C","\u0350","\u0300","\u0301","\u030B","\u030F","\u0312","\u0313","\u0314","\u033D","\u0309","\u0363","\u0364","\u0365","\u0366","\u0367","\u0368","\u0369","\u036A","\u036B","\u036C","\u036D","\u036E","\u036F","\u033E","\u035B","\u0346","\u031A"],down:["\u0316","\u0317","\u0318","\u0319","\u031C","\u031D","\u031E","\u031F","\u0320","\u0324","\u0325","\u0326","\u0329","\u032A","\u032B","\u032C","\u032D","\u032E","\u032F","\u0330","\u0331","\u0332","\u0333","\u0339","\u033A","\u033B","\u033C","\u0345","\u0347","\u0348","\u0349","\u034D","\u034E","\u0353","\u0354","\u0355","\u0356","\u0359","\u035A","\u0323"],mid:["\u0315","\u031B","\u0300","\u0301","\u0358","\u0321","\u0322","\u0327","\u0328","\u0334","\u0335","\u0336","\u035C","\u035D","\u035E","\u035F","\u0360","\u0362","\u0338","\u0337","\u0361"," \u0489"]},all=[].concat(soul.up,soul.down,soul.mid);function randomNumber(range){var r=Math.floor(Math.random()*range);return r}function isChar(character){var bool=!1;return all.filter(function(i){bool=i===character}),bool}function heComes(text2,options2){var result="",counts,l;options2=options2||{},options2.up=typeof options2.up<"u"?options2.up:!0,options2.mid=typeof options2.mid<"u"?options2.mid:!0,options2.down=typeof options2.down<"u"?options2.down:!0,options2.size=typeof options2.size<"u"?options2.size:"maxi",text2=text2.split("");for(l in text2)if(!isChar(l)){switch(result=result+text2[l],counts={up:0,down:0,mid:0},options2.size){case"mini":counts.up=randomNumber(8),counts.mid=randomNumber(2),counts.down=randomNumber(8);break;case"maxi":counts.up=randomNumber(16)+3,counts.mid=randomNumber(4)+1,counts.down=randomNumber(64)+3;break;default:counts.up=randomNumber(8)+1,counts.mid=randomNumber(6)/2,counts.down=randomNumber(8)+1;break}var arr=["up","mid","down"];for(var d in arr)for(var index=arr[d],i=0;i<=counts[index];i++)options2[index]&&(result=result+soul[index][randomNumber(soul[index].length)])}return result}return heComes(text,options)}}});var require_america=__commonJS({"node_modules/colors/lib/maps/america.js"(exports2,module2){module2.exports=function(colors){return function(letter,i,exploded){if(letter===" ")return letter;switch(i%3){case 0:return colors.red(letter);case 1:return colors.white(letter);case 2:return colors.blue(letter)}}}}});var require_zebra=__commonJS({"node_modules/colors/lib/maps/zebra.js"(exports2,module2){module2.exports=function(colors){return function(letter,i,exploded){return i%2===0?letter:colors.inverse(letter)}}}});var require_rainbow=__commonJS({"node_modules/colors/lib/maps/rainbow.js"(exports2,module2){module2.exports=function(colors){var rainbowColors=["red","yellow","green","blue","magenta"];return function(letter,i,exploded){return letter===" "?letter:colors[rainbowColors[i++%rainbowColors.length]](letter)}}}});var require_random=__commonJS({"node_modules/colors/lib/maps/random.js"(exports2,module2){module2.exports=function(colors){var available=["underline","inverse","grey","yellow","red","green","blue","white","cyan","magenta","brightYellow","brightRed","brightGreen","brightBlue","brightWhite","brightCyan","brightMagenta"];return function(letter,i,exploded){return letter===" "?letter:colors[available[Math.round(Math.random()*(available.length-2))]](letter)}}}});var require_colors=__commonJS({"node_modules/colors/lib/colors.js"(exports2,module2){var colors={};module2.exports=colors;colors.themes={};var util=require("util"),ansiStyles=colors.styles=require_styles(),defineProps=Object.defineProperties,newLineRegex=new RegExp(/[\r\n]+/g);colors.supportsColor=require_supports_colors().supportsColor;typeof colors.enabled>"u"&&(colors.enabled=colors.supportsColor()!==!1);colors.enable=function(){colors.enabled=!0};colors.disable=function(){colors.enabled=!1};colors.stripColors=colors.strip=function(str){return(""+str).replace(/\x1B\[\d+m/g,"")};var stylize=colors.stylize=function(str,style){if(!colors.enabled)return str+"";var styleMap=ansiStyles[style];return!styleMap&&style in colors?colors[style](str):styleMap.open+str+styleMap.close},matchOperatorsRe=/[|\\{}()[\]^$+*?.]/g,escapeStringRegexp=function(str){if(typeof str!="string")throw new TypeError("Expected a string");return str.replace(matchOperatorsRe,"\\$&")};function build(_styles){var builder=function builder2(){return applyStyle.apply(builder2,arguments)};return builder._styles=_styles,builder.__proto__=proto,builder}var styles=(function(){var ret={};return ansiStyles.grey=ansiStyles.gray,Object.keys(ansiStyles).forEach(function(key){ansiStyles[key].closeRe=new RegExp(escapeStringRegexp(ansiStyles[key].close),"g"),ret[key]={get:function(){return build(this._styles.concat(key))}}}),ret})(),proto=defineProps(function(){},styles);function applyStyle(){var args=Array.prototype.slice.call(arguments),str=args.map(function(arg){return arg!=null&&arg.constructor===String?arg:util.inspect(arg)}).join(" ");if(!colors.enabled||!str)return str;for(var newLinesPresent=str.indexOf(`
|
|
221
|
+
`,nl)+1}return{type,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(parent){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);return start.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let prev=getPrevProps(parent),start=getFirstKeyStartProps(prev);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(start,indent){return this.type!=="comment"||this.indent<=indent?!1:start.every(st=>st.type==="newline"||st.type==="space")}*documentEnd(docEnd){this.type!=="doc-mode"&&(docEnd.end?docEnd.end.push(this.sourceToken):docEnd.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(token){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;default:token.end?token.end.push(this.sourceToken):token.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};exports2.Parser=Parser}});var require_public_api=__commonJS({"node_modules/yaml/dist/public-api.js"(exports2){"use strict";var composer=require_composer(),Document=require_Document(),errors=require_errors(),log=require_log(),identity=require_identity(),lineCounter=require_line_counter(),parser=require_parser();function parseOptions(options){let prettyErrors=options.prettyErrors!==!1;return{lineCounter:options.lineCounter||prettyErrors&&new lineCounter.LineCounter||null,prettyErrors}}function parseAllDocuments(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),docs=Array.from(composer$1.compose(parser$1.parse(source)));if(prettyErrors&&lineCounter2)for(let doc of docs)doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2));return docs.length>0?docs:Object.assign([],{empty:!0},composer$1.streamInfo())}function parseDocument(source,options={}){let{lineCounter:lineCounter2,prettyErrors}=parseOptions(options),parser$1=new parser.Parser(lineCounter2?.addNewLine),composer$1=new composer.Composer(options),doc=null;for(let _doc of composer$1.compose(parser$1.parse(source),!0,source.length))if(!doc)doc=_doc;else if(doc.options.logLevel!=="silent"){doc.errors.push(new errors.YAMLParseError(_doc.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return prettyErrors&&lineCounter2&&(doc.errors.forEach(errors.prettifyError(source,lineCounter2)),doc.warnings.forEach(errors.prettifyError(source,lineCounter2))),doc}function parse(src,reviver,options){let _reviver;typeof reviver=="function"?_reviver=reviver:options===void 0&&reviver&&typeof reviver=="object"&&(options=reviver);let doc=parseDocument(src,options);if(!doc)return null;if(doc.warnings.forEach(warning=>log.warn(doc.options.logLevel,warning)),doc.errors.length>0){if(doc.options.logLevel!=="silent")throw doc.errors[0];doc.errors=[]}return doc.toJS(Object.assign({reviver:_reviver},options))}function stringify(value,replacer,options){let _replacer=null;if(typeof replacer=="function"||Array.isArray(replacer)?_replacer=replacer:options===void 0&&replacer&&(options=replacer),typeof options=="string"&&(options=options.length),typeof options=="number"){let indent=Math.round(options);options=indent<1?void 0:indent>8?{indent:8}:{indent}}if(value===void 0){let{keepUndefined}=options??replacer??{};if(!keepUndefined)return}return identity.isDocument(value)&&!_replacer?value.toString(options):new Document.Document(value,_replacer,options).toString(options)}exports2.parse=parse;exports2.parseAllDocuments=parseAllDocuments;exports2.parseDocument=parseDocument;exports2.stringify=stringify}});var require_dist=__commonJS({"node_modules/yaml/dist/index.js"(exports2){"use strict";var composer=require_composer(),Document=require_Document(),Schema=require_Schema(),errors=require_errors(),Alias=require_Alias(),identity=require_identity(),Pair=require_Pair(),Scalar=require_Scalar(),YAMLMap=require_YAMLMap(),YAMLSeq=require_YAMLSeq(),cst=require_cst(),lexer=require_lexer(),lineCounter=require_line_counter(),parser=require_parser(),publicApi=require_public_api(),visit=require_visit();exports2.Composer=composer.Composer;exports2.Document=Document.Document;exports2.Schema=Schema.Schema;exports2.YAMLError=errors.YAMLError;exports2.YAMLParseError=errors.YAMLParseError;exports2.YAMLWarning=errors.YAMLWarning;exports2.Alias=Alias.Alias;exports2.isAlias=identity.isAlias;exports2.isCollection=identity.isCollection;exports2.isDocument=identity.isDocument;exports2.isMap=identity.isMap;exports2.isNode=identity.isNode;exports2.isPair=identity.isPair;exports2.isScalar=identity.isScalar;exports2.isSeq=identity.isSeq;exports2.Pair=Pair.Pair;exports2.Scalar=Scalar.Scalar;exports2.YAMLMap=YAMLMap.YAMLMap;exports2.YAMLSeq=YAMLSeq.YAMLSeq;exports2.CST=cst;exports2.Lexer=lexer.Lexer;exports2.LineCounter=lineCounter.LineCounter;exports2.Parser=parser.Parser;exports2.parse=publicApi.parse;exports2.parseAllDocuments=publicApi.parseAllDocuments;exports2.parseDocument=publicApi.parseDocument;exports2.stringify=publicApi.stringify;exports2.visit=visit.visit;exports2.visitAsync=visit.visitAsync}});var require_importers=__commonJS({"src/lib/apiClient/importers.js"(exports2,module2){var crypto=require("crypto"),YAML=require_dist(),{isManagedHeader}=require_headers(),{check,fail,safeObject,request,resource,redact,pointer,flatten}=require_model(),id=()=>crypto.randomUUID(),pair=(key,value,extra={})=>({key:String(key),value:String(value??""),enabled:!0,...extra});function shellTokens(text){let tokens=[],token="",quote="",started=!1;text=text.replace(/\\\r?\n/g,"");for(let i=0;i<text.length;i++){let char=text[i];if(char==="\\"&"e!=="'"){check(i+1<text.length,"cURL \u8F6C\u4E49\u4E0D\u5B8C\u6574"),token+=text[++i],started=!0;continue}if(quote){char===quote?quote="":token+=char,started=!0;continue}if(char==="'"||char==='"'){quote=char,started=!0;continue}if(/\s/.test(char)){started&&tokens.push(token),token="",started=!1;continue}check(!/[;|<>`]/.test(char)&&!(char==="$"&&text[i+1]==="("),"\u4EC5\u5141\u8BB8\u5355\u6761 cURL\uFF0C\u4E0D\u652F\u6301 shell \u547D\u4EE4"),token+=char,started=!0}return check(!quote,"cURL \u5F15\u53F7\u672A\u95ED\u5408"),started&&tokens.push(token),check(tokens.shift()?.toLowerCase()==="curl","\u8BF7\u8F93\u5165\u4EE5 curl \u5F00\u59CB\u7684\u547D\u4EE4"),tokens}function curl(text,warnings){let tokens=shellTokens(text),item={id:id(),name:"\u5BFC\u5165\u7684 cURL",method:"GET",url:"",headers:[],query:[],body:{type:"none"},auth:{type:"none"}},explicitMethod=!1;for(let i=0;i<tokens.length;i++){let flag=tokens[i],attached;if(flag.startsWith("--")&&flag.includes("=")){let index=flag.indexOf("=");attached=flag.slice(index+1),flag=flag.slice(0,index)}else/^-[XHduF].+/.test(flag)&&(attached=flag.slice(2),flag=flag.slice(0,2));let value=()=>{let result=attached??tokens[++i];return check(result!==void 0,`${flag} \u7F3A\u5C11\u53C2\u6570`),result};if(["-X","--request"].includes(flag))item.method=value().toUpperCase(),explicitMethod=!0;else if(["-H","--header"].includes(flag)){let line=value(),colon=line.indexOf(":");check(colon>0,"\u8BF7\u6C42\u5934\u683C\u5F0F\u4E3A Name: Value");let key=line.slice(0,colon).trim(),managed=isManagedHeader(key);item.headers.push(pair(key,line.slice(colon+1).trim(),{enabled:!managed})),managed&&warnings.push(`\u8BF7\u6C42\u5934 ${key} \u7531\u5BA2\u6237\u7AEF\u7BA1\u7406\uFF0C\u5DF2\u4FDD\u7559\u4F46\u505C\u7528\uFF0C\u65E0\u9700\u624B\u52A8\u8BBE\u7F6E`)}else if(["-d","--data","--data-raw","--data-binary","--data-urlencode"].includes(flag)){let data=value();if(explicitMethod||(item.method="POST"),data.startsWith("@")&&flag!=="--data-raw")item.body={type:"binary"},warnings.push("cURL \u6587\u4EF6\u5F15\u7528\u9700\u8981\u91CD\u65B0\u9009\u62E9\u6587\u4EF6");else if(flag==="--data-urlencode"){let index=data.indexOf("=");item.body={type:"form",fields:[...item.body.fields||[],pair(index<0?data:data.slice(0,index),index<0?"":data.slice(index+1))]}}else item.body={type:"text",text:item.body.text?`${item.body.text}&${data}`:data}}else if(["-F","--form"].includes(flag)){let data=value(),index=data.indexOf("=");check(index>0,"\u8868\u5355\u683C\u5F0F\u4E3A key=value");let val=data.slice(index+1);item.body={type:"multipart",fields:[...item.body.fields||[],pair(data.slice(0,index),val.startsWith("@")?"":val,{file:val.startsWith("@")})]},val.startsWith("@")&&warnings.push("multipart \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9"),explicitMethod||(item.method="POST")}else if(["-u","--user"].includes(flag)){let data=value(),index=data.indexOf(":");item.auth={type:"basic",username:index<0?data:data.slice(0,index),password:index<0?"":data.slice(index+1)}}else if(["-b","--cookie"].includes(flag)){let val=value();val.includes("=")?item.headers.push(pair("Cookie",val)):warnings.push("\u4E0D\u8BFB\u53D6 cURL Cookie \u6587\u4EF6")}else if(flag==="--url")item.url=value();else if(["-I","--head"].includes(flag))item.method="HEAD",explicitMethod=!0;else if(["-k","--insecure"].includes(flag))item.settings={...item.settings,verifyTls:!1},warnings.push("\u6B64\u8BF7\u6C42\u5DF2\u5173\u95ED TLS \u9A8C\u8BC1");else if(["-L","--location"].includes(flag))item.settings={...item.settings,redirects:!0};else if(["--compressed","-s","--silent","-S","--show-error","-v","--verbose"].includes(flag))warnings.push(`\u5FFD\u7565 cURL \u9009\u9879 ${flag}`);else{if(flag.startsWith("-"))throw fail(`\u4E0D\u652F\u6301\u7684 cURL \u9009\u9879: ${flag}`);check(!item.url,"\u4EC5\u652F\u6301\u4E00\u4E2A URL"),item.url=flag}}check(item.url,"cURL \u7F3A\u5C11 URL");let type=item.headers.find(row=>row.key.toLowerCase()==="content-type")?.value||"";return item.body.type==="text"&&type.includes("json")&&(item.body.type="json"),{id:id(),name:"cURL \u5BFC\u5165",variables:[],items:[request(item)]}}function postman(data,warnings){check(data.info?.schema?.includes("/v2.1.0/"),"\u4EC5\u652F\u6301 Postman Collection v2.1");let vars=rows=>(rows||[]).map(row=>pair(row.key,row.value,{secret:row.type==="secret",enabled:!row.disabled})),auth=source=>{if(!source)return{type:"inherit"};let values=Object.fromEntries((source[source.type]||[]).map(row=>[row.key,row.value]));return source.type==="noauth"?{type:"none"}:source.type==="basic"?{type:"basic",username:values.username||"",password:values.password||""}:source.type==="bearer"?{type:"bearer",token:values.token||""}:source.type==="apikey"?{type:"apiKey",key:values.key||"",value:values.value||"",in:values.in||"header"}:(warnings.push(`\u4E0D\u652F\u6301 Postman \u8BA4\u8BC1 ${source.type}`),{type:"none"})},visit=(items,inheritedAuth)=>(items||[]).map(item=>{if(item.event?.length&&warnings.push(`${item.name}: \u811A\u672C\u672A\u5BFC\u5165`),item.variable?.length&&warnings.push(`${item.name}: \u6587\u4EF6\u5939/\u8BF7\u6C42\u5C40\u90E8\u53D8\u91CF\u8BF7\u79FB\u81F3\u96C6\u5408\u6216\u73AF\u5883`),item.response?.length&&warnings.push(`${item.name}: \u5DF2\u4FDD\u5B58\u7684\u54CD\u5E94\u793A\u4F8B\u672A\u5BFC\u5165`),item.item)return{id:id(),name:item.name,type:"folder",items:visit(item.item,item.auth?auth(item.auth):inheritedAuth)};let source=typeof item.request=="string"?{url:item.request}:item.request;check(source,"Postman \u8BF7\u6C42\u7F3A\u5931");let inputUrl=source.url,url=typeof inputUrl=="string"?inputUrl:inputUrl?.raw||"",query=typeof inputUrl=="object"&&inputUrl.query?vars(inputUrl.query):[];query.length&&(url=url.split("?")[0]);let variables=typeof inputUrl=="object"?inputUrl.variable||[]:[];for(let row of variables)url=url.replace(`:${row.key}`,row.value||`{{${row.key}}}`);let body={type:"none"};return source.body?.mode==="raw"?Object.assign(body,{type:source.body.options?.raw?.language==="json"?"json":"text",text:source.body.raw||""}):source.body?.mode==="urlencoded"?Object.assign(body,{type:"form",fields:vars(source.body.urlencoded)}):source.body?.mode==="formdata"?(Object.assign(body,{type:"multipart",fields:(source.body.formdata||[]).map(row=>pair(row.key,row.type==="file"?"":row.value,{file:row.type==="file",enabled:!row.disabled}))}),body.fields.some(row=>row.file)&&warnings.push(`${item.name}: \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9`)):source.body?.mode==="file"?(body.type="binary",warnings.push(`${item.name}: \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9`)):source.body?.mode&&warnings.push(`${item.name}: \u4E0D\u652F\u6301 Body ${source.body.mode}`),source.body?.options?.raw?.language&&!["json","text","xml","html"].includes(source.body.options.raw.language)&&warnings.push(`${item.name}: Body \u8BED\u8A00\u5DF2\u4F5C\u4E3A\u7EAF\u6587\u672C\u5BFC\u5165`),source.event?.length&&warnings.push(`${item.name}: \u8BF7\u6C42\u811A\u672C\u672A\u5BFC\u5165`),(source.protocolProfileBehavior||item.protocolProfileBehavior)&&warnings.push(`${item.name}: \u534F\u8BAE\u6269\u5C55\u8BBE\u7F6E\u672A\u5BFC\u5165`),request({id:id(),name:item.name,method:source.method||"GET",url,query,headers:vars(source.header),body,auth:source.auth?auth(source.auth):inheritedAuth})});return data.event?.length&&warnings.push("\u96C6\u5408\u811A\u672C\u672A\u5BFC\u5165"),/\{\{\$/.test(JSON.stringify(data))&&warnings.push("Postman \u52A8\u6001\u53D8\u91CF\u4E0D\u6267\u884C\uFF0C\u8BF7\u66FF\u6362\u4E3A\u73AF\u5883\u53D8\u91CF"),{id:id(),name:data.info.name||"Postman \u5BFC\u5165",variables:vars(data.variable),auth:auth(data.auth),items:visit(data.item,auth(data.auth))}}function openapi(data,warnings){check(/^3\.[01]\./.test(data.openapi||""),"\u4EC5\u652F\u6301 OpenAPI 3.0/3.1");let ref=(value,visited=new Set)=>{if(!value?.$ref)return value||{};if(!value.$ref.startsWith("#/"))return warnings.push(`\u5916\u90E8\u5F15\u7528\u672A\u89E3\u6790: ${value.$ref}`),{};if(visited.has(value.$ref))return warnings.push(`\u5FAA\u73AF\u5F15\u7528\u672A\u5C55\u5F00: ${value.$ref}`),{};visited.add(value.$ref);let found=pointer(data,value.$ref.slice(1));return found||warnings.push(`\u5F15\u7528\u4E0D\u5B58\u5728: ${value.$ref}`),ref(found,visited)},example=(input,seen=new Set,depth=0)=>{if(depth>8||input?.$ref&&seen.has(input.$ref))return null;input?.$ref&&(seen=new Set(seen),seen.add(input.$ref));let schema=ref(input);return schema.example!==void 0?schema.example:schema.default!==void 0?schema.default:schema.enum?.length?schema.enum[0]:schema.type==="object"||schema.properties?Object.fromEntries(Object.entries(schema.properties||{}).map(([key,val])=>[key,example(val,seen,depth+1)])):schema.type==="array"?[example(schema.items,seen,depth+1)]:schema.type==="boolean"?!1:["integer","number"].includes(schema.type)?0:""},folders=new Map,result={id:id(),name:data.info?.title||"OpenAPI \u5BFC\u5165",variables:[],items:[]};for(let[route,pathValue]of Object.entries(data.paths||{})){let pathItem=ref(pathValue);for(let method of["get","post","put","patch","delete","head","options"]){if(!pathItem[method])continue;let op=ref(pathItem[method]),server=(op.servers||pathItem.servers||data.servers||[{url:"{{baseUrl}}"}])[0],base=server.url;for(let[key,val]of Object.entries(server.variables||{}))base=base.replace(`{${key}}`,val.default??`{{${key}}}`);!/^https?:\/\//.test(base)&&!base.startsWith("{{")&&(warnings.push("\u76F8\u5BF9 server URL \u9700\u8981\u8BBE\u7F6E baseUrl"),base=`{{baseUrl}}${base}`);let url=base.replace(/\/$/,"")+route,query=[],headers=[],params=new Map;for(let raw of[...pathItem.parameters||[],...op.parameters||[]]){let p=ref(raw);params.set(`${p.in}:${p.name}`,p)}for(let p of params.values()){let val=p.example??example(p.schema);if(p.style&&!["form","simple"].includes(p.style)&&warnings.push(`${op.operationId||route}: \u53C2\u6570 ${p.name} \u7684 ${p.style} \u5E8F\u5217\u5316\u9700\u624B\u52A8\u914D\u7F6E`),p.in==="path")url=url.replace(`{${p.name}}`,val===""?`{{${p.name}}}`:encodeURIComponent(String(val)));else if(p.in==="query"){val&&typeof val=="object"&&!Array.isArray(val)&&warnings.push(`${route}: \u5BF9\u8C61\u53C2\u6570 ${p.name} \u7684\u5E8F\u5217\u5316\u9700\u624B\u52A8\u786E\u8BA4`);let values=Array.isArray(val)?p.explode===!1?[val.join(",")]:val:[val];for(let v of values)query.push(pair(p.name,typeof v=="object"?JSON.stringify(v):v))}else p.in==="header"?headers.push(pair(p.name,val)):p.in==="cookie"&&warnings.push(`${route}: Cookie \u53C2\u6570\u8BF7\u5728 Cookie \u9762\u677F\u914D\u7F6E`)}let content=ref(op.requestBody).content||{},contentType=Object.keys(content).find(key=>key.includes("json"))||Object.keys(content)[0],body={type:"none"};if(contentType){let media=ref(content[contentType]),val=media.example??Object.values(media.examples||{}).map(ref)[0]?.value??example(media.schema);contentType.includes("json")?body={type:"json",text:JSON.stringify(val,null,2)}:["multipart/form-data","application/x-www-form-urlencoded"].includes(contentType)?(body={type:contentType.startsWith("multipart")?"multipart":"form",fields:Object.entries(val||{}).map(([key,value])=>pair(key,value,{file:ref(media.schema).properties?.[key]?.format==="binary"}))},body.fields.some(row=>row.file)&&warnings.push(`${route}: \u6587\u4EF6\u9700\u8981\u91CD\u65B0\u9009\u62E9`)):body={type:"text",text:typeof val=="string"?val:JSON.stringify(val)},body.type!=="multipart"&&headers.push(pair("Content-Type",contentType)),Object.keys(content).length>1&&warnings.push(`${route}: \u5DF2\u9009\u62E9 ${contentType}\uFF0C\u5176\u4ED6\u6B63\u6587\u7C7B\u578B\u672A\u5BFC\u5165`)}let auth={type:"none"},security=op.security??data.security??[];if(security.length){let names=Object.keys(security[0]),scheme=ref(data.components?.securitySchemes?.[names[0]]);(security.length>1||names.length>1)&&warnings.push(`${route}: \u591A\u79CD\u8BA4\u8BC1\u8981\u6C42\u9700\u624B\u52A8\u786E\u8BA4`),scheme.type==="http"&&scheme.scheme==="basic"?auth={type:"basic",username:"{{username}}",password:"{{password}}"}:scheme.type==="http"&&scheme.scheme==="bearer"||scheme.type==="oauth2"?auth={type:"bearer",token:"{{token}}"}:scheme.type==="apiKey"&&scheme.in!=="cookie"?auth={type:"apiKey",key:scheme.name,in:scheme.in,value:"{{apiKey}}"}:warnings.push(`${route}: \u8BA4\u8BC1 ${scheme.type||names[0]} \u9700\u624B\u52A8\u914D\u7F6E`),scheme.type==="oauth2"&&warnings.push(`${route}: OAuth Token \u9700\u624B\u52A8\u63D0\u4F9B`)}let tag=op.tags?.[0]||"\u9ED8\u8BA4";if(!folders.has(tag)){let folder={id:id(),type:"folder",name:tag,items:[]};folders.set(tag,folder),result.items.push(folder)}folders.get(tag).items.push(request({id:id(),name:op.summary||op.operationId||`${method.toUpperCase()} ${route}`,method:method.toUpperCase(),url,query,headers,body,auth})),(op.callbacks||op.links)&&warnings.push(`${route}: callbacks/links \u672A\u5BFC\u5165`)}}return data.webhooks&&warnings.push("OpenAPI webhooks \u672A\u5BFC\u5165"),result}function preview(format,text){check(typeof text=="string"&&Buffer.byteLength(text)<=20*1024*1024,"\u5BFC\u5165\u5185\u5BB9\u8D85\u8FC7 20 MiB");let warnings=[],value;if(format==="curl")value=curl(text,warnings);else{let data;try{data=YAML.parse(text,{maxAliasCount:30,uniqueKeys:!0})}catch{throw fail("JSON/YAML \u683C\u5F0F\u65E0\u6548")}if(safeObject(data),format==="postman")value=postman(data,warnings);else if(format==="openapi")value=openapi(data,warnings);else if(format==="native")check(data.schemaVersion===1,"\u539F\u751F\u683C\u5F0F\u9700\u8981 schemaVersion: 1"),value={...data,id:id()};else throw fail("\u4E0D\u652F\u6301\u7684\u5BFC\u5165\u683C\u5F0F")}let clean=redact(resource("collections",value));return JSON.stringify(clean)!==JSON.stringify(resource("collections",value))&&warnings.push("\u660E\u6587\u8BA4\u8BC1\u4E0E\u654F\u611F\u5B57\u6BB5\u5DF2\u6E05\u7A7A\uFF0C\u8BF7\u4F7F\u7528\u4F1A\u8BDD Secret \u53D8\u91CF\u91CD\u65B0\u586B\u5199"),{collection:clean,count:flatten(clean.items).length,warnings:[...new Set(warnings)]}}function exportCurl(input){let value=redact(request(input)),quote=text=>"'"+String(text).replace(/'/g,"'\\''")+"'",url=value.url,params=value.query.filter(row=>row.enabled!==!1).map(row=>`${encodeURIComponent(row.key)}=${encodeURIComponent(row.value).replace(/%7B/gi,"{").replace(/%7D/gi,"}")}`).join("&");params&&(url+=(url.includes("?")?"&":"?")+params);let parts=["curl","-X",value.method,quote(url)];for(let row of value.headers.filter(row2=>row2.enabled!==!1))parts.push("-H",quote(`${row.key}: ${row.value}`));if(value.auth.type==="bearer"&&parts.push("-H",quote(`Authorization: Bearer ${value.auth.token||"{{token}}"}`)),value.auth.type==="basic"&&parts.push("-u",quote(`${value.auth.username||"{{username}}"}:${value.auth.password||"{{password}}"}`)),value.auth.type==="apiKey")if(value.auth.in==="query"){let separator=url.includes("?")?"&":"?";parts[3]=quote(`${url}${separator}${encodeURIComponent(value.auth.key)}=${value.auth.value||"{{apiKey}}"}`)}else parts.push("-H",quote(`${value.auth.key}: ${value.auth.value||"{{apiKey}}"}`));if(["json","text","xml"].includes(value.body.type)&&(value.headers.some(row=>row.key.toLowerCase()==="content-type")||parts.push("-H",quote(`Content-Type: ${value.body.type==="json"?"application/json":value.body.type==="xml"?"application/xml":"text/plain"}`)),parts.push("--data-raw",quote(value.body.text||""))),value.body.type==="form")for(let row of(value.body.fields||[]).filter(row2=>row2.enabled!==!1))parts.push("--data-urlencode",quote(`${row.key}=${row.value}`));if(value.body.type==="multipart")for(let row of(value.body.fields||[]).filter(row2=>row2.enabled!==!1))parts.push("-F",quote(`${row.key}=${row.file?"@SELECT_FILE":row.value}`));return value.body.type==="binary"&&parts.push("--data-binary",quote("@SELECT_FILE")),value.settings.verifyTls||parts.push("--insecure"),parts.join(" ")}module2.exports={preview,exportCurl,shellTokens}}});var require_styles=__commonJS({"node_modules/colors/lib/styles.js"(exports2,module2){var styles={};module2.exports=styles;var codes={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightRed:[91,39],brightGreen:[92,39],brightYellow:[93,39],brightBlue:[94,39],brightMagenta:[95,39],brightCyan:[96,39],brightWhite:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgGray:[100,49],bgGrey:[100,49],bgBrightRed:[101,49],bgBrightGreen:[102,49],bgBrightYellow:[103,49],bgBrightBlue:[104,49],bgBrightMagenta:[105,49],bgBrightCyan:[106,49],bgBrightWhite:[107,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(codes).forEach(function(key){var val=codes[key],style=styles[key]=[];style.open="\x1B["+val[0]+"m",style.close="\x1B["+val[1]+"m"})}});var require_has_flag=__commonJS({"node_modules/colors/lib/system/has-flag.js"(exports2,module2){"use strict";module2.exports=function(flag,argv){argv=argv||process.argv;var terminatorPos=argv.indexOf("--"),prefix=/^-{1,2}/.test(flag)?"":"--",pos=argv.indexOf(prefix+flag);return pos!==-1&&(terminatorPos===-1?!0:pos<terminatorPos)}}});var require_supports_colors=__commonJS({"node_modules/colors/lib/system/supports-colors.js"(exports2,module2){"use strict";var os=require("os"),hasFlag=require_has_flag(),env=process.env,forceColor=void 0;hasFlag("no-color")||hasFlag("no-colors")||hasFlag("color=false")?forceColor=!1:(hasFlag("color")||hasFlag("colors")||hasFlag("color=true")||hasFlag("color=always"))&&(forceColor=!0);"FORCE_COLOR"in env&&(forceColor=env.FORCE_COLOR.length===0||parseInt(env.FORCE_COLOR,10)!==0);function translateLevel(level){return level===0?!1:{level,hasBasic:!0,has256:level>=2,has16m:level>=3}}function supportsColor(stream){if(forceColor===!1)return 0;if(hasFlag("color=16m")||hasFlag("color=full")||hasFlag("color=truecolor"))return 3;if(hasFlag("color=256"))return 2;if(stream&&!stream.isTTY&&forceColor!==!0)return 0;var min=forceColor?1:0;if(process.platform==="win32"){var osRelease=os.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(osRelease[0])>=10&&Number(osRelease[2])>=10586?Number(osRelease[2])>=14931?3:2:1}if("CI"in env)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(function(sign){return sign in env})||env.CI_NAME==="codeship"?1:min;if("TEAMCITY_VERSION"in env)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION)?1:0;if("TERM_PROGRAM"in env){var version=parseInt((env.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(env.TERM_PROGRAM){case"iTerm.app":return version>=3?3:2;case"Hyper":return 3;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(env.TERM)?2:/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)||"COLORTERM"in env?1:(env.TERM==="dumb",min)}function getSupportLevel(stream){var level=supportsColor(stream);return translateLevel(level)}module2.exports={supportsColor:getSupportLevel,stdout:getSupportLevel(process.stdout),stderr:getSupportLevel(process.stderr)}}});var require_trap=__commonJS({"node_modules/colors/lib/custom/trap.js"(exports2,module2){module2.exports=function(text,options){var result="";text=text||"Run the trap, drop the bass",text=text.split("");var trap={a:["@","\u0104","\u023A","\u0245","\u0394","\u039B","\u0414"],b:["\xDF","\u0181","\u0243","\u026E","\u03B2","\u0E3F"],c:["\xA9","\u023B","\u03FE"],d:["\xD0","\u018A","\u0500","\u0501","\u0502","\u0503"],e:["\xCB","\u0115","\u018E","\u0258","\u03A3","\u03BE","\u04BC","\u0A6C"],f:["\u04FA"],g:["\u0262"],h:["\u0126","\u0195","\u04A2","\u04BA","\u04C7","\u050A"],i:["\u0F0F"],j:["\u0134"],k:["\u0138","\u04A0","\u04C3","\u051E"],l:["\u0139"],m:["\u028D","\u04CD","\u04CE","\u0520","\u0521","\u0D69"],n:["\xD1","\u014B","\u019D","\u0376","\u03A0","\u048A"],o:["\xD8","\xF5","\xF8","\u01FE","\u0298","\u047A","\u05DD","\u06DD","\u0E4F"],p:["\u01F7","\u048E"],q:["\u09CD"],r:["\xAE","\u01A6","\u0210","\u024C","\u0280","\u042F"],s:["\xA7","\u03DE","\u03DF","\u03E8"],t:["\u0141","\u0166","\u0373"],u:["\u01B1","\u054D"],v:["\u05D8"],w:["\u0428","\u0460","\u047C","\u0D70"],x:["\u04B2","\u04FE","\u04FC","\u04FD"],y:["\xA5","\u04B0","\u04CB"],z:["\u01B5","\u0240"]};return text.forEach(function(c){c=c.toLowerCase();var chars=trap[c]||[" "],rand=Math.floor(Math.random()*chars.length);typeof trap[c]<"u"?result+=trap[c][rand]:result+=c}),result}}});var require_zalgo=__commonJS({"node_modules/colors/lib/custom/zalgo.js"(exports2,module2){module2.exports=function(text,options){text=text||" he is here ";var soul={up:["\u030D","\u030E","\u0304","\u0305","\u033F","\u0311","\u0306","\u0310","\u0352","\u0357","\u0351","\u0307","\u0308","\u030A","\u0342","\u0313","\u0308","\u034A","\u034B","\u034C","\u0303","\u0302","\u030C","\u0350","\u0300","\u0301","\u030B","\u030F","\u0312","\u0313","\u0314","\u033D","\u0309","\u0363","\u0364","\u0365","\u0366","\u0367","\u0368","\u0369","\u036A","\u036B","\u036C","\u036D","\u036E","\u036F","\u033E","\u035B","\u0346","\u031A"],down:["\u0316","\u0317","\u0318","\u0319","\u031C","\u031D","\u031E","\u031F","\u0320","\u0324","\u0325","\u0326","\u0329","\u032A","\u032B","\u032C","\u032D","\u032E","\u032F","\u0330","\u0331","\u0332","\u0333","\u0339","\u033A","\u033B","\u033C","\u0345","\u0347","\u0348","\u0349","\u034D","\u034E","\u0353","\u0354","\u0355","\u0356","\u0359","\u035A","\u0323"],mid:["\u0315","\u031B","\u0300","\u0301","\u0358","\u0321","\u0322","\u0327","\u0328","\u0334","\u0335","\u0336","\u035C","\u035D","\u035E","\u035F","\u0360","\u0362","\u0338","\u0337","\u0361"," \u0489"]},all=[].concat(soul.up,soul.down,soul.mid);function randomNumber(range){var r=Math.floor(Math.random()*range);return r}function isChar(character){var bool=!1;return all.filter(function(i){bool=i===character}),bool}function heComes(text2,options2){var result="",counts,l;options2=options2||{},options2.up=typeof options2.up<"u"?options2.up:!0,options2.mid=typeof options2.mid<"u"?options2.mid:!0,options2.down=typeof options2.down<"u"?options2.down:!0,options2.size=typeof options2.size<"u"?options2.size:"maxi",text2=text2.split("");for(l in text2)if(!isChar(l)){switch(result=result+text2[l],counts={up:0,down:0,mid:0},options2.size){case"mini":counts.up=randomNumber(8),counts.mid=randomNumber(2),counts.down=randomNumber(8);break;case"maxi":counts.up=randomNumber(16)+3,counts.mid=randomNumber(4)+1,counts.down=randomNumber(64)+3;break;default:counts.up=randomNumber(8)+1,counts.mid=randomNumber(6)/2,counts.down=randomNumber(8)+1;break}var arr=["up","mid","down"];for(var d in arr)for(var index=arr[d],i=0;i<=counts[index];i++)options2[index]&&(result=result+soul[index][randomNumber(soul[index].length)])}return result}return heComes(text,options)}}});var require_america=__commonJS({"node_modules/colors/lib/maps/america.js"(exports2,module2){module2.exports=function(colors){return function(letter,i,exploded){if(letter===" ")return letter;switch(i%3){case 0:return colors.red(letter);case 1:return colors.white(letter);case 2:return colors.blue(letter)}}}}});var require_zebra=__commonJS({"node_modules/colors/lib/maps/zebra.js"(exports2,module2){module2.exports=function(colors){return function(letter,i,exploded){return i%2===0?letter:colors.inverse(letter)}}}});var require_rainbow=__commonJS({"node_modules/colors/lib/maps/rainbow.js"(exports2,module2){module2.exports=function(colors){var rainbowColors=["red","yellow","green","blue","magenta"];return function(letter,i,exploded){return letter===" "?letter:colors[rainbowColors[i++%rainbowColors.length]](letter)}}}});var require_random=__commonJS({"node_modules/colors/lib/maps/random.js"(exports2,module2){module2.exports=function(colors){var available=["underline","inverse","grey","yellow","red","green","blue","white","cyan","magenta","brightYellow","brightRed","brightGreen","brightBlue","brightWhite","brightCyan","brightMagenta"];return function(letter,i,exploded){return letter===" "?letter:colors[available[Math.round(Math.random()*(available.length-2))]](letter)}}}});var require_colors=__commonJS({"node_modules/colors/lib/colors.js"(exports2,module2){var colors={};module2.exports=colors;colors.themes={};var util=require("util"),ansiStyles=colors.styles=require_styles(),defineProps=Object.defineProperties,newLineRegex=new RegExp(/[\r\n]+/g);colors.supportsColor=require_supports_colors().supportsColor;typeof colors.enabled>"u"&&(colors.enabled=colors.supportsColor()!==!1);colors.enable=function(){colors.enabled=!0};colors.disable=function(){colors.enabled=!1};colors.stripColors=colors.strip=function(str){return(""+str).replace(/\x1B\[\d+m/g,"")};var stylize=colors.stylize=function(str,style){if(!colors.enabled)return str+"";var styleMap=ansiStyles[style];return!styleMap&&style in colors?colors[style](str):styleMap.open+str+styleMap.close},matchOperatorsRe=/[|\\{}()[\]^$+*?.]/g,escapeStringRegexp=function(str){if(typeof str!="string")throw new TypeError("Expected a string");return str.replace(matchOperatorsRe,"\\$&")};function build(_styles){var builder=function builder2(){return applyStyle.apply(builder2,arguments)};return builder._styles=_styles,builder.__proto__=proto,builder}var styles=(function(){var ret={};return ansiStyles.grey=ansiStyles.gray,Object.keys(ansiStyles).forEach(function(key){ansiStyles[key].closeRe=new RegExp(escapeStringRegexp(ansiStyles[key].close),"g"),ret[key]={get:function(){return build(this._styles.concat(key))}}}),ret})(),proto=defineProps(function(){},styles);function applyStyle(){var args=Array.prototype.slice.call(arguments),str=args.map(function(arg){return arg!=null&&arg.constructor===String?arg:util.inspect(arg)}).join(" ");if(!colors.enabled||!str)return str;for(var newLinesPresent=str.indexOf(`
|
|
222
222
|
`)!=-1,nestedStyles=this._styles,i=nestedStyles.length;i--;){var code=ansiStyles[nestedStyles[i]];str=code.open+str.replace(code.closeRe,code.open)+code.close,newLinesPresent&&(str=str.replace(newLineRegex,function(match){return code.close+match+code.open}))}return str}colors.setTheme=function(theme){if(typeof theme=="string"){console.log("colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));");return}for(var style in theme)(function(style2){colors[style2]=function(str){if(typeof theme[style2]=="object"){var out=str;for(var i in theme[style2])out=colors[theme[style2][i]](out);return out}return colors[theme[style2]](str)}})(style)};function init(){var ret={};return Object.keys(styles).forEach(function(name){ret[name]={get:function(){return build([name])}}}),ret}var sequencer=function(map2,str){var exploded=str.split("");return exploded=exploded.map(map2),exploded.join("")};colors.trap=require_trap();colors.zalgo=require_zalgo();colors.maps={};colors.maps.america=require_america()(colors);colors.maps.zebra=require_zebra()(colors);colors.maps.rainbow=require_rainbow()(colors);colors.maps.random=require_random()(colors);for(map in colors.maps)(function(map2){colors[map2]=function(str){return sequencer(colors.maps[map2],str)}})(map);var map;defineProps(colors,init())}});var require_safe=__commonJS({"node_modules/colors/safe.js"(exports2,module2){var colors=require_colors();module2.exports=colors}});var require_utils4=__commonJS({"src/lib/utils.js"(exports2,module2){var fs=require("fs"),colors=require_safe(),path=require("path"),os=require("os"),net=require("net"),{spawnSync,spawn,execFile}=require("child_process"),getLogger=function(logFileDirPath){let options={flags:"a",encoding:"utf8"},output=fs.createWriteStream(path.resolve(logFileDirPath||path.resolve(process.cwd()),"./stdout.log"),options),errorOutput=fs.createWriteStream(path.resolve(logFileDirPath||path.resolve(process.cwd()),"./stderr.log"),options),logger2=new console.Console(output,errorOutput);return{log:(...args)=>logger2.log.call(null,`[${dateFormat("YYYY-mm-dd HH:MM:SS:fff")}] - `,...args),error:(...args)=>logger2.error.call(null,`[${dateFormat("YYYY-mm-dd HH:MM:SS:fff")}] - `,...args)}};function dateFormat(fmt,date=new Date){let ret,opt={"Y+":date.getFullYear().toString(),"m+":(date.getMonth()+1).toString(),"d+":date.getDate().toString(),"H+":date.getHours().toString(),"M+":date.getMinutes().toString(),"S+":date.getSeconds().toString(),"f+":date.getMilliseconds().toString()};for(let k in opt)ret=new RegExp("("+k+")").exec(fmt),ret&&(fmt=fmt.replace(ret[1],ret[1].length===1?opt[k]:opt[k].padStart(ret[1].length,"0")));return fmt}function logger(isSilent=!1){let logObj=null;return isSilent?logObj={info:function(){},assert:function(){}}:logObj={info:console.log,assert:console.assert},logObj}function parseAttribHidden(stdout){let line=String(stdout||"").split(/\r?\n/)[0]||"",pathStart=line.search(/[A-Za-z]:[\\/]|\\\\/);return(pathStart===-1?line:line.slice(0,pathStart)).toUpperCase().includes("H")}function isWindowsHiddenByAttrib(filePath){let result;try{result=spawnSync("attrib",[filePath],{encoding:"utf8",windowsHide:!0,timeout:5e3})}catch{return!1}return result.error||result.status!==0?!1:parseAttribHidden(result.stdout)}var WINDOWS_ATTRIB_CACHE_TTL=5e3,windowsAttribCache=new Map,windowsAttribInFlight=new Map;function isWindowsHiddenByAttribAsync(filePath,options){let cache=options.cache!==!1;if(cache){let cached=windowsAttribCache.get(filePath);if(cached&&cached.expires>Date.now())return Promise.resolve(cached.hidden);let inFlight=windowsAttribInFlight.get(filePath);if(inFlight)return inFlight}let execFileFn=options.attribExecFile||execFile,promise=new Promise(resolve=>{execFileFn("attrib",[filePath],{encoding:"utf8",windowsHide:!0,timeout:5e3},(error,stdout)=>resolve(!error&&parseAttribHidden(stdout)))}).then(hidden=>(cache&&windowsAttribCache.set(filePath,{hidden,expires:Date.now()+WINDOWS_ATTRIB_CACHE_TTL}),hidden));return promise.finally(()=>{windowsAttribInFlight.delete(filePath)}),cache&&windowsAttribInFlight.set(filePath,promise),promise}function isHiddenByNaming(filePath,platform){let name=path.basename(filePath);return name.startsWith(".")&&name!=="."&&name!==".."?!0:platform!=="win32"&&/(^|[\\/])\.[^\\/.]/.test(filePath)}function isHiddenPath(filePath){return typeof filePath!="string"||!filePath?!1:isHiddenByNaming(filePath,process.platform)?!0:process.platform==="win32"?isWindowsHiddenByAttrib(filePath):!1}var WINDOWS_HIDDEN_BULK_MIN=8,WINDOWS_HIDDEN_CACHE_TTL=5e3,windowsHiddenInFlight=new Map,windowsHiddenCache=new Map;function buildHiddenListingCommand(directory){return`[Console]::OutputEncoding=[System.Text.Encoding]::UTF8;$d='${String(directory).replace(/'/g,"''")}';Get-ChildItem -LiteralPath $d -Force | ForEach-Object { $_.Name + [char]9 + [int](($_.Attributes -band [System.IO.FileAttributes]::Hidden) -ne 0) }`}function parseHiddenListingOutput(output){let hidden=new Set;for(let line of String(output||"").split(/\r?\n/)){if(!line)continue;let separator=line.indexOf(" ");separator<=0||line.slice(separator+1)==="1"&&hidden.add(line.slice(0,separator))}return hidden}function runWindowsHiddenListing(directory,execFileFn){return new Promise((resolve,reject)=>{execFileFn("powershell.exe",["-NoProfile","-NonInteractive","-Command",buildHiddenListingCommand(directory)],{encoding:"utf8",windowsHide:!0,timeout:15e3,maxBuffer:64*1024*1024},(error,stdout)=>error?reject(error):resolve(String(stdout||"")))})}async function getWindowsOsHiddenNames(directory,options){let cache=options.cache!==!1;if(cache){let cached=windowsHiddenCache.get(directory);if(cached&&cached.expires>Date.now())return cached.names;let inFlight=windowsHiddenInFlight.get(directory);if(inFlight)return inFlight}let execFileFn=options.execFile||execFile,promise=runWindowsHiddenListing(directory,execFileFn).then(output=>{let names=parseHiddenListingOutput(output);return cache&&windowsHiddenCache.set(directory,{names,expires:Date.now()+WINDOWS_HIDDEN_CACHE_TTL}),names}).finally(()=>{windowsHiddenInFlight.delete(directory)});return cache&&windowsHiddenInFlight.set(directory,promise),promise}async function getDirectoryHiddenNames(directory,names,options={}){let platform=options.platform||process.platform,hidden=new Set,candidates=[];for(let name of names){if(typeof name!="string"||!name)continue;let childPath=path.join(directory,name);isHiddenByNaming(childPath,platform)?hidden.add(name):candidates.push({name,childPath})}if(candidates.length===0||platform!=="win32"||options.osHidden===!1)return hidden;if(candidates.length<=WINDOWS_HIDDEN_BULK_MIN)return(await Promise.all(candidates.map(({childPath})=>isWindowsHiddenByAttribAsync(childPath,options)))).forEach((isHidden,index)=>{isHidden&&hidden.add(candidates[index].name)}),hidden;let osHidden;try{osHidden=await getWindowsOsHiddenNames(directory,options)}catch{osHidden=null}return osHidden?(osHidden.forEach(name=>hidden.add(name)),hidden):((await Promise.all(candidates.map(({childPath})=>isWindowsHiddenByAttribAsync(childPath,options)))).forEach((isHidden,index)=>{isHidden&&hidden.add(candidates[index].name)}),hidden)}function openPathInFileManager(fullPath,options={}){let platform=options.platform||process.platform,spawnFn=options.spawn||spawn,command,args;switch(platform){case"darwin":command="open",args=[fullPath];break;case"win32":command="explorer.exe",args=[fullPath];break;case"linux":command="xdg-open",args=[fullPath];break;default:return Promise.resolve({ok:!1,unsupported:!0,error:new Error("Unsupported platform")})}return new Promise(resolve=>{let child=spawnFn(command,args,{detached:!0,stdio:"ignore"}),settled=!1,done=result=>{settled||(settled=!0,resolve(result))};child.once("error",error=>done({ok:!1,unsupported:!1,error})),child.once("spawn",()=>{child.unref(),done({ok:!0,command,args})})})}var SupportMethods=["GET","POST","PUT","DELETE","HEAD","PATCH","OPTIONS","COPY","LINK","UNLINK","PURGE"],DefaultHeaders="Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,X-Data-Type,X-Requested-With,X-Data-Type,X-Auth-Token,Token",isValidMethod=function(m){return SupportMethods.includes(String(m).toLocaleUpperCase())},getFileLatestContent=function(filePath){try{return delete require.cache[require.resolve(filePath)],require(path.resolve(process.cwd(),filePath))}catch(error){return console.error(colors.red("[error]:"),error),"getFileLatestContent_ERROR"}},filePath2ApiUrl=function(filePath){return filePath.split(path.sep).join("/")},getDataType=function(data){return Object.prototype.toString.call(data).slice(8,-1).toLowerCase()},isEmptyObj=function(obj){return getDataType(obj)==="object"&&Object.keys(obj).length===0},writeStream=function(filePath,data){return new Promise((resolve,reject)=>{let writerStream=fs.createWriteStream(filePath);writerStream.write(data,"utf-8"),writerStream.end(),writerStream.on("finish",()=>{}),writerStream.on("close",()=>{setTimeout(()=>{resolve(data)})}),writerStream.on("error",err=>{getLogger(path.resolve(process.cwd())).error(filePath,require.cache[require.resolve(filePath)],err),reject(err)})})},readStream=function(filePath){let data="";return new Promise((resovle,reject)=>{let readerStream=fs.createReadStream(filePath);readerStream.setEncoding("UTF8"),readerStream.on("data",function(chunk){data+=chunk}),readerStream.on("end",function(){resovle(data)}),readerStream.on("error",function(err){reject(err),console.log(err.stack)})})},debounce=(func,wait)=>{let timeout,canceled=!1,f=function(...args){canceled||(clearTimeout(timeout),timeout=setTimeout(()=>{func.call(this,...args)},wait))};return f.cancel=()=>{clearTimeout(timeout),canceled=!0},f},throttle=(func,wait,immediate)=>{let timeout,canceled=!1,lastCalledTime=0,f=function(...args){if(canceled)return;let now=Date.now(),call=()=>{lastCalledTime=now,func.call(this,...args)};if(lastCalledTime===0){if(immediate)return call();lastCalledTime=now;return}lastCalledTime+wait-now>0?(clearTimeout(timeout),timeout=setTimeout(()=>call(),wait)):call()};return f.cancel=()=>{clearTimeout(timeout),canceled=!0},f};function getServerHost(){return process.env.SERVER_HOST==="0.0.0.0"?"0.0.0.0":"127.0.0.1"}function normalizeRemoteAddress(address){let value=String(address||"").trim().replace(/^\[|\]$/g,"");return value.toLowerCase().startsWith("::ffff:")?value.slice(7):value}function ipToBigInt(address){let version=net.isIP(address);if(version===4)return address.split(".").reduce((value,part)=>(value<<8n)+BigInt(Number(part)),0n);if(version!==6)return null;let[head="",tail=""]=address.toLowerCase().split("::"),headParts=head?head.split(":"):[],tailParts=tail?tail.split(":"):[];return[...headParts,...Array(Math.max(0,8-headParts.length-tailParts.length)).fill("0"),...tailParts].reduce((value,part)=>(value<<16n)+BigInt(parseInt(part||"0",16)),0n)}function parseAllowlistRule(value){let[address,prefixValue]=value.split("/"),normalizedAddress=normalizeRemoteAddress(address),version=net.isIP(normalizedAddress),maxPrefix=version===4?32:128,prefix=prefixValue===void 0?maxPrefix:Number(prefixValue);return!version||!Number.isInteger(prefix)||prefix<0||prefix>maxPrefix?null:{address:normalizedAddress,version,prefix,value:ipToBigInt(normalizedAddress)}}function parseHostAllowlist(filePath){let content=fs.readFileSync(filePath,"utf8"),rules=[];if(content.split(/\r?\n/).forEach((rawLine,index)=>{let line=rawLine.trim();if(!line||line.startsWith("#"))return;let rule=parseAllowlistRule(line);if(!rule)throw new Error(`Invalid IP allowlist rule at line ${index+1}: ${rawLine}`);rules.push(rule)}),rules.length===0)throw new Error("IP allowlist must contain at least one valid IP or CIDR rule");return rules}function isLoopbackAddress(address){let normalized=normalizeRemoteAddress(address);return normalized==="127.0.0.1"||normalized==="::1"}function isAddressAllowed(address,rules=[]){let normalized=normalizeRemoteAddress(address);if(isLoopbackAddress(normalized))return!0;let version=net.isIP(normalized),value=ipToBigInt(normalized);return!version||value===null?!1:rules.some(rule=>{if(rule.version!==version)return!1;let remainingBits=BigInt((rule.version===4?32:128)-rule.prefix);return value>>remainingBits===rule.value>>remainingBits})}function getHostAllowlist(){if(!process.env.HOST_ALLOWLIST)return[];try{return JSON.parse(process.env.HOST_ALLOWLIST).map(rule=>typeof rule=="string"?parseAllowlistRule(rule):rule).filter(Boolean)}catch{return[]}}function hostAllowlistMiddleware(){let rules=getHostAllowlist();return rules.length===0?(req,res,next)=>next():(req,res,next)=>{if(!isAddressAllowed(req.socket&&req.socket.remoteAddress,rules))return res.status(403).send("Access denied by host allowlist");next()}}function getServerUrls(port,pathname=""){let normalizedPath=pathname&&pathname!=="/"?pathname:"",urls=[`http://localhost:${port}${normalizedPath}`,`http://127.0.0.1:${port}${normalizedPath}`];if(getServerHost()!=="0.0.0.0"||getHostAllowlist().length>0)return urls;let addresses=new Set(urls);return Object.values(os.networkInterfaces()).forEach(networkInterface=>{(networkInterface||[]).forEach(details=>{details.family==="IPv4"&&!details.internal&&addresses.add(`http://${details.address}:${port}${normalizedPath}`)})}),Array.from(addresses)}module2.exports={getLogger,dateFormat,logger,SupportMethods,DefaultHeaders,isValidMethod,getFileLatestContent,filePath2ApiUrl,getDataType,isEmptyObj,writeStream,readStream,debounce,throttle,getServerHost,getServerUrls,normalizeRemoteAddress,parseHostAllowlist,isAddressAllowed,getHostAllowlist,hostAllowlistMiddleware,isHiddenPath,getDirectoryHiddenNames,openPathInFileManager}}});var require_server=__commonJS({"src/lib/apiClient/server.js"(exports2,module2){var express=require_express2(),http=require("http"),fs=require("fs"),path=require("path"),os=require("os"),crypto=require("crypto"),{pipeline}=require("stream/promises"),{Transform}=require("stream"),{CookieJar}=require_cookie3(),{Workspace}=require_store2(),{Engine}=require_engine(),{preview,exportCurl}=require_importers(),{LIMITS,fail,check,safeObject}=require_model(),{getServerHost,hostAllowlistMiddleware,getServerUrls,openPathInFileManager}=require_utils4(),API="/__api-client/api",route=handler=>(req,res,next)=>Promise.resolve().then(()=>handler(req,res)).catch(next);function createClientServer(options={}){let app=express(),workspace=new Workspace(options.root||process.env.API_CLIENT_DIRECTORY||".mock-service-client"),password=options.password??process.env.API_CLIENT_AUTH??"",host=options.host||getServerHost(),engine=new Engine,sessions=new Map,attempts=new Map,cookieName=`msc_${crypto.randomBytes(8).toString("hex")}`,assets=fs.existsSync(path.join(__dirname,"api-client"))?path.join(__dirname,"api-client"):path.join(__dirname,"browser"),addresses=new Set(["localhost","127.0.0.1"]);if(host==="0.0.0.0")for(let list of Object.values(os.networkInterfaces()))for(let info of list||[])info.family==="IPv4"&&addresses.add(info.address);let server=http.createServer(app);server.requestTimeout=6e4,server.headersTimeout=1e4;function newSession(res){if(sessions.size>=100)throw fail("\u4F1A\u8BDD\u6570\u91CF\u5DF2\u8FBE\u4E0A\u9650",429);let session={id:crypto.randomBytes(32).toString("hex"),token:crypto.randomBytes(32).toString("hex"),jar:new CookieJar,time:Date.now()};return sessions.set(session.id,session),res.set("Set-Cookie",`${cookieName}=${session.id}; HttpOnly; SameSite=Strict; Path=/`),session}app.disable("x-powered-by"),app.use(hostAllowlistMiddleware()),app.use((req,res,next)=>{let incoming;try{incoming=new URL(`http://${req.headers.host}`)}catch{return res.status(403).json({error:"Host \u65E0\u6548"})}if(!addresses.has(incoming.hostname)||Number(incoming.port||80)!==server.address()?.port||req.headers.host!==incoming.host)return res.status(403).json({error:"Host \u4E0D\u53D7\u4FE1\u4EFB"});if(req.headers.origin&&req.headers.origin!==incoming.origin||req.headers["sec-fetch-site"]==="cross-site")return res.status(403).json({error:"\u4E0D\u5141\u8BB8\u8DE8\u7AD9\u8BBF\u95EE"});res.set({"Cache-Control":"no-store","X-Content-Type-Options":"nosniff","Referrer-Policy":"no-referrer","X-Frame-Options":"DENY","Content-Security-Policy":"default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self'; worker-src 'self'; frame-ancestors 'none'; object-src 'none'; base-uri 'none'; form-action 'self'"});let sessionId=(req.headers.cookie||"").split(";").map(part=>part.trim()).find(part=>part.startsWith(`${cookieName}=`))?.slice(cookieName.length+1);req.clientSession=sessions.get(sessionId),req.clientSession&&(req.clientSession.time=Date.now()),next()}),app.get("/login",(req,res)=>res.sendFile(path.join(assets,"login.html"))),app.get("/login.js",(req,res)=>res.sendFile(path.join(assets,"login.js"))),app.get("/client.css",(req,res)=>res.sendFile(path.join(assets,"client.css"))),app.post(`${API}/session`,express.json({limit:"16kb"}),route((req,res)=>{check(req.headers.origin===`http://${req.headers.host}`,"\u767B\u5F55\u9700\u8981\u540C\u6E90 Origin");let remote=req.socket.remoteAddress,now=Date.now(),attempt=attempts.get(remote)||{time:now,count:0};if(now-attempt.time>6e4&&(attempt.time=now,attempt.count=0),++attempt.count>10)throw fail("\u5C1D\u8BD5\u8FC7\u4E8E\u9891\u7E41\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",429);(attempts.size<1e3||attempts.has(remote))&&attempts.set(remote,attempt);let supplied=Buffer.from(String(req.body.password||"")),expected=Buffer.from(password);if(password&&(supplied.length!==expected.length||!crypto.timingSafeEqual(supplied,expected)))throw fail("\u5BC6\u7801\u9519\u8BEF",401);let session=req.clientSession||newSession(res);attempts.delete(remote),res.json({token:session.token})})),app.get("/",route((req,res)=>{if(!req.clientSession&&password)return res.redirect("/login");req.clientSession||newSession(res),res.sendFile(path.join(assets,"index.html"))})),app.use((req,res,next)=>{if(!req.clientSession)return res.status(401).json({error:"\u8BF7\u5148\u767B\u5F55\u5DE5\u4F5C\u53F0"});next()}),app.get(`${API}/config`,(req,res)=>res.json({schemaVersion:1,workspaceId:workspace.id,workspaceName:path.basename(workspace.root),token:req.clientSession.token,limits:LIMITS,authEnabled:!!password})),app.get("/client.js",(req,res)=>res.sendFile(path.join(assets,"client.js"))),app.get("/worker.js",(req,res)=>res.sendFile(path.join(assets,"worker.js"))),app.get("/editor.js",(req,res)=>{let file=path.join(assets,"editor.js"),bundled=path.resolve(__dirname,"../../../dist/api-client/editor.js");res.sendFile(fs.existsSync(path.join(assets,"index.html"))&&assets.endsWith("api-client")?file:bundled)}),app.use(API,(req,res,next)=>{if(req.get("X-Api-Client-Token")!==req.clientSession.token)return res.status(403).json({error:"\u4F1A\u8BDD\u4EE4\u724C\u65E0\u6548"});next()}),app.post(`${API}/uploads`,route(async(req,res)=>{check(req.is("application/octet-stream"),"\u4E0A\u4F20\u9700\u8981 application/octet-stream");let file=await engine.files.create(req.clientSession.id);file.upload=!0,file.name=String(req.get("X-File-Name")||"file").slice(0,200);try{file.name=decodeURIComponent(file.name)}catch{}let size=0,count=new Transform({transform(chunk,encoding,callback){try{size+=chunk.length,check(size<=LIMITS.request,"\u4E0A\u4F20\u8D85\u8FC7 20 MiB"),engine.files.add(file,chunk.length),callback(null,chunk)}catch(error){callback(error)}}});try{await pipeline(req,count,fs.createWriteStream(file.path,{flags:"wx",mode:384})),res.status(201).json({uploadId:file.id,name:file.name,size:file.size})}catch(error){throw await engine.files.remove(file.id),error}})),app.use(API,express.json({limit:"21mb"})),app.use(API,(req,res,next)=>{try{safeObject(req.body),next()}catch(error){next(error)}}),app.delete(`${API}/session`,route(async(req,res)=>{await removeSession(req.clientSession),res.set("Set-Cookie",`${cookieName}=; HttpOnly; SameSite=Strict; Path=/; Max-Age=0`).json({success:!0})}));for(let kind of["collections","environments"])app.get(`${API}/${kind}`,route(async(req,res)=>res.json(await workspace.list(kind)))),app.put(`${API}/${kind}/:id`,route(async(req,res)=>res.json(await workspace.write(kind,req.params.id,req.body,req.get("If-Match"))))),app.delete(`${API}/${kind}/:id`,route(async(req,res)=>res.json(await workspace.write(kind,req.params.id,null,req.get("If-Match"),!0))));app.post(`${API}/imports/preview`,route((req,res)=>res.json(preview(req.body.format,req.body.text)))),app.post(`${API}/exports/curl`,route((req,res)=>res.json({text:exportCurl(req.body)}))),app.post(`${API}/executions`,route((req,res)=>{let job=engine.submit(req.clientSession.id,req.body,req.clientSession.jar);res.status(202).json({executionId:job.id})})),app.get(`${API}/executions/:id`,route((req,res)=>{let after=Number(req.query.after||0);check(Number.isInteger(after)&&after>=0,"\u7ED3\u679C\u504F\u79FB\u65E0\u6548"),res.json(engine.view(engine.get(req.params.id,req.clientSession.id),after))})),app.post(`${API}/executions/:id/cancel`,route((req,res)=>{engine.cancel(engine.get(req.params.id,req.clientSession.id)),res.json({success:!0})})),app.delete(`${API}/executions/:id`,route(async(req,res)=>{await engine.remove(engine.get(req.params.id,req.clientSession.id)),res.json({success:!0})})),app.get(`${API}/executions/:id/report`,route((req,res)=>{let job=engine.get(req.params.id,req.clientSession.id),results=job.results.map(({name,iteration,status,duration,size,error,assertions,extractionErrors})=>({name,iteration,status,duration,size,error,assertions:assertions.map(({name:title,passed})=>({name:title,passed})),extractionErrors}));res.attachment("api-client-report.json").json({schemaVersion:1,state:job.state,progress:job.progress,results})})),app.get(`${API}/downloads/:id`,route((req,res)=>{let file=engine.files.get(req.params.id,req.clientSession.id);check(!file.upload,"\u4E0A\u4F20\u6587\u4EF6\u4E0D\u53EF\u4F5C\u4E3A\u7ED3\u679C\u4E0B\u8F7D"),res.attachment(file.name||"response.bin").type("application/octet-stream").sendFile(file.path)})),app.delete(`${API}/uploads/:id`,route(async(req,res)=>{let file=engine.files.get(req.params.id,req.clientSession.id);check(file.upload,"\u4E0D\u662F\u4E0A\u4F20\u6587\u4EF6"),await engine.files.remove(file.id),res.json({success:!0})})),app.get(`${API}/cookies`,route(async(req,res)=>res.json((await req.clientSession.jar.serialize()).cookies))),app.post(`${API}/cookies`,route(async(req,res)=>{check(typeof req.body.url=="string"&&/^https?:\/\//.test(req.body.url),"Cookie \u9700\u8981 HTTP/HTTPS URL");try{await req.clientSession.jar.setCookie(req.body.cookie,req.body.url)}catch{throw fail("Cookie \u683C\u5F0F\u6216\u76EE\u6807 URL \u65E0\u6548")}res.json({success:!0})})),app.delete(`${API}/cookies`,route(async(req,res)=>{await req.clientSession.jar.removeAllCookies(),res.json({success:!0})})),app.use((req,res)=>res.status(404).json({error:"\u9875\u9762\u6216 API \u4E0D\u5B58\u5728"})),app.use((error,req,res,_next)=>{if(res.headersSent||res.destroyed)return;let status=error.status||(error.code==="ENOENT"?404:500);res.status(status).json({error:status===500?"\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u5DE5\u4F5C\u533A\u6743\u9650\u6216\u6587\u4EF6\u683C\u5F0F":error.type==="entity.too.large"?"\u8BF7\u6C42\u5185\u5BB9\u8D85\u8FC7\u9650\u5236":error.message})});async function removeSession(session){sessions.delete(session.id);for(let job of engine.jobs.values())job.owner===session.id&&await engine.remove(job);for(let file of engine.files.files.values())file.owner===session.id&&await engine.files.remove(file.id)}let sessionCleanup=setInterval(()=>{for(let session of sessions.values())Date.now()-session.time>12*36e5&&removeSession(session).catch(()=>{});for(let[key,attempt]of attempts)Date.now()-attempt.time>6e4&&attempts.delete(key)},6e4);return sessionCleanup.unref(),{app,server,engine,workspace,listen(port=0){return new Promise((resolve,reject)=>{server.once("error",reject),server.listen(port,host,()=>{server.removeListener("error",reject),resolve(server.address())})})},async close(){clearInterval(sessionCleanup);let closing=new Promise(resolve=>{if(!server.listening)return resolve();server.close(resolve),server.closeAllConnections?.()});await engine.close(),await closing,sessions.clear()}}}async function openBrowser(url){!(await openPathInFileManager(url)).ok&&!process.env.SILENT&&console.warn(`\u65E0\u6CD5\u81EA\u52A8\u6253\u5F00\u6D4F\u89C8\u5668\uFF0C\u8BF7\u8BBF\u95EE ${url}`)}async function start(){let client=createClientServer();try{let address=await client.listen(Number(process.env.PORT??8090));process.env.SILENT||(console.info("API Client available on:"),getServerUrls(address.port).forEach(url=>console.info(` ${url}`))),process.env.OPEN_API_OVERVIEW&&await openBrowser(`http://127.0.0.1:${address.port}`)}catch(error){throw await client.close(),error}let stopping=!1,stop=()=>{stopping||(stopping=!0,client.close().then(()=>process.exit(0),()=>process.exit(1)))};return process.once("SIGINT",stop),process.once("SIGTERM",stop),client}module2.exports={createClientServer,start}}});var require_apiClientServer=__commonJS({"src/lib/apiClientServer.js"(){require_server().start().catch(error=>{error.code==="EADDRINUSE"?(console.error(`API Client \u542F\u52A8\u5931\u8D25\uFF1A\u7AEF\u53E3 ${error.port} \u5DF2\u88AB\u5360\u7528\uFF08EADDRINUSE\uFF09\u3002`),console.error("\u8BF7\u4F7F\u7528 --api-client --port 0 \u81EA\u52A8\u5206\u914D\u7A7A\u95F2\u7AEF\u53E3\uFF0C\u6216\u901A\u8FC7 --port <\u7AEF\u53E3\u53F7> \u6307\u5B9A\u5176\u4ED6\u7AEF\u53E3\u3002")):error.code==="EACCES"||error.code==="EPERM"?console.error(`API Client \u542F\u52A8\u5931\u8D25\uFF1A\u6743\u9650\u4E0D\u8DB3\uFF08${error.code}\uFF09\uFF0C\u8BF7\u68C0\u67E5\u76D1\u542C\u7AEF\u53E3\u548C\u4E34\u65F6\u76EE\u5F55\u7684\u8BBF\u95EE\u6743\u9650\u3002`):console.error("API Client \u542F\u52A8\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7AEF\u53E3\u3001\u5DE5\u4F5C\u533A\u548C\u8BA4\u8BC1\u914D\u7F6E"),process.exitCode=1})}});var require_async=__commonJS({"node_modules/async/dist/async.js"(exports2,module2){(function(global2,factory){typeof exports2=="object"&&typeof module2<"u"?factory(exports2):typeof define=="function"&&define.amd?define(["exports"],factory):(global2=typeof globalThis<"u"?globalThis:global2||self,factory(global2.async={}))})(exports2,(function(exports3){"use strict";function apply(fn,...args){return(...callArgs)=>fn(...args,...callArgs)}function initialParams(fn){return function(...args){var callback=args.pop();return fn.call(this,args,callback)}}var hasQueueMicrotask=typeof queueMicrotask=="function"&&queueMicrotask,hasSetImmediate=typeof setImmediate=="function"&&setImmediate,hasNextTick=typeof process=="object"&&typeof process.nextTick=="function";function fallback(fn){setTimeout(fn,0)}function wrap(defer){return(fn,...args)=>defer(()=>fn(...args))}var _defer$1;hasQueueMicrotask?_defer$1=queueMicrotask:hasSetImmediate?_defer$1=setImmediate:hasNextTick?_defer$1=process.nextTick:_defer$1=fallback;var setImmediate$1=wrap(_defer$1);function asyncify(func){return isAsync(func)?function(...args){let callback=args.pop(),promise=func.apply(this,args);return handlePromise(promise,callback)}:initialParams(function(args,callback){var result;try{result=func.apply(this,args)}catch(e){return callback(e)}if(result&&typeof result.then=="function")return handlePromise(result,callback);callback(null,result)})}function handlePromise(promise,callback){return promise.then(value=>{invokeCallback(callback,null,value)},err=>{invokeCallback(callback,err&&(err instanceof Error||err.message)?err:new Error(err))})}function invokeCallback(callback,error,value){try{callback(error,value)}catch(err){setImmediate$1(e=>{throw e},err)}}function isAsync(fn){return fn[Symbol.toStringTag]==="AsyncFunction"}function isAsyncGenerator(fn){return fn[Symbol.toStringTag]==="AsyncGenerator"}function isAsyncIterable(obj){return typeof obj[Symbol.asyncIterator]=="function"}function wrapAsync(asyncFn){if(typeof asyncFn!="function")throw new Error("expected a function");return isAsync(asyncFn)?asyncify(asyncFn):asyncFn}function awaitify(asyncFn,arity){if(arity||(arity=asyncFn.length),!arity)throw new Error("arity is undefined");function awaitable(...args){return typeof args[arity-1]=="function"?asyncFn.apply(this,args):new Promise((resolve,reject2)=>{args[arity-1]=(err,...cbArgs)=>{if(err)return reject2(err);resolve(cbArgs.length>1?cbArgs:cbArgs[0])},asyncFn.apply(this,args)})}return awaitable}function applyEach$1(eachfn){return function(fns,...callArgs){return awaitify(function(callback){var that=this;return eachfn(fns,(fn,cb)=>{wrapAsync(fn).apply(that,callArgs.concat(cb))},callback)})}}function _asyncMap(eachfn,arr,iteratee,callback){arr=arr||[];var results=[],counter=0,_iteratee=wrapAsync(iteratee);return eachfn(arr,(value,_,iterCb)=>{var index2=counter++;_iteratee(value,(err,v)=>{results[index2]=v,iterCb(err)})},err=>{callback(err,results)})}function isArrayLike(value){return value&&typeof value.length=="number"&&value.length>=0&&value.length%1===0}let breakLoop={};function once(fn){function wrapper(...args){if(fn!==null){var callFn=fn;fn=null,callFn.apply(this,args)}}return Object.assign(wrapper,fn),wrapper}function getIterator(coll){return coll[Symbol.iterator]&&coll[Symbol.iterator]()}function createArrayIterator(coll){var i=-1,len=coll.length;return function(){return++i<len?{value:coll[i],key:i}:null}}function createES2015Iterator(iterator){var i=-1;return function(){var item=iterator.next();return item.done?null:(i++,{value:item.value,key:i})}}function createObjectIterator(obj){var okeys=obj?Object.keys(obj):[],i=-1,len=okeys.length;return function next(){var key=okeys[++i];return key==="__proto__"?next():i<len?{value:obj[key],key}:null}}function createIterator(coll){if(isArrayLike(coll))return createArrayIterator(coll);var iterator=getIterator(coll);return iterator?createES2015Iterator(iterator):createObjectIterator(coll)}function onlyOnce(fn){return function(...args){if(fn===null)throw new Error("Callback was already called.");var callFn=fn;fn=null,callFn.apply(this,args)}}function asyncEachOfLimit(generator,limit,iteratee,callback){let done=!1,canceled=!1,awaiting=!1,running=0,idx=0;function replenish(){running>=limit||awaiting||done||(awaiting=!0,generator.next().then(({value,done:iterDone})=>{if(!(canceled||done)){if(awaiting=!1,iterDone){done=!0,running<=0&&callback(null);return}running++,iteratee(value,idx,iterateeCallback),idx++,replenish()}}).catch(handleError))}function iterateeCallback(err,result){if(running-=1,!canceled){if(err)return handleError(err);if(err===!1){done=!0,canceled=!0;return}if(result===breakLoop||done&&running<=0)return done=!0,callback(null);replenish()}}function handleError(err){canceled||(awaiting=!1,done=!0,callback(err))}replenish()}var eachOfLimit$2=limit=>(obj,iteratee,callback)=>{if(callback=once(callback),limit<=0)throw new RangeError("concurrency limit cannot be less than 1");if(!obj)return callback(null);if(isAsyncGenerator(obj))return asyncEachOfLimit(obj,limit,iteratee,callback);if(isAsyncIterable(obj))return asyncEachOfLimit(obj[Symbol.asyncIterator](),limit,iteratee,callback);var nextElem=createIterator(obj),done=!1,canceled=!1,running=0,looping=!1;function iterateeCallback(err,value){if(!canceled)if(running-=1,err)done=!0,callback(err);else if(err===!1)done=!0,canceled=!0;else{if(value===breakLoop||done&&running<=0)return done=!0,callback(null);looping||replenish()}}function replenish(){for(looping=!0;running<limit&&!done;){var elem=nextElem();if(elem===null){done=!0,running<=0&&callback(null);return}running+=1,iteratee(elem.value,elem.key,onlyOnce(iterateeCallback))}looping=!1}replenish()};function eachOfLimit(coll,limit,iteratee,callback){return eachOfLimit$2(limit)(coll,wrapAsync(iteratee),callback)}var eachOfLimit$1=awaitify(eachOfLimit,4);function eachOfArrayLike(coll,iteratee,callback){callback=once(callback);var index2=0,completed=0,{length}=coll,canceled=!1;length===0&&callback(null);function iteratorCallback(err,value){err===!1&&(canceled=!0),canceled!==!0&&(err?callback(err):(++completed===length||value===breakLoop)&&callback(null))}for(;index2<length;index2++)iteratee(coll[index2],index2,onlyOnce(iteratorCallback))}function eachOfGeneric(coll,iteratee,callback){return eachOfLimit$1(coll,1/0,iteratee,callback)}function eachOf(coll,iteratee,callback){var eachOfImplementation=isArrayLike(coll)?eachOfArrayLike:eachOfGeneric;return eachOfImplementation(coll,wrapAsync(iteratee),callback)}var eachOf$1=awaitify(eachOf,3);function map(coll,iteratee,callback){return _asyncMap(eachOf$1,coll,iteratee,callback)}var map$1=awaitify(map,3),applyEach=applyEach$1(map$1);function eachOfSeries(coll,iteratee,callback){return eachOfLimit$1(coll,1,iteratee,callback)}var eachOfSeries$1=awaitify(eachOfSeries,3);function mapSeries(coll,iteratee,callback){return _asyncMap(eachOfSeries$1,coll,iteratee,callback)}var mapSeries$1=awaitify(mapSeries,3),applyEachSeries=applyEach$1(mapSeries$1);let PROMISE_SYMBOL=Symbol("promiseCallback");function promiseCallback(){let resolve,reject2;function callback(err,...args){if(err)return reject2(err);resolve(args.length>1?args:args[0])}return callback[PROMISE_SYMBOL]=new Promise((res,rej)=>{resolve=res,reject2=rej}),callback}function auto(tasks,concurrency,callback){typeof concurrency!="number"&&(callback=concurrency,concurrency=null),callback=once(callback||promiseCallback());var numTasks=Object.keys(tasks).length;if(!numTasks)return callback(null);concurrency||(concurrency=numTasks);var results={},runningTasks=0,canceled=!1,hasError=!1,listeners=Object.create(null),readyTasks=[],readyToCheck=[],uncheckedDependencies={};Object.keys(tasks).forEach(key=>{var task=tasks[key];if(!Array.isArray(task)){enqueueTask(key,[task]),readyToCheck.push(key);return}var dependencies=task.slice(0,task.length-1),remainingDependencies=dependencies.length;if(remainingDependencies===0){enqueueTask(key,task),readyToCheck.push(key);return}uncheckedDependencies[key]=remainingDependencies,dependencies.forEach(dependencyName=>{if(!tasks[dependencyName])throw new Error("async.auto task `"+key+"` has a non-existent dependency `"+dependencyName+"` in "+dependencies.join(", "));addListener(dependencyName,()=>{remainingDependencies--,remainingDependencies===0&&enqueueTask(key,task)})})}),checkForDeadlocks(),processQueue();function enqueueTask(key,task){readyTasks.push(()=>runTask(key,task))}function processQueue(){if(!canceled){if(readyTasks.length===0&&runningTasks===0)return callback(null,results);for(;readyTasks.length&&runningTasks<concurrency;){var run=readyTasks.shift();run()}}}function addListener(taskName,fn){var taskListeners=listeners[taskName];taskListeners||(taskListeners=listeners[taskName]=[]),taskListeners.push(fn)}function taskComplete(taskName){var taskListeners=listeners[taskName]||[];taskListeners.forEach(fn=>fn()),processQueue()}function runTask(key,task){if(!hasError){var taskCallback=onlyOnce((err,...result)=>{if(runningTasks--,err===!1){canceled=!0;return}if(result.length<2&&([result]=result),err){var safeResults={};if(Object.keys(results).forEach(rkey=>{safeResults[rkey]=results[rkey]}),safeResults[key]=result,hasError=!0,listeners=Object.create(null),canceled)return;callback(err,safeResults)}else results[key]=result,taskComplete(key)});runningTasks++;var taskFn=wrapAsync(task[task.length-1]);task.length>1?taskFn(results,taskCallback):taskFn(taskCallback)}}function checkForDeadlocks(){for(var currentTask,counter=0;readyToCheck.length;)currentTask=readyToCheck.pop(),counter++,getDependents(currentTask).forEach(dependent=>{--uncheckedDependencies[dependent]===0&&readyToCheck.push(dependent)});if(counter!==numTasks)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}function getDependents(taskName){var result=[];return Object.keys(tasks).forEach(key=>{let task=tasks[key];Array.isArray(task)&&task.indexOf(taskName)>=0&&result.push(key)}),result}return callback[PROMISE_SYMBOL]}var FN_ARGS=/^(?:async\s)?(?:function)?\s*(?:\w+\s*)?\(([^)]+)\)(?:\s*{)/,ARROW_FN_ARGS=/^(?:async\s)?\s*(?:\(\s*)?((?:[^)=\s]\s*)*)(?:\)\s*)?=>/,FN_ARG_SPLIT=/,/,FN_ARG=/(=.+)?(\s*)$/;function stripComments(string){let stripped="",index2=0,endBlockComment=string.indexOf("*/");for(;index2<string.length;)if(string[index2]==="/"&&string[index2+1]==="/"){let endIndex=string.indexOf(`
|
|
223
223
|
`,index2);index2=endIndex===-1?string.length:endIndex}else if(endBlockComment!==-1&&string[index2]==="/"&&string[index2+1]==="*"){let endIndex=string.indexOf("*/",index2);endIndex!==-1?(index2=endIndex+2,endBlockComment=string.indexOf("*/",index2)):(stripped+=string[index2],index2++)}else stripped+=string[index2],index2++;return stripped}function parseParams(func){let src=stripComments(func.toString()),match=src.match(FN_ARGS);if(match||(match=src.match(ARROW_FN_ARGS)),!match)throw new Error(`could not parse args in autoInject
|
|
224
224
|
Source:
|
package/docs/api-client.md
CHANGED
|
@@ -91,6 +91,8 @@ Tests 面板提供状态码、响应头、耗时及 JSON Pointer 字段的断言
|
|
|
91
91
|
|
|
92
92
|
导出提供原生集合 JSON 和单请求 cURL;保留变量引用。文件导出为 `@SELECT_FILE` 占位,需要使用者指定路径。
|
|
93
93
|
|
|
94
|
+
cURL 中的 `Connection`、`Host`、`Content-Length` 等由客户端管理的请求头会保留在 Headers 中但自动停用,导入预览会列出提示,发送时由客户端处理。已导入的旧请求如出现“请求头由客户端管理”,可取消勾选对应请求头或重新导入。
|
|
95
|
+
|
|
94
96
|
## 访问控制与资源限制
|
|
95
97
|
|
|
96
98
|
`--host` 与 `--auth` 独立,可单独使用或组合使用。`--host` 开放局域网访问,传入文件时沿用现有 IP/CIDR 白名单规则;`--auth` 为页面、API 和执行结果启用密码认证,单独使用时仍仅监听本机。不设置 `--auth` 时无需密码,仍保留会话隔离以及 Host、Origin 和 API 令牌检查。显式开放 LAN 后,请求从服务端机器发出,具有该机器的网络可达性。局域网服务本身使用 HTTP,应仅在可信网络中使用。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mock-service-cli-ultra",
|
|
3
|
-
"version": "4.11.
|
|
3
|
+
"version": "4.11.1",
|
|
4
4
|
"description": "🦅 Local Mock/Static/SPA server, Http?s request proxy, API overview page, File explorer, API client (Ultra archive formats)",
|
|
5
5
|
"main": "./dist/mockServer.js",
|
|
6
6
|
"bin": {
|