@nestia/sdk 1.6.3 → 1.6.4-dev.20230816
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/lib/analyses/ControllerAnalyzer.js +2 -4
- package/lib/analyses/ControllerAnalyzer.js.map +1 -1
- package/lib/analyses/ExceptionAnalyzer.d.ts +8 -0
- package/lib/analyses/ExceptionAnalyzer.js +53 -0
- package/lib/analyses/ExceptionAnalyzer.js.map +1 -0
- package/lib/analyses/ReflectAnalyzer.js +8 -3
- package/lib/analyses/ReflectAnalyzer.js.map +1 -1
- package/lib/generates/SwaggerGenerator.js +77 -55
- package/lib/generates/SwaggerGenerator.js.map +1 -1
- package/lib/structures/IController.d.ts +6 -0
- package/lib/structures/IRoute.d.ts +2 -0
- package/lib/structures/ISwaggerRoute.d.ts +2 -2
- package/package.json +5 -5
- package/src/analyses/ControllerAnalyzer.ts +6 -5
- package/src/analyses/ExceptionAnalyzer.ts +92 -0
- package/src/analyses/ReflectAnalyzer.ts +14 -3
- package/src/generates/SwaggerGenerator.ts +110 -89
- package/src/structures/IController.ts +7 -0
- package/src/structures/IRoute.ts +2 -0
- package/src/structures/ISwaggerRoute.ts +2 -2
|
@@ -9,6 +9,7 @@ const HashMap_1 = require("tstl/container/HashMap");
|
|
|
9
9
|
const typescript_1 = __importDefault(require("typescript"));
|
|
10
10
|
const CommentFactory_1 = require("typia/lib/factories/CommentFactory");
|
|
11
11
|
const PathUtil_1 = require("../utils/PathUtil");
|
|
12
|
+
const ExceptionAnalyzer_1 = require("./ExceptionAnalyzer");
|
|
12
13
|
const GenericAnalyzer_1 = require("./GenericAnalyzer");
|
|
13
14
|
const ImportAnalyzer_1 = require("./ImportAnalyzer");
|
|
14
15
|
const PathAnalyzer_1 = require("./PathAnalyzer");
|
|
@@ -120,7 +121,7 @@ var ControllerAnalyzer;
|
|
|
120
121
|
type: "assigner",
|
|
121
122
|
source: t.text[0].text,
|
|
122
123
|
};
|
|
123
|
-
}), security });
|
|
124
|
+
}), security, exceptions: ExceptionAnalyzer_1.ExceptionAnalyzer.analyze(checker)(genericDict, importDict)(func)(declaration) });
|
|
124
125
|
// CONFIGURE PATHS
|
|
125
126
|
const pathList = [];
|
|
126
127
|
for (const controllerPath of controller.paths)
|
|
@@ -131,9 +132,6 @@ var ControllerAnalyzer;
|
|
|
131
132
|
// RETURNS
|
|
132
133
|
return pathList.map((path) => (Object.assign(Object.assign({}, common), { path, accessors: [...PathUtil_1.PathUtil.accessors(path), func.name] })));
|
|
133
134
|
}
|
|
134
|
-
/* ---------------------------------------------------------
|
|
135
|
-
PARAMETER
|
|
136
|
-
--------------------------------------------------------- */
|
|
137
135
|
function _Analyze_parameter(checker, genericDict, importDict, controller, funcName, param, symbol) {
|
|
138
136
|
var _a;
|
|
139
137
|
const type = checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControllerAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ControllerAnalyzer.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AACxB,oDAAiD;AACjD,4DAA4B;AAE5B,uEAAoE;AAKpE,gDAA6C;AAC7C,uDAAoD;AACpD,qDAAkD;AAClD,iDAA8C;AAC9C,yDAAsD;AAEtD,IAAiB,kBAAkB,CA8RlC;AA9RD,WAAiB,kBAAkB;IAC/B,SAAgB,OAAO,CACnB,OAAuB,EACvB,UAAyB,EACzB,UAAuB;QAEvB,wBAAwB;QACxB,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,oBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;;YACjC,IACI,oBAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC3B,CAAA,MAAA,IAAI,CAAC,IAAI,0CAAE,WAAW,MAAK,UAAU,CAAC,IAAI,EAC5C;gBACE,yBAAyB;gBACzB,GAAG,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC5D,OAAO;aACV;QACL,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACf,CAAC;IAlBe,0BAAO,UAkBtB,CAAA;IAED;;gEAE4D;IAC5D,SAAS,mBAAmB,CACxB,OAAuB,EACvB,UAAuB,EACvB,SAA8B;QAE9B,MAAM,SAAS,GAAqB,OAAO,CAAC,iBAAiB,CACzD,SAAS,CACQ,CAAC;QACtB,MAAM,WAAW,GAA+B,iCAAe,CAAC,OAAO,CACnE,OAAO,EACP,SAAS,CACZ,CAAC;QAEF,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,aAAa,EAAE,EAAE;YAC9C,yBAAyB;YACzB,MAAM,WAAW,GACb,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,IAAI,CAAC,oBAAE,CAAC,mBAAmB,CAAC,WAAW,CAAC;gBAAE,SAAS;YAEnE,qBAAqB;YACrB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC;YACpC,IAAI,CAAC,oBAAE,CAAC,YAAY,CAAC,UAAU,CAAC;gBAAE,SAAS;YAE3C,uCAAuC;YACvC,MAAM,OAAO,GACT,UAAU,CAAC,SAAS,CAAC,IAAI,CACrB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,WAAW,CAC3C,CAAC;YACN,IAAI,OAAO,KAAK,SAAS;gBAAE,SAAS;YAEpC,MAAM,MAAM,GAAa,iBAAiB,CACtC,OAAO,EACP,UAAU,EACV,WAAW,EACX,OAAO,EACP,WAAW,EACX,QAAQ,CACX,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;SACvB;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;gEAE4D;IAC5D,SAAS,iBAAiB,CACtB,OAAuB,EACvB,UAAuB,EACvB,WAAuC,EACvC,IAA2B,EAC3B,
|
|
1
|
+
{"version":3,"file":"ControllerAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ControllerAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
import { IController } from "../structures/IController";
|
|
3
|
+
import { IRoute } from "../structures/IRoute";
|
|
4
|
+
import { GenericAnalyzer } from "./GenericAnalyzer";
|
|
5
|
+
import { ImportAnalyzer } from "./ImportAnalyzer";
|
|
6
|
+
export declare namespace ExceptionAnalyzer {
|
|
7
|
+
const analyze: (checker: ts.TypeChecker) => (genericDict: GenericAnalyzer.Dictionary, importDict: ImportAnalyzer.Dictionary) => (func: IController.IFunction) => (declaration: ts.MethodDeclaration) => Record<number, IRoute.IOutput>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
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.ExceptionAnalyzer = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
9
|
+
const ImportAnalyzer_1 = require("./ImportAnalyzer");
|
|
10
|
+
var ExceptionAnalyzer;
|
|
11
|
+
(function (ExceptionAnalyzer) {
|
|
12
|
+
ExceptionAnalyzer.analyze = (checker) => (genericDict, importDict) => (func) => (declaration) => {
|
|
13
|
+
var _a;
|
|
14
|
+
const output = {};
|
|
15
|
+
for (const decorator of (_a = declaration.modifiers) !== null && _a !== void 0 ? _a : [])
|
|
16
|
+
if (typescript_1.default.isDecorator(decorator))
|
|
17
|
+
analyzeTyped(checker)(genericDict, importDict)(func)(output)(decorator);
|
|
18
|
+
return output;
|
|
19
|
+
};
|
|
20
|
+
const analyzeTyped = (checker) => (genericDict, importDict) => (func) => (output) => (decorator) => {
|
|
21
|
+
var _a;
|
|
22
|
+
// CHECK DECORATOR
|
|
23
|
+
if (!typescript_1.default.isCallExpression(decorator.expression))
|
|
24
|
+
return false;
|
|
25
|
+
else if (((_a = decorator.expression.typeArguments) !== null && _a !== void 0 ? _a : []).length !== 1)
|
|
26
|
+
return false;
|
|
27
|
+
// CHECK SIGNATURE
|
|
28
|
+
const signature = checker.getResolvedSignature(decorator.expression);
|
|
29
|
+
if (!signature || !signature.declaration)
|
|
30
|
+
return false;
|
|
31
|
+
else if (path_1.default
|
|
32
|
+
.resolve(signature.declaration.getSourceFile().fileName)
|
|
33
|
+
.indexOf(TYPED_EXCEPTION_PATH) === -1)
|
|
34
|
+
return false;
|
|
35
|
+
// GET TYPE INFO
|
|
36
|
+
const node = decorator.expression.typeArguments[0];
|
|
37
|
+
const type = checker.getTypeFromTypeNode(node);
|
|
38
|
+
if (type.isTypeParameter())
|
|
39
|
+
throw new Error("Error on @nestia.core.TypedException(): non-specified generic argument.");
|
|
40
|
+
const tuple = ImportAnalyzer_1.ImportAnalyzer.analyze(checker, genericDict, importDict, type);
|
|
41
|
+
if (tuple === null)
|
|
42
|
+
return false;
|
|
43
|
+
// DO ASSIGN
|
|
44
|
+
const matched = Object.entries(func.exceptions)
|
|
45
|
+
.filter(([_key, value]) => value.type === tuple.name)
|
|
46
|
+
.map(([_key, value]) => value);
|
|
47
|
+
for (const m of matched)
|
|
48
|
+
output[m.status] = Object.assign(Object.assign({}, tuple), { contentType: "application/json", description: m.description });
|
|
49
|
+
return true;
|
|
50
|
+
};
|
|
51
|
+
})(ExceptionAnalyzer || (exports.ExceptionAnalyzer = ExceptionAnalyzer = {}));
|
|
52
|
+
const TYPED_EXCEPTION_PATH = path_1.default.join("node_modules", "@nestia", "core", "lib", "decorators", "TypedException.d.ts");
|
|
53
|
+
//# sourceMappingURL=ExceptionAnalyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExceptionAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ExceptionAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -93,7 +93,7 @@ var ReflectAnalyzer;
|
|
|
93
93
|
name,
|
|
94
94
|
paths,
|
|
95
95
|
functions: [],
|
|
96
|
-
security:
|
|
96
|
+
security: _Get_securities(creator),
|
|
97
97
|
};
|
|
98
98
|
// PARSE CHILDREN DATA
|
|
99
99
|
for (const tuple of _Get_prototype_entries(creator)) {
|
|
@@ -123,10 +123,14 @@ var ReflectAnalyzer;
|
|
|
123
123
|
else
|
|
124
124
|
return value;
|
|
125
125
|
}
|
|
126
|
-
function
|
|
126
|
+
function _Get_securities(value) {
|
|
127
127
|
const entire = Reflect.getMetadata("swagger/apiSecurity", value);
|
|
128
128
|
return entire ? SecurityAnalyzer_1.SecurityAnalyzer.merge(...entire) : [];
|
|
129
129
|
}
|
|
130
|
+
function _Get_exceptions(value) {
|
|
131
|
+
const entire = Reflect.getMetadata("swagger/TypedException", value);
|
|
132
|
+
return Object.fromEntries((entire !== null && entire !== void 0 ? entire : []).map((exp) => [exp.status, exp]));
|
|
133
|
+
}
|
|
130
134
|
/* ---------------------------------------------------------
|
|
131
135
|
FUNCTION
|
|
132
136
|
--------------------------------------------------------- */
|
|
@@ -178,7 +182,8 @@ var ReflectAnalyzer;
|
|
|
178
182
|
: (_f = (_e = (_d = Reflect.getMetadata(Constants.HEADERS_METADATA, proto)) === null || _d === void 0 ? void 0 : _d.find((h) => typeof (h === null || h === void 0 ? void 0 : h.name) === "string" &&
|
|
179
183
|
typeof (h === null || h === void 0 ? void 0 : h.value) === "string" &&
|
|
180
184
|
h.name.toLowerCase() === "content-type")) === null || _e === void 0 ? void 0 : _e.value) !== null && _f !== void 0 ? _f : "application/json",
|
|
181
|
-
security:
|
|
185
|
+
security: _Get_securities(proto),
|
|
186
|
+
exceptions: _Get_exceptions(proto),
|
|
182
187
|
};
|
|
183
188
|
// VALIDATE PATH ARGUMENTS
|
|
184
189
|
for (const controllerLocation of controller.paths)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReflectAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ReflectAnalyzer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAsD;AACtD,4BAA0B;AAC1B,+CAA2C;AAI3C,kDAA+C;AAC/C,iDAA8C;AAC9C,yDAAsD;AAMtD,IAAiB,eAAe,
|
|
1
|
+
{"version":3,"file":"ReflectAnalyzer.js","sourceRoot":"","sources":["../../src/analyses/ReflectAnalyzer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oEAAsD;AACtD,4BAA0B;AAC1B,+CAA2C;AAI3C,kDAA+C;AAC/C,iDAA8C;AAC9C,yDAAsD;AAMtD,IAAiB,eAAe,CAyV/B;AAzVD,WAAiB,eAAe;IAC5B,SAAsB,OAAO,CACzB,MAAoB,EACpB,IAAY;;YAEZ,MAAM,MAAM,GAAY,MAAM,CAAC,GAAS,EAAE;gBACtC,IAAI;oBACA,OAAO,yBAAa,IAAI,uCAAC,CAAC;iBAC7B;gBAAC,OAAO,GAAG,EAAE;oBACV,OAAO,CAAC,GAAG,CACP,6DAA6D,CAChE,CAAC;oBACF,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,0BAA0B,CAAC,CAAC;oBACzD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBACjB,OAAO,CAAC,GAAG,CACP,6DAA6D,CAChE,CAAC;oBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;iBACpB;YACL,CAAC,CAAA,CAAC,EAAE,CAAC;YACL,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;IAhCqB,uBAAO,UAgC5B,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,SAAS,CAAC,aAAa,EACvB,SAAS,CAAC,aAAa,EACvB,SAAS,CAAC,sBAAsB,CACnC,KAAK,KAAK;YAEX,OAAO,IAAI,CAAC;QAEhB,MAAM;QACN,eAAe;QACf,MAAM;QACN,aAAa;QACb,MAAM,KAAK,GAAa,UAAU,CAC9B,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,CACxD,CAAC;QACF,MAAM,IAAI,GAAgB;YACtB,IAAI;YACJ,IAAI;YACJ,KAAK;YACL,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC;SACrC,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,SAAS,eAAe,CAAC,KAAU;QAC/B,MAAM,MAAM,GACR,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC,CAAC,CAAC,mCAAgB,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,CAAC;IAED,SAAS,eAAe,CACpB,KAAU;QAEV,MAAM,MAAM,GACR,OAAO,CAAC,WAAW,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC,WAAW,CACrB,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CACjD,CAAC;IACN,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,CACT,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EAC9B,SAAS,CAAC,aAAa,EACvB,SAAS,CAAC,eAAe,CAC5B,KAAK,KAAK;YAEX,OAAO,IAAI,CAAC;QAEhB,MAAM;QACN,eAAe;QACf,MAAM;QACN,aAAa;QACb,MAAM,SAAS,GACX,CAAA,MAAA,MAAA,MAAA,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,qBAAqB,EAAE,KAAK,CAAC,0CAAG,CAAC,CAAC,0CAC1D,WAAW,0CAAE,IAAI,MAAK,2BAA2B,CAAC;QAC5D,MAAM,MAAM,GACR,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;QACnE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAE9D,MAAM,UAAU,GAA6B,CAAC,GAAG,EAAE;YAC/C,MAAM,cAAc,GAChB,OAAO,CAAC,WAAW,CACf,SAAS,CAAC,mBAAmB,EAC7B,UAAU,CAAC,WAAW,EACtB,IAAI,CACP,CAAC;YACN,IAAI,cAAc,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC;YAE5C,MAAM,MAAM,GAA6B,EAAE,CAAC;YAC5C,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,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1C;YACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC,EAAE,CAAC;QAEL,gBAAgB;QAChB,MAAM,IAAI,GAAuC,UAAU,CAAC,IAAI,CAC5D,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,MAAM,CACvC,CAAC;QACF,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,CAAC;YAC7D,MAAM,IAAI,KAAK,CACX,YAAY,UAAU,CAAC,IAAI,IAAI,IAAI,mEAAmE,CACzG,CAAC;QAEN,eAAe;QACf,MAAM,IAAI,GAA0B;YAChC,IAAI;YACJ,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAC1C,KAAK,EAAE,UAAU,CACb,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,CACtD;YACD,UAAU;YACV,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,kBAAkB,EAAE,KAAK,CAAC;YAChE,SAAS;YACT,WAAW,EAAE,SAAS;gBAClB,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,MAAA,MAAA,MAAA,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,gBAAgB,EAAE,KAAK,CAAC,0CAAE,IAAI,CACxD,CAAC,CAAyB,EAAE,EAAE,CAC1B,OAAO,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,CAAA,KAAK,QAAQ;oBAC3B,OAAO,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAA,KAAK,QAAQ;oBAC5B,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAC9C,0CAAE,KAAK,mCAAI,kBAAkB;YACpC,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;YAChC,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC;SACrC,CAAC;QAEF,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;;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,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,IAAI;SACpB,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;YAElC,OAAO;gBACH,MAAM,EAAE,IAAI;gBACZ,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;gBACjD,WAAW,EACP,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW;oBAClC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe;oBAClC,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,kBAAkB;aAC/B,CAAC;aACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc;YAC1C,OAAO;gBACH,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,IAAI;aACpB,CAAC;aACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;YACxC,OAAO;gBACH,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,IAAI,EAAE,CAAC,GAAG,EAAE;oBACR,MAAM,IAAI,GAAI,KAAK,CAAC,OAAe,CAAC,IAAI,CAAC;oBACzC,MAAM,QAAQ,GAAI,KAAK,CAAC,OAAe,CAAC,QAAQ,CAAC;oBACjD,IAAI,IAAI,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;wBAC5C,OAAO;4BACH,IAAI;4BACJ,QAAQ;yBACX,CAAC;oBACN,OAAO,SAAS,CAAC;gBACrB,CAAC,CAAC,EAAE;aACP,CAAC;aACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;YACxC,OAAO;gBACH,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,SAAS;aACnB,CAAC;;YACD,OAAO,IAAI,CAAC;IACrB,CAAC;AAYL,CAAC,EAzVgB,eAAe,+BAAf,eAAe,QAyV/B;AAED,+DAA+D;AAC/D,MAAM,OAAO,GAAG;IACZ,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,OAAO;IACP,KAAK;IACL,SAAS;IACT,MAAM;CACT,CAAC;AAEF,2DAA2D;AAC3D,MAAM,oBAAoB,GAAG;IACzB,SAAS;IACT,SAAS;IACT,SAAS;IACT,MAAM;IACN,OAAO;IACP,OAAO;IACP,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACH,CAAC"}
|
|
@@ -16,7 +16,6 @@ exports.SwaggerGenerator = void 0;
|
|
|
16
16
|
const fs_1 = __importDefault(require("fs"));
|
|
17
17
|
const path_1 = __importDefault(require("path"));
|
|
18
18
|
const Singleton_1 = require("tstl/thread/Singleton");
|
|
19
|
-
const VariadicSingleton_1 = require("tstl/thread/VariadicSingleton");
|
|
20
19
|
const typescript_1 = __importDefault(require("typescript"));
|
|
21
20
|
const typia_1 = __importDefault(require("typia"));
|
|
22
21
|
const MetadataCollection_1 = require("typia/lib/factories/MetadataCollection");
|
|
@@ -595,7 +594,6 @@ var SwaggerGenerator;
|
|
|
595
594
|
];
|
|
596
595
|
}
|
|
597
596
|
function generate_request_body(checker, collection, tupleList, route, parameter) {
|
|
598
|
-
var _a;
|
|
599
597
|
const schema = generate_schema(checker, collection, tupleList, parameter.type.type);
|
|
600
598
|
if (schema === null)
|
|
601
599
|
throw new Error(`Error on NestiaApplication.sdk(): invalid request body type on ${route.symbol}.`);
|
|
@@ -604,11 +602,11 @@ var SwaggerGenerator;
|
|
|
604
602
|
const contentType = parameter.custom
|
|
605
603
|
? parameter.contentType
|
|
606
604
|
: "application/json";
|
|
605
|
+
const description = get_parametric_description(route, "param", parameter.name);
|
|
607
606
|
return {
|
|
608
|
-
description:
|
|
609
|
-
.get(
|
|
610
|
-
|
|
611
|
-
((_a = get_parametric_description(route, "param", parameter.name)) !== null && _a !== void 0 ? _a : ""),
|
|
607
|
+
description: parameter.custom && parameter.encrypted
|
|
608
|
+
? `${warning.get(!!description).get("request")}${description !== null && description !== void 0 ? description : ""}`
|
|
609
|
+
: description,
|
|
612
610
|
content: {
|
|
613
611
|
[contentType]: {
|
|
614
612
|
schema,
|
|
@@ -619,8 +617,51 @@ var SwaggerGenerator;
|
|
|
619
617
|
};
|
|
620
618
|
}
|
|
621
619
|
function generate_response_body(checker, collection, tupleList, route) {
|
|
622
|
-
var _a, _b;
|
|
623
|
-
|
|
620
|
+
var _a, _b, _c;
|
|
621
|
+
const output = {};
|
|
622
|
+
//----
|
|
623
|
+
// EXCEPTION STATUSES
|
|
624
|
+
//----
|
|
625
|
+
// FROM DECORATOR
|
|
626
|
+
for (const [status, exp] of Object.entries(route.exceptions)) {
|
|
627
|
+
const schema = generate_schema(checker, collection, tupleList, exp.type);
|
|
628
|
+
if (schema !== null)
|
|
629
|
+
output[status] = {
|
|
630
|
+
description: exp.description,
|
|
631
|
+
content: {
|
|
632
|
+
"application/json": { schema },
|
|
633
|
+
},
|
|
634
|
+
};
|
|
635
|
+
}
|
|
636
|
+
// FROM COMMENT TAGS
|
|
637
|
+
for (const tag of route.tags) {
|
|
638
|
+
if (tag.name !== "throw" && tag.name !== "throws")
|
|
639
|
+
continue;
|
|
640
|
+
const text = (_b = (_a = tag.text) === null || _a === void 0 ? void 0 : _a.find((elem) => elem.kind === "text")) === null || _b === void 0 ? void 0 : _b.text;
|
|
641
|
+
if (text === undefined)
|
|
642
|
+
continue;
|
|
643
|
+
const elements = text.split(" ").map((str) => str.trim());
|
|
644
|
+
const status = Number(elements[0]);
|
|
645
|
+
if (isNaN(status))
|
|
646
|
+
continue;
|
|
647
|
+
const description = elements.length === 1 ? undefined : elements.slice(1).join(" ");
|
|
648
|
+
const oldbie = output[status];
|
|
649
|
+
if (oldbie !== undefined && oldbie.description === undefined)
|
|
650
|
+
oldbie.description = description;
|
|
651
|
+
else if (oldbie === undefined)
|
|
652
|
+
output[status] = {
|
|
653
|
+
description,
|
|
654
|
+
content: {
|
|
655
|
+
"application/json": {
|
|
656
|
+
schema: {},
|
|
657
|
+
},
|
|
658
|
+
},
|
|
659
|
+
};
|
|
660
|
+
}
|
|
661
|
+
//----
|
|
662
|
+
// SUCCESS
|
|
663
|
+
//----
|
|
664
|
+
// STATUS & SCHEMA
|
|
624
665
|
const status = route.status !== undefined
|
|
625
666
|
? String(route.status)
|
|
626
667
|
: route.method === "GET" ||
|
|
@@ -629,41 +670,22 @@ var SwaggerGenerator;
|
|
|
629
670
|
? "200"
|
|
630
671
|
: "201";
|
|
631
672
|
const schema = generate_schema(checker, collection, tupleList, route.output.type);
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
673
|
+
// DO ASSIGN
|
|
674
|
+
const description = (_c = get_parametric_description(route, "return")) !== null && _c !== void 0 ? _c : get_parametric_description(route, "returns");
|
|
675
|
+
output[status] = {
|
|
676
|
+
description: route.encrypted
|
|
677
|
+
? `${warning.get(!!description).get("response", route.method)}${description !== null && description !== void 0 ? description : ""}`
|
|
678
|
+
: description,
|
|
679
|
+
content: schema === null || route.output.name === "void"
|
|
680
|
+
? undefined
|
|
681
|
+
: {
|
|
682
|
+
[route.output.contentType]: {
|
|
683
|
+
schema,
|
|
642
684
|
},
|
|
643
|
-
"x-nestia-encrypted": route.encrypted,
|
|
644
|
-
},
|
|
645
|
-
};
|
|
646
|
-
// EXCEPTION STATUSES
|
|
647
|
-
const exceptions = Object.fromEntries(route.tags
|
|
648
|
-
.filter((tag) => (tag.name === "throw" || tag.name === "throws") &&
|
|
649
|
-
tag.text &&
|
|
650
|
-
tag.text.find((elem) => elem.kind === "text" &&
|
|
651
|
-
isNaN(Number(elem.text
|
|
652
|
-
.split(" ")
|
|
653
|
-
.map((str) => str.trim())[0])) === false) !== undefined)
|
|
654
|
-
.map((tag) => {
|
|
655
|
-
const text = tag.text.find((elem) => elem.kind === "text").text;
|
|
656
|
-
const elements = text
|
|
657
|
-
.split(" ")
|
|
658
|
-
.map((str) => str.trim());
|
|
659
|
-
return [
|
|
660
|
-
elements[0],
|
|
661
|
-
{
|
|
662
|
-
description: elements.slice(1).join(" "),
|
|
663
685
|
},
|
|
664
|
-
|
|
665
|
-
}
|
|
666
|
-
return
|
|
686
|
+
"x-nestia-encrypted": route.encrypted,
|
|
687
|
+
};
|
|
688
|
+
return output;
|
|
667
689
|
}
|
|
668
690
|
/* ---------------------------------------------------------
|
|
669
691
|
UTILS
|
|
@@ -705,10 +727,8 @@ const required = (type) => {
|
|
|
705
727
|
obstacle(typescript_1.default.TypeFlags.Void) &&
|
|
706
728
|
obstacle(typescript_1.default.TypeFlags.VoidLike));
|
|
707
729
|
};
|
|
708
|
-
const warning = new
|
|
709
|
-
|
|
710
|
-
return new Singleton_1.Singleton(() => "");
|
|
711
|
-
return new VariadicSingleton_1.VariadicSingleton((type, method) => {
|
|
730
|
+
const warning = new Singleton_1.Singleton((described) => {
|
|
731
|
+
return new Singleton_1.Singleton((type, method) => {
|
|
712
732
|
const summary = type === "request"
|
|
713
733
|
? "Request body must be encrypted."
|
|
714
734
|
: "Response data have been encrypted.";
|
|
@@ -717,16 +737,18 @@ const warning = new VariadicSingleton_1.VariadicSingleton((encrypted) => {
|
|
|
717
737
|
: `[EncryptedRoute.${method[0].toUpperCase()}.${method
|
|
718
738
|
.substring(1)
|
|
719
739
|
.toLowerCase()}](https://github.com/samchon/@nestia/core#encryptedroute)`;
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
740
|
+
const content = [
|
|
741
|
+
"## Warning",
|
|
742
|
+
"",
|
|
743
|
+
summary,
|
|
744
|
+
"",
|
|
745
|
+
`The ${type} body data would be encrypted as "AES-128(256) / CBC mode / PKCS#5 Padding / Base64 Encoding", through the ${component} component.`,
|
|
746
|
+
"",
|
|
747
|
+
`Therefore, just utilize this swagger editor only for referencing. If you need to call the real API, using [SDK](https://github.com/samchon/nestia#software-development-kit) would be much better.`,
|
|
748
|
+
];
|
|
749
|
+
if (described === true)
|
|
750
|
+
content.push("----------------", "");
|
|
751
|
+
return content.join("\n");
|
|
730
752
|
});
|
|
731
753
|
});
|
|
732
754
|
const NO_BIGIT = "Error on typia.application(): does not allow bigint type.";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwaggerGenerator.js","sourceRoot":"","sources":["../../src/generates/SwaggerGenerator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SwaggerGenerator.js","sourceRoot":"","sources":["../../src/generates/SwaggerGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export declare namespace IController {
|
|
|
17
17
|
type?: string;
|
|
18
18
|
contentType: "application/json" | "text/plain";
|
|
19
19
|
security: Record<string, string[]>[];
|
|
20
|
+
exceptions: Record<number, IController.IException>;
|
|
20
21
|
}
|
|
21
22
|
type IParameter = ICommonParameter | IQueryParameter | IHeadersParameter | IBodyParameter | IPathParameter;
|
|
22
23
|
interface ICommonParameter {
|
|
@@ -60,4 +61,9 @@ export declare namespace IController {
|
|
|
60
61
|
nullable: boolean;
|
|
61
62
|
};
|
|
62
63
|
}
|
|
64
|
+
interface IException {
|
|
65
|
+
type: string;
|
|
66
|
+
status: number;
|
|
67
|
+
description: string | undefined;
|
|
68
|
+
}
|
|
63
69
|
}
|
|
@@ -24,6 +24,7 @@ export interface IRoute {
|
|
|
24
24
|
source: string;
|
|
25
25
|
}>;
|
|
26
26
|
security: Record<string, string[]>[];
|
|
27
|
+
exceptions: Record<number, IRoute.IOutput>;
|
|
27
28
|
}
|
|
28
29
|
export declare namespace IRoute {
|
|
29
30
|
type IParameter = IController.IParameter & {
|
|
@@ -31,6 +32,7 @@ export declare namespace IRoute {
|
|
|
31
32
|
type: ITypeTuple;
|
|
32
33
|
};
|
|
33
34
|
interface IOutput extends ITypeTuple {
|
|
35
|
+
description?: string;
|
|
34
36
|
contentType: "application/json" | "text/plain";
|
|
35
37
|
}
|
|
36
38
|
}
|
|
@@ -22,13 +22,13 @@ export declare namespace ISwaggerRoute {
|
|
|
22
22
|
description?: string;
|
|
23
23
|
}
|
|
24
24
|
interface IRequestBody {
|
|
25
|
-
description
|
|
25
|
+
description?: string;
|
|
26
26
|
content: IContent;
|
|
27
27
|
required: true;
|
|
28
28
|
"x-nestia-encrypted": boolean;
|
|
29
29
|
}
|
|
30
30
|
type IResponseBody = Record<string, {
|
|
31
|
-
description
|
|
31
|
+
description?: string;
|
|
32
32
|
content?: IContent;
|
|
33
33
|
"x-nestia-encrypted"?: boolean;
|
|
34
34
|
}>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestia/sdk",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.4-dev.20230816",
|
|
4
4
|
"description": "Nestia SDK and Swagger generator",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
},
|
|
36
36
|
"homepage": "https://nestia.io",
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@nestia/fetcher": "^1.6.
|
|
38
|
+
"@nestia/fetcher": "^1.6.4-dev.20230816",
|
|
39
39
|
"cli": "^1.0.1",
|
|
40
40
|
"glob": "^7.2.0",
|
|
41
41
|
"path-to-regexp": "^6.2.1",
|
|
@@ -44,16 +44,16 @@
|
|
|
44
44
|
"tsconfck": "^2.0.1",
|
|
45
45
|
"tsconfig-paths": "^4.1.1",
|
|
46
46
|
"tstl": "^2.5.13",
|
|
47
|
-
"typia": "^4.2.
|
|
47
|
+
"typia": "^4.2.3"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
|
-
"@nestia/fetcher": ">= 1.6.
|
|
50
|
+
"@nestia/fetcher": ">= 1.6.4-dev.20230816",
|
|
51
51
|
"@nestjs/common": ">= 7.0.1",
|
|
52
52
|
"@nestjs/core": ">= 7.0.1",
|
|
53
53
|
"reflect-metadata": ">= 0.1.12",
|
|
54
54
|
"ts-node": ">= 10.6.0",
|
|
55
55
|
"typescript": ">= 4.8.0",
|
|
56
|
-
"typia": ">= 4.2.
|
|
56
|
+
"typia": ">= 4.2.3"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@nestjs/common": ">= 7.0.1",
|
|
@@ -8,6 +8,7 @@ import { IController } from "../structures/IController";
|
|
|
8
8
|
import { IRoute } from "../structures/IRoute";
|
|
9
9
|
import { ITypeTuple } from "../structures/ITypeTuple";
|
|
10
10
|
import { PathUtil } from "../utils/PathUtil";
|
|
11
|
+
import { ExceptionAnalyzer } from "./ExceptionAnalyzer";
|
|
11
12
|
import { GenericAnalyzer } from "./GenericAnalyzer";
|
|
12
13
|
import { ImportAnalyzer } from "./ImportAnalyzer";
|
|
13
14
|
import { PathAnalyzer } from "./PathAnalyzer";
|
|
@@ -89,7 +90,7 @@ export namespace ControllerAnalyzer {
|
|
|
89
90
|
controller: IController,
|
|
90
91
|
genericDict: GenericAnalyzer.Dictionary,
|
|
91
92
|
func: IController.IFunction,
|
|
92
|
-
declaration: ts.
|
|
93
|
+
declaration: ts.MethodDeclaration,
|
|
93
94
|
symbol: ts.Symbol,
|
|
94
95
|
): IRoute[] {
|
|
95
96
|
// PREPARE ASSETS
|
|
@@ -101,7 +102,6 @@ export namespace ControllerAnalyzer {
|
|
|
101
102
|
type,
|
|
102
103
|
ts.SignatureKind.Call,
|
|
103
104
|
)[0];
|
|
104
|
-
|
|
105
105
|
if (signature === undefined)
|
|
106
106
|
throw new Error(
|
|
107
107
|
`Error on ControllerAnalyzer.analyze(): unable to get the signature from the ${controller.name}.${func.name}().`,
|
|
@@ -206,6 +206,10 @@ export namespace ControllerAnalyzer {
|
|
|
206
206
|
},
|
|
207
207
|
),
|
|
208
208
|
security,
|
|
209
|
+
exceptions: ExceptionAnalyzer.analyze(checker)(
|
|
210
|
+
genericDict,
|
|
211
|
+
importDict,
|
|
212
|
+
)(func)(declaration),
|
|
209
213
|
};
|
|
210
214
|
|
|
211
215
|
// CONFIGURE PATHS
|
|
@@ -232,9 +236,6 @@ export namespace ControllerAnalyzer {
|
|
|
232
236
|
}));
|
|
233
237
|
}
|
|
234
238
|
|
|
235
|
-
/* ---------------------------------------------------------
|
|
236
|
-
PARAMETER
|
|
237
|
-
--------------------------------------------------------- */
|
|
238
239
|
function _Analyze_parameter(
|
|
239
240
|
checker: ts.TypeChecker,
|
|
240
241
|
genericDict: GenericAnalyzer.Dictionary,
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
|
|
4
|
+
import { IController } from "../structures/IController";
|
|
5
|
+
import { IRoute } from "../structures/IRoute";
|
|
6
|
+
import { ITypeTuple } from "../structures/ITypeTuple";
|
|
7
|
+
import { GenericAnalyzer } from "./GenericAnalyzer";
|
|
8
|
+
import { ImportAnalyzer } from "./ImportAnalyzer";
|
|
9
|
+
|
|
10
|
+
export namespace ExceptionAnalyzer {
|
|
11
|
+
export const analyze =
|
|
12
|
+
(checker: ts.TypeChecker) =>
|
|
13
|
+
(
|
|
14
|
+
genericDict: GenericAnalyzer.Dictionary,
|
|
15
|
+
importDict: ImportAnalyzer.Dictionary,
|
|
16
|
+
) =>
|
|
17
|
+
(func: IController.IFunction) =>
|
|
18
|
+
(declaration: ts.MethodDeclaration): Record<number, IRoute.IOutput> => {
|
|
19
|
+
const output: Record<number, IRoute.IOutput> = {};
|
|
20
|
+
for (const decorator of declaration.modifiers ?? [])
|
|
21
|
+
if (ts.isDecorator(decorator))
|
|
22
|
+
analyzeTyped(checker)(genericDict, importDict)(func)(
|
|
23
|
+
output,
|
|
24
|
+
)(decorator);
|
|
25
|
+
return output;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const analyzeTyped =
|
|
29
|
+
(checker: ts.TypeChecker) =>
|
|
30
|
+
(
|
|
31
|
+
genericDict: GenericAnalyzer.Dictionary,
|
|
32
|
+
importDict: ImportAnalyzer.Dictionary,
|
|
33
|
+
) =>
|
|
34
|
+
(func: IController.IFunction) =>
|
|
35
|
+
(output: Record<number, IRoute.IOutput>) =>
|
|
36
|
+
(decorator: ts.Decorator): boolean => {
|
|
37
|
+
// CHECK DECORATOR
|
|
38
|
+
if (!ts.isCallExpression(decorator.expression)) return false;
|
|
39
|
+
else if ((decorator.expression.typeArguments ?? []).length !== 1)
|
|
40
|
+
return false;
|
|
41
|
+
|
|
42
|
+
// CHECK SIGNATURE
|
|
43
|
+
const signature: ts.Signature | undefined =
|
|
44
|
+
checker.getResolvedSignature(decorator.expression);
|
|
45
|
+
if (!signature || !signature.declaration) return false;
|
|
46
|
+
else if (
|
|
47
|
+
path
|
|
48
|
+
.resolve(signature.declaration.getSourceFile().fileName)
|
|
49
|
+
.indexOf(TYPED_EXCEPTION_PATH) === -1
|
|
50
|
+
)
|
|
51
|
+
return false;
|
|
52
|
+
|
|
53
|
+
// GET TYPE INFO
|
|
54
|
+
const node: ts.TypeNode = decorator.expression.typeArguments![0];
|
|
55
|
+
const type: ts.Type = checker.getTypeFromTypeNode(node);
|
|
56
|
+
if (type.isTypeParameter())
|
|
57
|
+
throw new Error(
|
|
58
|
+
"Error on @nestia.core.TypedException(): non-specified generic argument.",
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
const tuple: ITypeTuple | null = ImportAnalyzer.analyze(
|
|
62
|
+
checker,
|
|
63
|
+
genericDict,
|
|
64
|
+
importDict,
|
|
65
|
+
type,
|
|
66
|
+
);
|
|
67
|
+
if (tuple === null) return false;
|
|
68
|
+
|
|
69
|
+
// DO ASSIGN
|
|
70
|
+
const matched: IController.IException[] = Object.entries(
|
|
71
|
+
func.exceptions,
|
|
72
|
+
)
|
|
73
|
+
.filter(([_key, value]) => value.type === tuple.name)
|
|
74
|
+
.map(([_key, value]) => value);
|
|
75
|
+
for (const m of matched)
|
|
76
|
+
output[m.status] = {
|
|
77
|
+
...tuple,
|
|
78
|
+
contentType: "application/json",
|
|
79
|
+
description: m.description,
|
|
80
|
+
};
|
|
81
|
+
return true;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const TYPED_EXCEPTION_PATH = path.join(
|
|
86
|
+
"node_modules",
|
|
87
|
+
"@nestia",
|
|
88
|
+
"core",
|
|
89
|
+
"lib",
|
|
90
|
+
"decorators",
|
|
91
|
+
"TypedException.d.ts",
|
|
92
|
+
);
|
|
@@ -89,7 +89,7 @@ export namespace ReflectAnalyzer {
|
|
|
89
89
|
name,
|
|
90
90
|
paths,
|
|
91
91
|
functions: [],
|
|
92
|
-
security:
|
|
92
|
+
security: _Get_securities(creator),
|
|
93
93
|
};
|
|
94
94
|
|
|
95
95
|
// PARSE CHILDREN DATA
|
|
@@ -126,12 +126,22 @@ export namespace ReflectAnalyzer {
|
|
|
126
126
|
else return value;
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
function
|
|
129
|
+
function _Get_securities(value: any): Record<string, string[]>[] {
|
|
130
130
|
const entire: Record<string, string[]>[] | undefined =
|
|
131
131
|
Reflect.getMetadata("swagger/apiSecurity", value);
|
|
132
132
|
return entire ? SecurityAnalyzer.merge(...entire) : [];
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
+
function _Get_exceptions(
|
|
136
|
+
value: any,
|
|
137
|
+
): Record<number, IController.IException> {
|
|
138
|
+
const entire: IController.IException[] | undefined =
|
|
139
|
+
Reflect.getMetadata("swagger/TypedException", value);
|
|
140
|
+
return Object.fromEntries(
|
|
141
|
+
(entire ?? []).map((exp) => [exp.status, exp]),
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
|
|
135
145
|
/* ---------------------------------------------------------
|
|
136
146
|
FUNCTION
|
|
137
147
|
--------------------------------------------------------- */
|
|
@@ -213,7 +223,8 @@ export namespace ReflectAnalyzer {
|
|
|
213
223
|
typeof h?.value === "string" &&
|
|
214
224
|
h.name.toLowerCase() === "content-type",
|
|
215
225
|
)?.value ?? "application/json",
|
|
216
|
-
security:
|
|
226
|
+
security: _Get_securities(proto),
|
|
227
|
+
exceptions: _Get_exceptions(proto),
|
|
217
228
|
};
|
|
218
229
|
|
|
219
230
|
// VALIDATE PATH ARGUMENTS
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import NodePath from "path";
|
|
3
3
|
import { Singleton } from "tstl/thread/Singleton";
|
|
4
|
-
import { VariadicSingleton } from "tstl/thread/VariadicSingleton";
|
|
5
4
|
import ts from "typescript";
|
|
6
5
|
|
|
7
6
|
import typia, { IJsonApplication, IJsonComponents, IJsonSchema } from "typia";
|
|
@@ -537,14 +536,19 @@ export namespace SwaggerGenerator {
|
|
|
537
536
|
const contentType = parameter.custom
|
|
538
537
|
? parameter.contentType
|
|
539
538
|
: "application/json";
|
|
539
|
+
const description = get_parametric_description(
|
|
540
|
+
route,
|
|
541
|
+
"param",
|
|
542
|
+
parameter.name,
|
|
543
|
+
);
|
|
540
544
|
|
|
541
545
|
return {
|
|
542
546
|
description:
|
|
543
|
-
|
|
544
|
-
.get(
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
547
|
+
parameter.custom && parameter.encrypted
|
|
548
|
+
? `${warning.get(!!description).get("request")}${
|
|
549
|
+
description ?? ""
|
|
550
|
+
}`
|
|
551
|
+
: description,
|
|
548
552
|
content: {
|
|
549
553
|
[contentType]: {
|
|
550
554
|
schema,
|
|
@@ -561,7 +565,61 @@ export namespace SwaggerGenerator {
|
|
|
561
565
|
tupleList: Array<ISchemaTuple>,
|
|
562
566
|
route: IRoute,
|
|
563
567
|
): ISwaggerRoute.IResponseBody {
|
|
564
|
-
|
|
568
|
+
const output: ISwaggerRoute.IResponseBody = {};
|
|
569
|
+
|
|
570
|
+
//----
|
|
571
|
+
// EXCEPTION STATUSES
|
|
572
|
+
//----
|
|
573
|
+
// FROM DECORATOR
|
|
574
|
+
for (const [status, exp] of Object.entries(route.exceptions)) {
|
|
575
|
+
const schema = generate_schema(
|
|
576
|
+
checker,
|
|
577
|
+
collection,
|
|
578
|
+
tupleList,
|
|
579
|
+
exp.type,
|
|
580
|
+
);
|
|
581
|
+
if (schema !== null)
|
|
582
|
+
output[status] = {
|
|
583
|
+
description: exp.description,
|
|
584
|
+
content: {
|
|
585
|
+
"application/json": { schema },
|
|
586
|
+
},
|
|
587
|
+
};
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
// FROM COMMENT TAGS
|
|
591
|
+
for (const tag of route.tags) {
|
|
592
|
+
if (tag.name !== "throw" && tag.name !== "throws") continue;
|
|
593
|
+
|
|
594
|
+
const text: string | undefined = tag.text?.find(
|
|
595
|
+
(elem) => elem.kind === "text",
|
|
596
|
+
)?.text;
|
|
597
|
+
if (text === undefined) continue;
|
|
598
|
+
|
|
599
|
+
const elements: string[] = text.split(" ").map((str) => str.trim());
|
|
600
|
+
const status: number = Number(elements[0]);
|
|
601
|
+
if (isNaN(status)) continue;
|
|
602
|
+
|
|
603
|
+
const description: string | undefined =
|
|
604
|
+
elements.length === 1 ? undefined : elements.slice(1).join(" ");
|
|
605
|
+
const oldbie = output[status];
|
|
606
|
+
if (oldbie !== undefined && oldbie.description === undefined)
|
|
607
|
+
oldbie.description = description;
|
|
608
|
+
else if (oldbie === undefined)
|
|
609
|
+
output[status] = {
|
|
610
|
+
description,
|
|
611
|
+
content: {
|
|
612
|
+
"application/json": {
|
|
613
|
+
schema: {},
|
|
614
|
+
},
|
|
615
|
+
},
|
|
616
|
+
};
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
//----
|
|
620
|
+
// SUCCESS
|
|
621
|
+
//----
|
|
622
|
+
// STATUS & SCHEMA
|
|
565
623
|
const status: string =
|
|
566
624
|
route.status !== undefined
|
|
567
625
|
? String(route.status)
|
|
@@ -576,61 +634,28 @@ export namespace SwaggerGenerator {
|
|
|
576
634
|
tupleList,
|
|
577
635
|
route.output.type,
|
|
578
636
|
);
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
637
|
+
|
|
638
|
+
// DO ASSIGN
|
|
639
|
+
const description =
|
|
640
|
+
get_parametric_description(route, "return") ??
|
|
641
|
+
get_parametric_description(route, "returns");
|
|
642
|
+
output[status] = {
|
|
643
|
+
description: route.encrypted
|
|
644
|
+
? `${warning.get(!!description).get("response", route.method)}${
|
|
645
|
+
description ?? ""
|
|
646
|
+
}`
|
|
647
|
+
: description,
|
|
648
|
+
content:
|
|
649
|
+
schema === null || route.output.name === "void"
|
|
650
|
+
? undefined
|
|
651
|
+
: {
|
|
652
|
+
[route.output.contentType]: {
|
|
653
|
+
schema,
|
|
593
654
|
},
|
|
594
|
-
|
|
595
|
-
|
|
655
|
+
},
|
|
656
|
+
"x-nestia-encrypted": route.encrypted,
|
|
596
657
|
};
|
|
597
|
-
|
|
598
|
-
// EXCEPTION STATUSES
|
|
599
|
-
const exceptions: ISwaggerRoute.IResponseBody = Object.fromEntries(
|
|
600
|
-
route.tags
|
|
601
|
-
.filter(
|
|
602
|
-
(tag) =>
|
|
603
|
-
(tag.name === "throw" || tag.name === "throws") &&
|
|
604
|
-
tag.text &&
|
|
605
|
-
tag.text.find(
|
|
606
|
-
(elem) =>
|
|
607
|
-
elem.kind === "text" &&
|
|
608
|
-
isNaN(
|
|
609
|
-
Number(
|
|
610
|
-
elem.text
|
|
611
|
-
.split(" ")
|
|
612
|
-
.map((str) => str.trim())[0],
|
|
613
|
-
),
|
|
614
|
-
) === false,
|
|
615
|
-
) !== undefined,
|
|
616
|
-
)
|
|
617
|
-
.map((tag) => {
|
|
618
|
-
const text: string = tag.text!.find(
|
|
619
|
-
(elem) => elem.kind === "text",
|
|
620
|
-
)!.text;
|
|
621
|
-
const elements: string[] = text
|
|
622
|
-
.split(" ")
|
|
623
|
-
.map((str) => str.trim());
|
|
624
|
-
|
|
625
|
-
return [
|
|
626
|
-
elements[0],
|
|
627
|
-
{
|
|
628
|
-
description: elements.slice(1).join(" "),
|
|
629
|
-
},
|
|
630
|
-
];
|
|
631
|
-
}),
|
|
632
|
-
);
|
|
633
|
-
return { ...exceptions, ...success };
|
|
658
|
+
return output;
|
|
634
659
|
}
|
|
635
660
|
|
|
636
661
|
/* ---------------------------------------------------------
|
|
@@ -692,35 +717,31 @@ const required = (type: ts.Type): boolean => {
|
|
|
692
717
|
);
|
|
693
718
|
};
|
|
694
719
|
|
|
695
|
-
const warning = new
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
${
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
`;
|
|
722
|
-
},
|
|
723
|
-
);
|
|
720
|
+
const warning = new Singleton((described: boolean) => {
|
|
721
|
+
return new Singleton((type: "request" | "response", method?: string) => {
|
|
722
|
+
const summary =
|
|
723
|
+
type === "request"
|
|
724
|
+
? "Request body must be encrypted."
|
|
725
|
+
: "Response data have been encrypted.";
|
|
726
|
+
const component =
|
|
727
|
+
type === "request"
|
|
728
|
+
? "[EncryptedBody](https://github.com/samchon/@nestia/core#encryptedbody)"
|
|
729
|
+
: `[EncryptedRoute.${method![0].toUpperCase()}.${method!
|
|
730
|
+
.substring(1)
|
|
731
|
+
.toLowerCase()}](https://github.com/samchon/@nestia/core#encryptedroute)`;
|
|
732
|
+
|
|
733
|
+
const content: string[] = [
|
|
734
|
+
"## Warning",
|
|
735
|
+
"",
|
|
736
|
+
summary,
|
|
737
|
+
"",
|
|
738
|
+
`The ${type} body data would be encrypted as "AES-128(256) / CBC mode / PKCS#5 Padding / Base64 Encoding", through the ${component} component.`,
|
|
739
|
+
"",
|
|
740
|
+
`Therefore, just utilize this swagger editor only for referencing. If you need to call the real API, using [SDK](https://github.com/samchon/nestia#software-development-kit) would be much better.`,
|
|
741
|
+
];
|
|
742
|
+
if (described === true) content.push("----------------", "");
|
|
743
|
+
return content.join("\n");
|
|
744
|
+
});
|
|
724
745
|
});
|
|
725
746
|
|
|
726
747
|
interface ISchemaTuple {
|
|
@@ -19,6 +19,7 @@ export namespace IController {
|
|
|
19
19
|
type?: string;
|
|
20
20
|
contentType: "application/json" | "text/plain";
|
|
21
21
|
security: Record<string, string[]>[];
|
|
22
|
+
exceptions: Record<number, IController.IException>;
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
export type IParameter =
|
|
@@ -68,4 +69,10 @@ export namespace IController {
|
|
|
68
69
|
nullable: boolean;
|
|
69
70
|
};
|
|
70
71
|
}
|
|
72
|
+
|
|
73
|
+
export interface IException {
|
|
74
|
+
type: string;
|
|
75
|
+
status: number;
|
|
76
|
+
description: string | undefined;
|
|
77
|
+
}
|
|
71
78
|
}
|
package/src/structures/IRoute.ts
CHANGED
|
@@ -24,6 +24,7 @@ export interface IRoute {
|
|
|
24
24
|
| { type: "assigner"; source: string }
|
|
25
25
|
>;
|
|
26
26
|
security: Record<string, string[]>[];
|
|
27
|
+
exceptions: Record<number, IRoute.IOutput>;
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
export namespace IRoute {
|
|
@@ -32,6 +33,7 @@ export namespace IRoute {
|
|
|
32
33
|
type: ITypeTuple;
|
|
33
34
|
};
|
|
34
35
|
export interface IOutput extends ITypeTuple {
|
|
36
|
+
description?: string;
|
|
35
37
|
contentType: "application/json" | "text/plain";
|
|
36
38
|
}
|
|
37
39
|
}
|
|
@@ -23,7 +23,7 @@ export namespace ISwaggerRoute {
|
|
|
23
23
|
description?: string;
|
|
24
24
|
}
|
|
25
25
|
export interface IRequestBody {
|
|
26
|
-
description
|
|
26
|
+
description?: string;
|
|
27
27
|
content: IContent;
|
|
28
28
|
required: true;
|
|
29
29
|
"x-nestia-encrypted": boolean;
|
|
@@ -31,7 +31,7 @@ export namespace ISwaggerRoute {
|
|
|
31
31
|
export type IResponseBody = Record<
|
|
32
32
|
string,
|
|
33
33
|
{
|
|
34
|
-
description
|
|
34
|
+
description?: string;
|
|
35
35
|
content?: IContent;
|
|
36
36
|
"x-nestia-encrypted"?: boolean;
|
|
37
37
|
}
|