@nestia/sdk 0.1.0
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/assets/bundle/HttpError.ts +1 -0
- package/assets/bundle/IConnection.ts +1 -0
- package/assets/bundle/Primitive.ts +1 -0
- package/assets/config/nestia.config.ts +70 -0
- package/lib/INestiaConfig.d.ts +110 -0
- package/lib/INestiaConfig.js +3 -0
- package/lib/INestiaConfig.js.map +1 -0
- package/lib/NestiaSdkApplication.d.ts +11 -0
- package/lib/NestiaSdkApplication.js +156 -0
- package/lib/NestiaSdkApplication.js.map +1 -0
- package/lib/analyses/ControllerAnalyzer.d.ts +6 -0
- package/lib/analyses/ControllerAnalyzer.js +106 -0
- package/lib/analyses/ControllerAnalyzer.js.map +1 -0
- package/lib/analyses/GenericAnalyzer.d.ts +5 -0
- package/lib/analyses/GenericAnalyzer.js +41 -0
- package/lib/analyses/GenericAnalyzer.js.map +1 -0
- package/lib/analyses/ImportAnalyzer.d.ts +13 -0
- package/lib/analyses/ImportAnalyzer.js +86 -0
- package/lib/analyses/ImportAnalyzer.js.map +1 -0
- package/lib/analyses/PathAnalyzer.d.ts +5 -0
- package/lib/analyses/PathAnalyzer.js +51 -0
- package/lib/analyses/PathAnalyzer.js.map +1 -0
- package/lib/analyses/ReflectAnalyzer.d.ts +4 -0
- package/lib/analyses/ReflectAnalyzer.js +231 -0
- package/lib/analyses/ReflectAnalyzer.js.map +1 -0
- package/lib/analyses/SourceFinder.d.ts +4 -0
- package/lib/analyses/SourceFinder.js +71 -0
- package/lib/analyses/SourceFinder.js.map +1 -0
- package/lib/executable/internal/CommandParser.d.ts +3 -0
- package/lib/executable/internal/CommandParser.js +21 -0
- package/lib/executable/internal/CommandParser.js.map +1 -0
- package/lib/executable/internal/NestiaConfigCompilerOptions.d.ts +11 -0
- package/lib/executable/internal/NestiaConfigCompilerOptions.js +18 -0
- package/lib/executable/internal/NestiaConfigCompilerOptions.js.map +1 -0
- package/lib/executable/internal/NestiaSdkCommand.d.ts +4 -0
- package/lib/executable/internal/NestiaSdkCommand.js +128 -0
- package/lib/executable/internal/NestiaSdkCommand.js.map +1 -0
- package/lib/executable/internal/NestiaSdkConfig.d.ts +4 -0
- package/lib/executable/internal/NestiaSdkConfig.js +539 -0
- package/lib/executable/internal/NestiaSdkConfig.js.map +1 -0
- package/lib/executable/internal/nestia.config.getter.d.ts +1 -0
- package/lib/executable/internal/nestia.config.getter.js +24 -0
- package/lib/executable/internal/nestia.config.getter.js.map +1 -0
- package/lib/executable/sdk.d.ts +2 -0
- package/lib/executable/sdk.js +86 -0
- package/lib/executable/sdk.js.map +1 -0
- package/lib/generates/FileGenerator.d.ts +5 -0
- package/lib/generates/FileGenerator.js +138 -0
- package/lib/generates/FileGenerator.js.map +1 -0
- package/lib/generates/FunctionGenerator.d.ts +5 -0
- package/lib/generates/FunctionGenerator.js +204 -0
- package/lib/generates/FunctionGenerator.js.map +1 -0
- package/lib/generates/SdkGenerator.d.ts +7 -0
- package/lib/generates/SdkGenerator.js +45 -0
- package/lib/generates/SdkGenerator.js.map +1 -0
- package/lib/generates/SwaggerGenerator.d.ts +6 -0
- package/lib/generates/SwaggerGenerator.js +244 -0
- package/lib/generates/SwaggerGenerator.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +28 -0
- package/lib/index.js.map +1 -0
- package/lib/module.d.ts +2 -0
- package/lib/module.js +19 -0
- package/lib/module.js.map +1 -0
- package/lib/structures/IController.d.ts +23 -0
- package/lib/structures/IController.js +3 -0
- package/lib/structures/IController.js.map +1 -0
- package/lib/structures/IRoute.d.ts +24 -0
- package/lib/structures/IRoute.js +3 -0
- package/lib/structures/IRoute.js.map +1 -0
- package/lib/structures/ISwagger.d.ts +48 -0
- package/lib/structures/ISwagger.js +3 -0
- package/lib/structures/ISwagger.js.map +1 -0
- package/lib/structures/ITypeTuple.d.ts +5 -0
- package/lib/structures/ITypeTuple.js +3 -0
- package/lib/structures/ITypeTuple.js.map +1 -0
- package/lib/structures/MethodType.d.ts +4 -0
- package/lib/structures/MethodType.js +14 -0
- package/lib/structures/MethodType.js.map +1 -0
- package/lib/structures/ParamCategory.d.ts +1 -0
- package/lib/structures/ParamCategory.js +3 -0
- package/lib/structures/ParamCategory.js.map +1 -0
- package/lib/structures/TypeEntry.d.ts +9 -0
- package/lib/structures/TypeEntry.js +21 -0
- package/lib/structures/TypeEntry.js.map +1 -0
- package/lib/test/TestBuilder.d.ts +4 -0
- package/lib/test/TestBuilder.js +64 -0
- package/lib/test/TestBuilder.js.map +1 -0
- package/lib/test/index.d.ts +1 -0
- package/lib/test/index.js +61 -0
- package/lib/test/index.js.map +1 -0
- package/lib/test/test.builder.executor.d.ts +1 -0
- package/lib/test/test.builder.executor.js +24 -0
- package/lib/test/test.builder.executor.js.map +1 -0
- package/lib/utils/ArrayUtil.d.ts +5 -0
- package/lib/utils/ArrayUtil.js +39 -0
- package/lib/utils/ArrayUtil.js.map +1 -0
- package/lib/utils/ImportDictionary.d.ts +6 -0
- package/lib/utils/ImportDictionary.js +50 -0
- package/lib/utils/ImportDictionary.js.map +1 -0
- package/lib/utils/MapUtil.d.ts +3 -0
- package/lib/utils/MapUtil.js +16 -0
- package/lib/utils/MapUtil.js.map +1 -0
- package/lib/utils/StripEnums.d.ts +3 -0
- package/lib/utils/StripEnums.js +3 -0
- package/lib/utils/StripEnums.js.map +1 -0
- package/package.json +74 -0
- package/src/INestiaConfig.ts +120 -0
- package/src/NestiaSdkApplication.ts +183 -0
- package/src/analyses/ControllerAnalyzer.ts +203 -0
- package/src/analyses/GenericAnalyzer.ts +53 -0
- package/src/analyses/ImportAnalyzer.ts +143 -0
- package/src/analyses/PathAnalyzer.ts +58 -0
- package/src/analyses/ReflectAnalyzer.ts +279 -0
- package/src/analyses/SourceFinder.ts +59 -0
- package/src/executable/internal/CommandParser.ts +15 -0
- package/src/executable/internal/NestiaConfigCompilerOptions.ts +18 -0
- package/src/executable/internal/NestiaSdkCommand.ts +174 -0
- package/src/executable/internal/NestiaSdkConfig.ts +35 -0
- package/src/executable/internal/nestia.config.getter.ts +12 -0
- package/src/executable/sdk.ts +51 -0
- package/src/generates/FileGenerator.ts +156 -0
- package/src/generates/FunctionGenerator.ts +287 -0
- package/src/generates/SdkGenerator.ts +50 -0
- package/src/generates/SwaggerGenerator.ts +393 -0
- package/src/index.ts +3 -0
- package/src/module.ts +2 -0
- package/src/structures/IController.ts +27 -0
- package/src/structures/IRoute.ts +29 -0
- package/src/structures/ISwagger.ts +55 -0
- package/src/structures/ITypeTuple.ts +6 -0
- package/src/structures/MethodType.ts +11 -0
- package/src/structures/ParamCategory.ts +1 -0
- package/src/structures/TypeEntry.ts +22 -0
- package/src/utils/ArrayUtil.ts +26 -0
- package/src/utils/ImportDictionary.ts +56 -0
- package/src/utils/MapUtil.ts +14 -0
- package/src/utils/StripEnums.ts +10 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImportAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ImportAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PathAnalyzer = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const path_to_regexp_1 = require("path-to-regexp");
|
|
9
|
+
var PathAnalyzer;
|
|
10
|
+
(function (PathAnalyzer) {
|
|
11
|
+
PathAnalyzer.join = (...args) => "/" +
|
|
12
|
+
_Trim(path_1.default
|
|
13
|
+
.join(...args)
|
|
14
|
+
.split("\\")
|
|
15
|
+
.join("/"));
|
|
16
|
+
PathAnalyzer.espace = (str, method) => "/" +
|
|
17
|
+
_Parse(str, method)
|
|
18
|
+
.map((arg) => (arg.type === "param" ? `:${arg.value}` : arg.value))
|
|
19
|
+
.join("/");
|
|
20
|
+
PathAnalyzer.parameters = (str, method) => _Parse(str, method)
|
|
21
|
+
.filter((arg) => arg.type === "param")
|
|
22
|
+
.map((arg) => arg.value);
|
|
23
|
+
function _Parse(str, method) {
|
|
24
|
+
const tokens = (0, path_to_regexp_1.parse)(path_1.default.join(str).split("\\").join("/"));
|
|
25
|
+
const output = [];
|
|
26
|
+
for (const key of tokens) {
|
|
27
|
+
if (typeof key === "string")
|
|
28
|
+
output.push({
|
|
29
|
+
type: "path",
|
|
30
|
+
value: _Trim(key),
|
|
31
|
+
});
|
|
32
|
+
else if (typeof key.name === "number" || _Trim(key.name) === "")
|
|
33
|
+
throw new Error(`Error on ${method}: ${ERROR_MESSAGE}.`);
|
|
34
|
+
else
|
|
35
|
+
output.push({
|
|
36
|
+
type: "param",
|
|
37
|
+
value: _Trim(key.name),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return output;
|
|
41
|
+
}
|
|
42
|
+
function _Trim(str) {
|
|
43
|
+
if (str[0] === "/")
|
|
44
|
+
str = str.substring(1);
|
|
45
|
+
if (str[str.length - 1] === "/")
|
|
46
|
+
str = str.substring(0, str.length - 1);
|
|
47
|
+
return str;
|
|
48
|
+
}
|
|
49
|
+
})(PathAnalyzer = exports.PathAnalyzer || (exports.PathAnalyzer = {}));
|
|
50
|
+
const ERROR_MESSAGE = "nestia supports only string typed parameter on path";
|
|
51
|
+
//# sourceMappingURL=PathAnalyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PathAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/PathAnalyzer.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,mDAA8C;AAE9C,IAAiB,YAAY,CAoD5B;AApDD,WAAiB,YAAY;IACZ,iBAAI,GAAG,CAAC,GAAG,IAAc,EAAE,EAAE,CACtC,GAAG;QACH,KAAK,CACD,cAAI;aACC,IAAI,CAAC,GAAG,IAAI,CAAC;aACb,KAAK,CAAC,IAAI,CAAC;aACX,IAAI,CAAC,GAAG,CAAC,CACjB,CAAC;IAEO,mBAAM,GAAG,CAAC,GAAW,EAAE,MAAoB,EAAE,EAAE,CACxD,GAAG;QACH,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC;aACd,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aAClE,IAAI,CAAC,GAAG,CAAC,CAAC;IAEN,uBAAU,GAAG,CAAC,GAAW,EAAE,MAAoB,EAAE,EAAE,CAC5D,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC;SACd,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;SACrC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEjC,SAAS,MAAM,CAAC,GAAW,EAAE,MAAoB;QAC7C,MAAM,MAAM,GAAY,IAAA,sBAAK,EAAC,cAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACpE,MAAM,MAAM,GAAgB,EAAE,CAAC;QAE/B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACtB,IAAI,OAAO,GAAG,KAAK,QAAQ;gBACvB,MAAM,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;iBACpB,CAAC,CAAC;iBACF,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE;gBAC3D,MAAM,IAAI,KAAK,CAAC,YAAY,MAAM,KAAK,aAAa,GAAG,CAAC,CAAC;;gBAEzD,MAAM,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;iBACzB,CAAC,CAAC;SACV;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,SAAS,KAAK,CAAC,GAAW;QACtB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;YAAE,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACxE,OAAO,GAAG,CAAC;IACf,CAAC;AAML,CAAC,EApDgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAoD5B;AAED,MAAM,aAAa,GAAG,qDAAqD,CAAC"}
|
|
@@ -0,0 +1,231 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.ReflectAnalyzer = void 0;
|
|
36
|
+
const module_1 = require("tstl/ranges/module");
|
|
37
|
+
const ArrayUtil_1 = require("../utils/ArrayUtil");
|
|
38
|
+
const PathAnalyzer_1 = require("./PathAnalyzer");
|
|
39
|
+
var ReflectAnalyzer;
|
|
40
|
+
(function (ReflectAnalyzer) {
|
|
41
|
+
function analyze(unique, file) {
|
|
42
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
43
|
+
var _a;
|
|
44
|
+
const module = yield (_a = file, Promise.resolve().then(() => __importStar(require(_a))));
|
|
45
|
+
const ret = [];
|
|
46
|
+
for (const tuple of Object.entries(module)) {
|
|
47
|
+
if (unique.has(tuple[1]))
|
|
48
|
+
continue;
|
|
49
|
+
else
|
|
50
|
+
unique.add(tuple[1]);
|
|
51
|
+
const controller = _Analyze_controller(file, ...tuple);
|
|
52
|
+
if (controller !== null)
|
|
53
|
+
ret.push(controller);
|
|
54
|
+
}
|
|
55
|
+
return ret;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
ReflectAnalyzer.analyze = analyze;
|
|
59
|
+
/* ---------------------------------------------------------
|
|
60
|
+
CONTROLLER
|
|
61
|
+
--------------------------------------------------------- */
|
|
62
|
+
function _Analyze_controller(file, name, creator) {
|
|
63
|
+
//----
|
|
64
|
+
// VALIDATIONS
|
|
65
|
+
//----
|
|
66
|
+
// MUST BE TYPE OF A CREATOR WHO HAS THE CONSTRUCTOR
|
|
67
|
+
if (!(creator instanceof Function &&
|
|
68
|
+
creator.constructor instanceof Function))
|
|
69
|
+
return null;
|
|
70
|
+
// MUST HAVE THOSE MATADATA
|
|
71
|
+
else if (ArrayUtil_1.ArrayUtil.has(Reflect.getMetadataKeys(creator), "path", "host", "scope:options") === false)
|
|
72
|
+
return null;
|
|
73
|
+
//----
|
|
74
|
+
// CONSTRUCTION
|
|
75
|
+
//----
|
|
76
|
+
// BASIC INFO
|
|
77
|
+
const paths = _Get_paths(Reflect.getMetadata("path", creator));
|
|
78
|
+
const meta = {
|
|
79
|
+
file,
|
|
80
|
+
name,
|
|
81
|
+
paths,
|
|
82
|
+
functions: [],
|
|
83
|
+
};
|
|
84
|
+
// PARSE CHILDREN DATA
|
|
85
|
+
for (const tuple of _Get_prototype_entries(creator)) {
|
|
86
|
+
const child = _Analyze_function(creator.prototype, meta, ...tuple);
|
|
87
|
+
if (child !== null)
|
|
88
|
+
meta.functions.push(child);
|
|
89
|
+
}
|
|
90
|
+
// RETURNS
|
|
91
|
+
return meta;
|
|
92
|
+
}
|
|
93
|
+
function _Get_prototype_entries(creator) {
|
|
94
|
+
const keyList = Object.getOwnPropertyNames(creator.prototype);
|
|
95
|
+
const entries = keyList.map((key) => [
|
|
96
|
+
key,
|
|
97
|
+
creator.prototype[key],
|
|
98
|
+
]);
|
|
99
|
+
const parent = Object.getPrototypeOf(creator);
|
|
100
|
+
if (parent.prototype !== undefined)
|
|
101
|
+
entries.push(..._Get_prototype_entries(parent));
|
|
102
|
+
return entries;
|
|
103
|
+
}
|
|
104
|
+
function _Get_paths(value) {
|
|
105
|
+
if (typeof value === "string")
|
|
106
|
+
return [value];
|
|
107
|
+
else if (value.length === 0)
|
|
108
|
+
return [""];
|
|
109
|
+
else
|
|
110
|
+
return value;
|
|
111
|
+
}
|
|
112
|
+
/* ---------------------------------------------------------
|
|
113
|
+
FUNCTION
|
|
114
|
+
--------------------------------------------------------- */
|
|
115
|
+
function _Analyze_function(classProto, controller, name, proto) {
|
|
116
|
+
var _a, _b;
|
|
117
|
+
//----
|
|
118
|
+
// VALIDATIONS
|
|
119
|
+
//----
|
|
120
|
+
// MUST BE TYPE OF A FUNCTION
|
|
121
|
+
if (!(proto instanceof Function))
|
|
122
|
+
return null;
|
|
123
|
+
// MUST HAVE THOSE METADATE
|
|
124
|
+
else if (ArrayUtil_1.ArrayUtil.has(Reflect.getMetadataKeys(proto), "path", "method") ===
|
|
125
|
+
false)
|
|
126
|
+
return null;
|
|
127
|
+
//----
|
|
128
|
+
// CONSTRUCTION
|
|
129
|
+
//----
|
|
130
|
+
// BASIC INFO
|
|
131
|
+
const meta = {
|
|
132
|
+
name,
|
|
133
|
+
method: METHODS[Reflect.getMetadata("method", proto)],
|
|
134
|
+
paths: _Get_paths(Reflect.getMetadata("path", proto)),
|
|
135
|
+
parameters: [],
|
|
136
|
+
encrypted: Reflect.hasMetadata("__interceptors__", proto) &&
|
|
137
|
+
((_b = (_a = Reflect.getMetadata("__interceptors__", proto)[0]) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.name) === "EncryptedRouteInterceptor",
|
|
138
|
+
};
|
|
139
|
+
// PARSE CHILDREN DATA
|
|
140
|
+
const nestParameters = Reflect.getMetadata("__routeArguments__", classProto.constructor, name);
|
|
141
|
+
if (nestParameters === undefined)
|
|
142
|
+
meta.parameters = [];
|
|
143
|
+
else {
|
|
144
|
+
for (const tuple of Object.entries(nestParameters)) {
|
|
145
|
+
const child = _Analyze_parameter(...tuple);
|
|
146
|
+
if (child !== null)
|
|
147
|
+
meta.parameters.push(child);
|
|
148
|
+
}
|
|
149
|
+
meta.parameters = meta.parameters.sort((x, y) => x.index - y.index);
|
|
150
|
+
}
|
|
151
|
+
// VALIDATE PATH ARGUMENTS
|
|
152
|
+
for (const controllerLocation of controller.paths)
|
|
153
|
+
for (const metaLocation of meta.paths) {
|
|
154
|
+
// NORMALIZE LOCATION
|
|
155
|
+
const location = PathAnalyzer_1.PathAnalyzer.join(controllerLocation, metaLocation);
|
|
156
|
+
// LIST UP PARAMETERS
|
|
157
|
+
const binded = PathAnalyzer_1.PathAnalyzer.parameters(location, () => `${controller.name}.${name}()`).sort();
|
|
158
|
+
const parameters = meta.parameters
|
|
159
|
+
.filter((param) => param.category === "param")
|
|
160
|
+
.map((param) => param.field)
|
|
161
|
+
.sort();
|
|
162
|
+
// DO VALIDATE
|
|
163
|
+
if ((0, module_1.equal)(binded, parameters) === false)
|
|
164
|
+
throw new Error(`Error on ${controller.name}.${name}(): binded arguments in the "path" between function's decorator and parameters' decorators are different (function: [${binded.join(", ")}], parameters: [${parameters.join(", ")}])`);
|
|
165
|
+
}
|
|
166
|
+
// RETURNS
|
|
167
|
+
return meta;
|
|
168
|
+
}
|
|
169
|
+
const METHODS = ["GET", "POST", "PUT", "DELETE", "PATCH"];
|
|
170
|
+
/* ---------------------------------------------------------
|
|
171
|
+
PARAMETER
|
|
172
|
+
--------------------------------------------------------- */
|
|
173
|
+
function _Analyze_parameter(key, param) {
|
|
174
|
+
const symbol = key.split(":")[0];
|
|
175
|
+
if (symbol.indexOf("__custom") !== -1)
|
|
176
|
+
return _Analyze_custom_parameter(param);
|
|
177
|
+
const typeIndex = Number(symbol[0]);
|
|
178
|
+
if (isNaN(typeIndex) === true)
|
|
179
|
+
return null;
|
|
180
|
+
const type = NEST_PARAMETER_TYPES[typeIndex];
|
|
181
|
+
if (type === undefined)
|
|
182
|
+
return null;
|
|
183
|
+
return {
|
|
184
|
+
name: key,
|
|
185
|
+
category: type,
|
|
186
|
+
index: param.index,
|
|
187
|
+
field: param.data,
|
|
188
|
+
encrypted: false,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
function _Analyze_custom_parameter(param) {
|
|
192
|
+
if (param.factory === undefined)
|
|
193
|
+
return null;
|
|
194
|
+
else if (param.factory.name === "TypedBody" ||
|
|
195
|
+
param.factory.name === "EncryptedBody" ||
|
|
196
|
+
param.factory.name === "PlainBody") {
|
|
197
|
+
return {
|
|
198
|
+
category: "body",
|
|
199
|
+
index: param.index,
|
|
200
|
+
name: param.name,
|
|
201
|
+
field: param.data,
|
|
202
|
+
encrypted: param.factory.name === "EncryptedBody",
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
else if (param.factory.name === "TypedParam")
|
|
206
|
+
return {
|
|
207
|
+
name: param.name,
|
|
208
|
+
category: "param",
|
|
209
|
+
index: param.index,
|
|
210
|
+
field: param.data,
|
|
211
|
+
encrypted: false,
|
|
212
|
+
};
|
|
213
|
+
else
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
const NEST_PARAMETER_TYPES = [
|
|
217
|
+
undefined,
|
|
218
|
+
undefined,
|
|
219
|
+
undefined,
|
|
220
|
+
"body",
|
|
221
|
+
"query",
|
|
222
|
+
"param",
|
|
223
|
+
undefined,
|
|
224
|
+
undefined,
|
|
225
|
+
undefined,
|
|
226
|
+
undefined,
|
|
227
|
+
undefined,
|
|
228
|
+
undefined,
|
|
229
|
+
];
|
|
230
|
+
})(ReflectAnalyzer = exports.ReflectAnalyzer || (exports.ReflectAnalyzer = {}));
|
|
231
|
+
//# sourceMappingURL=ReflectAnalyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReflectAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ReflectAnalyzer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA2C;AAI3C,kDAA+C;AAC/C,iDAA8C;AAM9C,IAAiB,eAAe,CA2Q/B;AA3QD,WAAiB,eAAe;IAC5B,SAAsB,OAAO,CACzB,MAAoB,EACpB,IAAY;;;YAEZ,MAAM,MAAM,GAAY,YAAa,IAAI,0DAAC,CAAC;YAC3C,MAAM,GAAG,GAAkB,EAAE,CAAC;YAE9B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACxC,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAAE,SAAS;;oBAC9B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE1B,MAAM,UAAU,GAAuB,mBAAmB,CACtD,IAAI,EACJ,GAAG,KAAK,CACX,CAAC;gBACF,IAAI,UAAU,KAAK,IAAI;oBAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACjD;YACD,OAAO,GAAG,CAAC;QACf,CAAC;KAAA;IAlBqB,uBAAO,UAkB5B,CAAA;IAED;;gEAE4D;IAC5D,SAAS,mBAAmB,CACxB,IAAY,EACZ,IAAY,EACZ,OAAY;QAEZ,MAAM;QACN,cAAc;QACd,MAAM;QACN,oDAAoD;QACpD,IACI,CAAC,CACG,OAAO,YAAY,QAAQ;YAC3B,OAAO,CAAC,WAAW,YAAY,QAAQ,CAC1C;YAED,OAAO,IAAI,CAAC;QAChB,2BAA2B;aACtB,IACD,qBAAS,CAAC,GAAG,CACT,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,EAChC,MAAM,EACN,MAAM,EACN,eAAe,CAClB,KAAK,KAAK;YAEX,OAAO,IAAI,CAAC;QAEhB,MAAM;QACN,eAAe;QACf,MAAM;QACN,aAAa;QACb,MAAM,KAAK,GAAa,UAAU,CAC9B,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CACvC,CAAC;QACF,MAAM,IAAI,GAAgB;YACtB,IAAI;YACJ,IAAI;YACJ,KAAK;YACL,SAAS,EAAE,EAAE;SAChB,CAAC;QAEF,sBAAsB;QACtB,KAAK,MAAM,KAAK,IAAI,sBAAsB,CAAC,OAAO,CAAC,EAAE;YACjD,MAAM,KAAK,GAAiC,iBAAiB,CACzD,OAAO,CAAC,SAAS,EACjB,IAAI,EACJ,GAAG,KAAK,CACX,CAAC;YACF,IAAI,KAAK,KAAK,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClD;QAED,UAAU;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,SAAS,sBAAsB,CAAC,OAAY;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9D,MAAM,OAAO,GAA6B,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;YAC3D,GAAG;YACH,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;SACzB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;YAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;QAEpD,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,SAAS,UAAU,CAAC,KAAwB;QACxC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,CAAC,KAAK,CAAC,CAAC;aACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,EAAE,CAAC,CAAC;;YACpC,OAAO,KAAK,CAAC;IACtB,CAAC;IAED;;gEAE4D;IAC5D,SAAS,iBAAiB,CACtB,UAAe,EACf,UAAuB,EACvB,IAAY,EACZ,KAAU;;QAEV,MAAM;QACN,cAAc;QACd,MAAM;QACN,6BAA6B;QAC7B,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9C,2BAA2B;aACtB,IACD,qBAAS,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC;YAC/D,KAAK;YAEL,OAAO,IAAI,CAAC;QAEhB,MAAM;QACN,eAAe;QACf,MAAM;QACN,aAAa;QACb,MAAM,IAAI,GAA0B;YAChC,IAAI;YACJ,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACrD,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACrD,UAAU,EAAE,EAAE;YACd,SAAS,EACL,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,KAAK,CAAC;gBAC9C,CAAA,MAAA,MAAA,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,0CAAE,WAAW,0CACxD,IAAI,MAAK,2BAA2B;SACjD,CAAC;QAEF,sBAAsB;QACtB,MAAM,cAAc,GAA+B,OAAO,CAAC,WAAW,CAClE,oBAAoB,EACpB,UAAU,CAAC,WAAW,EACtB,IAAI,CACP,CAAC;QACF,IAAI,cAAc,KAAK,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;aAClD;YACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;gBAChD,MAAM,KAAK,GAAkC,kBAAkB,CAC3D,GAAG,KAAK,CACX,CAAC;gBACF,IAAI,KAAK,KAAK,IAAI;oBAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACnD;YACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;SACvE;QAED,0BAA0B;QAC1B,KAAK,MAAM,kBAAkB,IAAI,UAAU,CAAC,KAAK;YAC7C,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,KAAK,EAAE;gBACnC,qBAAqB;gBACrB,MAAM,QAAQ,GAAW,2BAAY,CAAC,IAAI,CACtC,kBAAkB,EAClB,YAAY,CACf,CAAC;gBAEF,qBAAqB;gBACrB,MAAM,MAAM,GAAa,2BAAY,CAAC,UAAU,CAC5C,QAAQ,EACR,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,IAAI,IAAI,CACvC,CAAC,IAAI,EAAE,CAAC;gBAET,MAAM,UAAU,GAAa,IAAI,CAAC,UAAU;qBACvC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC;qBAC7C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAM,CAAC;qBAC5B,IAAI,EAAE,CAAC;gBAEZ,cAAc;gBACd,IAAI,IAAA,cAAK,EAAC,MAAM,EAAE,UAAU,CAAC,KAAK,KAAK;oBACnC,MAAM,IAAI,KAAK,CACX,YACI,UAAU,CAAC,IACf,IAAI,IAAI,wHAAwH,MAAM,CAAC,IAAI,CACvI,IAAI,CACP,mBAAmB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAChD,CAAC;aACT;QAEL,UAAU;QACV,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE1D;;gEAE4D;IAC5D,SAAS,kBAAkB,CACvB,GAAW,EACX,KAAiB;QAEjB,MAAM,MAAM,GAAW,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAE5C,MAAM,SAAS,GAAW,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAE3C,MAAM,IAAI,GAA8B,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAEpC,OAAO;YACH,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,SAAS,EAAE,KAAK;SACnB,CAAC;IACN,CAAC;IAED,SAAS,yBAAyB,CAC9B,KAAiB;QAEjB,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;aACxC,IACD,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;YAClC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe;YACtC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,EACpC;YACE,OAAO;gBACH,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe;aACpD,CAAC;SACL;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;YAC1C,OAAO;gBACH,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,SAAS,EAAE,KAAK;aACnB,CAAC;;YACD,OAAO,IAAI,CAAC;IACrB,CAAC;IAaD,MAAM,oBAAoB,GAAG;QACzB,SAAS;QACT,SAAS;QACT,SAAS;QACT,MAAM;QACN,OAAO;QACP,OAAO;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;QACT,SAAS;KACH,CAAC;AACf,CAAC,EA3QgB,eAAe,GAAf,uBAAe,KAAf,uBAAe,QA2Q/B"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.SourceFinder = void 0;
|
|
16
|
+
const fs_1 = __importDefault(require("fs"));
|
|
17
|
+
const glob_1 = __importDefault(require("glob"));
|
|
18
|
+
const path_1 = __importDefault(require("path"));
|
|
19
|
+
var SourceFinder;
|
|
20
|
+
(function (SourceFinder) {
|
|
21
|
+
function find(input) {
|
|
22
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const dict = new Set();
|
|
24
|
+
yield decode(input.include, (str) => dict.add(str));
|
|
25
|
+
if (input.exclude)
|
|
26
|
+
yield decode(input.exclude, (str) => dict.delete(str));
|
|
27
|
+
return [...dict];
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
SourceFinder.find = find;
|
|
31
|
+
function decode(input, closure) {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
for (const pattern of input) {
|
|
34
|
+
for (const location of yield _Glob(path_1.default.resolve(pattern))) {
|
|
35
|
+
const stats = yield fs_1.default.promises.stat(location);
|
|
36
|
+
if (stats.isDirectory() === true)
|
|
37
|
+
yield iterate(closure, location);
|
|
38
|
+
else if (stats.isFile() && _Is_ts_file(location))
|
|
39
|
+
closure(location);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
function iterate(closure, location) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const directory = yield fs_1.default.promises.readdir(location);
|
|
47
|
+
for (const file of directory) {
|
|
48
|
+
const next = path_1.default.resolve(`${location}/${file}`);
|
|
49
|
+
const stats = yield fs_1.default.promises.stat(next);
|
|
50
|
+
if (stats.isDirectory() === true)
|
|
51
|
+
yield iterate(closure, next);
|
|
52
|
+
else if (stats.isFile() && _Is_ts_file(file))
|
|
53
|
+
closure(next);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function _Glob(pattern) {
|
|
58
|
+
return new Promise((resolve, reject) => {
|
|
59
|
+
(0, glob_1.default)(pattern, (err, matches) => {
|
|
60
|
+
if (err)
|
|
61
|
+
reject(err);
|
|
62
|
+
else
|
|
63
|
+
resolve(matches.map((str) => path_1.default.resolve(str)));
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function _Is_ts_file(file) {
|
|
68
|
+
return file.substr(-3) === ".ts" && file.substr(-5) !== ".d.ts";
|
|
69
|
+
}
|
|
70
|
+
})(SourceFinder = exports.SourceFinder || (exports.SourceFinder = {}));
|
|
71
|
+
//# sourceMappingURL=SourceFinder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SourceFinder.js","sourceRoot":"","sources":["../../src/analyses/SourceFinder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,gDAAwB;AAIxB,IAAiB,YAAY,CAoD5B;AApDD,WAAiB,YAAY;IACzB,SAAsB,IAAI,CAAC,KAA2B;;YAClD,MAAM,IAAI,GAAgB,IAAI,GAAG,EAAE,CAAC;YAEpC,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACpD,IAAI,KAAK,CAAC,OAAO;gBACb,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAE3D,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QACrB,CAAC;KAAA;IARqB,iBAAI,OAQzB,CAAA;IAED,SAAe,MAAM,CACjB,KAAe,EACf,OAAmC;;YAEnC,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE;gBACzB,KAAK,MAAM,QAAQ,IAAI,MAAM,KAAK,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE;oBACvD,MAAM,KAAK,GAAa,MAAM,YAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACzD,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI;wBAC5B,MAAM,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;yBAChC,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC;wBAC5C,OAAO,CAAC,QAAQ,CAAC,CAAC;iBACzB;aACJ;QACL,CAAC;KAAA;IAED,SAAe,OAAO,CAClB,OAAmC,EACnC,QAAgB;;YAEhB,MAAM,SAAS,GAAa,MAAM,YAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAChE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE;gBAC1B,MAAM,IAAI,GAAW,cAAI,CAAC,OAAO,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,CAAC;gBACzD,MAAM,KAAK,GAAa,MAAM,YAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAErD,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI;oBAAE,MAAM,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;qBAC1D,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC;oBAAE,OAAO,CAAC,IAAI,CAAC,CAAC;aAC/D;QACL,CAAC;KAAA;IAED,SAAS,KAAK,CAAC,OAAe;QAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAA,cAAI,EAAC,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;gBAC3B,IAAI,GAAG;oBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;oBAChB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1D,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,WAAW,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;IACpE,CAAC;AACL,CAAC,EApDgB,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAoD5B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommandParser = void 0;
|
|
4
|
+
var CommandParser;
|
|
5
|
+
(function (CommandParser) {
|
|
6
|
+
function parse(argList) {
|
|
7
|
+
const output = {};
|
|
8
|
+
argList.forEach((arg, i) => {
|
|
9
|
+
if (arg.startsWith("--") === false)
|
|
10
|
+
return;
|
|
11
|
+
const key = arg.slice(2);
|
|
12
|
+
const value = argList[i + 1];
|
|
13
|
+
if (value === undefined || value.startsWith("--"))
|
|
14
|
+
return;
|
|
15
|
+
output[key] = value;
|
|
16
|
+
});
|
|
17
|
+
return output;
|
|
18
|
+
}
|
|
19
|
+
CommandParser.parse = parse;
|
|
20
|
+
})(CommandParser = exports.CommandParser || (exports.CommandParser = {}));
|
|
21
|
+
//# sourceMappingURL=CommandParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandParser.js","sourceRoot":"","sources":["../../../src/executable/internal/CommandParser.ts"],"names":[],"mappings":";;;AAAA,IAAiB,aAAa,CAc7B;AAdD,WAAiB,aAAa;IAC1B,SAAgB,KAAK,CAAC,OAAiB;QACnC,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YACvB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,KAAK;gBAAE,OAAO;YAE3C,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,KAAK,GAAuB,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACjD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO;YAE1D,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IAZe,mBAAK,QAYpB,CAAA;AACL,CAAC,EAdgB,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAc7B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare namespace NestiaConfigCompilerOptions {
|
|
2
|
+
const DEFAULT_OPTIONS: {
|
|
3
|
+
target: string;
|
|
4
|
+
module: string;
|
|
5
|
+
types: string[];
|
|
6
|
+
noEmit: boolean;
|
|
7
|
+
esModuleInterop: boolean;
|
|
8
|
+
experimentalDecorators: boolean;
|
|
9
|
+
emitDecoratorMetadata: boolean;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NestiaConfigCompilerOptions = void 0;
|
|
4
|
+
var NestiaConfigCompilerOptions;
|
|
5
|
+
(function (NestiaConfigCompilerOptions) {
|
|
6
|
+
/* -----------------------------------------------------------
|
|
7
|
+
DEFAULT VALUES
|
|
8
|
+
----------------------------------------------------------- */
|
|
9
|
+
const ESSENTIAL_OPTIONS = {
|
|
10
|
+
types: ["node", "reflect-metadata"],
|
|
11
|
+
noEmit: true,
|
|
12
|
+
esModuleInterop: true,
|
|
13
|
+
experimentalDecorators: true,
|
|
14
|
+
emitDecoratorMetadata: true,
|
|
15
|
+
};
|
|
16
|
+
NestiaConfigCompilerOptions.DEFAULT_OPTIONS = Object.assign(Object.assign({}, ESSENTIAL_OPTIONS), { target: "es5", module: "commonjs" });
|
|
17
|
+
})(NestiaConfigCompilerOptions = exports.NestiaConfigCompilerOptions || (exports.NestiaConfigCompilerOptions = {}));
|
|
18
|
+
//# sourceMappingURL=NestiaConfigCompilerOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NestiaConfigCompilerOptions.js","sourceRoot":"","sources":["../../../src/executable/internal/NestiaConfigCompilerOptions.ts"],"names":[],"mappings":";;;AAAA,IAAiB,2BAA2B,CAiB3C;AAjBD,WAAiB,2BAA2B;IACxC;;kEAE8D;IAC9D,MAAM,iBAAiB,GAAG;QACtB,KAAK,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC;QACnC,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,IAAI;QACrB,sBAAsB,EAAE,IAAI;QAC5B,qBAAqB,EAAE,IAAI;KAC9B,CAAC;IAEW,2CAAe,mCACrB,iBAAiB,KACpB,MAAM,EAAE,KAAK,EACb,MAAM,EAAE,UAAU,GACrB,CAAC;AACN,CAAC,EAjBgB,2BAA2B,GAA3B,mCAA2B,KAA3B,mCAA2B,QAiB3C"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
12
|
+
var t = {};
|
|
13
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
14
|
+
t[p] = s[p];
|
|
15
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
16
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
17
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18
|
+
t[p[i]] = s[p[i]];
|
|
19
|
+
}
|
|
20
|
+
return t;
|
|
21
|
+
};
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.NestiaSdkCommand = void 0;
|
|
27
|
+
const cli_1 = __importDefault(require("cli"));
|
|
28
|
+
const path_1 = __importDefault(require("path"));
|
|
29
|
+
const WorkerConnector_1 = require("tgrid/protocols/workers/WorkerConnector");
|
|
30
|
+
const tsconfck_1 = require("tsconfck");
|
|
31
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
32
|
+
const NestiaSdkApplication_1 = require("../../NestiaSdkApplication");
|
|
33
|
+
var NestiaSdkCommand;
|
|
34
|
+
(function (NestiaSdkCommand) {
|
|
35
|
+
function sdk(elements, pure = true) {
|
|
36
|
+
return main((app) => app.sdk(), {
|
|
37
|
+
assign: (config, output) => (config.output = output),
|
|
38
|
+
validate: (config) => !!config.output,
|
|
39
|
+
location: (config) => config.output,
|
|
40
|
+
}, elements, pure);
|
|
41
|
+
}
|
|
42
|
+
NestiaSdkCommand.sdk = sdk;
|
|
43
|
+
function swagger(elements, pure = true) {
|
|
44
|
+
return main((app) => app.swagger(), {
|
|
45
|
+
assign: (config, output) => {
|
|
46
|
+
if (!config.swagger)
|
|
47
|
+
config.swagger = { output };
|
|
48
|
+
else
|
|
49
|
+
config.swagger.output = output;
|
|
50
|
+
},
|
|
51
|
+
validate: (config) => !!config.swagger && !!config.swagger.output,
|
|
52
|
+
location: (config) => config.swagger.output,
|
|
53
|
+
}, elements, pure);
|
|
54
|
+
}
|
|
55
|
+
NestiaSdkCommand.swagger = swagger;
|
|
56
|
+
function main(task, output, elements, pure) {
|
|
57
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
58
|
+
if (pure === false)
|
|
59
|
+
cli_1.default.setArgv([
|
|
60
|
+
process.argv[0],
|
|
61
|
+
process.argv[1],
|
|
62
|
+
"nestia",
|
|
63
|
+
...elements,
|
|
64
|
+
]);
|
|
65
|
+
const command = cli_1.default.parse({
|
|
66
|
+
exclude: ["e", "Something to exclude", "string", null],
|
|
67
|
+
out: ["o", "Output path of the SDK files", "string", null],
|
|
68
|
+
});
|
|
69
|
+
const inputs = [];
|
|
70
|
+
for (const arg of elements) {
|
|
71
|
+
if (arg[0] === "-")
|
|
72
|
+
break;
|
|
73
|
+
inputs.push(arg);
|
|
74
|
+
}
|
|
75
|
+
yield generate(task, inputs, command, output);
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function generate(task, include, command, output) {
|
|
79
|
+
var _a;
|
|
80
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
// CONFIGURATION
|
|
82
|
+
const config = (_a = (yield get_nestia_config(output.validate))) !== null && _a !== void 0 ? _a : parse_cli(include, command, output);
|
|
83
|
+
const options = yield get_typescript_options();
|
|
84
|
+
config.compilerOptions = Object.assign(Object.assign({}, options), (config.compilerOptions || {}));
|
|
85
|
+
// CALL THE APP.GENERATE()
|
|
86
|
+
const app = new NestiaSdkApplication_1.NestiaSdkApplication(config);
|
|
87
|
+
yield task(app);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
function get_typescript_options() {
|
|
91
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
const configFileName = typescript_1.default.findConfigFile(process.cwd(), typescript_1.default.sys.fileExists, "tsconfig.json");
|
|
93
|
+
if (!configFileName)
|
|
94
|
+
return null;
|
|
95
|
+
const { tsconfig } = yield (0, tsconfck_1.parseNative)(configFileName);
|
|
96
|
+
const configFileText = JSON.stringify(tsconfig);
|
|
97
|
+
const { config } = typescript_1.default.parseConfigFileTextToJson(configFileName, configFileText);
|
|
98
|
+
const configParseResult = typescript_1.default.parseJsonConfigFileContent(config, typescript_1.default.sys, path_1.default.dirname(configFileName));
|
|
99
|
+
const _a = configParseResult.raw.compilerOptions, { moduleResolution } = _a, result = __rest(_a, ["moduleResolution"]);
|
|
100
|
+
return result;
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
function get_nestia_config(validate) {
|
|
104
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
105
|
+
const connector = new WorkerConnector_1.WorkerConnector(null, null, "process");
|
|
106
|
+
yield connector.connect(`${__dirname}/nestia.config.getter.js`);
|
|
107
|
+
const driver = yield connector.getDriver();
|
|
108
|
+
const config = yield driver.get();
|
|
109
|
+
yield connector.close();
|
|
110
|
+
if (config !== null && validate(config) === false)
|
|
111
|
+
throw new Error(`Error on NestiaCommand.main(): output path is not specified in the "nestia.config.ts".`);
|
|
112
|
+
return config;
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
function parse_cli(include, command, output) {
|
|
116
|
+
if (command.out === null)
|
|
117
|
+
throw new Error(`Error on NestiaCommand.main(): output directory is not specified. Add the "--out <output_directory>" option.`);
|
|
118
|
+
const config = {
|
|
119
|
+
input: {
|
|
120
|
+
include,
|
|
121
|
+
exclude: command.exclude ? [command.exclude] : undefined,
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
output.assign(config, command.out);
|
|
125
|
+
return config;
|
|
126
|
+
}
|
|
127
|
+
})(NestiaSdkCommand = exports.NestiaSdkCommand || (exports.NestiaSdkCommand = {}));
|
|
128
|
+
//# sourceMappingURL=NestiaSdkCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NestiaSdkCommand.js","sourceRoot":"","sources":["../../../src/executable/internal/NestiaSdkCommand.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAAsB;AACtB,gDAAwB;AACxB,6EAA0E;AAC1E,uCAAuC;AACvC,4DAA4B;AAG5B,qEAAkE;AAclE,IAAiB,gBAAgB,CAwJhC;AAxJD,WAAiB,gBAAgB;IAC7B,SAAgB,GAAG,CACf,QAAkB,EAClB,OAAgB,IAAI;QAEpB,OAAO,IAAI,CACP,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAClB;YACI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACpD,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;YACrC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAO;SACvC,EACD,QAAQ,EACR,IAAI,CACP,CAAC;IACN,CAAC;IAde,oBAAG,MAclB,CAAA;IAED,SAAgB,OAAO,CACnB,QAAkB,EAClB,OAAgB,IAAI;QAEpB,OAAO,IAAI,CACP,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,EACtB;YACI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;gBACvB,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,MAAM,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,CAAC;;oBAC5C,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;YACxC,CAAC;YACD,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CACjB,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;YAC/C,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAQ,CAAC,MAAO;SAChD,EACD,QAAQ,EACR,IAAI,CACP,CAAC;IACN,CAAC;IAlBe,wBAAO,UAkBtB,CAAA;IAED,SAAe,IAAI,CACf,IAAkD,EAClD,MAAe,EACf,QAAkB,EAClB,IAAa;;YAEb,IAAI,IAAI,KAAK,KAAK;gBACd,aAAG,CAAC,OAAO,CAAC;oBACR,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;oBACf,QAAQ;oBACR,GAAG,QAAQ;iBACd,CAAC,CAAC;YACP,MAAM,OAAO,GAAa,aAAG,CAAC,KAAK,CAAC;gBAChC,OAAO,EAAE,CAAC,GAAG,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,CAAC;gBACtD,GAAG,EAAE,CAAC,GAAG,EAAE,8BAA8B,EAAE,QAAQ,EAAE,IAAI,CAAC;aAC7D,CAAC,CAAC;YAEH,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;gBACxB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;oBAAE,MAAM;gBAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACpB;YACD,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAClD,CAAC;KAAA;IAED,SAAe,QAAQ,CACnB,IAAkD,EAClD,OAAiB,EACjB,OAAiB,EACjB,MAAe;;;YAEf,gBAAgB;YAChB,MAAM,MAAM,GACR,MAAA,CAAC,MAAM,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,mCAC1C,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAExC,MAAM,OAAO,GAAG,MAAM,sBAAsB,EAAE,CAAC;YAE/C,MAAM,CAAC,eAAe,mCACf,OAAO,GACP,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CACpC,CAAC;YAEF,0BAA0B;YAC1B,MAAM,GAAG,GAAyB,IAAI,2CAAoB,CAAC,MAAM,CAAC,CAAC;YACnE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;;KACnB;IAED,SAAe,sBAAsB;;YACjC,MAAM,cAAc,GAAG,oBAAE,CAAC,cAAc,CACpC,OAAO,CAAC,GAAG,EAAE,EACb,oBAAE,CAAC,GAAG,CAAC,UAAU,EACjB,eAAe,CAClB,CAAC;YAEF,IAAI,CAAC,cAAc;gBAAE,OAAO,IAAI,CAAC;YAEjC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,sBAAW,EAAC,cAAc,CAAC,CAAC;YAEvD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEhD,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAE,CAAC,yBAAyB,CAC3C,cAAc,EACd,cAAc,CACjB,CAAC;YAEF,MAAM,iBAAiB,GAAG,oBAAE,CAAC,0BAA0B,CACnD,MAAM,EACN,oBAAE,CAAC,GAAG,EACN,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAC/B,CAAC;YAEF,MAAM,KACF,iBAAiB,CAAC,GAAG,CAAC,eAAe,EADnC,EAAE,gBAAgB,OACiB,EADZ,MAAM,cAA7B,oBAA+B,CACI,CAAC;YAC1C,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IAED,SAAe,iBAAiB,CAC5B,QAA4C;;YAE5C,MAAM,SAAS,GAAG,IAAI,iCAAe,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAC7D,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,0BAA0B,CAAC,CAAC;YAEhE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,EAA0B,CAAC;YACnE,MAAM,MAAM,GAAyB,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;YACxD,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YAExB,IAAI,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK;gBAC7C,MAAM,IAAI,KAAK,CACX,wFAAwF,CAC3F,CAAC;YAEN,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;IAED,SAAS,SAAS,CACd,OAAiB,EACjB,OAAiB,EACjB,MAAe;QAEf,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI;YACpB,MAAM,IAAI,KAAK,CACX,8GAA8G,CACjH,CAAC;QAEN,MAAM,MAAM,GAAkB;YAC1B,KAAK,EAAE;gBACH,OAAO;gBACP,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;aAC3D;SACJ,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAClB,CAAC;AACL,CAAC,EAxJgB,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAwJhC"}
|