@eggjs/tegg-dynamic-inject-runtime 3.52.0 → 4.0.0-beta.2

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/package.json CHANGED
@@ -1,16 +1,21 @@
1
1
  {
2
2
  "name": "@eggjs/tegg-dynamic-inject-runtime",
3
- "version": "3.52.0",
4
- "description": "tegg dyniamic inject",
5
- "main": "dist/index.js",
3
+ "version": "4.0.0-beta.2",
4
+ "description": "tegg dynamic inject",
6
5
  "eggModule": {
7
6
  "name": "teggDyniamicInjectRuntime"
8
7
  },
8
+ "type": "module",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./src/index.d.ts",
12
+ "default": "./src/index.js"
13
+ }
14
+ },
9
15
  "files": [
10
- "dist/**/*.js",
11
- "dist/**/*.d.ts"
16
+ "src/**/*.js",
17
+ "src/**/*.d.ts"
12
18
  ],
13
- "typings": "dist/index.d.ts",
14
19
  "keywords": [
15
20
  "egg",
16
21
  "typescript",
@@ -18,11 +23,10 @@
18
23
  "tegg"
19
24
  ],
20
25
  "scripts": {
21
- "test": "cross-env NODE_ENV=test NODE_OPTIONS='--no-deprecation' mocha",
22
- "clean": "tsc -b --clean && rm -rf dist",
26
+ "clean": "tsc -b --clean",
23
27
  "tsc": "npm run clean && tsc -p ./tsconfig.json",
24
- "tsc:pub": "npm run clean && tsc -p ./tsconfig.pub.json",
25
- "prepublishOnly": "npm run tsc:pub"
28
+ "tsc:pub": "npm run tsc",
29
+ "prepublishOnly": "npm run tsc"
26
30
  },
27
31
  "author": "killagu <killa123@126.com>",
28
32
  "license": "MIT",
@@ -36,29 +40,26 @@
36
40
  "directory": "core/dynamic-inject"
37
41
  },
38
42
  "engines": {
39
- "node": ">=10.0.0"
43
+ "node": ">=20.0.0"
40
44
  },
41
45
  "publishConfig": {
42
46
  "access": "public"
43
47
  },
44
48
  "dependencies": {
45
- "@eggjs/core-decorator": "^3.52.0",
46
- "@eggjs/tegg-common-util": "^3.52.0",
47
- "@eggjs/tegg-dynamic-inject": "^3.52.0",
48
- "@eggjs/tegg-lifecycle": "^3.52.0",
49
- "@eggjs/tegg-metadata": "^3.52.0",
50
- "@eggjs/tegg-runtime": "^3.52.0",
51
- "@eggjs/tegg-types": "^3.52.0"
49
+ "@eggjs/core-decorator": "^4.0.0-beta.2",
50
+ "@eggjs/tegg-common-util": "^4.0.0-beta.2",
51
+ "@eggjs/tegg-dynamic-inject": "^4.0.0-beta.2",
52
+ "@eggjs/tegg-lifecycle": "^4.0.0-beta.2",
53
+ "@eggjs/tegg-metadata": "^4.0.0-beta.2",
54
+ "@eggjs/tegg-runtime": "^4.0.0-beta.2",
55
+ "@eggjs/tegg-types": "^4.0.0-beta.2"
52
56
  },
53
57
  "devDependencies": {
54
- "@eggjs/module-test-util": "^3.52.0",
55
- "@eggjs/tegg-loader": "^3.52.0",
56
- "@types/mocha": "^10.0.1",
57
- "@types/node": "^20.2.4",
58
- "cross-env": "^7.0.3",
59
- "mocha": "^10.2.0",
60
- "ts-node": "^10.9.1",
61
- "typescript": "^5.0.4"
58
+ "@eggjs/module-test-util": "^4.0.0-beta.2",
59
+ "@eggjs/tegg-loader": "^4.0.0-beta.2",
60
+ "@types/node": "22",
61
+ "ts-node": "10",
62
+ "typescript": "5"
62
63
  },
63
- "gitHead": "35ed34855041dd8898046c9f3834d09a39da8ada"
64
+ "gitHead": "7e29d49dcc2eb26909697d5543b3c4f596c9e927"
64
65
  }
@@ -0,0 +1,53 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { AccessLevel } from '@eggjs/tegg-types';
8
+ import { PrototypeUtil, SingletonProto } from '@eggjs/core-decorator';
9
+ import { QualifierImplUtil } from '@eggjs/tegg-dynamic-inject';
10
+ import { EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE } from './EggObjectFactoryPrototype.js';
11
+ let EggObjectFactory = class EggObjectFactory {
12
+ eggContainerFactory;
13
+ async getEggObject(abstractClazz, qualifierValue) {
14
+ const implClazz = QualifierImplUtil.getQualifierImp(abstractClazz, qualifierValue);
15
+ if (!implClazz) {
16
+ throw new Error(`has no impl for ${abstractClazz.name} with qualifier ${qualifierValue}`);
17
+ }
18
+ const protoObj = PrototypeUtil.getClazzProto(implClazz);
19
+ if (!protoObj) {
20
+ throw new Error(`can not get proto for clazz ${implClazz.name}`);
21
+ }
22
+ const eggObject = await this.eggContainerFactory.getOrCreateEggObject(protoObj, protoObj.name);
23
+ return eggObject.obj;
24
+ }
25
+ async getEggObjects(abstractClazz) {
26
+ const implClazzMap = QualifierImplUtil.getQualifierImpMap(abstractClazz);
27
+ const getEggObject = this.getEggObject.bind(this);
28
+ const qualifierValues = Array.from(implClazzMap.keys());
29
+ return {
30
+ [Symbol.asyncIterator]() {
31
+ return {
32
+ key: 0,
33
+ async next() {
34
+ if (this.key === qualifierValues.length) {
35
+ return { done: true };
36
+ }
37
+ const value = await getEggObject(abstractClazz, qualifierValues[this.key++]);
38
+ return { value, done: false };
39
+ },
40
+ };
41
+ },
42
+ };
43
+ }
44
+ };
45
+ EggObjectFactory = __decorate([
46
+ SingletonProto({
47
+ protoImplType: EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE,
48
+ name: 'eggObjectFactory',
49
+ accessLevel: AccessLevel.PUBLIC,
50
+ })
51
+ ], EggObjectFactory);
52
+ export { EggObjectFactory };
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ09iamVjdEZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBT2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFPOUUsSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7SUFDM0IsbUJBQW1CLENBQTZCO0lBRWhELEtBQUssQ0FBQyxZQUFZLENBQW1CLGFBQWtDLEVBQUUsY0FBOEI7UUFDckcsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixhQUFhLENBQUMsSUFBSSxtQkFBbUIsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBQ0QsTUFBTSxRQUFRLEdBQVEsYUFBYSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRixPQUFPLFNBQVMsQ0FBQyxHQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQW1CLGFBQWtDO1FBQ3RFLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFFeEQsT0FBTztZQUNMLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztnQkFDcEIsT0FBTztvQkFDTCxHQUFHLEVBQUUsQ0FBQztvQkFDTixLQUFLLENBQUMsSUFBSTt3QkFDUixJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDOzRCQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBdUIsQ0FBQzt3QkFDN0MsQ0FBQzt3QkFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLFlBQVksQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQzdFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBdUIsQ0FBQztvQkFDckQsQ0FBQztpQkFDRixDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQTtBQXJDWSxnQkFBZ0I7SUFMNUIsY0FBYyxDQUFDO1FBQ2QsYUFBYSxFQUFFLG1DQUFtQztRQUNsRCxJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLFdBQVcsRUFBRSxXQUFXLENBQUMsTUFBTTtLQUNoQyxDQUFDO0dBQ1csZ0JBQWdCLENBcUM1QiJ9
@@ -1,6 +1,6 @@
1
- import { EggObjectFactoryPrototype } from './EggObjectFactoryPrototype';
2
1
  import type { EggRuntimeContext, EggObject, EggObjectName, EggPrototype } from '@eggjs/tegg-types';
3
- import { EggObjectFactory } from './EggObjectFactory';
2
+ import { EggObjectFactory } from './EggObjectFactory.js';
3
+ import { EggObjectFactoryPrototype } from './EggObjectFactoryPrototype.js';
4
4
  declare const OBJ: unique symbol;
5
5
  export declare class EggObjectFactoryObject implements EggObject {
6
6
  readonly proto: EggObjectFactoryPrototype;
@@ -0,0 +1,32 @@
1
+ import { EggContainerFactory, EggObjectFactory as TEggObjectFactory, } from '@eggjs/tegg-runtime';
2
+ import { IdenticalUtil } from '@eggjs/tegg-lifecycle';
3
+ import { EggObjectFactoryPrototype } from './EggObjectFactoryPrototype.js';
4
+ const OBJ = Symbol('EggObjectFactoryObject#obj');
5
+ export class EggObjectFactoryObject {
6
+ proto;
7
+ name;
8
+ ctx;
9
+ id;
10
+ [OBJ];
11
+ constructor(name, proto) {
12
+ this.proto = proto;
13
+ this.name = name;
14
+ this.id = IdenticalUtil.createObjectId(this.proto.id, this.ctx?.id);
15
+ }
16
+ get obj() {
17
+ if (!this[OBJ]) {
18
+ this[OBJ] = this.proto.constructEggObject();
19
+ this[OBJ].eggContainerFactory = EggContainerFactory;
20
+ }
21
+ return this[OBJ];
22
+ }
23
+ static async createObject(name, proto) {
24
+ return new EggObjectFactoryObject(name, proto);
25
+ }
26
+ isReady;
27
+ injectProperty() {
28
+ return;
29
+ }
30
+ }
31
+ TEggObjectFactory.registerEggObjectCreateMethod(EggObjectFactoryPrototype, EggObjectFactoryObject.createObject);
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0RmFjdG9yeU9iamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ09iamVjdEZhY3RvcnlPYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixnQkFBZ0IsSUFBSSxpQkFBaUIsR0FDdEMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFRdEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFM0UsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFFakQsTUFBTSxPQUFPLHNCQUFzQjtJQUN4QixLQUFLLENBQTRCO0lBQ2pDLElBQUksQ0FBZ0I7SUFDcEIsR0FBRyxDQUFxQjtJQUN4QixFQUFFLENBQVM7SUFDWixDQUFDLEdBQUcsQ0FBQyxDQUFtQjtJQUVoQyxZQUFZLElBQW1CLEVBQUUsS0FBZ0M7UUFDL0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQUksR0FBRztRQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFzQixDQUFDO1lBQ2hFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQW1CLEVBQUUsS0FBbUI7UUFDaEUsT0FBTyxJQUFJLHNCQUFzQixDQUFDLElBQUksRUFBRSxLQUFrQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVRLE9BQU8sQ0FBTztJQUV2QixjQUFjO1FBQ1osT0FBTztJQUNULENBQUM7Q0FDRjtBQUVELGlCQUFpQixDQUFDLDZCQUE2QixDQUFDLHlCQUF5QixFQUFFLHNCQUFzQixDQUFDLFlBQVksQ0FBQyxDQUFDIn0=
@@ -1,6 +1,7 @@
1
1
  import type { AccessLevel, EggObjectFactory, EggPrototype, EggProtoImplClass, EggPrototypeInfo, EggPrototypeLifecycleContext, EggPrototypeName, InjectObjectProto, LoadUnit, MetaDataKey, ObjectInitTypeLike, QualifierInfo, QualifierValue, Id } from '@eggjs/tegg-types';
2
2
  export declare const EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE = "EGG_OBJECT_FACTORY_PROTOTYPE";
3
3
  export declare class EggObjectFactoryPrototype implements EggPrototype {
4
+ [key: symbol]: PropertyDescriptor;
4
5
  readonly clazz: EggProtoImplClass<EggObjectFactory>;
5
6
  readonly accessLevel: AccessLevel;
6
7
  readonly id: Id;
@@ -0,0 +1,51 @@
1
+ import { EggPrototypeCreatorFactory } from '@eggjs/tegg-metadata';
2
+ import { MetadataUtil, QualifierUtil, } from '@eggjs/core-decorator';
3
+ import { NameUtil } from '@eggjs/tegg-common-util';
4
+ import { IdenticalUtil } from '@eggjs/tegg-lifecycle';
5
+ export const EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE = 'EGG_OBJECT_FACTORY_PROTOTYPE';
6
+ export class EggObjectFactoryPrototype {
7
+ clazz;
8
+ accessLevel;
9
+ id;
10
+ initType;
11
+ injectObjects;
12
+ loadUnitId;
13
+ name;
14
+ qualifiers;
15
+ constructor(clazz, loadUnit, prototypeInfo) {
16
+ this.clazz = clazz;
17
+ this.qualifiers = QualifierUtil.mergeQualifiers(QualifierUtil.getProtoQualifiers(clazz), (prototypeInfo.qualifiers ?? []));
18
+ this.id = IdenticalUtil.createProtoId(loadUnit.id, NameUtil.getClassName(this.clazz));
19
+ this.initType = prototypeInfo.initType;
20
+ this.accessLevel = prototypeInfo.accessLevel;
21
+ this.loadUnitId = loadUnit.id;
22
+ this.name = prototypeInfo.name || NameUtil.getClassName(this.clazz);
23
+ this.injectObjects = [];
24
+ }
25
+ constructEggObject() {
26
+ return Reflect.construct(this.clazz, []);
27
+ }
28
+ getMetaData(metadataKey) {
29
+ return MetadataUtil.getMetaData(metadataKey, this.clazz);
30
+ }
31
+ verifyQualifier(qualifier) {
32
+ const selfQualifiers = this.qualifiers.find(t => t.attribute === qualifier.attribute);
33
+ return selfQualifiers?.value === qualifier.value;
34
+ }
35
+ getQualifier(attribute) {
36
+ return this.qualifiers.find(t => t.attribute === attribute)?.value;
37
+ }
38
+ verifyQualifiers(qualifiers) {
39
+ for (const qualifier of qualifiers) {
40
+ if (!this.verifyQualifier(qualifier)) {
41
+ return false;
42
+ }
43
+ }
44
+ return true;
45
+ }
46
+ static create(ctx) {
47
+ return new EggObjectFactoryPrototype(ctx.clazz, ctx.loadUnit, ctx.prototypeInfo);
48
+ }
49
+ }
50
+ EggPrototypeCreatorFactory.registerPrototypeCreator(EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE, EggObjectFactoryPrototype.create);
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0RmFjdG9yeVByb3RvdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkVnZ09iamVjdEZhY3RvcnlQcm90b3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEUsT0FBTyxFQUNMLFlBQVksRUFDWixhQUFhLEdBQ2QsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBa0J0RCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyw4QkFBOEIsQ0FBQztBQUVsRixNQUFNLE9BQU8seUJBQXlCO0lBRzNCLEtBQUssQ0FBc0M7SUFDM0MsV0FBVyxDQUFjO0lBQ3pCLEVBQUUsQ0FBSztJQUNQLFFBQVEsQ0FBcUI7SUFDN0IsYUFBYSxDQUFzQjtJQUNuQyxVQUFVLENBQVM7SUFDbkIsSUFBSSxDQUFtQjtJQUN2QixVQUFVLENBQWtCO0lBRXJDLFlBQVksS0FBMEMsRUFBRSxRQUFrQixFQUFFLGFBQStCO1FBQ3pHLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FDN0MsYUFBYSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUN2QyxDQUFDLGFBQWEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQ2pDLENBQUM7UUFDRixJQUFJLENBQUMsRUFBRSxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXLENBQUksV0FBd0I7UUFDckMsT0FBTyxZQUFZLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUF3QjtRQUN0QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RGLE9BQU8sY0FBYyxFQUFFLEtBQUssS0FBSyxTQUFTLENBQUMsS0FBSyxDQUFDO0lBQ25ELENBQUM7SUFFRCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLEVBQUUsS0FBSyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUEyQjtRQUMxQyxLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQWlDO1FBQzdDLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsS0FBNEMsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxSCxDQUFDO0NBQ0Y7QUFHRCwwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FBQyxtQ0FBbUMsRUFBRSx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyJ9
package/src/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './EggObjectFactory.js';
2
+ export * from './EggObjectFactoryObject.js';
3
+ export * from './EggObjectFactoryPrototype.js';
package/src/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export * from './EggObjectFactory.js';
2
+ export * from './EggObjectFactoryObject.js';
3
+ export * from './EggObjectFactoryPrototype.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxnQ0FBZ0MsQ0FBQyJ9
package/dist/index.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from './src/EggObjectFactory';
2
- import './src/EggObjectFactoryPrototype';
3
- import './src/EggObjectFactoryObject';
package/dist/index.js DELETED
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./src/EggObjectFactory"), exports);
18
- require("./src/EggObjectFactoryPrototype");
19
- require("./src/EggObjectFactoryObject");
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseURBQXVDO0FBRXZDLDJDQUF5QztBQUN6Qyx3Q0FBc0MifQ==
@@ -1,55 +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.EggObjectFactory = void 0;
10
- const tegg_types_1 = require("@eggjs/tegg-types");
11
- const core_decorator_1 = require("@eggjs/core-decorator");
12
- const tegg_dynamic_inject_1 = require("@eggjs/tegg-dynamic-inject");
13
- const EggObjectFactoryPrototype_1 = require("./EggObjectFactoryPrototype");
14
- let EggObjectFactory = class EggObjectFactory {
15
- async getEggObject(abstractClazz, qualifierValue) {
16
- const implClazz = tegg_dynamic_inject_1.QualifierImplUtil.getQualifierImp(abstractClazz, qualifierValue);
17
- if (!implClazz) {
18
- throw new Error(`has no impl for ${abstractClazz.name} with qualifier ${qualifierValue}`);
19
- }
20
- const protoObj = core_decorator_1.PrototypeUtil.getClazzProto(implClazz);
21
- if (!protoObj) {
22
- throw new Error(`can not get proto for clazz ${implClazz.name}`);
23
- }
24
- const eggObject = await this.eggContainerFactory.getOrCreateEggObject(protoObj, protoObj.name);
25
- return eggObject.obj;
26
- }
27
- async getEggObjects(abstractClazz) {
28
- const implClazzMap = tegg_dynamic_inject_1.QualifierImplUtil.getQualifierImpMap(abstractClazz);
29
- const getEggObject = this.getEggObject.bind(this);
30
- const qualifierValues = Array.from(implClazzMap.keys());
31
- return {
32
- [Symbol.asyncIterator]() {
33
- return {
34
- key: 0,
35
- async next() {
36
- if (this.key === qualifierValues.length) {
37
- return { done: true };
38
- }
39
- const value = await getEggObject(abstractClazz, qualifierValues[this.key++]);
40
- return { value, done: false };
41
- },
42
- };
43
- },
44
- };
45
- }
46
- };
47
- exports.EggObjectFactory = EggObjectFactory;
48
- exports.EggObjectFactory = EggObjectFactory = __decorate([
49
- (0, core_decorator_1.SingletonProto)({
50
- protoImplType: EggObjectFactoryPrototype_1.EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE,
51
- name: 'eggObjectFactory',
52
- accessLevel: tegg_types_1.AccessLevel.PUBLIC,
53
- })
54
- ], EggObjectFactory);
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0RmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FZ2dPYmplY3RGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLGtEQUFnRDtBQU9oRCwwREFBc0U7QUFDdEUsb0VBQStEO0FBRS9ELDJFQUFrRjtBQU8zRSxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjtJQUczQixLQUFLLENBQUMsWUFBWSxDQUFtQixhQUFrQyxFQUFFLGNBQThCO1FBQ3JHLE1BQU0sU0FBUyxHQUFHLHVDQUFpQixDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsYUFBYSxDQUFDLElBQUksbUJBQW1CLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDNUYsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFRLDhCQUFhLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9GLE9BQU8sU0FBUyxDQUFDLEdBQVEsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBbUIsYUFBa0M7UUFDdEUsTUFBTSxZQUFZLEdBQUcsdUNBQWlCLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV4RCxPQUFPO1lBQ0wsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO2dCQUNwQixPQUFPO29CQUNMLEdBQUcsRUFBRSxDQUFDO29CQUNOLEtBQUssQ0FBQyxJQUFJO3dCQUNSLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7NEJBQ3hDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUF1QixDQUFDO3dCQUM3QyxDQUFDO3dCQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFDLGFBQWEsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDN0UsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUF1QixDQUFDO29CQUNyRCxDQUFDO2lCQUNGLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFBO0FBckNZLDRDQUFnQjsyQkFBaEIsZ0JBQWdCO0lBTDVCLElBQUEsK0JBQWMsRUFBQztRQUNkLGFBQWEsRUFBRSwrREFBbUM7UUFDbEQsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixXQUFXLEVBQUUsd0JBQVcsQ0FBQyxNQUFNO0tBQ2hDLENBQUM7R0FDVyxnQkFBZ0IsQ0FxQzVCIn0=
@@ -1,31 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EggObjectFactoryObject = void 0;
4
- const tegg_runtime_1 = require("@eggjs/tegg-runtime");
5
- const EggObjectFactoryPrototype_1 = require("./EggObjectFactoryPrototype");
6
- const tegg_lifecycle_1 = require("@eggjs/tegg-lifecycle");
7
- const OBJ = Symbol('EggObjectFactoryObject#obj');
8
- class EggObjectFactoryObject {
9
- constructor(name, proto) {
10
- var _a;
11
- this.proto = proto;
12
- this.name = name;
13
- this.id = tegg_lifecycle_1.IdenticalUtil.createObjectId(this.proto.id, (_a = this.ctx) === null || _a === void 0 ? void 0 : _a.id);
14
- }
15
- get obj() {
16
- if (!this[OBJ]) {
17
- this[OBJ] = this.proto.constructEggObject();
18
- this[OBJ].eggContainerFactory = tegg_runtime_1.EggContainerFactory;
19
- }
20
- return this[OBJ];
21
- }
22
- static async createObject(name, proto) {
23
- return new EggObjectFactoryObject(name, proto);
24
- }
25
- injectProperty() {
26
- return;
27
- }
28
- }
29
- exports.EggObjectFactoryObject = EggObjectFactoryObject;
30
- tegg_runtime_1.EggObjectFactory.registerEggObjectCreateMethod(EggObjectFactoryPrototype_1.EggObjectFactoryPrototype, EggObjectFactoryObject.createObject);
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0RmFjdG9yeU9iamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FZ2dPYmplY3RGYWN0b3J5T2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUc2QjtBQUM3QiwyRUFBd0U7QUFDeEUsMERBQXNEO0FBU3RELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0FBRWpELE1BQWEsc0JBQXNCO0lBT2pDLFlBQVksSUFBbUIsRUFBRSxLQUFnQzs7UUFDL0QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLEVBQUUsR0FBRyw4QkFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFBLElBQUksQ0FBQyxHQUFHLDBDQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFJLEdBQUc7UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBc0IsQ0FBQztZQUNoRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsbUJBQW1CLEdBQUcsa0NBQW1CLENBQUM7UUFDdEQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFtQixFQUFFLEtBQW1CO1FBQ2hFLE9BQU8sSUFBSSxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsS0FBa0MsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFJRCxjQUFjO1FBQ1osT0FBTztJQUNULENBQUM7Q0FDRjtBQTlCRCx3REE4QkM7QUFFRCwrQkFBaUIsQ0FBQyw2QkFBNkIsQ0FBQyxxREFBeUIsRUFBRSxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyJ9
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EggObjectFactoryPrototype = exports.EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE = void 0;
4
- const tegg_metadata_1 = require("@eggjs/tegg-metadata");
5
- const core_decorator_1 = require("@eggjs/core-decorator");
6
- const tegg_common_util_1 = require("@eggjs/tegg-common-util");
7
- const tegg_lifecycle_1 = require("@eggjs/tegg-lifecycle");
8
- exports.EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE = 'EGG_OBJECT_FACTORY_PROTOTYPE';
9
- class EggObjectFactoryPrototype {
10
- constructor(clazz, loadUnit, prototypeInfo) {
11
- var _a;
12
- this.clazz = clazz;
13
- this.qualifiers = core_decorator_1.QualifierUtil.mergeQualifiers(core_decorator_1.QualifierUtil.getProtoQualifiers(clazz), ((_a = prototypeInfo.qualifiers) !== null && _a !== void 0 ? _a : []));
14
- this.id = tegg_lifecycle_1.IdenticalUtil.createProtoId(loadUnit.id, tegg_common_util_1.NameUtil.getClassName(this.clazz));
15
- this.initType = prototypeInfo.initType;
16
- this.accessLevel = prototypeInfo.accessLevel;
17
- this.loadUnitId = loadUnit.id;
18
- this.name = prototypeInfo.name || tegg_common_util_1.NameUtil.getClassName(this.clazz);
19
- this.injectObjects = [];
20
- }
21
- constructEggObject() {
22
- return Reflect.construct(this.clazz, []);
23
- }
24
- getMetaData(metadataKey) {
25
- return core_decorator_1.MetadataUtil.getMetaData(metadataKey, this.clazz);
26
- }
27
- verifyQualifier(qualifier) {
28
- const selfQualifiers = this.qualifiers.find(t => t.attribute === qualifier.attribute);
29
- return (selfQualifiers === null || selfQualifiers === void 0 ? void 0 : selfQualifiers.value) === qualifier.value;
30
- }
31
- getQualifier(attribute) {
32
- var _a;
33
- return (_a = this.qualifiers.find(t => t.attribute === attribute)) === null || _a === void 0 ? void 0 : _a.value;
34
- }
35
- verifyQualifiers(qualifiers) {
36
- for (const qualifier of qualifiers) {
37
- if (!this.verifyQualifier(qualifier)) {
38
- return false;
39
- }
40
- }
41
- return true;
42
- }
43
- static create(ctx) {
44
- return new EggObjectFactoryPrototype(ctx.clazz, ctx.loadUnit, ctx.prototypeInfo);
45
- }
46
- }
47
- exports.EggObjectFactoryPrototype = EggObjectFactoryPrototype;
48
- tegg_metadata_1.EggPrototypeCreatorFactory.registerPrototypeCreator(exports.EGG_OBJECT_FACTORY_PROTO_IMPLE_TYPE, EggObjectFactoryPrototype.create);
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRWdnT2JqZWN0RmFjdG9yeVByb3RvdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FZ2dPYmplY3RGYWN0b3J5UHJvdG90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdEQUFrRTtBQUNsRSwwREFHK0I7QUFDL0IsOERBQW1EO0FBQ25ELDBEQUFzRDtBQWtCekMsUUFBQSxtQ0FBbUMsR0FBRyw4QkFBOEIsQ0FBQztBQUVsRixNQUFhLHlCQUF5QjtJQVVwQyxZQUFZLEtBQTBDLEVBQUUsUUFBa0IsRUFBRSxhQUErQjs7UUFDekcsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyw4QkFBYSxDQUFDLGVBQWUsQ0FDN0MsOEJBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFDdkMsQ0FBQyxNQUFBLGFBQWEsQ0FBQyxVQUFVLG1DQUFJLEVBQUUsQ0FBQyxDQUNqQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEVBQUUsR0FBRyw4QkFBYSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLDJCQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLElBQUksSUFBSSwyQkFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsV0FBVyxDQUFJLFdBQXdCO1FBQ3JDLE9BQU8sNkJBQVksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQXdCO1FBQ3RDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEYsT0FBTyxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRSxLQUFLLE1BQUssU0FBUyxDQUFDLEtBQUssQ0FBQztJQUNuRCxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQWlCOztRQUM1QixPQUFPLE1BQUEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQywwQ0FBRSxLQUFLLENBQUM7SUFDckUsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQTJCO1FBQzFDLEtBQUssTUFBTSxTQUFTLElBQUksVUFBVSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDckMsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBaUM7UUFDN0MsT0FBTyxJQUFJLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxLQUE0QyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFILENBQUM7Q0FDRjtBQXJERCw4REFxREM7QUFHRCwwQ0FBMEIsQ0FBQyx3QkFBd0IsQ0FBQywyQ0FBbUMsRUFBRSx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyJ9
File without changes