@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
@@ -1,153 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const path = require("path");
4
- exports.default = (appInfo) => {
5
- appInfo.appId = Number(process.env.APP_ID) || 0;
6
- const appRoot = appInfo.appDir || appInfo.root;
7
- appInfo.dist = path.join(appRoot, 'dist');
8
- appInfo.webDist = path.join(appInfo.dist, 'web');
9
- appInfo.webPublic = path.join(appInfo.webDist, 'public');
10
- const config = {
11
- // use for cookie sign key, should change to your own and keep security
12
- keys: appInfo.name + '_1641910879296_0612',
13
- cookies: {
14
- // 确保不设置secret,或者设置为空字符串
15
- secret: '', // 如果为空字符串,则关闭加密,但仍然可以解密已加密的cookies
16
- // ...
17
- },
18
- view: {
19
- //默认view目录
20
- defaultViewEngine: 'nunjucks',
21
- //默认view目录,本地开发目录必须在web下的,正式环境则是根目录下的view,因为web目录会被删
22
- rootDir: {
23
- default: path.join(appInfo.webDist, 'view/'),
24
- },
25
- mapping: {
26
- '.html': 'nunjucks',
27
- },
28
- },
29
- // 上传配置
30
- upload: {
31
- // 文件模式
32
- mode: 'file',
33
- // 上传目录
34
- fileSize: '10mb',
35
- whitelist: ['.jpg', '.jpeg', '.png', '.gif', '.webp', '.pdf', '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx'],
36
- },
37
- // 静态文件服务
38
- staticFile: {
39
- dirs: {
40
- default: {
41
- // 默认public目录
42
- dir: appInfo.webPublic,
43
- },
44
- },
45
- },
46
- /**
47
- * api相关配置
48
- */
49
- apiOption: {
50
- // 接口请求校验key
51
- key: process.env.API_KEY || '2024@fefeding#',
52
- reg: /^\/([^/]+\/)?api\//i,
53
- ignore: [
54
- '/',
55
- /^\/([^/]+\/)?api\/cos\/get/i
56
- ]
57
- },
58
- // ip白名单
59
- ipOption: {
60
- whiteList: [
61
- '127.0.0.1',
62
- '::1',
63
- '0.0.0.0',
64
- '::',
65
- 'localhost',
66
- ...(process.env.IP_WHITE_LIST?.split(',') || [])
67
- ],
68
- },
69
- // 查看系统信息
70
- info: {
71
- infoPath: '/_sys_info',
72
- },
73
- axios: {
74
- default: {
75
- // 所有实例复用的配置
76
- },
77
- clients: {
78
- // 默认实例的配置
79
- default: {
80
- // `headers` are custom headers to be sent
81
- headers: {
82
- 'X-Requested-With': 'XMLHttpRequest',
83
- },
84
- timeout: 1000, // default is `0` (no timeout)
85
- // `withCredentials` indicates whether or not cross-site Access-Control requests
86
- // should be made using credentials
87
- withCredentials: false, // default
88
- },
89
- },
90
- },
91
- // 基础服务
92
- baseService: {
93
- manager: ['admin'], // 管理员帐号
94
- appId: appInfo.appId,
95
- url: process.env.BASE_SERVER_URL || ''
96
- },
97
- session: {
98
- // session 过期设置
99
- timeout: Number(process.env.SESSION_TIMEOUT) || 20 * 60 * 1000,
100
- secretKey: 'fjjiowhb@#$^111)*&',
101
- },
102
- // 登陆态校验配置
103
- auth: {
104
- // 忽略登陆态校验
105
- ignores: [
106
- /\/api\/test\//i,
107
- "/api/test/action"
108
- ]
109
- },
110
- // 登陆相关配置
111
- sso: {
112
- baseUrl: process.env.SSO_URL || '',
113
- appId: appInfo.appId,
114
- },
115
- tencentCredential: {
116
- secretId: process.env.TENCENT_CREDENTIAL_SECRETID || '',
117
- secretKey: process.env.TENCENT_CREDENTIAL_SECRETKEY || '',
118
- },
119
- busboy: {
120
- mode: 'file',
121
- },
122
- bodyParser: {
123
- formLimit: '30mb',
124
- jsonLimit: '30mb',
125
- },
126
- cacheManager: {
127
- clients: {
128
- default: {
129
- store: 'memory',
130
- options: {
131
- max: 10000, // 代表缓存 key 的最大个数
132
- ttl: 600000, // 缓存的过期时间,单位毫秒。
133
- },
134
- },
135
- },
136
- session: {
137
- store: 'memory',
138
- options: {
139
- max: 10000, // 代表缓存 key 的最大个数
140
- ttl: 600000, // 缓存的过期时间,单位毫秒。
141
- },
142
- },
143
- },
144
- logger: {
145
- // 日志配置
146
- level: process.env.LOG_LEVEL || 'info',
147
- consoleLevel: process.env.LOG_LEVEL || 'info',
148
- remoteUrl: process.env.REMOTE_LOGGER_URL || '',
149
- }
150
- };
151
- return config;
152
- };
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmRlZmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL2NvbmZpZy5kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsNkJBQTZCO0FBQzdCLGtCQUFlLENBQUMsT0FBc0IsRUFBRSxFQUFFO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztJQUMvQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pELE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRXpELE1BQU0sTUFBTSxHQUFHO1FBQ1gsdUVBQXVFO1FBQ3ZFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxHQUFHLHFCQUFxQjtRQUMxQyxPQUFPLEVBQUU7WUFDTCx3QkFBd0I7WUFDeEIsTUFBTSxFQUFFLEVBQUUsRUFBRSxtQ0FBbUM7WUFDL0MsTUFBTTtTQUNUO1FBQ0QsSUFBSSxFQUFFO1lBQ0YsVUFBVTtZQUNWLGlCQUFpQixFQUFFLFVBQVU7WUFDN0Isb0RBQW9EO1lBQ3BELE9BQU8sRUFBRTtnQkFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQzthQUMvQztZQUNELE9BQU8sRUFBRTtnQkFDTCxPQUFPLEVBQUUsVUFBVTthQUN0QjtTQUNKO1FB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
@@ -1 +0,0 @@
1
- export declare function loadEnv(envPath?: string): NodeJS.ProcessEnv;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadEnv = loadEnv;
4
- const dotenv = require("dotenv");
5
- const path = require("path");
6
- const fs = require("fs");
7
- function loadEnv(envPath) {
8
- envPath = envPath || path.join(process.cwd(), '.env');
9
- console.log('env path', envPath);
10
- if (fs.existsSync(envPath)) {
11
- const env = dotenv.config({
12
- path: envPath,
13
- encoding: 'utf-8'
14
- });
15
- console.log(env);
16
- }
17
- return process.env;
18
- }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9lbnYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSwwQkFZQztBQWpCRCxpQ0FBaUM7QUFDakMsNkJBQTZCO0FBQzdCLHlCQUF5QjtBQUd6QixTQUFnQixPQUFPLENBQUMsT0FBZ0I7SUFDcEMsT0FBTyxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0RCxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVqQyxJQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN4QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ3RCLElBQUksRUFBRSxPQUFPO1lBQ2IsUUFBUSxFQUFFLE9BQU87U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDO0FBQ3ZCLENBQUMifQ==
@@ -1,5 +0,0 @@
1
- import * as koa from '@midwayjs/koa';
2
- export declare class BaseConfiguration {
3
- app: koa.Application;
4
- onReady(): Promise<void>;
5
- }
@@ -1,75 +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.BaseConfiguration = void 0;
13
- // @ts-ignore
14
- const core_1 = require("@midwayjs/core");
15
- // @ts-ignore
16
- const koa = require("@midwayjs/koa");
17
- const info = require("@midwayjs/info");
18
- // @ts-ignore
19
- const axios = require("@midwayjs/axios");
20
- const apiResultFormatter_1 = require("./middleware/apiResultFormatter");
21
- const requestInit_1 = require("./middleware/requestInit");
22
- const detect_middleware_1 = require("./middleware/detect.middleware");
23
- const view = require("@midwayjs/view-nunjucks");
24
- const staticFile = require("@midwayjs/static-file");
25
- const cacheManager = require("@midwayjs/cache-manager");
26
- const DefaultConfig = require("./config/config.default");
27
- const api_1 = require("./guard/api");
28
- const auth_1 = require("./guard/auth");
29
- // load .env file in process.cwd
30
- const env_1 = require("./config/env");
31
- (0, env_1.loadEnv)();
32
- let BaseConfiguration = class BaseConfiguration {
33
- app;
34
- async onReady() {
35
- process.env.SERVICE_NAME = process.env.SERVICE_NAME || this.app.getProjectName();
36
- // 接口守位
37
- this.app.useGuard([
38
- api_1.ApiGuard,
39
- auth_1.AuthGuard
40
- ]);
41
- // add middleware
42
- this.app.useMiddleware([
43
- requestInit_1.RequestInitMiddleware,
44
- detect_middleware_1.DetectMiddleware,
45
- apiResultFormatter_1.ApiResultFormatterMiddleware,
46
- ]);
47
- }
48
- };
49
- exports.BaseConfiguration = BaseConfiguration;
50
- __decorate([
51
- (0, core_1.App)(),
52
- __metadata("design:type", Object)
53
- ], BaseConfiguration.prototype, "app", void 0);
54
- exports.BaseConfiguration = BaseConfiguration = __decorate([
55
- (0, core_1.Configuration)({
56
- namespace: 'MidwayjsBase',
57
- imports: [
58
- koa,
59
- {
60
- component: info,
61
- enabledEnvironment: ['local'],
62
- },
63
- view,
64
- staticFile,
65
- axios,
66
- cacheManager,
67
- ],
68
- importConfigs: [
69
- {
70
- default: DefaultConfig,
71
- },
72
- ],
73
- })
74
- ], BaseConfiguration);
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLGFBQWE7QUFDYix5Q0FBNEQ7QUFDNUQsYUFBYTtBQUNiLHFDQUFxQztBQUNyQyx1Q0FBdUM7QUFDdkMsYUFBYTtBQUNiLHlDQUF5QztBQUN6Qyx3RUFBK0U7QUFDL0UsMERBQWlFO0FBQ2pFLHNFQUFrRTtBQUNsRSxnREFBZ0Q7QUFDaEQsb0RBQW9EO0FBQ3BELHdEQUF3RDtBQUN4RCx5REFBeUQ7QUFDekQscUNBQXVDO0FBQ3ZDLHVDQUF5QztBQUV6QyxnQ0FBZ0M7QUFDaEMsc0NBQXVDO0FBQ3ZDLElBQUEsYUFBTyxHQUFFLENBQUM7QUFxQkgsSUFBTSxpQkFBaUIsR0FBdkIsTUFBTSxpQkFBaUI7SUFFMUIsR0FBRyxDQUFrQjtJQUVyQixLQUFLLENBQUMsT0FBTztRQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDakYsT0FBTztRQUNQLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQ2QsY0FBUTtZQUNSLGdCQUFTO1NBQ1osQ0FBQyxDQUFDO1FBRUgsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO1lBQ25CLG1DQUFxQjtZQUNyQixvQ0FBZ0I7WUFDaEIsaURBQTRCO1NBQy9CLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSixDQUFBO0FBbkJZLDhDQUFpQjtBQUUxQjtJQURDLElBQUEsVUFBRyxHQUFFOzs4Q0FDZTs0QkFGWixpQkFBaUI7SUFuQjdCLElBQUEsb0JBQWEsRUFBQztRQUNiLFNBQVMsRUFBRSxjQUFjO1FBQ3pCLE9BQU8sRUFBRTtZQUNQLEdBQUc7WUFDSDtnQkFDSSxTQUFTLEVBQUUsSUFBSTtnQkFDZixrQkFBa0IsRUFBRSxDQUFDLE9BQU8sQ0FBQzthQUNoQztZQUNELElBQUk7WUFDSixVQUFVO1lBQ1YsS0FBSztZQUNMLFlBQVk7U0FDZjtRQUNDLGFBQWEsRUFBRTtZQUNiO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2FBQ3ZCO1NBQ0Y7S0FDRixDQUFDO0dBQ1csaUJBQWlCLENBbUI3QiJ9
@@ -1,7 +0,0 @@
1
- import { Context } from '@midwayjs/koa';
2
- export declare class DefaultErrorFilter {
3
- catch(err: Error, ctx: Context): Promise<{
4
- success: boolean;
5
- message: string;
6
- }>;
7
- }
@@ -1,24 +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.DefaultErrorFilter = void 0;
10
- const core_1 = require("@midwayjs/core");
11
- let DefaultErrorFilter = class DefaultErrorFilter {
12
- async catch(err, ctx) {
13
- // 所有的未分类错误会到这里
14
- return {
15
- success: false,
16
- message: err.message,
17
- };
18
- }
19
- };
20
- exports.DefaultErrorFilter = DefaultErrorFilter;
21
- exports.DefaultErrorFilter = DefaultErrorFilter = __decorate([
22
- (0, core_1.Catch)()
23
- ], DefaultErrorFilter);
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmlsdGVyL2RlZmF1bHQuZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLHlDQUF1QztBQUloQyxJQUFNLGtCQUFrQixHQUF4QixNQUFNLGtCQUFrQjtJQUMzQixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQVUsRUFBRSxHQUFZO1FBQ2hDLGVBQWU7UUFDZixPQUFPO1lBQ0gsT0FBTyxFQUFFLEtBQUs7WUFDZCxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87U0FDdkIsQ0FBQztJQUNOLENBQUM7Q0FDSixDQUFBO0FBUlksZ0RBQWtCOzZCQUFsQixrQkFBa0I7SUFEOUIsSUFBQSxZQUFLLEdBQUU7R0FDSyxrQkFBa0IsQ0FROUIifQ==
@@ -1,5 +0,0 @@
1
- import { MidwayHttpError } from '@midwayjs/core';
2
- import { Context } from '@midwayjs/koa';
3
- export declare class NotFoundFilter {
4
- catch(err: MidwayHttpError, ctx: Context): Promise<void>;
5
- }
@@ -1,22 +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.NotFoundFilter = void 0;
10
- // @ts-ignore
11
- const core_1 = require("@midwayjs/core");
12
- let NotFoundFilter = class NotFoundFilter {
13
- async catch(err, ctx) {
14
- // 404 错误会到这里
15
- ctx.redirect('/404.html');
16
- }
17
- };
18
- exports.NotFoundFilter = NotFoundFilter;
19
- exports.NotFoundFilter = NotFoundFilter = __decorate([
20
- (0, core_1.Catch)(core_1.httpError.NotFoundError)
21
- ], NotFoundFilter);
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90Zm91bmQuZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpbHRlci9ub3Rmb3VuZC5maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsYUFBYTtBQUNiLHlDQUFtRTtBQUk1RCxJQUFNLGNBQWMsR0FBcEIsTUFBTSxjQUFjO0lBQ3ZCLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBb0IsRUFBRSxHQUFZO1FBQzFDLGFBQWE7UUFDYixHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDSixDQUFBO0FBTFksd0NBQWM7eUJBQWQsY0FBYztJQUQxQixJQUFBLFlBQUssRUFBQyxnQkFBUyxDQUFDLGFBQWEsQ0FBQztHQUNsQixjQUFjLENBSzFCIn0=
@@ -1,16 +0,0 @@
1
- import { IGuard } from '@midwayjs/core';
2
- import { Context } from '@midwayjs/koa';
3
- /**
4
- * 对于需要token的接口,从query或body或cookie中取token,是否跟本服务的一致
5
- */
6
- export declare class ApiGuard implements IGuard<Context> {
7
- apiOption: {
8
- key: string;
9
- };
10
- ipOption: {
11
- whiteList: Array<string>;
12
- };
13
- canActivate(context: Context, supplierClz: any, methodName: string): Promise<boolean>;
14
- checkApiToken(context: Context): Promise<void>;
15
- checkIPInWhiteList(context: Context): void;
16
- }
package/dist/guard/api.js DELETED
@@ -1,88 +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.ApiGuard = void 0;
13
- // @ts-ignore
14
- const core_1 = require("@midwayjs/core");
15
- const decorator_1 = require("../lib/decorator");
16
- const api_1 = require("@fefeding/common/dist/utils/api");
17
- /**
18
- * 对于需要token的接口,从query或body或cookie中取token,是否跟本服务的一致
19
- */
20
- let ApiGuard = class ApiGuard {
21
- // 登陆态验证配置
22
- apiOption;
23
- ipOption;
24
- async canActivate(context, supplierClz, methodName) {
25
- // 检查是否有IP白名单限制
26
- const needIP = (0, decorator_1.getCheckIP)(supplierClz, methodName);
27
- if (needIP) {
28
- //console.log('check ip ', needIP);
29
- this.checkIPInWhiteList(context);
30
- }
31
- // 获取是否需要检查token
32
- const needToken = (0, decorator_1.getApiToken)(supplierClz, methodName);
33
- if (needToken) {
34
- await this.checkApiToken(context);
35
- }
36
- return true;
37
- }
38
- // 校验是否有带api token
39
- async checkApiToken(context) {
40
- const body = (context.request.body || {});
41
- const reqToken = context.URL.searchParams.get('api_token') ||
42
- context.request.header['x-api-token'] ||
43
- body.api_token ||
44
- context.cookies.get('api_token');
45
- const timestamp = Number(context.URL.searchParams.get('timestamp') ||
46
- context.request.header['x-api-timestamp'] ||
47
- body.timestamp ||
48
- context.cookies.get('timestamp'));
49
- if (!reqToken || !timestamp) {
50
- context.logger.error(`token为空,非法请求, token: ${reqToken}, timestamp: ${timestamp}`);
51
- throw Error('token为空,非法请求');
52
- }
53
- //const time = new Date(timestamp);
54
- console.log('token time', reqToken, timestamp);
55
- // 如果超过一定时间,则失效
56
- if (timestamp < Date.now() - 5 * 60 * 1000) {
57
- throw Error('timestamp已超过有效时间');
58
- }
59
- const thisToken = api_1.default.createApiToken(this.apiOption.key, timestamp);
60
- if (reqToken !== thisToken.sign) {
61
- context.logger.error(`输入token:${reqToken} 本地: ${thisToken.sign} 不一致`);
62
- throw Error('token输入错误');
63
- }
64
- }
65
- // 检查IP白名单
66
- checkIPInWhiteList(context) {
67
- const requestIp = context.detect?.REQUESTIP;
68
- if (this.ipOption?.whiteList && !this.ipOption.whiteList.includes('*')) {
69
- if (!this.ipOption.whiteList.includes(requestIp)) {
70
- context.logger.error(`IP:${requestIp} 不在白名单内`);
71
- throw Error(`IP:${requestIp} 不在白名单内`);
72
- }
73
- }
74
- }
75
- };
76
- exports.ApiGuard = ApiGuard;
77
- __decorate([
78
- (0, core_1.Config)('apiOption'),
79
- __metadata("design:type", Object)
80
- ], ApiGuard.prototype, "apiOption", void 0);
81
- __decorate([
82
- (0, core_1.Config)('ipOption'),
83
- __metadata("design:type", Object)
84
- ], ApiGuard.prototype, "ipOption", void 0);
85
- exports.ApiGuard = ApiGuard = __decorate([
86
- (0, core_1.Guard)()
87
- ], ApiGuard);
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2d1YXJkL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxhQUFhO0FBQ2IseUNBQXVEO0FBRXZELGdEQUEyRDtBQUMzRCx5REFBa0Q7QUFFbEQ7O0dBRUc7QUFFSSxJQUFNLFFBQVEsR0FBZCxNQUFNLFFBQVE7SUFDakIsVUFBVTtJQUVWLFNBQVMsQ0FFUDtJQUdGLFFBQVEsQ0FFTjtJQUVGLEtBQUssQ0FBQyxXQUFXLENBQ2IsT0FBZ0IsRUFDaEIsV0FBZ0IsRUFDaEIsVUFBa0I7UUFFbEIsZUFBZTtRQUNmLE1BQU0sTUFBTSxHQUFHLElBQUEsc0JBQVUsRUFBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbkQsSUFBRyxNQUFNLEVBQUUsQ0FBQztZQUNSLG1DQUFtQztZQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUNELGdCQUFnQjtRQUNoQixNQUFNLFNBQVMsR0FBRyxJQUFBLHVCQUFXLEVBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXZELElBQUksU0FBUyxFQUFFLENBQUM7WUFDWixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxPQUFnQjtRQUNoQyxNQUFNLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBUSxDQUFDO1FBQ2pELE1BQU0sUUFBUSxHQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7WUFDekMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxTQUFTO1lBQ2QsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQ3pDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1lBQ3JDLElBQUksQ0FBQyxTQUFTO1lBQ2QsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQ3ZDLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQ2hCLHdCQUF3QixRQUFRLGdCQUFnQixTQUFTLEVBQUUsQ0FDOUQsQ0FBQztZQUNGLE1BQU0sS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxtQ0FBbUM7UUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLGVBQWU7UUFDZixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQztZQUN6QyxNQUFNLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxhQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXBFLElBQUksUUFBUSxLQUFLLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QixPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDaEIsV0FBVyxRQUFRLFNBQVMsU0FBUyxDQUFDLElBQUksTUFBTSxDQUNuRCxDQUFDO1lBQ0YsTUFBTSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVO0lBQ1Ysa0JBQWtCLENBQUMsT0FBZ0I7UUFDL0IsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7UUFDNUMsSUFBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BFLElBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDOUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxTQUFTLFNBQVMsQ0FBQyxDQUFDO2dCQUMvQyxNQUFNLEtBQUssQ0FBQyxNQUFNLFNBQVMsU0FBUyxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0NBQ0osQ0FBQTtBQWhGWSw0QkFBUTtBQUdqQjtJQURDLElBQUEsYUFBTSxFQUFDLFdBQVcsQ0FBQzs7MkNBR2xCO0FBR0Y7SUFEQyxJQUFBLGFBQU0sRUFBQyxVQUFVLENBQUM7OzBDQUdqQjttQkFWTyxRQUFRO0lBRHBCLElBQUEsWUFBSyxHQUFFO0dBQ0ssUUFBUSxDQWdGcEIifQ==
@@ -1,19 +0,0 @@
1
- import { IGuard } from '@midwayjs/core';
2
- import { Context } from '@midwayjs/koa';
3
- import { SessionService } from '../service/session.service';
4
- /**
5
- * 校验请求的登陆态
6
- */
7
- export declare class AuthGuard implements IGuard<Context> {
8
- sessionService: SessionService;
9
- ssoOption: any;
10
- authOption: {
11
- ignores?: string | Array<RegExp | string>;
12
- };
13
- apiOption: any;
14
- koa: any;
15
- checkNeedAuth(context: Context, supplierClz: any, methodName: string): any;
16
- canActivate(context: Context, supplierClz: any, methodName: string): Promise<boolean>;
17
- checkAuth(context: Context, token: string, needAuth?: boolean): Promise<boolean>;
18
- authError(context: Context, error?: any): void;
19
- }
@@ -1,184 +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.AuthGuard = void 0;
13
- // @ts-ignore
14
- const core_1 = require("@midwayjs/core");
15
- const session_service_1 = require("../service/session.service");
16
- const decorator_1 = require("../lib/decorator");
17
- const utils_1 = require("../lib/utils");
18
- /**
19
- * 校验请求的登陆态
20
- */
21
- let AuthGuard = class AuthGuard {
22
- sessionService;
23
- ssoOption;
24
- authOption;
25
- apiOption;
26
- koa;
27
- // 检查是否需要验证登陆态
28
- checkNeedAuth(context, supplierClz, methodName) {
29
- // 如果有配置忽略验证,则直接返回false
30
- if (this.authOption?.ignores) {
31
- if (this.authOption.ignores === '*' || this.authOption.ignores === context.path) {
32
- return false;
33
- }
34
- if (Array.isArray(this.authOption.ignores)) {
35
- if (this.authOption.ignores.includes('*'))
36
- return false;
37
- for (const t of this.authOption.ignores) {
38
- if (t instanceof RegExp) {
39
- if (t.test(context.path))
40
- return false;
41
- }
42
- else if (typeof t === 'string') {
43
- if (t === context.path)
44
- return false;
45
- }
46
- }
47
- }
48
- }
49
- // 获取是否需要检查登陆态
50
- const needAuth = (0, decorator_1.getCheckLogin)(supplierClz, methodName);
51
- return needAuth;
52
- }
53
- async canActivate(context, supplierClz, methodName) {
54
- // 获取是否需要检查登陆态
55
- const needAuth = this.checkNeedAuth(context, supplierClz, methodName);
56
- const token = (0, utils_1.getAuthToken)(context);
57
- if (token)
58
- context.auth_token = token;
59
- const ret = await this.checkAuth(context, token, needAuth);
60
- return ret;
61
- }
62
- // 校验是否有带api token
63
- async checkAuth(context, token, needAuth) {
64
- this.sessionService.ctx = context;
65
- const authRet = 50001;
66
- //console.log('check auth', token, needAuth);
67
- let errRes = null;
68
- try {
69
- let session = null;
70
- // 如果是从登陆回来,则验证监时码
71
- const authCode = context.URL.searchParams.get('auth_code');
72
- if (authCode) {
73
- const res = await this.sessionService.loginByCode(authCode);
74
- if (res.ret === 0) {
75
- session = res.data;
76
- // 登陆写入cookie
77
- (0, utils_1.setAuthToken)(context, session.id);
78
- }
79
- context.URL.searchParams.delete('auth_code'); // 移除auth_code参数
80
- context.URL.hostname = context.detect?.HOSTNAME || context.hostname;
81
- const url = context.URL.toString();
82
- context.redirect(url);
83
- return true;
84
- }
85
- if (token && !errRes && !session) {
86
- // jwt签名
87
- if (token.startsWith('Bearer ')) {
88
- session = (0, utils_1.decodeJWT)(token.replace('Bearer ', ''), this.sessionService?.sessionOption?.secretKey || 'fefeding');
89
- }
90
- else {
91
- session = await this.sessionService.getLoginSession(token);
92
- }
93
- if (!session || !session.id) {
94
- (0, utils_1.setAuthToken)(context, '');
95
- //context.status = 403;
96
- errRes = {
97
- ret: authRet,
98
- msg: 'token不存在或已过期',
99
- };
100
- }
101
- }
102
- if (!session) {
103
- errRes = {
104
- ret: authRet,
105
- msg: '需要登陆态',
106
- };
107
- }
108
- // 登陆态挂载到当前上下文
109
- context.currentSession = session;
110
- // @ts-ignore 登陆态挂载到logger
111
- if (session && context.logger?.setOptions) {
112
- // @ts-ignore
113
- context.logger.setOptions({
114
- loginId: session?.loginId || '',
115
- userId: (session?.userId || '').toString(),
116
- });
117
- }
118
- if (errRes && needAuth) {
119
- this.authError(context, errRes);
120
- }
121
- }
122
- catch (e) {
123
- console.error(e);
124
- errRes = {
125
- ret: authRet,
126
- msg: e.message || 'auth error',
127
- };
128
- if (needAuth)
129
- this.authError(context, errRes);
130
- }
131
- return true;
132
- }
133
- // 异常处理
134
- authError(context, error) {
135
- const isApi = this.apiOption?.reg?.test(context.path);
136
- if (isApi) {
137
- context.status = 200;
138
- context.res.write('', 'utf8');
139
- throw error;
140
- }
141
- else {
142
- const loginUrl = `${this.ssoOption?.baseUrl || this.koa?.globalPrefix || ''}/login`;
143
- // 如果本来就以/login结尾,则直跳
144
- if (!/\/login\/?(\?|$|#)/.test(context.URL.pathname)) {
145
- const URL = context.URL;
146
- if (context.detect?.HOSTNAME && URL.hostname !== context.detect?.HOSTNAME)
147
- URL.hostname = context.detect.HOSTNAME;
148
- URL.searchParams.delete('jv_auth_code');
149
- URL.searchParams.delete('token');
150
- URL.searchParams.delete('auth_code'); // 移除auth_code参数
151
- const redirectUrl = context.URL.toString();
152
- context.redirect(`${loginUrl}?url=${encodeURIComponent(redirectUrl)}&appid=${this.ssoOption?.appId || 0}`);
153
- }
154
- else {
155
- context.redirect(loginUrl);
156
- }
157
- }
158
- }
159
- };
160
- exports.AuthGuard = AuthGuard;
161
- __decorate([
162
- (0, core_1.Inject)(),
163
- __metadata("design:type", session_service_1.SessionService)
164
- ], AuthGuard.prototype, "sessionService", void 0);
165
- __decorate([
166
- (0, core_1.Config)('sso'),
167
- __metadata("design:type", Object)
168
- ], AuthGuard.prototype, "ssoOption", void 0);
169
- __decorate([
170
- (0, core_1.Config)('auth'),
171
- __metadata("design:type", Object)
172
- ], AuthGuard.prototype, "authOption", void 0);
173
- __decorate([
174
- (0, core_1.Config)('apiOption'),
175
- __metadata("design:type", Object)
176
- ], AuthGuard.prototype, "apiOption", void 0);
177
- __decorate([
178
- (0, core_1.Config)('koa'),
179
- __metadata("design:type", Object)
180
- ], AuthGuard.prototype, "koa", void 0);
181
- exports.AuthGuard = AuthGuard = __decorate([
182
- (0, core_1.Guard)()
183
- ], AuthGuard);
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ndWFyZC9hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLGFBQWE7QUFDYix5Q0FBK0Q7QUFFL0QsZ0VBQTREO0FBQzVELGdEQUFpRDtBQUNqRCx3Q0FBcUU7QUFFckU7O0dBRUc7QUFFSSxJQUFNLFNBQVMsR0FBZixNQUFNLFNBQVM7SUFFbEIsY0FBYyxDQUFpQjtJQUcvQixTQUFTLENBQU07SUFHZixVQUFVLENBRVI7SUFHRixTQUFTLENBQU07SUFHZixHQUFHLENBQU07SUFFVCxjQUFjO0lBQ2QsYUFBYSxDQUFDLE9BQWdCLEVBQzFCLFdBQWdCLEVBQ2hCLFVBQWtCO1FBQ2QsdUJBQXVCO1FBQzNCLElBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUMxQixJQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzdFLE9BQU8sS0FBSyxDQUFDO1lBQ2pCLENBQUM7WUFDRCxJQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxJQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7b0JBQUUsT0FBTyxLQUFLLENBQUM7Z0JBRXZELEtBQUksTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDckMsSUFBRyxDQUFDLFlBQVksTUFBTSxFQUFFLENBQUM7d0JBQ3JCLElBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDOzRCQUFFLE9BQU8sS0FBSyxDQUFDO29CQUMxQyxDQUFDO3lCQUNJLElBQUcsT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7d0JBQzVCLElBQUcsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJOzRCQUFFLE9BQU8sS0FBSyxDQUFDO29CQUN4QyxDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUNELGNBQWM7UUFDZCxNQUFNLFFBQVEsR0FBRyxJQUFBLHlCQUFhLEVBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXhELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxLQUFLLENBQUMsV0FBVyxDQUNiLE9BQWdCLEVBQ2hCLFdBQWdCLEVBQ2hCLFVBQWtCO1FBRWxCLGNBQWM7UUFDZCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFdEUsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBWSxFQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLElBQUcsS0FBSztZQUFFLE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBRXJDLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzNELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixLQUFLLENBQUMsU0FBUyxDQUFDLE9BQWdCLEVBQUUsS0FBYSxFQUFFLFFBQWtCO1FBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQztRQUNsQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDdEIsNkNBQTZDO1FBRTdDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUM7WUFDRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDbkIsa0JBQWtCO1lBQ2xCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzRCxJQUFHLFFBQVEsRUFBRSxDQUFDO2dCQUNWLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVELElBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDZixPQUFPLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztvQkFDbkIsYUFBYTtvQkFDYixJQUFBLG9CQUFZLEVBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztnQkFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQSxnQkFBZ0I7Z0JBQzdELE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQ3BFLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25DLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RCLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxJQUFJLEtBQUssSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUMvQixRQUFRO2dCQUNSLElBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUM3QixPQUFPLEdBQUcsSUFBQSxpQkFBUyxFQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLFNBQVMsSUFBSSxVQUFVLENBQUMsQ0FBQztnQkFDbkgsQ0FBQztxQkFDSSxDQUFDO29CQUNGLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvRCxDQUFDO2dCQUNELElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQzFCLElBQUEsb0JBQVksRUFBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzFCLHVCQUF1QjtvQkFDdkIsTUFBTSxHQUFHO3dCQUNMLEdBQUcsRUFBRSxPQUFPO3dCQUNaLEdBQUcsRUFBRSxjQUFjO3FCQUN0QixDQUFDO2dCQUNOLENBQUM7WUFDTCxDQUFDO1lBRUQsSUFBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNWLE1BQU0sR0FBRztvQkFDTCxHQUFHLEVBQUUsT0FBTztvQkFDWixHQUFHLEVBQUUsT0FBTztpQkFDZixDQUFDO1lBQ04sQ0FBQztZQUVELGNBQWM7WUFDZCxPQUFPLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztZQUVqQywwQkFBMEI7WUFDMUIsSUFBRyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQztnQkFDdkMsYUFBYTtnQkFDYixPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztvQkFDdEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLElBQUksRUFBRTtvQkFDL0IsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUU7aUJBQzdDLENBQUMsQ0FBQztZQUNQLENBQUM7WUFFRCxJQUFHLE1BQU0sSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDcEMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFNLENBQUMsRUFBRSxDQUFDO1lBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixNQUFNLEdBQUc7Z0JBQ0wsR0FBRyxFQUFFLE9BQU87Z0JBQ1osR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLElBQUksWUFBWTthQUNqQyxDQUFDO1lBQ0YsSUFBRyxRQUFRO2dCQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsT0FBTztJQUNQLFNBQVMsQ0FBQyxPQUFnQixFQUFFLEtBQVc7UUFDbkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxJQUFHLEtBQUssRUFBRSxDQUFDO1lBQ1AsT0FBTyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7WUFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLE1BQU0sS0FBSyxDQUFDO1FBQ2hCLENBQUM7YUFDSSxDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sSUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksSUFBSSxFQUFFLFFBQVEsQ0FBQztZQUVsRixxQkFBcUI7WUFDckIsSUFBRyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQ3hCLElBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxRQUFRLElBQUksR0FBRyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUMsTUFBTSxFQUFFLFFBQVE7b0JBQUUsR0FBRyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDakgsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ3hDLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqQyxHQUFHLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBLGdCQUFnQjtnQkFDckQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFFM0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsUUFBUSxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsVUFBVSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssSUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdHLENBQUM7aUJBQ0ksQ0FBQztnQkFDRixPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztDQUdKLENBQUE7QUF2S1ksOEJBQVM7QUFFbEI7SUFEQyxJQUFBLGFBQU0sR0FBRTs4QkFDTyxnQ0FBYztpREFBQztBQUcvQjtJQURDLElBQUEsYUFBTSxFQUFDLEtBQUssQ0FBQzs7NENBQ0M7QUFHZjtJQURDLElBQUEsYUFBTSxFQUFDLE1BQU0sQ0FBQzs7NkNBR2I7QUFHRjtJQURDLElBQUEsYUFBTSxFQUFDLFdBQVcsQ0FBQzs7NENBQ0w7QUFHZjtJQURDLElBQUEsYUFBTSxFQUFDLEtBQUssQ0FBQzs7c0NBQ0w7b0JBaEJBLFNBQVM7SUFEckIsSUFBQSxZQUFLLEdBQUU7R0FDSyxTQUFTLENBdUtyQiJ9