@apimatic/cli 1.1.0-alpha.21 → 1.1.0-alpha.22

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 (299) hide show
  1. package/README.md +112 -90
  2. package/lib/actions/action-result.d.ts +8 -3
  3. package/lib/actions/action-result.js +34 -15
  4. package/lib/actions/action-result.js.map +1 -1
  5. package/lib/actions/api/transform.d.ts +15 -0
  6. package/lib/actions/api/transform.js +48 -0
  7. package/lib/actions/api/transform.js.map +1 -0
  8. package/lib/actions/api/validate.d.ts +12 -0
  9. package/lib/actions/api/validate.js +41 -0
  10. package/lib/actions/api/validate.js.map +1 -0
  11. package/lib/actions/auth/login.d.ts +6 -5
  12. package/lib/actions/auth/login.js +25 -33
  13. package/lib/actions/auth/login.js.map +1 -1
  14. package/lib/actions/auth/logout.d.ts +8 -0
  15. package/lib/actions/auth/logout.js +15 -0
  16. package/lib/actions/auth/logout.js.map +1 -0
  17. package/lib/actions/auth/status.d.ts +11 -0
  18. package/lib/actions/auth/status.js +26 -0
  19. package/lib/actions/auth/status.js.map +1 -0
  20. package/lib/actions/portal/copilot.d.ts +5 -3
  21. package/lib/actions/portal/copilot.js +47 -37
  22. package/lib/actions/portal/copilot.js.map +1 -1
  23. package/lib/actions/portal/generate.d.ts +4 -5
  24. package/lib/actions/portal/generate.js +30 -37
  25. package/lib/actions/portal/generate.js.map +1 -1
  26. package/lib/actions/portal/quickstart.d.ts +16 -0
  27. package/lib/actions/portal/quickstart.js +145 -0
  28. package/lib/actions/portal/quickstart.js.map +1 -0
  29. package/lib/actions/portal/recipe/new-recipe.d.ts +11 -20
  30. package/lib/actions/portal/recipe/new-recipe.js +147 -221
  31. package/lib/actions/portal/recipe/new-recipe.js.map +1 -1
  32. package/lib/actions/portal/serve.d.ts +12 -10
  33. package/lib/actions/portal/serve.js +112 -17
  34. package/lib/actions/portal/serve.js.map +1 -1
  35. package/lib/actions/portal/toc/new-toc.d.ts +16 -15
  36. package/lib/actions/portal/toc/new-toc.js +80 -116
  37. package/lib/actions/portal/toc/new-toc.js.map +1 -1
  38. package/lib/actions/sdk/generate.d.ts +5 -6
  39. package/lib/actions/sdk/generate.js +22 -47
  40. package/lib/actions/sdk/generate.js.map +1 -1
  41. package/lib/application/portal/recipe/portal-recipe.d.ts +2 -2
  42. package/lib/application/portal/recipe/portal-recipe.js +9 -9
  43. package/lib/application/portal/recipe/portal-recipe.js.map +1 -1
  44. package/lib/application/portal/recipe/recipe-generator.d.ts +7 -2
  45. package/lib/application/portal/recipe/recipe-generator.js +21 -22
  46. package/lib/application/portal/recipe/recipe-generator.js.map +1 -1
  47. package/lib/client-utils/auth-manager.d.ts +1 -1
  48. package/lib/client-utils/auth-manager.js +3 -4
  49. package/lib/client-utils/auth-manager.js.map +1 -1
  50. package/lib/commands/api/transform.d.ts +6 -3
  51. package/lib/commands/api/transform.js +43 -94
  52. package/lib/commands/api/transform.js.map +1 -1
  53. package/lib/commands/api/validate.d.ts +6 -3
  54. package/lib/commands/api/validate.js +27 -66
  55. package/lib/commands/api/validate.js.map +1 -1
  56. package/lib/commands/auth/login.d.ts +2 -1
  57. package/lib/commands/auth/login.js +15 -9
  58. package/lib/commands/auth/login.js.map +1 -1
  59. package/lib/commands/auth/logout.d.ts +3 -1
  60. package/lib/commands/auth/logout.js +12 -13
  61. package/lib/commands/auth/logout.js.map +1 -1
  62. package/lib/commands/auth/status.d.ts +1 -0
  63. package/lib/commands/auth/status.js +13 -11
  64. package/lib/commands/auth/status.js.map +1 -1
  65. package/lib/commands/portal/copilot.d.ts +2 -2
  66. package/lib/commands/portal/copilot.js +22 -20
  67. package/lib/commands/portal/copilot.js.map +1 -1
  68. package/lib/commands/portal/generate.d.ts +3 -4
  69. package/lib/commands/portal/generate.js +19 -14
  70. package/lib/commands/portal/generate.js.map +1 -1
  71. package/lib/commands/portal/quickstart.d.ts +3 -4
  72. package/lib/commands/portal/quickstart.js +24 -101
  73. package/lib/commands/portal/quickstart.js.map +1 -1
  74. package/lib/commands/portal/recipe/new.d.ts +3 -1
  75. package/lib/commands/portal/recipe/new.js +31 -23
  76. package/lib/commands/portal/recipe/new.js.map +1 -1
  77. package/lib/commands/portal/serve.d.ts +5 -5
  78. package/lib/commands/portal/serve.js +31 -57
  79. package/lib/commands/portal/serve.js.map +1 -1
  80. package/lib/commands/portal/toc/new.d.ts +2 -2
  81. package/lib/commands/portal/toc/new.js +35 -26
  82. package/lib/commands/portal/toc/new.js.map +1 -1
  83. package/lib/commands/sdk/generate.d.ts +5 -4
  84. package/lib/commands/sdk/generate.js +26 -17
  85. package/lib/commands/sdk/generate.js.map +1 -1
  86. package/lib/hooks/not-found.js +1 -1
  87. package/lib/hooks/not-found.js.map +1 -1
  88. package/lib/infrastructure/api-utils.js +3 -2
  89. package/lib/infrastructure/api-utils.js.map +1 -1
  90. package/lib/{application/portal/serve/watcher-handler.d.ts → infrastructure/debounce-service.d.ts} +3 -3
  91. package/lib/{application/portal/serve/watcher-handler.js → infrastructure/debounce-service.js} +5 -4
  92. package/lib/infrastructure/debounce-service.js.map +1 -0
  93. package/lib/infrastructure/env-info.d.ts +1 -1
  94. package/lib/infrastructure/env-info.js +2 -2
  95. package/lib/infrastructure/env-info.js.map +1 -1
  96. package/lib/infrastructure/file-service.d.ts +7 -2
  97. package/lib/infrastructure/file-service.js +46 -5
  98. package/lib/infrastructure/file-service.js.map +1 -1
  99. package/lib/infrastructure/launcher-service.d.ts +2 -0
  100. package/lib/infrastructure/launcher-service.js +4 -0
  101. package/lib/infrastructure/launcher-service.js.map +1 -1
  102. package/lib/infrastructure/network-service.d.ts +3 -0
  103. package/lib/infrastructure/network-service.js +7 -0
  104. package/lib/infrastructure/network-service.js.map +1 -0
  105. package/lib/infrastructure/services/api-client-factory.d.ts +6 -0
  106. package/lib/infrastructure/services/api-client-factory.js +20 -0
  107. package/lib/infrastructure/services/api-client-factory.js.map +1 -0
  108. package/lib/infrastructure/services/api-service.d.ts +2 -2
  109. package/lib/infrastructure/services/api-service.js +6 -6
  110. package/lib/infrastructure/services/api-service.js.map +1 -1
  111. package/lib/infrastructure/services/auth-service.d.ts +1 -1
  112. package/lib/infrastructure/services/auth-service.js +7 -5
  113. package/lib/infrastructure/services/auth-service.js.map +1 -1
  114. package/lib/infrastructure/services/file-download-service.d.ts +15 -0
  115. package/lib/infrastructure/services/file-download-service.js +104 -0
  116. package/lib/infrastructure/services/file-download-service.js.map +1 -0
  117. package/lib/infrastructure/services/portal-service.d.ts +11 -13
  118. package/lib/infrastructure/services/portal-service.js +73 -102
  119. package/lib/infrastructure/services/portal-service.js.map +1 -1
  120. package/lib/infrastructure/services/telemetry-service.d.ts +3 -2
  121. package/lib/infrastructure/services/telemetry-service.js +4 -6
  122. package/lib/infrastructure/services/telemetry-service.js.map +1 -1
  123. package/lib/infrastructure/services/transformation-service.d.ts +23 -0
  124. package/lib/infrastructure/services/transformation-service.js +56 -0
  125. package/lib/infrastructure/services/transformation-service.js.map +1 -0
  126. package/lib/infrastructure/services/validation-service.d.ts +17 -0
  127. package/lib/infrastructure/services/validation-service.js +49 -0
  128. package/lib/infrastructure/services/validation-service.js.map +1 -0
  129. package/lib/prompts/api/transform.d.ts +11 -0
  130. package/lib/prompts/api/transform.js +30 -0
  131. package/lib/prompts/api/transform.js.map +1 -0
  132. package/lib/prompts/api/validate.d.ts +12 -0
  133. package/lib/prompts/api/validate.js +41 -0
  134. package/lib/prompts/api/validate.js.map +1 -0
  135. package/lib/prompts/auth/login.d.ts +6 -1
  136. package/lib/prompts/auth/login.js +12 -3
  137. package/lib/prompts/auth/login.js.map +1 -1
  138. package/lib/prompts/auth/logout.d.ts +3 -0
  139. package/lib/prompts/auth/logout.js +7 -0
  140. package/lib/prompts/auth/logout.js.map +1 -0
  141. package/lib/prompts/auth/status.d.ts +8 -0
  142. package/lib/prompts/auth/status.js +21 -0
  143. package/lib/prompts/auth/status.js.map +1 -0
  144. package/lib/prompts/format.d.ts +33 -0
  145. package/lib/prompts/format.js +99 -0
  146. package/lib/prompts/format.js.map +1 -0
  147. package/lib/prompts/portal/copilot.d.ts +8 -4
  148. package/lib/prompts/portal/copilot.js +35 -24
  149. package/lib/prompts/portal/copilot.js.map +1 -1
  150. package/lib/prompts/portal/generate.d.ts +9 -7
  151. package/lib/prompts/portal/generate.js +22 -23
  152. package/lib/prompts/portal/generate.js.map +1 -1
  153. package/lib/prompts/portal/quickstart.d.ts +30 -29
  154. package/lib/prompts/portal/quickstart.js +99 -193
  155. package/lib/prompts/portal/quickstart.js.map +1 -1
  156. package/lib/prompts/portal/recipe/new-recipe.d.ts +23 -18
  157. package/lib/prompts/portal/recipe/new-recipe.js +70 -108
  158. package/lib/prompts/portal/recipe/new-recipe.js.map +1 -1
  159. package/lib/prompts/portal/serve.d.ts +10 -3
  160. package/lib/prompts/portal/serve.js +30 -11
  161. package/lib/prompts/portal/serve.js.map +1 -1
  162. package/lib/prompts/portal/toc/new-toc.d.ts +12 -8
  163. package/lib/prompts/portal/toc/new-toc.js +20 -22
  164. package/lib/prompts/portal/toc/new-toc.js.map +1 -1
  165. package/lib/prompts/sdk/generate.d.ts +7 -7
  166. package/lib/prompts/sdk/generate.js +17 -23
  167. package/lib/prompts/sdk/generate.js.map +1 -1
  168. package/lib/types/api/account.d.ts +1 -1
  169. package/lib/types/api/transform.d.ts +14 -25
  170. package/lib/types/api/transform.js +16 -16
  171. package/lib/types/api/transform.js.map +1 -1
  172. package/lib/types/build/build.d.ts +9 -1
  173. package/lib/types/build/build.js +5 -2
  174. package/lib/types/build/build.js.map +1 -1
  175. package/lib/types/build-context.d.ts +5 -1
  176. package/lib/types/build-context.js +21 -4
  177. package/lib/types/build-context.js.map +1 -1
  178. package/lib/types/common/command-metadata.d.ts +4 -0
  179. package/lib/types/common/command-metadata.js +2 -0
  180. package/lib/types/common/command-metadata.js.map +1 -0
  181. package/lib/types/events/domain-event.d.ts +1 -1
  182. package/lib/types/events/domain-event.js.map +1 -1
  183. package/lib/types/events/quickstart-completed.js +1 -1
  184. package/lib/types/events/quickstart-initiated.js +1 -1
  185. package/lib/types/events/recipe-creation-failed.d.ts +1 -1
  186. package/lib/types/events/recipe-creation-failed.js +1 -1
  187. package/lib/types/events/recipe-creation-failed.js.map +1 -1
  188. package/lib/types/events/toc-creation-failed.d.ts +1 -1
  189. package/lib/types/events/toc-creation-failed.js +1 -1
  190. package/lib/types/events/toc-creation-failed.js.map +1 -1
  191. package/lib/types/file/directory.d.ts +17 -0
  192. package/lib/types/file/directory.js +86 -0
  193. package/lib/types/file/directory.js.map +1 -0
  194. package/lib/types/file/directoryPath.d.ts +3 -1
  195. package/lib/types/file/directoryPath.js +8 -2
  196. package/lib/types/file/directoryPath.js.map +1 -1
  197. package/lib/types/file/fileName.d.ts +2 -0
  198. package/lib/types/file/fileName.js +12 -0
  199. package/lib/types/file/fileName.js.map +1 -1
  200. package/lib/types/file/filePath.d.ts +2 -0
  201. package/lib/types/file/filePath.js +21 -0
  202. package/lib/types/file/filePath.js.map +1 -1
  203. package/lib/types/file/resource-input.d.ts +5 -0
  204. package/lib/types/file/resource-input.js +42 -0
  205. package/lib/types/file/resource-input.js.map +1 -0
  206. package/lib/types/file/urlPath.d.ts +6 -0
  207. package/lib/types/file/urlPath.js +22 -0
  208. package/lib/types/file/urlPath.js.map +1 -0
  209. package/lib/types/portal-context.d.ts +3 -1
  210. package/lib/types/portal-context.js +10 -0
  211. package/lib/types/portal-context.js.map +1 -1
  212. package/lib/types/recipe/recipe.d.ts +2 -17
  213. package/lib/types/recipe-context.d.ts +8 -0
  214. package/lib/types/recipe-context.js +21 -0
  215. package/lib/types/recipe-context.js.map +1 -0
  216. package/lib/types/resource-context.d.ts +12 -0
  217. package/lib/types/resource-context.js +30 -0
  218. package/lib/types/resource-context.js.map +1 -0
  219. package/lib/types/sdk/generate.d.ts +2 -15
  220. package/lib/types/sdk/generate.js +24 -10
  221. package/lib/types/sdk/generate.js.map +1 -1
  222. package/lib/types/sdk-context.d.ts +6 -5
  223. package/lib/types/sdk-context.js +12 -8
  224. package/lib/types/sdk-context.js.map +1 -1
  225. package/lib/types/sdl/sdl.d.ts +9 -0
  226. package/lib/types/sdl/sdl.js +46 -1
  227. package/lib/types/sdl/sdl.js.map +1 -1
  228. package/lib/types/spec-context.d.ts +3 -0
  229. package/lib/types/spec-context.js +7 -2
  230. package/lib/types/spec-context.js.map +1 -1
  231. package/lib/types/temp-context.d.ts +11 -0
  232. package/lib/types/temp-context.js +27 -0
  233. package/lib/types/temp-context.js.map +1 -0
  234. package/lib/types/toc-context.d.ts +12 -0
  235. package/lib/types/toc-context.js +26 -0
  236. package/lib/types/toc-context.js.map +1 -0
  237. package/lib/types/transform-context.d.ts +13 -0
  238. package/lib/types/transform-context.js +30 -0
  239. package/lib/types/transform-context.js.map +1 -0
  240. package/lib/types/utils.d.ts +0 -9
  241. package/lib/utils/string-utils.d.ts +1 -0
  242. package/lib/utils/string-utils.js +10 -0
  243. package/lib/utils/string-utils.js.map +1 -0
  244. package/lib/utils/utils.d.ts +2 -27
  245. package/lib/utils/utils.js +6 -145
  246. package/lib/utils/utils.js.map +1 -1
  247. package/package.json +4 -4
  248. package/lib/application/portal/serve/portal-watcher.d.ts +0 -11
  249. package/lib/application/portal/serve/portal-watcher.js +0 -64
  250. package/lib/application/portal/serve/portal-watcher.js.map +0 -1
  251. package/lib/application/portal/serve/serve-handler.d.ts +0 -16
  252. package/lib/application/portal/serve/serve-handler.js +0 -91
  253. package/lib/application/portal/serve/serve-handler.js.map +0 -1
  254. package/lib/application/portal/serve/watcher-handler.js.map +0 -1
  255. package/lib/application/portal/toc/sdl-parser.d.ts +0 -19
  256. package/lib/application/portal/toc/sdl-parser.js +0 -90
  257. package/lib/application/portal/toc/sdl-parser.js.map +0 -1
  258. package/lib/client-utils/sdk-client.d.ts +0 -18
  259. package/lib/client-utils/sdk-client.js +0 -41
  260. package/lib/client-utils/sdk-client.js.map +0 -1
  261. package/lib/config/env.d.ts +0 -26
  262. package/lib/config/env.js +0 -27
  263. package/lib/config/env.js.map +0 -1
  264. package/lib/controllers/api/transform.d.ts +0 -5
  265. package/lib/controllers/api/transform.js +0 -50
  266. package/lib/controllers/api/transform.js.map +0 -1
  267. package/lib/controllers/api/validate.d.ts +0 -3
  268. package/lib/controllers/api/validate.js +0 -29
  269. package/lib/controllers/api/validate.js.map +0 -1
  270. package/lib/controllers/portal/quickstart.d.ts +0 -13
  271. package/lib/controllers/portal/quickstart.js +0 -214
  272. package/lib/controllers/portal/quickstart.js.map +0 -1
  273. package/lib/infrastructure/api-client-utils.d.ts +0 -6
  274. package/lib/infrastructure/api-client-utils.js +0 -34
  275. package/lib/infrastructure/api-client-utils.js.map +0 -1
  276. package/lib/prompts/portal/common/base-prompts.d.ts +0 -7
  277. package/lib/prompts/portal/common/base-prompts.js +0 -19
  278. package/lib/prompts/portal/common/base-prompts.js.map +0 -1
  279. package/lib/types/api/validate.d.ts +0 -12
  280. package/lib/types/api/validate.js +0 -2
  281. package/lib/types/api/validate.js.map +0 -1
  282. package/lib/types/common/result.d.ts +0 -17
  283. package/lib/types/common/result.js +0 -32
  284. package/lib/types/common/result.js.map +0 -1
  285. package/lib/types/portal/generate.d.ts +0 -13
  286. package/lib/types/portal/generate.js +0 -3
  287. package/lib/types/portal/generate.js.map +0 -1
  288. package/lib/types/portal/quickstart.d.ts +0 -17
  289. package/lib/types/portal/quickstart.js +0 -2
  290. package/lib/types/portal/quickstart.js.map +0 -1
  291. package/lib/types/portal/serve.d.ts +0 -12
  292. package/lib/types/portal/serve.js +0 -2
  293. package/lib/types/portal/serve.js.map +0 -1
  294. package/lib/validators/common/directoryValidator.d.ts +0 -5
  295. package/lib/validators/common/directoryValidator.js +0 -22
  296. package/lib/validators/common/directoryValidator.js.map +0 -1
  297. package/lib/validators/portal/serve-validator.d.ts +0 -6
  298. package/lib/validators/portal/serve-validator.js +0 -15
  299. package/lib/validators/portal/serve-validator.js.map +0 -1
@@ -1,167 +1,115 @@
1
- import { ContentType, DocsPortalManagementController, Client, UnauthorizedResponseError, ProblemDetailsError, FileWrapper, ApiError, TransformationController, ExportFormats, InternalServerErrorResponseError, CodeGenerationExternalApisController, BadRequestResponseSdkError, Accept, Environment } from "@apimatic/sdk";
1
+ var _a;
2
+ import { Accept, ApiError, BadRequestResponseSdkError, CodeGenerationExternalApisController, ContentType, DocsPortalManagementController, UnauthorizedResponseError, ProblemDetailsError, FileWrapper, TransformationController, ExportFormats, InternalServerErrorResponseError, Platforms } from "@apimatic/sdk";
2
3
  import { getAuthInfo } from "../../client-utils/auth-manager.js";
3
- import { Result } from "../../types/common/result.js";
4
- import { getMessageInRedColor, parseStreamBodyToJson } from "../../utils/utils.js";
4
+ import { parseStreamBodyToJson } from "../../utils/utils.js";
5
5
  import { FileService } from "../file-service.js";
6
- import { envInfo } from "../env-info.js";
6
+ import { apiClientFactory } from "./api-client-factory.js";
7
+ import { err, ok } from "neverthrow";
8
+ import { Language } from "../../types/sdk/generate.js";
9
+ import { handleServiceError } from "../api-utils.js";
7
10
  export class PortalService {
8
11
  constructor() {
9
12
  this.CONTENT_TYPE = ContentType.EnumMultipartformdata;
10
- this.TIMEOUT = 0;
11
13
  this.fileService = new FileService();
12
14
  this.createAuthorizationHeader = (authInfo, overrideAuthKey) => {
13
15
  const key = overrideAuthKey || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey);
14
16
  return `X-Auth-Key ${key !== null && key !== void 0 ? key : ""}`;
15
17
  };
16
- this.createApiClient = (authorizationHeader) => {
17
- if (envInfo.getBaseUrl()) {
18
- return this.createTestingApiClient(authorizationHeader);
19
- }
20
- return this.createProductionApiClient(authorizationHeader);
21
- };
22
- this.createProductionApiClient = (authorizationHeader) => {
23
- return new Client({
24
- customHeaderAuthenticationCredentials: {
25
- Authorization: authorizationHeader
26
- },
27
- userAgent: envInfo.getUserAgent(),
28
- timeout: this.TIMEOUT,
29
- environment: Environment.Production
30
- });
31
- };
32
- this.createTestingApiClient = (authorizationHeader) => {
33
- return new Client({
34
- customHeaderAuthenticationCredentials: {
35
- Authorization: authorizationHeader
36
- },
37
- userAgent: envInfo.getUserAgent(),
38
- timeout: this.TIMEOUT,
39
- environment: Environment.Testing,
40
- customUrl: envInfo.getBaseUrl()
41
- });
42
- };
43
18
  this.createOriginQueryParameter = (commandName) => {
44
19
  return {
45
20
  origin: `APIMATIC CLI ${commandName}`
46
21
  };
47
22
  };
48
- this.handlePortalGenerationErrors = async (error) => {
49
- var _a, _b, _c, _d, _e;
50
- if (error instanceof UnauthorizedResponseError) {
51
- //401
52
- const unAuthError = error;
53
- return getMessageInRedColor((_b = (_a = unAuthError.result) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : "Authorization has been denied for this request.");
54
- }
55
- else if (error instanceof ProblemDetailsError) {
56
- //400 & 403
57
- const probDetailsError = error;
58
- const message = (_d = (_c = Object.values(probDetailsError.result.errors)[0]) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : null;
59
- return getMessageInRedColor(probDetailsError.result.title + "\n- " + message);
60
- }
61
- else if (error instanceof ApiError && error.statusCode === 422) {
62
- //422
63
- return error.body;
64
- }
65
- else if (error instanceof InternalServerErrorResponseError) {
66
- //500
67
- const internalServerError = error;
68
- const message = (_e = internalServerError.result) === null || _e === void 0 ? void 0 : _e.message;
69
- return getMessageInRedColor(`${message !== null && message !== void 0 ? message : "An unkown error occurred."} Please try again later or reach out to our team at support@apimatic.io for help if your problem persists.`);
70
- }
71
- else {
72
- return getMessageInRedColor("An unexpected error occurred while generating the portal, please try again later. If the problem persists, please reach out to our team at support@apimatic.io");
73
- }
74
- };
75
23
  this.handleSdkGenerationErrors = async (error) => {
76
- var _a, _b, _c, _d, _e;
24
+ var _b, _c, _d, _e, _f;
77
25
  if (error instanceof BadRequestResponseSdkError) {
78
26
  //400
79
- const badRequestError = error;
80
- const errorMessage = this.parseBadRequestResponse((_a = badRequestError.result) === null || _a === void 0 ? void 0 : _a.message);
81
- return getMessageInRedColor(errorMessage);
27
+ return this.parseBadRequestResponse((_b = error.result) === null || _b === void 0 ? void 0 : _b.message);
82
28
  }
83
- else if (error instanceof UnauthorizedResponseError) {
29
+ if (error instanceof UnauthorizedResponseError) {
84
30
  //401
85
- const unAuthError = error;
86
- return getMessageInRedColor((_c = (_b = unAuthError.result) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : "Authorization has been denied for this request.");
31
+ return (_d = (_c = error.result) === null || _c === void 0 ? void 0 : _c.message) !== null && _d !== void 0 ? _d : "Authorization has been denied for this request.";
87
32
  }
88
- else if (error instanceof ProblemDetailsError) {
33
+ if (error instanceof ProblemDetailsError) {
89
34
  // 403
90
- const probDetailsError = error;
91
- const message = (_e = (_d = probDetailsError.result.errors) === null || _d === void 0 ? void 0 : _d[""]) === null || _e === void 0 ? void 0 : _e[0];
92
- return getMessageInRedColor(probDetailsError.result.title + "\n- " + message);
93
- }
94
- else {
95
- return getMessageInRedColor("An unexpected error occurred while generating the SDK, please try again later. If the problem persists, please reach out to our team at support@apimatic.io");
35
+ const message = (_f = (_e = error.result.errors) === null || _e === void 0 ? void 0 : _e[""]) === null || _f === void 0 ? void 0 : _f[0];
36
+ return error.result.title + "\n- " + message;
96
37
  }
38
+ return "An unexpected error occurred while generating the portal, please try again later. If the problem persists, please reach out to our team at support@apimatic.io";
39
+ };
40
+ this.languagePlatform = {
41
+ [Language.CSHARP]: Platforms.CsNetStandardLib,
42
+ [Language.JAVA]: Platforms.JavaEclipseJreLib,
43
+ [Language.PHP]: Platforms.PhpGenericLibV2,
44
+ [Language.PYTHON]: Platforms.PythonGenericLib,
45
+ [Language.RUBY]: Platforms.RubyGenericLib,
46
+ [Language.TYPESCRIPT]: Platforms.TsGenericLib,
47
+ [Language.GO]: Platforms.GoGenericLib
97
48
  };
98
49
  }
99
- //TODO: Pass stream as parameter instead of file path.
100
- async generatePortal(buildPath, configDir, commandName, authKey) {
50
+ // TODO: Pass stream as parameter instead of file path.
51
+ async generatePortal(buildPath, configDir, eventMetadata, authKey) {
101
52
  const buildFileStream = await this.fileService.getStream(buildPath);
102
53
  const file = new FileWrapper(buildFileStream);
103
54
  const authInfo = await getAuthInfo(configDir.toString());
104
55
  const authorizationHeader = this.createAuthorizationHeader(authInfo, authKey);
105
- const client = this.createApiClient(authorizationHeader);
56
+ const client = apiClientFactory.createApiClient(authorizationHeader, eventMetadata.shell);
106
57
  const docsPortalManagementController = new DocsPortalManagementController(client);
107
58
  try {
108
- const response = await docsPortalManagementController.generateOnPremPortalViaBuildInput(this.CONTENT_TYPE, file, this.createOriginQueryParameter(commandName));
109
- return Result.success(response.result);
59
+ const response = await docsPortalManagementController.generateOnPremPortalViaBuildInput(this.CONTENT_TYPE, file, this.createOriginQueryParameter(eventMetadata.commandName));
60
+ return ok(response.result);
110
61
  }
111
62
  catch (error) {
112
- return Result.failure(await this.handlePortalGenerationErrors(error));
63
+ return err(await _a.handlePortalGenerationErrors(error));
113
64
  }
114
65
  finally {
115
66
  buildFileStream.close();
116
67
  }
117
68
  }
118
- //TODO: Pass stream as parameter instead of file path.
119
- async generateSdk(specPath, sdkPlatform, configDir, commandName, authKey) {
69
+ // TODO: Pass stream as parameter instead of file path.
70
+ async generateSdk(specPath, language, configDir, commandMetadata, authKey) {
120
71
  const specFileStream = await this.fileService.getStream(specPath);
121
72
  const file = new FileWrapper(specFileStream);
122
73
  const authInfo = await getAuthInfo(configDir.toString());
123
74
  const authorizationHeader = this.createAuthorizationHeader(authInfo, authKey);
124
- const client = this.createApiClient(authorizationHeader);
75
+ const client = apiClientFactory.createApiClient(authorizationHeader, commandMetadata.shell);
125
76
  const sdkGenerationController = new CodeGenerationExternalApisController(client);
126
77
  try {
127
- const response = await sdkGenerationController.generateSdkViaFile(Accept.EnumApplicationjson, file, sdkPlatform, this.createOriginQueryParameter(commandName));
78
+ const response = await sdkGenerationController.generateSdkViaFile(Accept.EnumApplicationjson, file, this.languagePlatform[language], this.createOriginQueryParameter(commandMetadata.commandName));
128
79
  const sdkResponse = await sdkGenerationController.downloadSdk(response.result.id);
129
- return Result.success(sdkResponse.result);
80
+ return ok(sdkResponse.result);
130
81
  }
131
82
  catch (error) {
132
- return Result.failure(await this.handleSdkGenerationErrors(error));
83
+ return err(await this.handleSdkGenerationErrors(error));
133
84
  }
134
85
  finally {
135
86
  specFileStream.close();
136
87
  }
137
88
  }
138
- async generateSdl(specFileStream, configDir, commandName) {
89
+ async generateSdl(specFileStream, configDir, commandMetadata) {
139
90
  const file = new FileWrapper(specFileStream);
140
- const authInfo = await getAuthInfo(configDir);
91
+ const authInfo = await getAuthInfo(configDir.toString());
141
92
  const authorizationHeader = this.createAuthorizationHeader(authInfo, null);
142
- const client = this.createApiClient(authorizationHeader);
93
+ const client = apiClientFactory.createApiClient(authorizationHeader, commandMetadata.shell);
143
94
  const transformationController = new TransformationController(client);
144
95
  try {
145
- const generation = await transformationController.transformViaFile(ContentType.EnumMultipartformdata, file, ExportFormats.Apimatic, this.createOriginQueryParameter(commandName));
96
+ const generation = await transformationController.transformViaFile(ContentType.EnumMultipartformdata, file, ExportFormats.Apimatic, this.createOriginQueryParameter(commandMetadata.commandName));
146
97
  if (!generation.result.success) {
147
- return this.createGenericErrorResult();
98
+ return err("INVALID_RESPONSE" /* ServiceError.InvalidResponse */);
148
99
  }
149
100
  const transformationId = generation.result.id;
150
101
  const { result } = await transformationController.downloadTransformedFile(transformationId);
151
102
  if (result.readable) {
152
- return Result.success((await parseStreamBodyToJson(result)));
103
+ return ok((await parseStreamBodyToJson(result)));
153
104
  }
154
105
  else {
155
- return this.createGenericErrorResult();
106
+ return err("INVALID_RESPONSE" /* ServiceError.InvalidResponse */);
156
107
  }
157
108
  }
158
- catch (_a) {
159
- return this.createGenericErrorResult();
109
+ catch (error) {
110
+ return err(handleServiceError(error));
160
111
  }
161
112
  }
162
- createGenericErrorResult() {
163
- return Result.failure("An unexpected error occurred");
164
- }
165
113
  parseBadRequestResponse(errorMessage) {
166
114
  // #TODO: Fix server-side error message and simplify this function
167
115
  if (!errorMessage) {
@@ -169,13 +117,12 @@ export class PortalService {
169
117
  }
170
118
  // Parse the JSON string
171
119
  const parsedResult = JSON.parse(errorMessage);
172
- // Check if it has the expected structure with Errors array
120
+ // Check if it has the expected structure with Errors
173
121
  if (parsedResult.Errors && Array.isArray(parsedResult.Errors) && parsedResult.Errors.length > 0) {
174
122
  // Get the first error and clean it up
175
- const firstError = parsedResult.Errors[0];
176
- // Split on <br/> and take first part, then strip remaining HTML tags
177
- const cleanError = firstError.split("<br/>")[0].replace(/<[^<>]*?>/g, "");
178
- return cleanError;
123
+ return parsedResult.Errors[0].split(".")[0] + ".";
124
+ // Split on <br/> and take the first part, then strip remaining HTML tags
125
+ // return firstError.split("<br/>")[0].replace(/<[^<>]*?>/g, "");
179
126
  }
180
127
  else if (parsedResult.Success === false) {
181
128
  return "API definition file validation failed.";
@@ -183,4 +130,28 @@ export class PortalService {
183
130
  return errorMessage;
184
131
  }
185
132
  }
133
+ _a = PortalService;
134
+ PortalService.handlePortalGenerationErrors = async (error) => {
135
+ var _b, _c, _d, _e, _f;
136
+ if (error instanceof UnauthorizedResponseError) {
137
+ // 401
138
+ return (_c = (_b = error.result) === null || _b === void 0 ? void 0 : _b.message) !== null && _c !== void 0 ? _c : "Authorization has been denied for this request.";
139
+ }
140
+ if (error instanceof ProblemDetailsError) {
141
+ // 400 & 403
142
+ const probDetailsError = error;
143
+ const message = (_e = (_d = Object.values(probDetailsError.result.errors)[0]) === null || _d === void 0 ? void 0 : _d[0]) !== null && _e !== void 0 ? _e : null;
144
+ return error.result.title + "\n- " + message;
145
+ }
146
+ if (error instanceof ApiError && error.statusCode === 422) {
147
+ // 422
148
+ return error.body;
149
+ }
150
+ if (error instanceof InternalServerErrorResponseError) {
151
+ // 422
152
+ const message = (_f = error.result) === null || _f === void 0 ? void 0 : _f.message;
153
+ return `${message !== null && message !== void 0 ? message : "An unknown error occurred."} Please try again later or reach out to our team at support@apimatic.io for help if your problem persists.`;
154
+ }
155
+ return "An unexpected error occurred while generating the portal, please try again later. If the problem persists, please reach out to our team at support@apimatic.io";
156
+ };
186
157
  //# sourceMappingURL=portal-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"portal-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/portal-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"portal-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/portal-service.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { DomainEvent } from "../../types/events/domain-event.js";
2
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
2
3
  export declare class TelemetryService {
3
4
  private readonly configDirectory;
4
5
  private readonly apiService;
5
- constructor(configDirectory: string);
6
- trackEvent<T extends DomainEvent>(event: T): Promise<void>;
6
+ constructor(configDirectory: DirectoryPath);
7
+ trackEvent<T extends DomainEvent>(event: T, shell: string): Promise<void>;
7
8
  private getAuthInfo;
8
9
  }
@@ -9,8 +9,8 @@ export class TelemetryService {
9
9
  this.configDirectory = configDirectory;
10
10
  this.apiService = new ApiService();
11
11
  }
12
- async trackEvent(event) {
13
- const authInfo = await this.getAuthInfo(this.configDirectory);
12
+ async trackEvent(event, shell) {
13
+ const authInfo = await this.getAuthInfo(this.configDirectory.toString());
14
14
  const telemetryOptedOut = process.env.APIMATIC_CLI_TELEMETRY_OPTOUT === "1";
15
15
  const authKey = authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey;
16
16
  if (telemetryOptedOut || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.APIMATIC_CLI_TELEMETRY_OPTOUT) === "1" || !authKey) {
@@ -22,11 +22,9 @@ export class TelemetryService {
22
22
  cliVersion: envInfo.getCLIVersion(),
23
23
  platform: os.platform(),
24
24
  releaseVersion: os.release(),
25
- nodeVersion: process.version,
25
+ nodeVersion: process.version
26
26
  };
27
- const result = await this.apiService.sendTelemetry(JSON.stringify(payload), authKey);
28
- // eslint-disable-next-line no-undef
29
- result.mapErr((err) => console.log(err));
27
+ await this.apiService.sendTelemetry(JSON.stringify(payload), authKey, shell);
30
28
  }
31
29
  async getAuthInfo(configDirectory) {
32
30
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/telemetry-service.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,UAAU,CAAC;AAG1B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAW9C,MAAM,OAAO,gBAAgB;IAG3B,YAA6B,eAAuB;QAAvB,oBAAe,GAAf,eAAe,CAAQ;QAFnC,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAG/C,CAAC;IAEM,KAAK,CAAC,UAAU,CAAwB,KAAQ;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9D,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,GAAG,CAAC;QAC5E,MAAM,OAAO,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC;QAElC,IAAI,iBAAiB,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,6BAA6B,MAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACrF,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAqB;YAChC,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE;YACnC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,cAAc,EAAE,EAAE,CAAC,OAAO,EAAE;YAC5B,WAAW,EAAE,OAAO,CAAC,OAAO;SAC7B,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QACrF,oCAAoC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,eAAuB;QAC/C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1F,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"telemetry-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/telemetry-service.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,UAAU,CAAC;AAG1B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAY9C,MAAM,OAAO,gBAAgB;IAG3B,YAA6B,eAA8B;QAA9B,oBAAe,GAAf,eAAe,CAAe;QAF1C,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAEe,CAAC;IAExD,KAAK,CAAC,UAAU,CAAwB,KAAQ,EAAE,KAAa;QACpE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzE,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,GAAG,CAAC;QAC5E,MAAM,OAAO,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC;QAElC,IAAI,iBAAiB,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,6BAA6B,MAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACrF,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAqB;YAChC,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE;YACnC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,cAAc,EAAE,EAAE,CAAC,OAAO,EAAE;YAC5B,WAAW,EAAE,OAAO,CAAC,OAAO;SAC7B,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/E,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,eAAuB;QAC/C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1F,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ import { ExportFormats, ApiValidationSummary } from "@apimatic/sdk";
2
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
3
+ import { FilePath } from "../../types/file/filePath.js";
4
+ import { CommandMetadata } from "../../types/common/command-metadata.js";
5
+ import { Result } from "neverthrow";
6
+ export interface TransformViaFileParams {
7
+ file: FilePath;
8
+ format: ExportFormats;
9
+ configDir: DirectoryPath;
10
+ commandMetadata: CommandMetadata;
11
+ authKey?: string | null;
12
+ }
13
+ export interface TransformationResultData {
14
+ stream: NodeJS.ReadableStream;
15
+ apiValidationSummary: ApiValidationSummary;
16
+ }
17
+ export declare class TransformationService {
18
+ private readonly CONTENT_TYPE;
19
+ transformViaFile({ file, format, configDir, commandMetadata, authKey }: TransformViaFileParams): Promise<Result<TransformationResultData, string>>;
20
+ private createAuthorizationHeader;
21
+ private readonly createOriginQueryParameter;
22
+ private readonly handleTransformationErrors;
23
+ }
@@ -0,0 +1,56 @@
1
+ import fsExtra from "fs-extra";
2
+ import { ContentType, FileWrapper, TransformationController, ApiError } from "@apimatic/sdk";
3
+ import { getAuthInfo } from "../../client-utils/auth-manager.js";
4
+ import { apiClientFactory } from "./api-client-factory.js";
5
+ import { err, ok } from "neverthrow";
6
+ export class TransformationService {
7
+ constructor() {
8
+ this.CONTENT_TYPE = ContentType.EnumMultipartformdata;
9
+ this.createOriginQueryParameter = (commandName) => {
10
+ return {
11
+ origin: `APIMATIC CLI ${commandName}`
12
+ };
13
+ };
14
+ this.handleTransformationErrors = async (error) => {
15
+ if (error instanceof ApiError) {
16
+ const apiError = error;
17
+ if (apiError.statusCode === 400) {
18
+ return "Your API Definition is invalid. Please use the APIMatic VS Code Extension to fix the errors and try again.";
19
+ }
20
+ else if (apiError.statusCode === 401) {
21
+ const message = JSON.parse(apiError.body).message;
22
+ return `${message} You are not authorized to perform this action. Please run 'auth:login' or provide a valid auth key.`;
23
+ }
24
+ return `Error ${apiError.statusCode}: An error occurred during the transformation. Please try again or contact support@apimatic.io for assistance.`;
25
+ }
26
+ else {
27
+ return "An unexpected error occurred while validating your API Definition. Please try again later. If the problem persists, please reach out to our team at support@apimatic.io";
28
+ }
29
+ };
30
+ }
31
+ async transformViaFile({ file, format, configDir, commandMetadata, authKey }) {
32
+ const authInfo = await getAuthInfo(configDir.toString());
33
+ const authorizationHeader = this.createAuthorizationHeader(authInfo, authKey !== null && authKey !== void 0 ? authKey : null);
34
+ const client = apiClientFactory.createApiClient(authorizationHeader, commandMetadata.shell);
35
+ const transformationController = new TransformationController(client);
36
+ try {
37
+ const fileStream = fsExtra.createReadStream(file.toString());
38
+ const fileWrapper = new FileWrapper(fileStream);
39
+ const generation = await transformationController.transformViaFile(this.CONTENT_TYPE, fileWrapper, format, this.createOriginQueryParameter(commandMetadata.commandName));
40
+ const { id, apiValidationSummary } = generation.result;
41
+ const { result } = await transformationController.downloadTransformedFile(id);
42
+ return ok({
43
+ stream: result,
44
+ apiValidationSummary
45
+ });
46
+ }
47
+ catch (error) {
48
+ return err(await this.handleTransformationErrors(error));
49
+ }
50
+ }
51
+ createAuthorizationHeader(authInfo, overrideAuthKey) {
52
+ const key = overrideAuthKey || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey);
53
+ return `X-Auth-Key ${key !== null && key !== void 0 ? key : ""}`;
54
+ }
55
+ }
56
+ //# sourceMappingURL=transformation-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformation-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/transformation-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { ApiValidationSummary } from "@apimatic/sdk";
2
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
3
+ import { Result } from "neverthrow";
4
+ import { FilePath } from "../../types/file/filePath.js";
5
+ import { CommandMetadata } from "../../types/common/command-metadata.js";
6
+ export interface ValidateViaFileParams {
7
+ file: FilePath;
8
+ commandMetadata: CommandMetadata;
9
+ authKey?: string | null;
10
+ }
11
+ export declare class ValidationService {
12
+ private readonly configDir;
13
+ constructor(configDir: DirectoryPath);
14
+ validateViaFile({ file, commandMetadata, authKey }: ValidateViaFileParams): Promise<Result<ApiValidationSummary, string>>;
15
+ private createAuthorizationHeader;
16
+ private handleValidationErrors;
17
+ }
@@ -0,0 +1,49 @@
1
+ import fsExtra from "fs-extra";
2
+ import { ApiValidationExternalApisController, ContentType, FileWrapper, ApiError } from "@apimatic/sdk";
3
+ import { getAuthInfo } from "../../client-utils/auth-manager.js";
4
+ import { apiClientFactory } from "./api-client-factory.js";
5
+ import { err, ok } from "neverthrow";
6
+ export class ValidationService {
7
+ constructor(configDir) {
8
+ this.configDir = configDir;
9
+ }
10
+ async validateViaFile({ file, commandMetadata, authKey }) {
11
+ const authInfo = await getAuthInfo(this.configDir.toString());
12
+ const authorizationHeader = this.createAuthorizationHeader(authInfo, authKey !== null && authKey !== void 0 ? authKey : null);
13
+ const client = apiClientFactory.createApiClient(authorizationHeader, commandMetadata.shell);
14
+ const controller = new ApiValidationExternalApisController(client);
15
+ try {
16
+ const fileDescriptor = new FileWrapper(fsExtra.createReadStream(file.toString()));
17
+ //TODO: Update spec to include origin query parameter.
18
+ const validation = await controller.validateApiViaFile(ContentType.EnumMultipartformdata, fileDescriptor);
19
+ return ok(validation.result);
20
+ }
21
+ catch (error) {
22
+ return err(await this.handleValidationErrors(error));
23
+ }
24
+ }
25
+ createAuthorizationHeader(authInfo, overrideAuthKey) {
26
+ const key = overrideAuthKey || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey);
27
+ return `X-Auth-Key ${key !== null && key !== void 0 ? key : ""}`;
28
+ }
29
+ async handleValidationErrors(error) {
30
+ if (error instanceof ApiError) {
31
+ const apiError = error;
32
+ if (apiError.statusCode === 400) {
33
+ return "Your API Definition is invalid. Please fix the issues and try again.";
34
+ }
35
+ else if (apiError.statusCode === 401) {
36
+ return "You are not authorized to perform this action. Please run 'auth:login' or provide a valid auth key.";
37
+ }
38
+ else if (apiError.statusCode === 403) {
39
+ return "You do not have permission to perform this action.";
40
+ }
41
+ else if (apiError.statusCode === 500) {
42
+ return "An unexpected error occurred validating the API specification, please try again later. If the problem persists, please reach out to our team at support@apimatic.io";
43
+ }
44
+ return `Error ${apiError.statusCode}: An error occurred during validation.`;
45
+ }
46
+ return "Unexpected error occurred while validating API specification.";
47
+ }
48
+ }
49
+ //# sourceMappingURL=validation-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/validation-service.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,EAEL,mCAAmC,EAEnC,WAAW,EACX,WAAW,EACX,QAAQ,EACT,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAY,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,EAAE,EAAU,MAAM,YAAY,CAAC;AAU7C,MAAM,OAAO,iBAAiB;IAC5B,YAA6B,SAAwB;QAAxB,cAAS,GAAT,SAAS,CAAe;IAAG,CAAC;IAEzD,KAAK,CAAC,eAAe,CAAC,EACpB,IAAI,EACJ,eAAe,EACf,OAAO,EACe;QACtB,MAAM,QAAQ,GAAoB,MAAM,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/E,MAAM,mBAAmB,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,IAAI,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,gBAAgB,CAAC,eAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5F,MAAM,UAAU,GAAG,IAAI,mCAAmC,CAAC,MAAM,CAAC,CAAC;QAEnE,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YAClF,sDAAsD;YACtD,MAAM,UAAU,GAAsC,MAAM,UAAU,CAAC,kBAAkB,CACvF,WAAW,CAAC,qBAAqB,EACjC,cAAc,CACf,CAAC;YAEF,OAAO,EAAE,CAAC,UAAU,CAAC,MAA8B,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAEO,yBAAyB,CAAC,QAAyB,EAAE,eAA8B;QACzF,MAAM,GAAG,GAAG,eAAe,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAA,CAAC;QACjD,OAAO,cAAc,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,EAAE,CAAC;IACnC,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,KAAc;QACjD,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,KAAiB,CAAC;YAEnC,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAChC,OAAO,sEAAsE,CAAC;YAChF,CAAC;iBAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBACvC,OAAO,qGAAqG,CAAC;YAC/G,CAAC;iBAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBACvC,OAAO,oDAAoD,CAAC;YAC9D,CAAC;iBAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBACvC,OAAO,qKAAqK,CAAC;YAC/K,CAAC;YAED,OAAO,SAAS,QAAQ,CAAC,UAAU,wCAAwC,CAAC;QAC9E,CAAC;QAED,OAAO,+DAA+D,CAAC;IACzE,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
2
+ import { Result } from "neverthrow";
3
+ import { TransformationResultData } from "../../infrastructure/services/transformation-service.js";
4
+ import { ServiceError } from "../../infrastructure/api-utils.js";
5
+ export declare class ApiTransformPrompts {
6
+ overwriteApi(directory: DirectoryPath): Promise<boolean>;
7
+ transformedApiAlreadyExists(): void;
8
+ transformApi(fn: Promise<Result<TransformationResultData, string>>): Promise<Result<TransformationResultData, string>>;
9
+ logTransformationError(error: string): void;
10
+ networkError(serviceError: ServiceError): void;
11
+ }
@@ -0,0 +1,30 @@
1
+ import { log, isCancel, confirm } from "@clack/prompts";
2
+ import { format as f, withSpinner } from "../format.js";
3
+ import { getErrorMessage } from "../../infrastructure/api-utils.js";
4
+ export class ApiTransformPrompts {
5
+ async overwriteApi(directory) {
6
+ const overwrite = await confirm({
7
+ message: `A specification file already exists at ${f.path(directory)}. Do you want to overwrite the existing file?`,
8
+ initialValue: false
9
+ });
10
+ if (isCancel(overwrite)) {
11
+ return false;
12
+ }
13
+ return overwrite;
14
+ }
15
+ transformedApiAlreadyExists() {
16
+ const message = `Specification already exists.`;
17
+ log.error(message);
18
+ }
19
+ async transformApi(fn) {
20
+ return withSpinner("Transforming API", "API transformed successfully.", "API transformation failed.", fn);
21
+ }
22
+ logTransformationError(error) {
23
+ log.error(error);
24
+ }
25
+ networkError(serviceError) {
26
+ const message = getErrorMessage(serviceError);
27
+ log.error(message);
28
+ }
29
+ }
30
+ //# sourceMappingURL=transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/prompts/api/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAO,EAAE,eAAe,EAAgB,MAAM,mCAAmC,CAAC;AAElF,MAAM,OAAO,mBAAmB;IACvB,KAAK,CAAC,YAAY,CAAC,SAAwB;QAChD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;YAC9B,OAAO,EAAE,0CAA0C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,+CAA+C;YACnH,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,2BAA2B;QAChC,MAAM,OAAO,GAAG,+BAA+B,CAAC;QAChD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,EAAqD;QAC7E,OAAO,WAAW,CAAC,kBAAkB,EAAE,+BAA+B,EAAE,4BAA4B,EAAE,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,sBAAsB,CAAC,KAAa;QAClC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAEM,YAAY,CAAC,YAA0B;QAC5C,MAAM,OAAO,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import { ValidationMessages } from "../../types/utils.js";
2
+ import { Result } from "neverthrow";
3
+ import { ApiValidationSummary } from "@apimatic/sdk";
4
+ import { ServiceError } from "../../infrastructure/api-utils.js";
5
+ import { FilePath } from "../../types/file/filePath.js";
6
+ export declare class ApiValidatePrompts {
7
+ validateApi(fn: Promise<Result<ApiValidationSummary, string>>): Promise<Result<ApiValidationSummary, string>>;
8
+ displayValidationMessages({ warnings, errors, messages }: ValidationMessages): void;
9
+ logValidationError(error: string): void;
10
+ networkError(serviceError: ServiceError): void;
11
+ transformedApiSaved(filePath: FilePath): void;
12
+ }
@@ -0,0 +1,41 @@
1
+ import { log } from "@clack/prompts";
2
+ import { replaceHTML } from "../../utils/utils.js";
3
+ import { withSpinner } from "../format.js";
4
+ import { getErrorMessage } from "../../infrastructure/api-utils.js";
5
+ import { format as f } from "../format.js";
6
+ export class ApiValidatePrompts {
7
+ async validateApi(fn) {
8
+ return withSpinner("Validating API", "API validation completed", "API validation failed", fn);
9
+ }
10
+ displayValidationMessages({ warnings, errors, messages }) {
11
+ if (messages.length > 0) {
12
+ log.info("Messages");
13
+ messages.forEach((msg) => {
14
+ log.message(`${replaceHTML(msg)}`);
15
+ });
16
+ }
17
+ if (warnings.length > 0) {
18
+ log.warning("Warnings");
19
+ warnings.forEach((war) => {
20
+ log.message(`${replaceHTML(war)}`);
21
+ });
22
+ }
23
+ if (errors.length > 0) {
24
+ log.error("Errors");
25
+ errors.forEach((err) => {
26
+ log.message(`${replaceHTML(err)}`);
27
+ });
28
+ }
29
+ }
30
+ logValidationError(error) {
31
+ log.error(error);
32
+ }
33
+ networkError(serviceError) {
34
+ const message = getErrorMessage(serviceError);
35
+ log.error(message);
36
+ }
37
+ transformedApiSaved(filePath) {
38
+ log.info(`Transformed API has been saved to ${f.path(filePath)}.`);
39
+ }
40
+ }
41
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/prompts/api/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAgB,MAAM,mCAAmC,CAAC;AAElF,OAAO,EAAE,MAAM,IAAI,CAAC,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,OAAO,kBAAkB;IACtB,KAAK,CAAC,WAAW,CAAC,EAAiD;QACxE,OAAO,WAAW,CAAC,gBAAgB,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,yBAAyB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAsB;QAC1E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrB,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,GAAG,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACxB,QAAQ,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvB,GAAG,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACrB,GAAG,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,KAAa;QAC9B,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAEM,YAAY,CAAC,YAA0B;QAC5C,MAAM,OAAO,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAEM,mBAAmB,CAAC,QAAkB;QAC3C,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACrE,CAAC;CACF"}