@eggjs/tegg-plugin 3.62.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 +13 -1
- package/dist/app/extend/application.d.ts +50 -0
- package/dist/app/extend/application.js +79 -0
- package/dist/app/extend/application.unittest.d.ts +22 -0
- package/dist/app/extend/application.unittest.js +55 -0
- package/dist/app/extend/context.d.ts +20 -0
- package/dist/app/extend/context.js +35 -0
- package/dist/app/middleware/tegg_ctx_lifecycle_middleware.d.ts +3 -0
- package/dist/app/middleware/tegg_ctx_lifecycle_middleware.js +5 -0
- package/{app.d.ts → dist/app.d.ts} +5 -5
- package/dist/app.js +63 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4 -0
- package/{lib → dist/lib}/AppLoadUnit.d.ts +2 -2
- package/dist/lib/AppLoadUnit.js +90 -0
- package/{lib → dist/lib}/AppLoadUnitInstance.d.ts +3 -3
- package/dist/lib/AppLoadUnitInstance.js +82 -0
- package/{lib → dist/lib}/CompatibleUtil.d.ts +4 -4
- package/dist/lib/CompatibleUtil.js +95 -0
- package/{lib → dist/lib}/ConfigSourceLoadUnitHook.d.ts +2 -2
- package/dist/lib/ConfigSourceLoadUnitHook.js +21 -0
- package/{lib → dist/lib}/EggAppLoader.d.ts +5 -4
- package/dist/lib/EggAppLoader.js +128 -0
- package/{lib → dist/lib}/EggCompatibleObject.d.ts +4 -4
- package/dist/lib/EggCompatibleObject.js +42 -0
- package/{lib → dist/lib}/EggCompatibleProtoImpl.d.ts +3 -2
- package/dist/lib/EggCompatibleProtoImpl.js +52 -0
- package/dist/lib/EggContextCompatibleHook.d.ts +10 -0
- package/dist/lib/EggContextCompatibleHook.js +44 -0
- package/{lib → dist/lib}/EggContextHandler.d.ts +3 -3
- package/dist/lib/EggContextHandler.js +26 -0
- package/{lib → dist/lib}/EggContextImpl.d.ts +2 -2
- package/dist/lib/EggContextImpl.js +15 -0
- package/{lib → dist/lib}/EggModuleLoader.d.ts +1 -1
- package/dist/lib/EggModuleLoader.js +54 -0
- package/{lib → dist/lib}/EggQualifierProtoHook.d.ts +2 -2
- package/dist/lib/EggQualifierProtoHook.js +62 -0
- package/{lib → dist/lib}/ModuleConfigLoader.d.ts +1 -1
- package/dist/lib/ModuleConfigLoader.js +81 -0
- package/{lib → dist/lib}/ModuleHandler.d.ts +3 -3
- package/dist/lib/ModuleHandler.js +53 -0
- package/dist/lib/Utils.js +36 -0
- package/dist/lib/ctx_lifecycle_middleware.d.ts +2 -0
- package/dist/lib/ctx_lifecycle_middleware.js +33 -0
- package/dist/lib/run_in_background.js +58 -0
- package/dist/types.d.ts +8 -0
- package/dist/types.js +5 -0
- package/package.json +67 -42
- package/app/extend/application.d.ts +0 -24
- package/app/extend/application.js +0 -78
- package/app/extend/application.unittest.d.ts +0 -8
- package/app/extend/application.unittest.js +0 -52
- package/app/extend/context.d.ts +0 -14
- package/app/extend/context.js +0 -36
- package/app/middleware/tegg_ctx_lifecycle_middleware.d.ts +0 -2
- package/app/middleware/tegg_ctx_lifecycle_middleware.js +0 -11
- package/app.js +0 -60
- package/lib/AppLoadUnit.js +0 -85
- package/lib/AppLoadUnitInstance.js +0 -83
- package/lib/CompatibleUtil.js +0 -98
- package/lib/ConfigSourceLoadUnitHook.js +0 -24
- package/lib/EggAppLoader.js +0 -129
- package/lib/EggCompatibleObject.js +0 -40
- package/lib/EggCompatibleProtoImpl.js +0 -49
- package/lib/EggContextCompatibleHook.d.ts +0 -10
- package/lib/EggContextCompatibleHook.js +0 -45
- package/lib/EggContextHandler.js +0 -28
- package/lib/EggContextImpl.js +0 -17
- package/lib/EggModuleLoader.js +0 -55
- package/lib/EggQualifierProtoHook.js +0 -53
- package/lib/ModuleConfigLoader.js +0 -87
- package/lib/ModuleHandler.js +0 -58
- package/lib/Utils.js +0 -39
- package/lib/ctx_lifecycle_middleware.d.ts +0 -2
- package/lib/ctx_lifecycle_middleware.js +0 -54
- package/lib/run_in_background.js +0 -59
- package/typings/index.d.ts +0 -79
- /package/{lib → dist/lib}/Utils.d.ts +0 -0
- /package/{lib → dist/lib}/run_in_background.d.ts +0 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { debuglog } from 'node:util';
|
|
2
|
+
import {} from '@eggjs/tegg-metadata';
|
|
3
|
+
import { PrototypeUtil, QualifierUtil, EggQualifierAttribute, EggType, } from '@eggjs/tegg';
|
|
4
|
+
import { Application } from 'egg';
|
|
5
|
+
import { APP_CLAZZ_BLACK_LIST, CONTEXT_CLAZZ_BLACK_LIST, DEFAULT_APP_CLAZZ, DEFAULT_CONTEXT_CLAZZ, } from './EggAppLoader.js';
|
|
6
|
+
import { ObjectUtils } from '@eggjs/tegg-common-util';
|
|
7
|
+
const debug = debuglog('tegg/plugin/tegg/lib/EggQualifierProtoHook');
|
|
8
|
+
export class EggQualifierProtoHook {
|
|
9
|
+
app;
|
|
10
|
+
constructor(app) {
|
|
11
|
+
this.app = app;
|
|
12
|
+
}
|
|
13
|
+
async preCreate(ctx) {
|
|
14
|
+
const clazzList = await ctx.loader.load();
|
|
15
|
+
const appProperties = ObjectUtils.getProperties(this.app);
|
|
16
|
+
const ctxProperties = ObjectUtils.getProperties(this.app.context);
|
|
17
|
+
if (debug.enabled) {
|
|
18
|
+
debug('preCreate, get clazzList:%o, appProperties:%o, ctxProperties:%o, from unitPath:%o', clazzList.map(t => t.name), appProperties.length, ctxProperties.length, ctx.unitPath);
|
|
19
|
+
}
|
|
20
|
+
for (const clazz of clazzList) {
|
|
21
|
+
const inbjectObjects = PrototypeUtil.getInjectObjects(clazz) || [];
|
|
22
|
+
if (debug.enabled && inbjectObjects.length > 0) {
|
|
23
|
+
debug('preCreate, get injectObjects:%o, from clazz:%o, from unitPath:%o', inbjectObjects.map(t => t.refName), clazz.name, ctx.unitPath);
|
|
24
|
+
}
|
|
25
|
+
for (const injectObject of inbjectObjects) {
|
|
26
|
+
const propertyQualifiers = QualifierUtil.getProperQualifiers(clazz, injectObject.refName);
|
|
27
|
+
const hasEggQualifier = propertyQualifiers.find(t => t.attribute === EggQualifierAttribute);
|
|
28
|
+
if (hasEggQualifier) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
if (this.isCtxObject(injectObject.objName, ctxProperties)) {
|
|
32
|
+
QualifierUtil.addProperQualifier(clazz, injectObject.refName, EggQualifierAttribute, EggType.CONTEXT);
|
|
33
|
+
}
|
|
34
|
+
else if (this.isAppObject(injectObject.objName, appProperties)) {
|
|
35
|
+
QualifierUtil.addProperQualifier(clazz, injectObject.refName, EggQualifierAttribute, EggType.APP);
|
|
36
|
+
debug('preCreate, add proper qualifier:%o to clazz:%o, from unitPath:%o', injectObject.refName, clazz.name, ctx.unitPath);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
isAppObject(name, appProperties) {
|
|
42
|
+
name = String(name);
|
|
43
|
+
if (APP_CLAZZ_BLACK_LIST.includes(name)) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (DEFAULT_APP_CLAZZ.includes(name)) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
return appProperties.includes(name);
|
|
50
|
+
}
|
|
51
|
+
isCtxObject(name, ctxProperties) {
|
|
52
|
+
name = String(name);
|
|
53
|
+
if (CONTEXT_CLAZZ_BLACK_LIST.includes(name)) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
if (DEFAULT_CONTEXT_CLAZZ.includes(name)) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
return ctxProperties.includes(name);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnUXVhbGlmaWVyUHJvdG9Ib29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9FZ2dRdWFsaWZpZXJQcm90b0hvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQWdELE1BQU0sc0JBQXNCLENBQUM7QUFDcEYsT0FBTyxFQUVMLGFBQWEsRUFDYixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLE9BQU8sR0FDUixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ2xDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsd0JBQXdCLEVBQ3hCLGlCQUFpQixFQUNqQixxQkFBcUIsR0FDdEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7QUFFckUsTUFBTSxPQUFPLHFCQUFxQjtJQUNmLEdBQUcsQ0FBYztJQUVsQyxZQUFZLEdBQWdCO1FBQzFCLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQTZCO1FBQzNDLE1BQU0sU0FBUyxHQUFHLE1BQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQyxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxRCxNQUFNLGFBQWEsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEUsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsS0FBSyxDQUFDLG1GQUFtRixF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
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { AccessLevel, EggQualifierAttribute, EggType, InitTypeQualifierAttribute, LoadUnitNameQualifierAttribute, ModuleConfigs, ObjectInitType, PrototypeUtil, QualifierUtil, ConfigSourceQualifierAttribute, } from '@eggjs/tegg';
|
|
2
|
+
import { ModuleConfigUtil } from '@eggjs/tegg/helper';
|
|
3
|
+
import { Application } from 'egg';
|
|
4
|
+
import { extend } from 'extend2';
|
|
5
|
+
import { COMPATIBLE_PROTO_IMPLE_TYPE } from "./EggCompatibleProtoImpl.js";
|
|
6
|
+
export class ModuleConfigLoader {
|
|
7
|
+
app;
|
|
8
|
+
constructor(app) {
|
|
9
|
+
this.app = app;
|
|
10
|
+
}
|
|
11
|
+
loadModuleConfigs(moduleConfigMap) {
|
|
12
|
+
const moduleConfigs = new ModuleConfigs(moduleConfigMap);
|
|
13
|
+
const func = function () {
|
|
14
|
+
return moduleConfigs;
|
|
15
|
+
};
|
|
16
|
+
const name = 'moduleConfigs';
|
|
17
|
+
Object.defineProperty(func, 'name', {
|
|
18
|
+
value: name,
|
|
19
|
+
writable: false,
|
|
20
|
+
enumerable: false,
|
|
21
|
+
configurable: true,
|
|
22
|
+
});
|
|
23
|
+
PrototypeUtil.setIsEggPrototype(func);
|
|
24
|
+
PrototypeUtil.setFilePath(func, 'mock_file_path');
|
|
25
|
+
PrototypeUtil.setProperty(func, {
|
|
26
|
+
name,
|
|
27
|
+
initType: ObjectInitType.SINGLETON,
|
|
28
|
+
accessLevel: AccessLevel.PUBLIC,
|
|
29
|
+
protoImplType: COMPATIBLE_PROTO_IMPLE_TYPE,
|
|
30
|
+
});
|
|
31
|
+
QualifierUtil.addProtoQualifier(func, LoadUnitNameQualifierAttribute, 'app');
|
|
32
|
+
QualifierUtil.addProtoQualifier(func, InitTypeQualifierAttribute, ObjectInitType.SINGLETON);
|
|
33
|
+
QualifierUtil.addProtoQualifier(func, EggQualifierAttribute, EggType.APP);
|
|
34
|
+
return func;
|
|
35
|
+
}
|
|
36
|
+
loadModuleConfigList() {
|
|
37
|
+
const result = [];
|
|
38
|
+
const moduleConfigMap = {};
|
|
39
|
+
for (const reference of this.app.moduleReferences) {
|
|
40
|
+
const moduleName = ModuleConfigUtil.readModuleNameSync(reference.path);
|
|
41
|
+
const defaultConfig = ModuleConfigUtil.loadModuleConfigSync(reference.path, undefined, this.app.config.env);
|
|
42
|
+
// @eggjs/tegg-config moduleConfigs[module].config overwrite
|
|
43
|
+
const config = extend(true, {}, defaultConfig, this.app.moduleConfigs[moduleName]?.config);
|
|
44
|
+
moduleConfigMap[moduleName] = {
|
|
45
|
+
name: moduleName,
|
|
46
|
+
reference: {
|
|
47
|
+
name: moduleName,
|
|
48
|
+
path: reference.path,
|
|
49
|
+
},
|
|
50
|
+
config,
|
|
51
|
+
};
|
|
52
|
+
const func = function () {
|
|
53
|
+
return config;
|
|
54
|
+
};
|
|
55
|
+
const name = 'moduleConfig';
|
|
56
|
+
Object.defineProperty(func, 'name', {
|
|
57
|
+
value: name,
|
|
58
|
+
writable: false,
|
|
59
|
+
enumerable: false,
|
|
60
|
+
configurable: true,
|
|
61
|
+
});
|
|
62
|
+
PrototypeUtil.setIsEggPrototype(func);
|
|
63
|
+
PrototypeUtil.setFilePath(func, 'mock_file_path');
|
|
64
|
+
PrototypeUtil.setProperty(func, {
|
|
65
|
+
name,
|
|
66
|
+
initType: ObjectInitType.SINGLETON,
|
|
67
|
+
accessLevel: AccessLevel.PUBLIC,
|
|
68
|
+
protoImplType: COMPATIBLE_PROTO_IMPLE_TYPE,
|
|
69
|
+
});
|
|
70
|
+
QualifierUtil.addProtoQualifier(func, LoadUnitNameQualifierAttribute, 'app');
|
|
71
|
+
QualifierUtil.addProtoQualifier(func, InitTypeQualifierAttribute, ObjectInitType.SINGLETON);
|
|
72
|
+
QualifierUtil.addProtoQualifier(func, EggQualifierAttribute, EggType.APP);
|
|
73
|
+
QualifierUtil.addProtoQualifier(func, ConfigSourceQualifierAttribute, moduleName);
|
|
74
|
+
result.push(func);
|
|
75
|
+
}
|
|
76
|
+
const moduleConfigs = this.loadModuleConfigs(moduleConfigMap);
|
|
77
|
+
result.push(moduleConfigs);
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlQ29uZmlnTG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9Nb2R1bGVDb25maWdMb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFFWCxxQkFBcUIsRUFDckIsT0FBTyxFQUNQLDBCQUEwQixFQUMxQiw4QkFBOEIsRUFBRSxhQUFhLEVBQzdDLGNBQWMsRUFDZCxhQUFhLEVBQ2IsYUFBYSxFQUNZLDhCQUE4QixHQUN4RCxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFakMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFMUUsTUFBTSxPQUFPLGtCQUFrQjtJQUNwQixHQUFHLENBQWM7SUFDMUIsWUFBWSxHQUFnQjtRQUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNqQixDQUFDO0lBRU8saUJBQWlCLENBQUMsZUFBbUQ7UUFDM0UsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDekQsTUFBTSxJQUFJLEdBQXNCO1lBQzlCLE9BQU8sYUFBYSxDQUFDO1FBQ3ZCLENBQVEsQ0FBQztRQUNULE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQztRQUM3QixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDbEMsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsS0FBSztZQUNmLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUMsQ0FBQztRQUNILGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztR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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import Base from 'sdk-base';
|
|
1
|
+
import { Base } from 'sdk-base';
|
|
2
2
|
import { Application } from 'egg';
|
|
3
|
-
import { LoadUnit } from '@eggjs/tegg-metadata';
|
|
4
|
-
import { LoadUnitInstance } from '@eggjs/tegg-runtime';
|
|
3
|
+
import { type LoadUnit } from '@eggjs/tegg-metadata';
|
|
4
|
+
import { type LoadUnitInstance } from '@eggjs/tegg-runtime';
|
|
5
5
|
export declare class ModuleHandler extends Base {
|
|
6
6
|
loadUnits: LoadUnit[];
|
|
7
7
|
loadUnitInstances: LoadUnitInstance[];
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Base } from 'sdk-base';
|
|
2
|
+
import { Application, Context } from 'egg';
|
|
3
|
+
import { EggLoadUnitType, LoadUnitFactory, } from '@eggjs/tegg-metadata';
|
|
4
|
+
import { LoadUnitInstanceFactory } from '@eggjs/tegg-runtime';
|
|
5
|
+
import { EggModuleLoader } from "./EggModuleLoader.js";
|
|
6
|
+
import { CompatibleUtil } from "./CompatibleUtil.js";
|
|
7
|
+
import { COMPATIBLE_PROTO_IMPLE_TYPE, EggCompatibleProtoImpl } from "./EggCompatibleProtoImpl.js";
|
|
8
|
+
export class ModuleHandler extends Base {
|
|
9
|
+
loadUnits = [];
|
|
10
|
+
loadUnitInstances = [];
|
|
11
|
+
loadUnitLoader;
|
|
12
|
+
app;
|
|
13
|
+
constructor(app) {
|
|
14
|
+
super();
|
|
15
|
+
this.app = app;
|
|
16
|
+
this.loadUnitLoader = new EggModuleLoader(this.app);
|
|
17
|
+
}
|
|
18
|
+
async init() {
|
|
19
|
+
try {
|
|
20
|
+
this.app.eggPrototypeCreatorFactory.registerPrototypeCreator(COMPATIBLE_PROTO_IMPLE_TYPE, EggCompatibleProtoImpl.create);
|
|
21
|
+
await this.loadUnitLoader.load();
|
|
22
|
+
const instances = [];
|
|
23
|
+
this.app.module = {};
|
|
24
|
+
for (const loadUnit of this.loadUnits) {
|
|
25
|
+
const instance = await LoadUnitInstanceFactory.createLoadUnitInstance(loadUnit);
|
|
26
|
+
if (instance.loadUnit.type !== EggLoadUnitType.APP) {
|
|
27
|
+
CompatibleUtil.appCompatible(this.app, instance);
|
|
28
|
+
}
|
|
29
|
+
instances.push(instance);
|
|
30
|
+
}
|
|
31
|
+
CompatibleUtil.contextModuleCompatible(this.app.context, instances);
|
|
32
|
+
this.loadUnitInstances = instances;
|
|
33
|
+
this.ready(true);
|
|
34
|
+
}
|
|
35
|
+
catch (e) {
|
|
36
|
+
this.ready(e);
|
|
37
|
+
throw e;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async destroy() {
|
|
41
|
+
if (this.loadUnitInstances) {
|
|
42
|
+
for (const instance of this.loadUnitInstances) {
|
|
43
|
+
await LoadUnitInstanceFactory.destroyLoadUnitInstance(instance);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (this.loadUnits) {
|
|
47
|
+
for (const loadUnit of this.loadUnits) {
|
|
48
|
+
await LoadUnitFactory.destroyLoadUnit(loadUnit);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlSGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvTW9kdWxlSGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBQzNDLE9BQU8sRUFDTCxlQUFlLEVBRWYsZUFBZSxHQUNoQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBeUIsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRWxHLE1BQU0sT0FBTyxhQUFjLFNBQVEsSUFBSTtJQUNyQyxTQUFTLEdBQWUsRUFBRSxDQUFDO0lBQzNCLGlCQUFpQixHQUF1QixFQUFFLENBQUM7SUFFMUIsY0FBYyxDQUFrQjtJQUNoQyxHQUFHLENBQWM7SUFFbEMsWUFBWSxHQUFnQjtRQUMxQixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFJO1FBQ1IsSUFBSSxDQUFDO1lBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FDMUQsMkJBQTJCLEVBQUUsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFOUQsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pDLE1BQU0sU0FBUyxHQUF1QixFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBUyxDQUFDO1lBRTVCLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN0QyxNQUFNLFFBQVEsR0FBRyxNQUFNLHVCQUF1QixDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNoRixJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDbkQsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNuRCxDQUFDO2dCQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0IsQ0FBQztZQUNELGNBQWMsQ0FBQyx1QkFBdUIsQ0FBRSxJQUFJLENBQUMsR0FBVyxDQUFDLE9BQWtCLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztZQUNuQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25CLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFVLENBQUMsQ0FBQztZQUN2QixNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQzlDLE1BQU0sdUJBQXVCLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEUsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxlQUFlLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIn0=
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
function prepareObjectStackTrace(_, stack) {
|
|
2
|
+
return stack;
|
|
3
|
+
}
|
|
4
|
+
export function getCalleeFromStack(withLine, stackIndex) {
|
|
5
|
+
stackIndex = stackIndex === undefined ? 2 : stackIndex;
|
|
6
|
+
const limit = Error.stackTraceLimit;
|
|
7
|
+
const prep = Error.prepareStackTrace;
|
|
8
|
+
Error.prepareStackTrace = prepareObjectStackTrace;
|
|
9
|
+
Error.stackTraceLimit = 5;
|
|
10
|
+
// capture the stack
|
|
11
|
+
const obj = {};
|
|
12
|
+
Error.captureStackTrace(obj);
|
|
13
|
+
let callSite = obj.stack[stackIndex];
|
|
14
|
+
let fileName;
|
|
15
|
+
/* istanbul ignore else */
|
|
16
|
+
if (callSite) {
|
|
17
|
+
// egg-mock will create a proxy
|
|
18
|
+
// https://github.com/eggjs/egg-mock/blob/master/lib/app.js#L174
|
|
19
|
+
fileName = callSite.getFileName();
|
|
20
|
+
/* istanbul ignore if */
|
|
21
|
+
if (fileName && fileName.endsWith('egg-mock/lib/app.js')) {
|
|
22
|
+
// TODO: add test
|
|
23
|
+
callSite = obj.stack[stackIndex + 1];
|
|
24
|
+
fileName = callSite.getFileName();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
Error.prepareStackTrace = prep;
|
|
28
|
+
Error.stackTraceLimit = limit;
|
|
29
|
+
/* istanbul ignore if */
|
|
30
|
+
if (!callSite || !fileName)
|
|
31
|
+
return '<anonymous>';
|
|
32
|
+
if (!withLine)
|
|
33
|
+
return fileName;
|
|
34
|
+
return `${fileName}:${callSite.getLineNumber()}:${callSite.getColumnNumber()}`;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL1V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsdUJBQXVCLENBQUMsQ0FBUSxFQUFFLEtBQXdCO0lBQ2pFLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxRQUFpQixFQUFFLFVBQW1CO0lBQ3ZFLFVBQVUsR0FBRyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUN2RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3BDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztJQUVyQyxLQUFLLENBQUMsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUM7SUFDbEQsS0FBSyxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFFMUIsb0JBQW9CO0lBQ3BCLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztJQUNwQixLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsSUFBSSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxJQUFJLFFBQVEsQ0FBQztJQUNiLDBCQUEwQjtJQUMxQixJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2IsK0JBQStCO1FBQy9CLGdFQUFnRTtRQUNoRSxRQUFRLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLHdCQUF3QjtRQUN4QixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztZQUN6RCxpQkFBaUI7WUFDakIsUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLFFBQVEsR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQy9CLEtBQUssQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBRTlCLHdCQUF3QjtJQUN4QixJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sYUFBYSxDQUFDO0lBQ2pELElBQUksQ0FBQyxRQUFRO1FBQUUsT0FBTyxRQUFRLENBQUM7SUFDL0IsT0FBTyxHQUFHLFFBQVEsSUFBSSxRQUFRLENBQUMsYUFBYSxFQUFFLElBQUksUUFBUSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7QUFDakYsQ0FBQyJ9
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ROOT_PROTO, TEGG_CONTEXT } from '@eggjs/egg-module-common';
|
|
2
|
+
import {} from '@eggjs/tegg-runtime';
|
|
3
|
+
import { EggContextImpl } from "./EggContextImpl.js";
|
|
4
|
+
export async function ctxLifecycleMiddleware(ctx, next) {
|
|
5
|
+
// should not recreate teggContext
|
|
6
|
+
if (ctx[TEGG_CONTEXT]) {
|
|
7
|
+
await next();
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const lifecycleCtx = {};
|
|
11
|
+
const teggCtx = new EggContextImpl(ctx);
|
|
12
|
+
// rootProto is set by tegg-controller-plugin global middleware(teggRootProto)
|
|
13
|
+
// is used in EggControllerHook
|
|
14
|
+
const rootProto = ctx[ROOT_PROTO];
|
|
15
|
+
if (rootProto) {
|
|
16
|
+
teggCtx.set(ROOT_PROTO, rootProto);
|
|
17
|
+
}
|
|
18
|
+
if (teggCtx.init) {
|
|
19
|
+
await teggCtx.init(lifecycleCtx);
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
await next();
|
|
23
|
+
}
|
|
24
|
+
finally {
|
|
25
|
+
if (teggCtx.destroy) {
|
|
26
|
+
teggCtx.destroy(lifecycleCtx).catch(e => {
|
|
27
|
+
e.message = `[tegg/ctxLifecycleMiddleware] destroy tegg ctx failed: ${e.message}`;
|
|
28
|
+
ctx.logger.error(e);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3R4X2xpZmVjeWNsZV9taWRkbGV3YXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jdHhfbGlmZWN5Y2xlX21pZGRsZXdhcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRSxPQUFPLEVBQW1DLE1BQU0scUJBQXFCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJELE1BQU0sQ0FBQyxLQUFLLFVBQVUsc0JBQXNCLENBQUMsR0FBWSxFQUFFLElBQVU7SUFDbkUsa0NBQWtDO0lBQ2xDLElBQUksR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUNiLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQStCLEVBQUUsQ0FBQztJQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4Qyw4RUFBOEU7SUFDOUUsK0JBQStCO0lBQy9CLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxDQUFDO1FBQ0gsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUNmLENBQUM7WUFBUyxDQUFDO1FBQ1QsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3RDLENBQUMsQ0FBQyxPQUFPLEdBQUcsMERBQTBELENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbEYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Application } from 'egg';
|
|
2
|
+
import { BackgroundTaskHelper, PrototypeUtil } from '@eggjs/tegg';
|
|
3
|
+
import {} from '@eggjs/tegg-metadata';
|
|
4
|
+
import { TEGG_CONTEXT } from '@eggjs/egg-module-common';
|
|
5
|
+
import TEggPluginContext from "../app/extend/context.js";
|
|
6
|
+
import { getCalleeFromStack } from "./Utils.js";
|
|
7
|
+
export const LONG_STACK_DELIMITER = '\n --------------------\n';
|
|
8
|
+
function addLongStackTrace(err, causeError) {
|
|
9
|
+
const callSiteStack = causeError.stack;
|
|
10
|
+
if (!callSiteStack || typeof callSiteStack !== 'string') {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const index = callSiteStack.indexOf('\n');
|
|
14
|
+
if (index !== -1) {
|
|
15
|
+
err.stack += LONG_STACK_DELIMITER + callSiteStack.substring(index + 1);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export function hijackRunInBackground(app) {
|
|
19
|
+
const eggRunInBackground = app.context.runInBackground;
|
|
20
|
+
app.context.runInBackground = function runInBackground(scope) {
|
|
21
|
+
if (!this[TEGG_CONTEXT]) {
|
|
22
|
+
return Reflect.apply(eggRunInBackground, this, [scope]);
|
|
23
|
+
}
|
|
24
|
+
const caseError = new Error('cause');
|
|
25
|
+
let resolveBackgroundTask;
|
|
26
|
+
const backgroundTaskPromise = new Promise(resolve => {
|
|
27
|
+
resolveBackgroundTask = resolve;
|
|
28
|
+
});
|
|
29
|
+
const newScope = async () => {
|
|
30
|
+
try {
|
|
31
|
+
await scope(this);
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
addLongStackTrace(e, caseError);
|
|
35
|
+
throw e;
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
resolveBackgroundTask();
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
const taskName = scope._name || scope.name || getCalleeFromStack(true, 2);
|
|
42
|
+
scope._name = taskName;
|
|
43
|
+
Object.defineProperty(newScope, 'name', {
|
|
44
|
+
value: taskName,
|
|
45
|
+
enumerable: false,
|
|
46
|
+
configurable: true,
|
|
47
|
+
writable: false,
|
|
48
|
+
});
|
|
49
|
+
Reflect.apply(eggRunInBackground, this, [newScope]);
|
|
50
|
+
const proto = PrototypeUtil.getClazzProto(BackgroundTaskHelper);
|
|
51
|
+
const eggObject = app.eggContainerFactory.getEggObject(proto);
|
|
52
|
+
const backgroundTaskHelper = eggObject.obj;
|
|
53
|
+
backgroundTaskHelper.run(async () => {
|
|
54
|
+
await backgroundTaskPromise;
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuX2luX2JhY2tncm91bmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3J1bl9pbl9iYWNrZ3JvdW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWdCLE1BQU0sS0FBSyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEUsT0FBTyxFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV4RCxPQUFPLGlCQUFpQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVoRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRywyQkFBMkIsQ0FBQztBQUVoRSxTQUFTLGlCQUFpQixDQUFDLEdBQVUsRUFBRSxVQUFpQjtJQUN0RCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLElBQUksQ0FBQyxhQUFhLElBQUksT0FBTyxhQUFhLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDeEQsT0FBTztJQUNULENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakIsR0FBRyxDQUFDLEtBQUssSUFBSSxvQkFBb0IsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFnQjtJQUNwRCxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ3ZELEdBQUcsQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLFNBQVMsZUFBZSxDQUEwQixLQUFxQztRQUNuSCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLElBQUksRUFBRSxDQUFFLEtBQUssQ0FBRSxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLElBQUkscUJBQWlDLENBQUM7UUFDdEMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sQ0FBTyxPQUFPLENBQUMsRUFBRTtZQUN4RCxxQkFBcUIsR0FBRyxPQUFPLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFFBQVEsR0FBRyxLQUFLLElBQUksRUFBRTtZQUMxQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1gsaUJBQWlCLENBQUMsQ0FBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUN6QyxNQUFNLENBQUMsQ0FBQztZQUNWLENBQUM7b0JBQVMsQ0FBQztnQkFDVCxxQkFBcUIsRUFBRSxDQUFDO1lBQzFCLENBQUM7UUFDSCxDQUFDLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBSSxLQUFhLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLEtBQWEsQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ2hDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRTtZQUN0QyxLQUFLLEVBQUUsUUFBUTtZQUNmLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQUUsUUFBUSxDQUFFLENBQUMsQ0FBQztRQUV0RCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDaEUsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxLQUFxQixDQUFDLENBQUM7UUFDOUUsTUFBTSxvQkFBb0IsR0FBRyxTQUFTLENBQUMsR0FBMkIsQ0FBQztRQUNuRSxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDbEMsTUFBTSxxQkFBcUIsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNKLENBQUMifQ==
|
package/dist/types.d.ts
ADDED
package/dist/types.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import '@eggjs/tegg-config/types';
|
|
2
|
+
import "./app/extend/application.js";
|
|
3
|
+
import "./app/extend/application.unittest.js";
|
|
4
|
+
import "./app/extend/context.js";
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTywwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyx5QkFBeUIsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"teggConfig"
|
|
7
7
|
]
|
|
8
8
|
},
|
|
9
|
-
"version": "
|
|
9
|
+
"version": "4.0.0-beta.10",
|
|
10
10
|
"description": "module plugin for egg",
|
|
11
11
|
"keywords": [
|
|
12
12
|
"egg",
|
|
@@ -16,23 +16,37 @@
|
|
|
16
16
|
"tegg"
|
|
17
17
|
],
|
|
18
18
|
"files": [
|
|
19
|
-
"
|
|
20
|
-
"app.d.ts",
|
|
21
|
-
"lib/**/*.js",
|
|
22
|
-
"lib/**/*.d.ts",
|
|
23
|
-
"app/**/*.js",
|
|
24
|
-
"app/**/*.d.ts",
|
|
25
|
-
"typings/*.d.ts"
|
|
19
|
+
"dist"
|
|
26
20
|
],
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
21
|
+
"type": "module",
|
|
22
|
+
"exports": {
|
|
23
|
+
".": "./dist/index.js",
|
|
24
|
+
"./app": "./dist/app.js",
|
|
25
|
+
"./app/extend/application": "./dist/app/extend/application.js",
|
|
26
|
+
"./app/extend/application.unittest": "./dist/app/extend/application.unittest.js",
|
|
27
|
+
"./app/extend/context": "./dist/app/extend/context.js",
|
|
28
|
+
"./app/middleware/tegg_ctx_lifecycle_middleware": "./dist/app/middleware/tegg_ctx_lifecycle_middleware.js",
|
|
29
|
+
"./lib/AppLoadUnit": "./dist/lib/AppLoadUnit.js",
|
|
30
|
+
"./lib/AppLoadUnitInstance": "./dist/lib/AppLoadUnitInstance.js",
|
|
31
|
+
"./lib/CompatibleUtil": "./dist/lib/CompatibleUtil.js",
|
|
32
|
+
"./lib/ConfigSourceLoadUnitHook": "./dist/lib/ConfigSourceLoadUnitHook.js",
|
|
33
|
+
"./lib/ctx_lifecycle_middleware": "./dist/lib/ctx_lifecycle_middleware.js",
|
|
34
|
+
"./lib/EggAppLoader": "./dist/lib/EggAppLoader.js",
|
|
35
|
+
"./lib/EggCompatibleObject": "./dist/lib/EggCompatibleObject.js",
|
|
36
|
+
"./lib/EggCompatibleProtoImpl": "./dist/lib/EggCompatibleProtoImpl.js",
|
|
37
|
+
"./lib/EggContextCompatibleHook": "./dist/lib/EggContextCompatibleHook.js",
|
|
38
|
+
"./lib/EggContextHandler": "./dist/lib/EggContextHandler.js",
|
|
39
|
+
"./lib/EggContextImpl": "./dist/lib/EggContextImpl.js",
|
|
40
|
+
"./lib/EggModuleLoader": "./dist/lib/EggModuleLoader.js",
|
|
41
|
+
"./lib/EggQualifierProtoHook": "./dist/lib/EggQualifierProtoHook.js",
|
|
42
|
+
"./lib/ModuleConfigLoader": "./dist/lib/ModuleConfigLoader.js",
|
|
43
|
+
"./lib/ModuleHandler": "./dist/lib/ModuleHandler.js",
|
|
44
|
+
"./lib/run_in_background": "./dist/lib/run_in_background.js",
|
|
45
|
+
"./lib/Utils": "./dist/lib/Utils.js",
|
|
46
|
+
"./types": "./dist/types.js",
|
|
47
|
+
"./package.json": "./package.json"
|
|
34
48
|
},
|
|
35
|
-
"homepage": "https://github.com/eggjs/tegg",
|
|
49
|
+
"homepage": "https://github.com/eggjs/tegg/tree/next/plugin/tegg",
|
|
36
50
|
"bugs": {
|
|
37
51
|
"url": "https://github.com/eggjs/tegg/issues"
|
|
38
52
|
},
|
|
@@ -42,38 +56,49 @@
|
|
|
42
56
|
"directory": "plugin/tegg"
|
|
43
57
|
},
|
|
44
58
|
"engines": {
|
|
45
|
-
"node": ">=
|
|
59
|
+
"node": ">=22.18.0"
|
|
46
60
|
},
|
|
47
61
|
"dependencies": {
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
"@eggjs/
|
|
51
|
-
"@eggjs/tegg
|
|
52
|
-
"@eggjs/tegg-
|
|
53
|
-
"@eggjs/tegg-
|
|
54
|
-
"@eggjs/tegg-
|
|
55
|
-
"@eggjs/tegg-
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
|
|
59
|
-
|
|
62
|
+
"extend2": "^4.0.0",
|
|
63
|
+
"sdk-base": "^5.0.1",
|
|
64
|
+
"@eggjs/egg-module-common": "4.0.0-beta.10",
|
|
65
|
+
"@eggjs/tegg": "4.0.0-beta.10",
|
|
66
|
+
"@eggjs/tegg-common-util": "4.0.0-beta.10",
|
|
67
|
+
"@eggjs/tegg-background-task": "4.0.0-beta.10",
|
|
68
|
+
"@eggjs/tegg-dynamic-inject-runtime": "4.0.0-beta.10",
|
|
69
|
+
"@eggjs/tegg-loader": "4.0.0-beta.10",
|
|
70
|
+
"@eggjs/tegg-metadata": "4.0.0-beta.10",
|
|
71
|
+
"@eggjs/tegg-runtime": "4.0.0-beta.10"
|
|
72
|
+
},
|
|
73
|
+
"peerDependencies": {
|
|
74
|
+
"egg": "beta",
|
|
75
|
+
"@eggjs/tegg-config": "4.0.0-beta.10"
|
|
60
76
|
},
|
|
61
77
|
"devDependencies": {
|
|
62
|
-
"@eggjs/
|
|
63
|
-
"@
|
|
64
|
-
"@
|
|
65
|
-
"
|
|
66
|
-
"
|
|
78
|
+
"@eggjs/bin": "beta",
|
|
79
|
+
"@eggjs/mock": "beta",
|
|
80
|
+
"@eggjs/tracer": "beta",
|
|
81
|
+
"@types/mocha": "^10.0.10",
|
|
82
|
+
"@types/node": "^22.10.5",
|
|
83
|
+
"egg": "beta",
|
|
67
84
|
"egg-logger": "^3.0.1",
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"typescript": "^5.0.4"
|
|
85
|
+
"mocha": "^11.0.1",
|
|
86
|
+
"typescript": "^5.9.3",
|
|
87
|
+
"tsdown": "^0.15.6",
|
|
88
|
+
"unplugin-unused": "^0.5.3",
|
|
89
|
+
"@eggjs/tegg-config": "4.0.0-beta.10"
|
|
74
90
|
},
|
|
75
91
|
"publishConfig": {
|
|
76
92
|
"access": "public"
|
|
77
93
|
},
|
|
78
|
-
"
|
|
79
|
-
|
|
94
|
+
"main": "./dist/index.js",
|
|
95
|
+
"module": "./dist/index.js",
|
|
96
|
+
"types": "./dist/index.d.ts",
|
|
97
|
+
"scripts": {
|
|
98
|
+
"typecheck": "tsc --noEmit",
|
|
99
|
+
"test:mocha": "egg-bin test",
|
|
100
|
+
"cov:mocha": "egg-bin cov",
|
|
101
|
+
"clean": "rimraf dist",
|
|
102
|
+
"build": "tsdown && rimraf dist && tsc -b --clean && tsc -p tsconfig.build.json"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { EggPrototypeCreatorFactory, EggPrototypeFactory, LoadUnitFactory } from '@eggjs/tegg-metadata';
|
|
2
|
-
import { AbstractEggContext, EggContainerFactory, EggObjectFactory, LoadUnitInstanceFactory } from '@eggjs/tegg-runtime';
|
|
3
|
-
import { LoaderFactory } from '@eggjs/tegg-loader';
|
|
4
|
-
import { EggProtoImplClass, IdenticalUtil, RuntimeConfig, QualifierInfo } from '@eggjs/tegg';
|
|
5
|
-
declare const _default: {
|
|
6
|
-
readonly eggPrototypeCreatorFactory: typeof EggPrototypeCreatorFactory;
|
|
7
|
-
readonly eggPrototypeFactory: EggPrototypeFactory;
|
|
8
|
-
readonly loadUnitLifecycleUtil: import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-metadata").LoadUnitLifecycleContext, import("@eggjs/tegg-metadata").LoadUnit>;
|
|
9
|
-
readonly loadUnitFactory: typeof LoadUnitFactory;
|
|
10
|
-
readonly eggObjectFactory: typeof EggObjectFactory;
|
|
11
|
-
readonly loadUnitInstanceFactory: typeof LoadUnitInstanceFactory;
|
|
12
|
-
readonly loadUnitInstanceLifecycleUtil: import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-runtime").LoadUnitInstanceLifecycleContext, import("@eggjs/tegg-runtime").LoadUnitInstance>;
|
|
13
|
-
readonly eggContainerFactory: typeof EggContainerFactory;
|
|
14
|
-
readonly loaderFactory: typeof LoaderFactory;
|
|
15
|
-
readonly eggPrototypeLifecycleUtil: import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-metadata").EggPrototypeLifecycleContext, import("@eggjs/tegg-metadata").EggPrototype>;
|
|
16
|
-
readonly eggContextLifecycleUtil: import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-runtime").EggContextLifecycleContext, import("@eggjs/tegg-runtime").EggContext>;
|
|
17
|
-
readonly eggObjectLifecycleUtil: import("@eggjs/tegg").LifecycleUtil<import("@eggjs/tegg-runtime").EggObjectLifeCycleContext, import("@eggjs/tegg-runtime").EggObject>;
|
|
18
|
-
readonly abstractEggContext: typeof AbstractEggContext;
|
|
19
|
-
readonly identicalUtil: typeof IdenticalUtil;
|
|
20
|
-
readonly runtimeConfig: RuntimeConfig;
|
|
21
|
-
getEggObject(clazz: EggProtoImplClass, name?: string, qualifiers?: QualifierInfo | QualifierInfo[]): Promise<object>;
|
|
22
|
-
getEggObjectFromName(name: string, qualifiers?: QualifierInfo | QualifierInfo[]): Promise<object>;
|
|
23
|
-
};
|
|
24
|
-
export default _default;
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tegg_metadata_1 = require("@eggjs/tegg-metadata");
|
|
4
|
-
const tegg_runtime_1 = require("@eggjs/tegg-runtime");
|
|
5
|
-
const tegg_loader_1 = require("@eggjs/tegg-loader");
|
|
6
|
-
const tegg_1 = require("@eggjs/tegg");
|
|
7
|
-
exports.default = {
|
|
8
|
-
// @eggjs/tegg-metadata should not depend by other egg plugins.
|
|
9
|
-
// May make multi singleton instances.
|
|
10
|
-
// So tegg-compatible should delegate the metadata factories
|
|
11
|
-
// TODO delegate all the singleton
|
|
12
|
-
get eggPrototypeCreatorFactory() {
|
|
13
|
-
return tegg_metadata_1.EggPrototypeCreatorFactory;
|
|
14
|
-
},
|
|
15
|
-
get eggPrototypeFactory() {
|
|
16
|
-
return tegg_metadata_1.EggPrototypeFactory.instance;
|
|
17
|
-
},
|
|
18
|
-
get loadUnitLifecycleUtil() {
|
|
19
|
-
return tegg_metadata_1.LoadUnitLifecycleUtil;
|
|
20
|
-
},
|
|
21
|
-
get loadUnitFactory() {
|
|
22
|
-
return tegg_metadata_1.LoadUnitFactory;
|
|
23
|
-
},
|
|
24
|
-
get eggObjectFactory() {
|
|
25
|
-
return tegg_runtime_1.EggObjectFactory;
|
|
26
|
-
},
|
|
27
|
-
get loadUnitInstanceFactory() {
|
|
28
|
-
return tegg_runtime_1.LoadUnitInstanceFactory;
|
|
29
|
-
},
|
|
30
|
-
get loadUnitInstanceLifecycleUtil() {
|
|
31
|
-
return tegg_runtime_1.LoadUnitInstanceLifecycleUtil;
|
|
32
|
-
},
|
|
33
|
-
get eggContainerFactory() {
|
|
34
|
-
return tegg_runtime_1.EggContainerFactory;
|
|
35
|
-
},
|
|
36
|
-
get loaderFactory() {
|
|
37
|
-
return tegg_loader_1.LoaderFactory;
|
|
38
|
-
},
|
|
39
|
-
get eggPrototypeLifecycleUtil() {
|
|
40
|
-
return tegg_metadata_1.EggPrototypeLifecycleUtil;
|
|
41
|
-
},
|
|
42
|
-
get eggContextLifecycleUtil() {
|
|
43
|
-
return tegg_runtime_1.EggContextLifecycleUtil;
|
|
44
|
-
},
|
|
45
|
-
get eggObjectLifecycleUtil() {
|
|
46
|
-
return tegg_runtime_1.EggObjectLifecycleUtil;
|
|
47
|
-
},
|
|
48
|
-
get abstractEggContext() {
|
|
49
|
-
return tegg_runtime_1.AbstractEggContext;
|
|
50
|
-
},
|
|
51
|
-
get identicalUtil() {
|
|
52
|
-
return tegg_1.IdenticalUtil;
|
|
53
|
-
},
|
|
54
|
-
get runtimeConfig() {
|
|
55
|
-
const app = this;
|
|
56
|
-
const config = app.config;
|
|
57
|
-
return {
|
|
58
|
-
baseDir: config.baseDir,
|
|
59
|
-
env: config.env,
|
|
60
|
-
name: config.name,
|
|
61
|
-
};
|
|
62
|
-
},
|
|
63
|
-
async getEggObject(clazz, name, qualifiers) {
|
|
64
|
-
if (qualifiers) {
|
|
65
|
-
qualifiers = Array.isArray(qualifiers) ? qualifiers : [qualifiers];
|
|
66
|
-
}
|
|
67
|
-
const eggObject = await tegg_runtime_1.EggContainerFactory.getOrCreateEggObjectFromClazz(clazz, name, qualifiers);
|
|
68
|
-
return eggObject.obj;
|
|
69
|
-
},
|
|
70
|
-
async getEggObjectFromName(name, qualifiers) {
|
|
71
|
-
if (qualifiers) {
|
|
72
|
-
qualifiers = Array.isArray(qualifiers) ? qualifiers : [qualifiers];
|
|
73
|
-
}
|
|
74
|
-
const eggObject = await tegg_runtime_1.EggContainerFactory.getOrCreateEggObjectFromName(name, qualifiers);
|
|
75
|
-
return eggObject.obj;
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhcHBsaWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHdEQU04QjtBQUM5QixzREFRNkI7QUFDN0Isb0RBQW1EO0FBQ25ELHNDQUE2RjtBQUc3RixrQkFBZTtJQUNiLCtEQUErRDtJQUMvRCxzQ0FBc0M7SUFDdEMsNERBQTREO0lBQzVELGtDQUFrQztJQUNsQyxJQUFJLDBCQUEwQjtRQUM1QixPQUFPLDBDQUEwQixDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFJLG1CQUFtQjtRQUNyQixPQUFPLG1DQUFtQixDQUFDLFFBQVEsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDdkIsT0FBTyxxQ0FBcUIsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sK0JBQWUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTywrQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxzQ0FBdUIsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSw2QkFBNkI7UUFDL0IsT0FBTyw0Q0FBNkIsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxrQ0FBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTywyQkFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLHlCQUF5QjtRQUMzQixPQUFPLHlDQUF5QixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLHVCQUF1QjtRQUN6QixPQUFPLHNDQUF1QixDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLHFDQUFzQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLGlDQUFrQixDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLG9CQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE1BQU0sR0FBRyxHQUFHLElBQThCLENBQUM7UUFDM0MsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUMxQixPQUFPO1lBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3ZCLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRztZQUNmLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtTQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBd0IsRUFBRSxJQUFhLEVBQUUsVUFBNEM7UUFDdEcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUUsVUFBVSxDQUFFLENBQUM7UUFDdkUsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLE1BQU0sa0NBQW1CLENBQUMsNkJBQTZCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNuRyxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUM7SUFDdkIsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxJQUFZLEVBQUUsVUFBNEM7UUFDbkYsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUUsVUFBVSxDQUFFLENBQUM7UUFDdkUsQ0FBQztRQUNELE1BQU0sU0FBUyxHQUFHLE1BQU0sa0NBQW1CLENBQUMsNEJBQTRCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNGLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQztJQUN2QixDQUFDO0NBQ0YsQ0FBQyJ9
|