anncic-api 3.7.18 → 3.7.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1,219 @@
1
- function a9_0x1a05(){const _0x4a9fce=['Boolean','routerOptions','min','INJECT_CUSTOM_PARAM','concat','(((.+)+)+)+$','Object','path','@anncic-api/validator','header','routerName','flags.label','HEADERS','properties','QUERY','propertyData','filter','intercept','getClassMetadata','648732bLLlar','FILESSTREAM','args','method','apply','BODY','filepath','166325ptAgLe','children','@midwayjs/core','ACTION_ROUTE_KEY','allow','constructor','iterator','RouteParamTypes','prefix','lodash','rules','4BLpJky','route','getMethodParamTypes','PARAM','flags.presence','File','parameterIndex','find','object','WEB_ROUTER_PARAM_KEY','describe','required','metadata','文件上传-','join','response','string','substring','static/apitest','486108ycfhyV','limit','title','1295400BBPOVZ','default','boolean','get','pprefix','items','startsWith','request','keys','split','key','body','query','RULES_KEY','../types/action','defineProperty','getClassExtendedMetadata','errors','file','toString','number','format','indexOf','3RStwJs','function','max','endsWith','884255GdTxaq','routes','summary','push','type','/static/apitest','isArray','__esModule','replace','description','1183902ueANCV','search','length','ACTION_KEY','module','373732ZQcJht','listModule'];a9_0x1a05=function(){return _0x4a9fce;};return a9_0x1a05();}const a9_0x3c2853=a9_0x7706;(function(_0x521623,_0x47a762){const _0x3c21cb=a9_0x7706,_0x5ee46b=_0x521623();while(!![]){try{const _0x601dd0=parseInt(_0x3c21cb(0x205))/0x1+-parseInt(_0x3c21cb(0x1e9))/0x2*(-parseInt(_0x3c21cb(0x23d))/0x3)+parseInt(_0x3c21cb(0x210))/0x4*(-parseInt(_0x3c21cb(0x241))/0x5)+-parseInt(_0x3c21cb(0x1e4))/0x6+-parseInt(_0x3c21cb(0x1fe))/0x7+parseInt(_0x3c21cb(0x226))/0x8+parseInt(_0x3c21cb(0x223))/0x9;if(_0x601dd0===_0x47a762)break;else _0x5ee46b['push'](_0x5ee46b['shift']());}catch(_0x36499e){_0x5ee46b['push'](_0x5ee46b['shift']());}}}(a9_0x1a05,0x18f8c));const a9_0xe5c171=(function(){let _0x275c0c=!![];return function(_0x351d2e,_0x94904f){const _0x5eca50=_0x275c0c?function(){const _0x3ba585=a9_0x7706;if(_0x94904f){const _0x171c0f=_0x94904f[_0x3ba585(0x202)](_0x351d2e,arguments);return _0x94904f=null,_0x171c0f;}}:function(){};return _0x275c0c=![],_0x5eca50;};}()),a9_0xd5b4c7=a9_0xe5c171(this,function(){const _0x3d2bfb=a9_0x7706;return a9_0xd5b4c7['toString']()['search']('(((.+)+)+)+$')[_0x3d2bfb(0x239)]()[_0x3d2bfb(0x20a)](a9_0xd5b4c7)[_0x3d2bfb(0x1e5)](_0x3d2bfb(0x1f0));});a9_0xd5b4c7();'use strict';Object[a9_0x3c2853(0x235)](exports,a9_0x3c2853(0x1e1),{'value':!![]}),exports['getRoutes']=getRoutes;const lodash_1=require(a9_0x3c2853(0x20e)),validator_1=require(a9_0x3c2853(0x1f3)),core_1=require(a9_0x3c2853(0x207)),core_2=require(a9_0x3c2853(0x207)),core_3=require(a9_0x3c2853(0x207)),action_1=require(a9_0x3c2853(0x234));function a9_0x7706(_0x5af16d,_0x458f74){const _0xd7af54=a9_0x1a05();return a9_0x7706=function(_0xd5b4c7,_0xe5c171){_0xd5b4c7=_0xd5b4c7-0x1e1;let _0x1a0559=_0xd7af54[_0xd5b4c7];return _0x1a0559;},a9_0x7706(_0x5af16d,_0x458f74);}function getRoutes(_0x51513f={'prefix':'/','module':![]}){const _0x5eab84=a9_0x3c2853;var _0x3d9092,_0xf990b6;const _0x3afeb8=(0x0,core_3[_0x5eab84(0x1ea)])(action_1[_0x5eab84(0x1e7)]),_0x1381af={},_0x409bd3=Array[_0x5eab84(0x247)](_0x51513f[_0x5eab84(0x1fb)]||[])?_0x51513f[_0x5eab84(0x1fb)]||[]:[_0x51513f['filter']];_0x58d65a:for(const _0x53589a of _0x3afeb8){let _0x452411=(0x0,core_3[_0x5eab84(0x1fd)])(action_1[_0x5eab84(0x1e7)],_0x53589a),_0x1bfede=(0x0,core_3[_0x5eab84(0x1fd)])(action_1[_0x5eab84(0x208)],_0x53589a);if(_0x452411&&_0x1bfede){let _0x395108=_0x452411[_0x5eab84(0x20d)],_0x1d0653={};if(_0x51513f['module']&&(0x0,lodash_1[_0x5eab84(0x229)])(_0x452411,_0x5eab84(0x1e8),![])!=_0x51513f[_0x5eab84(0x1e8)])continue _0x58d65a;else{if(_0x51513f[_0x5eab84(0x1e8)]===![]&&!!(0x0,lodash_1['get'])(_0x452411,_0x5eab84(0x1e8),null))continue _0x58d65a;}if(_0x51513f['prefix']&&!_0x395108[_0x5eab84(0x22c)](_0x51513f['prefix']))continue _0x58d65a;_0x395108!=='/'?(_0x1d0653[_0x5eab84(0x243)]=(_0x452411===null||_0x452411===void 0x0?void 0x0:_0x452411['routerOptions']['tagName'])||(/^\//['test'](_0x395108)?_0x395108[_0x5eab84(0x22f)]('/')[0x1]:_0x395108),_0x1d0653[_0x5eab84(0x1e3)]=(_0x452411===null||_0x452411===void 0x0?void 0x0:_0x452411[_0x5eab84(0x1ec)]['description'])||_0x1d0653['summary'],_0x1d0653[_0x5eab84(0x242)]=[]):(_0x1d0653[_0x5eab84(0x243)]=(_0x452411===null||_0x452411===void 0x0?void 0x0:_0x452411[_0x5eab84(0x1ec)]['tagName'])||_0x5eab84(0x227),_0x1d0653[_0x5eab84(0x1e3)]=(_0x452411===null||_0x452411===void 0x0?void 0x0:_0x452411['routerOptions']['description'])||'',_0x1d0653[_0x5eab84(0x242)]=[]);_0x51513f[_0x5eab84(0x204)]&&(_0x1d0653['filepath']=_0x452411===null||_0x452411===void 0x0?void 0x0:_0x452411[_0x5eab84(0x204)]);(_0x452411===null||_0x452411===void 0x0?void 0x0:_0x452411['pprefix'])&&(_0x1d0653[_0x5eab84(0x20d)]=_0x452411[_0x5eab84(0x22a)]);(_0x452411===null||_0x452411===void 0x0?void 0x0:_0x452411['module'])&&(_0x1d0653['module']=_0x452411[_0x5eab84(0x1e8)]);let _0x1e1ab2=(0x0,core_3[_0x5eab84(0x1fd)])(core_2[_0x5eab84(0x1ee)],_0x53589a)||{};if(typeof _0x1bfede[Symbol[_0x5eab84(0x20b)]]==='function')for(let _0x19a2b4 of _0x1bfede){if((_0x51513f===null||_0x51513f===void 0x0?void 0x0:_0x51513f[_0x5eab84(0x1fc)])&&!(_0x19a2b4===null||_0x19a2b4===void 0x0?void 0x0:_0x19a2b4['intercept']))continue;let _0x52327b={};_0x52327b[_0x5eab84(0x201)]=_0x19a2b4['requestMethod'],_0x52327b[_0x5eab84(0x211)]=(_0x395108+_0x19a2b4[_0x5eab84(0x1f2)])[_0x5eab84(0x1e2)](/\/{2,}/g,'/'),_0x52327b[_0x5eab84(0x243)]=(_0x19a2b4===null||_0x19a2b4===void 0x0?void 0x0:_0x19a2b4[_0x5eab84(0x1f5)])||_0x1d0653[_0x5eab84(0x243)]||_0x5eab84(0x227),_0x52327b[_0x5eab84(0x1e3)]=(_0x19a2b4===null||_0x19a2b4===void 0x0?void 0x0:_0x19a2b4[_0x5eab84(0x1e3)])||'',_0x52327b['request']=[],_0x52327b[_0x5eab84(0x21f)]=getMethodResponse(_0x53589a,_0x19a2b4[_0x5eab84(0x201)]);_0x52327b[_0x5eab84(0x211)][_0x5eab84(0x240)]('/')&&(_0x52327b['route']=_0x52327b[_0x5eab84(0x211)][_0x5eab84(0x221)](0x0,_0x52327b[_0x5eab84(0x211)][_0x5eab84(0x1e6)]-0x1));if(!(0x0,lodash_1['startsWith'])(_0x52327b['route'],_0x5eab84(0x222))&&!(0x0,lodash_1['startsWith'])(_0x52327b['route'],_0x5eab84(0x246))&&_0x409bd3[_0x5eab84(0x23c)](_0x52327b[_0x5eab84(0x211)])===-0x1){if(!(_0x51513f===null||_0x51513f===void 0x0?void 0x0:_0x51513f['noreq'])){let _0x387e71=(0x0,core_3[_0x5eab84(0x212)])(new _0x53589a(),_0x19a2b4[_0x5eab84(0x201)]);for(const _0x47a436 in _0x387e71){let _0x2d2d94=(_0x3d9092=_0x1e1ab2[_0x19a2b4['method']])===null||_0x3d9092===void 0x0?void 0x0:_0x3d9092[_0x5eab84(0x217)](_0x44b039=>_0x44b039['parameterIndex']==_0x47a436&&_0x44b039[_0x5eab84(0x230)]===core_2[_0x5eab84(0x219)]&&(_0x44b039===null||_0x44b039===void 0x0?void 0x0:_0x44b039[_0x5eab84(0x21c)]));if(_0x2d2d94===null||_0x2d2d94===void 0x0?void 0x0:_0x2d2d94[_0x5eab84(0x21c)]){let _0x46aed3=convertTypeToString(_0x2d2d94['metadata'][_0x5eab84(0x245)]||0x0);if(['query',_0x5eab84(0x231)][_0x5eab84(0x23c)](_0x46aed3)!=-0x1&&_0x2d2d94[_0x5eab84(0x21c)][_0x5eab84(0x1fa)][_0x5eab84(0x23c)](':')==-0x1&&!_0x52327b[_0x5eab84(0x22d)][_0x5eab84(0x217)](_0x285079=>_0x285079['key']==_0x2d2d94['metadata']['propertyData']))_0x52327b[_0x5eab84(0x22d)][_0x5eab84(0x244)]({'key':_0x2d2d94['metadata']['propertyData'],'title':_0x2d2d94[_0x5eab84(0x21c)][_0x5eab84(0x1fa)],'type':convertSchemaType(_0x387e71[_0x2d2d94[_0x5eab84(0x216)]]['name']),'required':![],'default':'','desc':''});else{if(_0x46aed3==_0x5eab84(0x238)){let _0x4be4ac=((_0xf990b6=_0x2d2d94===null||_0x2d2d94===void 0x0?void 0x0:_0x2d2d94['metadata'])===null||_0xf990b6===void 0x0?void 0x0:_0xf990b6[_0x5eab84(0x1fa)])||_0x5eab84(0x238);_0x4be4ac[_0x5eab84(0x23c)](':')==-0x1&&!_0x52327b['request'][_0x5eab84(0x217)](_0x1f954=>_0x1f954[_0x5eab84(0x230)]==_0x4be4ac&&_0x1f954[_0x5eab84(0x245)]=='file')&&_0x52327b[_0x5eab84(0x22d)][_0x5eab84(0x244)]({'key':_0x4be4ac,'title':_0x5eab84(0x21d)+_0x4be4ac,'type':'file','required':!![],'default':'','desc':''});}}}else{const _0x1ac47c=(0x0,core_3[_0x5eab84(0x236)])(validator_1[_0x5eab84(0x233)],_0x387e71[_0x47a436]);_0x1ac47c&&_0x52327b['request'][_0x5eab84(0x244)](...getJoiRequest(_0x1ac47c));}}}_0x1d0653[_0x5eab84(0x242)][_0x5eab84(0x244)](_0x52327b);}}if(_0x1d0653[_0x5eab84(0x242)][_0x5eab84(0x1e6)]>0x0){let _0x2e64a2=_0x1381af[_0x395108];_0x2e64a2?(_0x2e64a2['summary']!=_0x1d0653[_0x5eab84(0x243)]&&(_0x2e64a2[_0x5eab84(0x243)]=_0x2e64a2[_0x5eab84(0x243)]+','+_0x1d0653[_0x5eab84(0x243)]),_0x2e64a2['description']!=_0x1d0653[_0x5eab84(0x1e3)]&&(_0x2e64a2[_0x5eab84(0x1e3)]=_0x2e64a2[_0x5eab84(0x1e3)]+','+_0x1d0653[_0x5eab84(0x1e3)]),_0x2e64a2[_0x5eab84(0x242)]=_0x2e64a2[_0x5eab84(0x242)][_0x5eab84(0x1ef)](_0x1d0653['routes']),_0x1381af[_0x395108]=_0x2e64a2):_0x1381af[_0x395108]=_0x1d0653;}}}return _0x1381af;}function getJoiRequest(_0x32012a){const _0x1f811d=a9_0x3c2853;var _0x581a5d,_0x113f6f;const _0x26d566=[];for(let _0x5d8048 in _0x32012a){const _0x3671fd={'title':'','key':'','type':'','description':'','rules':{},'children':[]},_0x3e246e=typeof _0x32012a[_0x5d8048]['describe']==_0x1f811d(0x23e)?_0x32012a[_0x5d8048][_0x1f811d(0x21a)]():_0x32012a[_0x5d8048];_0x3671fd[_0x1f811d(0x230)]=_0x5d8048,_0x3671fd['type']=_0x3e246e[_0x1f811d(0x245)],_0x3671fd[_0x1f811d(0x225)]=(0x0,lodash_1['get'])(_0x3e246e,_0x1f811d(0x1f6),_0x5d8048),_0x3671fd['default']=(0x0,lodash_1[_0x1f811d(0x229)])(_0x3e246e,'flags.default',''),_0x3671fd[_0x1f811d(0x21b)]=(0x0,lodash_1['get'])(_0x3e246e,_0x1f811d(0x214),'')==_0x1f811d(0x21b),_0x3671fd[_0x1f811d(0x1e3)]=(0x0,lodash_1[_0x1f811d(0x229)])(_0x3e246e,'flags.description','');if(_0x3e246e['type']==_0x1f811d(0x218))(_0x3e246e===null||_0x3e246e===void 0x0?void 0x0:_0x3e246e[_0x1f811d(0x22e)])&&(_0x3671fd[_0x1f811d(0x206)]=getJoiRequest(_0x3e246e['keys']));else _0x3e246e[_0x1f811d(0x245)]=='array'&&_0x3e246e[_0x1f811d(0x22b)]&&Array[_0x1f811d(0x247)](_0x3e246e[_0x1f811d(0x22b)])&&(((_0x113f6f=(_0x581a5d=_0x3e246e===null||_0x3e246e===void 0x0?void 0x0:_0x3e246e[_0x1f811d(0x22b)])===null||_0x581a5d===void 0x0?void 0x0:_0x581a5d[0x0])===null||_0x113f6f===void 0x0?void 0x0:_0x113f6f['keys'])&&(_0x3671fd[_0x1f811d(0x206)]=getJoiRequest(_0x3e246e[_0x1f811d(0x22b)][0x0][_0x1f811d(0x22e)])));_0x3e246e['allow']&&Array[_0x1f811d(0x247)](_0x3e246e[_0x1f811d(0x209)])&&_0x3e246e[_0x1f811d(0x209)][_0x1f811d(0x1e6)]>0x0&&(_0x3671fd[_0x1f811d(0x1e3)]='只允许:['+_0x3e246e[_0x1f811d(0x209)][_0x1f811d(0x21e)](',')+'];'+_0x3671fd['description']);if(_0x3671fd[_0x1f811d(0x230)]&&_0x3671fd[_0x1f811d(0x245)]){const _0x1ad332={};for(const _0x1415d2 of _0x3e246e[_0x1f811d(0x20f)]||[]){if(_0x1415d2['name']===_0x1f811d(0x1ed)&&_0x1415d2[_0x1f811d(0x200)])_0x1ad332[_0x1f811d(0x1ed)]=_0x1415d2[_0x1f811d(0x200)][_0x1f811d(0x224)];else _0x1415d2['name']===_0x1f811d(0x23f)&&(_0x1ad332[_0x1f811d(0x23f)]=_0x1415d2[_0x1f811d(0x200)][_0x1f811d(0x224)]);}_0x3671fd[_0x1f811d(0x20f)]=_0x1ad332;}_0x3671fd[_0x1f811d(0x230)]&&_0x3671fd[_0x1f811d(0x225)]&&_0x26d566[_0x1f811d(0x244)](_0x3671fd);}return _0x26d566;}function convertSchemaType(_0x5abc0a){const _0x2f4745=a9_0x3c2853;switch(_0x5abc0a){case _0x2f4745(0x1f1):return'object';case _0x2f4745(0x1eb):return _0x2f4745(0x228);case'Number':return _0x2f4745(0x23a);case'String':return _0x2f4745(0x220);case _0x2f4745(0x215):return _0x2f4745(0x238);default:return'string';}}function convertTypeToString(_0x1f6326){const _0x1c8d07=a9_0x3c2853;switch(_0x1f6326){case core_1[_0x1c8d07(0x20c)][_0x1c8d07(0x1f7)]:return _0x1c8d07(0x1f4);case core_1[_0x1c8d07(0x20c)][_0x1c8d07(0x1f9)]:return _0x1c8d07(0x232);case core_1['RouteParamTypes'][_0x1c8d07(0x213)]:return _0x1c8d07(0x1f2);case core_1[_0x1c8d07(0x20c)][_0x1c8d07(0x203)]:return _0x1c8d07(0x231);case core_1[_0x1c8d07(0x20c)]['FIELDS']:case core_1['RouteParamTypes'][_0x1c8d07(0x1ff)]:case core_1['RouteParamTypes']['FILESTREAM']:return _0x1c8d07(0x238);default:return _0x1c8d07(0x1f4);}}function getMethodResponse(_0x2b2aff,_0x41fb6d){const _0x2bc30e=a9_0x3c2853,_0x52fa8c=(0x0,core_3[_0x2bc30e(0x1fd)])(action_1['ACTION_RESPONSE_KEY'],_0x2b2aff);if(!_0x52fa8c)return null;const _0x2041a2=_0x52fa8c[_0x2bc30e(0x217)](_0xc0cc39=>_0xc0cc39[_0x2bc30e(0x201)]===_0x41fb6d);if(!_0x2041a2)return null;return{'format':_0x2041a2[_0x2bc30e(0x23b)]||_0x2bc30e(0x227),'type':_0x2041a2[_0x2bc30e(0x245)],'description':_0x2041a2[_0x2bc30e(0x1e3)]||'','properties':_0x2041a2[_0x2bc30e(0x1f8)]||[],'errors':_0x2041a2[_0x2bc30e(0x237)]||[]};}
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRoutes = getRoutes;
4
+ const lodash_1 = require("lodash");
5
+ const validator_1 = require("@anncic-api/validator");
6
+ const core_1 = require("@midwayjs/core");
7
+ const core_2 = require("@midwayjs/core");
8
+ const core_3 = require("@midwayjs/core");
9
+ const action_1 = require("../types/action");
10
+ function getRoutes(filter = { prefix: '/', module: false }) {
11
+ var _a, _b;
12
+ const controllerModules = (0, core_3.listModule)(action_1.ACTION_KEY), routers = {}, filterroute = Array.isArray(filter.filter || []) ? (filter.filter || []) : [filter.filter];
13
+ excludemodule: for (const module of controllerModules) {
14
+ let controllerOption = (0, core_3.getClassMetadata)(action_1.ACTION_KEY, module);
15
+ let controllerRouter = (0, core_3.getClassMetadata)(action_1.ACTION_ROUTE_KEY, module);
16
+ if (controllerOption && controllerRouter) {
17
+ let prefix = controllerOption.prefix, routeparse = {};
18
+ if (filter.module && (0, lodash_1.get)(controllerOption, 'module', false) != filter.module) {
19
+ continue excludemodule;
20
+ }
21
+ else if (filter.module === false && !!(0, lodash_1.get)(controllerOption, 'module', null)) {
22
+ continue excludemodule;
23
+ }
24
+ if (filter.prefix && !prefix.startsWith(filter.prefix)) {
25
+ continue excludemodule;
26
+ }
27
+ if (prefix !== '/') {
28
+ routeparse['summary'] = (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.routerOptions.tagName) || (/^\//.test(prefix) ? prefix.split('/')[1] : prefix);
29
+ routeparse['description'] = (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.routerOptions.description) || routeparse['summary'];
30
+ routeparse['routes'] = [];
31
+ }
32
+ else {
33
+ routeparse['summary'] = (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.routerOptions.tagName) || 'default';
34
+ routeparse['description'] = (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.routerOptions.description) || '';
35
+ routeparse['routes'] = [];
36
+ }
37
+ if (filter.filepath) {
38
+ routeparse['filepath'] = controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.filepath;
39
+ }
40
+ if (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.pprefix) {
41
+ routeparse['prefix'] = controllerOption.pprefix;
42
+ }
43
+ if (controllerOption === null || controllerOption === void 0 ? void 0 : controllerOption.module) {
44
+ routeparse['module'] = controllerOption.module;
45
+ }
46
+ let RouterParam = (0, core_3.getClassMetadata)(core_2.INJECT_CUSTOM_PARAM, module) || {};
47
+ if (typeof controllerRouter[Symbol.iterator] === 'function') {
48
+ for (let Router of controllerRouter) {
49
+ if ((filter === null || filter === void 0 ? void 0 : filter.intercept) && !(Router === null || Router === void 0 ? void 0 : Router.intercept)) {
50
+ continue;
51
+ }
52
+ let routerparse = {};
53
+ routerparse['method'] = Router.requestMethod;
54
+ routerparse['route'] = (prefix + Router.path).replace(/\/{2,}/g, '/');
55
+ routerparse['summary'] = (Router === null || Router === void 0 ? void 0 : Router.routerName) || routeparse['summary'] || 'default';
56
+ routerparse['description'] = (Router === null || Router === void 0 ? void 0 : Router.description) || '';
57
+ routerparse['request'] = [];
58
+ routerparse['response'] = getMethodResponse(module, Router.method);
59
+ if (routerparse['route'].endsWith('/')) {
60
+ routerparse['route'] = routerparse['route'].substring(0, routerparse['route'].length - 1);
61
+ }
62
+ if (!(0, lodash_1.startsWith)(routerparse['route'], 'static/apitest') && !(0, lodash_1.startsWith)(routerparse['route'], '/static/apitest') && filterroute.indexOf(routerparse['route']) === -1) {
63
+ if (!(filter === null || filter === void 0 ? void 0 : filter.noreq)) {
64
+ let paramTypes = (0, core_3.getMethodParamTypes)(new module, Router.method);
65
+ for (const index in paramTypes) {
66
+ let params = (_a = RouterParam[Router.method]) === null || _a === void 0 ? void 0 : _a.find(item => item.parameterIndex == index && item.key === core_2.WEB_ROUTER_PARAM_KEY && (item === null || item === void 0 ? void 0 : item.metadata));
67
+ if (params === null || params === void 0 ? void 0 : params.metadata) {
68
+ let type = convertTypeToString(params.metadata.type || 0);
69
+ if (['query', 'body'].indexOf(type) != -1 && params.metadata.propertyData.indexOf(':') == -1 && !routerparse.request.find(item => item.key == params.metadata.propertyData)) {
70
+ routerparse.request.push({
71
+ key: params.metadata.propertyData,
72
+ title: params.metadata.propertyData,
73
+ type: convertSchemaType(paramTypes[params.parameterIndex].name),
74
+ required: false,
75
+ default: "",
76
+ desc: ""
77
+ });
78
+ }
79
+ else if (type == 'file') {
80
+ let propertyData = ((_b = params === null || params === void 0 ? void 0 : params.metadata) === null || _b === void 0 ? void 0 : _b.propertyData) || 'file';
81
+ if (propertyData.indexOf(':') == -1 && !routerparse.request.find(item => item.key == propertyData && item.type == 'file')) {
82
+ routerparse.request.push({
83
+ key: propertyData,
84
+ title: `文件上传-${propertyData}`,
85
+ type: 'file',
86
+ required: true,
87
+ default: "",
88
+ desc: ""
89
+ });
90
+ }
91
+ }
92
+ }
93
+ else {
94
+ const rule = (0, core_3.getClassExtendedMetadata)(validator_1.RULES_KEY, paramTypes[index]);
95
+ if (rule) {
96
+ routerparse.request.push(...getJoiRequest(rule));
97
+ }
98
+ }
99
+ }
100
+ }
101
+ routeparse.routes.push(routerparse);
102
+ }
103
+ }
104
+ }
105
+ if (routeparse.routes.length > 0) {
106
+ let _controllerRouters = routers[prefix];
107
+ if (_controllerRouters) {
108
+ if (_controllerRouters['summary'] != routeparse['summary']) {
109
+ _controllerRouters['summary'] = _controllerRouters['summary'] + ',' + routeparse['summary'];
110
+ }
111
+ if (_controllerRouters['description'] != routeparse['description']) {
112
+ _controllerRouters['description'] = _controllerRouters['description'] + ',' + routeparse['description'];
113
+ }
114
+ _controllerRouters['routes'] = _controllerRouters['routes'].concat(routeparse.routes);
115
+ routers[prefix] = _controllerRouters;
116
+ }
117
+ else {
118
+ routers[prefix] = routeparse;
119
+ }
120
+ }
121
+ }
122
+ }
123
+ return routers;
124
+ }
125
+ function getJoiRequest(schema) {
126
+ var _a, _b;
127
+ const requests = [];
128
+ for (let property in schema) {
129
+ const request = { title: "", key: "", type: "", description: "", rules: {}, children: [] };
130
+ const describe = typeof (schema[property].describe) == 'function' ? schema[property].describe() : schema[property];
131
+ request.key = property;
132
+ request.type = describe.type;
133
+ request.title = (0, lodash_1.get)(describe, 'flags.label', property);
134
+ request.default = (0, lodash_1.get)(describe, 'flags.default', '');
135
+ request.required = (0, lodash_1.get)(describe, 'flags.presence', '') == 'required';
136
+ request.description = (0, lodash_1.get)(describe, 'flags.description', '');
137
+ if (describe.type == 'object') {
138
+ if (describe === null || describe === void 0 ? void 0 : describe.keys) {
139
+ request.children = getJoiRequest(describe.keys);
140
+ }
141
+ }
142
+ else if (describe.type == 'array' && describe.items && Array.isArray(describe.items)) {
143
+ if ((_b = (_a = describe === null || describe === void 0 ? void 0 : describe.items) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.keys) {
144
+ request.children = getJoiRequest(describe.items[0].keys);
145
+ }
146
+ }
147
+ if (describe.allow && Array.isArray(describe.allow) && describe.allow.length > 0) {
148
+ request.description = `只允许:[${describe.allow.join(',')}];${request.description}`;
149
+ }
150
+ if (request.key && request.type) {
151
+ const rules = {};
152
+ for (const r of describe.rules || []) {
153
+ if (r.name === 'min' && r.args) {
154
+ rules.min = r.args.limit;
155
+ }
156
+ else if (r.name === 'max') {
157
+ rules.max = r.args.limit;
158
+ }
159
+ }
160
+ request.rules = rules;
161
+ }
162
+ if (request.key && request.title) {
163
+ requests.push(request);
164
+ }
165
+ }
166
+ return requests;
167
+ }
168
+ function convertSchemaType(value) {
169
+ switch (value) {
170
+ case 'Object':
171
+ return 'object';
172
+ case 'Boolean':
173
+ return 'boolean';
174
+ case 'Number':
175
+ return 'number';
176
+ case 'String':
177
+ return 'string';
178
+ case 'File':
179
+ return 'file';
180
+ default:
181
+ return 'string';
182
+ }
183
+ }
184
+ function convertTypeToString(type) {
185
+ switch (type) {
186
+ case core_1.RouteParamTypes.HEADERS:
187
+ return 'header';
188
+ case core_1.RouteParamTypes.QUERY:
189
+ return 'query';
190
+ case core_1.RouteParamTypes.PARAM:
191
+ return 'path';
192
+ case core_1.RouteParamTypes.BODY:
193
+ return 'body';
194
+ case core_1.RouteParamTypes.FIELDS:
195
+ case core_1.RouteParamTypes.FILESSTREAM:
196
+ case core_1.RouteParamTypes.FILESTREAM:
197
+ return 'file';
198
+ default:
199
+ return 'header';
200
+ }
201
+ }
202
+ function getMethodResponse(module, method) {
203
+ const responseMetadata = (0, core_3.getClassMetadata)(action_1.ACTION_RESPONSE_KEY, module);
204
+ if (!responseMetadata) {
205
+ return null;
206
+ }
207
+ const methodResponse = responseMetadata.find((item) => item.method === method);
208
+ if (!methodResponse) {
209
+ return null;
210
+ }
211
+ return {
212
+ format: methodResponse.format || 'default',
213
+ type: methodResponse.type,
214
+ description: methodResponse.description || '',
215
+ properties: methodResponse.properties || [],
216
+ errors: methodResponse.errors || []
217
+ };
218
+ }
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0Um91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHBlci9nZXRSb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrQkEsOEJBaUlDO0FBbEpELG1DQUF5QztBQUN6QyxxREFBaUQ7QUFDakQseUNBQStEO0FBQy9ELHlDQUEyRTtBQUMzRSx5Q0FBNkc7QUFFN0csNENBQXFHO0FBV3JHLFNBQWdCLFNBQVMsQ0FBQyxTQUF5QixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7SUFDN0UsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLGlCQUFVLEVBQUMsbUJBQVUsQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxSixhQUFhLEVBQ2IsS0FBSyxNQUFNLE1BQU0sSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3JDLElBQUksZ0JBQWdCLEdBQUcsSUFBQSx1QkFBZ0IsRUFBQyxtQkFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzVELElBQUksZ0JBQWdCLEdBQXVDLElBQUEsdUJBQWdCLEVBQUMseUJBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdEcsSUFBSSxnQkFBZ0IsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3ZDLElBQUksTUFBTSxHQUFXLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxVQUFVLEdBQVEsRUFBRSxDQUFDO1lBQ25FLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFBLFlBQUcsRUFBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE1B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