@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
@@ -2,7 +2,7 @@ import { SerializableRecipe } from "../../../types/recipe/recipe.js";
2
2
  export declare class PortalRecipe {
3
3
  private readonly recipe;
4
4
  constructor(name: string);
5
- addContentStep(key: string, name: string, content: string): this;
6
- addEndpointStep(key: string, name: string, description: string, endpointPermalink: string): this;
5
+ addContentStep(key: string, content: string): void;
6
+ addEndpointStep(key: string, description: string, endpointGroupName: string, endpointName: string): void;
7
7
  toSerializableRecipe(): SerializableRecipe;
8
8
  }
@@ -1,3 +1,4 @@
1
+ import { StepType } from "../../../types/recipe/recipe.js";
1
2
  export class PortalRecipe {
2
3
  constructor(name) {
3
4
  this.recipe = {
@@ -5,26 +6,25 @@ export class PortalRecipe {
5
6
  steps: []
6
7
  };
7
8
  }
8
- addContentStep(key, name, content) {
9
+ addContentStep(key, content) {
9
10
  this.recipe.steps.push({
10
11
  key,
11
- name,
12
- type: 'content',
12
+ name: key, //TODO: Check if key is required
13
+ type: StepType.Content,
13
14
  config: { content }
14
15
  });
15
- return this;
16
16
  }
17
- addEndpointStep(key, name, description, endpointPermalink) {
17
+ addEndpointStep(key, description, endpointGroupName, endpointName) {
18
+ const endpointPermalink = `$e/${[endpointGroupName, endpointName].map(encodeURIComponent).join("/")}`;
18
19
  this.recipe.steps.push({
19
20
  key,
20
- name,
21
- type: 'endpoint',
21
+ name: key, //TODO: Check if key is required
22
+ type: StepType.Endpoint,
22
23
  config: {
23
24
  description,
24
- endpointPermalink,
25
+ endpointPermalink
25
26
  }
26
27
  });
27
- return this;
28
28
  }
29
29
  toSerializableRecipe() {
30
30
  return this.recipe;
@@ -1 +1 @@
1
- {"version":3,"file":"portal-recipe.js","sourceRoot":"","sources":["../../../../src/application/portal/recipe/portal-recipe.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,YAAY;IAGvB,YAAY,IAAY;QACtB,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI;YACJ,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,GAAW,EAAE,IAAY,EAAE,OAAe;QACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YACrB,GAAG;YACH,IAAI;YACJ,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,EAAE,OAAO,EAAE;SACpB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,eAAe,CACb,GAAW,EACX,IAAY,EACZ,WAAmB,EACnB,iBAAyB;QAEzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YACrB,GAAG;YACH,IAAI;YACJ,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE;gBACN,WAAW;gBACX,iBAAiB;aAClB;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"portal-recipe.js","sourceRoot":"","sources":["../../../../src/application/portal/recipe/portal-recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE/E,MAAM,OAAO,YAAY;IAGvB,YAAY,IAAY;QACtB,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI;YACJ,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,GAAW,EAAE,OAAe;QACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YACrB,GAAG;YACH,IAAI,EAAE,GAAG,EAAE,gCAAgC;YAC3C,IAAI,EAAE,QAAQ,CAAC,OAAO;YACtB,MAAM,EAAE,EAAE,OAAO,EAAE;SACpB,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,GAAW,EAAE,WAAmB,EAAE,iBAAyB,EAAE,YAAoB;QAC/F,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACtG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;YACrB,GAAG;YACH,IAAI,EAAE,GAAG,EAAE,gCAAgC;YAC3C,IAAI,EAAE,QAAQ,CAAC,QAAQ;YACvB,MAAM,EAAE;gBACN,WAAW;gBACX,iBAAiB;aAClB;SACF,CAAC,CAAC;IACL,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
@@ -1,9 +1,14 @@
1
1
  import { SerializableRecipe } from "../../../types/recipe/recipe.js";
2
+ import { DirectoryPath } from "../../../types/file/directoryPath.js";
3
+ import { Toc } from "../../../types/toc/toc.js";
4
+ import { FilePath } from "../../../types/file/filePath.js";
5
+ import { FileName } from "../../../types/file/fileName.js";
6
+ import { BuildContext } from "../../../types/build-context.js";
2
7
  export declare class PortalRecipeGenerator {
3
- createRecipe(recipe: SerializableRecipe, buildConfig: any, tocFileContent: any, tocFilePath: string, recipeName: string, recipeFileName: string, buildConfigFilePath: string, contentFolderPath: string): Promise<void>;
8
+ private readonly fileService;
9
+ createRecipe(recipe: SerializableRecipe, tocFileContent: Toc, tocFilePath: FilePath, recipeName: string, recipeFileName: FileName, buildContext: BuildContext, buildDirectory: DirectoryPath): Promise<void>;
4
10
  private addRecipeToToc;
5
11
  private registerRecipeInBuildConfigFile;
6
- private writeRecipesConfigToBuildConfigFile;
7
12
  private createMarkdownFile;
8
13
  private createScriptFromRecipe;
9
14
  private saveGeneratedRecipeScriptToBuildDirectory;
@@ -1,15 +1,19 @@
1
- import * as path from "path";
2
- import fs from "fs";
3
1
  import prettier from "prettier";
4
2
  import { stringify } from "yaml";
3
+ import { FileService } from "../../../infrastructure/file-service.js";
4
+ import { FilePath } from "../../../types/file/filePath.js";
5
+ import { FileName } from "../../../types/file/fileName.js";
5
6
  export class PortalRecipeGenerator {
6
- //TODO: Replace tocFileContent any type with concrete type.
7
- async createRecipe(recipe, buildConfig, tocFileContent, tocFilePath, recipeName, recipeFileName, buildConfigFilePath, contentFolderPath) {
7
+ constructor() {
8
+ //TODO: Replace tocFileContent any type with concrete type.
9
+ this.fileService = new FileService();
10
+ }
11
+ async createRecipe(recipe, tocFileContent, tocFilePath, recipeName, recipeFileName, buildContext, buildDirectory) {
8
12
  await this.addRecipeToToc(tocFileContent, tocFilePath, recipeName, recipeFileName);
9
- await this.registerRecipeInBuildConfigFile(buildConfig, recipeName, recipeFileName, buildConfigFilePath);
10
- await this.createMarkdownFile(recipeFileName, contentFolderPath);
13
+ await this.registerRecipeInBuildConfigFile(buildContext, recipeName, recipeFileName);
14
+ await this.createMarkdownFile(recipeFileName, buildDirectory.join("content"));
11
15
  const generatedRecipeScript = await this.createScriptFromRecipe(recipe);
12
- const generatedRecipeScriptsDirectoryPath = path.join(contentFolderPath, "static", "scripts", "recipes");
16
+ const generatedRecipeScriptsDirectoryPath = buildDirectory.join("static", "scripts", "recipes");
13
17
  await this.saveGeneratedRecipeScriptToBuildDirectory(generatedRecipeScript, generatedRecipeScriptsDirectoryPath, recipeFileName);
14
18
  }
15
19
  async addRecipeToToc(tocData, tocFilePath, recipeName, recipeFileName) {
@@ -21,7 +25,7 @@ export class PortalRecipeGenerator {
21
25
  group: "API Recipes",
22
26
  items: []
23
27
  };
24
- // Insert after the last group section, before any generate sections
28
+ // Insert after the last group section, before generate sections
25
29
  let lastGroupIdx = -1;
26
30
  for (let i = 0; i < toc.length; i++) {
27
31
  if (toc[i].group)
@@ -36,10 +40,11 @@ export class PortalRecipeGenerator {
36
40
  page: recipeName,
37
41
  file: `recipes/${recipeFileName}.md`
38
42
  });
39
- await fs.promises.writeFile(tocFilePath, stringify(tocData));
43
+ await this.fileService.writeContents(tocFilePath, stringify(tocData));
40
44
  }
41
45
  }
42
- async registerRecipeInBuildConfigFile(buildConfig, recipeName, recipeFileName, buildConfigFilePath) {
46
+ async registerRecipeInBuildConfigFile(buildContext, recipeName, recipeFileName) {
47
+ const buildConfig = await buildContext.getBuildFileContents();
43
48
  if (!buildConfig.recipes) {
44
49
  buildConfig.recipes = {};
45
50
  }
@@ -62,19 +67,13 @@ export class PortalRecipeGenerator {
62
67
  // Add as new workflow
63
68
  recipesConfig.workflows.push(newWorkflow);
64
69
  }
65
- await this.writeRecipesConfigToBuildConfigFile(recipesConfig, buildConfigFilePath);
66
- }
67
- async writeRecipesConfigToBuildConfigFile(recipesConfig, buildConfigFilePath) {
68
- const fileData = await fs.promises.readFile(buildConfigFilePath, "utf-8");
69
- const buildConfig = JSON.parse(fileData);
70
- buildConfig.recipes = recipesConfig;
71
- await fs.promises.writeFile(buildConfigFilePath, JSON.stringify(buildConfig, null, 2));
70
+ await buildContext.updateBuildFileContents(buildConfig);
72
71
  }
73
72
  async createMarkdownFile(recipeFileName, contentFolder) {
74
- const directory = path.join(contentFolder, "content", "recipes");
73
+ const directory = contentFolder.join("recipes");
75
74
  const markdownFileContent = this.getMarkdownFileContent();
76
- fs.mkdirSync(directory, { recursive: true });
77
- fs.writeFileSync(`${directory}/${recipeFileName}.md`, markdownFileContent);
75
+ await this.fileService.createDirectoryIfNotExists(directory);
76
+ await this.fileService.writeContents(new FilePath(directory, new FileName(`${recipeFileName}.md`)), markdownFileContent);
78
77
  }
79
78
  async createScriptFromRecipe(recipe) {
80
79
  let script = `export default function ${this.toPascalCase(recipe.name)}(workflowCtx, portal) {`;
@@ -103,8 +102,8 @@ export class PortalRecipeGenerator {
103
102
  if (format) {
104
103
  generatedRecipeScript = await this.formatScript(generatedRecipeScript);
105
104
  }
106
- fs.mkdirSync(generatedRecipeScriptsDirectoryPath, { recursive: true });
107
- await fs.promises.writeFile(`${generatedRecipeScriptsDirectoryPath}/${recipeFileName}.js`, generatedRecipeScript, "utf8");
105
+ await this.fileService.createDirectoryIfNotExists(generatedRecipeScriptsDirectoryPath);
106
+ await this.fileService.writeContents(new FilePath(generatedRecipeScriptsDirectoryPath, new FileName(`${recipeFileName}.js`)), generatedRecipeScript);
108
107
  }
109
108
  generateVerifyFunction() {
110
109
  return `if (response.StatusCode == 200) { return true; } else { setError("API Call wasn't able to get a valid response. Please try again."); return false; }`;
@@ -1 +1 @@
1
- {"version":3,"file":"recipe-generator.js","sourceRoot":"","sources":["../../../../src/application/portal/recipe/recipe-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recipe-generator.js","sourceRoot":"","sources":["../../../../src/application/portal/recipe/recipe-generator.ts"],"names":[],"mappings":"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"}
@@ -19,4 +19,4 @@ export declare function getAuthInfo(configDir: string): Promise<AuthInfo | null>
19
19
  * //Function to set credentials.
20
20
  */
21
21
  export declare function setAuthInfo(email: string, authKey: string, isTelemetryOptedOut: boolean, configDir: DirectoryPath): Promise<void>;
22
- export declare function removeAuthInfo(configDir: string): Promise<void>;
22
+ export declare function removeAuthInfo(configDir: DirectoryPath): Promise<void>;
@@ -7,10 +7,9 @@ import fs from "fs-extra";
7
7
  */
8
8
  export async function getAuthInfo(configDir) {
9
9
  try {
10
- const data = JSON.parse(await fs.readFile(path.join(configDir, "config.json"), "utf8"));
11
- return data;
10
+ return JSON.parse(await fs.readFile(path.join(configDir, "config.json"), "utf8"));
12
11
  }
13
- catch (e) {
12
+ catch (_a) {
14
13
  return null;
15
14
  }
16
15
  }
@@ -38,7 +37,7 @@ export async function removeAuthInfo(configDir) {
38
37
  email: "",
39
38
  authKey: ""
40
39
  };
41
- const configFilePath = path.join(configDir, "config.json");
40
+ const configFilePath = path.join(configDir.toString(), "config.json");
42
41
  if (!fs.existsSync(configFilePath))
43
42
  fs.createFileSync(configFilePath);
44
43
  return await fs.writeFile(configFilePath, JSON.stringify(credentials));
@@ -1 +1 @@
1
- {"version":3,"file":"auth-manager.js","sourceRoot":"","sources":["../../src/client-utils/auth-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAQ1B;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAiB;IACjD,IAAI,CAAC;QACH,MAAM,IAAI,GAAoB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QACzG,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAa,EACb,OAAe,EACf,mBAA4B,EAC5B,SAAwB;IAExB,MAAM,WAAW,GAAa;QAC5B,KAAK;QACL,OAAO;QACP,6BAA6B,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;KAC/D,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;IAEtE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAEtE,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAiB;IACpD,MAAM,WAAW,GAAa;QAC5B,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;KACZ,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAE3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAEtE,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"auth-manager.js","sourceRoot":"","sources":["../../src/client-utils/auth-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAQ1B;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,SAAiB;IACjD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACpF,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAa,EACb,OAAe,EACf,mBAA4B,EAC5B,SAAwB;IAExB,MAAM,WAAW,GAAa;QAC5B,KAAK;QACL,OAAO;QACP,6BAA6B,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;KAC/D,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;IAEtE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAEtE,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAwB;IAC3D,MAAM,WAAW,GAAa;QAC5B,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,EAAE;KACZ,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;IAEtE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,EAAE,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAEtE,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AACzE,CAAC"}
@@ -1,14 +1,17 @@
1
1
  import { Command } from "@oclif/core";
2
2
  export default class Transform extends Command {
3
- static description: string;
3
+ static readonly summary = "Transform API specifications between different formats";
4
+ static readonly description = "Transform API specifications from one format to another.\nSupports multiple formats including OpenAPI/Swagger, RAML, WSDL, and Postman Collections.";
5
+ static readonly cmdTxt: string;
4
6
  static examples: string[];
5
7
  static flags: {
6
8
  "auth-key": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
9
  force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
10
  format: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
- file: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
- url: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
11
+ file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ url: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
13
  destination: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
14
  };
13
15
  run(): Promise<void>;
16
+ private readonly getConfigDir;
14
17
  }
@@ -1,109 +1,58 @@
1
- var _a;
2
- import * as path from "path";
3
- import fsExtra from "fs-extra";
4
- import { Flags, Command } from "@oclif/core";
5
- import { TransformationController } from "@apimatic/sdk";
6
- import { printValidationMessages } from "../../utils/utils.js";
7
- import { getFileNameFromPath, replaceHTML } from "../../utils/utils.js";
8
- import { DestinationFormats, TransformationFormats } from "../../types/api/transform.js";
9
- import { getValidFormat, getTransformationId, downloadTransformationFile } from "../../controllers/api/transform.js";
1
+ import { Command, Flags } from "@oclif/core";
2
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
10
3
  import { FlagsProvider } from "../../types/flags-provider.js";
11
- import { getAuthInfo } from "../../client-utils/auth-manager.js";
12
- import { createApiClient, createAuthorizationHeader } from "../../infrastructure/api-client-utils.js";
13
- const formats = Object.keys(TransformationFormats).join("|");
4
+ import { TransformAction } from "../../actions/api/transform.js";
5
+ import { format, intro, outro } from "../../prompts/format.js";
6
+ import { createResourceInput } from "../../types/file/resource-input.js";
7
+ import { TransformationFormats } from "../../types/api/transform.js";
8
+ import { ExportFormats } from "@apimatic/sdk";
9
+ const DEFAULT_WORKING_DIRECTORY = "./";
14
10
  class Transform extends Command {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.getConfigDir = () => {
14
+ return new DirectoryPath(this.config.configDir);
15
+ };
16
+ }
15
17
  async run() {
16
- const { flags } = await this.parse(_a);
17
- const fileName = flags.file ? getFileNameFromPath(flags.file) : getFileNameFromPath(flags.url);
18
- const destinationFormat = DestinationFormats[flags.format];
19
- const destinationFilePath = path.join(flags.destination, `${fileName}_${flags.format}.${destinationFormat}`.toLowerCase());
20
- // Check if destination file already exist and throw error if force flag is not set
21
- if (fsExtra.existsSync(destinationFilePath) && !flags.force) {
22
- throw new Error(`Can't download transformed file to path ${destinationFilePath}, because it already exists`);
23
- }
24
- try {
25
- // Check if paths provided are valid
26
- if (flags.file && !(await fsExtra.pathExists(flags.file))) {
27
- throw new Error(`Transformation file: ${flags.file} does not exist`);
28
- }
29
- else if (!(await fsExtra.pathExists(flags.destination))) {
30
- throw new Error(`Destination path: ${flags.destination} does not exist`);
31
- }
32
- const overrideAuthKey = flags["auth-key"] ? flags["auth-key"] : null;
33
- const authInfo = await getAuthInfo(this.config.configDir);
34
- const authorizationHeader = createAuthorizationHeader(authInfo, overrideAuthKey);
35
- const client = createApiClient(authorizationHeader, 0);
36
- const transformationController = new TransformationController(client);
37
- const { id, apiValidationSummary } = await getTransformationId(flags, transformationController);
38
- const logFunctions = {
39
- log: (message) => this.log(message),
40
- warn: (message) => this.warn(message),
41
- error: (message) => this.error(message)
42
- };
43
- printValidationMessages(apiValidationSummary, logFunctions);
44
- const savedTransformationFile = await downloadTransformationFile({
45
- id,
46
- destinationFilePath,
47
- transformationController
48
- });
49
- this.log(`Success! Your transformed file is located at ${savedTransformationFile}`);
50
- }
51
- catch (error) {
52
- if (error.result) {
53
- const apiError = error;
54
- // TODO: Hopefully, this type-cast won't be necessary when the SDK is
55
- // updated to throw the right exception type for this status code.
56
- const result = apiError.result;
57
- if (apiError.statusCode === 422 && result && "errors" in result && Array.isArray(result.errors)) {
58
- this.error(replaceHTML(`${result.errors}`));
59
- }
60
- else if (apiError.statusCode === 422 && apiError.body && typeof apiError.body === "string") {
61
- this.error(JSON.parse(apiError.body)["dto.FileUrl"][0]);
62
- }
63
- else if (apiError.statusCode === 401 && apiError.body && typeof apiError.body === "string") {
64
- this.error("You are not authorized to perform this action");
65
- }
66
- else if (apiError.statusCode === 500) {
67
- this.error(apiError.message);
68
- }
69
- }
70
- else if (error.statusCode === 401) {
71
- this.error("You are not authorized to perform this action");
72
- }
73
- else if (error.statusCode === 402 &&
74
- error.body &&
75
- typeof error.body === "string") {
76
- this.error(error.body);
77
- }
78
- else {
79
- this.error(`${error.message}`);
80
- }
81
- }
18
+ const { flags: { format, file, url, destination, force, "auth-key": authKey } } = await this.parse(Transform);
19
+ const workingDirectory = new DirectoryPath(destination !== null && destination !== void 0 ? destination : DEFAULT_WORKING_DIRECTORY);
20
+ const transformedApiDirectory = workingDirectory.join("transformations");
21
+ const specFile = createResourceInput(file, url);
22
+ // Directly map the format flag to ExportFormats using TransformationFormats
23
+ const key = format;
24
+ const transformationFormat = TransformationFormats[key];
25
+ const parsedFormat = ExportFormats[transformationFormat];
26
+ const commandMetadata = {
27
+ commandName: Transform.id,
28
+ shell: this.config.shell
29
+ };
30
+ intro("Transform API");
31
+ const action = new TransformAction(this.getConfigDir(), commandMetadata, authKey);
32
+ const result = await action.execute(specFile, parsedFormat, transformedApiDirectory, force);
33
+ outro(result);
82
34
  }
83
35
  }
84
- _a = Transform;
85
- Transform.description = `Transform API specifications from one format to another. Supports [10+ different formats](https://www.apimatic.io/transformer/#supported-formats) including OpenApi/Swagger, RAML, WSDL and Postman Collections.`;
36
+ Transform.summary = "Transform API specifications between different formats";
37
+ Transform.description = `Transform API specifications from one format to another.
38
+ Supports multiple formats including OpenAPI/Swagger, RAML, WSDL, and Postman Collections.`;
39
+ Transform.cmdTxt = format.cmd("apimatic", "api", "transform");
86
40
  Transform.examples = [
87
- `apimatic api:transform --format=OPENAPI3YAML --file="./specs/sample.json" --destination="D:/"`,
88
- `apimatic api:transform --format=RAML --url="https://petstore.swagger.io/v2/swagger.json" --destination="D:/"`
41
+ `${Transform.cmdTxt} ${format.flag("format", "OPENAPI3YAML")} ${format.flag("file", "./specs/sample.json")} ${format.flag("destination", "./")}`,
42
+ `${Transform.cmdTxt} ${format.flag("format", "RAML")} ${format.flag("url", '"https://petstore.swagger.io/v2/swagger.json"')} ${format.flag("destination", "./")}`
89
43
  ];
90
44
  Transform.flags = Object.assign(Object.assign({ format: Flags.string({
91
- parse: async (format) => getValidFormat(format),
92
45
  required: true,
93
- description: `specification format to transform API specification into
94
- ${formats}`
46
+ description: "Specification format to transform API specification into",
47
+ options: Object.keys(TransformationFormats)
95
48
  }), file: Flags.string({
96
- parse: async (input) => path.resolve(input),
97
- default: "",
98
- description: "path to the API specification file to transform"
49
+ description: "Path to the API specification file to transform"
99
50
  }), url: Flags.string({
100
- default: "",
101
- description: "URL to the API specification file to transform. Can be used in place of the --file option if the API specification is publicly available."
51
+ description: "URL to the API specification file to transform (publicly accessible)"
102
52
  }), destination: Flags.string({
103
- parse: async (input) => path.resolve(input),
104
- default: path.resolve("./"),
105
- description: "directory to download transformed file to",
106
- char: "d"
53
+ char: "d",
54
+ description: "Directory to save the transformed file to",
55
+ default: DEFAULT_WORKING_DIRECTORY
107
56
  }) }, FlagsProvider.force), FlagsProvider.authKey);
108
57
  export default Transform;
109
58
  //# sourceMappingURL=transform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/commands/api/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/commands/api/transform.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
1
  import { Command } from "@oclif/core";
2
2
  export default class Validate extends Command {
3
- static description: string;
3
+ static readonly summary = "Validate API specification for syntactic and semantic correctness";
4
+ static readonly description = "Validate your API specification to ensure it adheres to syntactic and semantic standards.";
5
+ static readonly cmdTxt: string;
4
6
  static examples: string[];
5
7
  static flags: {
6
8
  "auth-key": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
- file: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
8
- url: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
+ file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ url: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
11
  };
10
12
  run(): Promise<void>;
13
+ private readonly getConfigDir;
11
14
  }
@@ -1,75 +1,36 @@
1
- import fsExtra from "fs-extra";
2
- import { ux, Flags, Command } from "@oclif/core";
3
- import { ApiValidationExternalApisController } from "@apimatic/sdk";
4
- import { getValidationSummary } from "../../controllers/api/validate.js";
5
- import { printValidationMessages, replaceHTML } from "../../utils/utils.js";
1
+ import { Command, Flags } from "@oclif/core";
2
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
6
3
  import { FlagsProvider } from "../../types/flags-provider.js";
7
- import { getAuthInfo } from "../../client-utils/auth-manager.js";
8
- import { createApiClient, createAuthorizationHeader } from "../../infrastructure/api-client-utils.js";
4
+ import { ValidateAction } from "../../actions/api/validate.js";
5
+ import { format, intro, outro } from "../../prompts/format.js";
6
+ import { createResourceInput } from "../../types/file/resource-input.js";
9
7
  class Validate extends Command {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.getConfigDir = () => {
11
+ return new DirectoryPath(this.config.configDir);
12
+ };
13
+ }
10
14
  async run() {
11
- const { flags } = await this.parse(Validate);
12
- try {
13
- if (flags.file && !(await fsExtra.pathExists(flags.file))) {
14
- throw new Error(`Validation file: ${flags.file} does not exist`);
15
- }
16
- const overrideAuthKey = flags["auth-key"] ? flags["auth-key"] : null;
17
- const authInfo = await getAuthInfo(this.config.configDir);
18
- const authorizationHeader = createAuthorizationHeader(authInfo, overrideAuthKey);
19
- const client = createApiClient(authorizationHeader, 0);
20
- const apiValidationController = new ApiValidationExternalApisController(client);
21
- ux.action.start("Validating specification file");
22
- const validationSummary = await getValidationSummary(flags, apiValidationController);
23
- ux.action.stop();
24
- const logFunctions = {
25
- log: (message) => this.log(message),
26
- warn: (message) => this.warn(message),
27
- error: (message) => this.error(message)
28
- };
29
- printValidationMessages(validationSummary, logFunctions);
30
- if (validationSummary.success) {
31
- this.log("Specification file provided is valid");
32
- }
33
- else {
34
- this.error("Specification file provided is invalid");
35
- }
36
- }
37
- catch (error) {
38
- if (error.result) {
39
- const apiError = error;
40
- const result = apiError.result;
41
- if (result.modelState["exception Error"] && apiError.statusCode === 400) {
42
- this.error(replaceHTML(result.modelState["exception Error"][0]));
43
- }
44
- else if (error.body && apiError.statusCode === 401) {
45
- this.error("You are not authorized to perform this action");
46
- }
47
- else {
48
- this.error(error.message);
49
- }
50
- }
51
- else if (error.statusCode === 401) {
52
- this.error("You are not authorized to perform this action");
53
- }
54
- else if (error.statusCode === 402 &&
55
- error.body &&
56
- typeof error.body === "string") {
57
- this.error(error.body);
58
- }
59
- else {
60
- this.error(`${error.message}`);
61
- }
62
- }
15
+ const { flags: { file, url, "auth-key": authKey } } = await this.parse(Validate);
16
+ const commandMetadata = {
17
+ commandName: Validate.id,
18
+ shell: this.config.shell
19
+ };
20
+ const action = new ValidateAction(this.getConfigDir(), commandMetadata, authKey);
21
+ const resourceInput = createResourceInput(file, url);
22
+ intro("Validate API");
23
+ const result = await action.execute(resourceInput);
24
+ outro(result);
63
25
  }
64
26
  }
65
- Validate.description = "Validate the syntactic and semantic correctness of an API specification";
27
+ Validate.summary = "Validate API specification for syntactic and semantic correctness";
28
+ Validate.description = `Validate your API specification to ensure it adheres to syntactic and semantic standards.`;
29
+ Validate.cmdTxt = format.cmd("apimatic", "api", "validate");
66
30
  Validate.examples = [
67
- `apimatic api:validate --file="./specs/sample.json"`,
68
- `apimatic api:validate --url=https://petstore.swagger.io/v2/swagger.json`
31
+ `${Validate.cmdTxt} ${format.flag("file", "./specs/sample.json")}`,
32
+ `${Validate.cmdTxt} ${format.flag("url", '"https://petstore.swagger.io/v2/swagger.json"')}`
69
33
  ];
70
- Validate.flags = Object.assign({ file: Flags.string({ default: "", description: "Path to the API specification file to validate" }), url: Flags.string({
71
- default: "",
72
- description: "URL to the specification file to validate. Can be used in place of the --file option if the API specification is publicly available."
73
- }) }, FlagsProvider.authKey);
34
+ Validate.flags = Object.assign({ file: Flags.string({ description: "Path to the API specification file to validate" }), url: Flags.string({ description: "URL to the API specification file to validate (publicly accessible)" }) }, FlagsProvider.authKey);
74
35
  export default Validate;
75
36
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/api/validate.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAY,mCAAmC,EAAgC,MAAM,eAAe,CAAC;AAG5G,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAY,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AAEtG,MAAqB,QAAS,SAAQ,OAAO;IAmB3C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE7C,IAAI,CAAC;YACH,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAC,IAAI,iBAAiB,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACrE,MAAM,QAAQ,GAAoB,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3E,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YACjF,MAAM,MAAM,GAAW,eAAe,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAE/D,MAAM,uBAAuB,GAAwC,IAAI,mCAAmC,CAC1G,MAAM,CACP,CAAC;YAEF,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACjD,MAAM,iBAAiB,GAAyB,MAAM,oBAAoB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;YAC3G,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,YAAY,GAAY;gBAC5B,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;gBACnC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;gBACrC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;aACxC,CAAC;YACF,uBAAuB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;YAEzD,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAAkB,CAAC,MAAM,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,KAAiB,CAAC;gBACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAA0B,CAAC;gBACnD,IAAI,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBACxE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,CAAC;qBAAM,IAAK,KAA4B,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAC7E,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;iBAAM,IAAK,KAA6B,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC7D,IAAI,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAC9D,CAAC;iBAAM,IACJ,KAA6B,CAAC,UAAU,KAAK,GAAG;gBAChD,KAA6B,CAAC,IAAI;gBACnC,OAAQ,KAA6B,CAAC,IAAI,KAAK,QAAQ,EACvD,CAAC;gBACD,IAAI,CAAC,KAAK,CAAE,KAA6B,CAAC,IAAI,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,CAAC,GAAI,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;;AAxEM,oBAAW,GAAG,yEAAyE,CAAC;AAExF,iBAAQ,GAAG;IAChB,oDAAoD;IACpD,yEAAyE;CAC1E,CAAC;AAEK,cAAK,mBACV,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC,EAClG,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC;QAChB,OAAO,EAAE,EAAE;QACX,WAAW,EACT,sIAAsI;KACzI,CAAC,IAEC,aAAa,CAAC,OAAO,EACxB;eAjBiB,QAAQ"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/api/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAqB,QAAS,SAAQ,OAAO;IAA7C;;QAoCmB,iBAAY,GAAG,GAAG,EAAE;YACnC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;IArBC,KAAK,CAAC,GAAG;QACP,MAAM,EACJ,KAAK,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,EAC1C,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE/B,MAAM,eAAe,GAAoB;YACvC,WAAW,EAAE,QAAQ,CAAC,EAAE;YACxB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QACjF,MAAM,aAAa,GAAG,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAErD,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACnD,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;;AAjCe,gBAAO,GAAG,mEAAmE,AAAtE,CAAuE;AAE9E,oBAAW,GAAG,2FAA2F,AAA9F,CAA+F;AAE1G,eAAM,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,AAA5C,CAA6C;AAE5D,iBAAQ,GAAG;IAChB,GAAG,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE;IAClE,GAAG,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,+CAA+C,CAAC,EAAE;CAC5F,AAHc,CAGb;AAEK,cAAK,mBACV,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gDAAgD,EAAE,CAAC,EACrF,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qEAAqE,EAAE,CAAC,IACtG,aAAa,CAAC,OAAO,CAHd,CAIV;eAhBiB,QAAQ"}
@@ -1,10 +1,11 @@
1
1
  import { Command } from "@oclif/core";
2
2
  export default class Login extends Command {
3
+ static summary: string;
3
4
  static description: string;
5
+ private static cmdTxt;
4
6
  static examples: string[];
5
7
  static flags: {
6
8
  "auth-key": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
9
  };
8
- private readonly prompts;
9
10
  run(): Promise<void>;
10
11
  }