egg 4.0.0-beta.0 → 4.0.0-beta.10
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/README.md +1 -0
- package/README.zh-CN.md +1 -0
- package/dist/commonjs/app/extend/context.d.ts +154 -0
- package/dist/commonjs/app/extend/context.js +261 -0
- package/dist/commonjs/app/extend/context.types.d.ts +16 -0
- package/dist/commonjs/app/extend/context.types.js +3 -0
- package/dist/commonjs/app/extend/helper.d.ts +37 -0
- package/dist/commonjs/app/extend/helper.js +49 -0
- package/dist/commonjs/app/extend/request.d.ts +128 -0
- package/dist/commonjs/app/extend/request.js +270 -0
- package/dist/commonjs/app/extend/response.d.ts +25 -0
- package/dist/commonjs/app/extend/response.js +37 -0
- package/dist/commonjs/app/middleware/meta.d.ts +2 -3
- package/dist/commonjs/app/middleware/meta.js +1 -1
- package/dist/commonjs/app/middleware/notfound.d.ts +2 -3
- package/dist/commonjs/app/middleware/notfound.js +1 -1
- package/dist/commonjs/app/middleware/site_file.d.ts +5 -3
- package/dist/commonjs/app/middleware/site_file.js +21 -3
- package/dist/commonjs/config/config.default.js +5 -4
- package/dist/commonjs/config/plugin.js +3 -3
- package/dist/commonjs/index.d.ts +3 -1
- package/dist/commonjs/index.js +8 -6
- package/dist/commonjs/lib/application.d.ts +5 -12
- package/dist/commonjs/lib/application.js +9 -20
- package/dist/commonjs/lib/core/base_context_class.d.ts +2 -2
- package/dist/commonjs/lib/core/base_hook_class.d.ts +1 -1
- package/dist/commonjs/lib/core/context_httpclient.d.ts +3 -3
- package/dist/commonjs/lib/core/context_httpclient.js +1 -1
- package/dist/commonjs/lib/core/httpclient.d.ts +2 -3
- package/dist/commonjs/lib/core/httpclient.js +3 -6
- package/dist/commonjs/lib/core/messenger/IMessenger.d.ts +3 -3
- package/dist/commonjs/lib/core/messenger/index.js +2 -2
- package/dist/commonjs/lib/core/messenger/ipc.d.ts +6 -4
- package/dist/commonjs/lib/core/messenger/ipc.js +31 -20
- package/dist/commonjs/lib/core/messenger/local.d.ts +3 -3
- package/dist/commonjs/lib/core/messenger/local.js +14 -11
- package/dist/commonjs/lib/egg.d.ts +25 -16
- package/dist/commonjs/lib/egg.js +44 -22
- package/dist/commonjs/lib/egg.types.d.ts +6 -0
- package/dist/commonjs/lib/egg.types.js +3 -0
- package/dist/commonjs/lib/type.d.ts +3 -5
- package/dist/commonjs/lib/utils.d.ts +2 -0
- package/dist/commonjs/lib/utils.js +21 -0
- package/dist/esm/app/extend/context.d.ts +154 -0
- package/dist/esm/app/extend/context.js +255 -0
- package/dist/esm/app/extend/context.types.d.ts +16 -0
- package/dist/esm/app/extend/context.types.js +2 -0
- package/dist/esm/app/extend/helper.d.ts +37 -0
- package/dist/esm/app/extend/helper.js +43 -0
- package/dist/esm/app/extend/request.d.ts +128 -0
- package/dist/esm/app/extend/request.js +264 -0
- package/dist/esm/app/extend/response.d.ts +25 -0
- package/dist/esm/app/extend/response.js +34 -0
- package/dist/esm/app/middleware/meta.d.ts +2 -3
- package/dist/esm/app/middleware/meta.js +1 -1
- package/dist/esm/app/middleware/notfound.d.ts +2 -3
- package/dist/esm/app/middleware/notfound.js +1 -1
- package/dist/esm/app/middleware/site_file.d.ts +5 -3
- package/dist/esm/app/middleware/site_file.js +21 -3
- package/dist/esm/config/config.default.js +5 -4
- package/dist/esm/config/plugin.js +3 -3
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +5 -4
- package/dist/esm/lib/application.d.ts +5 -12
- package/dist/esm/lib/application.js +9 -20
- package/dist/esm/lib/core/base_context_class.d.ts +2 -2
- package/dist/esm/lib/core/base_hook_class.d.ts +1 -1
- package/dist/esm/lib/core/context_httpclient.d.ts +3 -3
- package/dist/esm/lib/core/context_httpclient.js +1 -1
- package/dist/esm/lib/core/httpclient.d.ts +2 -3
- package/dist/esm/lib/core/httpclient.js +2 -2
- package/dist/esm/lib/core/messenger/IMessenger.d.ts +3 -3
- package/dist/esm/lib/core/messenger/index.js +2 -2
- package/dist/esm/lib/core/messenger/ipc.d.ts +6 -4
- package/dist/esm/lib/core/messenger/ipc.js +29 -18
- package/dist/esm/lib/core/messenger/local.d.ts +3 -3
- package/dist/esm/lib/core/messenger/local.js +14 -11
- package/dist/esm/lib/egg.d.ts +25 -16
- package/dist/esm/lib/egg.js +24 -15
- package/dist/esm/lib/egg.types.d.ts +6 -0
- package/dist/esm/lib/egg.types.js +2 -0
- package/dist/esm/lib/type.d.ts +3 -5
- package/dist/esm/lib/utils.d.ts +2 -0
- package/dist/esm/lib/utils.js +14 -0
- package/dist/package.json +1 -1
- package/package.json +32 -28
- package/src/app/extend/context.ts +303 -0
- package/src/app/extend/context.types.ts +24 -0
- package/src/app/extend/{helper.js → helper.ts} +14 -13
- package/src/app/extend/{request.js → request.ts} +81 -79
- package/src/app/extend/response.ts +36 -0
- package/src/app/middleware/meta.ts +2 -3
- package/src/app/middleware/notfound.ts +2 -3
- package/src/app/middleware/site_file.ts +26 -7
- package/src/config/config.default.ts +4 -3
- package/src/config/plugin.ts +2 -2
- package/src/index.ts +5 -3
- package/src/lib/application.ts +14 -21
- package/src/lib/core/base_context_class.ts +2 -2
- package/src/lib/core/base_hook_class.ts +1 -1
- package/src/lib/core/context_httpclient.ts +3 -3
- package/src/lib/core/httpclient.ts +4 -5
- package/src/lib/core/messenger/IMessenger.ts +3 -3
- package/src/lib/core/messenger/index.ts +1 -1
- package/src/lib/core/messenger/ipc.ts +31 -20
- package/src/lib/core/messenger/local.ts +13 -11
- package/src/lib/egg.ts +60 -28
- package/src/lib/egg.types.ts +6 -0
- package/src/lib/type.ts +6 -6
- package/src/lib/utils.ts +16 -0
- package/src/app/extend/context.js +0 -285
- package/src/app/extend/response.js +0 -101
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { type IncomingMessage, type ServerResponse } from 'node:http';
|
|
2
|
-
import {
|
|
2
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
3
|
+
import { EggCore, Request as EggCoreRequest, Response as EggCoreResponse, Router } from '@eggjs/core';
|
|
4
|
+
import type { EggCoreOptions, Next, MiddlewareFunc as EggCoreMiddlewareFunc, ILifecycleBoot } from '@eggjs/core';
|
|
3
5
|
import { EggContextLogger as ContextLogger, EggLoggers, EggLogger } from 'egg-logger';
|
|
4
6
|
import { Cookies as ContextCookies } from '@eggjs/cookies';
|
|
5
7
|
import type { Agent } from './agent.js';
|
|
6
8
|
import type { Application } from './application.js';
|
|
9
|
+
import Context, { type ContextDelegation } from '../app/extend/context.js';
|
|
7
10
|
import type { EggAppConfig } from './type.js';
|
|
8
11
|
import { IMessenger } from './core/messenger/index.js';
|
|
9
12
|
import { ContextHttpClient } from './core/context_httpclient.js';
|
|
@@ -12,25 +15,27 @@ import { type SingletonCreateMethod } from './core/singleton.js';
|
|
|
12
15
|
import { BaseContextClass } from './core/base_context_class.js';
|
|
13
16
|
import { BaseHookClass } from './core/base_hook_class.js';
|
|
14
17
|
import type { EggApplicationLoader } from './loader/index.js';
|
|
18
|
+
import './egg.types.js';
|
|
15
19
|
declare const EGG_PATH: unique symbol;
|
|
16
20
|
export interface EggApplicationCoreOptions extends Omit<EggCoreOptions, 'baseDir'> {
|
|
17
21
|
mode?: 'cluster' | 'single';
|
|
18
22
|
clusterPort?: number;
|
|
19
23
|
baseDir?: string;
|
|
20
24
|
}
|
|
21
|
-
export
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
*/
|
|
27
|
-
starttime: number;
|
|
28
|
-
/**
|
|
29
|
-
* Request start timer using `performance.now()`
|
|
30
|
-
* @member {Number} Context#performanceStarttime
|
|
31
|
-
*/
|
|
32
|
-
performanceStarttime: number;
|
|
25
|
+
export { Context, Router, EggLogger, };
|
|
26
|
+
export declare class Request extends EggCoreRequest {
|
|
27
|
+
app: EggCore;
|
|
28
|
+
response: Response;
|
|
29
|
+
ctx: ContextDelegation;
|
|
33
30
|
}
|
|
31
|
+
export declare class Response extends EggCoreResponse {
|
|
32
|
+
app: EggCore;
|
|
33
|
+
request: Request;
|
|
34
|
+
ctx: ContextDelegation;
|
|
35
|
+
}
|
|
36
|
+
export type { ContextDelegation, ILifecycleBoot, Next, };
|
|
37
|
+
export type EggContext = ContextDelegation;
|
|
38
|
+
export type MiddlewareFunc<T extends ContextDelegation = ContextDelegation> = EggCoreMiddlewareFunc<T>;
|
|
34
39
|
/**
|
|
35
40
|
* Based on koa's Application
|
|
36
41
|
* @see https://github.com/eggjs/egg-core
|
|
@@ -39,6 +44,7 @@ export interface EggContext extends EggCoreContext {
|
|
|
39
44
|
*/
|
|
40
45
|
export declare class EggApplicationCore extends EggCore {
|
|
41
46
|
#private;
|
|
47
|
+
ctxStorage: AsyncLocalStorage<ContextDelegation>;
|
|
42
48
|
ContextCookies: typeof ContextCookies;
|
|
43
49
|
ContextLogger: typeof ContextLogger;
|
|
44
50
|
ContextHttpClient: typeof ContextHttpClient;
|
|
@@ -91,6 +97,10 @@ export declare class EggApplicationCore extends EggCore {
|
|
|
91
97
|
* - {String} [mode] - process mode, can be cluster / single, default is `cluster`
|
|
92
98
|
*/
|
|
93
99
|
constructor(options?: EggApplicationCoreOptions);
|
|
100
|
+
/**
|
|
101
|
+
* @deprecated please use `options` property instead
|
|
102
|
+
*/
|
|
103
|
+
get _options(): Required<EggApplicationCoreOptions>;
|
|
94
104
|
protected loadConfig(): Promise<void>;
|
|
95
105
|
protected load(): Promise<void>;
|
|
96
106
|
/**
|
|
@@ -111,7 +121,7 @@ export declare class EggApplicationCore extends EggCore {
|
|
|
111
121
|
* - {Number} [maxWaitTime|30000] - leader startup max time, default is 30 seconds
|
|
112
122
|
* @return {ClientWrapper} wrapper
|
|
113
123
|
*/
|
|
114
|
-
cluster(clientClass: unknown, options
|
|
124
|
+
cluster(clientClass: unknown, options?: object): any;
|
|
115
125
|
/**
|
|
116
126
|
* print the information when console.log(app)
|
|
117
127
|
* @return {Object} inspected app.
|
|
@@ -254,7 +264,7 @@ export declare class EggApplicationCore extends EggCore {
|
|
|
254
264
|
* @param {Request} [req] - if you want to mock request like querystring, you can pass an object to this function.
|
|
255
265
|
* @return {Context} context
|
|
256
266
|
*/
|
|
257
|
-
createAnonymousContext(req?: any):
|
|
267
|
+
createAnonymousContext(req?: any): EggContext;
|
|
258
268
|
/**
|
|
259
269
|
* Create egg context
|
|
260
270
|
* @function EggApplication#createContext
|
|
@@ -264,4 +274,3 @@ export declare class EggApplicationCore extends EggCore {
|
|
|
264
274
|
*/
|
|
265
275
|
createContext(req: IncomingMessage, res: ServerResponse): EggContext;
|
|
266
276
|
}
|
|
267
|
-
export {};
|
package/dist/commonjs/lib/egg.js
CHANGED
|
@@ -15,34 +15,47 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
28
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.EggApplicationCore = void 0;
|
|
39
|
+
exports.EggApplicationCore = exports.Response = exports.Request = exports.EggLogger = exports.Router = exports.Context = void 0;
|
|
30
40
|
const node_perf_hooks_1 = require("node:perf_hooks");
|
|
31
41
|
const node_path_1 = __importDefault(require("node:path"));
|
|
32
42
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
33
43
|
const node_http_1 = __importDefault(require("node:http"));
|
|
34
44
|
const node_inspector_1 = __importDefault(require("node:inspector"));
|
|
35
|
-
const node_url_1 = require("node:url");
|
|
36
45
|
const core_1 = require("@eggjs/core");
|
|
46
|
+
Object.defineProperty(exports, "Router", { enumerable: true, get: function () { return core_1.Router; } });
|
|
37
47
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
38
48
|
// @ts-ignore
|
|
39
49
|
const cluster_client_1 = __importStar(require("cluster-client"));
|
|
40
|
-
const extend2_1 =
|
|
50
|
+
const extend2_1 = require("extend2");
|
|
41
51
|
const egg_logger_1 = require("egg-logger");
|
|
52
|
+
Object.defineProperty(exports, "EggLogger", { enumerable: true, get: function () { return egg_logger_1.EggLogger; } });
|
|
42
53
|
const cookies_1 = require("@eggjs/cookies");
|
|
43
54
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
44
55
|
// @ts-ignore
|
|
45
56
|
const circular_json_for_egg_1 = __importDefault(require("circular-json-for-egg"));
|
|
57
|
+
const context_js_1 = __importDefault(require("../app/extend/context.js"));
|
|
58
|
+
exports.Context = context_js_1.default;
|
|
46
59
|
const index_js_1 = require("./core/messenger/index.js");
|
|
47
60
|
const context_httpclient_js_1 = require("./core/context_httpclient.js");
|
|
48
61
|
const httpclient_js_1 = require("./core/httpclient.js");
|
|
@@ -51,7 +64,15 @@ const singleton_js_1 = require("./core/singleton.js");
|
|
|
51
64
|
const utils_js_1 = require("./core/utils.js");
|
|
52
65
|
const base_context_class_js_1 = require("./core/base_context_class.js");
|
|
53
66
|
const base_hook_class_js_1 = require("./core/base_hook_class.js");
|
|
67
|
+
const utils_js_2 = require("./utils.js");
|
|
68
|
+
require("./egg.types.js");
|
|
54
69
|
const EGG_PATH = Symbol.for('egg#eggPath');
|
|
70
|
+
class Request extends core_1.Request {
|
|
71
|
+
}
|
|
72
|
+
exports.Request = Request;
|
|
73
|
+
class Response extends core_1.Response {
|
|
74
|
+
}
|
|
75
|
+
exports.Response = Response;
|
|
55
76
|
/**
|
|
56
77
|
* Based on koa's Application
|
|
57
78
|
* @see https://github.com/eggjs/egg-core
|
|
@@ -131,7 +152,15 @@ class EggApplicationCore extends core_1.EggCore {
|
|
|
131
152
|
this.messenger.once('egg-ready', () => {
|
|
132
153
|
this.lifecycle.triggerServerDidReady();
|
|
133
154
|
});
|
|
134
|
-
this.
|
|
155
|
+
this.lifecycle.registerBeforeStart(async () => {
|
|
156
|
+
await this.load();
|
|
157
|
+
}, 'load files');
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* @deprecated please use `options` property instead
|
|
161
|
+
*/
|
|
162
|
+
get _options() {
|
|
163
|
+
return this.options;
|
|
135
164
|
}
|
|
136
165
|
async loadConfig() {
|
|
137
166
|
await this.loader.loadConfig();
|
|
@@ -366,7 +395,6 @@ class EggApplicationCore extends core_1.EggCore {
|
|
|
366
395
|
if (!(err instanceof Error)) {
|
|
367
396
|
const newError = new Error(String(err));
|
|
368
397
|
// err maybe an object, try to copy the name, message and stack to the new error instance
|
|
369
|
-
/* istanbul ignore else */
|
|
370
398
|
if (err) {
|
|
371
399
|
if (err.name)
|
|
372
400
|
newError.name = err.name;
|
|
@@ -377,7 +405,6 @@ class EggApplicationCore extends core_1.EggCore {
|
|
|
377
405
|
}
|
|
378
406
|
err = newError;
|
|
379
407
|
}
|
|
380
|
-
/* istanbul ignore else */
|
|
381
408
|
if (err.name === 'Error') {
|
|
382
409
|
err.name = 'unhandledRejectionError';
|
|
383
410
|
}
|
|
@@ -396,7 +423,7 @@ class EggApplicationCore extends core_1.EggCore {
|
|
|
396
423
|
catch (_) {
|
|
397
424
|
ignoreList = [];
|
|
398
425
|
}
|
|
399
|
-
const config = (0, extend2_1.
|
|
426
|
+
const config = (0, extend2_1.extend)(true, {}, {
|
|
400
427
|
config: this.config,
|
|
401
428
|
plugins: this.loader.allPlugins,
|
|
402
429
|
appInfo: this.loader.appInfo,
|
|
@@ -452,12 +479,7 @@ class EggApplicationCore extends core_1.EggCore {
|
|
|
452
479
|
}
|
|
453
480
|
}
|
|
454
481
|
get [EGG_PATH]() {
|
|
455
|
-
|
|
456
|
-
return node_path_1.default.dirname(__dirname);
|
|
457
|
-
}
|
|
458
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
459
|
-
// @ts-ignore
|
|
460
|
-
return node_path_1.default.dirname(node_path_1.default.dirname((0, node_url_1.fileURLToPath)('import_meta_url_placeholder_by_tshy_after')));
|
|
482
|
+
return (0, utils_js_2.getSourceDirname)();
|
|
461
483
|
}
|
|
462
484
|
#setupTimeoutTimer() {
|
|
463
485
|
const startTimeoutTimer = setTimeout(() => {
|
|
@@ -495,7 +517,7 @@ class EggApplicationCore extends core_1.EggCore {
|
|
|
495
517
|
* @deprecated
|
|
496
518
|
*/
|
|
497
519
|
get proxy() {
|
|
498
|
-
this.deprecate('please use app.config.proxy instead');
|
|
520
|
+
// this.deprecate('please use app.config.proxy instead');
|
|
499
521
|
return this.config.proxy;
|
|
500
522
|
}
|
|
501
523
|
/* eslint no-empty-function: off */
|
|
@@ -592,4 +614,4 @@ class EggApplicationCore extends core_1.EggCore {
|
|
|
592
614
|
}
|
|
593
615
|
}
|
|
594
616
|
exports.EggApplicationCore = EggApplicationCore;
|
|
595
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWdnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9lZ2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBOEM7QUFDOUMsMERBQTZCO0FBQzdCLHNEQUF5QjtBQUN6QiwwREFBNEU7QUFDNUUsb0VBQXVDO0FBQ3ZDLHVDQUF5QztBQUN6QyxzQ0FBZ0Y7QUFDaEYsNkRBQTZEO0FBQzdELGFBQWE7QUFDYixpRUFBa0Y7QUFDbEYsc0RBQTZCO0FBQzdCLDJDQUFzRjtBQUN0Riw0Q0FBMkQ7QUFDM0QsNkRBQTZEO0FBQzdELGFBQWE7QUFDYixrRkFBaUQ7QUFJakQsd0RBQWtGO0FBQ2xGLHdFQUFpRTtBQUNqRSx3REFFOEI7QUFDOUIsZ0RBQWlEO0FBQ2pELHNEQUU2QjtBQUM3Qiw4Q0FBZ0Q7QUFDaEQsd0VBQWdFO0FBQ2hFLGtFQUEwRDtBQUcxRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBc0IzQzs7Ozs7R0FLRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsY0FBTztJQUM3QyxnR0FBZ0c7SUFDaEcsY0FBYyxHQUFHLGlCQUFjLENBQUM7SUFDaEMsYUFBYSxHQUFHLDZCQUFhLENBQUM7SUFDOUIsaUJBQWlCLEdBQUcseUNBQWlCLENBQUM7SUFDdEMsVUFBVSxHQUFHLDBCQUFVLENBQUM7SUFDeEI7Ozs7T0FJRztJQUNILGdCQUFnQixHQUFHLHdDQUFnQixDQUFDO0lBRXBDOzs7O09BSUc7SUFDSCxVQUFVLEdBQUcsd0NBQWdCLENBQUM7SUFFOUI7Ozs7T0FJRztJQUNILE9BQU8sR0FBRyx3Q0FBZ0IsQ0FBQztJQUUzQjs7OztPQUlHO0lBQ0gsWUFBWSxHQUFHLHdDQUFnQixDQUFDO0lBRWhDOzs7T0FHRztJQUNILGFBQWEsR0FBRyxrQ0FBYSxDQUFDO0lBRTlCOzs7T0FHRztJQUNILElBQUksR0FBRyxrQ0FB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
|
|
617
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWdnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9lZ2cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQThDO0FBQzlDLDBEQUE2QjtBQUM3QixzREFBeUI7QUFDekIsMERBQTRFO0FBQzVFLG9FQUF1QztBQUV2QyxzQ0FLcUI7QUErQ25CLHVGQWhEQSxhQUFNLE9BZ0RBO0FBekNSLDZEQUE2RDtBQUM3RCxhQUFhO0FBQ2IsaUVBQWtGO0FBQ2xGLHFDQUFpQztBQUNqQywyQ0FBc0Y7QUFzQ3BGLDBGQXRDc0Qsc0JBQVMsT0FzQ3REO0FBckNYLDRDQUEyRDtBQUMzRCw2REFBNkQ7QUFDN0QsYUFBYTtBQUNiLGtGQUFpRDtBQUdqRCwwRUFBMkU7QUE2QnpFLGtCQTdCSyxvQkFBTyxDQTZCTDtBQTNCVCx3REFBa0Y7QUFDbEYsd0VBQWlFO0FBQ2pFLHdEQUU4QjtBQUM5QixnREFBaUQ7QUFDakQsc0RBRTZCO0FBQzdCLDhDQUFnRDtBQUNoRCx3RUFBZ0U7QUFDaEUsa0VBQTBEO0FBRTFELHlDQUE4QztBQUU5QywwQkFBd0I7QUFFeEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQWUzQyxNQUFhLE9BQVEsU0FBUSxjQUFjO0NBSTFDO0FBSkQsMEJBSUM7QUFFRCxNQUFhLFFBQVMsU0FBUSxlQUFlO0NBSTVDO0FBSkQsNEJBSUM7QUFZRDs7Ozs7R0FLRztBQUNILE1BQWEsa0JBQW1CLFNBQVEsY0FBTztJQUU3QyxnR0FBZ0c7SUFDaEcsY0FBYyxHQUFHLGlCQUFjLENBQUM7SUFDaEMsYUFBYSxHQUFHLDZCQUFhLENBQUM7SUFDOUIsaUJBQWlCLEdBQUcseUNBQWlCLENBQUM7SUFDdEMsVUFBVSxHQUFHLDBCQUFVLENBQUM7SUFDeEI7Ozs7T0FJRztJQUNILGdCQUFnQixHQUFHLHdDQUFnQixDQUFDO0lBRXBDOzs7O09BSUc7SUFDSCxVQUFVLEdBQUcsd0NBQWdCLENBQUM7SUFFOUI7Ozs7T0FJRztJQUNILE9BQU8sR0FBRyx3Q0FBZ0IsQ0FBQztJQUUzQjs7OztPQUlHO0lBQ0gsWUFBWSxHQUFHLHdDQUFnQixDQUFDO0lBRWhDOzs7T0FHRztJQUNILGFBQWEsR0FBRyxrQ0FBYSxDQUFDO0lBRTlCOzs7T0FHRztJQUNILElBQUksR0FBRyxrQ0FBYSxDQUFDO0lBSXJCLFdBQVcsQ0FBYztJQUN6QixRQUFRLENBQWM7SUFDdEIsZUFBZSxHQUFVLEVBQUUsQ0FBQztJQUVuQixTQUFTLENBQWE7SUFDL0IsS0FBSyxDQUFTO0lBQ2QsV0FBVyxDQUFlO0lBRzFCOzs7Ozs7O09BT0c7SUFDSCxZQUFZLE9BQW1DO1FBQzdDLE9BQU8sR0FBRztZQUNSLElBQUksRUFBRSxTQUFTO1lBQ2YsSUFBSSxFQUFFLGFBQWE7WUFDbkIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDdEIsR0FBRyxPQUFPO1NBQ1gsQ0FBQztRQUNGLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmOzs7O1dBSUc7UUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUEsaUJBQWUsRUFBQyxJQUFJLENBQUMsQ0FBQztRQUV2Qyx5REFBeUQ7UUFDekQsNkJBQTZCO1FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM1QyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFUyxLQUFLLENBQUMsVUFBVTtRQUN4QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVTLEtBQUssQ0FBQyxJQUFJO1FBQ2xCLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLHNGQUFzRjtRQUN0RixrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNyQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUM7UUFDMUYsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTlFLDJFQUEyRTtRQUMzRSxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RSxPQUFPLENBQUMsRUFBRSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRWxFLDBCQUEwQjtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEtBQUssSUFBSSxFQUFFO1lBQzVDLDRCQUE0QjtZQUM1QixLQUFLLE1BQU0sYUFBYSxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDakQsTUFBTSxJQUFBLHNCQUFrQixFQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzFDLENBQUM7WUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztZQUUxQix3REFBd0Q7WUFDeEQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGFBQWEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDbEUsTUFBTSxJQUFJLENBQUMsS0FBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVCLENBQUM7WUFFRCxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztnQkFDM0MsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLENBQUM7WUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNILE9BQU8sQ0FBQyxXQUFvQixFQUFFLE9BQWdCO1FBQzVDLE1BQU0sa0JBQWtCLEdBQUc7WUFDekIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWE7WUFDNUIsR0FBRyxPQUFPO1lBQ1YsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFDMUMsNkRBQTZEO1lBQzdELElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDOUIsbURBQW1EO1lBQ25ELFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU87WUFDL0IsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ3ZCLHNDQUFzQztZQUN0QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsd0JBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxTQUFTO1NBQ3BGLENBQUM7UUFDRixNQUFNLE1BQU0sR0FBRyxJQUFBLHdCQUFtQixFQUFDLFdBQVcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0JHO0lBQ0gsT0FBTztRQUNMLE1BQU0sR0FBRyxHQUFHO1lBQ1YsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRztTQUNyQixDQUFDO1FBRUYsU0FBUyxRQUFRLENBQUMsR0FBUSxFQUFFLEdBQVEsRUFBRSxJQUFjO1lBQ2xELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsU0FBUyxJQUFJLENBQUMsR0FBUSxFQUFFLEdBQVEsRUFBRSxJQUFjO1lBQzlDLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ2IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsR0FBRyxHQUFHLENBQUM7Z0JBQzVCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQ2xCLE1BQU07WUFDTixTQUFTO1lBQ1QsaUJBQWlCO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQ2QsUUFBUTtZQUNSLFlBQVk7WUFDWixZQUFZO1lBQ1osU0FBUztZQUNULGFBQWE7WUFDYixRQUFRO1lBQ1IsZ0JBQWdCO1NBQ2pCLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc0NHO0lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBVSxHQUF5QixFQUFFLE9BQWtDO1FBQy9FLE9BQU8sTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBSSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLFVBQVU7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLE9BQU87UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBQSx5QkFBYSxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxDQUFDLElBQVk7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsMEJBQTBCLENBQUMsR0FBUTtRQUNqQyxJQUFJLENBQUMsQ0FBQyxHQUFHLFlBQVksS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN4Qyx5RkFBeUY7WUFDekYsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixJQUFJLEdBQUcsQ0FBQyxJQUFJO29CQUFFLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDdkMsSUFBSSxHQUFHLENBQUMsT0FBTztvQkFBRSxRQUFRLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7Z0JBQ2hELElBQUksR0FBRyxDQUFDLEtBQUs7b0JBQUUsUUFBUSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzVDLENBQUM7WUFDRCxHQUFHLEdBQUcsUUFBUSxDQUFDO1FBQ2pCLENBQUM7UUFDRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDekIsR0FBRyxDQUFDLElBQUksR0FBRyx5QkFBeUIsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQjtRQUNoQixJQUFJLFVBQStCLENBQUM7UUFDcEMsSUFBSSxDQUFDO1lBQ0gsd0JBQXdCO1lBQ3hCLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNsQixDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBQSxnQkFBTSxFQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVU7WUFDL0IsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztTQUM3QixDQUFDLENBQUM7UUFDSCxJQUFBLHdCQUFhLEVBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2xDLE9BQU87WUFDTCxNQUFNO1lBQ04sSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVTtTQUM3QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVU7UUFDUixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNsQyxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsaUJBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsaUJBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkIsQ0FBQztZQUVELG9CQUFvQjtZQUNwQixNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBRW5ELGNBQWM7WUFDZCxNQUFNLFFBQVEsR0FBRyxtQkFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxjQUFjLENBQUMsQ0FBQztZQUMvRCxpQkFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsK0JBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXBFLG1CQUFtQjtZQUNuQixNQUFNLFlBQVksR0FBRyxtQkFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3hFLGlCQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSwrQkFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsQ0FBQztRQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQztZQUNILE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDbEMsTUFBTSxRQUFRLEdBQUcsbUJBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksV0FBVyxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztZQUM5RSxpQkFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsK0JBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25FLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM3QyxpREFBaUQ7WUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0Qix3RUFBd0U7WUFDeEUsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDekIsZ0NBQWdDO2dCQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMseUJBQXlCLEVBQUUsQ0FBQztvQkFDMUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsd0RBQXdELEVBQzNFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzFDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNaLE9BQU8sSUFBQSwyQkFBZ0IsR0FBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLDhCQUE4QixJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixNQUFNLENBQUMsQ0FBQztZQUN0RyxpQkFBaUI7WUFDakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUN6QixJQUFJLElBQUksQ0FBQyxHQUFHO29CQUFFLFNBQVM7Z0JBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLDJCQUEyQiwrQkFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkYsQ0FBQztZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLHdFQUF3RSxFQUM1RixJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sS0FBSyxDQUFDLE1BQXNCLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksR0FBRztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxtQ0FBbUM7SUFDbkMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFHLENBQUM7SUFFYjs7O09BR0c7SUFDSCxJQUFJLEtBQUs7UUFDUCx5REFBeUQ7UUFDekQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBQ0QsbUNBQW1DO0lBQ25DLElBQUksS0FBSyxDQUFDLENBQUMsSUFBRyxDQUFDO0lBRWY7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxJQUFZLEVBQUUsTUFBNkI7UUFDdEQsTUFBTSxPQUFPLEdBQXFCO1lBQ2hDLElBQUk7WUFDSixNQUFNO1lBQ04sR0FBRyxFQUFFLElBQUk7U0FDVixDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQUcsSUFBSSx3QkFBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQzFCLE1BQU0sV0FBVyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFXO1FBQzdCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBUyxFQUFFLEVBQUU7WUFDL0IsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEMsT0FBTyxVQUFVLENBQUM7UUFDcEIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHNCQUFzQixDQUFDLEdBQVM7UUFDOUIsTUFBTSxPQUFPLEdBQVE7WUFDbkIsT0FBTyxFQUFFO2dCQUNQLElBQUksRUFBRSxXQUFXO2dCQUNqQixpQkFBaUIsRUFBRSxXQUFXO2FBQy9CO1lBQ0QsS0FBSyxFQUFFLEVBQUU7WUFDVCxXQUFXLEVBQUUsRUFBRTtZQUNmLElBQUksRUFBRSxXQUFXO1lBQ2pCLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsR0FBRztZQUNSLElBQUksRUFBRSxHQUFHO1lBQ1QsTUFBTSxFQUFFO2dCQUNOLGFBQWEsRUFBRSxXQUFXO2dCQUMxQixVQUFVLEVBQUUsSUFBSTthQUNqQjtTQUNGLENBQUM7UUFDRixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxPQUFPLElBQUksR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUM3RCxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLElBQUksbUJBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsYUFBYSxDQUFDLEdBQW9CLEVBQUUsR0FBbUI7UUFDckQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFlLENBQUM7UUFDMUQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxHQUFHLElBQVcsQ0FBQztRQUN2RCxPQUFPLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDL0MsT0FBTyxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQy9DLE9BQU8sQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUM7UUFDckMsT0FBTyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDNUIsUUFBUSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDM0IsT0FBTyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxPQUFPLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLEdBQWEsQ0FBQztRQUM5RCxPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMvQixPQUFPLENBQUMsb0JBQW9CLEdBQUcsNkJBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNqRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFwa0JELGdEQW9rQkMifQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWdnLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9lZ2cudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import type { Socket } from 'node:net';
|
|
2
|
-
import type { EggCoreContext } from '@eggjs/core';
|
|
3
2
|
import type { RequestOptions as HttpClientRequestOptions } from 'urllib';
|
|
4
3
|
import type { EggLoggerOptions, EggLoggersOptions } from 'egg-logger';
|
|
5
4
|
import type { FileLoaderOptions } from '@eggjs/core';
|
|
6
|
-
import type { EggApplicationCore } from './egg.js';
|
|
5
|
+
import type { EggApplicationCore, ContextDelegation } from './egg.js';
|
|
7
6
|
import type { MetaMiddlewareOptions } from '../app/middleware/meta.js';
|
|
8
7
|
import type { NotFoundMiddlewareOptions } from '../app/middleware/notfound.js';
|
|
9
8
|
import type { SiteFileMiddlewareOptions } from '../app/middleware/site_file.js';
|
|
10
|
-
type IgnoreItem = string | RegExp | ((ctx:
|
|
9
|
+
type IgnoreItem = string | RegExp | ((ctx: ContextDelegation) => boolean);
|
|
11
10
|
type IgnoreOrMatch = IgnoreItem | IgnoreItem[];
|
|
12
|
-
export type Next = () => Promise<void>;
|
|
13
11
|
export interface ClientErrorResponse {
|
|
14
12
|
body: string | Buffer;
|
|
15
13
|
status: number;
|
|
@@ -89,7 +87,7 @@ export interface EggAppConfig {
|
|
|
89
87
|
};
|
|
90
88
|
/** Default is `'error'`, it will return `400` response when `Prototype-Poisoning` happen. */
|
|
91
89
|
onProtoPoisoning: 'error' | 'remove' | 'ignore';
|
|
92
|
-
onerror(err: any, ctx:
|
|
90
|
+
onerror(err: any, ctx: ContextDelegation): void;
|
|
93
91
|
};
|
|
94
92
|
/**
|
|
95
93
|
* logger options
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getSourceDirname = getSourceDirname;
|
|
7
|
+
exports.getSourceFile = getSourceFile;
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
const node_url_1 = require("node:url");
|
|
10
|
+
function getSourceDirname() {
|
|
11
|
+
if (typeof __dirname !== 'undefined') {
|
|
12
|
+
return node_path_1.default.dirname(__dirname);
|
|
13
|
+
}
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
return node_path_1.default.dirname(node_path_1.default.dirname((0, node_url_1.fileURLToPath)('import_meta_url_placeholder_by_tshy_after')));
|
|
17
|
+
}
|
|
18
|
+
function getSourceFile(filename) {
|
|
19
|
+
return node_path_1.default.join(getSourceDirname(), filename);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBSUEsNENBT0M7QUFFRCxzQ0FFQztBQWRELDBEQUE2QjtBQUM3Qix1Q0FBeUM7QUFFekMsU0FBZ0IsZ0JBQWdCO0lBQzlCLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDckMsT0FBTyxtQkFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsNkRBQTZEO0lBQzdELGFBQWE7SUFDYixPQUFPLG1CQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFJLENBQUMsT0FBTyxDQUFDLElBQUEsd0JBQWEsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLFFBQWdCO0lBQzVDLE9BQU8sbUJBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNqRCxDQUFDIn0=
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { Context as EggCoreContext, Router, type ContextDelegation as EggCoreContextDelegation } from '@eggjs/core';
|
|
2
|
+
import type { Cookies as ContextCookies } from '@eggjs/cookies';
|
|
3
|
+
import { EggLogger } from 'egg-logger';
|
|
4
|
+
import type { Application } from '../../lib/application.js';
|
|
5
|
+
import type { HttpClientRequestURL, HttpClientRequestOptions, HttpClient } from '../../lib/core/httpclient.js';
|
|
6
|
+
import type { ContextHttpClient } from '../../lib/core/context_httpclient.js';
|
|
7
|
+
import type { BaseContextClass } from '../../lib//core/base_context_class.js';
|
|
8
|
+
import Request from './request.js';
|
|
9
|
+
import Response from './response.js';
|
|
10
|
+
import type Helper from './helper.js';
|
|
11
|
+
import './context.types.js';
|
|
12
|
+
interface Cookies extends ContextCookies {
|
|
13
|
+
request: any;
|
|
14
|
+
response: any;
|
|
15
|
+
}
|
|
16
|
+
export default class Context extends EggCoreContext {
|
|
17
|
+
app: Application;
|
|
18
|
+
request: Request;
|
|
19
|
+
service: BaseContextClass;
|
|
20
|
+
/**
|
|
21
|
+
* Request start time
|
|
22
|
+
* @member {Number} Context#starttime
|
|
23
|
+
*/
|
|
24
|
+
starttime: number;
|
|
25
|
+
/**
|
|
26
|
+
* Request start timer using `performance.now()`
|
|
27
|
+
* @member {Number} Context#performanceStarttime
|
|
28
|
+
*/
|
|
29
|
+
performanceStarttime: number;
|
|
30
|
+
/**
|
|
31
|
+
* Get the current visitor's cookies.
|
|
32
|
+
*/
|
|
33
|
+
get cookies(): Cookies;
|
|
34
|
+
/**
|
|
35
|
+
* Get a wrapper httpclient instance contain ctx in the hold request process
|
|
36
|
+
*
|
|
37
|
+
* @return {ContextHttpClient} the wrapper httpclient instance
|
|
38
|
+
*/
|
|
39
|
+
get httpclient(): ContextHttpClient;
|
|
40
|
+
/**
|
|
41
|
+
* Alias to {@link Context#httpclient}
|
|
42
|
+
*/
|
|
43
|
+
get httpClient(): ContextHttpClient;
|
|
44
|
+
/**
|
|
45
|
+
* Shortcut for httpclient.curl
|
|
46
|
+
*
|
|
47
|
+
* @function Context#curl
|
|
48
|
+
* @param {String|Object} url - request url address.
|
|
49
|
+
* @param {Object} [options] - options for request.
|
|
50
|
+
* @return {Object} see {@link ContextHttpClient#curl}
|
|
51
|
+
*/
|
|
52
|
+
curl(url: HttpClientRequestURL, options?: HttpClientRequestOptions): ReturnType<HttpClient['request']>;
|
|
53
|
+
/**
|
|
54
|
+
* Alias to {@link Application#router}
|
|
55
|
+
*
|
|
56
|
+
* @member {Router} Context#router
|
|
57
|
+
* @since 1.0.0
|
|
58
|
+
* @example
|
|
59
|
+
* ```js
|
|
60
|
+
* this.router.pathFor('post', { id: 12 });
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
get router(): Router;
|
|
64
|
+
/**
|
|
65
|
+
* Set router to Context, only use on EggRouter
|
|
66
|
+
* @param {Router} val router instance
|
|
67
|
+
*/
|
|
68
|
+
set router(val: Router);
|
|
69
|
+
/**
|
|
70
|
+
* Get helper instance from {@link Application#Helper}
|
|
71
|
+
*
|
|
72
|
+
* @member {Helper} Context#helper
|
|
73
|
+
* @since 1.0.0
|
|
74
|
+
*/
|
|
75
|
+
get helper(): Helper;
|
|
76
|
+
/**
|
|
77
|
+
* Wrap app.loggers with context information,
|
|
78
|
+
* if a custom logger is defined by naming aLogger, then you can `ctx.getLogger('aLogger')`
|
|
79
|
+
*
|
|
80
|
+
* @param {String} name - logger name
|
|
81
|
+
*/
|
|
82
|
+
getLogger(name: string): EggLogger;
|
|
83
|
+
/**
|
|
84
|
+
* Logger for Application
|
|
85
|
+
*
|
|
86
|
+
* @member {Logger} Context#logger
|
|
87
|
+
* @since 1.0.0
|
|
88
|
+
* @example
|
|
89
|
+
* ```js
|
|
90
|
+
* this.logger.info('some request data: %j', this.request.body);
|
|
91
|
+
* this.logger.warn('WARNING!!!!');
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
get logger(): EggLogger;
|
|
95
|
+
/**
|
|
96
|
+
* Logger for frameworks and plugins
|
|
97
|
+
*
|
|
98
|
+
* @member {Logger} Context#coreLogger
|
|
99
|
+
* @since 1.0.0
|
|
100
|
+
*/
|
|
101
|
+
get coreLogger(): EggLogger;
|
|
102
|
+
/**
|
|
103
|
+
* locals is an object for view, you can use `app.locals` and `ctx.locals` to set variables,
|
|
104
|
+
* which will be used as data when view is rendering.
|
|
105
|
+
* The difference between `app.locals` and `ctx.locals` is the context level, `app.locals` is global level, and `ctx.locals` is request level. when you get `ctx.locals`, it will merge `app.locals`.
|
|
106
|
+
*
|
|
107
|
+
* when you set locals, only object is available
|
|
108
|
+
*
|
|
109
|
+
* ```js
|
|
110
|
+
* this.locals = {
|
|
111
|
+
* a: 1
|
|
112
|
+
* };
|
|
113
|
+
* this.locals = {
|
|
114
|
+
* b: 1
|
|
115
|
+
* };
|
|
116
|
+
* this.locals.c = 1;
|
|
117
|
+
* console.log(this.locals);
|
|
118
|
+
* {
|
|
119
|
+
* a: 1,
|
|
120
|
+
* b: 1,
|
|
121
|
+
* c: 1,
|
|
122
|
+
* };
|
|
123
|
+
* ```
|
|
124
|
+
*
|
|
125
|
+
* `ctx.locals` has cache, it only merges `app.locals` once in one request.
|
|
126
|
+
*
|
|
127
|
+
* @member {Object} Context#locals
|
|
128
|
+
*/
|
|
129
|
+
get locals(): Record<string, any>;
|
|
130
|
+
set locals(val: Record<string, any>);
|
|
131
|
+
/**
|
|
132
|
+
* alias to {@link Context#locals}, compatible with koa that use this variable
|
|
133
|
+
* @member {Object} state
|
|
134
|
+
* @see Context#locals
|
|
135
|
+
*/
|
|
136
|
+
get state(): Record<string, any>;
|
|
137
|
+
set state(val: Record<string, any>);
|
|
138
|
+
/**
|
|
139
|
+
* Run async function in the background
|
|
140
|
+
* @param {Function} scope - the first args is ctx
|
|
141
|
+
* ```js
|
|
142
|
+
* this.body = 'hi';
|
|
143
|
+
*
|
|
144
|
+
* this.runInBackground(async ctx => {
|
|
145
|
+
* await ctx.mysql.query(sql);
|
|
146
|
+
* await ctx.curl(url);
|
|
147
|
+
* });
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
runInBackground(scope: (ctx: ContextDelegation) => Promise<void>, taskName?: string): void;
|
|
151
|
+
_runInBackground(scope: (ctx: ContextDelegation) => Promise<void>, taskName: string): Promise<void>;
|
|
152
|
+
}
|
|
153
|
+
export type ContextDelegation = EggCoreContextDelegation & Context & Pick<Request, 'acceptJSON' | 'queries' | 'accept' | 'ip'> & Pick<Response, 'realStatus'>;
|
|
154
|
+
export {};
|