@eggjs/tegg-common-util 3.51.2 → 4.0.0-beta.1
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 +24 -21
- package/src/FSUtil.js +13 -0
- package/src/Graph.js +159 -0
- package/src/MapUtil.js +9 -0
- package/src/ModuleConfig.js +282 -0
- package/{dist/src → src}/ModuleConfigs.d.ts +1 -0
- package/src/ModuleConfigs.js +10 -0
- package/src/NameUtil.js +6 -0
- package/src/ObjectUtils.js +51 -0
- package/src/ProxyUtil.js +14 -0
- package/src/StackUtil.d.ts +3 -0
- package/src/StackUtil.js +45 -0
- package/src/TimerUtil.js +6 -0
- package/src/index.d.ts +12 -0
- package/src/index.js +13 -0
- package/dist/index.d.ts +0 -11
- package/dist/index.js +0 -28
- package/dist/src/FSUtil.js +0 -17
- package/dist/src/Graph.js +0 -168
- package/dist/src/MapUtil.js +0 -13
- package/dist/src/ModuleConfig.js +0 -312
- package/dist/src/ModuleConfigs.js +0 -14
- package/dist/src/NameUtil.js +0 -10
- package/dist/src/ObjectUtils.js +0 -55
- package/dist/src/ProxyUtil.js +0 -17
- package/dist/src/StackUtil.d.ts +0 -7
- package/dist/src/StackUtil.js +0 -44
- package/dist/src/TimerUtil.js +0 -10
- /package/{dist/src → src}/FSUtil.d.ts +0 -0
- /package/{dist/src → src}/Graph.d.ts +0 -0
- /package/{dist/src → src}/MapUtil.d.ts +0 -0
- /package/{dist/src → src}/ModuleConfig.d.ts +0 -0
- /package/{dist/src → src}/NameUtil.d.ts +0 -0
- /package/{dist/src → src}/ObjectUtils.d.ts +0 -0
- /package/{dist/src → src}/ProxyUtil.d.ts +0 -0
- /package/{dist/src → src}/TimerUtil.d.ts +0 -0
package/package.json
CHANGED
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/tegg-common-util",
|
|
3
3
|
"description": "common util for tegg",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "4.0.0-beta.1",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"egg",
|
|
7
7
|
"typescript",
|
|
8
8
|
"collection",
|
|
9
9
|
"tegg"
|
|
10
10
|
],
|
|
11
|
-
"
|
|
11
|
+
"type": "module",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./src/index.d.ts",
|
|
15
|
+
"default": "./src/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
12
18
|
"files": [
|
|
13
|
-
"
|
|
14
|
-
"
|
|
19
|
+
"src/**/*.js",
|
|
20
|
+
"src/**/*.d.ts"
|
|
15
21
|
],
|
|
16
|
-
"typings": "dist/index.d.ts",
|
|
17
22
|
"scripts": {
|
|
18
|
-
"test": "cross-env NODE_ENV=test NODE_OPTIONS='--no-deprecation' mocha",
|
|
19
23
|
"clean": "tsc -b --clean",
|
|
20
24
|
"tsc": "npm run clean && tsc -p ./tsconfig.json",
|
|
21
|
-
"tsc:pub": "npm run
|
|
22
|
-
"prepublishOnly": "npm run tsc
|
|
25
|
+
"tsc:pub": "npm run tsc",
|
|
26
|
+
"prepublishOnly": "npm run tsc"
|
|
23
27
|
},
|
|
24
28
|
"author": "killagu <killa123@126.com>",
|
|
25
29
|
"license": "MIT",
|
|
@@ -33,24 +37,23 @@
|
|
|
33
37
|
"directory": "core/common-util"
|
|
34
38
|
},
|
|
35
39
|
"engines": {
|
|
36
|
-
"node": ">=
|
|
40
|
+
"node": ">=20.0.0"
|
|
37
41
|
},
|
|
38
42
|
"dependencies": {
|
|
39
|
-
"@eggjs/tegg-types": "^
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
+
"@eggjs/tegg-types": "^4.0.0-beta.1",
|
|
44
|
+
"@eggjs/utils": "^4.3.0",
|
|
45
|
+
"extend2": "^4.0.0",
|
|
46
|
+
"globby": "^14.1.0",
|
|
47
|
+
"js-yaml": "^4.1.0"
|
|
43
48
|
},
|
|
44
49
|
"publishConfig": {
|
|
45
50
|
"access": "public"
|
|
46
51
|
},
|
|
47
52
|
"devDependencies": {
|
|
48
|
-
"@types/
|
|
49
|
-
"@types/node": "
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
},
|
|
55
|
-
"gitHead": "b310ec3c772067b98b4f91342d877bebcee4e673"
|
|
53
|
+
"@types/js-yaml": "^4.0.9",
|
|
54
|
+
"@types/node": "22",
|
|
55
|
+
"ts-node": "10",
|
|
56
|
+
"typescript": "5"
|
|
57
|
+
},
|
|
58
|
+
"gitHead": "79a22905272d6de7fe06152231dff65d213d9166"
|
|
56
59
|
}
|
package/src/FSUtil.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
export class FSUtil {
|
|
3
|
+
static async fileExists(filePath) {
|
|
4
|
+
try {
|
|
5
|
+
await fs.access(filePath);
|
|
6
|
+
}
|
|
7
|
+
catch {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRlNVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRlNVdGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWxDLE1BQU0sT0FBTyxNQUFNO0lBQ2pCLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQWdCO1FBQ3RDLElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YifQ==
|
package/src/Graph.js
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
const inspect = Symbol.for('nodejs.util.inspect.custom');
|
|
2
|
+
export class GraphNode {
|
|
3
|
+
val;
|
|
4
|
+
toNodeMap = new Map();
|
|
5
|
+
fromNodeMap = new Map();
|
|
6
|
+
constructor(val) {
|
|
7
|
+
this.val = val;
|
|
8
|
+
}
|
|
9
|
+
get id() {
|
|
10
|
+
return this.val.id;
|
|
11
|
+
}
|
|
12
|
+
addToVertex(node, meta) {
|
|
13
|
+
if (this.toNodeMap.has(node.id)) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
this.toNodeMap.set(node.id, { node, meta });
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
addFromVertex(node, meta) {
|
|
20
|
+
if (this.fromNodeMap.has(node.id)) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
this.fromNodeMap.set(node.id, { node, meta });
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
[inspect]() {
|
|
27
|
+
return this.toJSON();
|
|
28
|
+
}
|
|
29
|
+
toJSON() {
|
|
30
|
+
return {
|
|
31
|
+
val: this.val,
|
|
32
|
+
toNodes: Array.from(this.toNodeMap.values()),
|
|
33
|
+
fromNodes: Array.from(this.fromNodeMap.values()),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
toString() {
|
|
37
|
+
return this.val.toString();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export class GraphPath {
|
|
41
|
+
nodeIdMap = new Map();
|
|
42
|
+
nodes = [];
|
|
43
|
+
pushVertex(node, meta) {
|
|
44
|
+
const val = this.nodeIdMap.get(node.id) || 0;
|
|
45
|
+
this.nodeIdMap.set(node.id, val + 1);
|
|
46
|
+
this.nodes.push({ node, meta });
|
|
47
|
+
return val === 0;
|
|
48
|
+
}
|
|
49
|
+
popVertex() {
|
|
50
|
+
const nodeHandler = this.nodes.pop();
|
|
51
|
+
if (nodeHandler) {
|
|
52
|
+
const val = this.nodeIdMap.get(nodeHandler.node.id);
|
|
53
|
+
this.nodeIdMap.set(nodeHandler.node.id, val - 1);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
toString() {
|
|
57
|
+
const res = this.nodes.reduce((p, c) => {
|
|
58
|
+
let msg = '';
|
|
59
|
+
if (c.meta) {
|
|
60
|
+
msg += ` ${c.meta.toString()} -> `;
|
|
61
|
+
}
|
|
62
|
+
else if (p.length) {
|
|
63
|
+
msg += ' -> ';
|
|
64
|
+
}
|
|
65
|
+
msg += c.node.val.toString();
|
|
66
|
+
p.push(msg);
|
|
67
|
+
return p;
|
|
68
|
+
}, new Array());
|
|
69
|
+
return res.join('');
|
|
70
|
+
}
|
|
71
|
+
[inspect]() {
|
|
72
|
+
return this.toString();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export class Graph {
|
|
76
|
+
nodes = new Map();
|
|
77
|
+
addVertex(node) {
|
|
78
|
+
if (this.nodes.has(node.id)) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
this.nodes.set(node.id, node);
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
addEdge(from, to, meta) {
|
|
85
|
+
to.addFromVertex(from, meta);
|
|
86
|
+
return from.addToVertex(to, meta);
|
|
87
|
+
}
|
|
88
|
+
findToNode(id, meta) {
|
|
89
|
+
const node = this.nodes.get(id);
|
|
90
|
+
if (!node)
|
|
91
|
+
return undefined;
|
|
92
|
+
for (const { node: toNode, meta: edgeMeta } of node.toNodeMap.values()) {
|
|
93
|
+
if (edgeMeta && meta.equal(edgeMeta)) {
|
|
94
|
+
return toNode;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
appendVertexToPath(node, accessPath, meta) {
|
|
100
|
+
if (!accessPath.pushVertex(node, meta)) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
for (const toNode of node.toNodeMap.values()) {
|
|
104
|
+
if (!this.appendVertexToPath(toNode.node, accessPath, toNode.meta)) {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
accessPath.popVertex();
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
loopPath() {
|
|
112
|
+
const accessPath = new GraphPath();
|
|
113
|
+
const nodes = Array.from(this.nodes.values());
|
|
114
|
+
for (const node of nodes) {
|
|
115
|
+
if (!this.appendVertexToPath(node, accessPath)) {
|
|
116
|
+
return accessPath;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
accessNode(node, nodes, accessed, res) {
|
|
122
|
+
const index = nodes.indexOf(node);
|
|
123
|
+
if (accessed[index]) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (!node.toNodeMap.size) {
|
|
127
|
+
accessed[nodes.indexOf(node)] = true;
|
|
128
|
+
res.push(node);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
for (const toNode of node.toNodeMap.values()) {
|
|
132
|
+
this.accessNode(toNode.node, nodes, accessed, res);
|
|
133
|
+
}
|
|
134
|
+
accessed[nodes.indexOf(node)] = true;
|
|
135
|
+
res.push(node);
|
|
136
|
+
}
|
|
137
|
+
// sort by direct
|
|
138
|
+
// priority:
|
|
139
|
+
// 1. vertex can not be access
|
|
140
|
+
// 2. reverse by access direct
|
|
141
|
+
//
|
|
142
|
+
// notice:
|
|
143
|
+
// 1. sort result is not stable
|
|
144
|
+
// 2. graph with loop can not be sort
|
|
145
|
+
sort() {
|
|
146
|
+
const res = [];
|
|
147
|
+
const nodes = Array.from(this.nodes.values());
|
|
148
|
+
const accessed = [];
|
|
149
|
+
for (let i = 0; i < nodes.length; ++i) {
|
|
150
|
+
accessed.push(false);
|
|
151
|
+
}
|
|
152
|
+
for (let i = 0; i < nodes.length; ++i) {
|
|
153
|
+
const node = nodes[i];
|
|
154
|
+
this.accessNode(node, nodes, accessed, res);
|
|
155
|
+
}
|
|
156
|
+
return res;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJHcmFwaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7QUFPekQsTUFBTSxPQUFPLFNBQVM7SUFDcEIsR0FBRyxDQUFJO0lBQ1AsU0FBUyxHQUFtRCxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ3RFLFdBQVcsR0FBbUQsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUV4RSxZQUFZLEdBQU07UUFDaEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVELElBQUksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFxQixFQUFFLElBQVE7UUFDekMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsYUFBYSxDQUFDLElBQXFCLEVBQUUsSUFBUTtRQUMzQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFF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
|
package/src/MapUtil.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export class MapUtil {
|
|
2
|
+
static getOrStore(map, key, value) {
|
|
3
|
+
if (!map.has(key)) {
|
|
4
|
+
map.set(key, value);
|
|
5
|
+
}
|
|
6
|
+
return map.get(key);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFwVXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIk1hcFV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLE9BQU87SUFDbEIsTUFBTSxDQUFDLFVBQVUsQ0FBTyxHQUFjLEVBQUUsR0FBTSxFQUFFLEtBQVE7UUFDdEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNsQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBRSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import fs, { promises as fsPromise } from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { extend } from 'extend2';
|
|
5
|
+
import { globbySync } from 'globby';
|
|
6
|
+
import { load as yamlLoad } from 'js-yaml';
|
|
7
|
+
import { importResolve } from '@eggjs/utils';
|
|
8
|
+
import { FSUtil } from './FSUtil.js';
|
|
9
|
+
export class ModuleReferenceConfigHelp {
|
|
10
|
+
static isInlineModuleReference(moduleReference) {
|
|
11
|
+
return !!moduleReference.path;
|
|
12
|
+
}
|
|
13
|
+
static isNpmModuleReference(moduleReference) {
|
|
14
|
+
return !!moduleReference.package;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const DEFAULT_READ_MODULE_REF_OPTS = {
|
|
18
|
+
deep: 10,
|
|
19
|
+
};
|
|
20
|
+
export class ModuleConfigUtil {
|
|
21
|
+
static configNames;
|
|
22
|
+
static setConfigNames(configNames) {
|
|
23
|
+
ModuleConfigUtil.configNames = configNames;
|
|
24
|
+
}
|
|
25
|
+
static readModuleReference(baseDir, options) {
|
|
26
|
+
// 1. module.json exits use module.json as module reference
|
|
27
|
+
// 1. module.json not exits scan baseDir get package.json to find modules
|
|
28
|
+
const configDir = path.join(baseDir, 'config');
|
|
29
|
+
const moduleJsonPath = path.join(configDir, 'module.json');
|
|
30
|
+
if (fs.existsSync(moduleJsonPath)) {
|
|
31
|
+
return this.readModuleReferenceFromModuleJson(configDir, moduleJsonPath, options?.cwd || baseDir);
|
|
32
|
+
}
|
|
33
|
+
return this.readModuleReferenceFromScan(baseDir, options);
|
|
34
|
+
}
|
|
35
|
+
static readModuleReferenceFromModuleJson(configDir, moduleJsonPath, cwd) {
|
|
36
|
+
const moduleJsonContent = fs.readFileSync(moduleJsonPath, 'utf8');
|
|
37
|
+
const moduleJson = JSON.parse(moduleJsonContent);
|
|
38
|
+
const moduleReferenceList = [];
|
|
39
|
+
for (const moduleReferenceConfig of moduleJson) {
|
|
40
|
+
let moduleReference;
|
|
41
|
+
if (ModuleReferenceConfigHelp.isNpmModuleReference(moduleReferenceConfig)) {
|
|
42
|
+
const options = cwd ? { paths: [cwd] } : {};
|
|
43
|
+
// path.posix for windows keep path as foo/package.json
|
|
44
|
+
const pkgJson = path.posix.join(moduleReferenceConfig.package, 'package.json');
|
|
45
|
+
const file = importResolve(pkgJson, options);
|
|
46
|
+
const modulePath = path.dirname(file);
|
|
47
|
+
moduleReference = {
|
|
48
|
+
path: modulePath,
|
|
49
|
+
name: ModuleConfigUtil.readModuleNameSync(modulePath),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
else if (ModuleReferenceConfigHelp.isInlineModuleReference(moduleReferenceConfig)) {
|
|
53
|
+
const modulePath = path.join(configDir, moduleReferenceConfig.path);
|
|
54
|
+
moduleReference = {
|
|
55
|
+
path: modulePath,
|
|
56
|
+
name: ModuleConfigUtil.readModuleNameSync(modulePath),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
throw new Error('unknown type of module reference config: ' + JSON.stringify(moduleReferenceConfig));
|
|
61
|
+
}
|
|
62
|
+
moduleReferenceList.push(moduleReference);
|
|
63
|
+
}
|
|
64
|
+
return moduleReferenceList;
|
|
65
|
+
}
|
|
66
|
+
static readModuleReferenceFromScan(baseDir, options) {
|
|
67
|
+
const ref = [];
|
|
68
|
+
const realOptions = Object.assign({}, DEFAULT_READ_MODULE_REF_OPTS, options);
|
|
69
|
+
const packagePaths = globbySync([
|
|
70
|
+
'**/package.json',
|
|
71
|
+
// not load node_modules
|
|
72
|
+
'!**/node_modules',
|
|
73
|
+
// not load files in .xxx/
|
|
74
|
+
'!**/+(.*)/**',
|
|
75
|
+
// not load coverage
|
|
76
|
+
'!**/coverage',
|
|
77
|
+
...(realOptions.extraFilePattern || []),
|
|
78
|
+
], {
|
|
79
|
+
cwd: baseDir,
|
|
80
|
+
deep: realOptions.deep,
|
|
81
|
+
});
|
|
82
|
+
const moduleDirSet = new Set();
|
|
83
|
+
for (const packagePath of packagePaths) {
|
|
84
|
+
const absolutePkgPath = path.join(baseDir, packagePath);
|
|
85
|
+
let realPkgPath;
|
|
86
|
+
try {
|
|
87
|
+
realPkgPath = fs.realpathSync(absolutePkgPath);
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
const moduleDir = path.dirname(realPkgPath);
|
|
93
|
+
// skip the symbolic link
|
|
94
|
+
if (moduleDirSet.has(moduleDir)) {
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
moduleDirSet.add(moduleDir);
|
|
98
|
+
let name;
|
|
99
|
+
try {
|
|
100
|
+
name = this.readModuleNameSync(moduleDir);
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
ref.push({
|
|
106
|
+
path: moduleDir,
|
|
107
|
+
name,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
const moduleReferences = this.readModuleFromNodeModules(baseDir);
|
|
111
|
+
for (const moduleReference of moduleReferences) {
|
|
112
|
+
const moduleBasePath = path.basename(moduleReference.path);
|
|
113
|
+
moduleDirSet.forEach(modulePath => {
|
|
114
|
+
if (path.basename(modulePath) === moduleBasePath) {
|
|
115
|
+
throw new Error('duplicate import of module reference: ' + moduleBasePath);
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
ref.push({
|
|
119
|
+
path: moduleReference.path,
|
|
120
|
+
name: moduleReference.name,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return ref;
|
|
124
|
+
}
|
|
125
|
+
static readModuleFromNodeModules(baseDir) {
|
|
126
|
+
const ref = [];
|
|
127
|
+
let pkgContent;
|
|
128
|
+
try {
|
|
129
|
+
pkgContent = fs.readFileSync(path.join(baseDir, 'package.json'), 'utf8');
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
return [];
|
|
133
|
+
}
|
|
134
|
+
const pkg = JSON.parse(pkgContent);
|
|
135
|
+
for (const dependencyKey of Object.keys(pkg.dependencies || {})) {
|
|
136
|
+
let packageJsonPath;
|
|
137
|
+
try {
|
|
138
|
+
// https://nodejs.org/api/packages.html#package-entry-points
|
|
139
|
+
// ignore cases where the package entry is exports but package.json is not exported
|
|
140
|
+
packageJsonPath = importResolve(`${dependencyKey}/package.json`, { paths: [baseDir] });
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
const absolutePkgPath = path.dirname(packageJsonPath);
|
|
146
|
+
const realPkgPath = fs.realpathSync(absolutePkgPath);
|
|
147
|
+
try {
|
|
148
|
+
const name = this.readModuleNameSync(realPkgPath);
|
|
149
|
+
ref.push({
|
|
150
|
+
path: realPkgPath,
|
|
151
|
+
name,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return ref;
|
|
159
|
+
}
|
|
160
|
+
static resolveModuleDir(moduleDir, baseDir) {
|
|
161
|
+
if (path.isAbsolute(moduleDir)) {
|
|
162
|
+
return moduleDir;
|
|
163
|
+
}
|
|
164
|
+
assert(baseDir, 'baseDir is required');
|
|
165
|
+
return path.join(baseDir, 'config', moduleDir);
|
|
166
|
+
}
|
|
167
|
+
static getModuleName(pkg) {
|
|
168
|
+
assert(pkg.eggModule && pkg.eggModule.name, 'eggModule.name not found in package.json');
|
|
169
|
+
return pkg.eggModule.name;
|
|
170
|
+
}
|
|
171
|
+
static async readModuleName(baseDir, moduleDir) {
|
|
172
|
+
moduleDir = ModuleConfigUtil.resolveModuleDir(moduleDir, baseDir);
|
|
173
|
+
const pkgContent = await fsPromise.readFile(path.join(moduleDir, 'package.json'), 'utf8');
|
|
174
|
+
const pkg = JSON.parse(pkgContent);
|
|
175
|
+
return ModuleConfigUtil.getModuleName(pkg);
|
|
176
|
+
}
|
|
177
|
+
static readModuleNameSync(moduleDir, baseDir) {
|
|
178
|
+
moduleDir = ModuleConfigUtil.resolveModuleDir(moduleDir, baseDir);
|
|
179
|
+
const pkgContent = fs.readFileSync(path.join(moduleDir, 'package.json'), 'utf8');
|
|
180
|
+
const pkg = JSON.parse(pkgContent);
|
|
181
|
+
return ModuleConfigUtil.getModuleName(pkg);
|
|
182
|
+
}
|
|
183
|
+
static async loadModuleConfig(moduleDir, baseDir, env) {
|
|
184
|
+
const modulePath = ModuleConfigUtil.resolveModuleDir(moduleDir, baseDir);
|
|
185
|
+
let configNames;
|
|
186
|
+
if (env) {
|
|
187
|
+
configNames = ['module', `module.${env}`];
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
// assert(ModuleConfigUtil.configNames, 'should setConfigNames before load module config');
|
|
191
|
+
configNames = ModuleConfigUtil.configNames || ['module'];
|
|
192
|
+
}
|
|
193
|
+
const target = {};
|
|
194
|
+
for (const configName of configNames) {
|
|
195
|
+
let config = await ModuleConfigUtil.#loadOne(modulePath, configName);
|
|
196
|
+
// both module.yml and module.default.yml are ok for default config
|
|
197
|
+
if (configName === 'module.default' && !config) {
|
|
198
|
+
config = await ModuleConfigUtil.#loadOne(modulePath, 'module');
|
|
199
|
+
}
|
|
200
|
+
if (config) {
|
|
201
|
+
extend(true, target, config);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return target;
|
|
205
|
+
}
|
|
206
|
+
static async #loadOne(moduleDir, configName) {
|
|
207
|
+
const yamlConfigPath = path.join(moduleDir, `${configName}.yml`);
|
|
208
|
+
let config = await ModuleConfigUtil.#loadYaml(yamlConfigPath);
|
|
209
|
+
if (!config) {
|
|
210
|
+
const jsonConfigPath = path.join(moduleDir, `${configName}.json`);
|
|
211
|
+
config = await ModuleConfigUtil.#loadJson(jsonConfigPath);
|
|
212
|
+
}
|
|
213
|
+
return config;
|
|
214
|
+
}
|
|
215
|
+
static async #loadJson(moduleJsonPath) {
|
|
216
|
+
const moduleJsonPathExists = await FSUtil.fileExists(moduleJsonPath);
|
|
217
|
+
if (!moduleJsonPathExists) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
const moduleJsonContent = await fsPromise.readFile(moduleJsonPath, 'utf8');
|
|
221
|
+
const moduleJson = JSON.parse(moduleJsonContent);
|
|
222
|
+
return moduleJson.config;
|
|
223
|
+
}
|
|
224
|
+
static async #loadYaml(moduleYamlPath) {
|
|
225
|
+
const moduleYamlPathExists = await FSUtil.fileExists(moduleYamlPath);
|
|
226
|
+
if (!moduleYamlPathExists) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
const moduleYamlContent = await fsPromise.readFile(moduleYamlPath, 'utf8');
|
|
230
|
+
return yamlLoad(moduleYamlContent);
|
|
231
|
+
}
|
|
232
|
+
static loadModuleConfigSync(moduleDir, baseDir, env) {
|
|
233
|
+
const modulePath = ModuleConfigUtil.resolveModuleDir(moduleDir, baseDir);
|
|
234
|
+
let configNames;
|
|
235
|
+
if (env) {
|
|
236
|
+
configNames = ['module', `module.${env}`];
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
// assert(ModuleConfigUtil.configNames, 'should setConfigNames before load module config');
|
|
240
|
+
configNames = ModuleConfigUtil.configNames || ['module'];
|
|
241
|
+
}
|
|
242
|
+
const target = {};
|
|
243
|
+
for (const configName of configNames) {
|
|
244
|
+
let config = ModuleConfigUtil.#loadOneSync(modulePath, configName);
|
|
245
|
+
// both module.yml and module.default.yml are ok for default config
|
|
246
|
+
if (configName === 'module.default' && !config) {
|
|
247
|
+
config = ModuleConfigUtil.#loadOneSync(modulePath, 'module');
|
|
248
|
+
}
|
|
249
|
+
if (config) {
|
|
250
|
+
extend(true, target, config);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return target;
|
|
254
|
+
}
|
|
255
|
+
static #loadOneSync(moduleDir, configName) {
|
|
256
|
+
const yamlConfigPath = path.join(moduleDir, `${configName}.yml`);
|
|
257
|
+
let config = ModuleConfigUtil.#loadYamlSync(yamlConfigPath);
|
|
258
|
+
if (!config) {
|
|
259
|
+
const jsonConfigPath = path.join(moduleDir, `${configName}.json`);
|
|
260
|
+
config = ModuleConfigUtil.#loadJsonSync(jsonConfigPath);
|
|
261
|
+
}
|
|
262
|
+
return config;
|
|
263
|
+
}
|
|
264
|
+
static #loadJsonSync(moduleJsonPath) {
|
|
265
|
+
const moduleJsonPathExists = fs.existsSync(moduleJsonPath);
|
|
266
|
+
if (!moduleJsonPathExists) {
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
const moduleJsonContent = fs.readFileSync(moduleJsonPath, 'utf8');
|
|
270
|
+
const moduleJson = JSON.parse(moduleJsonContent);
|
|
271
|
+
return moduleJson.config;
|
|
272
|
+
}
|
|
273
|
+
static #loadYamlSync(moduleYamlPath) {
|
|
274
|
+
const moduleYamlPathExists = fs.existsSync(moduleYamlPath);
|
|
275
|
+
if (!moduleYamlPathExists) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
const moduleYamlContent = fs.readFileSync(moduleYamlPath, 'utf8');
|
|
279
|
+
return yamlLoad(moduleYamlContent);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiTW9kdWxlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsSUFBSSxTQUFTLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDcEQsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQVMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFckMsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxNQUFNLENBQUMsdUJBQXVCLENBQUMsZUFBc0M7UUFDbkUsT0FBTyxDQUFDLENBQUUsZUFBK0MsQ0FBQyxJQUFJLENBQUM7SUFDakUsQ0FBQztJQUVELE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxlQUFzQztRQUNoRSxPQUFPLENBQUMsQ0FBRSxlQUE0QyxDQUFDLE9BQU8sQ0FBQztJQUNqRSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLDRCQUE0QixHQUFHO0lBQ25DLElBQUksRUFBRSxFQUFFO0NBQ1QsQ0FBQztBQUVGLE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsTUFBTSxDQUFDLFdBQVcsQ0FBdUI7SUFFbEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFpQztRQUM1RCxnQkFBZ0IsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQzdDLENBQUM7SUFFTSxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBZSxFQUFFLE9BQW9DO1FBQ3JGLDJEQUEyRDtRQUMzRCx5RUFBeUU7UUFD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
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export class ModuleConfigs {
|
|
2
|
+
inner;
|
|
3
|
+
constructor(inner) {
|
|
4
|
+
this.inner = inner;
|
|
5
|
+
}
|
|
6
|
+
get(moduleName) {
|
|
7
|
+
return this.inner[moduleName]?.config;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kdWxlQ29uZmlncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIk1vZHVsZUNvbmZpZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGFBQWE7SUFDSDtJQUFyQixZQUFxQixLQUF5QztRQUF6QyxVQUFLLEdBQUwsS0FBSyxDQUFvQztJQUM5RCxDQUFDO0lBRUQsR0FBRyxDQUFDLFVBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDeEMsQ0FBQztDQUNGIn0=
|
package/src/NameUtil.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export class NameUtil {
|
|
2
|
+
static getClassName(constructor) {
|
|
3
|
+
return constructor.name[0].toLowerCase() + constructor.name.substring(1);
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmFtZVV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJOYW1lVXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQUNuQixNQUFNLENBQUMsWUFBWSxDQUFDLFdBQXFCO1FBQ3ZDLE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export class ObjectUtils {
|
|
2
|
+
static getProperties(obj) {
|
|
3
|
+
const properties = [];
|
|
4
|
+
do {
|
|
5
|
+
for (const property of Object.getOwnPropertyNames(obj)) {
|
|
6
|
+
properties.push(property);
|
|
7
|
+
}
|
|
8
|
+
} while ((obj = Object.getPrototypeOf(obj)) && obj !== Object.prototype);
|
|
9
|
+
return properties;
|
|
10
|
+
}
|
|
11
|
+
static getFunctionArgNameList(func) {
|
|
12
|
+
if (func.length === 0) {
|
|
13
|
+
return [];
|
|
14
|
+
}
|
|
15
|
+
let sourcecode = func.toString();
|
|
16
|
+
sourcecode = sourcecode
|
|
17
|
+
// Remove /* ... */
|
|
18
|
+
.replace(/\/\*[\s\S]*?\*\//g, '')
|
|
19
|
+
// Remove //
|
|
20
|
+
.replace(/\/\/(.)*/g, '')
|
|
21
|
+
// Remove { ... }
|
|
22
|
+
.replace(/{[\s\S]*}/, '')
|
|
23
|
+
// Remove =>
|
|
24
|
+
.replace(/=>/g, '')
|
|
25
|
+
.trim();
|
|
26
|
+
let argsString = sourcecode.substring(sourcecode.indexOf('(') + 1, sourcecode.length - 1);
|
|
27
|
+
// Remove =(...,...)
|
|
28
|
+
argsString = argsString.replace(/=\([\s\S]*\)/g, '');
|
|
29
|
+
const args = argsString.split(',');
|
|
30
|
+
const argNames = args.map(arg => {
|
|
31
|
+
// Remove default value
|
|
32
|
+
return arg.replace(/=[\s\S]*/g, '').trim();
|
|
33
|
+
}).filter(arg => arg.length);
|
|
34
|
+
return argNames;
|
|
35
|
+
}
|
|
36
|
+
static getConstructorArgNameList(clazz) {
|
|
37
|
+
if (clazz.length === 0) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
const classString = clazz.toString();
|
|
41
|
+
const constructorMatch = classString.match(/constructor\s*\(([^)]+)\)/);
|
|
42
|
+
if (!constructorMatch) {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
const params = constructorMatch[1].split(',').map(param => param.trim());
|
|
46
|
+
return params.map(param => param.match(/(\w+)\s*(?=\s*(?:=|\/\/|\s*$))/))
|
|
47
|
+
.filter(Boolean)
|
|
48
|
+
.map(match => match[0].trim());
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2JqZWN0VXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJPYmplY3RVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sV0FBVztJQUN0QixNQUFNLENBQUMsYUFBYSxDQUFDLEdBQVc7UUFDOUIsTUFBTSxVQUFVLEdBQWEsRUFBRSxDQUFDO1FBQ2hDLEdBQUcsQ0FBQztZQUNGLEtBQUssTUFBTSxRQUFRLElBQUksTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZELFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDekUsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxJQUFjO1FBQzFDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsVUFBVSxHQUFHLFVBQVU7WUFDckIsbUJBQW1CO2FBQ2xCLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUM7WUFDakMsWUFBWTthQUNYLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLGlCQUFpQjthQUNoQixPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN6QixZQUFZO2FBQ1gsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7YUFDbEIsSUFBSSxFQUFFLENBQUM7UUFDVixJQUFJLFVBQVUsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUYsb0JBQW9CO1FBQ3BCLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRCxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDOUIsdUJBQXVCO1lBQ3ZCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLENBQUMseUJBQXlCLENBQUMsS0FBd0I7UUFDdkQsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyQyxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN0QixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekUsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO2FBQ3RFLE1BQU0sQ0FBQyxPQUFPLENBQUM7YUFDZixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0NBQ0YifQ==
|