@apimatic/cli 1.1.0-alpha.2 → 1.1.0-alpha.20

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 (251) hide show
  1. package/README.md +249 -99
  2. package/bin/run.js +5 -0
  3. package/lib/actions/action-result.d.ts +8 -0
  4. package/lib/actions/action-result.js +25 -0
  5. package/lib/actions/action-result.js.map +1 -0
  6. package/lib/actions/auth/login.d.ts +12 -0
  7. package/lib/actions/auth/login.js +63 -0
  8. package/lib/actions/auth/login.js.map +1 -0
  9. package/lib/actions/portal/copilot.d.ts +11 -0
  10. package/lib/actions/portal/copilot.js +49 -0
  11. package/lib/actions/portal/copilot.js.map +1 -0
  12. package/lib/actions/portal/generate.d.ts +13 -0
  13. package/lib/actions/portal/generate.js +61 -0
  14. package/lib/actions/portal/generate.js.map +1 -0
  15. package/lib/actions/portal/recipe/new-recipe.d.ts +24 -0
  16. package/lib/actions/portal/recipe/new-recipe.js +250 -0
  17. package/lib/actions/portal/recipe/new-recipe.js.map +1 -0
  18. package/lib/actions/portal/serve.d.ts +14 -0
  19. package/lib/actions/portal/serve.js +24 -0
  20. package/lib/actions/portal/serve.js.map +1 -0
  21. package/lib/actions/portal/toc/new-toc.d.ts +20 -0
  22. package/lib/actions/portal/toc/new-toc.js +133 -0
  23. package/lib/actions/portal/toc/new-toc.js.map +1 -0
  24. package/lib/actions/sdk/generate.d.ts +14 -0
  25. package/lib/actions/sdk/generate.js +72 -0
  26. package/lib/actions/sdk/generate.js.map +1 -0
  27. package/lib/application/portal/recipe/portal-recipe.d.ts +8 -0
  28. package/lib/application/portal/recipe/portal-recipe.js +33 -0
  29. package/lib/application/portal/recipe/portal-recipe.js.map +1 -0
  30. package/lib/application/portal/recipe/recipe-generator.d.ts +16 -0
  31. package/lib/application/portal/recipe/recipe-generator.js +147 -0
  32. package/lib/application/portal/recipe/recipe-generator.js.map +1 -0
  33. package/lib/application/portal/serve/portal-watcher.d.ts +11 -0
  34. package/lib/application/portal/serve/portal-watcher.js +64 -0
  35. package/lib/application/portal/serve/portal-watcher.js.map +1 -0
  36. package/lib/application/portal/serve/serve-handler.d.ts +16 -0
  37. package/lib/application/portal/serve/serve-handler.js +91 -0
  38. package/lib/application/portal/serve/serve-handler.js.map +1 -0
  39. package/lib/application/portal/serve/watcher-handler.d.ts +10 -0
  40. package/lib/application/portal/serve/watcher-handler.js +51 -0
  41. package/lib/application/portal/serve/watcher-handler.js.map +1 -0
  42. package/lib/application/portal/toc/sdl-parser.d.ts +19 -0
  43. package/lib/application/portal/toc/sdl-parser.js +90 -0
  44. package/lib/application/portal/toc/sdl-parser.js.map +1 -0
  45. package/lib/application/portal/toc/toc-content-parser.d.ts +5 -0
  46. package/lib/application/portal/toc/toc-content-parser.js +44 -0
  47. package/lib/application/portal/toc/toc-content-parser.js.map +1 -0
  48. package/lib/application/portal/toc/toc-structure-generator.d.ts +6 -0
  49. package/lib/application/portal/toc/toc-structure-generator.js +84 -0
  50. package/lib/application/portal/toc/toc-structure-generator.js.map +1 -0
  51. package/lib/client-utils/auth-manager.d.ts +8 -3
  52. package/lib/client-utils/auth-manager.js +23 -10
  53. package/lib/client-utils/auth-manager.js.map +1 -0
  54. package/lib/client-utils/sdk-client.d.ts +0 -1
  55. package/lib/client-utils/sdk-client.js +25 -55
  56. package/lib/client-utils/sdk-client.js.map +1 -0
  57. package/lib/commands/api/transform.d.ts +7 -7
  58. package/lib/commands/api/transform.js +43 -51
  59. package/lib/commands/api/transform.js.map +1 -0
  60. package/lib/commands/api/validate.d.ts +4 -4
  61. package/lib/commands/api/validate.js +26 -33
  62. package/lib/commands/api/validate.js.map +1 -0
  63. package/lib/commands/auth/login.d.ts +3 -2
  64. package/lib/commands/auth/login.js +22 -53
  65. package/lib/commands/auth/login.js.map +1 -0
  66. package/lib/commands/auth/logout.d.ts +1 -1
  67. package/lib/commands/auth/logout.js +8 -13
  68. package/lib/commands/auth/logout.js.map +1 -0
  69. package/lib/commands/auth/status.d.ts +1 -1
  70. package/lib/commands/auth/status.js +9 -13
  71. package/lib/commands/auth/status.js.map +1 -0
  72. package/lib/commands/portal/copilot.d.ts +12 -0
  73. package/lib/commands/portal/copilot.js +32 -0
  74. package/lib/commands/portal/copilot.js.map +1 -0
  75. package/lib/commands/portal/generate.d.ts +10 -8
  76. package/lib/commands/portal/generate.js +28 -107
  77. package/lib/commands/portal/generate.js.map +1 -0
  78. package/lib/commands/portal/quickstart.d.ts +10 -0
  79. package/lib/commands/portal/quickstart.js +105 -0
  80. package/lib/commands/portal/quickstart.js.map +1 -0
  81. package/lib/commands/portal/recipe/new.d.ts +10 -0
  82. package/lib/commands/portal/recipe/new.js +38 -0
  83. package/lib/commands/portal/recipe/new.js.map +1 -0
  84. package/lib/commands/portal/serve.d.ts +16 -0
  85. package/lib/commands/portal/serve.js +80 -0
  86. package/lib/commands/portal/serve.js.map +1 -0
  87. package/lib/commands/portal/toc/new.d.ts +14 -0
  88. package/lib/commands/portal/toc/new.js +52 -0
  89. package/lib/commands/portal/toc/new.js.map +1 -0
  90. package/lib/commands/sdk/generate.d.ts +9 -8
  91. package/lib/commands/sdk/generate.js +39 -128
  92. package/lib/commands/sdk/generate.js.map +1 -0
  93. package/lib/config/axios-config.d.ts +2 -0
  94. package/lib/config/axios-config.js +10 -0
  95. package/lib/config/axios-config.js.map +1 -0
  96. package/lib/config/env.d.ts +26 -1
  97. package/lib/config/env.js +27 -4
  98. package/lib/config/env.js.map +1 -0
  99. package/lib/controllers/api/transform.d.ts +1 -1
  100. package/lib/controllers/api/transform.js +23 -22
  101. package/lib/controllers/api/transform.js.map +1 -0
  102. package/lib/controllers/api/validate.d.ts +3 -3
  103. package/lib/controllers/api/validate.js +19 -12
  104. package/lib/controllers/api/validate.js.map +1 -0
  105. package/lib/controllers/portal/quickstart.d.ts +15 -0
  106. package/lib/controllers/portal/quickstart.js +217 -0
  107. package/lib/controllers/portal/quickstart.js.map +1 -0
  108. package/lib/index.d.ts +1 -1
  109. package/lib/index.js +2 -4
  110. package/lib/index.js.map +1 -0
  111. package/lib/infrastructure/api-utils.d.ts +9 -0
  112. package/lib/infrastructure/api-utils.js +33 -0
  113. package/lib/infrastructure/api-utils.js.map +1 -0
  114. package/lib/infrastructure/env-info.d.ts +8 -0
  115. package/lib/infrastructure/env-info.js +37 -0
  116. package/lib/infrastructure/env-info.js.map +1 -0
  117. package/lib/infrastructure/file-service.d.ts +18 -0
  118. package/lib/infrastructure/file-service.js +76 -0
  119. package/lib/infrastructure/file-service.js.map +1 -0
  120. package/lib/infrastructure/services/api-service.d.ts +10 -0
  121. package/lib/infrastructure/services/api-service.js +54 -0
  122. package/lib/infrastructure/services/api-service.js.map +1 -0
  123. package/lib/infrastructure/services/auth-service.d.ts +11 -0
  124. package/lib/infrastructure/services/auth-service.js +33 -0
  125. package/lib/infrastructure/services/auth-service.js.map +1 -0
  126. package/lib/infrastructure/services/portal-service.d.ts +20 -0
  127. package/lib/infrastructure/services/portal-service.js +163 -0
  128. package/lib/infrastructure/services/portal-service.js.map +1 -0
  129. package/lib/infrastructure/services/telemetry-service.d.ts +8 -0
  130. package/lib/infrastructure/services/telemetry-service.js +40 -0
  131. package/lib/infrastructure/services/telemetry-service.js.map +1 -0
  132. package/lib/infrastructure/tmp-extensions.d.ts +2 -0
  133. package/lib/infrastructure/tmp-extensions.js +6 -0
  134. package/lib/infrastructure/tmp-extensions.js.map +1 -0
  135. package/lib/infrastructure/zip-service.d.ts +6 -0
  136. package/lib/infrastructure/zip-service.js +39 -0
  137. package/lib/infrastructure/zip-service.js.map +1 -0
  138. package/lib/prompts/auth/login.d.ts +5 -0
  139. package/lib/prompts/auth/login.js +13 -0
  140. package/lib/prompts/auth/login.js.map +1 -0
  141. package/lib/prompts/portal/common/base-prompts.d.ts +7 -0
  142. package/lib/prompts/portal/common/base-prompts.js +19 -0
  143. package/lib/prompts/portal/common/base-prompts.js.map +1 -0
  144. package/lib/prompts/portal/copilot.d.ts +8 -0
  145. package/lib/prompts/portal/copilot.js +54 -0
  146. package/lib/prompts/portal/copilot.js.map +1 -0
  147. package/lib/prompts/portal/generate.d.ts +11 -0
  148. package/lib/prompts/portal/generate.js +42 -0
  149. package/lib/prompts/portal/generate.js.map +1 -0
  150. package/lib/prompts/portal/quickstart.d.ts +30 -0
  151. package/lib/prompts/portal/quickstart.js +240 -0
  152. package/lib/prompts/portal/quickstart.js.map +1 -0
  153. package/lib/prompts/portal/recipe/new-recipe.d.ts +24 -0
  154. package/lib/prompts/portal/recipe/new-recipe.js +203 -0
  155. package/lib/prompts/portal/recipe/new-recipe.js.map +1 -0
  156. package/lib/prompts/portal/serve.d.ts +4 -0
  157. package/lib/prompts/portal/serve.js +14 -0
  158. package/lib/prompts/portal/serve.js.map +1 -0
  159. package/lib/prompts/portal/toc/new-toc.d.ts +11 -0
  160. package/lib/prompts/portal/toc/new-toc.js +39 -0
  161. package/lib/prompts/portal/toc/new-toc.js.map +1 -0
  162. package/lib/prompts/sdk/generate.d.ts +11 -0
  163. package/lib/prompts/sdk/generate.js +42 -0
  164. package/lib/prompts/sdk/generate.js.map +1 -0
  165. package/lib/types/api/account.d.ts +10 -0
  166. package/lib/types/api/account.js +2 -0
  167. package/lib/types/api/account.js.map +1 -0
  168. package/lib/types/api/transform.d.ts +19 -4
  169. package/lib/types/api/transform.js +19 -4
  170. package/lib/types/api/transform.js.map +1 -0
  171. package/lib/types/api/validate.d.ts +3 -3
  172. package/lib/types/api/validate.js +2 -2
  173. package/lib/types/api/validate.js.map +1 -0
  174. package/lib/types/build/build.d.ts +14 -0
  175. package/lib/types/build/build.js +4 -0
  176. package/lib/types/build/build.js.map +1 -0
  177. package/lib/types/build-context.d.ts +13 -0
  178. package/lib/types/build-context.js +30 -0
  179. package/lib/types/build-context.js.map +1 -0
  180. package/lib/types/common/result.d.ts +17 -0
  181. package/lib/types/common/result.js +32 -0
  182. package/lib/types/common/result.js.map +1 -0
  183. package/lib/types/events/domain-event.d.ts +8 -0
  184. package/lib/types/events/domain-event.js +11 -0
  185. package/lib/types/events/domain-event.js.map +1 -0
  186. package/lib/types/events/recipe-creation-failed.d.ts +5 -0
  187. package/lib/types/events/recipe-creation-failed.js +8 -0
  188. package/lib/types/events/recipe-creation-failed.js.map +1 -0
  189. package/lib/types/events/toc-creation-failed.d.ts +5 -0
  190. package/lib/types/events/toc-creation-failed.js +8 -0
  191. package/lib/types/events/toc-creation-failed.js.map +1 -0
  192. package/lib/types/file/directoryPath.d.ts +7 -0
  193. package/lib/types/file/directoryPath.js +16 -0
  194. package/lib/types/file/directoryPath.js.map +1 -0
  195. package/lib/types/file/fileName.d.ts +5 -0
  196. package/lib/types/file/fileName.js +9 -0
  197. package/lib/types/file/fileName.js.map +1 -0
  198. package/lib/types/file/filePath.d.ts +8 -0
  199. package/lib/types/file/filePath.js +11 -0
  200. package/lib/types/file/filePath.js.map +1 -0
  201. package/lib/types/flags-provider.d.ts +15 -0
  202. package/lib/types/flags-provider.js +34 -0
  203. package/lib/types/flags-provider.js.map +1 -0
  204. package/lib/types/portal/generate.d.ts +13 -9
  205. package/lib/types/portal/generate.js +3 -2
  206. package/lib/types/portal/generate.js.map +1 -0
  207. package/lib/types/portal/quickstart.d.ts +17 -0
  208. package/lib/types/portal/quickstart.js +2 -0
  209. package/lib/types/portal/quickstart.js.map +1 -0
  210. package/lib/types/portal/serve.d.ts +12 -0
  211. package/lib/types/portal/serve.js +2 -0
  212. package/lib/types/portal/serve.js.map +1 -0
  213. package/lib/types/portal-context.d.ts +11 -0
  214. package/lib/types/portal-context.js +28 -0
  215. package/lib/types/portal-context.js.map +1 -0
  216. package/lib/types/recipe/recipe.d.ts +37 -0
  217. package/lib/types/recipe/recipe.js +6 -0
  218. package/lib/types/recipe/recipe.js.map +1 -0
  219. package/lib/types/sdk/generate.d.ts +11 -10
  220. package/lib/types/sdk/generate.js +11 -12
  221. package/lib/types/sdk/generate.js.map +1 -0
  222. package/lib/types/sdk-context.d.ts +13 -0
  223. package/lib/types/sdk-context.js +28 -0
  224. package/lib/types/sdk-context.js.map +1 -0
  225. package/lib/types/sdl/sdl.d.ts +12 -0
  226. package/lib/types/sdl/sdl.js +2 -0
  227. package/lib/types/sdl/sdl.js.map +1 -0
  228. package/lib/types/spec-context.d.ts +7 -0
  229. package/lib/types/spec-context.js +12 -0
  230. package/lib/types/spec-context.js.map +1 -0
  231. package/lib/types/toc/toc.d.ts +31 -0
  232. package/lib/types/toc/toc.js +9 -0
  233. package/lib/types/toc/toc.js.map +1 -0
  234. package/lib/types/utils.d.ts +3 -3
  235. package/lib/types/utils.js +2 -2
  236. package/lib/types/utils.js.map +1 -0
  237. package/lib/utils/utils.d.ts +16 -7
  238. package/lib/utils/utils.js +142 -86
  239. package/lib/utils/utils.js.map +1 -0
  240. package/lib/validators/common/directoryValidator.d.ts +5 -0
  241. package/lib/validators/common/directoryValidator.js +22 -0
  242. package/lib/validators/common/directoryValidator.js.map +1 -0
  243. package/lib/validators/portal/serve-validator.d.ts +6 -0
  244. package/lib/validators/portal/serve-validator.js +15 -0
  245. package/lib/validators/portal/serve-validator.js.map +1 -0
  246. package/package.json +96 -40
  247. package/bin/run +0 -5
  248. package/lib/controllers/portal/generate.d.ts +0 -2
  249. package/lib/controllers/portal/generate.js +0 -49
  250. package/lib/controllers/sdk/generate.d.ts +0 -4
  251. package/lib/controllers/sdk/generate.js +0 -64
package/lib/config/env.js CHANGED
@@ -1,4 +1,27 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.baseURL = void 0;
4
- exports.baseURL = "https://www.apimatic.io/api";
1
+ export const baseURL = "https://api.apimatic.io";
2
+ export const metadataFileContent = {
3
+ ImportSettings: {
4
+ AutoGenerateTestCases: false,
5
+ ImportAdditionalHeader: false,
6
+ ImportAdditionalTypeCombinatorModels: false,
7
+ ImportTypeCombinatorsWithOnlyOneType: false
8
+ },
9
+ CodeGenSettings: {
10
+ Timeout: 30,
11
+ ValidateRequiredParameters: true,
12
+ AddSingleAuthDeprecatedCode: false,
13
+ EnableGlobalUserAgent: true,
14
+ UserAgent: "{language}-SDK/{version} (OS: {os-info}, Engine: {engine}/{engine-version})",
15
+ EnableLogging: true,
16
+ EnableModelKeywordArgsInRuby: true,
17
+ SymbolizeHashKeysInRuby: true,
18
+ ReturnCompleteHttpResponse: true,
19
+ UserConfigurableRetries: true,
20
+ UseEnumPrefix: false,
21
+ ExtendedAdditionalPropertiesSupport: true,
22
+ EnforceStandardizedCasing: true,
23
+ ControllerPostfix: "Api",
24
+ DoNotSplitWords: ["oauth"]
25
+ }
26
+ };
27
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,yBAAyB,CAAC;AACjD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,cAAc,EAAE;QACd,qBAAqB,EAAE,KAAK;QAC5B,sBAAsB,EAAE,KAAK;QAC7B,oCAAoC,EAAE,KAAK;QAC3C,oCAAoC,EAAE,KAAK;KAC5C;IACD,eAAe,EAAE;QACf,OAAO,EAAE,EAAE;QACX,0BAA0B,EAAE,IAAI;QAChC,2BAA2B,EAAE,KAAK;QAClC,qBAAqB,EAAE,IAAI;QAC3B,SAAS,EAAE,6EAA6E;QACxF,aAAa,EAAE,IAAI;QACnB,4BAA4B,EAAE,IAAI;QAClC,uBAAuB,EAAE,IAAI;QAC7B,0BAA0B,EAAE,IAAI;QAChC,uBAAuB,EAAE,IAAI;QAC7B,aAAa,EAAE,KAAK;QACpB,mCAAmC,EAAE,IAAI;QACzC,yBAAyB,EAAE,IAAI;QAC/B,iBAAiB,EAAE,KAAK;QACxB,eAAe,EAAE,CAAC,OAAO,CAAC;KAC3B;CACF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { DownloadTransformationParams, TransformationIdParams } from "../../types/api/transform";
1
+ import { DownloadTransformationParams, TransformationIdParams } from "../../types/api/transform.js";
2
2
  import { ExportFormats, Transformation, TransformationController } from "@apimatic/sdk";
3
3
  export declare const getTransformationId: ({ file, url, format }: TransformationIdParams, transformationController: TransformationController) => Promise<Transformation>;
4
4
  export declare const downloadTransformationFile: ({ id, destinationFilePath, transformationController }: DownloadTransformationParams) => Promise<string>;
@@ -1,49 +1,50 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getValidFormat = exports.downloadTransformationFile = exports.getTransformationId = void 0;
4
- const cli_ux_1 = require("cli-ux");
5
- const fs = require("fs-extra");
6
- const utils_1 = require("../../utils/utils");
7
- const sdk_1 = require("@apimatic/sdk");
8
- exports.getTransformationId = async ({ file, url, format }, transformationController) => {
9
- cli_ux_1.default.action.start("Transforming API specification");
1
+ import { ux } from "@oclif/core";
2
+ import fsExtra from "fs-extra";
3
+ import { writeFileUsingReadableStream } from "../../utils/utils.js";
4
+ import { TransformationFormats } from "../../types/api/transform.js";
5
+ import { ContentType, ExportFormats, FileWrapper } from "@apimatic/sdk";
6
+ export const getTransformationId = async ({ file, url, format }, transformationController) => {
7
+ ux.action.start("Transforming API specification");
10
8
  let generation;
11
9
  if (file) {
12
- const fileDescriptor = new sdk_1.FileWrapper(fs.createReadStream(file));
13
- generation = await transformationController.transformViaFile(fileDescriptor, format);
10
+ const fileDescriptor = new FileWrapper(fsExtra.createReadStream(file));
11
+ generation = await transformationController.transformViaFile(ContentType.EnumMultipartformdata, fileDescriptor, format);
14
12
  }
15
13
  else if (url) {
16
14
  const body = {
17
15
  url: url,
18
16
  exportFormat: format
19
17
  };
20
- generation = await transformationController.transformViaURL(body);
18
+ generation = await transformationController.transformViaUrl(body);
21
19
  }
22
20
  else {
23
21
  throw new Error("Please provide a specification file");
24
22
  }
25
- cli_ux_1.default.action.stop();
23
+ ux.action.stop();
26
24
  return generation.result;
27
25
  };
28
- exports.downloadTransformationFile = async ({ id, destinationFilePath, transformationController }) => {
29
- cli_ux_1.default.action.start("Downloading Transformed file");
26
+ export const downloadTransformationFile = async ({ id, destinationFilePath, transformationController }) => {
27
+ ux.action.start("Downloading Transformed file");
30
28
  const { result } = await transformationController.downloadTransformedFile(id);
31
29
  if (result.readable) {
32
- await utils_1.writeFileUsingReadableStream(result, destinationFilePath);
30
+ await writeFileUsingReadableStream(result, destinationFilePath);
33
31
  }
34
32
  else {
35
33
  throw new Error("Couldn't save transformation file");
36
34
  }
37
- cli_ux_1.default.action.stop();
35
+ ux.action.stop();
38
36
  return destinationFilePath;
39
37
  };
40
38
  // Get valid platform from user's input, convert simple platform to valid Platforms enum value
41
- exports.getValidFormat = (format) => {
42
- if (Object.keys(sdk_1.ExportFormats).find((exportFormat) => exportFormat === format)) {
43
- return sdk_1.ExportFormats[format];
39
+ export const getValidFormat = (format) => {
40
+ const key = Object.keys(TransformationFormats).find((value) => value === format);
41
+ if (key) {
42
+ const transformationFormat = TransformationFormats[key];
43
+ return ExportFormats[transformationFormat];
44
44
  }
45
45
  else {
46
- const formats = Object.keys(sdk_1.ExportFormats).join("|");
47
- throw new Error(`Please provide a valid platform i.e. ${formats}`);
46
+ const formats = Object.keys(TransformationFormats).join("|");
47
+ throw new Error(`Please provide a valid platform, e.g. ${formats}`);
48
48
  }
49
49
  };
50
+ //# sourceMappingURL=transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/controllers/api/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,OAAO,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAGL,qBAAqB,EAEtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,WAAW,EACX,aAAa,EACb,WAAW,EAIZ,MAAM,eAAe,CAAC;AAEvB,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAA0B,EAC7C,wBAAkD,EACzB,EAAE;IAC3B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAElD,IAAI,UAAuC,CAAC;IAC5C,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QACvE,UAAU,GAAG,MAAM,wBAAwB,CAAC,gBAAgB,CAC1D,WAAW,CAAC,qBAAqB,EACjC,cAAc,EACd,MAAuB,CACxB,CAAC;IACJ,CAAC;SAAM,IAAI,GAAG,EAAE,CAAC;QACf,MAAM,IAAI,GAA2B;YACnC,GAAG,EAAE,GAAG;YACR,YAAY,EAAE,MAAuB;SACtC,CAAC;QACF,UAAU,GAAG,MAAM,wBAAwB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjB,OAAO,UAAU,CAAC,MAAM,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,EAAE,EAC/C,EAAE,EACF,mBAAmB,EACnB,wBAAwB,EACK,EAAmB,EAAE;IAClD,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAEhD,MAAM,EAAE,MAAM,EAAE,GAAuB,MAAM,wBAAwB,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAElG,IAAK,MAAgC,CAAC,QAAQ,EAAE,CAAC;QAC/C,MAAM,4BAA4B,CAAC,MAA+B,EAAE,mBAAmB,CAAC,CAAC;IAC3F,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACjB,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC;AACF,8FAA8F;AAC9F,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE;IAC/C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAElE,CAAC;IACd,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,GAAG,CAA+B,CAAC;QACtF,OAAO,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;AACH,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
- import { GetValidationParams } from "../../types/api/validate";
2
- import { APIValidationExternalApisController, ApiValidationSummary } from "@apimatic/sdk";
3
- export declare const getValidation: ({ file, url }: GetValidationParams, apiValidationController: APIValidationExternalApisController) => Promise<ApiValidationSummary>;
1
+ import { ApiValidationExternalApisController, ApiValidationSummary } from "@apimatic/sdk";
2
+ import { GetValidationParams } from "../../types/api/validate.js";
3
+ export declare const getValidationSummary: ({ file, url }: GetValidationParams, apiValidationController: ApiValidationExternalApisController) => Promise<ApiValidationSummary>;
@@ -1,22 +1,29 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getValidation = void 0;
4
- const cli_ux_1 = require("cli-ux");
5
- const fs = require("fs-extra");
6
- const core_1 = require("@apimatic/core");
7
- exports.getValidation = async ({ file, url }, apiValidationController) => {
1
+ import fsExtra from "fs-extra";
2
+ import { ContentType, FileWrapper } from "@apimatic/sdk";
3
+ import { createTempDirectory, deleteFile, zipDirectory } from "../../utils/utils.js";
4
+ export const getValidationSummary = async ({ file, url }, apiValidationController) => {
8
5
  let validation;
9
- cli_ux_1.default.action.start("Validating specification file");
10
6
  if (file) {
11
- const fileDescriptor = new core_1.FileWrapper(fs.createReadStream(file));
12
- validation = await apiValidationController.validateAPIViaFile(fileDescriptor);
7
+ const fileStatus = fsExtra.statSync(file);
8
+ if (fileStatus.isDirectory()) {
9
+ const tempDir = await createTempDirectory();
10
+ const zipPath = await zipDirectory(file, tempDir);
11
+ const zipFile = new FileWrapper(fsExtra.createReadStream(zipPath));
12
+ validation = await apiValidationController.validateApiViaFile(ContentType.EnumMultipartformdata, zipFile);
13
+ await deleteFile(zipPath);
14
+ await fsExtra.remove(tempDir);
15
+ }
16
+ else {
17
+ const fileDescriptor = new FileWrapper(fsExtra.createReadStream(file));
18
+ validation = await apiValidationController.validateApiViaFile(ContentType.EnumMultipartformdata, fileDescriptor);
19
+ }
13
20
  }
14
21
  else if (url) {
15
- validation = await apiValidationController.validateAPIViaURL(url);
22
+ validation = await apiValidationController.validateApiViaUrl(url);
16
23
  }
17
24
  else {
18
25
  throw new Error("Please provide a specification file");
19
26
  }
20
- cli_ux_1.default.action.stop();
21
27
  return validation.result;
22
28
  };
29
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/controllers/api/validate.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,EAA0E,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjI,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAErF,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,EAAE,IAAI,EAAE,GAAG,EAAuB,EAClC,uBAA4D,EAC7B,EAAE;IACjC,IAAI,UAA6C,CAAC;IAElD,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,mBAAmB,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;YACnE,UAAU,GAAG,MAAM,uBAAuB,CAAC,kBAAkB,CAAC,WAAW,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;YAE1G,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;YAE1B,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,UAAU,GAAG,MAAM,uBAAuB,CAAC,kBAAkB,CAAC,WAAW,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;QACnH,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,EAAE,CAAC;QACf,UAAU,GAAG,MAAM,uBAAuB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,CAAC;AAC3B,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { ApiValidationExternalApisController, ApiValidationSummary } from "@apimatic/sdk";
2
+ import { LoginCredentials, SpecFile } from "../../types/portal/quickstart.js";
3
+ import { SDKClient } from "../../client-utils/sdk-client.js";
4
+ import { PortalQuickstartPrompts } from "../../prompts/portal/quickstart.js";
5
+ export declare class PortalQuickstartController {
6
+ private readonly zipService;
7
+ private readonly fileService;
8
+ private readonly specUrl;
9
+ isUserAuthenticated(configDir: string): Promise<boolean>;
10
+ userLogin(credentials: LoginCredentials, client: SDKClient, configDir: string): Promise<void>;
11
+ getSpecFile(spec: string): Promise<SpecFile>;
12
+ getSpecValidationSummary(prompts: PortalQuickstartPrompts, specFile: SpecFile, apiValidationController: ApiValidationExternalApisController): Promise<ApiValidationSummary>;
13
+ private downloadRepositoryFromGitHub;
14
+ setupBuildDirectory(prompts: PortalQuickstartPrompts, targetFolder: string, specFile: SpecFile, validationSummary: ApiValidationSummary, languages: string[]): Promise<void>;
15
+ }
@@ -0,0 +1,217 @@
1
+ import axios from "axios";
2
+ import * as path from "path";
3
+ import filetype from "file-type";
4
+ import fs from "fs";
5
+ import fsExtra from "fs-extra";
6
+ import { readdir } from "fs/promises";
7
+ import { getAuthInfo } from "../../client-utils/auth-manager.js";
8
+ import { createTempDirectory, isValidUrl, getMessageInRedColor, clearDirectory, deleteFile } from "../../utils/utils.js";
9
+ import { getValidationSummary } from "../api/validate.js";
10
+ import { metadataFileContent } from "../../config/env.js";
11
+ import { ZipService } from "../../infrastructure/zip-service.js";
12
+ import { FilePath } from "../../types/file/filePath.js";
13
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
14
+ import { FileName } from "../../types/file/fileName.js";
15
+ import { withDirPath } from "../../infrastructure/tmp-extensions.js";
16
+ import { FileService } from "../../infrastructure/file-service.js";
17
+ export class PortalQuickstartController {
18
+ constructor() {
19
+ this.zipService = new ZipService();
20
+ this.fileService = new FileService();
21
+ this.specUrl = "https://github.com/apimatic/static-portal-workflow/blob/master/spec/openapi.json";
22
+ }
23
+ async isUserAuthenticated(configDir) {
24
+ const storedAuth = await getAuthInfo(configDir);
25
+ if (!(storedAuth === null || storedAuth === void 0 ? void 0 : storedAuth.authKey)) {
26
+ return false;
27
+ }
28
+ return true;
29
+ }
30
+ async userLogin(credentials, client, configDir) {
31
+ await client.login(credentials.email, credentials.password, configDir);
32
+ }
33
+ async getSpecFile(spec) {
34
+ const tempSpecDir = await createTempDirectory();
35
+ if (spec) {
36
+ let specPath = String(spec);
37
+ if (isValidUrl(specPath)) {
38
+ try {
39
+ const response = await axios.head(specPath);
40
+ if (response.headers["content-type"].includes("text/html")) {
41
+ throw new Error(getMessageInRedColor(`Invalid URL. Please check the URL and ensure it points to a valid OpenAPI definition.`));
42
+ }
43
+ const specFile = await axios.get(specPath, { responseType: "arraybuffer" });
44
+ const fileName = path.basename(specPath);
45
+ const filePath = path.join(tempSpecDir, fileName);
46
+ await fsExtra.writeFile(filePath, specFile.data);
47
+ }
48
+ catch (error) {
49
+ if (axios.isAxiosError(error)) {
50
+ if (error.response) {
51
+ if (error.response.status === 404) {
52
+ throw new Error(getMessageInRedColor(`Unable to download the API Definition. The server returned a 404 Not Found error. Please verify that the provided URL is correct and publicly accessible.`));
53
+ }
54
+ else {
55
+ throw new Error(getMessageInRedColor(`Unable to download the API Definition. The server returned ${error.response.status} ${error.response.statusText}`));
56
+ }
57
+ }
58
+ else if (error.request) {
59
+ if (error.code === "ECONNABORTED") {
60
+ throw new Error(getMessageInRedColor(`Unable to download the API Definition, your request timed out. Please check your internet connection and try again, or contact APIMatic support for help if your problem persists.`));
61
+ }
62
+ else if (error.code === "ENOTFOUND" || error.code === "ERR_NETWORK") {
63
+ throw new Error(getMessageInRedColor(`Failed to download the API Definition file due to network issues. Please check your internet connection and try again.`));
64
+ }
65
+ else {
66
+ throw new Error(getMessageInRedColor(`Failed to download the API Definition file, no response was received from the server. Please try again later.`));
67
+ }
68
+ }
69
+ else {
70
+ throw new Error(getMessageInRedColor(`Failed to download API Definition: ${error.message}`));
71
+ }
72
+ }
73
+ else {
74
+ throw new Error(getMessageInRedColor(`Unable to save API Definition : ${error instanceof Error ? error.message : "Unknown error"}`));
75
+ }
76
+ }
77
+ }
78
+ else {
79
+ specPath = path.normalize(specPath);
80
+ const fileType = await filetype.fromFile(specPath);
81
+ if ((fileType === null || fileType === void 0 ? void 0 : fileType.ext) === "zip") {
82
+ await this.zipService.unArchive(new FilePath(new DirectoryPath(path.dirname(specPath)), new FileName(path.basename(specPath))), new DirectoryPath(tempSpecDir));
83
+ }
84
+ else {
85
+ const destinationPath = path.join(tempSpecDir, path.basename(specPath));
86
+ await fsExtra.copy(specPath, destinationPath);
87
+ }
88
+ }
89
+ }
90
+ return { localPath: tempSpecDir, url: this.specUrl };
91
+ }
92
+ async getSpecValidationSummary(prompts, specFile, apiValidationController) {
93
+ const validationFlags = {
94
+ file: specFile.localPath,
95
+ url: specFile.url
96
+ };
97
+ try {
98
+ const validationSummary = await getValidationSummary(validationFlags, apiValidationController);
99
+ return validationSummary;
100
+ }
101
+ catch (error) {
102
+ prompts.displaySpecValidationErrorMessage();
103
+ if (axios.isAxiosError(error)) {
104
+ if (error.response) {
105
+ if (error.response.status === 400) {
106
+ throw new Error(getMessageInRedColor(`The provided spec file is not valid. Please ensure that the spec you have provided is a valid API definition file.`));
107
+ }
108
+ else if (error.response.status === 500) {
109
+ throw new Error(getMessageInRedColor(`The server encountered an error while validating your spec file, please try again later. If the issue persists, contact our team at support@apimatic.io`));
110
+ }
111
+ else {
112
+ throw new Error(getMessageInRedColor(`Something went wrong while validating your spec file. The server returned the following error ${error.response.status} ${error.response.statusText}. Please try again later. If the issue persists, contact our team at support@apimatic.io`));
113
+ }
114
+ }
115
+ else if (error.request) {
116
+ if (error.code === "ECONNABORTED") {
117
+ throw new Error(getMessageInRedColor(`The spec validation request timed out. Please try again.`));
118
+ }
119
+ else if (error.code === "ENOTFOUND" || error.code === "ERR_NETWORK") {
120
+ throw new Error(getMessageInRedColor(`Network error encountered while validating the spec file. Please check your connection and try again.`));
121
+ }
122
+ else {
123
+ throw new Error(getMessageInRedColor(`Something went wrong while validating the spec file, please try again. If the issue persists, reach out to our support team at support@apimatic.io`));
124
+ }
125
+ }
126
+ else {
127
+ throw new Error(getMessageInRedColor(`Failed to validate spec file: ${error.message}`));
128
+ }
129
+ }
130
+ else if (error.result) {
131
+ const apiError = error;
132
+ if (error.body && apiError.statusCode === 401) {
133
+ throw new Error("You are not authorized to perform this action.");
134
+ }
135
+ else {
136
+ throw new Error(error.message);
137
+ }
138
+ }
139
+ else if (error.statusCode === 401) {
140
+ throw new Error("You are not authorized to perform this action.");
141
+ }
142
+ else if (error.statusCode === 402 &&
143
+ error.body &&
144
+ typeof error.body === "string") {
145
+ throw new Error(error.body);
146
+ }
147
+ else {
148
+ throw new Error(getMessageInRedColor(`Something went wrong while validating the spec file, please try again later. If the issue persists, contact our team at support@apimatic.io`));
149
+ }
150
+ }
151
+ }
152
+ async downloadRepositoryFromGitHub(targetFolder) {
153
+ return await withDirPath(async (tempDirectory) => {
154
+ const zipUrl = `https://github.com/apimatic/static-portal-workflow/archive/refs/heads/master.zip`;
155
+ const response = await fetch(zipUrl);
156
+ const repositoryFolderName = "static-portal-workflow-master";
157
+ if (!response.ok) {
158
+ throw new Error(`Unable to setup your portal, please try again later.`);
159
+ }
160
+ const arrayBuffer = await response.arrayBuffer();
161
+ const tempZipPath = new FilePath(tempDirectory, new FileName("static-repo.zip"));
162
+ await this.fileService.writeBuffer(tempZipPath, Buffer.from(arrayBuffer));
163
+ await this.zipService.unArchive(tempZipPath, tempDirectory);
164
+ const extractedFolderPath = new DirectoryPath(tempDirectory.toString(), repositoryFolderName);
165
+ await this.fileService.copyDirectoryContents(extractedFolderPath, new DirectoryPath(targetFolder));
166
+ });
167
+ }
168
+ async setupBuildDirectory(prompts, targetFolder, specFile, validationSummary, languages) {
169
+ fsExtra.emptyDirSync(targetFolder);
170
+ try {
171
+ await this.downloadRepositoryFromGitHub(targetFolder);
172
+ }
173
+ catch (error) {
174
+ prompts.displayBuildDirectoryGenerationErrorMessage();
175
+ if (error instanceof Error) {
176
+ if (error.message.includes("timed out") || error.message.includes("timeout")) {
177
+ throw new Error(getMessageInRedColor("The operation timed out while setting up the build directory. Please check your internet connection and try again."));
178
+ }
179
+ else if (error.message.includes("Could not resolve host")) {
180
+ throw new Error(getMessageInRedColor("Unable to resolve the host. Please check your network settings and try again."));
181
+ }
182
+ else {
183
+ throw new Error(getMessageInRedColor(`Failed to set up the build directory. ${error.message}`));
184
+ }
185
+ }
186
+ else {
187
+ throw new Error(getMessageInRedColor(`Failed to set up the build directory. ${error}`));
188
+ }
189
+ }
190
+ await clearDirectory(path.join(targetFolder, ".github"));
191
+ if (specFile.localPath && validationSummary.success) {
192
+ const specFolder = path.join(targetFolder, "spec");
193
+ await deleteFile(path.join(specFolder, "openapi.json"));
194
+ const files = await readdir(specFile.localPath);
195
+ for (const file of files) {
196
+ const srcPath = path.join(specFile.localPath, file);
197
+ const destPath = path.join(specFolder, file);
198
+ await fsExtra.copy(srcPath, destPath);
199
+ }
200
+ }
201
+ const buildFilePath = path.join(targetFolder, "APIMATIC-BUILD.json");
202
+ const buildFileContent = JSON.parse(fs.readFileSync(buildFilePath, "utf8"));
203
+ const languageConfig = languages.reduce((config, lang) => {
204
+ config[lang] = {};
205
+ return config;
206
+ }, {});
207
+ buildFileContent.generatePortal.languageConfig = languageConfig;
208
+ fs.writeFileSync(buildFilePath, JSON.stringify(buildFileContent, null, 2));
209
+ const specFolder = path.join(targetFolder, "spec");
210
+ const metadataFile = fs.readdirSync(specFolder).find((file) => file.startsWith("APIMATIC-META"));
211
+ if (!metadataFile) {
212
+ const newMetadataFilePath = path.join(specFolder, "APIMATIC-META.json");
213
+ fs.writeFileSync(newMetadataFilePath, JSON.stringify(metadataFileContent, null, 2));
214
+ }
215
+ }
216
+ }
217
+ //# sourceMappingURL=quickstart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quickstart.js","sourceRoot":"","sources":["../../../src/controllers/portal/quickstart.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1 +1 @@
1
- export { run } from "@oclif/command";
1
+ export { run } from "@oclif/core";
package/lib/index.js CHANGED
@@ -1,4 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var command_1 = require("@oclif/command");
4
- Object.defineProperty(exports, "run", { enumerable: true, get: function () { return command_1.run; } });
1
+ export { run } from "@oclif/core";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC"}
@@ -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,oBAAoB,CAAC,CAAC;YACtD,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"}
@@ -0,0 +1,18 @@
1
+ import fs from "fs";
2
+ import { FilePath } from "../types/file/filePath.js";
3
+ import { DirectoryPath } from "../types/file/directoryPath.js";
4
+ export declare class FileService {
5
+ fileExists(file: FilePath): Promise<boolean>;
6
+ directoryExists(dir: DirectoryPath): Promise<boolean>;
7
+ directoryEmpty(dir: DirectoryPath): Promise<boolean>;
8
+ cleanDirectory(dir: DirectoryPath): Promise<void>;
9
+ copyDirectory(source: DirectoryPath, destination: DirectoryPath): Promise<void>;
10
+ copyDirectoryContents(source: DirectoryPath, destination: DirectoryPath): Promise<void>;
11
+ deleteFile(filePath: FilePath): Promise<void>;
12
+ getStream(filePath: FilePath): Promise<fs.ReadStream>;
13
+ getContents(filePath: FilePath): Promise<string>;
14
+ writeFile(filePath: FilePath, stream: NodeJS.ReadableStream): Promise<void>;
15
+ writeContents(filePath: FilePath, contents: string): Promise<void>;
16
+ writeBuffer(filePath: FilePath, buffer: Buffer): Promise<void>;
17
+ copy(source: FilePath, destination: FilePath): Promise<void>;
18
+ }