@cicctencent/midwayjs-base 1.0.19 → 1.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/package.json +65 -65
  2. package/typings/midway.d.ts +54 -54
  3. package/dist/base/base.controller.d.ts +0 -5
  4. package/dist/base/base.controller.js +0 -28
  5. package/dist/base/base.model.service.d.ts +0 -29
  6. package/dist/base/base.model.service.js +0 -86
  7. package/dist/base/base.service.d.ts +0 -30
  8. package/dist/base/base.service.js +0 -86
  9. package/dist/config/config.default.d.ts +0 -3
  10. package/dist/config/config.default.js +0 -153
  11. package/dist/config/env.d.ts +0 -1
  12. package/dist/config/env.js +0 -19
  13. package/dist/configuration.d.ts +0 -5
  14. package/dist/configuration.js +0 -75
  15. package/dist/filter/default.filter.d.ts +0 -7
  16. package/dist/filter/default.filter.js +0 -24
  17. package/dist/filter/notfound.filter.d.ts +0 -5
  18. package/dist/filter/notfound.filter.js +0 -22
  19. package/dist/guard/api.d.ts +0 -16
  20. package/dist/guard/api.js +0 -88
  21. package/dist/guard/auth.d.ts +0 -19
  22. package/dist/guard/auth.js +0 -184
  23. package/dist/index.d.ts +0 -16
  24. package/dist/index.js +0 -37
  25. package/dist/lib/decorator.d.ts +0 -36
  26. package/dist/lib/decorator.js +0 -79
  27. package/dist/lib/request.d.ts +0 -7
  28. package/dist/lib/request.js +0 -7
  29. package/dist/lib/utils.d.ts +0 -15
  30. package/dist/lib/utils.js +0 -100
  31. package/dist/middleware/apiResultFormatter.d.ts +0 -8
  32. package/dist/middleware/apiResultFormatter.js +0 -84
  33. package/dist/middleware/detect.middleware.d.ts +0 -5
  34. package/dist/middleware/detect.middleware.js +0 -61
  35. package/dist/middleware/requestInit.d.ts +0 -8
  36. package/dist/middleware/requestInit.js +0 -100
  37. package/dist/service/session.service.d.ts +0 -39
  38. package/dist/service/session.service.js +0 -93
  39. package/dist/service/tencent.service.d.ts +0 -38
  40. package/dist/service/tencent.service.js +0 -87
package/dist/index.d.ts DELETED
@@ -1,16 +0,0 @@
1
- export * as koa from '@midwayjs/koa';
2
- export { BaseConfiguration as Configuration } from './configuration';
3
- export * as utils from './lib/utils';
4
- export * as decorators from './lib/decorator';
5
- export * from '@fefeding/common/dist/models/base/enumType';
6
- export { BaseORM as BaseEntity } from '@fefeding/common/dist/models/base/baseORM';
7
- export * from './middleware/apiResultFormatter';
8
- export * from './middleware/requestInit';
9
- export * from './middleware/detect.middleware';
10
- export * from './guard/api';
11
- export * from './guard/auth';
12
- export * from './base/base.service';
13
- export * from './base/base.model.service';
14
- export * from './service/session.service';
15
- export * from './service/tencent.service';
16
- export * from './base/base.controller';
package/dist/index.js DELETED
@@ -1,37 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.BaseEntity = exports.decorators = exports.utils = exports.Configuration = exports.koa = void 0;
18
- // @ts-ignore
19
- exports.koa = require("@midwayjs/koa");
20
- var configuration_1 = require("./configuration");
21
- Object.defineProperty(exports, "Configuration", { enumerable: true, get: function () { return configuration_1.BaseConfiguration; } });
22
- exports.utils = require("./lib/utils");
23
- exports.decorators = require("./lib/decorator");
24
- __exportStar(require("@fefeding/common/dist/models/base/enumType"), exports);
25
- var baseORM_1 = require("@fefeding/common/dist/models/base/baseORM");
26
- Object.defineProperty(exports, "BaseEntity", { enumerable: true, get: function () { return baseORM_1.BaseORM; } });
27
- __exportStar(require("./middleware/apiResultFormatter"), exports);
28
- __exportStar(require("./middleware/requestInit"), exports);
29
- __exportStar(require("./middleware/detect.middleware"), exports);
30
- __exportStar(require("./guard/api"), exports);
31
- __exportStar(require("./guard/auth"), exports);
32
- __exportStar(require("./base/base.service"), exports);
33
- __exportStar(require("./base/base.model.service"), exports);
34
- __exportStar(require("./service/session.service"), exports);
35
- __exportStar(require("./service/tencent.service"), exports);
36
- __exportStar(require("./base/base.controller"), exports);
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxhQUFhO0FBQ2IsdUNBQXFDO0FBRXJDLGlEQUFxRTtBQUE1RCw4R0FBQSxpQkFBaUIsT0FBaUI7QUFFM0MsdUNBQXFDO0FBQ3JDLGdEQUE4QztBQUc5Qyw2RUFBMkQ7QUFDM0QscUVBQWtGO0FBQXpFLHFHQUFBLE9BQU8sT0FBYztBQUc5QixrRUFBZ0Q7QUFDaEQsMkRBQXlDO0FBQ3pDLGlFQUErQztBQUUvQyw4Q0FBNEI7QUFDNUIsK0NBQTZCO0FBRTdCLHNEQUFvQztBQUNwQyw0REFBMEM7QUFDMUMsNERBQTBDO0FBQzFDLDREQUEwQztBQUUxQyx5REFBdUMifQ==
@@ -1,36 +0,0 @@
1
- /**
2
- * 判断是否校验token的api装饰器
3
- * @param need 是否要
4
- * @returns
5
- */
6
- export declare function checkApiToken(need?: boolean): MethodDecorator;
7
- /**
8
- * 获取装饰的是否需要toke验证
9
- * @param target 对象
10
- * @param propertyKey 属性或方法名
11
- */
12
- export declare function getApiToken(target: any, propertyKey: any): any;
13
- /**
14
- * 判断是否校验登陆态
15
- * @param need 是否要
16
- * @returns
17
- */
18
- export declare function checkLogin(need?: boolean): MethodDecorator;
19
- /**
20
- * 获取装饰的是否需要校验登陆态
21
- * @param target 对象
22
- * @param propertyKey 属性或方法名
23
- */
24
- export declare function getCheckLogin(target: any, propertyKey: any): any;
25
- /**
26
- * 判断是否校验在IP白名单内
27
- * @param need 是否要
28
- * @returns
29
- */
30
- export declare function checkIP(need?: boolean): MethodDecorator;
31
- /**
32
- * 获取装饰的是否需要校验IP白名单
33
- * @param target 对象
34
- * @param propertyKey 属性或方法名
35
- */
36
- export declare function getCheckIP(target: any, propertyKey: any): any;
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.checkApiToken = checkApiToken;
4
- exports.getApiToken = getApiToken;
5
- exports.checkLogin = checkLogin;
6
- exports.getCheckLogin = getCheckLogin;
7
- exports.checkIP = checkIP;
8
- exports.getCheckIP = getCheckIP;
9
- // @ts-ignore
10
- const core_1 = require("@midwayjs/core");
11
- const decorator_1 = require("@fefeding/common/dist/utils/decorator");
12
- const CheckIPKey = 'decorator:CheckIPKey';
13
- /**
14
- * 判断是否校验token的api装饰器
15
- * @param need 是否要
16
- * @returns
17
- */
18
- function checkApiToken(need = true) {
19
- return (target, propertyKey) => {
20
- // 只保存元数据
21
- (0, core_1.savePropertyMetadata)(decorator_1.default.apiTokenMetadataKey, need, target, propertyKey);
22
- };
23
- }
24
- /**
25
- * 获取装饰的是否需要toke验证
26
- * @param target 对象
27
- * @param propertyKey 属性或方法名
28
- */
29
- function getApiToken(target, propertyKey) {
30
- try {
31
- const value = (0, core_1.getPropertyMetadata)(decorator_1.default.apiTokenMetadataKey, target, propertyKey);
32
- return value;
33
- }
34
- catch (e) {
35
- console.log(e);
36
- return false;
37
- }
38
- }
39
- /**
40
- * 判断是否校验登陆态
41
- * @param need 是否要
42
- * @returns
43
- */
44
- function checkLogin(need = true) {
45
- return (target, propertyKey) => {
46
- // 只保存元数据
47
- (0, core_1.savePropertyMetadata)(decorator_1.default.apiAuthMetadataKey, need, target, propertyKey);
48
- };
49
- }
50
- /**
51
- * 获取装饰的是否需要校验登陆态
52
- * @param target 对象
53
- * @param propertyKey 属性或方法名
54
- */
55
- function getCheckLogin(target, propertyKey) {
56
- const value = (0, core_1.getPropertyMetadata)(decorator_1.default.apiAuthMetadataKey, target, propertyKey);
57
- return value;
58
- }
59
- /**
60
- * 判断是否校验在IP白名单内
61
- * @param need 是否要
62
- * @returns
63
- */
64
- function checkIP(need = true) {
65
- return (target, propertyKey) => {
66
- // 只保存元数据
67
- (0, core_1.savePropertyMetadata)(CheckIPKey, need, target, propertyKey);
68
- };
69
- }
70
- /**
71
- * 获取装饰的是否需要校验IP白名单
72
- * @param target 对象
73
- * @param propertyKey 属性或方法名
74
- */
75
- function getCheckIP(target, propertyKey) {
76
- const value = (0, core_1.getPropertyMetadata)(CheckIPKey, target, propertyKey);
77
- return value;
78
- }
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFXQSxzQ0FVQztBQU9ELGtDQWFDO0FBT0QsZ0NBVUM7QUFPRCxzQ0FPQztBQVNELDBCQVVDO0FBT0QsZ0NBT0M7QUF6R0QsYUFBYTtBQUNiLHlDQUEyRTtBQUMzRSxxRUFBK0Q7QUFFL0QsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUM7QUFFMUM7Ozs7R0FJRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxJQUFJLEdBQUcsSUFBSTtJQUNyQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUFFO1FBQzNCLFNBQVM7UUFDVCxJQUFBLDJCQUFvQixFQUNoQixtQkFBVSxDQUFDLG1CQUFtQixFQUM5QixJQUFJLEVBQ0osTUFBTSxFQUNOLFdBQVcsQ0FDZCxDQUFDO0lBQ04sQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixXQUFXLENBQUMsTUFBTSxFQUFFLFdBQVc7SUFDM0MsSUFBSSxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBQSwwQkFBbUIsRUFDN0IsbUJBQVUsQ0FBQyxtQkFBbUIsRUFDOUIsTUFBTSxFQUNOLFdBQVcsQ0FDZCxDQUFDO1FBQ0YsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELE9BQU0sQ0FBQyxFQUFFLENBQUM7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2YsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztBQUNMLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJO0lBQ2xDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLEVBQUU7UUFDM0IsU0FBUztRQUNULElBQUEsMkJBQW9CLEVBQ2hCLG1CQUFVLENBQUMsa0JBQWtCLEVBQzdCLElBQUksRUFDSixNQUFNLEVBQ04sV0FBVyxDQUNkLENBQUM7SUFDTixDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxNQUFNLEVBQUUsV0FBVztJQUM3QyxNQUFNLEtBQUssR0FBRyxJQUFBLDBCQUFtQixFQUM3QixtQkFBVSxDQUFDLGtCQUFrQixFQUM3QixNQUFNLEVBQ04sV0FBVyxDQUNkLENBQUM7SUFDRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBSUQ7Ozs7R0FJRztBQUNILFNBQWdCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSTtJQUMvQixPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUFFO1FBQzNCLFNBQVM7UUFDVCxJQUFBLDJCQUFvQixFQUNoQixVQUFVLEVBQ1YsSUFBSSxFQUNKLE1BQU0sRUFDTixXQUFXLENBQ2QsQ0FBQztJQUNOLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLE1BQU0sRUFBRSxXQUFXO0lBQzFDLE1BQU0sS0FBSyxHQUFHLElBQUEsMEJBQW1CLEVBQzdCLFVBQVUsRUFDVixNQUFNLEVBQ04sV0FBVyxDQUNkLENBQUM7SUFDRixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIn0=
@@ -1,7 +0,0 @@
1
- import { requestApi, requestServer } from '@fefeding/common/dist/utils/axios';
2
- /**
3
- * 请求远程API
4
- * @param req 请求对象
5
- * @returns
6
- */
7
- export { requestApi, requestServer };
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.requestServer = exports.requestApi = void 0;
4
- const axios_1 = require("@fefeding/common/dist/utils/axios");
5
- Object.defineProperty(exports, "requestApi", { enumerable: true, get: function () { return axios_1.requestApi; } });
6
- Object.defineProperty(exports, "requestServer", { enumerable: true, get: function () { return axios_1.requestServer; } });
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2REFBOEU7QUFPckUsMkZBUEEsa0JBQVUsT0FPQTtBQUFFLDhGQVBBLHFCQUFhLE9BT0EifQ==
@@ -1,15 +0,0 @@
1
- import { Context } from '@midwayjs/koa';
2
- import { loadEnv } from '../config/env';
3
- export declare function checkUrlHost(url: string, host: string | Array<string>): boolean;
4
- /**
5
- * render模板
6
- * @param ctx
7
- * @param file
8
- * @returns
9
- */
10
- export declare function getDefaultTemplate(ctx: Context, file?: string, data?: any): Promise<string>;
11
- export declare function getAuthToken(ctx: Context): any;
12
- export declare function setAuthToken(ctx: Context, token: string): void;
13
- export declare function decodeJWT(token: string, secretKey: string): any;
14
- export declare function encodeJWT(data: any, secretKey: string): any;
15
- export { loadEnv };
package/dist/lib/utils.js DELETED
@@ -1,100 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadEnv = void 0;
4
- exports.checkUrlHost = checkUrlHost;
5
- exports.getDefaultTemplate = getDefaultTemplate;
6
- exports.getAuthToken = getAuthToken;
7
- exports.setAuthToken = setAuthToken;
8
- exports.decodeJWT = decodeJWT;
9
- exports.encodeJWT = encodeJWT;
10
- const jwt = require("jsonwebtoken");
11
- const env_1 = require("../config/env");
12
- Object.defineProperty(exports, "loadEnv", { enumerable: true, get: function () { return env_1.loadEnv; } });
13
- //判断url是否是对应的域名
14
- function checkUrlHost(url, host) {
15
- if (/^\/[^\/]{1,}/.test(url))
16
- return true;
17
- if (Array.isArray(host)) {
18
- for (const h of host) {
19
- if (checkUrlHost(url, h))
20
- return true;
21
- }
22
- return false;
23
- }
24
- const reg = new RegExp('^(http(s)?:)?//' + host);
25
- return reg.test(url);
26
- }
27
- /**
28
- * render模板
29
- * @param ctx
30
- * @param file
31
- * @returns
32
- */
33
- function getDefaultTemplate(ctx, file = 'index.html', data = {}) {
34
- // 前端端口,如果为空,说明就是开发环境了
35
- const viteTarget = process.env.VITE_PORT;
36
- const config = ctx.app.getConfig();
37
- const prefix = config.koa.globalPrefix;
38
- const option = {
39
- data: {
40
- config: {
41
- prefix,
42
- },
43
- session: ctx.currentSession || null,
44
- ...data
45
- },
46
- title: data.title || '',
47
- description: process.env.DESCRIPTION || '',
48
- env: process.env,
49
- prefix,
50
- viteTarget: viteTarget ? `//${ctx.hostname}:${viteTarget}` : '',
51
- };
52
- //console.log(file, data);
53
- return ctx.render(file, option);
54
- }
55
- // 从当前请求中获取登陆态token
56
- function getAuthToken(ctx) {
57
- const body = (ctx.request.body || {});
58
- const token = ctx.URL.searchParams.get('token') ||
59
- ctx.request.header['x-auth-token'] ||
60
- ctx.cookies.get('token', {
61
- signed: false,
62
- }) ||
63
- ctx.request.header['authorization'] ||
64
- body.token;
65
- return token;
66
- }
67
- // 种登陆态token
68
- function setAuthToken(ctx, token) {
69
- ctx.cookies.set('token', token, {
70
- httpOnly: true,
71
- maxAge: 1000 * 60 * 60 * 24 * 30,
72
- });
73
- }
74
- // 验证jwt
75
- function decodeJWT(token, secretKey) {
76
- try {
77
- const decoded = jwt.verify(token, secretKey);
78
- return decoded;
79
- }
80
- catch (err) {
81
- console.error('Token 验证失败:', err.message); // 如过期、篡改等
82
- return null;
83
- }
84
- }
85
- /*
86
- id: string;
87
- code?: string;
88
- loginId: string;
89
- userId?: number;
90
- user?: User;
91
- account?: Account;
92
- appId?: number;
93
- status?: EStatus;
94
- lastDate: Date;
95
- */
96
- function encodeJWT(data, secretKey) {
97
- const token = jwt.sign(data, secretKey, { algorithm: 'HS256' });
98
- return token;
99
- }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BLG9DQVVDO0FBUUQsZ0RBcUJDO0FBR0Qsb0NBV0M7QUFHRCxvQ0FLQztBQUdELDhCQVFDO0FBYUQsOEJBR0M7QUE1RkQsb0NBQW9DO0FBQ3BDLHVDQUF3QztBQThGcEMsd0ZBOUZLLGFBQU8sT0E4Rkw7QUE1RlgsZUFBZTtBQUNmLFNBQWdCLFlBQVksQ0FBQyxHQUFXLEVBQUUsSUFBMEI7SUFDaEUsSUFBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3pDLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3JCLEtBQUksTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEIsSUFBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztRQUN6QyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2pELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBRUQ7Ozs7O09BS087QUFDUCxTQUFnQixrQkFBa0IsQ0FBQyxHQUFZLEVBQUUsSUFBSSxHQUFDLFlBQVksRUFBRSxPQUFZLEVBQUU7SUFDOUUsc0JBQXNCO0lBQ3RCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7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
@@ -1,8 +0,0 @@
1
- import { IMiddleware } from '@midwayjs/core';
2
- import { NextFunction, Context } from '@midwayjs/koa';
3
- export declare class ApiResultFormatterMiddleware implements IMiddleware<Context, NextFunction> {
4
- apiOption: any;
5
- ignore(ctx: Context): boolean;
6
- resolve(): (ctx: Context, next: NextFunction) => Promise<void>;
7
- canFormat(data: any): boolean;
8
- }
@@ -1,84 +0,0 @@
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.ApiResultFormatterMiddleware = void 0;
13
- // @ts-ignore
14
- const core_1 = require("@midwayjs/core");
15
- const stream_1 = require("stream");
16
- let ApiResultFormatterMiddleware = class ApiResultFormatterMiddleware {
17
- apiOption;
18
- ignore(ctx) {
19
- // 下面的路由将忽略此中间件
20
- if (this.apiOption?.ignore) {
21
- for (const ig of this.apiOption.ignore) {
22
- if (typeof ig === 'string' && ctx.path === ig)
23
- return true;
24
- if (ig?.test?.(ctx.path))
25
- return true;
26
- }
27
- }
28
- return false;
29
- }
30
- resolve() {
31
- return async (ctx, next) => {
32
- const isApi = this.apiOption?.reg?.test(ctx.request.path);
33
- //console.log(ctx.URL.toString(), isApi);
34
- if (isApi) {
35
- try {
36
- await next();
37
- const res = ctx.body;
38
- // 是否是可格式化的类型
39
- if (this.canFormat(res)) {
40
- ctx.body = Object.assign({
41
- ret: 0,
42
- msg: 'success',
43
- data: null,
44
- }, typeof res?.ret === 'number' ? res : { data: res });
45
- //ctx.logger.info(ctx.request.rawBody, ctx.body);
46
- }
47
- }
48
- catch (err) {
49
- console.error(err);
50
- if (typeof err.ret === 'number') {
51
- ctx.body = err;
52
- }
53
- else {
54
- ctx.body = {
55
- ret: 1001,
56
- msg: err.message,
57
- };
58
- }
59
- ctx.logger.error(ctx.request.rawBody, ctx.body);
60
- }
61
- finally {
62
- if (ctx.status !== 302)
63
- ctx.status = 200;
64
- }
65
- }
66
- else {
67
- await next();
68
- }
69
- };
70
- }
71
- canFormat(data) {
72
- return data !== '' && !Buffer.isBuffer(data) &&
73
- !(data instanceof stream_1.Stream || data instanceof Uint8Array || data instanceof Blob);
74
- }
75
- };
76
- exports.ApiResultFormatterMiddleware = ApiResultFormatterMiddleware;
77
- __decorate([
78
- (0, core_1.Config)('apiOption'),
79
- __metadata("design:type", Object)
80
- ], ApiResultFormatterMiddleware.prototype, "apiOption", void 0);
81
- exports.ApiResultFormatterMiddleware = ApiResultFormatterMiddleware = __decorate([
82
- (0, core_1.Middleware)()
83
- ], ApiResultFormatterMiddleware);
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpUmVzdWx0Rm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21pZGRsZXdhcmUvYXBpUmVzdWx0Rm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLGFBQWE7QUFDYix5Q0FBaUU7QUFFakUsbUNBQWdDO0FBR3pCLElBQU0sNEJBQTRCLEdBQWxDLE1BQU0sNEJBQTRCO0lBSXJDLFNBQVMsQ0FBTTtJQUVmLE1BQU0sQ0FBQyxHQUFZO1FBQ2YsZUFBZTtRQUNmLElBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN4QixLQUFJLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3BDLElBQUcsT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssRUFBRTtvQkFBRSxPQUFPLElBQUksQ0FBQztnQkFDMUQsSUFBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztvQkFBRSxPQUFPLElBQUksQ0FBQztZQUN6QyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPO1FBQ0gsT0FBTyxLQUFLLEVBQUUsR0FBWSxFQUFFLElBQWtCLEVBQUUsRUFBRTtZQUM5QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxRCx5Q0FBeUM7WUFDekMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDUixJQUFJLENBQUM7b0JBQ0QsTUFBTSxJQUFJLEVBQUUsQ0FBQztvQkFDYixNQUFNLEdBQUcsR0FBUSxHQUFHLENBQUMsSUFBSSxDQUFDO29CQUMxQixhQUFhO29CQUNiLElBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUNyQixHQUFHLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQ3BCOzRCQUNJLEdBQUcsRUFBRSxDQUFDOzRCQUNOLEdBQUcsRUFBRSxTQUFTOzRCQUNkLElBQUksRUFBRSxJQUFJO3lCQUNiLEVBQ0QsT0FBTyxHQUFHLEVBQUUsR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FDckQsQ0FBQzt3QkFDRixpREFBaUQ7b0JBQ3JELENBQUM7Z0JBQ0wsQ0FBQztnQkFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO29CQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25CLElBQUksT0FBTyxHQUFHLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO3dCQUM5QixHQUFHLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztvQkFDbkIsQ0FBQzt5QkFBTSxDQUFDO3dCQUNKLEdBQUcsQ0FBQyxJQUFJLEdBQUc7NEJBQ1AsR0FBRyxFQUFFLElBQUk7NEJBQ1QsR0FBRyxFQUFFLEdBQUcsQ0FBQyxPQUFPO3lCQUNuQixDQUFDO29CQUNOLENBQUM7b0JBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwRCxDQUFDO3dCQUNPLENBQUM7b0JBQ0wsSUFBRyxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUc7d0JBQUUsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7Z0JBQzVDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUNqQixDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUNELFNBQVMsQ0FBQyxJQUFTO1FBQ2YsT0FBTyxJQUFJLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDNUMsQ0FBQyxDQUFDLElBQUksWUFBWSxlQUFNLElBQUksSUFBSSxZQUFZLFVBQVUsSUFBSSxJQUFJLFlBQVksSUFBSSxDQUFDLENBQUM7SUFDcEYsQ0FBQztDQUNKLENBQUE7QUE3RFksb0VBQTRCO0FBSXJDO0lBREMsSUFBQSxhQUFNLEVBQUMsV0FBVyxDQUFDOzsrREFDTDt1Q0FKTiw0QkFBNEI7SUFEeEMsSUFBQSxpQkFBVSxHQUFFO0dBQ0EsNEJBQTRCLENBNkR4QyJ9
@@ -1,5 +0,0 @@
1
- import { IMiddleware } from '@midwayjs/core';
2
- import { NextFunction, Context } from '@midwayjs/koa';
3
- export declare class DetectMiddleware implements IMiddleware<Context, NextFunction> {
4
- resolve(): (ctx: Context, next: NextFunction) => Promise<any>;
5
- }
@@ -1,61 +0,0 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.DetectMiddleware = void 0;
10
- const core_1 = require("@midwayjs/core");
11
- let DetectMiddleware = class DetectMiddleware {
12
- resolve() {
13
- return async (ctx, next) => {
14
- const UA = ctx.get('user-agent') || '';
15
- const IS_MOBILE = /Mobile/i.test(UA);
16
- const VER_MQQ = UA.match(/QQ\/([\d.]+)/i) && UA.match(/QQ\/([\d.]+)/i)?.[1];
17
- const IS_MQQ = Boolean(VER_MQQ);
18
- // 微信版本号可能分4段,影响业务代码里使用semver比较版本号(会报错),如果业务需要4段版本号可以自己从ua里取
19
- const VER_WEIXIN = UA.match(/MicroMessenger\/([\d.]+)/i) &&
20
- UA.match(/MicroMessenger\/([\d.]+)/i)?.[1]
21
- .split('.')
22
- .slice(0, 3)
23
- .join('.');
24
- const IS_WEIXIN = Boolean(VER_WEIXIN);
25
- // 是否是开发者工具
26
- const IS_WECHATTOOLS = /wechatdevtools\//i.test(UA);
27
- // @ts-ignore
28
- const IS_PCWEIXIN = /(Windows|Mac)Wechat/i.test(UA);
29
- // 是否是企业微信
30
- const IS_WXWORK = /wxwork\//i.test(UA);
31
- // @ts-ignore
32
- const VER_MINA = /miniProgram/i.test(UA);
33
- const IS_MINA = Boolean(VER_MINA);
34
- let requestIP = (ctx.request.header['x-forwarded-for'] ||
35
- ctx.request.ip || '').toString();
36
- if (requestIP.includes(','))
37
- requestIP = requestIP.split(',')[0];
38
- const clientIP = (ctx.request.header['x-client-ip'] || requestIP).toString();
39
- const hostname = ctx.get('tencent-acceleration-domain-name') || ctx.request.hostname;
40
- // 环境变量
41
- ctx.detect = {
42
- IS_MOBILE,
43
- IS_MQQ,
44
- IS_WEIXIN,
45
- IS_WECHATTOOLS,
46
- IS_PCWEIXIN,
47
- IS_WXWORK,
48
- IS_MINA,
49
- CLIENTIP: clientIP,
50
- REQUESTIP: requestIP,
51
- HOSTNAME: hostname,
52
- };
53
- return next();
54
- };
55
- }
56
- };
57
- exports.DetectMiddleware = DetectMiddleware;
58
- exports.DetectMiddleware = DetectMiddleware = __decorate([
59
- (0, core_1.Middleware)()
60
- ], DetectMiddleware);
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0ZWN0Lm1pZGRsZXdhcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWlkZGxld2FyZS9kZXRlY3QubWlkZGxld2FyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSx5Q0FBeUQ7QUFJbEQsSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7SUFDekIsT0FBTztRQUNILE9BQU8sS0FBSyxFQUFFLEdBQVksRUFBRSxJQUFrQixFQUFFLEVBQUU7WUFDOUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNyQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsNERBQTREO1lBQzVELE1BQU0sVUFBVSxHQUNaLEVBQUUsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUM7Z0JBQ3JDLEVBQUUsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDckMsS0FBSyxDQUFDLEdBQUcsQ0FBQztxQkFDVixLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDWCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRXRDLFdBQVc7WUFDWCxNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEQsYUFBYTtZQUNiLE1BQU0sV0FBVyxHQUFHLHNCQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwRCxVQUFVO1lBQ1YsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QyxhQUFhO1lBQ2IsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFbEMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztnQkFDdEQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakMsSUFBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFBRSxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVoRSxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBRTdFLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsa0NBQWtDLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUVyRixPQUFPO1lBQ1AsR0FBRyxDQUFDLE1BQU0sR0FBRztnQkFDVCxTQUFTO2dCQUNULE1BQU07Z0JBQ04sU0FBUztnQkFDVCxjQUFjO2dCQUNkLFdBQVc7Z0JBQ1gsU0FBUztnQkFDVCxPQUFPO2dCQUNQLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixTQUFTLEVBQUUsU0FBUztnQkFDcEIsUUFBUSxFQUFFLFFBQVE7YUFDckIsQ0FBQTtZQUNELE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDbEIsQ0FBQyxDQUFDO0lBQ04sQ0FBQztDQUNKLENBQUE7QUFsRFksNENBQWdCOzJCQUFoQixnQkFBZ0I7SUFENUIsSUFBQSxpQkFBVSxHQUFFO0dBQ0EsZ0JBQWdCLENBa0Q1QiJ9
@@ -1,8 +0,0 @@
1
- import { IMiddleware } from '@midwayjs/core';
2
- import { NextFunction, Context } from '@midwayjs/koa';
3
- export declare class RequestInitMiddleware implements IMiddleware<Context, NextFunction> {
4
- loggerConfig: any;
5
- private staticExtensions;
6
- ignore(ctx: Context): boolean;
7
- resolve(): (ctx: Context, next: NextFunction) => Promise<any>;
8
- }
@@ -1,100 +0,0 @@
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.RequestInitMiddleware = void 0;
13
- const core_1 = require("@midwayjs/core");
14
- const uuid_1 = require("uuid");
15
- const ip = require("ip");
16
- const logger_1 = require("@fefeding/common/dist/utils/logger");
17
- let RequestInitMiddleware = class RequestInitMiddleware {
18
- loggerConfig;
19
- // 静态文件扩展名列表
20
- staticExtensions = [
21
- '.js', '.css', '.jpg', '.png', '.ico', '.svg',
22
- '.woff', '.woff2', '.ttf', '.eot', '.map'
23
- ];
24
- ignore(ctx) {
25
- const isStaticFile = this.staticExtensions.some(ext => ctx.path.toLowerCase().endsWith(ext));
26
- // 下面的路由将忽略此中间件
27
- return isStaticFile || ctx.path === '/' || !ctx.path;
28
- }
29
- resolve() {
30
- return async (ctx, next) => {
31
- const body = (ctx.request.body || {});
32
- let request_id = ctx.URL.searchParams.get('request_id') || body.request_id ||
33
- ctx.request.header['x-request-id'] ||
34
- ctx.cookies.get('request_id', {
35
- signed: false,
36
- });
37
- if (!request_id)
38
- request_id = (0, uuid_1.v4)().replace(/-/g, '');
39
- ctx.request_id = request_id;
40
- //console.log('request start', request_id, ctx.url);
41
- const logger = new logger_1.default({
42
- remoteUrl: this.loggerConfig?.remoteUrl,
43
- serviceName: process.env.SERVICE_NAME,
44
- logLevel: this.loggerConfig?.level,
45
- requestId: ctx.request_id || '',
46
- loginId: ctx.currentSession?.loginId || '',
47
- userId: (ctx.currentSession?.userId || '').toString(),
48
- clientIP: ctx.detect?.CLIENTIP || ctx.ip || '',
49
- serverIP: ip.address() || '',
50
- url: ctx.url,
51
- });
52
- // 将logger挂载到ctx上
53
- ctx.logger = logger;
54
- // 记录请求开始时间
55
- const startTime = Date.now();
56
- try {
57
- // 继续处理请求
58
- let result = await next();
59
- const logData = {
60
- requestId: ctx.request_id,
61
- method: ctx.method,
62
- status: ctx.status,
63
- result,
64
- responseTime: Date.now() - startTime
65
- };
66
- if (typeof logData.result === 'string') {
67
- logData.result = logData.result.substring(0, 500);
68
- }
69
- // 记录成功响应
70
- //logger.info('Request completed', logData);
71
- return result;
72
- }
73
- catch (error) {
74
- // 记录错误响应
75
- logger.error('Request failed', {
76
- requestId: ctx.request_id,
77
- method: ctx.method,
78
- url: ctx.href,
79
- error: {
80
- name: error.name,
81
- message: error.message,
82
- stack: error.stack
83
- },
84
- responseTime: Date.now() - startTime
85
- });
86
- // 将错误继续抛出,由全局异常处理器处理
87
- throw error;
88
- }
89
- };
90
- }
91
- };
92
- exports.RequestInitMiddleware = RequestInitMiddleware;
93
- __decorate([
94
- (0, core_1.Config)('logger'),
95
- __metadata("design:type", Object)
96
- ], RequestInitMiddleware.prototype, "loggerConfig", void 0);
97
- exports.RequestInitMiddleware = RequestInitMiddleware = __decorate([
98
- (0, core_1.Middleware)()
99
- ], RequestInitMiddleware);
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdEluaXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbWlkZGxld2FyZS9yZXF1ZXN0SW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBaUU7QUFFakUsK0JBQWtDO0FBQ2xDLHlCQUF5QjtBQUN6QiwrREFBd0Q7QUFHakQsSUFBTSxxQkFBcUIsR0FBM0IsTUFBTSxxQkFBcUI7SUFFOUIsWUFBWSxDQUFNO0lBQ2xCLFlBQVk7SUFDSixnQkFBZ0IsR0FBRztRQUN2QixLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU07UUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU07S0FDNUMsQ0FBQztJQUNGLE1BQU0sQ0FBQyxHQUFZO1FBQ2YsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUNwRCxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FDckMsQ0FBQztRQUNGLGVBQWU7UUFDZixPQUFPLFlBQVksSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFDdkQsQ0FBQztJQUNILE9BQU87UUFDSCxPQUFPLEtBQUssRUFBRSxHQUFZLEVBQUUsSUFBa0IsRUFBRSxFQUFFO1lBQzlDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFRLENBQUM7WUFDN0MsSUFBSSxVQUFVLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVO2dCQUN0RSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FB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
@@ -1,39 +0,0 @@
1
- import { MidwayCache } from '@midwayjs/cache-manager';
2
- import { BaseService } from '../base/base.service';
3
- import { Session, LoginByWxReq, LoginByWxRsp, LoginByAccountReq, LoginByAccountRsp } from '@fefeding/common/dist/models/account/session';
4
- export declare class SessionService extends BaseService {
5
- sessionCache: MidwayCache;
6
- sessionOption: {
7
- timeout: number;
8
- secretKey: string;
9
- };
10
- /**
11
- * 根据ID获取session
12
- * 并判断session是否在有效期
13
- * @param id token唯一
14
- */
15
- getLoginSession(id: string): Promise<Session>;
16
- /**
17
- * 下线
18
- * @param id 需要下线的id或者session
19
- */
20
- logout(id: string): Promise<any>;
21
- /**
22
- * 登录接口
23
- * @param loginParams 登录参数
24
- * @returns
25
- */
26
- loginByWx(loginParams: LoginByWxReq): Promise<LoginByWxRsp>;
27
- /**
28
- * 帐号登陆
29
- * @param loginParams
30
- * @returns
31
- */
32
- loginByAccount(loginParams: LoginByAccountReq): Promise<LoginByAccountRsp>;
33
- /**
34
- * 用临时码登陆
35
- * @param code 登陆临时码
36
- * @returns
37
- */
38
- loginByCode(code: string): Promise<import("@fefeding/common/dist/models/base/response").default<any>>;
39
- }