@apimatic/cli 1.1.0-alpha.14 → 1.1.0-alpha.16

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 (158) hide show
  1. package/README.md +92 -68
  2. package/lib/actions/{actionResult.js → action-result.js} +1 -1
  3. package/lib/actions/action-result.js.map +1 -0
  4. package/lib/actions/auth/login.d.ts +12 -0
  5. package/lib/actions/auth/login.js +63 -0
  6. package/lib/actions/auth/login.js.map +1 -0
  7. package/lib/actions/portal/copilot.d.ts +11 -0
  8. package/lib/actions/portal/copilot.js +46 -0
  9. package/lib/actions/portal/copilot.js.map +1 -0
  10. package/lib/actions/portal/{generatePortalAction.d.ts → generate.d.ts} +2 -4
  11. package/lib/actions/portal/{generatePortalAction.js → generate.js} +17 -32
  12. package/lib/actions/portal/generate.js.map +1 -0
  13. package/lib/actions/portal/recipe/new-recipe.d.ts +0 -1
  14. package/lib/actions/portal/recipe/new-recipe.js +0 -6
  15. package/lib/actions/portal/recipe/new-recipe.js.map +1 -1
  16. package/lib/actions/portal/serve.d.ts +1 -1
  17. package/lib/actions/portal/toc/new-toc.d.ts +2 -0
  18. package/lib/actions/portal/toc/new-toc.js +21 -18
  19. package/lib/actions/portal/toc/new-toc.js.map +1 -1
  20. package/lib/actions/sdk/generate.d.ts +13 -0
  21. package/lib/actions/sdk/generate.js +49 -0
  22. package/lib/actions/sdk/generate.js.map +1 -0
  23. package/lib/application/portal/serve/portal-watcher.d.ts +4 -1
  24. package/lib/application/portal/serve/portal-watcher.js +11 -4
  25. package/lib/application/portal/serve/portal-watcher.js.map +1 -1
  26. package/lib/application/portal/serve/serve-handler.d.ts +1 -1
  27. package/lib/application/portal/serve/serve-handler.js +1 -0
  28. package/lib/application/portal/serve/serve-handler.js.map +1 -1
  29. package/lib/application/portal/serve/watcher-handler.d.ts +5 -0
  30. package/lib/application/portal/serve/watcher-handler.js +36 -12
  31. package/lib/application/portal/serve/watcher-handler.js.map +1 -1
  32. package/lib/client-utils/auth-manager.d.ts +7 -2
  33. package/lib/client-utils/auth-manager.js +24 -7
  34. package/lib/client-utils/auth-manager.js.map +1 -1
  35. package/lib/client-utils/sdk-client.d.ts +0 -1
  36. package/lib/client-utils/sdk-client.js +6 -20
  37. package/lib/client-utils/sdk-client.js.map +1 -1
  38. package/lib/commands/api/transform.d.ts +2 -2
  39. package/lib/commands/api/transform.js +10 -15
  40. package/lib/commands/api/transform.js.map +1 -1
  41. package/lib/commands/api/validate.d.ts +1 -1
  42. package/lib/commands/api/validate.js +5 -9
  43. package/lib/commands/api/validate.js.map +1 -1
  44. package/lib/commands/auth/login.d.ts +2 -1
  45. package/lib/commands/auth/login.js +19 -63
  46. package/lib/commands/auth/login.js.map +1 -1
  47. package/lib/commands/auth/logout.js +2 -2
  48. package/lib/commands/auth/logout.js.map +1 -1
  49. package/lib/commands/auth/status.js +3 -2
  50. package/lib/commands/auth/status.js.map +1 -1
  51. package/lib/commands/portal/copilot.d.ts +12 -0
  52. package/lib/commands/portal/copilot.js +35 -0
  53. package/lib/commands/portal/copilot.js.map +1 -0
  54. package/lib/commands/portal/generate.d.ts +3 -4
  55. package/lib/commands/portal/generate.js +9 -24
  56. package/lib/commands/portal/generate.js.map +1 -1
  57. package/lib/commands/portal/quickstart.js +13 -16
  58. package/lib/commands/portal/quickstart.js.map +1 -1
  59. package/lib/commands/portal/recipe/new.d.ts +0 -1
  60. package/lib/commands/portal/recipe/new.js +11 -10
  61. package/lib/commands/portal/recipe/new.js.map +1 -1
  62. package/lib/commands/portal/serve.d.ts +3 -4
  63. package/lib/commands/portal/serve.js +12 -25
  64. package/lib/commands/portal/serve.js.map +1 -1
  65. package/lib/commands/portal/toc/new.d.ts +4 -5
  66. package/lib/commands/portal/toc/new.js +14 -21
  67. package/lib/commands/portal/toc/new.js.map +1 -1
  68. package/lib/commands/sdk/generate.d.ts +8 -6
  69. package/lib/commands/sdk/generate.js +53 -116
  70. package/lib/commands/sdk/generate.js.map +1 -1
  71. package/lib/infrastructure/api-utils.d.ts +9 -0
  72. package/lib/infrastructure/api-utils.js +33 -0
  73. package/lib/infrastructure/api-utils.js.map +1 -0
  74. package/lib/infrastructure/env-info.d.ts +8 -0
  75. package/lib/infrastructure/env-info.js +37 -0
  76. package/lib/infrastructure/env-info.js.map +1 -0
  77. package/lib/infrastructure/file-service.d.ts +3 -1
  78. package/lib/infrastructure/file-service.js +15 -8
  79. package/lib/infrastructure/file-service.js.map +1 -1
  80. package/lib/infrastructure/services/api-service.d.ts +10 -0
  81. package/lib/infrastructure/services/api-service.js +52 -0
  82. package/lib/infrastructure/services/api-service.js.map +1 -0
  83. package/lib/infrastructure/services/auth-service.d.ts +11 -0
  84. package/lib/infrastructure/services/auth-service.js +33 -0
  85. package/lib/infrastructure/services/auth-service.js.map +1 -0
  86. package/lib/infrastructure/services/portal-service.d.ts +3 -1
  87. package/lib/infrastructure/services/portal-service.js +51 -15
  88. package/lib/infrastructure/services/portal-service.js.map +1 -1
  89. package/lib/infrastructure/services/telemetry-service.d.ts +8 -0
  90. package/lib/infrastructure/services/telemetry-service.js +40 -0
  91. package/lib/infrastructure/services/telemetry-service.js.map +1 -0
  92. package/lib/infrastructure/tmp-extensions.d.ts +2 -0
  93. package/lib/infrastructure/tmp-extensions.js +6 -0
  94. package/lib/infrastructure/tmp-extensions.js.map +1 -0
  95. package/lib/prompts/auth/login.d.ts +5 -0
  96. package/lib/prompts/auth/login.js +13 -0
  97. package/lib/prompts/auth/login.js.map +1 -0
  98. package/lib/prompts/portal/copilot.d.ts +6 -0
  99. package/lib/prompts/portal/copilot.js +35 -0
  100. package/lib/prompts/portal/copilot.js.map +1 -0
  101. package/lib/prompts/portal/generate.d.ts +0 -1
  102. package/lib/prompts/portal/generate.js +7 -35
  103. package/lib/prompts/portal/generate.js.map +1 -1
  104. package/lib/prompts/portal/quickstart.d.ts +3 -3
  105. package/lib/prompts/portal/quickstart.js +18 -14
  106. package/lib/prompts/portal/quickstart.js.map +1 -1
  107. package/lib/prompts/portal/recipe/new-recipe.d.ts +1 -0
  108. package/lib/prompts/portal/recipe/new-recipe.js +14 -3
  109. package/lib/prompts/portal/recipe/new-recipe.js.map +1 -1
  110. package/lib/prompts/portal/toc/new-toc.d.ts +3 -2
  111. package/lib/prompts/portal/toc/new-toc.js +9 -13
  112. package/lib/prompts/portal/toc/new-toc.js.map +1 -1
  113. package/lib/prompts/sdk/generate.d.ts +11 -0
  114. package/lib/prompts/sdk/generate.js +42 -0
  115. package/lib/prompts/sdk/generate.js.map +1 -0
  116. package/lib/types/api/account.d.ts +10 -0
  117. package/lib/types/api/account.js +2 -0
  118. package/lib/types/api/account.js.map +1 -0
  119. package/lib/types/build/build.d.ts +14 -0
  120. package/lib/types/build/build.js +4 -0
  121. package/lib/types/build/build.js.map +1 -0
  122. package/lib/types/build-context.d.ts +13 -0
  123. package/lib/types/build-context.js +30 -0
  124. package/lib/types/build-context.js.map +1 -0
  125. package/lib/types/events/domain-event.d.ts +8 -0
  126. package/lib/types/events/domain-event.js +11 -0
  127. package/lib/types/events/domain-event.js.map +1 -0
  128. package/lib/types/events/recipe-creation-failed.d.ts +5 -0
  129. package/lib/types/events/recipe-creation-failed.js +8 -0
  130. package/lib/types/events/recipe-creation-failed.js.map +1 -0
  131. package/lib/types/events/toc-creation-failed.d.ts +5 -0
  132. package/lib/types/events/toc-creation-failed.js +8 -0
  133. package/lib/types/events/toc-creation-failed.js.map +1 -0
  134. package/lib/types/flags-provider.d.ts +15 -0
  135. package/lib/types/flags-provider.js +34 -0
  136. package/lib/types/flags-provider.js.map +1 -0
  137. package/lib/types/portal/generate.d.ts +0 -13
  138. package/lib/types/portal-context.d.ts +11 -0
  139. package/lib/types/portal-context.js +28 -0
  140. package/lib/types/portal-context.js.map +1 -0
  141. package/lib/types/sdk/generate.d.ts +8 -8
  142. package/lib/types/sdk/generate.js +10 -10
  143. package/lib/types/sdk/generate.js.map +1 -1
  144. package/lib/types/sdk-context.d.ts +13 -0
  145. package/lib/types/sdk-context.js +28 -0
  146. package/lib/types/sdk-context.js.map +1 -0
  147. package/lib/types/spec-context.d.ts +7 -0
  148. package/lib/types/spec-context.js +12 -0
  149. package/lib/types/spec-context.js.map +1 -0
  150. package/lib/utils/utils.js +9 -8
  151. package/lib/utils/utils.js.map +1 -1
  152. package/package.json +3 -1
  153. package/lib/actions/actionResult.js.map +0 -1
  154. package/lib/actions/portal/generatePortalAction.js.map +0 -1
  155. package/lib/controllers/sdk/generate.d.ts +0 -4
  156. package/lib/controllers/sdk/generate.js +0 -61
  157. package/lib/controllers/sdk/generate.js.map +0 -1
  158. /package/lib/actions/{actionResult.d.ts → action-result.d.ts} +0 -0
@@ -2,18 +2,24 @@ import { Command, Flags } from "@oclif/core";
2
2
  import { PortalRecipeAction } from "../../../actions/portal/recipe/new-recipe.js";
3
3
  import { PortalRecipePrompts } from "../../../prompts/portal/recipe/new-recipe.js";
4
4
  import { getMessageInRedColor } from "../../../utils/utils.js";
5
+ import { TelemetryService } from "../../../infrastructure/services/telemetry-service.js";
6
+ import { RecipeCreationFailedEvent } from "../../../types/events/recipe-creation-failed.js";
5
7
  import { DirectoryPath } from "../../../types/file/directoryPath.js";
8
+ import { FlagsProvider } from "../../../types/flags-provider.js";
6
9
  const DEFAULT_WORKING_DIRECTORY = "./";
7
10
  class PortalRecipeNew extends Command {
8
11
  async run() {
9
12
  var _a;
10
13
  const { flags } = await this.parse(PortalRecipeNew);
14
+ const telemetryService = new TelemetryService(this.config.configDir);
11
15
  const portalRecipeAction = new PortalRecipeAction();
12
16
  const portalRecipePrompts = new PortalRecipePrompts();
13
- const workingDirectory = new DirectoryPath((_a = flags.folder) !== null && _a !== void 0 ? _a : DEFAULT_WORKING_DIRECTORY);
14
- const buildDirectory = flags.folder ? new DirectoryPath(flags.folder, "build") : workingDirectory.join("build");
17
+ const workingDirectory = new DirectoryPath((_a = flags.input) !== null && _a !== void 0 ? _a : DEFAULT_WORKING_DIRECTORY);
18
+ const buildDirectory = flags.input ? new DirectoryPath(flags.input, "src") : workingDirectory.join("src");
15
19
  const createRecipeResult = await portalRecipeAction.createRecipe(buildDirectory, this.config.configDir, flags.name);
20
+ //TODO: Add a mapper for automatically mapping events to logger and telemetry service.
16
21
  if (createRecipeResult.isFailed()) {
22
+ telemetryService.trackEvent(new RecipeCreationFailedEvent(createRecipeResult.error, PortalRecipeNew.id, flags));
17
23
  portalRecipePrompts.logError(getMessageInRedColor(createRecipeResult.error));
18
24
  }
19
25
  if (createRecipeResult.isCancelled()) {
@@ -24,14 +30,9 @@ class PortalRecipeNew extends Command {
24
30
  PortalRecipeNew.summary = "Generate an API Recipe for a static API Documentation portal.";
25
31
  PortalRecipeNew.description = "To learn more about API Recipes, visit: https://docs.apimatic.io/platform-api/#/http/guides/generating-on-prem-api-portal/api-recipes";
26
32
  PortalRecipeNew.examples = [
27
- `$ apimatic portal:recipe:new`,
28
- `$ apimatic portal:recipe:new --name="My API Recipe" --folder="./build-folder"`
33
+ `apimatic portal:recipe:new`,
34
+ `apimatic portal:recipe:new --name="My API Recipe" --input="./"`
29
35
  ];
30
- PortalRecipeNew.flags = {
31
- name: Flags.string({ description: "name for the recipe" }),
32
- folder: Flags.string({
33
- description: "[default: ./] Path to the parent directory containing the 'build' folder, which includes API specifications and configuration files."
34
- })
35
- };
36
+ PortalRecipeNew.flags = Object.assign({ name: Flags.string({ description: "name for the recipe" }) }, FlagsProvider.input);
36
37
  export default PortalRecipeNew;
37
38
  //# sourceMappingURL=new.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../../../src/commands/portal/recipe/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAEvC,MAAqB,eAAgB,SAAQ,OAAO;IAkB3C,KAAK,CAAC,GAAG;;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACpD,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAEtD,MAAM,gBAAgB,GAAG,IAAI,aAAa,CAAC,MAAA,KAAK,CAAC,MAAM,mCAAI,yBAAyB,CAAC,CAAC;QACtF,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhH,MAAM,kBAAkB,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAC9D,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,KAAK,CAAC,IAAI,CACX,CAAC;QACF,IAAI,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC;YAClC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,KAAM,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,kBAAkB,CAAC,WAAW,EAAE,EAAE,CAAC;YACrC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,KAAM,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;;AApCe,uBAAO,GAAG,+DAA+D,CAAC;AAE1E,2BAAW,GACzB,uIAAuI,CAAC;AAE1H,wBAAQ,GAAG;IACzB,8BAA8B;IAC9B,+EAA+E;CAChF,CAAC;AACc,qBAAK,GAAG;IACtB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC;IAC1D,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;QACnB,WAAW,EACT,sIAAsI;KACzI,CAAC;CACH,CAAC;eAhBiB,eAAe"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../../../src/commands/portal/recipe/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uDAAuD,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAEvC,MAAqB,eAAgB,SAAQ,OAAO;IAe3C,KAAK,CAAC,GAAG;;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrE,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACpD,MAAM,mBAAmB,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAEtD,MAAM,gBAAgB,GAAG,IAAI,aAAa,CAAC,MAAA,KAAK,CAAC,KAAK,mCAAI,yBAAyB,CAAC,CAAC;QACrF,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1G,MAAM,kBAAkB,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpH,sFAAsF;QACtF,IAAI,kBAAkB,CAAC,QAAQ,EAAE,EAAE,CAAC;YAClC,gBAAgB,CAAC,UAAU,CAAC,IAAI,yBAAyB,CAAC,kBAAkB,CAAC,KAAM,EAAE,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;YACjH,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,KAAM,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,kBAAkB,CAAC,WAAW,EAAE,EAAE,CAAC;YACrC,mBAAmB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,KAAM,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;;AAjCe,uBAAO,GAAG,+DAA+D,CAAC;AAE1E,2BAAW,GACzB,uIAAuI,CAAC;AAE1H,wBAAQ,GAAG;IACzB,4BAA4B;IAC5B,gEAAgE;CACjE,CAAC;AACc,qBAAK,mBACnB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,IACvD,aAAa,CAAC,KAAK,EACtB;eAbiB,eAAe"}
@@ -2,13 +2,12 @@ import { Command, Config } from "@oclif/core";
2
2
  export default class PortalServe extends Command {
3
3
  static description: string;
4
4
  static flags: {
5
- port: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
6
- folder: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
- destination: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
5
+ "auth-key": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
6
  open: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
7
  "no-reload": import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
8
  ignore: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
11
- "auth-key": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ destination: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ port: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
11
  };
13
12
  private readonly prompts;
14
13
  constructor(argv: string[], config: Config);
@@ -5,8 +5,9 @@ import { PortalServeAction } from "../../actions/portal/serve.js";
5
5
  import { getMessageInRedColor } from "../../utils/utils.js";
6
6
  import { ServeHandler } from "../../application/portal/serve/serve-handler.js";
7
7
  import { PortalService } from "../../infrastructure/services/portal-service.js";
8
- import { GeneratePortalAction } from "../../actions/portal/generatePortalAction.js";
8
+ import { GenerateAction } from "../../actions/portal/generate.js";
9
9
  import { DirectoryPath } from "../../types/file/directoryPath.js";
10
+ import { FlagsProvider } from "../../types/flags-provider.js";
10
11
  const DEFAULT_WORKING_DIRECTORY = "./";
11
12
  class PortalServe extends Command {
12
13
  constructor(argv, config) {
@@ -20,10 +21,10 @@ class PortalServe extends Command {
20
21
  const portalServeAction = new PortalServeAction(portalServePrompts, new ServeHandler(), new PortalService());
21
22
  //TODO: This needs to be moved within the action. Port should not be initialized again here.
22
23
  const port = await this.getServerPort(flags.port);
23
- const workingDirectory = new DirectoryPath((_a = flags.folder) !== null && _a !== void 0 ? _a : DEFAULT_WORKING_DIRECTORY);
24
- const buildDirectory = flags.folder ? new DirectoryPath(flags.folder, "build") : workingDirectory.join("build");
24
+ const workingDirectory = new DirectoryPath((_a = flags.input) !== null && _a !== void 0 ? _a : DEFAULT_WORKING_DIRECTORY);
25
+ const buildDirectory = flags.input ? new DirectoryPath(flags.input, "src") : workingDirectory.join("src");
25
26
  const portalDirectory = flags.destination ? new DirectoryPath(flags.destination) : workingDirectory.join("portal");
26
- const generatePortalAction = new GeneratePortalAction(new DirectoryPath(this.config.configDir), flags["auth-key"]);
27
+ const generatePortalAction = new GenerateAction(new DirectoryPath(this.config.configDir), flags["auth-key"]);
27
28
  const serveFlags = {
28
29
  folder: buildDirectory.toString(),
29
30
  destination: portalDirectory.toString(),
@@ -61,38 +62,24 @@ class PortalServe extends Command {
61
62
  }
62
63
  }
63
64
  PortalServe.description = "Generate and deploy a Docs as Code portal with hot reload.";
64
- PortalServe.flags = {
65
- port: Flags.integer({
65
+ PortalServe.flags = Object.assign(Object.assign(Object.assign(Object.assign({ port: Flags.integer({
66
66
  char: "p",
67
67
  description: "[default: 3000] port to serve the portal."
68
- }),
69
- folder: Flags.string({
70
- description: "[default: ./] path to the parent directory containing the 'build' folder, which includes API specifications and configuration files."
71
- }),
72
- destination: Flags.string({
73
- description: "[default: <folder>/portal] path where the portal will be generated."
74
- }),
75
- open: Flags.boolean({
68
+ }) }, FlagsProvider.input), FlagsProvider.destination("portal", "portal")), { open: Flags.boolean({
76
69
  char: "o",
77
70
  description: "Open the portal in the default browser.",
78
71
  default: false
79
- }),
80
- "no-reload": Flags.boolean({
72
+ }), "no-reload": Flags.boolean({
81
73
  description: "Disable hot reload.",
82
74
  default: false
83
- }),
84
- ignore: Flags.string({
75
+ }), ignore: Flags.string({
85
76
  char: "i",
86
77
  description: "Comma-separated list of file and directory paths to exclude from portal generation and hot reload.",
87
78
  default: ""
88
- }),
89
- "auth-key": Flags.string({
90
- description: "Override current authentication state with an authentication key."
91
- })
92
- };
79
+ }) }), FlagsProvider.authKey);
93
80
  PortalServe.examples = [
94
- "$ apimatic portal:serve",
95
- '$ apimatic portal:serve --folder="./" --destination="./portal" --port=3000 --open --no-reload'
81
+ "apimatic portal:serve",
82
+ 'apimatic portal:serve --input="./" --destination="./portal" --port=3000 --open --no-reload'
96
83
  ];
97
84
  export default PortalServe;
98
85
  //# sourceMappingURL=serve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/commands/portal/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/commands/portal/serve.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,14 @@
1
- import { Command } from "@oclif/core";
1
+ import { Command, Config } from "@oclif/core";
2
2
  export default class PortalTocNew extends Command {
3
3
  static summary: string;
4
4
  static description: string;
5
5
  static flags: {
6
- destination: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
- folder: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
- force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
6
  "expand-endpoints": import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
7
  "expand-models": import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
+ force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
+ destination: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
10
  };
12
11
  static examples: string[];
13
- constructor(argv: string[], config: any);
12
+ constructor(argv: string[], config: Config);
14
13
  run(): Promise<void>;
15
14
  }
@@ -1,6 +1,9 @@
1
1
  import { Command, Flags } from "@oclif/core";
2
2
  import { PortalNewTocAction } from "../../../actions/portal/toc/new-toc.js";
3
+ import { TelemetryService } from "../../../infrastructure/services/telemetry-service.js";
4
+ import { TocCreationFailedEvent } from "../../../types/events/toc-creation-failed.js";
3
5
  import { DirectoryPath } from "../../../types/file/directoryPath.js";
6
+ import { FlagsProvider } from "../../../types/flags-provider.js";
4
7
  const DEFAULT_WORKING_DIRECTORY = "./";
5
8
  class PortalTocNew extends Command {
6
9
  constructor(argv, config) {
@@ -9,15 +12,18 @@ class PortalTocNew extends Command {
9
12
  async run() {
10
13
  var _a;
11
14
  const { flags } = await this.parse(PortalTocNew);
15
+ const telemetryService = new TelemetryService(this.config.configDir);
12
16
  const portalNewTocAction = new PortalNewTocAction();
13
- const workingDirectory = new DirectoryPath((_a = flags.folder) !== null && _a !== void 0 ? _a : DEFAULT_WORKING_DIRECTORY);
14
- const buildDirectory = flags.folder ? new DirectoryPath(flags.folder, "build") : workingDirectory.join("build");
17
+ const workingDirectory = new DirectoryPath((_a = flags.input) !== null && _a !== void 0 ? _a : DEFAULT_WORKING_DIRECTORY);
18
+ const buildDirectory = flags.input ? new DirectoryPath(flags.input, "src") : workingDirectory.join("src");
15
19
  let tocDirectory;
16
20
  if (flags.destination) {
17
21
  tocDirectory = new DirectoryPath(flags.destination);
18
22
  }
19
23
  const result = await portalNewTocAction.createToc(buildDirectory, this.config.configDir, tocDirectory, flags.force, flags["expand-endpoints"], flags["expand-models"]);
24
+ //TODO: Add a mapper for automatically mapping events to logger and telemetry service.
20
25
  if (result.isFailed()) {
26
+ telemetryService.trackEvent(new TocCreationFailedEvent(result.error, PortalTocNew.id, flags));
21
27
  this.error(result.error);
22
28
  }
23
29
  }
@@ -30,30 +36,17 @@ The output is a YAML file with the .yml extension.
30
36
 
31
37
  To learn more about the TOC file and APIMatic build directory structure, visit:
32
38
  https://docs.apimatic.io/platform-api/#/http/guides/generating-on-prem-api-portal/overview-generating-api-portal`;
33
- PortalTocNew.flags = {
34
- destination: Flags.string({
35
- description: "[default: <folder>/build/content] optional path where the generated 'toc.yml' file will be saved."
36
- }),
37
- folder: Flags.string({
38
- description: "[default: ./] path to the parent directory containing the 'build' folder, which includes API specifications and configuration files."
39
- }),
40
- force: Flags.boolean({
41
- default: false,
42
- description: "overwrite the 'toc.yml' file if one already exists at the destination."
43
- }),
44
- "expand-endpoints": Flags.boolean({
39
+ PortalTocNew.flags = Object.assign(Object.assign(Object.assign(Object.assign({}, FlagsProvider.destination("src/content", `'toc.yml'`)), FlagsProvider.input), FlagsProvider.force), { "expand-endpoints": Flags.boolean({
45
40
  default: false,
46
41
  description: "include individual entries for each endpoint in the generated 'toc.yml'. Requires a valid API specification in the working directory."
47
- }),
48
- "expand-models": Flags.boolean({
42
+ }), "expand-models": Flags.boolean({
49
43
  default: false,
50
44
  description: "include individual entries for each model in the generated 'toc.yml'. Requires a valid API specification in the working directory."
51
- })
52
- };
45
+ }) });
53
46
  PortalTocNew.examples = [
54
- `$ apimatic portal:toc:new --destination="./portal/content/"`,
55
- `$ apimatic portal:toc:new --folder="./my-project"`,
56
- `$ apimatic portal:toc:new --folder="./my-project" --destination="./portal/content/"`
47
+ `apimatic portal:toc:new --destination="./src/content/"`,
48
+ `apimatic portal:toc:new --input="./"`,
49
+ `apimatic portal:toc:new --input="./" --destination="./src/content/"`
57
50
  ];
58
51
  export default PortalTocNew;
59
52
  //# sourceMappingURL=new.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"new.js","sourceRoot":"","sources":["../../../../src/commands/portal/toc/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAEvC,MAAqB,YAAa,SAAQ,OAAO;IA0C/C,YAAY,IAAc,EAAE,MAAW;QACrC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,GAAG;;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAEpD,MAAM,gBAAgB,GAAG,IAAI,aAAa,CAAC,MAAA,KAAK,CAAC,MAAM,mCAAI,yBAAyB,CAAC,CAAC;QACtF,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhH,IAAI,YAAuC,CAAC;QAE5C,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,YAAY,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAC/C,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,YAAY,EACZ,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,kBAAkB,CAAC,EACzB,KAAK,CAAC,eAAe,CAAC,CACvB,CAAC;QAEF,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;;AAtEM,oBAAO,GACZ,wGAAwG,CAAC;AAEpG,wBAAW,GAAG;;;;;;iHAM0F,CAAC;AAEzG,kBAAK,GAAG;IACb,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;QACxB,WAAW,EAAE,mGAAmG;KACjH,CAAC;IACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;QACnB,WAAW,EACT,sIAAsI;KACzI,CAAC;IACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;QACnB,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,wEAAwE;KACtF,CAAC;IACF,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC;QAChC,OAAO,EAAE,KAAK;QACd,WAAW,EACT,uIAAuI;KAC1I,CAAC;IACF,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC;QAC7B,OAAO,EAAE,KAAK;QACd,WAAW,EACT,oIAAoI;KACvI,CAAC;CACH,CAAC;AAEK,qBAAQ,GAAG;IAChB,6DAA6D;IAC7D,mDAAmD;IACnD,qFAAqF;CACtF,CAAC;eAxCiB,YAAY"}
1
+ {"version":3,"file":"new.js","sourceRoot":"","sources":["../../../../src/commands/portal/toc/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,KAAK,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uDAAuD,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAEvC,MAAqB,YAAa,SAAQ,OAAO;IAkC/C,YAAY,IAAc,EAAE,MAAc;QACxC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,GAAG;;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACrE,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAEpD,MAAM,gBAAgB,GAAG,IAAI,aAAa,CAAC,MAAA,KAAK,CAAC,KAAK,mCAAI,yBAAyB,CAAC,CAAC;QACrF,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1G,IAAI,YAAuC,CAAC;QAE5C,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,YAAY,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAC/C,cAAc,EACd,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,YAAY,EACZ,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,kBAAkB,CAAC,EACzB,KAAK,CAAC,eAAe,CAAC,CACvB,CAAC;QAEF,sFAAsF;QACtF,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;YACtB,gBAAgB,CAAC,UAAU,CAAC,IAAI,sBAAsB,CAAC,MAAM,CAAC,KAAM,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;YAC/F,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;;AAjEM,oBAAO,GACZ,wGAAwG,CAAC;AAEpG,wBAAW,GAAG;;;;;;iHAM0F,CAAC;AAEzG,kBAAK,+DACP,aAAa,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,GACrD,aAAa,CAAC,KAAK,GACnB,aAAa,CAAC,KAAK,KACtB,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC;QAChC,OAAO,EAAE,KAAK;QACd,WAAW,EACT,uIAAuI;KAC1I,CAAC,EACF,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC;QAC7B,OAAO,EAAE,KAAK;QACd,WAAW,EACT,oIAAoI;KACvI,CAAC,IACF;AAEK,qBAAQ,GAAG;IAChB,wDAAwD;IACxD,sCAAsC;IACtC,qEAAqE;CACtE,CAAC;eAhCiB,YAAY"}
@@ -2,14 +2,16 @@ import { Command } from "@oclif/core";
2
2
  export default class SdkGenerate extends Command {
3
3
  static description: string;
4
4
  static flags: {
5
- platform: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
6
- file: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
7
- url: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
8
- destination: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
- force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
5
+ "auth-key": import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
6
  zip: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
- "auth-key": import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
7
+ force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
+ destination: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ platform: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
10
+ spec: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
12
11
  };
13
12
  static examples: string[];
13
+ private readonly prompts;
14
14
  run(): Promise<void>;
15
+ private getConfigDir;
16
+ private convertSimplePlatformToPlatform;
15
17
  }
@@ -1,128 +1,65 @@
1
- var _a;
2
- import * as path from "path";
3
- import fsExtra from "fs-extra";
4
1
  import { Command, Flags } from "@oclif/core";
5
- import { SDKClient } from "../../client-utils/sdk-client.js";
6
- import { CodeGenerationExternalApisController } from "@apimatic/sdk";
7
- import { replaceHTML, isJSONParsable, getFileNameFromPath } from "../../utils/utils.js";
8
- import { getSDKGenerationId, downloadGeneratedSDK } from "../../controllers/sdk/generate.js";
2
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
3
+ import { FlagsProvider } from "../../types/flags-provider.js";
4
+ import { SdkGeneratePrompts } from "../../prompts/sdk/generate.js";
5
+ import { GenerateAction } from "../../actions/sdk/generate.js";
6
+ import { Platforms } from "@apimatic/sdk";
7
+ import { LanguagePlatform } from "../../types/sdk/generate.js";
8
+ const DEFAULT_WORKING_DIRECTORY = "./";
9
9
  class SdkGenerate extends Command {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.prompts = new SdkGeneratePrompts();
13
+ this.getConfigDir = () => {
14
+ return new DirectoryPath(this.config.configDir);
15
+ };
16
+ }
10
17
  async run() {
11
- const { flags } = await this.parse(_a);
12
- const zip = flags.zip;
13
- const fileName = flags.file ? getFileNameFromPath(flags.file) : getFileNameFromPath(flags.url);
14
- const sdkFolderPath = path.join(flags.destination, `${fileName}_sdk_${flags.platform}`.toLowerCase());
15
- const zippedSDKPath = path.join(flags.destination, `${fileName}_sdk_${flags.platform}.zip`.toLowerCase());
16
- // Check if at destination, SDK already exists and throw error if force flag is not set for both zip and extracted
17
- if (fsExtra.existsSync(sdkFolderPath) && !flags.force && !zip) {
18
- throw new Error(`Can't download SDK to path ${sdkFolderPath}, because it already exists`);
19
- }
20
- else if (fsExtra.existsSync(zippedSDKPath) && !flags.force && zip) {
21
- throw new Error(`Can't download SDK to path ${zippedSDKPath}, because it already exists`);
22
- }
23
- try {
24
- if (!(await fsExtra.pathExists(path.resolve(flags.destination)))) {
25
- throw new Error(`Destination path ${flags.destination} does not exist`);
26
- }
27
- else if (!(await fsExtra.pathExists(path.resolve(flags.file)))) {
28
- throw new Error(`Specification file ${flags.file} does not exist`);
29
- }
30
- const overrideAuthKey = flags["auth-key"] ? flags["auth-key"] : null;
31
- const client = await SDKClient.getInstance().getClient(overrideAuthKey, this.config.configDir);
32
- const sdkGenerationController = new CodeGenerationExternalApisController(client);
33
- // Get generation id for the specification and platform
34
- const codeGenId = await getSDKGenerationId(flags, sdkGenerationController);
35
- // If user wanted to download the SDK as well
36
- const sdkDownloadParams = {
37
- codeGenId,
38
- zippedSDKPath,
39
- sdkFolderPath,
40
- zip
41
- };
42
- const sdkPath = await downloadGeneratedSDK(sdkDownloadParams, sdkGenerationController);
43
- this.log(`Success! Your SDK is located at ${sdkPath}`);
44
- }
45
- catch (error) {
46
- if (error.result) {
47
- const apiError = error;
48
- const result = apiError.result;
49
- if (apiError.statusCode === 400 && isJSONParsable(result.message)) {
50
- const errors = JSON.parse(result.message);
51
- if (Array.isArray(errors.Errors) && apiError.statusCode === 400) {
52
- this.error(replaceHTML(`${JSON.parse(result.message).Errors[0]}`));
53
- }
54
- }
55
- else if (apiError.statusCode === 401 && apiError.body && typeof apiError.body === "string") {
56
- this.error("You are not authorized to perform this action");
57
- }
58
- else if (apiError.statusCode === 500 &&
59
- apiError.body &&
60
- typeof apiError.body === "string" &&
61
- isJSONParsable(apiError.body)) {
62
- this.error(JSON.parse(apiError.body).message);
63
- }
64
- else if (apiError.statusCode === 422 &&
65
- apiError.body &&
66
- typeof apiError.body === "string" &&
67
- isJSONParsable(apiError.body)) {
68
- this.error(JSON.parse(apiError.body)["dto.Url"][0]);
69
- }
70
- else {
71
- this.error(replaceHTML(result.message));
72
- }
73
- }
74
- else if (error.statusCode === 401) {
75
- this.error("You are not authorized to perform this action");
76
- }
77
- else if (error.statusCode === 402 &&
78
- error.body &&
79
- typeof error.body === "string") {
80
- this.error(replaceHTML(error.body));
81
- }
82
- else {
83
- this.error(`${error.message}`);
84
- }
18
+ const { flags: { platform, spec, destination, force, zip: zipSdk, "auth-key": authKey } } = await this.parse(SdkGenerate);
19
+ const workingDirectory = new DirectoryPath(DEFAULT_WORKING_DIRECTORY);
20
+ const specDirectory = new DirectoryPath(spec);
21
+ const sdkPlatform = this.convertSimplePlatformToPlatform(platform);
22
+ const sdkDirectory = destination ? new DirectoryPath(destination) : workingDirectory.join("sdk").join(sdkPlatform);
23
+ var action = new GenerateAction(this.getConfigDir(), authKey);
24
+ const result = await action.execute(specDirectory, sdkDirectory, sdkPlatform, force, zipSdk);
25
+ result.mapAll(() => this.prompts.displayOutroMessage(sdkDirectory), (message) => this.prompts.logError(message));
26
+ }
27
+ convertSimplePlatformToPlatform(languagePlatform) {
28
+ switch (languagePlatform) {
29
+ case LanguagePlatform.CSHARP:
30
+ return Platforms.CsNetStandardLib;
31
+ case LanguagePlatform.JAVA:
32
+ return Platforms.JavaEclipseJreLib;
33
+ case LanguagePlatform.PHP:
34
+ return Platforms.PhpGenericLibV2;
35
+ case LanguagePlatform.PYTHON:
36
+ return Platforms.PythonGenericLib;
37
+ case LanguagePlatform.RUBY:
38
+ return Platforms.RubyGenericLib;
39
+ case LanguagePlatform.TYPESCRIPT:
40
+ return Platforms.TsGenericLib;
41
+ case LanguagePlatform.GO:
42
+ return Platforms.GoGenericLib;
43
+ default:
44
+ throw new Error(`Unknown LanguagePlatform: ${languagePlatform}`);
85
45
  }
86
46
  }
87
47
  }
88
- _a = SdkGenerate;
89
- SdkGenerate.description = "Generate SDK for your APIs";
90
- SdkGenerate.flags = {
91
- platform: Flags.string({
92
- parse: async (input) => input.toUpperCase(),
48
+ SdkGenerate.description = "Generates SDK for your API";
49
+ SdkGenerate.flags = Object.assign(Object.assign(Object.assign(Object.assign({ platform: Flags.string({
93
50
  required: true,
94
- description: `language platform for sdk
95
- Simple: CSHARP|JAVA|PYTHON|RUBY|PHP|TYPESCRIPT|GO
96
- Legacy: CS_NET_STANDARD_LIB|JAVA_ECLIPSE_JRE_LIB|PHP_GENERIC_LIB_V2|PYTHON_GENERIC_LIB|RUBY_GENERIC_LIB|TS_GENERIC_LIB|GO_GENERIC_LIB`
97
- }),
98
- file: Flags.string({
99
- parse: async (input) => path.resolve(input),
100
- default: "",
101
- description: "path to the API specification to generate SDKs for"
102
- }),
103
- url: Flags.string({
104
- default: "",
105
- description: "URL to the API specification to generate SDKs for. Can be used in place of the --file option if the API specification is publicly available."
106
- }),
107
- destination: Flags.string({
108
- parse: async (input) => path.resolve(input),
109
- default: path.resolve("./"),
110
- description: "directory to download the generated SDK to"
111
- }),
112
- force: Flags.boolean({
113
- char: "f",
51
+ options: Object.values(LanguagePlatform).map(p => p.toString()),
52
+ description: `language platform for sdk`
53
+ }), spec: Flags.string({
54
+ description: "path to the folder containing the API specification file.",
55
+ default: "./src/spec"
56
+ }) }, FlagsProvider.destination("sdk", "sdk")), FlagsProvider.force), { zip: Flags.boolean({
114
57
  default: false,
115
- description: "overwrite if an SDK already exists in the destination"
116
- }),
117
- zip: Flags.boolean({ default: false, description: "download the generated SDK as a .zip archive" }),
118
- "auth-key": Flags.string({
119
- default: "",
120
- description: "override current authentication state with an authentication key"
121
- })
122
- };
58
+ description: "download the generated SDK as a .zip archive"
59
+ }) }), FlagsProvider.authKey);
123
60
  SdkGenerate.examples = [
124
- `$ apimatic sdk:generate --platform="CSHARP" --file="./specs/sample.json"`,
125
- `$ apimatic sdk:generate --platform="CSHARP" --url=https://petstore.swagger.io/v2/swagger.json`
61
+ `apimatic sdk:generate --platform="java"`,
62
+ `apimatic sdk:generate --platform="csharp" --spec="./src/spec"`
126
63
  ];
127
64
  export default SdkGenerate;
128
65
  //# sourceMappingURL=generate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/sdk/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/sdk/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare const enum ServiceError {
2
+ NotFound = "NOT_FOUND",
3
+ ServerError = "SERVER_ERROR",
4
+ NetworkError = "NETWORK_ERROR",
5
+ InvalidResponse = "INVALID_RESPONSE",
6
+ UnAuthorized = "UNAUTHORIZED"
7
+ }
8
+ export declare function getErrorMessage(error: ServiceError): string;
9
+ export declare function handleServiceError(error: unknown): ServiceError;
@@ -0,0 +1,33 @@
1
+ import axios from "axios";
2
+ export function getErrorMessage(error) {
3
+ switch (error) {
4
+ case "NETWORK_ERROR" /* ServiceError.NetworkError */:
5
+ return "Unable to connect to the server.";
6
+ case "UNAUTHORIZED" /* ServiceError.UnAuthorized */:
7
+ return "Unauthorized access.";
8
+ case "NOT_FOUND" /* ServiceError.NotFound */:
9
+ case "SERVER_ERROR" /* ServiceError.ServerError */:
10
+ case "INVALID_RESPONSE" /* ServiceError.InvalidResponse */:
11
+ default:
12
+ return "An unexpected error occurred, please try again later. If the problem persists, please reach out to our team at support@apimatic.io";
13
+ }
14
+ }
15
+ export function handleServiceError(error) {
16
+ var _a, _b, _c;
17
+ if (axios.isAxiosError(error)) {
18
+ if (((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 401) {
19
+ return "UNAUTHORIZED" /* ServiceError.UnAuthorized */;
20
+ }
21
+ if (((_b = error.response) === null || _b === void 0 ? void 0 : _b.status) === 404) {
22
+ return "NOT_FOUND" /* ServiceError.NotFound */;
23
+ }
24
+ if (((_c = error.response) === null || _c === void 0 ? void 0 : _c.status) === 500) {
25
+ return "SERVER_ERROR" /* ServiceError.ServerError */;
26
+ }
27
+ if (error.code === "ECONNABORTED" || error.code === "ECONNREFUSED") {
28
+ return "NETWORK_ERROR" /* ServiceError.NetworkError */;
29
+ }
30
+ }
31
+ return "SERVER_ERROR" /* ServiceError.ServerError */;
32
+ }
33
+ //# sourceMappingURL=api-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-utils.js","sourceRoot":"","sources":["../../src/infrastructure/api-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,MAAM,UAAU,eAAe,CAAC,KAAmB;IACjD,QAAQ,KAAK,EAAE,CAAC;QACd;YACE,OAAO,kCAAkC,CAAC;QAC5C;YACE,OAAO,sBAAsB,CAAC;QAChC,6CAA2B;QAC3B,mDAA8B;QAC9B,2DAAkC;QAClC;YACE,OAAO,oIAAoI,CAAC;IAChJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;;IAC/C,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE,CAAC;YACnC,sDAAkC;QACpC,CAAC;QACD,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE,CAAC;YACnC,+CAA6B;QAC/B,CAAC;QACD,IAAI,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,MAAK,GAAG,EAAE,CAAC;YACnC,qDAAgC;QAClC,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACnE,uDAAiC;QACnC,CAAC;IACH,CAAC;IACD,qDAAgC;AAClC,CAAC"}
@@ -0,0 +1,8 @@
1
+ declare class EnvInfo {
2
+ private static cachedCliVersion;
3
+ private static cachedUserAgent;
4
+ getUserAgent(): string;
5
+ getCLIVersion(): string;
6
+ }
7
+ export declare const envInfo: EnvInfo;
8
+ export {};
@@ -0,0 +1,37 @@
1
+ import os from "os";
2
+ import { fileURLToPath } from "url";
3
+ import { dirname, join } from "path";
4
+ import fs from "fs-extra";
5
+ class EnvInfo {
6
+ getUserAgent() {
7
+ if (!EnvInfo.cachedUserAgent) {
8
+ const osInfo = `${os.platform()} ${os.release()}`;
9
+ const engine = "Node.js";
10
+ const engineVersion = process.version;
11
+ EnvInfo.cachedUserAgent = `APIMATIC CLI/${this.getCLIVersion()} - (OS: ${osInfo}, Engine: ${engine}/${engineVersion})`;
12
+ }
13
+ return EnvInfo.cachedUserAgent;
14
+ }
15
+ getCLIVersion() {
16
+ if (EnvInfo.cachedCliVersion) {
17
+ return EnvInfo.cachedCliVersion;
18
+ }
19
+ try {
20
+ const __filename = fileURLToPath(import.meta.url);
21
+ const __dirname = dirname(__filename);
22
+ const pkgPath = join(__dirname, "../../../package.json");
23
+ const pkgJson = fs.readFileSync(pkgPath, "utf-8");
24
+ const pkg = JSON.parse(pkgJson);
25
+ const version = pkg.version || "unknown";
26
+ EnvInfo.cachedCliVersion = version;
27
+ return version;
28
+ }
29
+ catch (_a) {
30
+ return "unknown";
31
+ }
32
+ }
33
+ }
34
+ EnvInfo.cachedCliVersion = null;
35
+ EnvInfo.cachedUserAgent = null;
36
+ export const envInfo = new EnvInfo();
37
+ //# sourceMappingURL=env-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-info.js","sourceRoot":"","sources":["../../src/infrastructure/env-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,MAAM,UAAU,CAAC;AAE1B,MAAM,OAAO;IAIJ,YAAY;QACjB,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,SAAS,CAAC;YACzB,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;YACtC,OAAO,CAAC,eAAe,GAAG,gBAAgB,IAAI,CAAC,aAAa,EAAE,WAAW,MAAM,aAAa,MAAM,IAAI,aAAa,GAAG,CAAC;QACzH,CAAC;QACD,OAAO,OAAO,CAAC,eAAe,CAAC;IACjC,CAAC;IAEM,aAAa;QAClB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7B,OAAO,OAAO,CAAC,gBAAgB,CAAC;QAClC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;YACzC,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC;YACnC,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;;AA9Bc,wBAAgB,GAAkB,IAAI,CAAC;AACvC,uBAAe,GAAkB,IAAI,CAAC;AA+BvD,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC"}