@nestia/sdk 2.0.0-dev.20230831-5 → 2.0.0-dev.20230901

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.
Files changed (56) hide show
  1. package/assets/bundle/api/utils/NestiaSimulator.ts +1 -23
  2. package/lib/NestiaSdkApplication.js +1 -1
  3. package/lib/NestiaSdkApplication.js.map +1 -1
  4. package/lib/analyses/ControllerAnalyzer.js +11 -5
  5. package/lib/analyses/ControllerAnalyzer.js.map +1 -1
  6. package/lib/analyses/ExceptionAnalyzer.js +7 -2
  7. package/lib/analyses/ExceptionAnalyzer.js.map +1 -1
  8. package/lib/analyses/ImportAnalyzer.js +1 -1
  9. package/lib/analyses/ImportAnalyzer.js.map +1 -1
  10. package/lib/analyses/ReflectAnalyzer.js +0 -10
  11. package/lib/analyses/ReflectAnalyzer.js.map +1 -1
  12. package/lib/executable/internal/NestiaSdkConfig.js +37 -46
  13. package/lib/executable/internal/NestiaSdkConfig.js.map +1 -1
  14. package/lib/generates/SwaggerGenerator.d.ts +10 -0
  15. package/lib/generates/SwaggerGenerator.js +29 -497
  16. package/lib/generates/SwaggerGenerator.js.map +1 -1
  17. package/lib/generates/internal/E2eFileProgrammer.js +5 -44
  18. package/lib/generates/internal/E2eFileProgrammer.js.map +1 -1
  19. package/lib/generates/internal/SdkFunctionProgrammer.js +12 -10
  20. package/lib/generates/internal/SdkFunctionProgrammer.js.map +1 -1
  21. package/lib/generates/internal/SdkSimulationProgrammer.js +4 -4
  22. package/lib/generates/internal/SdkSimulationProgrammer.js.map +1 -1
  23. package/lib/generates/internal/SwaggerSchemaGenerator.d.ts +19 -0
  24. package/lib/generates/internal/SwaggerSchemaGenerator.js +301 -0
  25. package/lib/generates/internal/SwaggerSchemaGenerator.js.map +1 -0
  26. package/lib/generates/internal/SwaggerSchemaValidator.d.ts +7 -0
  27. package/lib/generates/internal/SwaggerSchemaValidator.js +200 -0
  28. package/lib/generates/internal/SwaggerSchemaValidator.js.map +1 -0
  29. package/lib/structures/IController.d.ts +0 -4
  30. package/lib/structures/IRoute.d.ts +6 -3
  31. package/lib/structures/ISwaggerError.d.ts +6 -0
  32. package/lib/structures/ISwaggerError.js +3 -0
  33. package/lib/structures/ISwaggerError.js.map +1 -0
  34. package/lib/structures/ISwaggerRoute.d.ts +2 -1
  35. package/lib/structures/ISwaggerSchemaTuple.d.ts +6 -0
  36. package/lib/structures/ISwaggerSchemaTuple.js +3 -0
  37. package/lib/structures/ISwaggerSchemaTuple.js.map +1 -0
  38. package/lib/structures/ITypeTuple.d.ts +1 -1
  39. package/package.json +5 -5
  40. package/src/NestiaSdkApplication.ts +1 -1
  41. package/src/analyses/ControllerAnalyzer.ts +13 -4
  42. package/src/analyses/ExceptionAnalyzer.ts +3 -2
  43. package/src/analyses/ImportAnalyzer.ts +1 -1
  44. package/src/analyses/ReflectAnalyzer.ts +0 -10
  45. package/src/generates/SwaggerGenerator.ts +86 -478
  46. package/src/generates/internal/E2eFileProgrammer.ts +7 -49
  47. package/src/generates/internal/SdkFunctionProgrammer.ts +13 -11
  48. package/src/generates/internal/SdkSimulationProgrammer.ts +5 -5
  49. package/src/generates/internal/SwaggerSchemaGenerator.ts +433 -0
  50. package/src/generates/internal/SwaggerSchemaValidator.ts +222 -0
  51. package/src/structures/IController.ts +0 -4
  52. package/src/structures/IRoute.ts +6 -3
  53. package/src/structures/ISwaggerError.ts +8 -0
  54. package/src/structures/ISwaggerRoute.ts +2 -1
  55. package/src/structures/ISwaggerSchemaTuple.ts +7 -0
  56. package/src/structures/ITypeTuple.ts +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestia/sdk",
3
- "version": "2.0.0-dev.20230831-5",
3
+ "version": "2.0.0-dev.20230901",
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": "^2.0.0-dev.20230831-5",
38
+ "@nestia/fetcher": "^2.0.0-dev.20230901",
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.3.3"
47
+ "typia": "^5.0.1"
48
48
  },
49
49
  "peerDependencies": {
50
- "@nestia/fetcher": ">=2.0.0-dev.20230831-5",
50
+ "@nestia/fetcher": ">=2.0.0-dev.20230901",
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.3.3 <5.0.0"
56
+ "typia": ">=5.0.1 <6.0.0"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@nestjs/common": ">= 7.0.1",
@@ -287,7 +287,7 @@ const title = (str: string): void => {
287
287
  };
288
288
 
289
289
  const is_implicit_return_typed = (route: IRoute): boolean => {
290
- const name: string = route.output.name;
290
+ const name: string = route.output.typeName;
291
291
  if (name === "void") return false;
292
292
  else if (name.indexOf("readonly [") !== -1) return true;
293
293
 
@@ -133,8 +133,8 @@ export namespace ControllerAnalyzer {
133
133
  );
134
134
  else if (
135
135
  func.method === "HEAD" &&
136
- outputType.name !== "void" &&
137
- outputType.name !== "undefined"
136
+ outputType.typeName !== "void" &&
137
+ outputType.typeName !== "undefined"
138
138
  )
139
139
  throw new Error(
140
140
  `Error on ControllerAnalyzer.analyze(): HEAD method must return void type - ${controller.name}.${func.name}().`,
@@ -170,7 +170,11 @@ export namespace ControllerAnalyzer {
170
170
  const common: Omit<IRoute, "path" | "accessors"> = {
171
171
  ...func,
172
172
  parameters,
173
- output: { ...outputType, contentType: func.contentType },
173
+ output: {
174
+ type: outputType.type,
175
+ typeName: outputType.typeName,
176
+ contentType: func.contentType,
177
+ },
174
178
  imports,
175
179
  status: func.status,
176
180
 
@@ -185,6 +189,10 @@ export namespace ControllerAnalyzer {
185
189
  }:${character + 1}`;
186
190
  })(),
187
191
  description: CommentFactory.description(symbol),
192
+ operationId: tags
193
+ .find(({ name }) => name === "operation")
194
+ ?.text!?.[0].text.split(" ")[0]
195
+ .trim(),
188
196
  tags,
189
197
  setHeaders: tags
190
198
  .filter(
@@ -297,7 +305,8 @@ export namespace ControllerAnalyzer {
297
305
  ...param,
298
306
  name,
299
307
  optional,
300
- type: tuple,
308
+ type: tuple.type,
309
+ typeName: tuple.typeName,
301
310
  };
302
311
  }
303
312
  }
@@ -80,11 +80,12 @@ export namespace ExceptionAnalyzer {
80
80
  const matched: IController.IException[] = Object.entries(
81
81
  func.exceptions,
82
82
  )
83
- .filter(([_key, value]) => value.type === tuple.name)
83
+ .filter(([_key, value]) => value.type === tuple.typeName)
84
84
  .map(([_key, value]) => value);
85
85
  for (const m of matched)
86
86
  output[m.status] = {
87
- ...tuple,
87
+ type: tuple.type,
88
+ typeName: tuple.typeName,
88
89
  contentType: "application/json",
89
90
  description: m.description,
90
91
  };
@@ -25,7 +25,7 @@ export namespace ImportAnalyzer {
25
25
  try {
26
26
  return {
27
27
  type,
28
- name: explore_escaped_name(
28
+ typeName: explore_escaped_name(
29
29
  checker,
30
30
  genericDict,
31
31
  importDict,
@@ -328,16 +328,6 @@ export namespace ReflectAnalyzer {
328
328
  name: param.name,
329
329
  index: param.index,
330
330
  field: param.data,
331
- meta: (() => {
332
- const type = (param.factory as any).type;
333
- const nullable = (param.factory as any).nullable;
334
- if (type !== undefined && nullable !== undefined)
335
- return {
336
- type,
337
- nullable,
338
- };
339
- return undefined;
340
- })(),
341
331
  };
342
332
  else if (param.factory.name === "TypedQuery")
343
333
  return {