free-swagger-userscript
Version:
free-swagger for tampermonkey
1 lines • 34.8 kB
JavaScript
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-7caac4c9"],{"017e":function(e,a,r){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.genJsDoc=a.genJsDocTypeDef=void 0;const t=r("3e47"),n=r("e4be"),s=({name:e,props:a,code:r,description:t})=>r||`/**\n * @typedef ${e}${t?" - "+t:""}\n${a&&Object.entries(a).map(([e,a])=>` * @property {${a.formatType}} ${e}${a.description?" - "+a.description:""}\n`).join("").trimEnd()}\n**/\n`;a.genJsDocTypeDef=s;const o=e=>!e||(0,n.isEmpty)(e)?"":(0,t.isParsedSchemaObject)(e)?e.formatType:"Object",i=(e,a="params")=>(0,t.isParsedSchemaObject)(e)?"":Object.entries(e).map(([e,r])=>`\n * @param {${r.formatType}} ${a}.${e} ${r.description?"- "+r.description:""}`).join(""),c=({queryParamsInterface:e,bodyParamsInterface:a,pathParamsInterface:r,deprecated:t,summary:n})=>{const{IBodyParams:s,IQueryParams:c,IPathParams:_}={IQueryParams:o(e),IBodyParams:o(a),IPathParams:o(r)},p=_?"\n * @param {Object} pathParams"+i(r,"pathParams"):"",m=({IQueryParams:e,IBodyParams:a})=>e&&a,u=(new Map).set(({IQueryParams:e,IBodyParams:a})=>e&&!a,({IQueryParams:e,queryDescription:a,queryParamsInterface:r})=>`\n * @param {${e}} params ${a}${i(r)}`).set(({IQueryParams:e,IBodyParams:a})=>a&&!e,({IBodyParams:e,bodyDescription:a,bodyParamsInterface:r})=>`\n * @param {${e}} params ${a}${i(r)}`).set(m,({IQueryParams:e,queryDescription:a,queryParamsInterface:r})=>`\n * @param {${e}} queryParams ${a}${i(r,"queryParams")}`).set(({IQueryParams:e,pathParams:a,IBodyParams:r})=>!r&&!e&&a.length,"\n * @param {Object} _NOOP - never").set(({pathParams:e})=>e.length,()=>p),d=(new Map).set(({pathParams:e})=>e.length,()=>p).set(m,"\n * @param {Object} _NOOP - never"),l=(new Map).set(m,({IBodyParams:e,bodyDescription:a,bodyParamsInterface:r})=>`\n * @param {${e}} bodyParams ${a}${i(r,"bodyParams")}`),f=(t,n="")=>{let o=n;for(const[i,p]of t.entries()){const t=e.description?"- "+e.description:"",n=a.description?"- "+a.description:"",m=Object.keys(r),u=i({IQueryParams:c,IBodyParams:s,pathParams:m});if(u){o="string"===typeof p?p:p({IQueryParams:c,IBodyParams:s,IPathParams:_,pathParams:m,queryDescription:t,bodyDescription:n,queryParamsInterface:e,pathParamsInterface:r,bodyParamsInterface:a});break}}return o};return`/** ${t?"\n * @deprecated":""}\n * @description ${n} ${f(u)} ${f(d)} ${f(l)} \n**/\n`};a.genJsDoc=c},"0529":function(e,a,r){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.tsTemplate=a.jsTemplate=void 0,a.jsTemplate="({\n url, // 完整路径 {string}\n summary, // 注释 {string}\n method, // 请求方法 {string}\n name, // api 函数名 {string}\n responseType, // 响应值种类,同 axios responseType {string}\n pathParams, // 路径参数 {Array<string>}\n IQueryParams, // 请求查询参数 ts 类型\n IBodyParams, // 请求体参数 ts 类型\n IPathParams // 请求路径参数 ts 类型\n}) => {\n /**\n * js 代码模版\n **/ \n \n // debugger\n // 可通过 debugger 调试模版\n\n // 处理路径参数 `/pet/{id}` => `/pet/${id}`\n const parsedUrl = url.replace(/{(.*?)}/g, '${$1}'); \n\n // 有 query 和 body 参数\n const multipleParamsCondition = ({ IQueryParams, IBodyParams }) =>\n IQueryParams && IBodyParams\n \n const firstParamCodeMap = new Map()\n // 只有 query 参数,可能有 path 参数\n .set(\n ({ IQueryParams, IBodyParams }) => IQueryParams && !IBodyParams,\n `params,`\n )\n // 只有 body 参数,可能有 path 参数\n .set(\n ({ IQueryParams, IBodyParams }) => IBodyParams && !IQueryParams,\n `params,`\n )\n // 有 query 和 body 参数,可能有 path 参数\n .set(\n multipleParamsCondition,\n () => `queryParams,`\n )\n // 没有 query body 参数,有 path 参数\n .set(\n ({ IQueryParams,pathParams,IBodyParams }) => !IBodyParams && !IQueryParams && pathParams.length,\n '_NOOP,'\n ) \n // 只有 path 参数\n .set(\n ({ pathParams }) => pathParams.length,\n ({ pathParams }) =>\n `{${pathParams.join(',')}},`\n )\n \n const secondParamCodeMap = new Map()\n // 有 path 参数\n .set(\n ({ pathParams }) => pathParams.length,\n ({ pathParams }) =>\n `{${pathParams.join(',')}},`\n )\n // 有 query 和 body 参数,有 path 参数\n .set(multipleParamsCondition, `_NOOP,`)\n \n const thirdParamCodeMap = new Map()\n // 有 query 和 body 参数,有 path 参数\n .set(\n multipleParamsCondition,\n `bodyParams,`\n )\n \n const paramCodeMap = new Map()\n .set(multipleParamsCondition, 'queryParams,')\n .set(({ IQueryParams }) => !!IQueryParams, 'params,')\n \n const dataCodeMap = new Map()\n .set(multipleParamsCondition, 'bodyParams,')\n .set(({ IBodyParams }) => !!IBodyParams, 'params,')\n\n const createParamCode = (conditionMap, defaultCode = '') => {\n let code = defaultCode\n for (const [condition, codeFunction] of conditionMap.entries()) {\n const res = condition({\n IQueryParams,\n IBodyParams,\n pathParams,\n })\n if (res) {\n code =\n typeof codeFunction === 'string'\n ? codeFunction\n : codeFunction({\n IQueryParams,\n IBodyParams,\n IPathParams,\n pathParams,\n })\n break\n }\n }\n return code\n }\n \n return `\n export const ${name} = (\n ${createParamCode(firstParamCodeMap) /* query | body | NOOP */}\n ${createParamCode(secondParamCodeMap) /* path | null */}\n ${createParamCode(thirdParamCodeMap) /* body | null */}\n) => axios.request({\n url: \\`${parsedUrl}\\`,\n method: \"${method}\",\n params: ${createParamCode(paramCodeMap, '{},')}\n data: ${createParamCode(dataCodeMap, '{},')}\n ${responseType === \"json\" ? \"\" : `responseType: ${responseType},`}\n })`;\n}\n",a.tsTemplate="({\n url, // 完整路径 {string}\n summary, // 注释 {string}\n method, // 请求方法 {string}\n name, // api 函数名 {string}\n responseType, // 响应值种类,同 axios responseType {string}\n pathParams, // 路径参数 {Array<string>}\n IQueryParams, // 请求查询参数 ts 类型\n IBodyParams, // 请求体参数 ts 类型\n IPathParams, // 请求路径参数 ts 类型\n IResponse, // 响应参数 ts 类型\n}) => {\n /**\n * ts 代码模版\n **/ \n \n // debugger\n // 可通过 debugger 调试模版\n \n // 处理路径参数 `/pet/{id}` => `/pet/${id}`\n const parsedUrl = url.replace(/{(.*?)}/g, '${$1}'); \n \n // 有 query 和 body 参数\n const multipleParamsCondition = ({ IQueryParams, IBodyParams }) =>\n IQueryParams && IBodyParams\n \n const firstParamCodeMap = new Map()\n // 只有 query 参数,可能有 path 参数\n .set(\n ({ IQueryParams, IBodyParams }) => IQueryParams && !IBodyParams,\n ({ IQueryParams }) => `params: ${IQueryParams},`\n )\n // 只有 body 参数,可能有 path 参数\n .set(\n ({ IQueryParams, IBodyParams }) => IBodyParams && !IQueryParams,\n ({ IBodyParams }) => `params: ${IBodyParams},`\n )\n // 有 query 和 body 参数,可能有 path 参数\n .set(\n multipleParamsCondition,\n ({ IQueryParams }) => `queryParams: ${IQueryParams},`\n )\n // 没有 query body 参数,有 path 参数\n .set(\n ({ IQueryParams,pathParams,IBodyParams }) => !IBodyParams && !IQueryParams && pathParams.length,\n '_NOOP: Record<string,never>,'\n )\n // 只有 path 参数\n .set(\n ({ pathParams }) => pathParams.length,\n ({ pathParams, IPathParams }) =>\n `{${pathParams.join(',')}}: ${IPathParams},`\n )\n \n const secondParamCodeMap = new Map()\n // 有 path 参数\n .set(\n ({ pathParams }) => pathParams.length,\n ({ pathParams, IPathParams }) =>\n `{${pathParams.join(',')}}: ${IPathParams},`\n )\n // 有 query 和 body 参数,有 path 参数\n .set(multipleParamsCondition, `_NOOP:{[key:string]: never},`)\n \n const thirdParamCodeMap = new Map()\n // 有 query 和 body 参数,有 path 参数\n .set(\n multipleParamsCondition,\n ({ IBodyParams }) => `bodyParams: ${IBodyParams},`\n )\n \n const paramCodeMap = new Map()\n .set(multipleParamsCondition, 'queryParams,')\n .set(({ IQueryParams }) => !!IQueryParams, 'params,')\n \n const dataCodeMap = new Map()\n .set(multipleParamsCondition, 'bodyParams,')\n .set(({ IBodyParams }) => !!IBodyParams, 'params,')\n\n const createParamCode = (conditionMap, defaultCode = '') => {\n let code = defaultCode\n for (const [condition, codeFunction] of conditionMap.entries()) {\n const res = condition({\n IQueryParams,\n IBodyParams,\n pathParams,\n })\n if (res) {\n code =\n typeof codeFunction === 'string'\n ? codeFunction\n : codeFunction({\n IQueryParams,\n IBodyParams,\n IPathParams,\n pathParams,\n })\n break\n }\n }\n return code\n }\n \n return `\n ${summary ? `/** ${summary} */` : \"\"}\n export const ${name} = (\n ${createParamCode(firstParamCodeMap) /* query | body | NOOP */}\n ${createParamCode(secondParamCodeMap) /* path | null */}\n ${createParamCode(thirdParamCodeMap) /* body | null */}\n) => axios.request<${IResponse || \"any\"}>({\n url: \\`${parsedUrl}\\`,\n method: \"${method}\",\n params: ${createParamCode(paramCodeMap, '{},')}\n data: ${createParamCode(dataCodeMap, '{},')}\n ${responseType === \"json\" ? \"\" : `responseType: ${responseType},`}\n })`;\n}\n"},"0646":function(e,a,r){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.isParsedSchemaObject=a.genPath=void 0;const t=r("e4be"),n=e=>Object.keys(e).some(a=>"object"!==typeof e[a]);a.isParsedSchemaObject=n;const s=e=>!e||(0,t.isEmpty)(e)?"":n(e)?e.formatType:`{\n ${Object.entries(e).map(([e,a])=>`\n "${e}"${a.required?"":"?"}: ${a.formatType}`).join(",")}\n }`,o=(e,a)=>{const{IPathParams:r,IBodyParams:t,IQueryParams:n}={IQueryParams:s(e.queryParamsInterface),IBodyParams:s(e.bodyParamsInterface),IPathParams:s(e.pathParamsInterface)};return a.templateFunction({name:e.name,method:e.method,url:e.url,responseType:e.responseInterface.isBinary?"blob":"json",deprecated:e.deprecated,summary:e.summary,IResponse:e.responseInterface.formatType,pathParams:Object.keys(e.pathParamsInterface),IQueryParams:n,IBodyParams:t,IPathParams:r}).trim()+"\n"};a.genPath=o},10:function(e,a){},11:function(e,a){},12:function(e,a){},13:function(e,a){},14:function(e,a){},15:function(e,a){},"1ea9":function(e,a,r){"use strict";r("638d");var t=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0}),a.SPECIAL_CHARACTERS_MAP_CLOSE=a.SPECIAL_CHARACTERS_MAP_OPEN=a.TYPE_MAP=a.traverseTree=a.schemaToTsType=a.isRef=a.extractInterfaceNameByRef=a.getRef=a.formatGenericInterface=a.formatCode=void 0;const n=t(r("24bc")),s=t(r("5b18")),o=t(r("f9c0")),i=r("8fe6");Object.defineProperty(a,"formatGenericInterface",{enumerable:!0,get:function(){return i.formatGenericInterface}});const c=r("2fb5"),_={"«":"<","[":"<","{":"<","<":"<"};a.SPECIAL_CHARACTERS_MAP_OPEN=_;const p={"»":">","]":">","}":">",">":">"};a.SPECIAL_CHARACTERS_MAP_CLOSE=p;const m={boolean:"boolean",bool:"boolean",Boolean:"boolean",long:"number",double:"number",Int64:"number",integer:"number",number:"number",string:"string",bigdecimal:"string",LocalDate:"string",file:"Blob",formData:"FormData",Void:"void",object:"Record<string | number | symbol, any>",array:"Array<any>"};a.TYPE_MAP=m;const u=(e,a,r="generics")=>{const t=e;let n=0;const s=(e,a,r="generics")=>{a(e,n,t),n++,e[r]&&e[r].forEach(e=>{s(e,a,r)})};s(e,a,r)};a.traverseTree=u;const d=e=>(0,c.normalizeDefinitionName)(e.slice(e.lastIndexOf("/")+1));a.extractInterfaceNameByRef=d;const l=e=>{const a=d(e);return(0,i.formatGenericInterface)(a)};a.getRef=l;const f=e=>e&&!!e.$ref;a.isRef=f;const y=e=>{var a;if(!e)return{type:"any",ref:"",formatType:"any",isBinary:!1,required:!1,description:""};const r=(e,a=!0)=>e.$ref?a?l(e.$ref):d(e.$ref):e.type?Array.isArray(e.type)?JSON.stringify(e.type):"array"===e.type&&e.items?e.items.enum?`(${r(e.items,a)})[]`:r(e.items,a)+"[]":"object"===e.type?e.properties?`{${Object.entries(e.properties).reduce((e,t)=>{const[n,s]=t;return`${e}${n}: ${r(s,a)};`},"")}}`:"Record<string | number | symbol, any>":e.enum?e.enum.map(e=>`"${e}"`).join(" | "):a?m[e.type]:e.type:"any";let t="";return"array"===e.type&&(null===(a=e.items)||void 0===a?void 0:a.$ref)?t=d(e.items.$ref):e.$ref&&(t=d(e.$ref)),{type:r(e,!1),formatType:r(e),ref:t,isBinary:"file"===e.type,required:!1,description:""}};a.schemaToTsType=y;const P=e=>a=>n.default.format(a,{plugins:[o.default,s.default],printWidth:120,tabWidth:2,parser:"ts"===e?"typescript":"babel",trailingComma:"none"});a.formatCode=P},"2fb5":function(module,exports,__webpack_require__){"use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.createDefaultHeadCode=exports.mergeDefaultParams=exports.transformSource=exports.normalizeSource=exports.normalizeDefinitions=exports.normalizeDefinitionName=exports.createTagsByPaths=void 0;const template_1=__webpack_require__("0529"),lodash_1=__webpack_require__("e4be"),api_spec_converter_1=__importDefault(__webpack_require__("17c9")),createTagsByPaths=e=>(0,lodash_1.sortBy)((0,lodash_1.uniq)((0,lodash_1.flattenDeep)(Object.values(e).map(e=>Object.values(e).map(e=>e.tags))).filter(Boolean))).map(e=>({name:e}));exports.createTagsByPaths=createTagsByPaths;const normalizeDefinitionName=e=>(0,lodash_1.upperFirst)(e.replace(/\.(\w)/g,(e,a)=>a.toUpperCase()));exports.normalizeDefinitionName=normalizeDefinitionName;const normalizeDefinitions=e=>(0,lodash_1.mapKeys)(e,(e,a)=>(0,exports.normalizeDefinitionName)(a));exports.normalizeDefinitions=normalizeDefinitions;const normalizeSource=e=>{var a;return{...e,tags:null!==(a=e.tags)&&void 0!==a?a:(0,exports.createTagsByPaths)(e.paths),definitions:(0,exports.normalizeDefinitions)(e.definitions)}};exports.normalizeSource=normalizeSource;const transformSource=async e=>e.openapi?(await api_spec_converter_1.default.convert({from:"openapi_3",to:"swagger_2",source:e})).spec:e;exports.transformSource=transformSource;const mergeDefaultParams=async config=>{const normalizedSource=(0,exports.normalizeSource)(await(0,exports.transformSource)(config.source));return{jsDoc:!0,interface:!1,typedef:!1,recursive:!1,lang:"js",templateFunction:"ts"===config.lang?eval(template_1.tsTemplate):eval(template_1.jsTemplate),...config,source:normalizedSource}};exports.mergeDefaultParams=mergeDefaultParams;const createDefaultHeadCode=({url:e,description:a,title:r,version:t,fileDescription:n})=>`/* eslint-disable */\n// @ts-nocheck\n\n/**\n * generated by free-swagger-core\n * @see https://www.npmjs.com/package/free-swagger\n${r?` * @title ${r}\n`:""}${a?` * @description ${a}\n`:""}${n?` * @fileDescription ${n}\n`:""}${e?` * @host ${String(e)}\n`:""}${t?` * @version ${t}\n`:""}}\n**/`;exports.createDefaultHeadCode=createDefaultHeadCode},"3b29":function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,"state",(function(){return state})),__webpack_require__.d(__webpack_exports__,"handleCopyType",(function(){return handleCopyType})),__webpack_require__.d(__webpack_exports__,"handleCopyApi",(function(){return handleCopyApi})),__webpack_require__.d(__webpack_exports__,"handleCopyPath",(function(){return handleCopyPath})),__webpack_require__.d(__webpack_exports__,"handleCopyFake",(function(){return handleCopyFake})),__webpack_require__.d(__webpack_exports__,"handleCopyInterface",(function(){return handleCopyInterface})),__webpack_require__.d(__webpack_exports__,"handleCopyJsDocTypeDef",(function(){return handleCopyJsDocTypeDef}));var element_ui_lib_theme_chalk_message_css__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("2762"),element_ui_lib_theme_chalk_message_css__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(element_ui_lib_theme_chalk_message_css__WEBPACK_IMPORTED_MODULE_0__),element_ui_lib_theme_chalk_base_css__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("71af"),element_ui_lib_theme_chalk_base_css__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(element_ui_lib_theme_chalk_base_css__WEBPACK_IMPORTED_MODULE_1__),element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("b93b"),element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2__),vue__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("435b"),_utils_dom_utils__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("4f0c"),lodash_es__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("ef97"),lodash_es__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("a9eb"),lodash_es__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("0006"),free_swagger_core__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("3e47"),free_swagger_core__WEBPACK_IMPORTED_MODULE_8___default=__webpack_require__.n(free_swagger_core__WEBPACK_IMPORTED_MODULE_8__),_utils__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__("ed08"),json_schema_faker__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__("c61b"),json_schema_faker__WEBPACK_IMPORTED_MODULE_10___default=__webpack_require__.n(json_schema_faker__WEBPACK_IMPORTED_MODULE_10__);const STORAGE_KEY="SWAGGER-USERSCRIPT",SUCCESS_CODE="200",state=new vue__WEBPACK_IMPORTED_MODULE_3__["default"]({data(){return{url:"",dialog:!1,key:"",currentApi:{key:"",path:"",method:"",collection:{controller:{},operationId:""}},storage:{jsTemplate:free_swagger_core__WEBPACK_IMPORTED_MODULE_8__["jsTemplate"],tsTemplate:free_swagger_core__WEBPACK_IMPORTED_MODULE_8__["tsTemplate"],jsDoc:!0,interface:!1,typedef:!1,recursive:!1,exportLanguage:"js",currentLanguage:"js"},isNewUi:null,swagger:null,parsedSwagger:null}},computed:{options(){if(!this.swagger)return[];const e=[],a=this.swagger.paths;return Object.keys(a).forEach(r=>{Object.keys(a[r]).forEach(t=>{const{tags:n,summary:s,description:o,operationId:i}=a[r][t];e.push({path:r,method:t,key:`${t} ${r} ${s}`,tag:n[n.length-1],collection:{controller:n[n.length-1],summary:s,description:o,operationId:i}})})}),Object(lodash_es__WEBPACK_IMPORTED_MODULE_5__["a"])(Object.values(Object(lodash_es__WEBPACK_IMPORTED_MODULE_6__["a"])(e,e=>e.tag)))}},watch:{storage:{handler(e){localStorage.setItem(STORAGE_KEY,JSON.stringify(e))},deep:!0}},created(){const e=localStorage.getItem(STORAGE_KEY)?JSON.parse(localStorage.getItem(STORAGE_KEY)):{};this.storage=Object(lodash_es__WEBPACK_IMPORTED_MODULE_7__["a"])(e,this.storage,(e,a)=>{if(""===e)return a}),Object(_utils__WEBPACK_IMPORTED_MODULE_9__["a"])({cb:()=>{window.SwaggerBootstrapUi?this.isNewUi=!0:window.ui&&(this.isNewUi=!1)},endCondition:()=>null!=this.isNewUi})}}),handleCopyType=async(path=state.currentApi.path,method=state.currentApi.method,source=state.swagger)=>{try{if(!path)throw new Error("请选择 path");const storage=state.storage,isJS="js"===storage.currentLanguage,isTS="ts"===storage.currentLanguage,codeFragment=await free_swagger_core__WEBPACK_IMPORTED_MODULE_8___default()({source:source,lang:storage.currentLanguage,jsDoc:storage.jsDoc,typedef:isJS,interface:isTS,recursive:storage.recursive,templateFunction:eval(isJS?storage.jsTemplate:storage.tsTemplate)},path,method);if(!codeFragment)return void element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default.a.warning("没有可生成的类型代码");Object(_utils_dom_utils__WEBPACK_IMPORTED_MODULE_4__["a"])(codeFragment)}catch(e){element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default.a.error("复制失败:请检查选择的 api 或模版"),console.log(e)}},handleCopyApi=async(path=state.currentApi.path,method=state.currentApi.method,source=state.swagger)=>{try{if(!path)throw new Error;const storage=state.storage,codeFragment=await free_swagger_core__WEBPACK_IMPORTED_MODULE_8___default()({source:source,lang:storage.currentLanguage,jsDoc:storage.jsDoc,templateFunction:eval("js"===storage.currentLanguage?storage.jsTemplate:storage.tsTemplate)},path,method);Object(_utils_dom_utils__WEBPACK_IMPORTED_MODULE_4__["a"])(codeFragment)}catch(e){element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default.a.error("复制失败:请检查选择的 api 或模版"),console.log(e)}},handleCopyPath=(e=state.currentApi.path,a=state.currentApi.method)=>{try{const r=e.replace(/{(.*?)}/g,":$1");Object(_utils_dom_utils__WEBPACK_IMPORTED_MODULE_4__["a"])(`"${r}" /* ${a.toUpperCase()} */`)}catch(r){element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default.a.error("复制失败:请检查选择的 api 或模版"),console.log(r)}},handleCopyFake=(e=state.currentApi.path,a=state.currentApi.method,r=state.parsedSwagger)=>{Object(json_schema_faker__WEBPACK_IMPORTED_MODULE_10__["option"])({useExamplesValue:!0,useDefaultValue:!0,alwaysFakeOptionals:!0,refDepthMax:2,maxItems:1,failOnInvalidTypes:!1});try{var t,n;let s;const o=null===(t=r.paths[e][a].responses)||void 0===t||null===(n=t[SUCCESS_CODE])||void 0===n?void 0:n.schema;o?(s=Object(json_schema_faker__WEBPACK_IMPORTED_MODULE_10__["generate"])(o),s.code&&(s.code=SUCCESS_CODE)):s={code:SUCCESS_CODE,msg:"ok",data:{}},Object(_utils_dom_utils__WEBPACK_IMPORTED_MODULE_4__["a"])(s)}catch(s){console.log(s),element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default.a.error("复制失败:请检查选择的 api 或模版")}},handleCopyInterface=async(e=state.swagger,a=state.url,r)=>{try{const{code:t}=await Object(free_swagger_core__WEBPACK_IMPORTED_MODULE_8__["compileInterfaces"])({source:e,interfaceName:r,url:a});Object(_utils_dom_utils__WEBPACK_IMPORTED_MODULE_4__["a"])(t)}catch(t){console.log(t),element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default.a.error("复制失败:请检查选择的 api")}},handleCopyJsDocTypeDef=async(e=state.swagger,a=state.url,r)=>{try{const{code:t}=await Object(free_swagger_core__WEBPACK_IMPORTED_MODULE_8__["compileJsDocTypedefs"])({source:e,interfaceName:r,url:a});Object(_utils_dom_utils__WEBPACK_IMPORTED_MODULE_4__["a"])(t)}catch(t){console.log(t),element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default.a.error("复制失败:请检查选择的 api")}}},"3e47":function(e,a,r){"use strict";var t=this&&this.__createBinding||(Object.create?function(e,a,r,t){void 0===t&&(t=r);var n=Object.getOwnPropertyDescriptor(a,r);n&&!("get"in n?!a.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return a[r]}}),Object.defineProperty(e,t,n)}:function(e,a,r,t){void 0===t&&(t=r),e[t]=a[r]}),n=this&&this.__exportStar||function(e,a){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(a,r)||t(a,e,r)};Object.defineProperty(a,"__esModule",{value:!0});const s=r("2fb5"),o=r("caee"),i=async(e,a,r)=>{const t=!a||!r;if(t)return"";const n=await(0,s.mergeDefaultParams)(e),{jsDocCode:i,code:c,queryInterfaceCode:_,bodyInterfaceCode:p,pathInterfaceCode:m,responseInterfaceCode:u,queryJsDocCode:d,bodyJsDocCode:l,pathJsDocCode:f}=await(0,o.compilePath)(n,a,r);return e.typedef&&"js"===e.lang?[d,l,f].filter(Boolean).join("\n"):e.interface&&"ts"===e.lang?[_,p,m,u].filter(Boolean).join("\n"):e.jsDoc&&"js"===e.lang?i+c:c};a.default=i,n(r("0529"),a),n(r("2fb5"),a),n(r("1ea9"),a),n(r("0646"),a),n(r("017e"),a),n(r("d657"),a),n(r("8fe6"),a),n(r("5dbb"),a),n(r("93ac"),a),n(r("caee"),a)},"473c":function(e,a,r){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.getResponseType=void 0;const t=r("1ea9"),n=200,s=e=>{if(!(null===e||void 0===e?void 0:e[n]))return{responseInterface:{ref:"",type:"",formatType:"",required:!1,description:"",isBinary:!1}};const{schema:a}=e[n];return{responseInterface:(0,t.schemaToTsType)(a)}};a.getResponseType=s},5:function(e,a){},"5dbb":function(e,a,r){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.compileInterfaces=void 0;const t=r("7550"),n=e=>(0,t.compileTypes)({...e,type:"interface"});a.compileInterfaces=n},6:function(e,a){},"6e17":function(e,a,r){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.genInterface=void 0;const t=({formatName:e,props:a,code:r,description:t})=>r||`${t?`/** ${t} */\n`:""}export interface ${e} {\n ${a&&Object.entries(a).map(([e,a])=>`${a.description?`\n/** ${a.description} */`:""}\n '${e}' ${a.required?"":"?"}: ${a.formatType}\n `)}\n }\n`;a.genInterface=t},7:function(e,a){},7550:function(e,a,r){"use strict";r("638d");var t=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0}),a.compileTypes=void 0;const n=r("8fe6"),s=r("1ea9"),o=r("6e17"),i=r("2fb5"),c=r("3e47"),_=t(r("0875")),p="undefined"===typeof window,m=({source:e,interfaceName:a,contextMap:r,type:t="interface",recursive:i,imports:u})=>{if(!e.definitions[a])return{code:"",imports:u};const d=(0,n.parseInterface)(e.definitions,a,t);let l="";try{return(0,s.traverseTree)(d,a=>{r.has(a.name)||(r.set(a.name,a),a.code?l+="interface"===t?(0,s.formatCode)("ts")((0,o.genInterface)(a))+"\n":(0,c.genJsDocTypeDef)(a)+"\n":!s.TYPE_MAP[a.name]&&a.props&&(i&&(l+=Object.values(a.props).filter(e=>e.ref).reduce((a,n)=>{const{code:s}=m({source:e,interfaceName:n.ref,contextMap:r,type:t,recursive:i,imports:u});return s?a+s+"\n":a},"")),l+="interface"===t?(0,s.formatCode)("ts")((0,o.genInterface)(a))+"\n":(0,c.genJsDocTypeDef)(a)+"\n"))}),{code:l?l.trim()+"\n":l,imports:(0,n.uniqInterfaceNameImports)(u)}}catch(f){const e=`${"interface"===t?"interfaceName":"jsDoc"}: ${a} 生成失败,检查是否符合 swagger 规范`;return p?console.log(_.default.yellow(e)):(console.warn(e),console.warn(f)),{code:`// ${"interface"===t?"interfaceName":"jsDoc"}: ${a} 生成失败,检查是否符合 swagger 规范\n \n`,imports:(0,n.uniqInterfaceNameImports)(u)}}},u=async({source:e,interfaceName:a,type:r="interface",contextMap:t,recursive:o,url:c})=>{const _=(0,i.normalizeSource)(await(0,i.transformSource)(e)),p=[];if(!_.definitions)return{code:"",imports:p};if(a){const e=null!==t&&void 0!==t?t:new Map,n=(0,i.normalizeDefinitionName)(a);return p.push(n),m({recursive:o,source:_,interfaceName:n,imports:p,type:r,contextMap:e})}{const a=new Map,t=Object.keys(_.definitions).reduce((e,t)=>{p.push(t);const{code:n}=m({recursive:o,source:_,interfaceName:t,contextMap:a,imports:p,type:r});return n?e+n+"\n":e},""),u=`${(0,i.createDefaultHeadCode)({url:c,description:e.info.description,title:e.info.title,version:e.info.version})}\n\n${t}`,d="interface"===r?(0,s.formatCode)("ts")(u):u;return{code:d.trim(),imports:(0,n.uniqInterfaceNameImports)(p)}}};a.compileTypes=u},8:function(e,a){},"8fe6":function(e,a,r){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.uniqInterfaceNameImports=a.formatGenericInterface=a.flatInterfaceName=a.parseInterface=a.parseInterfaceName=a.buildInInterfaces=void 0;const t=r("1ea9"),n=r("e4be"),s=/^\w*$/,o=["T","U","V"],i={Map:{name:"Map",formatName:"SwaggerMap",code:"\n export type SwaggerMap<T extends string | symbol | number, U> = Record<T, U>\n ",jsDocCode:"\n/**\n * @typedef {object} SwaggerMap\n **/"},List:{name:"List",formatName:"SwaggerList",code:"\n export type SwaggerList<T> = Array<T>\n ",jsDocCode:"\n/**\n * @typedef {Array} SwaggerList\n **/"}};a.buildInInterfaces=i;const c=e=>{const a=[];let r="";const n=e=>Object.keys(t.SPECIAL_CHARACTERS_MAP_OPEN).includes(e),s=e=>Object.keys(t.SPECIAL_CHARACTERS_MAP_CLOSE).includes(e);for(const t of e.split(""))if(n(t))a.push(r),r="",a.push(t);else if(","===t)r&&(a.push(r),r="");else if(s(t)){let e;r&&(a.push(r),r="");const t=[];while(!n(e)&&a.length>0)e=a.pop(),"string"!==typeof e||n(e)?n(e)||t.unshift(e):t.unshift({name:e,formatName:e});if(a.length){const e=a.pop();"string"===typeof e&&a.push({name:e,formatName:e,generics:t})}if(1===a.length)return a[0]}else r+=t;return{name:r,formatName:r}};a.parseInterfaceName=c;const _=e=>e.generics?`${e.formatName}<${e.generics.map(e=>_(e)).join(",")}>`:e.formatName,p=e=>{const a=[];return(0,t.traverseTree)(c(e),e=>{a.push(e.name)}),a};a.flatInterfaceName=p;const m=e=>(0,n.uniq)((0,n.flatten)(e.map(e=>p(e).filter(e=>!Object.values(t.TYPE_MAP).includes(e)).filter(e=>s.test(e)).map(e=>i[e]?i[e].formatName:e))));a.uniqInterfaceNameImports=m;const u=(e,a)=>Object.keys(e).filter(e=>e.startsWith(a)).some(e=>{const[r]=p(e);return a===r}),d=e=>i[e]?i[e].formatName:t.TYPE_MAP[e]?t.TYPE_MAP[e]:e,l=e=>{const a=c(e);return(0,t.traverseTree)(a,e=>{e.formatName=d(e.name)}),_(a)};a.formatGenericInterface=l;const f=(e,a)=>{const r={};return Object.keys(e).forEach(n=>{const s=e[n],{type:o,formatType:i,ref:c}=(0,t.schemaToTsType)(s);r[n]={type:o,formatType:i,ref:c,required:(null===a||void 0===a?void 0:a.includes(n))||!1,description:s.description||""}}),r},y=(e,a)=>{var r;const n=[],s=Object.keys(e),o=e=>t.TYPE_MAP[e];return null===(r=a.generics)||void 0===r||r.forEach(a=>{const r=_(a);if(o(a.name)){const r=s.findIndex(r=>e[r].type===a.name);if(r<0)return;n.push(s[r])}else if("List"===a.name){const r=s.findIndex(r=>{var n,s,o,i;return null!==(i="array"===e[r].type&&(0,t.extractInterfaceNameByRef)(null!==(s=null===(n=e[r].items)||void 0===n?void 0:n.$ref)&&void 0!==s?s:"")===(null===(o=a.generics)||void 0===o?void 0:o[0].name))&&void 0!==i?i:""});if(r<0)return;n.push(s[r])}else{const a=s.findIndex(a=>{var n,s,o;return(0,t.getRef)(null!==(n=e[a].$ref)&&void 0!==n?n:"")===r||(0,t.getRef)(null!==(o=null===(s=e[a].items)||void 0===s?void 0:s.$ref)&&void 0!==o?o:"")===r});if(a<0)return;n.push(s[a])}}),n},P=(e,a,r)=>{const t=(0,n.cloneDeep)(f(e,r));return a.forEach((a,n)=>{t[a]={type:e[a].type,formatType:"array"===e[a].type?o[n]+"[]":o[n],ref:t[a].ref,required:(null===r||void 0===r?void 0:r.includes(a))||!1,description:e[a].description||""}}),t},h=(e,a,r)=>{var n,s,_;const p=c(a),{properties:m,allOf:l,required:f,description:h}=e[a];p.description=h;const g=i[p.name];if(g)return{code:"interface"===r?g.code:g.jsDocCode,...p};const I=null!==(s=null===(n=null===l||void 0===l?void 0:l.find(e=>e.type))||void 0===n?void 0:n.properties)&&void 0!==s?s:m;return I?((null===(_=p.generics)||void 0===_?void 0:_.length)?(0,t.traverseTree)(p,(t,n)=>{var s,c;const _=i[t.name];if(_)t.code="interface"===r?_.code:_.jsDocCode;else if(e[t.name]){const{properties:r,required:s}=0===n&&e[a]?e[a]:e[t.name];if(!r)return;t.props=P(r,y(r,p),s)}else u(e,t.name)&&(t.props=P(I,y(I,p),f));t.formatName=`${d(t.name)}${(null===(s=t.generics)||void 0===s?void 0:s.length)?`<${null===(c=t.generics)||void 0===c?void 0:c.map((e,a)=>o[a]).join(",")}>`:""}`}):p.props=P(I,[],f),p):"interface"===r?{code:`${h?`/** ${h} */\n`:""}export type ${a} = ${(0,t.schemaToTsType)(e[a]).formatType}`,...p}:{code:`/**\n * @typedef {(${(0,t.schemaToTsType)(e[a]).formatType})} ${a}${h?" - "+h:""}\n**/`,...p}};a.parseInterface=h},9:function(e,a){},"93ac":function(e,a,r){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.compileJsDocTypedefs=void 0;const t=r("7550"),n=e=>(0,t.compileTypes)({...e,type:"jsDoc"});a.compileJsDocTypedefs=n},"9c0e":function(e,a,r){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.getRequestType=void 0;const t=r("1ea9"),n=e=>{let a=e.type,r="",n=!1,s="";if(e.schema||e.items){const o=(0,t.schemaToTsType)(e.schema||e.items);a=o.type,s=o.ref,r=o.formatType,n=!!o.isBinary}else r=t.TYPE_MAP[e.type];return{type:a,ref:s,formatType:r,isBinary:n,description:e.description||"",required:e.required||!1}},s=e=>{if(!e||e.some(t.isRef))return{pathParamsInterface:{},queryParamsInterface:{},bodyParamsInterface:{}};const a={},r={};let s={};return e.forEach(e=>{switch(e.in){case"path":a[e.name]=n(e);break;case"query":r[e.name]=n(e);break;case"formData":s={type:e.type,formatType:"FormData",ref:"",isBinary:!0,description:"",required:!0};break;case"body":s=n(e);break;default:return}}),{pathParamsInterface:a,bodyParamsInterface:s,queryParamsInterface:r}};a.getRequestType=s},caee:function(e,a,r){"use strict";var t=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0}),a.compilePath=a.createDefaultApiName=void 0;const n=r("3e47"),s=r("e4be"),o=r("93ac"),i=r("5dbb"),c=t(r("692d")),_=(e,a)=>{var r;return`${(0,c.default)(null!==(r=(0,s.last)(e.split("/")))&&void 0!==r?r:"")}By${(0,s.capitalize)(a)}`};a.createDefaultApiName=_;const p=async(e,r,t)=>{var c;const{source:_}=e,{definitions:p,paths:m,basePath:u=""}=_,d=m[r][t];if(!d)throw new Error("未找到目标");const l=null!==(c=d.operationId)&&void 0!==c?c:(0,a.createDefaultApiName)(r,t),f=(0,n.parsePath)(l,`${u}${r}`,t,m[r][t]),y=(0,n.genPath)(f,e),P=(0,n.genJsDoc)(f),h=(0,s.isString)(f.queryParamsInterface.ref)?f.queryParamsInterface.ref:"",g=(0,s.isString)(f.bodyParamsInterface.ref)?f.bodyParamsInterface.ref:"",I=(0,s.isString)(f.pathParamsInterface.ref)?f.pathParamsInterface.ref:"",b=(0,s.isString)(f.responseInterface.ref)?f.responseInterface.ref:"",E=new Map,O=[],D=async a=>{if(p[a]){const{code:t,imports:n}=await(0,i.compileInterfaces)({source:_,url:r,interfaceName:a,contextMap:E,recursive:e.recursive});return O.push(...n),t}return""},M=await D(h),C=await D(I),T=await D(g),w=await D(b),$=new Map,v=p[h]?(await(0,o.compileJsDocTypedefs)({source:_,interfaceName:h,contextMap:$,recursive:e.recursive})).code:"",j=p[g]?(await(0,o.compileJsDocTypedefs)({source:_,interfaceName:g,contextMap:$,recursive:e.recursive})).code:"",B=p[I]?(await(0,o.compileJsDocTypedefs)({source:_,interfaceName:I,contextMap:$,recursive:e.recursive})).code:"";return{code:(0,n.formatCode)(e.lang)(y),imports:(0,s.uniq)(O),jsDocCode:P,parsedApi:f,queryInterfaceCode:M,bodyInterfaceCode:T,pathInterfaceCode:C,responseInterfaceCode:w,queryJsDocCode:v,bodyJsDocCode:j,pathJsDocCode:B}};a.compilePath=p},d657:function(e,a,r){"use strict";Object.defineProperty(a,"__esModule",{value:!0}),a.parsePath=void 0;const t=r("473c"),n=r("9c0e"),s=(e,a,r,{parameters:s,summary:o="",responses:i,deprecated:c=!1})=>{const{bodyParamsInterface:_,queryParamsInterface:p,pathParamsInterface:m}=(0,n.getRequestType)(s),{responseInterface:u}=(0,t.getResponseType)(i);return{summary:o,deprecated:c,url:a,name:e,method:r,bodyParamsInterface:_,queryParamsInterface:p,pathParamsInterface:m,responseInterface:u}};a.parsePath=s}}]);