anncic-api 3.4.88 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/config.default.js +51 -1
- package/dist/config/config.local.js +10 -1
- package/dist/config/config.production.js +7 -1
- package/dist/configuration.js +292 -1
- package/dist/decorator/Action.js +194 -1
- package/dist/decorator/ActionApitest.js +25 -1
- package/dist/decorator/Intercept.js +30 -1
- package/dist/exception/ApiError.js +46 -1
- package/dist/helper/getAppsConfig.js +10 -1
- package/dist/helper/getRoutes.js +195 -1
- package/dist/index.js +67 -1
- package/dist/service/ApiService.js +82 -1
- package/dist/service/ApitestService.js +137 -1
- package/dist/service/ExcelService.js +162 -1
- package/dist/service/ExcelStream.js +218 -1
- package/dist/types/action.js +10 -1
- package/dist/types/common.js +33 -1
- package/dist/types/intercept.js +8 -1
- package/package.json +10 -9
|
@@ -1 +1,51 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = appinfo => {
|
|
4
|
+
return {
|
|
5
|
+
apitest: true,
|
|
6
|
+
keys: appinfo.name,
|
|
7
|
+
anncicapi: {
|
|
8
|
+
requestKey: "_token",
|
|
9
|
+
password: 'zhiulanuiy7892387985hnoi',
|
|
10
|
+
devices: {
|
|
11
|
+
DEFAULT: {
|
|
12
|
+
secret: 'dhauo1234420123gg3234901',
|
|
13
|
+
checkcode: 'dhauo1234420123gg3234901',
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
koa: {
|
|
18
|
+
proxy: true,
|
|
19
|
+
},
|
|
20
|
+
midwayLogger: {
|
|
21
|
+
default: {
|
|
22
|
+
maxSize: '1m',
|
|
23
|
+
maxFiles: '270d',
|
|
24
|
+
dir: `${appinfo.appDir}/runtime`,
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
bodyParser: {
|
|
28
|
+
enableTypes: ['json', 'form', 'text', 'xml'],
|
|
29
|
+
formLimit: '20mb',
|
|
30
|
+
jsonLimit: '20mb',
|
|
31
|
+
textLimit: '20mb',
|
|
32
|
+
xmlLimit: '20mb',
|
|
33
|
+
enable: true,
|
|
34
|
+
},
|
|
35
|
+
upload: {
|
|
36
|
+
tmpdir: `${appinfo.appDir}/runtime/.upload`,
|
|
37
|
+
cleanTimeout: 86400000,
|
|
38
|
+
},
|
|
39
|
+
busboy: {
|
|
40
|
+
mode: 'file',
|
|
41
|
+
tmpdir: `${appinfo.appDir}/runtime/.upload`,
|
|
42
|
+
cleanTimeout: 86400000,
|
|
43
|
+
},
|
|
44
|
+
bull: {
|
|
45
|
+
defaultQueueOptions: {
|
|
46
|
+
prefix: `{midway-bull}{${appinfo.name}:${(appinfo === null || appinfo === void 0 ? void 0 : appinfo.env) ? `${appinfo.env}:` : ''})`
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0JBQWUsT0FBTyxDQUFDLEVBQUU7SUFDckIsT0FBTztRQUNILE9BQU8sRUFBRSxJQUFJO1FBQ2IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLFNBQVMsRUFBRTtZQUNQLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFFBQVEsRUFBRSwwQkFBMEI7WUFDcEMsT0FBTyxFQUFFO2dCQUNMLE9BQU8sRUFBRTtvQkFDTCxNQUFNLEVBQUUsMEJBQTBCO29CQUNsQyxTQUFTLEVBQUUsMEJBQTBCO2lCQUN4QzthQUNKO1NBQ0o7UUFDRCxHQUFHLEVBQUU7WUFDRCxLQUFLLEVBQUUsSUFBSTtTQUNkO1FBQ0QsWUFBWSxFQUFFO1lBQ1YsT0FBTyxFQUFFO2dCQUNMLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFFBQVEsRUFBRSxNQUFNO2dCQUNoQixHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxVQUFVO2FBQ25DO1NBQ0o7UUFDRCxVQUFVLEVBQUU7WUFDUixXQUFXLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDNUMsU0FBUyxFQUFFLE1BQU07WUFDakIsU0FBUyxFQUFFLE1BQU07WUFDakIsU0FBUyxFQUFFLE1BQU07WUFDakIsUUFBUSxFQUFFLE1BQU07WUFDaEIsTUFBTSxFQUFFLElBQUk7U0FDZjtRQUNELE1BQU0sRUFBRTtZQUNKLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLGtCQUFrQjtZQUMzQyxZQUFZLEVBQUUsUUFBUTtTQUN6QjtRQUNELE1BQU0sRUFBRTtZQUNKLElBQUksRUFBRSxNQUFNO1lBQ1osTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sa0JBQWtCO1lBQzNDLFlBQVksRUFBRSxRQUFRO1NBQ3pCO1FBQ0QsSUFBSSxFQUFDO1lBQ0QsbUJBQW1CLEVBQUU7Z0JBQ2pCLE1BQU0sRUFBRSxpQkFBaUIsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxHQUFHLEVBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUc7YUFDcEY7U0FDSjtLQUNKLENBQUE7QUFDTCxDQUFDLENBQUMifQ==
|
|
@@ -1 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = appinfo => {
|
|
4
|
+
return {
|
|
5
|
+
koa: {
|
|
6
|
+
proxy: false,
|
|
7
|
+
},
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmxvY2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9jb25maWcubG9jYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSxrQkFBZSxPQUFPLENBQUMsRUFBRTtJQUNyQixPQUFPO1FBQ0gsR0FBRyxFQUFFO1lBQ0QsS0FBSyxFQUFFLEtBQUs7U0FDZjtLQUNKLENBQUE7QUFDTCxDQUFDLENBQUEifQ==
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = {
|
|
4
|
+
apitest: false,
|
|
5
|
+
anncicapi: {},
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnByb2R1Y3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5wcm9kdWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0JBQWU7SUFDWCxPQUFPLEVBQUUsS0FBSztJQUNkLFNBQVMsRUFBQyxFQUVUO0NBQ0osQ0FBQSJ9
|
package/dist/configuration.js
CHANGED
|
@@ -1 +1,292 @@
|
|
|
1
|
-
const a3_0x2b3622=a3_0x1dbf;(function(_0x36e947,_0x887fff){const _0x3159d2=a3_0x1dbf,_0x15ce0e=_0x36e947();while(!![]){try{const _0x1f083b=-parseInt(_0x3159d2(0x17f))/0x1+parseInt(_0x3159d2(0x1dc))/0x2*(parseInt(_0x3159d2(0x170))/0x3)+parseInt(_0x3159d2(0x197))/0x4*(-parseInt(_0x3159d2(0x208))/0x5)+parseInt(_0x3159d2(0x1c1))/0x6*(parseInt(_0x3159d2(0x1ce))/0x7)+parseInt(_0x3159d2(0x18c))/0x8*(-parseInt(_0x3159d2(0x1f3))/0x9)+-parseInt(_0x3159d2(0x16d))/0xa*(parseInt(_0x3159d2(0x1ae))/0xb)+parseInt(_0x3159d2(0x1b9))/0xc;if(_0x1f083b===_0x887fff)break;else _0x15ce0e['push'](_0x15ce0e['shift']());}catch(_0x4c35a0){_0x15ce0e['push'](_0x15ce0e['shift']());}}}(a3_0xb64f,0x89f48));const a3_0x4b1679=(function(){let _0x151d55=!![];return function(_0x3be053,_0x2114c6){const _0x9899c1=_0x151d55?function(){const _0x5735e3=a3_0x1dbf;if(_0x2114c6){const _0x29c72e=_0x2114c6[_0x5735e3(0x1fc)](_0x3be053,arguments);return _0x2114c6=null,_0x29c72e;}}:function(){};return _0x151d55=![],_0x9899c1;};}()),a3_0x388c74=a3_0x4b1679(this,function(){const _0x2030f4=a3_0x1dbf;return a3_0x388c74[_0x2030f4(0x16f)]()[_0x2030f4(0x1e3)](_0x2030f4(0x1a0))[_0x2030f4(0x16f)]()['constructor'](a3_0x388c74)[_0x2030f4(0x1e3)](_0x2030f4(0x1a0));});function a3_0x1dbf(_0x1248c2,_0x29b06e){const _0x4dddd4=a3_0xb64f();return a3_0x1dbf=function(_0x388c74,_0x4b1679){_0x388c74=_0x388c74-0x16c;let _0xb64f2c=_0x4dddd4[_0x388c74];return _0xb64f2c;},a3_0x1dbf(_0x1248c2,_0x29b06e);}function a3_0xb64f(){const _0x57c484=['(((.+)+)+)+$','startsWith','handlerActionRoute','@midwayjs/static-file','connection','object','description','文件不存在','koa-send','./exception/ApiError','target','intercept','application','request','46739oTghNh','/apps','apps-','@midwayjs/core','name','requestMethod','@anncic-api/core','attachment','APPSCONFIG_KEY','hanlderApplications','parse','38726736loPNDH','filterConfig','270d','readdirSync','@anncic-api/cache','Configuration','upload','mkdirSync','559026bGDGRR','apimit','registerMethodHandler','/app','forEach','checksign','ApiError','443','module','getConfiguration','string','midwayLogger','devices','21ETcrcf','onReady','undefined','@midwayjs/cross-domain','ACTION_ROUTE_KEY','clients','app.log','key','./config/config.default','match','./types/intercept','host','Anncic-api\x20static-file\x20:\x20mkdir\x20','requestContext','2SzLFZZ','REQUEST_OBJ_CTX_KEY','__decorate','AppsConfigTmp','MidwayLoggerService','__metadata','isDirectory','search','/basic','query','@anncic-api/typeorm','Anncic-api\x20upload-tmpdir\x20:\x20mkdir\x20','headers','https://','req','statSync','context','method','join','existsSync','requestKey','dirs','loggerService','3052269smGfSS','./config/config.production','App','http://','./service/ApiService','Types','path','routerOptions','isFunction','apply','environment','lastIndexOf','toLowerCase','defineProperties','InterceptTargetTmp','get','staticFile','getBaseDir','_matchedRouteMeta','args','body','424730iYSGAp','getAppDir','anncic-api','INTERCEPT_KEY','.log','includes','runtime','length','basic','substring','http','handler','@midwayjs/busboy','/apps/','function','1730aMIXHF','MidwayDecoratorService','toString','840471NtZAcn','__esModule','getAsync','MidwayEnvironmentService','dir','keys','tmpdir','config','input','getClassMetadata','split','prototype','decorate','addObject','ApiService','1043961xIgjGx','isArray','anncicapi','_matchedRoute','HEADERS_SIGNATURE','isDevelopmentEnvironment','metadata','decorator','isClass','koa','@midwayjs/koa','isNull','@anncic-api/validator','16GrcRSb','getApplications','device','basic.log','app','./types/action','ACTION_KEY','defineProperty','tagName','defaultsDeep','MidwayConfigService','36XnKBLt','MidwayApplicationManager','encrypted','CustomConfiguration','Inject','bodyXml','design:type','log','isString'];a3_0xb64f=function(){return _0x57c484;};return a3_0xb64f();}a3_0x388c74();'use strict';var __decorate=this&&this[a3_0x2b3622(0x1de)]||function(_0x15abfc,_0x5655d3,_0x43dcb6,_0x37c1a5){const _0x18936b=a3_0x2b3622;var _0x578b23=arguments['length'],_0x553c28=_0x578b23<0x3?_0x5655d3:_0x37c1a5===null?_0x37c1a5=Object['getOwnPropertyDescriptor'](_0x5655d3,_0x43dcb6):_0x37c1a5,_0x2acf52;if(typeof Reflect===_0x18936b(0x1a5)&&typeof Reflect[_0x18936b(0x17c)]===_0x18936b(0x16c))_0x553c28=Reflect[_0x18936b(0x17c)](_0x15abfc,_0x5655d3,_0x43dcb6,_0x37c1a5);else{for(var _0x3fde6e=_0x15abfc['length']-0x1;_0x3fde6e>=0x0;_0x3fde6e--)if(_0x2acf52=_0x15abfc[_0x3fde6e])_0x553c28=(_0x578b23<0x3?_0x2acf52(_0x553c28):_0x578b23>0x3?_0x2acf52(_0x5655d3,_0x43dcb6,_0x553c28):_0x2acf52(_0x5655d3,_0x43dcb6))||_0x553c28;}return _0x578b23>0x3&&_0x553c28&&Object['defineProperty'](_0x5655d3,_0x43dcb6,_0x553c28),_0x553c28;},__metadata=this&&this[a3_0x2b3622(0x1e1)]||function(_0x1d7605,_0x215a33){const _0x47d3f3=a3_0x2b3622;if(typeof Reflect===_0x47d3f3(0x1a5)&&typeof Reflect[_0x47d3f3(0x185)]===_0x47d3f3(0x16c))return Reflect['metadata'](_0x1d7605,_0x215a33);};Object[a3_0x2b3622(0x193)](exports,a3_0x2b3622(0x171),{'value':!![]}),exports['CustomConfiguration']=void 0x0;const core_1=require(a3_0x2b3622(0x1b1)),core_2=require(a3_0x2b3622(0x1b1)),ApiError_1=require(a3_0x2b3622(0x1a9)),ApiService_1=require(a3_0x2b3622(0x1f7)),intercept_1=require(a3_0x2b3622(0x1d8)),action_1=require(a3_0x2b3622(0x191)),fs=require('fs'),path=require(a3_0x2b3622(0x1f9)),koasend=require(a3_0x2b3622(0x1a8)),koa=require(a3_0x2b3622(0x189)),upload=require(a3_0x2b3622(0x214)),staticFile=require(a3_0x2b3622(0x1a3)),crossDomain=require(a3_0x2b3622(0x1d1)),ConfigDefault=require(a3_0x2b3622(0x1d6)),ConfigProduction=require(a3_0x2b3622(0x1f4)),anncic=require(a3_0x2b3622(0x1b4)),anncicCache=require(a3_0x2b3622(0x1bd)),anncicEvent=require('@anncic-api/event'),anncicTypeorm=require(a3_0x2b3622(0x1e6)),anncicValidator=require(a3_0x2b3622(0x18b)),anncicHelper=require('anncic-apihelper');let CustomConfiguration=class CustomConfiguration{async[a3_0x2b3622(0x1cf)](){const _0x1d4f76=a3_0x2b3622;await this['filterConfig'](),await this['loggerConfig'](),await this[_0x1d4f76(0x1a2)](),await this[_0x1d4f76(0x1b7)]();}async[a3_0x2b3622(0x1a2)](){const _0x32718c=a3_0x2b3622,_0xa503df=this['config']['getConfiguration'](),_0x1a8c28=(0x0,core_1[_0x32718c(0x179)])(intercept_1[_0x32718c(0x20b)],intercept_1[_0x32718c(0x201)])||{};this[_0x32718c(0x186)][_0x32718c(0x1c3)](action_1[_0x32718c(0x1d2)],_0x8d5f18=>{const _0x5b3ac8=_0x32718c;var _0x4c9535;const _0x4c5b64=(0x0,core_1[_0x5b3ac8(0x179)])(action_1[_0x5b3ac8(0x1b6)],action_1[_0x5b3ac8(0x1df)])||{},_0x10793f=_0x8d5f18[_0x5b3ac8(0x185)],_0x1140de=(0x0,core_1[_0x5b3ac8(0x179)])(action_1[_0x5b3ac8(0x192)],_0x8d5f18[_0x5b3ac8(0x1aa)])||{},_0x153e62=((_0x4c9535=_0x1140de===null||_0x1140de===void 0x0?void 0x0:_0x1140de['filepath'])===null||_0x4c9535===void 0x0?void 0x0:_0x4c9535[_0x5b3ac8(0x211)](0x0,_0x1140de['filepath'][_0x5b3ac8(0x1fe)]('.')))||'',_0x4d37c8=(_0x1140de===null||_0x1140de===void 0x0?void 0x0:_0x1140de[_0x5b3ac8(0x1c9)])?(_0x4c5b64===null||_0x4c5b64===void 0x0?void 0x0:_0x4c5b64[_0x1140de['module']])||{}:{};return{'before':async _0x466bdd=>{const _0x526dee=_0x5b3ac8;var _0x6b8679,_0x3d4296,_0xae8795,_0x2d8f30;const _0x193550=(_0x6b8679=_0x466bdd===null||_0x466bdd===void 0x0?void 0x0:_0x466bdd[_0x526dee(0x1aa)])===null||_0x6b8679===void 0x0?void 0x0:_0x6b8679[core_2[_0x526dee(0x1dd)]],_0x28c89a=lodash['defaultsDeep']({},_0x193550[_0x526dee(0x1ad)][_0x526dee(0x207)]||_0x193550[_0x526dee(0x1ad)][((_0x3d4296=_0xa503df===null||_0xa503df===void 0x0?void 0x0:_0xa503df[_0x526dee(0x19c)])===null||_0x3d4296===void 0x0?void 0x0:_0x3d4296[_0x526dee(0x1d5)])||_0x526dee(0x207)]||{},_0x193550[_0x526dee(0x1ad)]['query']||{});_0x193550[_0x526dee(0x205)]={'module':(_0x4d37c8===null||_0x4d37c8===void 0x0?void 0x0:_0x4d37c8[_0x526dee(0x1b2)])||'','routePath':''+_0x193550[_0x526dee(0x1f9)],'routeName':_0x1140de[_0x526dee(0x1fa)][_0x526dee(0x194)]+'@'+_0x10793f['routerName'],'routeMethod':((_0x10793f===null||_0x10793f===void 0x0?void 0x0:_0x10793f[_0x526dee(0x1b3)])||_0x193550['method']||'')['toLowerCase'](),'routeDescription':(_0x10793f===null||_0x10793f===void 0x0?void 0x0:_0x10793f[_0x526dee(0x1a6)])||'','filemethod':_0x153e62+'@'+(_0x10793f['method']||'')};if(_0x193550&&(_0x10793f===null||_0x10793f===void 0x0?void 0x0:_0x10793f[_0x526dee(0x1c2)]))try{const _0x3d5256=((_0xae8795=_0xa503df===null||_0xa503df===void 0x0?void 0x0:_0xa503df['anncicapi'])===null||_0xae8795===void 0x0?void 0x0:_0xae8795[_0x526dee(0x1f0)])&&typeof(_0x28c89a===null||_0x28c89a===void 0x0?void 0x0:_0x28c89a[_0xa503df[_0x526dee(0x181)][_0x526dee(0x1f0)]])=='string'?JSON[_0x526dee(0x1b8)](base64_decode(_0x28c89a[_0xa503df['anncicapi'][_0x526dee(0x1f0)]])||'{}')||{}:((_0x2d8f30=_0x193550===null||_0x193550===void 0x0?void 0x0:_0x193550[_0x526dee(0x1ad)])===null||_0x2d8f30===void 0x0?void 0x0:_0x2d8f30[_0x526dee(0x1e8)])||{};if(!this[_0x526dee(0x17e)][_0x526dee(0x1c6)](_0x3d5256))throw new AnnError(ApiError_1[_0x526dee(0x1c7)][_0x526dee(0x183)]);for(const _0x746e3 in _0x3d5256||{}){_0x193550[_0x526dee(0x1e8)][_0x746e3]=_0x3d5256[_0x746e3];}}catch(_0x176a8c){if(_0x176a8c instanceof AnnError)throw _0x176a8c;else throw new AnnError(ApiError_1[_0x526dee(0x1c7)]['_UNKNOW_']);}},'around':async _0xc751f=>{const _0x4b1501=_0x5b3ac8;var _0x4d03c8,_0x9c39d7,_0x5b9611;const _0x235606=(_0x4d03c8=_0xc751f===null||_0xc751f===void 0x0?void 0x0:_0xc751f['target'])===null||_0x4d03c8===void 0x0?void 0x0:_0x4d03c8[core_2['REQUEST_OBJ_CTX_KEY']];if(_0x235606&&(_0x10793f===null||_0x10793f===void 0x0?void 0x0:_0x10793f[_0x4b1501(0x1c2)])&&((_0x10793f===null||_0x10793f===void 0x0?void 0x0:_0x10793f[_0x4b1501(0x1ab)])||typeof(_0x10793f===null||_0x10793f===void 0x0?void 0x0:_0x10793f[_0x4b1501(0x1ab)])==_0x4b1501(0x1d0))){if(((_0x9c39d7=_0x235606[_0x4b1501(0x1e8)])===null||_0x9c39d7===void 0x0?void 0x0:_0x9c39d7[_0x4b1501(0x18e)])&&((_0x5b9611=_0x1a8c28===null||_0x1a8c28===void 0x0?void 0x0:_0x1a8c28[_0x235606['headers'][_0x4b1501(0x18e)]])===null||_0x5b9611===void 0x0?void 0x0:_0x5b9611['length'])>0x0)for(const _0x500847 of _0x1a8c28[_0x235606[_0x4b1501(0x1e8)][_0x4b1501(0x18e)]]||[]){if(core_1['Types'][_0x4b1501(0x187)](_0x500847)){const _0x1008eb=await _0x235606[_0x4b1501(0x1db)][_0x4b1501(0x172)](_0x500847);typeof(_0x1008eb===null||_0x1008eb===void 0x0?void 0x0:_0x1008eb[_0x4b1501(0x1d7)])==_0x4b1501(0x16c)?await _0x1008eb['match'](_0x235606,typeof(_0x235606===null||_0x235606===void 0x0?void 0x0:_0x235606[_0x4b1501(0x1ed)])==_0x4b1501(0x1cb)&&(_0x235606===null||_0x235606===void 0x0?void 0x0:_0x235606[_0x4b1501(0x182)])?_0x235606[_0x4b1501(0x1ed)]['toLowerCase']()+'@'+(_0x235606===null||_0x235606===void 0x0?void 0x0:_0x235606[_0x4b1501(0x182)]):undefined,_0x10793f)&&await _0x1008eb[_0x4b1501(0x213)](_0x235606,typeof(_0x235606===null||_0x235606===void 0x0?void 0x0:_0x235606[_0x4b1501(0x1ed)])==_0x4b1501(0x1cb)&&(_0x235606===null||_0x235606===void 0x0?void 0x0:_0x235606[_0x4b1501(0x182)])?_0x235606[_0x4b1501(0x1ed)]['toLowerCase']()+'@'+(_0x235606===null||_0x235606===void 0x0?void 0x0:_0x235606['_matchedRoute']):undefined,_0x10793f):await _0x1008eb['handler'](_0x235606,typeof(_0x235606===null||_0x235606===void 0x0?void 0x0:_0x235606[_0x4b1501(0x1ed)])==_0x4b1501(0x1cb)&&(_0x235606===null||_0x235606===void 0x0?void 0x0:_0x235606[_0x4b1501(0x182)])?_0x235606[_0x4b1501(0x1ed)]['toLowerCase']()+'@'+(_0x235606===null||_0x235606===void 0x0?void 0x0:_0x235606[_0x4b1501(0x182)]):undefined,_0x10793f);}else core_1[_0x4b1501(0x1f8)][_0x4b1501(0x1fb)](_0x500847)&&await _0x500847(_0x235606,typeof(_0x235606===null||_0x235606===void 0x0?void 0x0:_0x235606[_0x4b1501(0x1ed)])==_0x4b1501(0x1cb)&&(_0x235606===null||_0x235606===void 0x0?void 0x0:_0x235606[_0x4b1501(0x182)])?_0x235606[_0x4b1501(0x1ed)][_0x4b1501(0x1ff)]()+'@'+(_0x235606===null||_0x235606===void 0x0?void 0x0:_0x235606[_0x4b1501(0x182)]):undefined,_0x10793f);}}return await _0xc751f['proceed'](..._0xc751f[_0x4b1501(0x206)]);},'afterThrow':(_0x227662,_0x3fc6bf)=>{throw _0x3fc6bf;}};});}async[a3_0x2b3622(0x1b7)](){const _0x3d1166=a3_0x2b3622,_0x58b028=this['config']['getConfiguration']();this['application'][_0x3d1166(0x18d)]([_0x3d1166(0x188)])[_0x3d1166(0x1c5)](_0x443829=>{const _0xe24e08=_0x3d1166;(_0x443829===null||_0x443829===void 0x0?void 0x0:_0x443829[_0xe24e08(0x1ec)])&&Object[_0xe24e08(0x200)](_0x443829[_0xe24e08(0x1ec)],{'hosturl':{'configurable':![],'get':function(){const _0x3e7f0a=_0xe24e08;var _0x5cb5f4,_0x448b6e,_0x13af1c,_0x49b7a9;if((this===null||this===void 0x0?void 0x0:this[_0x3e7f0a(0x1d9)])&&!this[_0x3e7f0a(0x1d9)][_0x3e7f0a(0x1a1)](_0x3e7f0a(0x212))){let _0xe47832=this['host'][_0x3e7f0a(0x17a)](':');return['80',_0x3e7f0a(0x1c8)][_0x3e7f0a(0x20d)](_0xe47832===null||_0xe47832===void 0x0?void 0x0:_0xe47832[0x1])?''+(!!((_0x448b6e=(_0x5cb5f4=this===null||this===void 0x0?void 0x0:this[_0x3e7f0a(0x1ea)])===null||_0x5cb5f4===void 0x0?void 0x0:_0x5cb5f4['connection'])===null||_0x448b6e===void 0x0?void 0x0:_0x448b6e[_0x3e7f0a(0x199)])||(_0xe47832===null||_0xe47832===void 0x0?void 0x0:_0xe47832[0x1])==_0x3e7f0a(0x1c8)?_0x3e7f0a(0x1e9):'http://')+_0xe47832[0x0]:''+(!!((_0x49b7a9=(_0x13af1c=this===null||this===void 0x0?void 0x0:this['req'])===null||_0x13af1c===void 0x0?void 0x0:_0x13af1c[_0x3e7f0a(0x1a4)])===null||_0x49b7a9===void 0x0?void 0x0:_0x49b7a9[_0x3e7f0a(0x199)])?'https://':_0x3e7f0a(0x1f6))+this[_0x3e7f0a(0x1d9)];}return'';}},'ok':{'value':function(_0x335ea8,_0x16ccee,_0x3eca23=0x0){return{'code':_0x3eca23,'data':_0x335ea8,'extra':_0x16ccee};}},'input':{'value':function(_0x4aac5a,_0x24f07d){const _0x1f0ce4=_0xe24e08;var _0x504307;const _0x355d2e=lodash[_0x1f0ce4(0x195)]({},this[_0x1f0ce4(0x1ad)][_0x1f0ce4(0x207)]||this['request'][((_0x504307=_0x58b028===null||_0x58b028===void 0x0?void 0x0:_0x58b028[_0x1f0ce4(0x19c)])===null||_0x504307===void 0x0?void 0x0:_0x504307['key'])||_0x1f0ce4(0x207)]||{},this['request'][_0x1f0ce4(0x1e5)]||{});return _0x4aac5a?lodash[_0x1f0ce4(0x202)](_0x355d2e,_0x4aac5a,_0x24f07d):_0x355d2e;}},'when':{'value':async function(_0x2a7ec8,_0x2630c5){const _0xe27dc2=_0xe24e08,_0x463e39=this[_0xe27dc2(0x178)](_0x2a7ec8,null);if(!lodash[_0xe27dc2(0x18a)](_0x463e39))return await _0x2630c5(_0x463e39);}},'only':{'value':function(_0x274fec){const _0x234091=_0xe24e08,_0x169dd1={};for(let _0x2f16ba=0x0;_0x2f16ba<_0x274fec[_0x234091(0x20f)];_0x2f16ba++){lodash[_0x234091(0x180)](_0x274fec[_0x2f16ba])&&_0x274fec[_0x2f16ba][_0x234091(0x20f)]>0x0&&lodash[_0x234091(0x19f)](_0x274fec[_0x2f16ba][0x0])&&(_0x169dd1[_0x274fec[_0x2f16ba][0x0]]=this['input'](_0x274fec[_0x2f16ba][0x0],_0x274fec[_0x2f16ba][_0x234091(0x20f)]>0x1?_0x274fec[_0x2f16ba][0x1]:null));}return _0x169dd1;}},'koasend':{'value':async function(_0x5b8368,_0x14f2db){const _0x107776=_0xe24e08;if(_0x5b8368&&!fs[_0x107776(0x1ef)](_0x5b8368)&&!fs[_0x107776(0x1ef)](this[_0x107776(0x190)][_0x107776(0x209)]()+'/'+_0x5b8368))return _0x107776(0x1a7);return _0x5b8368=fs[_0x107776(0x1ef)](_0x5b8368)?_0x5b8368:this[_0x107776(0x190)]['getAppDir']()+'/'+_0x5b8368,this[_0x107776(0x1b5)](_0x14f2db||_0x5b8368),await koasend(this,_0x5b8368);}}});});}async['loggerConfig'](){const _0x53d4c6=a3_0x2b3622;var _0x4ca2f8;if(fs[_0x53d4c6(0x1ef)](this[_0x53d4c6(0x190)]['getBaseDir']()+'/apps')&&fs[_0x53d4c6(0x1eb)](this[_0x53d4c6(0x190)][_0x53d4c6(0x204)]()+'/apps')['isDirectory']()){const _0x445ae1=this[_0x53d4c6(0x177)][_0x53d4c6(0x1ca)](),_0xc12481=((_0x4ca2f8=_0x445ae1===null||_0x445ae1===void 0x0?void 0x0:_0x445ae1[_0x53d4c6(0x1cc)])===null||_0x4ca2f8===void 0x0?void 0x0:_0x4ca2f8[_0x53d4c6(0x1d3)])||{};!fs[_0x53d4c6(0x1ef)](this['app'][_0x53d4c6(0x204)]()+_0x53d4c6(0x1c4))&&(_0xc12481['app']={'lazyLoad':!![],'enableJSON':!![],'enableConsole':this[_0x53d4c6(0x1fd)][_0x53d4c6(0x184)](),'fileLogName':_0x53d4c6(0x1d4),'dir':path['join'](this[_0x53d4c6(0x190)][_0x53d4c6(0x209)](),_0x53d4c6(0x20e),_0x53d4c6(0x190))});!fs[_0x53d4c6(0x1ef)](this[_0x53d4c6(0x190)]['getBaseDir']()+_0x53d4c6(0x1e4))&&(_0xc12481['basic']={'lazyLoad':!![],'enableJSON':!![],'enableConsole':this[_0x53d4c6(0x1fd)][_0x53d4c6(0x184)](),'fileLogName':_0x53d4c6(0x18f),'dir':path[_0x53d4c6(0x1ee)](this[_0x53d4c6(0x190)][_0x53d4c6(0x209)](),_0x53d4c6(0x20e),_0x53d4c6(0x210))});for(const _0x1e3313 of fs[_0x53d4c6(0x1bc)](this[_0x53d4c6(0x190)][_0x53d4c6(0x204)]()+_0x53d4c6(0x1af))){if(!fs[_0x53d4c6(0x1eb)](this[_0x53d4c6(0x190)][_0x53d4c6(0x204)]()+_0x53d4c6(0x215)+_0x1e3313)[_0x53d4c6(0x1e2)]())continue;!(_0xc12481===null||_0xc12481===void 0x0?void 0x0:_0xc12481[_0x1e3313])&&(_0xc12481[_0x1e3313]={'lazyLoad':!![],'enableJSON':!![],'enableConsole':this[_0x53d4c6(0x1fd)][_0x53d4c6(0x184)](),'fileLogName':_0x1e3313+_0x53d4c6(0x20c),'dir':path[_0x53d4c6(0x1ee)](this[_0x53d4c6(0x190)]['getAppDir'](),'runtime',_0x53d4c6(0x1b0)+_0x1e3313)}),this[_0x53d4c6(0x1f2)]['createLogger'](_0x1e3313,_0xc12481[_0x1e3313]);}Object[_0x53d4c6(0x175)](_0xc12481)[_0x53d4c6(0x20f)]>0x0&&(!_0x445ae1[_0x53d4c6(0x1cc)]&&(_0x445ae1['midwayLogger']={'default':{'maxSize':'1m','maxFiles':_0x53d4c6(0x1bb),'dir':path[_0x53d4c6(0x1ee)](this[_0x53d4c6(0x190)][_0x53d4c6(0x209)](),_0x53d4c6(0x20e))}}),_0x445ae1[_0x53d4c6(0x1cc)][_0x53d4c6(0x1d3)]=_0xc12481),this[_0x53d4c6(0x177)][_0x53d4c6(0x17d)](_0x445ae1);}}async[a3_0x2b3622(0x1ba)](){const _0x4cbdfa=a3_0x2b3622;var _0x3760bb,_0x59606d,_0x292540,_0xc60008,_0xd4b3c1,_0x63cb4d;const _0x3f3875=this['config'][_0x4cbdfa(0x1ca)]();((_0x59606d=(_0x3760bb=_0x3f3875===null||_0x3f3875===void 0x0?void 0x0:_0x3f3875['anncicapi'])===null||_0x3760bb===void 0x0?void 0x0:_0x3760bb['devices'])===null||_0x59606d===void 0x0?void 0x0:_0x59606d['DEFAULT'])&&Object['keys'](_0x3f3875[_0x4cbdfa(0x181)][_0x4cbdfa(0x1cd)])[_0x4cbdfa(0x20f)]>0x1&&delete _0x3f3875[_0x4cbdfa(0x181)][_0x4cbdfa(0x1cd)]['DEFAULT'];if((_0x292540=_0x3f3875===null||_0x3f3875===void 0x0?void 0x0:_0x3f3875[_0x4cbdfa(0x203)])===null||_0x292540===void 0x0?void 0x0:_0x292540[_0x4cbdfa(0x1f1)])for(const _0x4fe3ec in _0x3f3875['staticFile'][_0x4cbdfa(0x1f1)]){((_0xc60008=_0x3f3875[_0x4cbdfa(0x203)][_0x4cbdfa(0x1f1)][_0x4fe3ec])===null||_0xc60008===void 0x0?void 0x0:_0xc60008[_0x4cbdfa(0x174)])&&typeof((_0xd4b3c1=_0x3f3875['staticFile'][_0x4cbdfa(0x1f1)][_0x4fe3ec])===null||_0xd4b3c1===void 0x0?void 0x0:_0xd4b3c1['dir'])==_0x4cbdfa(0x1cb)&&!fs[_0x4cbdfa(0x1ef)](_0x3f3875[_0x4cbdfa(0x203)][_0x4cbdfa(0x1f1)][_0x4fe3ec][_0x4cbdfa(0x174)])&&(fs['mkdirSync'](_0x3f3875[_0x4cbdfa(0x203)][_0x4cbdfa(0x1f1)][_0x4fe3ec]['dir'],{'recursive':!![]}),console[_0x4cbdfa(0x19e)](_0x4cbdfa(0x1da)+_0x3f3875[_0x4cbdfa(0x203)]['dirs'][_0x4fe3ec][_0x4cbdfa(0x174)]));}((_0x63cb4d=_0x3f3875===null||_0x3f3875===void 0x0?void 0x0:_0x3f3875['upload'])===null||_0x63cb4d===void 0x0?void 0x0:_0x63cb4d[_0x4cbdfa(0x176)])&&!fs[_0x4cbdfa(0x1ef)](_0x3f3875[_0x4cbdfa(0x1bf)][_0x4cbdfa(0x176)])&&(fs[_0x4cbdfa(0x1c0)](_0x3f3875[_0x4cbdfa(0x1bf)]['tmpdir'],{'recursive':!![]}),console['log'](_0x4cbdfa(0x1e7)+_0x3f3875['upload'][_0x4cbdfa(0x176)])),this['config'][_0x4cbdfa(0x17d)](_0x3f3875);}};exports[a3_0x2b3622(0x19a)]=CustomConfiguration,__decorate([(0x0,core_1[a3_0x2b3622(0x1f5)])(),__metadata(a3_0x2b3622(0x19d),Object)],CustomConfiguration['prototype'],a3_0x2b3622(0x190),void 0x0),__decorate([(0x0,core_1[a3_0x2b3622(0x19b)])(),__metadata(a3_0x2b3622(0x19d),core_2[a3_0x2b3622(0x196)])],CustomConfiguration[a3_0x2b3622(0x17b)],a3_0x2b3622(0x177),void 0x0),__decorate([(0x0,core_1[a3_0x2b3622(0x19b)])(),__metadata(a3_0x2b3622(0x19d),core_2[a3_0x2b3622(0x16e)])],CustomConfiguration['prototype'],a3_0x2b3622(0x186),void 0x0),__decorate([(0x0,core_1['Inject'])(),__metadata('design:type',core_2[a3_0x2b3622(0x198)])],CustomConfiguration[a3_0x2b3622(0x17b)],a3_0x2b3622(0x1ac),void 0x0),__decorate([(0x0,core_1['Inject'])(),__metadata(a3_0x2b3622(0x19d),core_2[a3_0x2b3622(0x173)])],CustomConfiguration['prototype'],a3_0x2b3622(0x1fd),void 0x0),__decorate([(0x0,core_1[a3_0x2b3622(0x19b)])(),__metadata(a3_0x2b3622(0x19d),core_1[a3_0x2b3622(0x1e0)])],CustomConfiguration[a3_0x2b3622(0x17b)],a3_0x2b3622(0x1f2),void 0x0),__decorate([(0x0,core_1[a3_0x2b3622(0x19b)])(),__metadata(a3_0x2b3622(0x19d),ApiService_1[a3_0x2b3622(0x17e)])],CustomConfiguration['prototype'],'ApiService',void 0x0),exports[a3_0x2b3622(0x19a)]=CustomConfiguration=__decorate([(0x0,core_1[a3_0x2b3622(0x1be)])({'imports':[koa,upload,staticFile,crossDomain,anncic,anncicCache,anncicEvent,anncicTypeorm,anncicValidator,anncicHelper],'namespace':a3_0x2b3622(0x20a),'conflictCheck':![],'importConfigs':[{'default':ConfigDefault,'production':ConfigProduction}]})],CustomConfiguration);
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CustomConfiguration = void 0;
|
|
13
|
+
const core_1 = require("@midwayjs/core");
|
|
14
|
+
const core_2 = require("@midwayjs/core");
|
|
15
|
+
const ApiError_1 = require("./exception/ApiError");
|
|
16
|
+
const ApiService_1 = require("./service/ApiService");
|
|
17
|
+
const intercept_1 = require("./types/intercept");
|
|
18
|
+
const action_1 = require("./types/action");
|
|
19
|
+
const fs = require("fs");
|
|
20
|
+
const path = require("path");
|
|
21
|
+
const koasend = require("koa-send");
|
|
22
|
+
const koa = require("@midwayjs/koa");
|
|
23
|
+
const upload = require("@midwayjs/busboy");
|
|
24
|
+
const staticFile = require("@midwayjs/static-file");
|
|
25
|
+
const crossDomain = require("@midwayjs/cross-domain");
|
|
26
|
+
const ConfigDefault = require("./config/config.default");
|
|
27
|
+
const ConfigProduction = require("./config/config.production");
|
|
28
|
+
const anncic = require("@anncic-api/core");
|
|
29
|
+
const anncicCache = require("@anncic-api/cache");
|
|
30
|
+
const anncicEvent = require("@anncic-api/event");
|
|
31
|
+
const anncicTypeorm = require("@anncic-api/typeorm");
|
|
32
|
+
const anncicValidator = require("@anncic-api/validator");
|
|
33
|
+
const anncicHelper = require("anncic-apihelper");
|
|
34
|
+
let CustomConfiguration = class CustomConfiguration {
|
|
35
|
+
async onReady() {
|
|
36
|
+
await this.filterConfig();
|
|
37
|
+
await this.loggerConfig();
|
|
38
|
+
await this.handlerActionRoute();
|
|
39
|
+
await this.hanlderApplications();
|
|
40
|
+
}
|
|
41
|
+
async handlerActionRoute() {
|
|
42
|
+
const allConfig = this.config.getConfiguration();
|
|
43
|
+
const intercepts = (0, core_1.getClassMetadata)(intercept_1.INTERCEPT_KEY, intercept_1.InterceptTargetTmp) || {};
|
|
44
|
+
this.decorator.registerMethodHandler(action_1.ACTION_ROUTE_KEY, options => {
|
|
45
|
+
var _a;
|
|
46
|
+
const moduleconftmp = (0, core_1.getClassMetadata)(action_1.APPSCONFIG_KEY, action_1.AppsConfigTmp) || {};
|
|
47
|
+
const metadata = options.metadata, actionMeta = (0, core_1.getClassMetadata)(action_1.ACTION_KEY, options.target) || {};
|
|
48
|
+
const filepath = ((_a = actionMeta === null || actionMeta === void 0 ? void 0 : actionMeta.filepath) === null || _a === void 0 ? void 0 : _a.substring(0, actionMeta.filepath.lastIndexOf('.'))) || '';
|
|
49
|
+
const actionConfig = (actionMeta === null || actionMeta === void 0 ? void 0 : actionMeta.module) ? ((moduleconftmp === null || moduleconftmp === void 0 ? void 0 : moduleconftmp[actionMeta.module]) || {}) : {};
|
|
50
|
+
return {
|
|
51
|
+
before: async (joinPoint) => {
|
|
52
|
+
var _a, _b, _c, _d;
|
|
53
|
+
const ctx = (_a = joinPoint === null || joinPoint === void 0 ? void 0 : joinPoint.target) === null || _a === void 0 ? void 0 : _a[core_2.REQUEST_OBJ_CTX_KEY], input = lodash.defaultsDeep({}, ctx.request.body || ctx.request[((_b = allConfig === null || allConfig === void 0 ? void 0 : allConfig.bodyXml) === null || _b === void 0 ? void 0 : _b.key) || 'body'] || {}, ctx.request.query || {});
|
|
54
|
+
ctx._matchedRouteMeta = {
|
|
55
|
+
module: (actionConfig === null || actionConfig === void 0 ? void 0 : actionConfig.name) || '',
|
|
56
|
+
routePath: `${ctx.path}`,
|
|
57
|
+
routeName: `${actionMeta.routerOptions.tagName}@${metadata.routerName}`,
|
|
58
|
+
routeMethod: ((metadata === null || metadata === void 0 ? void 0 : metadata.requestMethod) || ctx.method || '').toLowerCase(),
|
|
59
|
+
routeDescription: (metadata === null || metadata === void 0 ? void 0 : metadata.description) || '',
|
|
60
|
+
filemethod: `${filepath}@${metadata.method || ''}`,
|
|
61
|
+
};
|
|
62
|
+
if (ctx && (metadata === null || metadata === void 0 ? void 0 : metadata.apimit)) {
|
|
63
|
+
try {
|
|
64
|
+
const checkObjTmp = ((_c = allConfig === null || allConfig === void 0 ? void 0 : allConfig.anncicapi) === null || _c === void 0 ? void 0 : _c.requestKey) && typeof (input === null || input === void 0 ? void 0 : input[allConfig.anncicapi.requestKey]) == 'string' ? (JSON.parse(base64_decode(input[allConfig.anncicapi.requestKey]) || '{}') || {}) : (((_d = ctx === null || ctx === void 0 ? void 0 : ctx.request) === null || _d === void 0 ? void 0 : _d.headers) || {});
|
|
65
|
+
if (!this.ApiService.checksign(checkObjTmp)) {
|
|
66
|
+
throw new AnnError(ApiError_1.ApiError.HEADERS_SIGNATURE);
|
|
67
|
+
}
|
|
68
|
+
for (const checkKey in (checkObjTmp || {})) {
|
|
69
|
+
ctx.headers[checkKey] = checkObjTmp[checkKey];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
if (error instanceof AnnError) {
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
throw new AnnError(ApiError_1.ApiError._UNKNOW_);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
around: async (joinPoint) => {
|
|
83
|
+
var _a, _b, _c;
|
|
84
|
+
const ctx = (_a = joinPoint === null || joinPoint === void 0 ? void 0 : joinPoint.target) === null || _a === void 0 ? void 0 : _a[core_2.REQUEST_OBJ_CTX_KEY];
|
|
85
|
+
if (ctx && (metadata === null || metadata === void 0 ? void 0 : metadata.apimit) && ((metadata === null || metadata === void 0 ? void 0 : metadata.intercept) || typeof (metadata === null || metadata === void 0 ? void 0 : metadata.intercept) == 'undefined')) {
|
|
86
|
+
if (((_b = ctx.headers) === null || _b === void 0 ? void 0 : _b.device) && ((_c = intercepts === null || intercepts === void 0 ? void 0 : intercepts[ctx.headers.device]) === null || _c === void 0 ? void 0 : _c.length) > 0) {
|
|
87
|
+
for (const intercept of (intercepts[ctx.headers.device] || [])) {
|
|
88
|
+
if (core_1.Types.isClass(intercept)) {
|
|
89
|
+
const instance = await ctx.requestContext.getAsync(intercept);
|
|
90
|
+
if (typeof (instance === null || instance === void 0 ? void 0 : instance.match) == 'function') {
|
|
91
|
+
if (await instance.match(ctx, (typeof (ctx === null || ctx === void 0 ? void 0 : ctx.method) == 'string' && (ctx === null || ctx === void 0 ? void 0 : ctx._matchedRoute)) ? `${ctx.method.toLowerCase()}@${ctx === null || ctx === void 0 ? void 0 : ctx._matchedRoute}` : undefined, metadata)) {
|
|
92
|
+
await instance.handler(ctx, (typeof (ctx === null || ctx === void 0 ? void 0 : ctx.method) == 'string' && (ctx === null || ctx === void 0 ? void 0 : ctx._matchedRoute)) ? `${ctx.method.toLowerCase()}@${ctx === null || ctx === void 0 ? void 0 : ctx._matchedRoute}` : undefined, metadata);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
await instance.handler(ctx, (typeof (ctx === null || ctx === void 0 ? void 0 : ctx.method) == 'string' && (ctx === null || ctx === void 0 ? void 0 : ctx._matchedRoute)) ? `${ctx.method.toLowerCase()}@${ctx === null || ctx === void 0 ? void 0 : ctx._matchedRoute}` : undefined, metadata);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else if (core_1.Types.isFunction(intercept)) {
|
|
100
|
+
await intercept(ctx, (typeof (ctx === null || ctx === void 0 ? void 0 : ctx.method) == 'string' && (ctx === null || ctx === void 0 ? void 0 : ctx._matchedRoute)) ? `${ctx.method.toLowerCase()}@${ctx === null || ctx === void 0 ? void 0 : ctx._matchedRoute}` : undefined, metadata);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return await joinPoint.proceed(...joinPoint.args);
|
|
106
|
+
},
|
|
107
|
+
afterThrow: (joinPoint, error) => {
|
|
108
|
+
throw error;
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
async hanlderApplications() {
|
|
114
|
+
const allConfig = this.config.getConfiguration();
|
|
115
|
+
this.application.getApplications(['koa']).forEach((app) => {
|
|
116
|
+
if (app === null || app === void 0 ? void 0 : app.context) {
|
|
117
|
+
Object.defineProperties(app.context, {
|
|
118
|
+
hosturl: {
|
|
119
|
+
configurable: false,
|
|
120
|
+
get: function () {
|
|
121
|
+
var _a, _b, _c, _d;
|
|
122
|
+
if ((this === null || this === void 0 ? void 0 : this.host) && !this.host.startsWith('http')) {
|
|
123
|
+
let hostArr = this.host.split(':');
|
|
124
|
+
if (['80', '443'].includes(hostArr === null || hostArr === void 0 ? void 0 : hostArr[1])) {
|
|
125
|
+
return `${(!!((_b = (_a = this === null || this === void 0 ? void 0 : this.req) === null || _a === void 0 ? void 0 : _a.connection) === null || _b === void 0 ? void 0 : _b.encrypted) || (hostArr === null || hostArr === void 0 ? void 0 : hostArr[1]) == '443') ? 'https://' : 'http://'}${hostArr[0]}`;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
return `${!!((_d = (_c = this === null || this === void 0 ? void 0 : this.req) === null || _c === void 0 ? void 0 : _c.connection) === null || _d === void 0 ? void 0 : _d.encrypted) ? 'https://' : 'http://'}${this.host}`;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return ``;
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
ok: {
|
|
135
|
+
value: function (data, extra, code = 0) {
|
|
136
|
+
return { code, data, extra };
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
input: {
|
|
140
|
+
value: function (key, defval) {
|
|
141
|
+
var _a;
|
|
142
|
+
const params = lodash.defaultsDeep({}, this.request.body || this.request[((_a = allConfig === null || allConfig === void 0 ? void 0 : allConfig.bodyXml) === null || _a === void 0 ? void 0 : _a.key) || 'body'] || {}, this.request.query || {});
|
|
143
|
+
return key ? lodash.get(params, key, defval) : params;
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
when: {
|
|
147
|
+
value: async function (key, callbal) {
|
|
148
|
+
const value = this.input(key, null);
|
|
149
|
+
if (!lodash.isNull(value)) {
|
|
150
|
+
return await callbal(value);
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
only: {
|
|
155
|
+
value: function (keys) {
|
|
156
|
+
const params = {};
|
|
157
|
+
for (let index = 0; index < keys.length; index++) {
|
|
158
|
+
if (lodash.isArray(keys[index]) && keys[index].length > 0 && lodash.isString(keys[index][0])) {
|
|
159
|
+
params[keys[index][0]] = this.input(keys[index][0], keys[index].length > 1 ? keys[index][1] : null);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return params;
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
koasend: {
|
|
166
|
+
value: async function (filepath, filename) {
|
|
167
|
+
if (filepath && !fs.existsSync(filepath) && !fs.existsSync(`${this.app.getAppDir()}/${filepath}`)) {
|
|
168
|
+
return '文件不存在';
|
|
169
|
+
}
|
|
170
|
+
filepath = fs.existsSync(filepath) ? filepath : `${this.app.getAppDir()}/${filepath}`;
|
|
171
|
+
this.attachment(filename || filepath);
|
|
172
|
+
return await koasend(this, filepath);
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
async loggerConfig() {
|
|
180
|
+
var _a;
|
|
181
|
+
if (fs.existsSync(`${this.app.getBaseDir()}/apps`) && fs.statSync(`${this.app.getBaseDir()}/apps`).isDirectory()) {
|
|
182
|
+
const allConfig = this.config.getConfiguration();
|
|
183
|
+
const loggerClients = ((_a = allConfig === null || allConfig === void 0 ? void 0 : allConfig.midwayLogger) === null || _a === void 0 ? void 0 : _a.clients) || {};
|
|
184
|
+
if (!fs.existsSync(`${this.app.getBaseDir()}/app`)) {
|
|
185
|
+
loggerClients["app"] = {
|
|
186
|
+
lazyLoad: true,
|
|
187
|
+
enableJSON: true,
|
|
188
|
+
enableConsole: this.environment.isDevelopmentEnvironment(),
|
|
189
|
+
fileLogName: `app.log`,
|
|
190
|
+
dir: path.join(this.app.getAppDir(), 'runtime', `app`)
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
if (!fs.existsSync(`${this.app.getBaseDir()}/basic`)) {
|
|
194
|
+
loggerClients["basic"] = {
|
|
195
|
+
lazyLoad: true,
|
|
196
|
+
enableJSON: true,
|
|
197
|
+
enableConsole: this.environment.isDevelopmentEnvironment(),
|
|
198
|
+
fileLogName: `basic.log`,
|
|
199
|
+
dir: path.join(this.app.getAppDir(), 'runtime', `basic`)
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
for (const pathName of fs.readdirSync(`${this.app.getBaseDir()}/apps`)) {
|
|
203
|
+
if (!fs.statSync(`${this.app.getBaseDir()}/apps/${pathName}`).isDirectory()) {
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
if (!(loggerClients === null || loggerClients === void 0 ? void 0 : loggerClients[pathName])) {
|
|
207
|
+
loggerClients[pathName] = {
|
|
208
|
+
lazyLoad: true,
|
|
209
|
+
enableJSON: true,
|
|
210
|
+
enableConsole: this.environment.isDevelopmentEnvironment(),
|
|
211
|
+
fileLogName: `${pathName}.log`,
|
|
212
|
+
dir: path.join(this.app.getAppDir(), 'runtime', `apps-${pathName}`)
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
this.loggerService.createLogger(pathName, loggerClients[pathName]);
|
|
216
|
+
}
|
|
217
|
+
if (Object.keys(loggerClients).length > 0) {
|
|
218
|
+
if (!allConfig.midwayLogger) {
|
|
219
|
+
allConfig.midwayLogger = {
|
|
220
|
+
default: {
|
|
221
|
+
maxSize: '1m',
|
|
222
|
+
maxFiles: '270d',
|
|
223
|
+
dir: path.join(this.app.getAppDir(), 'runtime'),
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
allConfig.midwayLogger.clients = loggerClients;
|
|
228
|
+
}
|
|
229
|
+
this.config.addObject(allConfig);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
async filterConfig() {
|
|
233
|
+
var _a, _b, _c, _d, _e, _f;
|
|
234
|
+
const allConfig = this.config.getConfiguration();
|
|
235
|
+
if (((_b = (_a = allConfig === null || allConfig === void 0 ? void 0 : allConfig.anncicapi) === null || _a === void 0 ? void 0 : _a.devices) === null || _b === void 0 ? void 0 : _b.DEFAULT) && Object.keys(allConfig.anncicapi.devices).length > 1) {
|
|
236
|
+
delete allConfig.anncicapi.devices.DEFAULT;
|
|
237
|
+
}
|
|
238
|
+
if ((_c = allConfig === null || allConfig === void 0 ? void 0 : allConfig.staticFile) === null || _c === void 0 ? void 0 : _c.dirs) {
|
|
239
|
+
for (const dirskey in allConfig.staticFile.dirs) {
|
|
240
|
+
if (((_d = allConfig.staticFile.dirs[dirskey]) === null || _d === void 0 ? void 0 : _d.dir) && typeof ((_e = allConfig.staticFile.dirs[dirskey]) === null || _e === void 0 ? void 0 : _e.dir) == 'string' && !fs.existsSync(allConfig.staticFile.dirs[dirskey].dir)) {
|
|
241
|
+
fs.mkdirSync(allConfig.staticFile.dirs[dirskey].dir, { recursive: true });
|
|
242
|
+
console.log(`Anncic-api static-file : mkdir ${allConfig.staticFile.dirs[dirskey].dir}`);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
if (((_f = allConfig === null || allConfig === void 0 ? void 0 : allConfig.upload) === null || _f === void 0 ? void 0 : _f.tmpdir) && !fs.existsSync(allConfig.upload.tmpdir)) {
|
|
247
|
+
fs.mkdirSync(allConfig.upload.tmpdir, { recursive: true });
|
|
248
|
+
console.log(`Anncic-api upload-tmpdir : mkdir ${allConfig.upload.tmpdir}`);
|
|
249
|
+
}
|
|
250
|
+
this.config.addObject(allConfig);
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
exports.CustomConfiguration = CustomConfiguration;
|
|
254
|
+
__decorate([
|
|
255
|
+
(0, core_1.App)(),
|
|
256
|
+
__metadata("design:type", Object)
|
|
257
|
+
], CustomConfiguration.prototype, "app", void 0);
|
|
258
|
+
__decorate([
|
|
259
|
+
(0, core_1.Inject)(),
|
|
260
|
+
__metadata("design:type", core_2.MidwayConfigService)
|
|
261
|
+
], CustomConfiguration.prototype, "config", void 0);
|
|
262
|
+
__decorate([
|
|
263
|
+
(0, core_1.Inject)(),
|
|
264
|
+
__metadata("design:type", core_2.MidwayDecoratorService)
|
|
265
|
+
], CustomConfiguration.prototype, "decorator", void 0);
|
|
266
|
+
__decorate([
|
|
267
|
+
(0, core_1.Inject)(),
|
|
268
|
+
__metadata("design:type", core_2.MidwayApplicationManager)
|
|
269
|
+
], CustomConfiguration.prototype, "application", void 0);
|
|
270
|
+
__decorate([
|
|
271
|
+
(0, core_1.Inject)(),
|
|
272
|
+
__metadata("design:type", core_2.MidwayEnvironmentService)
|
|
273
|
+
], CustomConfiguration.prototype, "environment", void 0);
|
|
274
|
+
__decorate([
|
|
275
|
+
(0, core_1.Inject)(),
|
|
276
|
+
__metadata("design:type", core_1.MidwayLoggerService)
|
|
277
|
+
], CustomConfiguration.prototype, "loggerService", void 0);
|
|
278
|
+
__decorate([
|
|
279
|
+
(0, core_1.Inject)(),
|
|
280
|
+
__metadata("design:type", ApiService_1.ApiService)
|
|
281
|
+
], CustomConfiguration.prototype, "ApiService", void 0);
|
|
282
|
+
exports.CustomConfiguration = CustomConfiguration = __decorate([
|
|
283
|
+
(0, core_1.Configuration)({
|
|
284
|
+
imports: [koa, upload, staticFile, crossDomain, anncic, anncicCache, anncicEvent, anncicTypeorm, anncicValidator, anncicHelper],
|
|
285
|
+
namespace: 'anncic-api',
|
|
286
|
+
conflictCheck: false,
|
|
287
|
+
importConfigs: [
|
|
288
|
+
{ default: ConfigDefault, production: ConfigProduction }
|
|
289
|
+
],
|
|
290
|
+
})
|
|
291
|
+
], CustomConfiguration);
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF5STtBQUN6SSx5Q0FBc0o7QUFFdEosbURBQWdEO0FBQ2hELHFEQUFrRDtBQUNsRCxpREFBc0U7QUFDdEUsMkNBQTZGO0FBRzdGLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0Isb0NBQW9DO0FBRXBDLHFDQUFxQztBQUNyQywyQ0FBMkM7QUFDM0Msb0RBQW9EO0FBQ3BELHNEQUFzRDtBQUN0RCx5REFBeUQ7QUFDekQsK0RBQStEO0FBSS9ELDJDQUEyQztBQUMzQyxpREFBaUQ7QUFDakQsaURBQWlEO0FBQ2pELHFEQUFxRDtBQUNyRCx5REFBeUQ7QUFDekQsaURBQWlEO0FBVTFDLElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW1CO0lBVzVCLEtBQUssQ0FBQyxPQUFPO1FBQ1QsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsTUFBTSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFUyxLQUFLLENBQUMsa0JBQWtCO1FBQzlCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUNqRCxNQUFNLFVBQVUsR0FBRyxJQUFBLHVCQUFnQixFQUFDLHlCQUFhLEVBQUUsOEJBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyx5QkFBZ0IsRUFBRSxPQUFPLENBQUMsRUFBRTs7WUFDN0QsTUFBTSxhQUFhLEdBQUcsSUFBQSx1QkFBZ0IsRUFBQyx1QkFBYyxFQUFFLHNCQUFhLENBQUMsSUFB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
|