@apimatic/cli 1.1.0-alpha.13 → 1.1.0-alpha.15

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 (209) hide show
  1. package/README.md +96 -95
  2. package/lib/actions/action-result.d.ts +8 -0
  3. package/lib/actions/action-result.js +25 -0
  4. package/lib/actions/action-result.js.map +1 -0
  5. package/lib/actions/auth/login.d.ts +12 -0
  6. package/lib/actions/auth/login.js +63 -0
  7. package/lib/actions/auth/login.js.map +1 -0
  8. package/lib/actions/portal/copilot.d.ts +11 -0
  9. package/lib/actions/portal/copilot.js +46 -0
  10. package/lib/actions/portal/copilot.js.map +1 -0
  11. package/lib/actions/portal/generate.d.ts +11 -5
  12. package/lib/actions/portal/generate.js +54 -47
  13. package/lib/actions/portal/generate.js.map +1 -1
  14. package/lib/actions/portal/recipe/new-recipe.d.ts +3 -3
  15. package/lib/actions/portal/recipe/new-recipe.js +18 -31
  16. package/lib/actions/portal/recipe/new-recipe.js.map +1 -1
  17. package/lib/actions/portal/serve.d.ts +17 -0
  18. package/lib/actions/portal/serve.js +36 -0
  19. package/lib/actions/portal/serve.js.map +1 -0
  20. package/lib/actions/portal/toc/new-toc.d.ts +4 -1
  21. package/lib/actions/portal/toc/new-toc.js +37 -34
  22. package/lib/actions/portal/toc/new-toc.js.map +1 -1
  23. package/lib/actions/sdk/generate.d.ts +13 -0
  24. package/lib/actions/sdk/generate.js +49 -0
  25. package/lib/actions/sdk/generate.js.map +1 -0
  26. package/lib/application/portal/serve/portal-watcher.d.ts +11 -0
  27. package/lib/application/portal/serve/portal-watcher.js +67 -0
  28. package/lib/application/portal/serve/portal-watcher.js.map +1 -0
  29. package/lib/application/portal/serve/serve-handler.d.ts +16 -0
  30. package/lib/application/portal/serve/serve-handler.js +91 -0
  31. package/lib/application/portal/serve/serve-handler.js.map +1 -0
  32. package/lib/application/portal/serve/watcher-handler.d.ts +10 -0
  33. package/lib/application/portal/serve/watcher-handler.js +51 -0
  34. package/lib/application/portal/serve/watcher-handler.js.map +1 -0
  35. package/lib/application/portal/toc/sdl-parser.d.ts +2 -1
  36. package/lib/application/portal/toc/sdl-parser.js +4 -4
  37. package/lib/application/portal/toc/sdl-parser.js.map +1 -1
  38. package/lib/client-utils/auth-manager.d.ts +7 -2
  39. package/lib/client-utils/auth-manager.js +24 -7
  40. package/lib/client-utils/auth-manager.js.map +1 -1
  41. package/lib/client-utils/sdk-client.d.ts +0 -1
  42. package/lib/client-utils/sdk-client.js +7 -38
  43. package/lib/client-utils/sdk-client.js.map +1 -1
  44. package/lib/commands/api/transform.d.ts +2 -2
  45. package/lib/commands/api/transform.js +10 -19
  46. package/lib/commands/api/transform.js.map +1 -1
  47. package/lib/commands/api/validate.d.ts +1 -1
  48. package/lib/commands/api/validate.js +5 -13
  49. package/lib/commands/api/validate.js.map +1 -1
  50. package/lib/commands/auth/login.d.ts +2 -1
  51. package/lib/commands/auth/login.js +19 -65
  52. package/lib/commands/auth/login.js.map +1 -1
  53. package/lib/commands/auth/logout.js +2 -6
  54. package/lib/commands/auth/logout.js.map +1 -1
  55. package/lib/commands/auth/status.js +3 -6
  56. package/lib/commands/auth/status.js.map +1 -1
  57. package/lib/commands/portal/copilot.d.ts +12 -0
  58. package/lib/commands/portal/copilot.js +35 -0
  59. package/lib/commands/portal/copilot.js.map +1 -0
  60. package/lib/commands/portal/generate.d.ts +7 -10
  61. package/lib/commands/portal/generate.js +18 -83
  62. package/lib/commands/portal/generate.js.map +1 -1
  63. package/lib/commands/portal/quickstart.d.ts +2 -2
  64. package/lib/commands/portal/quickstart.js +58 -29
  65. package/lib/commands/portal/quickstart.js.map +1 -1
  66. package/lib/commands/portal/recipe/new.d.ts +1 -3
  67. package/lib/commands/portal/recipe/new.js +21 -27
  68. package/lib/commands/portal/recipe/new.js.map +1 -1
  69. package/lib/commands/portal/serve.d.ts +7 -6
  70. package/lib/commands/portal/serve.js +62 -112
  71. package/lib/commands/portal/serve.js.map +1 -1
  72. package/lib/commands/portal/toc/new.d.ts +4 -5
  73. package/lib/commands/portal/toc/new.js +26 -37
  74. package/lib/commands/portal/toc/new.js.map +1 -1
  75. package/lib/commands/sdk/generate.d.ts +8 -6
  76. package/lib/commands/sdk/generate.js +53 -124
  77. package/lib/commands/sdk/generate.js.map +1 -1
  78. package/lib/controllers/portal/quickstart.d.ts +0 -2
  79. package/lib/controllers/portal/quickstart.js +2 -60
  80. package/lib/controllers/portal/quickstart.js.map +1 -1
  81. package/lib/infrastructure/api-utils.d.ts +9 -0
  82. package/lib/infrastructure/api-utils.js +33 -0
  83. package/lib/infrastructure/api-utils.js.map +1 -0
  84. package/lib/infrastructure/env-info.d.ts +8 -0
  85. package/lib/infrastructure/env-info.js +37 -0
  86. package/lib/infrastructure/env-info.js.map +1 -0
  87. package/lib/infrastructure/file-service.d.ts +15 -0
  88. package/lib/infrastructure/file-service.js +61 -0
  89. package/lib/infrastructure/file-service.js.map +1 -0
  90. package/lib/infrastructure/services/api-service.d.ts +10 -0
  91. package/lib/infrastructure/services/api-service.js +52 -0
  92. package/lib/infrastructure/services/api-service.js.map +1 -0
  93. package/lib/infrastructure/services/auth-service.d.ts +11 -0
  94. package/lib/infrastructure/services/auth-service.js +33 -0
  95. package/lib/infrastructure/services/auth-service.js.map +1 -0
  96. package/lib/infrastructure/services/portal-service.d.ts +7 -4
  97. package/lib/infrastructure/services/portal-service.js +70 -49
  98. package/lib/infrastructure/services/portal-service.js.map +1 -1
  99. package/lib/infrastructure/services/telemetry-service.d.ts +8 -0
  100. package/lib/infrastructure/services/telemetry-service.js +40 -0
  101. package/lib/infrastructure/services/telemetry-service.js.map +1 -0
  102. package/lib/infrastructure/tmp-extensions.d.ts +2 -0
  103. package/lib/infrastructure/tmp-extensions.js +6 -0
  104. package/lib/infrastructure/tmp-extensions.js.map +1 -0
  105. package/lib/infrastructure/zip-service.d.ts +6 -0
  106. package/lib/infrastructure/zip-service.js +25 -0
  107. package/lib/infrastructure/zip-service.js.map +1 -0
  108. package/lib/prompts/auth/login.d.ts +5 -0
  109. package/lib/prompts/auth/login.js +13 -0
  110. package/lib/prompts/auth/login.js.map +1 -0
  111. package/lib/prompts/portal/common/base-prompts.d.ts +7 -0
  112. package/lib/prompts/portal/common/base-prompts.js +19 -0
  113. package/lib/prompts/portal/common/base-prompts.js.map +1 -0
  114. package/lib/prompts/portal/copilot.d.ts +6 -0
  115. package/lib/prompts/portal/copilot.js +35 -0
  116. package/lib/prompts/portal/copilot.js.map +1 -0
  117. package/lib/prompts/portal/generate.d.ts +3 -2
  118. package/lib/prompts/portal/generate.js +21 -36
  119. package/lib/prompts/portal/generate.js.map +1 -1
  120. package/lib/prompts/portal/quickstart.d.ts +8 -9
  121. package/lib/prompts/portal/quickstart.js +44 -32
  122. package/lib/prompts/portal/quickstart.js.map +1 -1
  123. package/lib/prompts/portal/recipe/new-recipe.d.ts +1 -0
  124. package/lib/prompts/portal/recipe/new-recipe.js +18 -8
  125. package/lib/prompts/portal/recipe/new-recipe.js.map +1 -1
  126. package/lib/prompts/portal/serve.d.ts +4 -6
  127. package/lib/prompts/portal/serve.js +24 -15
  128. package/lib/prompts/portal/serve.js.map +1 -1
  129. package/lib/prompts/portal/toc/new-toc.d.ts +3 -2
  130. package/lib/prompts/portal/toc/new-toc.js +11 -14
  131. package/lib/prompts/portal/toc/new-toc.js.map +1 -1
  132. package/lib/prompts/sdk/generate.d.ts +11 -0
  133. package/lib/prompts/sdk/generate.js +42 -0
  134. package/lib/prompts/sdk/generate.js.map +1 -0
  135. package/lib/types/api/account.d.ts +10 -0
  136. package/lib/types/api/account.js +2 -0
  137. package/lib/types/api/account.js.map +1 -0
  138. package/lib/types/build/build.d.ts +14 -0
  139. package/lib/types/build/build.js +4 -0
  140. package/lib/types/build/build.js.map +1 -0
  141. package/lib/types/build-context.d.ts +13 -0
  142. package/lib/types/build-context.js +30 -0
  143. package/lib/types/build-context.js.map +1 -0
  144. package/lib/types/events/domain-event.d.ts +8 -0
  145. package/lib/types/events/domain-event.js +11 -0
  146. package/lib/types/events/domain-event.js.map +1 -0
  147. package/lib/types/events/recipe-creation-failed.d.ts +5 -0
  148. package/lib/types/events/recipe-creation-failed.js +8 -0
  149. package/lib/types/events/recipe-creation-failed.js.map +1 -0
  150. package/lib/types/events/toc-creation-failed.d.ts +5 -0
  151. package/lib/types/events/toc-creation-failed.js +8 -0
  152. package/lib/types/events/toc-creation-failed.js.map +1 -0
  153. package/lib/types/file/directoryPath.d.ts +7 -0
  154. package/lib/types/file/directoryPath.js +16 -0
  155. package/lib/types/file/directoryPath.js.map +1 -0
  156. package/lib/types/file/fileName.d.ts +5 -0
  157. package/lib/types/file/fileName.js +9 -0
  158. package/lib/types/file/fileName.js.map +1 -0
  159. package/lib/types/file/filePath.d.ts +8 -0
  160. package/lib/types/file/filePath.js +11 -0
  161. package/lib/types/file/filePath.js.map +1 -0
  162. package/lib/types/flags-provider.d.ts +15 -0
  163. package/lib/types/flags-provider.js +34 -0
  164. package/lib/types/flags-provider.js.map +1 -0
  165. package/lib/types/portal/generate.d.ts +0 -13
  166. package/lib/types/portal/quickstart.d.ts +1 -1
  167. package/lib/types/portal/serve.d.ts +13 -0
  168. package/lib/types/portal/serve.js +2 -0
  169. package/lib/types/portal/serve.js.map +1 -0
  170. package/lib/types/portal-context.d.ts +11 -0
  171. package/lib/types/portal-context.js +28 -0
  172. package/lib/types/portal-context.js.map +1 -0
  173. package/lib/types/sdk/generate.d.ts +8 -8
  174. package/lib/types/sdk/generate.js +10 -10
  175. package/lib/types/sdk/generate.js.map +1 -1
  176. package/lib/types/sdk-context.d.ts +13 -0
  177. package/lib/types/sdk-context.js +28 -0
  178. package/lib/types/sdk-context.js.map +1 -0
  179. package/lib/types/spec-context.d.ts +7 -0
  180. package/lib/types/spec-context.js +12 -0
  181. package/lib/types/spec-context.js.map +1 -0
  182. package/lib/utils/utils.d.ts +1 -4
  183. package/lib/utils/utils.js +18 -32
  184. package/lib/utils/utils.js.map +1 -1
  185. package/lib/validators/common/directoryValidator.d.ts +3 -7
  186. package/lib/validators/common/directoryValidator.js +10 -37
  187. package/lib/validators/common/directoryValidator.js.map +1 -1
  188. package/lib/validators/portal/serve-validator.d.ts +6 -0
  189. package/lib/validators/portal/serve-validator.js +15 -0
  190. package/lib/validators/portal/serve-validator.js.map +1 -0
  191. package/package.json +6 -3
  192. package/lib/controllers/portal/generate.d.ts +0 -3
  193. package/lib/controllers/portal/generate.js +0 -106
  194. package/lib/controllers/portal/generate.js.map +0 -1
  195. package/lib/controllers/portal/serve.d.ts +0 -3
  196. package/lib/controllers/portal/serve.js +0 -136
  197. package/lib/controllers/portal/serve.js.map +0 -1
  198. package/lib/controllers/sdk/generate.d.ts +0 -4
  199. package/lib/controllers/sdk/generate.js +0 -61
  200. package/lib/controllers/sdk/generate.js.map +0 -1
  201. package/lib/services/portal/server.d.ts +0 -14
  202. package/lib/services/portal/server.js +0 -97
  203. package/lib/services/portal/server.js.map +0 -1
  204. package/lib/validators/common/portValidator.d.ts +0 -5
  205. package/lib/validators/common/portValidator.js +0 -16
  206. package/lib/validators/common/portValidator.js.map +0 -1
  207. package/lib/validators/portal/serveValidator.d.ts +0 -6
  208. package/lib/validators/portal/serveValidator.js +0 -17
  209. package/lib/validators/portal/serveValidator.js.map +0 -1
@@ -0,0 +1,52 @@
1
+ import axios from "axios";
2
+ import { getAuthInfo } from "../../client-utils/auth-manager.js";
3
+ import { envInfo } from "../env-info.js";
4
+ import { err, ok } from "neverthrow";
5
+ import { handleServiceError } from "../api-utils.js";
6
+ export class ApiService {
7
+ constructor() {
8
+ this.apiBaseUrl = "https://api.apimatic.io";
9
+ }
10
+ async getAccountInfo(configDir, authKey) {
11
+ const authInfo = await getAuthInfo(configDir.toString());
12
+ if (authInfo === null && !authKey) {
13
+ return err("UNAUTHORIZED" /* ServiceError.UnAuthorized */);
14
+ }
15
+ try {
16
+ const token = authKey || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey);
17
+ const response = await this.axiosInstance(token).get("/account/profile");
18
+ if (response.status === 200) {
19
+ return ok(response.data);
20
+ }
21
+ return err("INVALID_RESPONSE" /* ServiceError.InvalidResponse */);
22
+ }
23
+ catch (error) {
24
+ return err(handleServiceError(error));
25
+ }
26
+ }
27
+ async sendTelemetry(payload, authKey) {
28
+ try {
29
+ const response = await this.axiosInstance(authKey).post("/telemetry/track", payload);
30
+ if (response.status === 200) {
31
+ return ok("telemetry sent");
32
+ }
33
+ return err("Failed to send telemetry data");
34
+ }
35
+ catch (error) {
36
+ return err(handleServiceError(error));
37
+ }
38
+ }
39
+ axiosInstance(apiKey) {
40
+ const headers = {
41
+ "User-Agent": envInfo.getUserAgent()
42
+ };
43
+ if (apiKey) {
44
+ headers.Authorization = `X-Auth-Key ${apiKey}`;
45
+ }
46
+ return axios.create({
47
+ baseURL: this.apiBaseUrl,
48
+ headers
49
+ });
50
+ }
51
+ }
52
+ //# sourceMappingURL=api-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/api-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAY,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAG3E,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAU,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAgB,MAAM,iBAAiB,CAAC;AAEnE,MAAM,OAAO,UAAU;IAAvB;QACmB,eAAU,GAAG,yBAAkC,CAAC;IAmDnE,CAAC;IAjDQ,KAAK,CAAC,cAAc,CACzB,SAAwB,EACxB,OAAsB;QAEtB,MAAM,QAAQ,GAAoB,MAAM,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,IAAI,QAAQ,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,GAAG,gDAA2B,CAAC;QACxC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,OAAO,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAA,CAAC;YAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAEzE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAwB,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,GAAG,uDAA8B,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,OAAe;QACzD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;YAErF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAC,gBAAgB,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,MAA0B;QAC9C,MAAM,OAAO,GAA2B;YACtC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;SACrC,CAAC;QAEF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,aAAa,GAAG,cAAc,MAAM,EAAE,CAAC;QACjD,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC;YAClB,OAAO,EAAE,IAAI,CAAC,UAAU;YACxB,OAAO;SACR,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { Result } from "neverthrow";
2
+ import { ServiceError } from "../api-utils.js";
3
+ export interface DeviceAuthToken {
4
+ apiKey: string;
5
+ }
6
+ export declare class AuthService {
7
+ private readonly apiBaseUrl;
8
+ private axiosInstance;
9
+ getDeviceLoginUrl(state: string): string;
10
+ getDeviceLoginToken(state: string): Promise<Result<DeviceAuthToken, ServiceError>>;
11
+ }
@@ -0,0 +1,33 @@
1
+ import axios from "axios";
2
+ import { envInfo } from "../env-info.js";
3
+ import { err, ok } from "neverthrow";
4
+ import { handleServiceError } from "../api-utils.js";
5
+ export class AuthService {
6
+ constructor() {
7
+ this.apiBaseUrl = "https://auth.apimatic.io";
8
+ this.axiosInstance = axios.create({
9
+ baseURL: this.apiBaseUrl,
10
+ timeout: 20000,
11
+ headers: {
12
+ "User-Agent": envInfo.getUserAgent()
13
+ }
14
+ });
15
+ }
16
+ getDeviceLoginUrl(state) {
17
+ return `${this.apiBaseUrl}/device-auth/login?state=${state}`;
18
+ }
19
+ async getDeviceLoginToken(state) {
20
+ var _a;
21
+ try {
22
+ const response = await this.axiosInstance.get(`/device-auth/token?state=${state}`);
23
+ if (response.status === 200 && ((_a = response.data) === null || _a === void 0 ? void 0 : _a.apiKey)) {
24
+ return ok({ apiKey: response.data.apiKey });
25
+ }
26
+ return err("INVALID_RESPONSE" /* ServiceError.InvalidResponse */);
27
+ }
28
+ catch (error) {
29
+ return err(handleServiceError(error));
30
+ }
31
+ }
32
+ }
33
+ //# sourceMappingURL=auth-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/auth-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAU,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAgB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAOnE,MAAM,OAAO,WAAW;IAAxB;QACmB,eAAU,GAAG,0BAAmC,CAAC;QAE1D,kBAAa,GAAkB,KAAK,CAAC,MAAM,CAAC;YAClD,OAAO,EAAE,IAAI,CAAC,UAAU;YACxB,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACP,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE;aACrC;SACF,CAAC,CAAC;IAgBL,CAAC;IAdQ,iBAAiB,CAAC,KAAa;QACpC,OAAO,GAAG,IAAI,CAAC,UAAU,4BAA4B,KAAK,EAAE,CAAC;IAC/D,CAAC;IACM,KAAK,CAAC,mBAAmB,CAAC,KAAa;;QAC5C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;YACnF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,KAAI,MAAA,QAAQ,CAAC,IAAI,0CAAE,MAAM,CAAA,EAAE,CAAC;gBACrD,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,GAAG,uDAA8B,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF"}
@@ -1,17 +1,20 @@
1
- import { GeneratePortalParams } from "../../types/portal/generate.js";
1
+ import { Platforms } from "@apimatic/sdk";
2
2
  import { Result } from "../../types/common/result.js";
3
3
  import { Sdl } from "../../types/sdl/sdl.js";
4
+ import { FilePath } from "../../types/file/filePath.js";
5
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
4
6
  export declare class PortalService {
5
7
  private readonly CONTENT_TYPE;
6
8
  private readonly TIMEOUT;
7
- generateOnPremPortal(params: GeneratePortalParams, configDir: string): Promise<Result<NodeJS.ReadableStream, string>>;
9
+ private readonly fileService;
10
+ generatePortal(buildPath: FilePath, configDir: DirectoryPath, authKey: string | null): Promise<Result<NodeJS.ReadableStream, string | NodeJS.ReadableStream>>;
11
+ generateSdk(specPath: FilePath, sdkPlatform: Platforms, configDir: DirectoryPath, authKey: string | null): Promise<Result<NodeJS.ReadableStream, string>>;
8
12
  generateSdl(specPath: string, configDir: string): Promise<Result<Sdl, string>>;
9
13
  private createGenericErrorResult;
10
14
  private createAuthorizationHeader;
11
15
  private getUserAgent;
12
16
  private createApiClient;
13
- private generatePortalFromSyncEndpoint;
14
17
  private handlePortalGenerationErrors;
15
18
  private parseErrorResponse;
16
- private saveAndExtractErrorZipFile;
19
+ private handleSdkGenerationErrors;
17
20
  }
@@ -1,15 +1,16 @@
1
- import fsExtra from "fs-extra";
2
- import fs from "fs";
3
- import * as path from "path";
4
- import { ContentType, DocsPortalManagementController, Client, UnauthorizedResponseError, ProblemDetailsError, FileWrapper, ApiError, TransformationController, ExportFormats, InternalServerErrorResponseError } from "@apimatic/sdk";
1
+ import * as os from "os";
2
+ import fs from "fs-extra";
3
+ import process from "process";
4
+ import { ContentType, DocsPortalManagementController, Client, UnauthorizedResponseError, ProblemDetailsError, FileWrapper, ApiError, TransformationController, ExportFormats, InternalServerErrorResponseError, CodeGenerationExternalApisController } from "@apimatic/sdk";
5
5
  import { getAuthInfo } from "../../client-utils/auth-manager.js";
6
6
  import { Result } from "../../types/common/result.js";
7
- import { getMessageInRedColor, parseStreamBodyToJson, extractZipFile, deleteFile } from "../../utils/utils.js";
8
- import * as os from "os";
7
+ import { getMessageInRedColor, parseStreamBodyToJson } from "../../utils/utils.js";
8
+ import { FileService } from "../file-service.js";
9
9
  export class PortalService {
10
10
  constructor() {
11
11
  this.CONTENT_TYPE = ContentType.EnumMultipartformdata;
12
12
  this.TIMEOUT = 0;
13
+ this.fileService = new FileService();
13
14
  this.createAuthorizationHeader = (authInfo, overrideAuthKey) => {
14
15
  const key = overrideAuthKey || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey);
15
16
  return `X-Auth-Key ${key !== null && key !== void 0 ? key : ""}`;
@@ -23,35 +24,30 @@ export class PortalService {
23
24
  timeout: this.TIMEOUT
24
25
  });
25
26
  };
26
- this.generatePortalFromSyncEndpoint = async (docsPortalManagementController, zippedBuildFilePath) => {
27
- const file = new FileWrapper(fs.createReadStream(zippedBuildFilePath));
28
- const response = await docsPortalManagementController.generateOnPremPortalViaBuildInput(this.CONTENT_TYPE, file);
29
- return response.result;
30
- };
31
- this.handlePortalGenerationErrors = async (error, params) => {
32
- var _a;
27
+ this.handlePortalGenerationErrors = async (error) => {
28
+ var _a, _b, _c, _d;
33
29
  if (error instanceof UnauthorizedResponseError) {
34
30
  //401
35
- const body = await this.parseErrorResponse(error);
36
- return getMessageInRedColor((_a = body.message) !== null && _a !== void 0 ? _a : "Unauthorized access.");
31
+ const unAuthError = error;
32
+ return getMessageInRedColor((_b = (_a = unAuthError.result) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : "Authorization has been denied for this request.");
37
33
  }
38
34
  else if (error instanceof ProblemDetailsError) {
39
35
  //400 & 403
40
- const body = await this.parseErrorResponse(error);
41
- const message = body.errors[Object.keys(body.errors)[0]][0];
42
- return getMessageInRedColor(body.title + "\n- " + message);
36
+ const probDetailsError = error;
37
+ const message = (_d = (_c = probDetailsError.result.errors) === null || _c === void 0 ? void 0 : _c['']) === null || _d === void 0 ? void 0 : _d[0];
38
+ return getMessageInRedColor(probDetailsError.result.title + "\n- " + message);
43
39
  }
44
40
  else if (error instanceof ApiError && error.statusCode === 422) {
45
41
  //422
46
- return await this.saveAndExtractErrorZipFile(error, params);
42
+ return error.body;
47
43
  }
48
44
  else if (error instanceof InternalServerErrorResponseError) {
49
45
  //500
50
46
  const body = await this.parseErrorResponse(error);
51
- return getMessageInRedColor(`${body.message} Please try again or reach out to our team at support@apimatic.io for help if your problem persists.`);
47
+ return getMessageInRedColor(`${body.message} Please try again later or reach out to our team at support@apimatic.io for help if your problem persists.`);
52
48
  }
53
49
  else {
54
- return getMessageInRedColor(error instanceof Error ? error.message : String(error));
50
+ return getMessageInRedColor("An unexpected error occurred while generating the portal, please try again later. If the problem persists, please reach out to our team at support@apimatic.io");
55
51
  }
56
52
  };
57
53
  this.parseErrorResponse = async (error) => {
@@ -61,44 +57,69 @@ export class PortalService {
61
57
  }
62
58
  throw error;
63
59
  };
64
- this.saveAndExtractErrorZipFile = async (error, params) => {
65
- const data = error.body;
66
- const writeStream = fs.createWriteStream(params.generatedPortalArtifactsZipFilePath);
67
- //TODO: Extract zip to temp folder and only copy the the debug report.
68
- return await new Promise((resolve, reject) => {
69
- data
70
- .pipe(writeStream)
71
- .on("finish", async () => {
72
- await extractZipFile(params.generatedPortalArtifactsZipFilePath, params.generatedPortalArtifactsFolderPath);
73
- await deleteFile(params.generatedPortalArtifactsZipFilePath);
74
- await deleteFile(path.join(params.generatedPortalArtifactsFolderPath, "static"));
75
- resolve(getMessageInRedColor("An error occurred during portal generation due to an issue with the input. An error report has been written at the destination path: " +
76
- path.join(params.generatedPortalArtifactsFolderPath, "apimatic-debug")));
77
- })
78
- .on("error", async () => {
79
- reject(getMessageInRedColor("An error occurred during portal generation due to an issue with the input. The error report could not be generated. Please try again later."));
80
- });
81
- });
60
+ this.handleSdkGenerationErrors = async (error) => {
61
+ var _a, _b, _c, _d;
62
+ //TODO: Update the spec file to define different error code response types so that they can be handled here. Currently all failures go to the last else statement
63
+ if (error instanceof UnauthorizedResponseError) {
64
+ //401
65
+ const unAuthError = error;
66
+ return getMessageInRedColor((_b = (_a = unAuthError.result) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : "Authorization has been denied for this request.");
67
+ }
68
+ else if (error instanceof ProblemDetailsError) {
69
+ //400 & 403
70
+ const probDetailsError = error;
71
+ const message = (_d = (_c = probDetailsError.result.errors) === null || _c === void 0 ? void 0 : _c['']) === null || _d === void 0 ? void 0 : _d[0];
72
+ return getMessageInRedColor(probDetailsError.result.title + "\n- " + message);
73
+ }
74
+ else if (error instanceof InternalServerErrorResponseError) {
75
+ //500
76
+ const body = await this.parseErrorResponse(error);
77
+ return getMessageInRedColor(`${body.message} Please try again later or reach out to our team at support@apimatic.io for help if your problem persists.`);
78
+ }
79
+ else {
80
+ return getMessageInRedColor("An unexpected error occurred while generating the portal, please try again later. If the problem persists, please reach out to our team at support@apimatic.io");
81
+ }
82
82
  };
83
83
  }
84
- async generateOnPremPortal(params, configDir) {
85
- if (!(await fsExtra.pathExists(params.sourceBuildInputZipFilePath))) {
86
- return Result.failure("Build file doesn't exist");
87
- }
88
- const authInfo = await getAuthInfo(configDir);
89
- const authorizationHeader = this.createAuthorizationHeader(authInfo, params.overrideAuthKey);
84
+ async generatePortal(buildPath, configDir, authKey) {
85
+ const buildFileStream = await this.fileService.getStream(buildPath);
86
+ const file = new FileWrapper(buildFileStream);
87
+ const authInfo = await getAuthInfo(configDir.toString());
88
+ const authorizationHeader = this.createAuthorizationHeader(authInfo, authKey);
90
89
  const client = this.createApiClient(authorizationHeader);
91
90
  const docsPortalManagementController = new DocsPortalManagementController(client);
92
91
  try {
93
- const stream = await this.generatePortalFromSyncEndpoint(docsPortalManagementController, params.sourceBuildInputZipFilePath);
94
- return Result.success(stream);
92
+ const response = await docsPortalManagementController.generateOnPremPortalViaBuildInput(this.CONTENT_TYPE, file);
93
+ return Result.success(response.result);
95
94
  }
96
95
  catch (error) {
97
- return Result.failure(await this.handlePortalGenerationErrors(error, params));
96
+ return Result.failure(await this.handlePortalGenerationErrors(error));
97
+ }
98
+ finally {
99
+ buildFileStream.close();
100
+ }
101
+ }
102
+ async generateSdk(specPath, sdkPlatform, configDir, authKey) {
103
+ const specFileStream = await this.fileService.getStream(specPath);
104
+ const file = new FileWrapper(specFileStream);
105
+ const authInfo = await getAuthInfo(configDir.toString());
106
+ const authorizationHeader = this.createAuthorizationHeader(authInfo, authKey);
107
+ const client = this.createApiClient(authorizationHeader);
108
+ const sdkGenerationController = new CodeGenerationExternalApisController(client);
109
+ try {
110
+ const response = await sdkGenerationController.generateSdkViaFile(file, sdkPlatform);
111
+ const sdkResponse = await sdkGenerationController.downloadSdk(response.result.id);
112
+ return Result.success(sdkResponse.result);
113
+ }
114
+ catch (error) {
115
+ return Result.failure(await this.handleSdkGenerationErrors(error));
116
+ }
117
+ finally {
118
+ specFileStream.close();
98
119
  }
99
120
  }
100
121
  async generateSdl(specPath, configDir) {
101
- if (!(await fsExtra.pathExists(specPath))) {
122
+ if (!(await fs.pathExists(specPath))) {
102
123
  return Result.failure("Spec file doesn't exist");
103
124
  }
104
125
  const authInfo = await getAuthInfo(configDir);
@@ -1 +1 @@
1
- {"version":3,"file":"portal-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/portal-service.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,8BAA8B,EAC9B,MAAM,EACN,yBAAyB,EACzB,mBAAmB,EACnB,WAAW,EAEX,QAAQ,EACR,wBAAwB,EAExB,aAAa,EACb,gCAAgC,EACjC,MAAM,eAAe,CAAC;AACvB,OAAO,EAAY,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAG/G,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,MAAM,OAAO,aAAa;IAA1B;QACmB,iBAAY,GAAG,WAAW,CAAC,qBAAqB,CAAC;QACjD,YAAO,GAAG,CAAC,CAAC;QAgErB,8BAAyB,GAAG,CAAC,QAAyB,EAAE,eAA8B,EAAU,EAAE;YACxG,MAAM,GAAG,GAAG,eAAe,KAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAA,CAAC;YACjD,OAAO,cAAc,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,EAAE,CAAC;QACnC,CAAC,CAAC;QAUM,oBAAe,GAAG,CAAC,mBAA2B,EAAU,EAAE;YAChE,OAAO,IAAI,MAAM,CAAC;gBAChB,qCAAqC,EAAE;oBACrC,aAAa,EAAE,mBAAmB;iBACnC;gBACD,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;gBAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,mCAA8B,GAAG,KAAK,EAC5C,8BAA8D,EAC9D,mBAA2B,EACK,EAAE;YAClC,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACvE,MAAM,QAAQ,GACZ,MAAM,8BAA8B,CAAC,iCAAiC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAElG,OAAO,QAAQ,CAAC,MAA+B,CAAC;QAClD,CAAC,CAAC;QAEM,iCAA4B,GAAG,KAAK,EAAE,KAAc,EAAE,MAA4B,EAAmB,EAAE;;YAC7G,IAAI,KAAK,YAAY,yBAAyB,EAAE,CAAC;gBAC/C,KAAK;gBACL,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAClD,OAAO,oBAAoB,CAAC,MAAA,IAAI,CAAC,OAAO,mCAAI,sBAAsB,CAAC,CAAC;YACtE,CAAC;iBAAM,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;gBAChD,WAAW;gBACX,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAClD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5D,OAAO,oBAAoB,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;YAC7D,CAAC;iBAAM,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBACjE,KAAK;gBACL,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC9D,CAAC;iBAAM,IAAI,KAAK,YAAY,gCAAgC,EAAE,CAAC;gBAC7D,KAAK;gBACL,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;gBAClD,OAAO,oBAAoB,CACzB,GAAG,IAAI,CAAC,OAAO,sGAAsG,CACtH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,oBAAoB,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtF,CAAC;QACH,CAAC,CAAC;QAEM,uBAAkB,GAAG,KAAK,EAAE,KAAc,EAA0B,EAAE;YAC5E,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC9C,MAAM,MAAM,GAAI,KAAyC,CAAC,IAAI,CAAC;gBAC/D,OAAO,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC,CAAC;QAEM,+BAA0B,GAAG,KAAK,EAAE,KAAe,EAAE,MAA4B,EAAmB,EAAE;YAC5G,MAAM,IAAI,GAAG,KAAK,CAAC,IAA6B,CAAC;YACjD,MAAM,WAAW,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;YAErF,sEAAsE;YACtE,OAAO,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnD,IAAI;qBACD,IAAI,CAAC,WAAW,CAAC;qBACjB,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;oBACvB,MAAM,cAAc,CAAC,MAAM,CAAC,mCAAmC,EAAE,MAAM,CAAC,kCAAkC,CAAC,CAAC;oBAC5G,MAAM,UAAU,CAAC,MAAM,CAAC,mCAAmC,CAAC,CAAC;oBAC7D,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kCAAkC,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACjF,OAAO,CACL,oBAAoB,CAClB,uIAAuI;wBACrI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kCAAkC,EAAE,gBAAgB,CAAC,CACzE,CACF,CAAC;gBACJ,CAAC,CAAC;qBACD,EAAE,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;oBACtB,MAAM,CACJ,oBAAoB,CAClB,6IAA6I,CAC9I,CACF,CAAC;gBACJ,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC;IA5JC,KAAK,CAAC,oBAAoB,CACxB,MAA4B,EAC5B,SAAiB;QAEjB,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC;YACpE,OAAO,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,QAAQ,GAAoB,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,mBAAmB,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;QACzD,MAAM,8BAA8B,GAAG,IAAI,8BAA8B,CAAC,MAAM,CAAC,CAAC;QAElF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,8BAA8B,CACtD,8BAA8B,EAC9B,MAAM,CAAC,2BAA2B,CACnC,CAAC;YACF,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,SAAiB;QACnD,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,QAAQ,GAAoB,MAAM,WAAW,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,mBAAmB,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;QACzD,MAAM,wBAAwB,GAAG,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAEtE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5D,MAAM,UAAU,GAAgC,MAAM,wBAAwB,CAAC,gBAAgB,CAC7F,WAAW,CAAC,qBAAqB,EACjC,IAAI,EACJ,aAAa,CAAC,QAAQ,CACvB,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACzC,CAAC;YAED,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,MAAM,EAAE,MAAM,EAAE,GAAuB,MAAM,wBAAwB,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;YAChH,IAAK,MAAgC,CAAC,QAAQ,EAAE,CAAC;gBAC/C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,qBAAqB,CAAC,MAA+B,CAAC,CAAQ,CAAC,CAAC;YAC/F,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,wBAAwB;QAC9B,OAAO,MAAM,CAAC,OAAO,CAAc,8BAA8B,CAAC,CAAC;IACrE,CAAC;IAOO,YAAY;QAChB,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,SAAS,CAAC;QACzB,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;QAEtC,OAAO,uBAAuB,MAAM,aAAa,MAAM,IAAI,aAAa,GAAG,CAAC;IAC9E,CAAC;CAmFJ"}
1
+ {"version":3,"file":"portal-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/portal-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { DomainEvent } from "../../types/events/domain-event.js";
2
+ export declare class TelemetryService {
3
+ private readonly configDirectory;
4
+ private readonly apiService;
5
+ constructor(configDirectory: string);
6
+ trackEvent<T extends DomainEvent>(event: T): Promise<void>;
7
+ private getAuthInfo;
8
+ }
@@ -0,0 +1,40 @@
1
+ import process from "process";
2
+ import os from "os";
3
+ import fs from "fs-extra";
4
+ import { envInfo } from "../env-info.js";
5
+ import path from "path";
6
+ import { ApiService } from "./api-service.js";
7
+ export class TelemetryService {
8
+ constructor(configDirectory) {
9
+ this.configDirectory = configDirectory;
10
+ this.apiService = new ApiService();
11
+ }
12
+ async trackEvent(event) {
13
+ const authInfo = await this.getAuthInfo(this.configDirectory);
14
+ const telemetryOptedOut = process.env.APIMATIC_CLI_TELEMETRY_OPTOUT === "1";
15
+ const authKey = authInfo === null || authInfo === void 0 ? void 0 : authInfo.authKey;
16
+ if (telemetryOptedOut || (authInfo === null || authInfo === void 0 ? void 0 : authInfo.APIMATIC_CLI_TELEMETRY_OPTOUT) === "1" || !authKey) {
17
+ return;
18
+ }
19
+ const payload = {
20
+ payload: event,
21
+ timestamp: new Date().toISOString(),
22
+ cliVersion: envInfo.getCLIVersion(),
23
+ platform: os.platform(),
24
+ releaseVersion: os.release(),
25
+ nodeVersion: process.version,
26
+ };
27
+ const result = await this.apiService.sendTelemetry(JSON.stringify(payload), authKey);
28
+ // eslint-disable-next-line no-undef
29
+ result.mapErr((err) => console.log(err));
30
+ }
31
+ async getAuthInfo(configDirectory) {
32
+ try {
33
+ return JSON.parse(await fs.readFile(path.join(configDirectory, "config.json"), "utf8"));
34
+ }
35
+ catch (_a) {
36
+ return null;
37
+ }
38
+ }
39
+ }
40
+ //# sourceMappingURL=telemetry-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-service.js","sourceRoot":"","sources":["../../../src/infrastructure/services/telemetry-service.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,UAAU,CAAC;AAG1B,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAW9C,MAAM,OAAO,gBAAgB;IAG3B,YAA6B,eAAuB;QAAvB,oBAAe,GAAf,eAAe,CAAQ;QAFnC,eAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAG/C,CAAC;IAEM,KAAK,CAAC,UAAU,CAAwB,KAAQ;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9D,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK,GAAG,CAAC;QAC5E,MAAM,OAAO,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC;QAElC,IAAI,iBAAiB,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,6BAA6B,MAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACrF,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAqB;YAChC,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE;YACnC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,cAAc,EAAE,EAAE,CAAC,OAAO,EAAE;YAC5B,WAAW,EAAE,OAAO,CAAC,OAAO;SAC7B,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QACrF,oCAAoC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,eAAuB;QAC/C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1F,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ import { DirectoryPath } from "../types/file/directoryPath.js";
2
+ export declare function withDirPath<T>(fn: (results: DirectoryPath) => Promise<T>): Promise<T>;
@@ -0,0 +1,6 @@
1
+ import { DirectoryPath } from "../types/file/directoryPath.js";
2
+ import { withDir } from "tmp-promise";
3
+ export function withDirPath(fn) {
4
+ return withDir(results => fn(new DirectoryPath(results.path)), { unsafeCleanup: true });
5
+ }
6
+ //# sourceMappingURL=tmp-extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tmp-extensions.js","sourceRoot":"","sources":["../../src/infrastructure/tmp-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,UAAU,WAAW,CACzB,EAA0C;IAE1C,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1F,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { DirectoryPath } from "../types/file/directoryPath.js";
2
+ import { FilePath } from "../types/file/filePath.js";
3
+ export declare class ZipService {
4
+ archive(sourceDir: DirectoryPath, outputZipPath: FilePath): Promise<void>;
5
+ unArchive(sourceFile: FilePath, destinationDirectory: DirectoryPath): Promise<void>;
6
+ }
@@ -0,0 +1,25 @@
1
+ import fs from "fs";
2
+ import archiver from "archiver";
3
+ import unzipper from "unzipper";
4
+ export class ZipService {
5
+ async archive(sourceDir, outputZipPath) {
6
+ return new Promise((resolve, reject) => {
7
+ const output = fs.createWriteStream(outputZipPath.toString());
8
+ const archive = archiver("zip");
9
+ output.on("close", () => resolve());
10
+ archive.on("error", (err) => reject(err));
11
+ archive.pipe(output);
12
+ archive.directory(sourceDir.toString(), false); // false: don't nest under folder
13
+ archive.finalize();
14
+ });
15
+ }
16
+ async unArchive(sourceFile, destinationDirectory) {
17
+ return new Promise((resolve, reject) => {
18
+ fs.createReadStream(sourceFile.toString())
19
+ .pipe(unzipper.Extract({ path: destinationDirectory.toString() }))
20
+ .on("close", () => resolve())
21
+ .on("error", (err) => reject(err));
22
+ });
23
+ }
24
+ }
25
+ //# sourceMappingURL=zip-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip-service.js","sourceRoot":"","sources":["../../src/infrastructure/zip-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAIhC,MAAM,OAAO,UAAU;IACd,KAAK,CAAC,OAAO,CAAC,SAAwB,EAAE,aAAuB;QACpE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEhC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAE1C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,iCAAiC;YACjF,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAoB,EAAE,oBAAmC;QACvE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;iBACvC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;iBACjE,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;iBAC5B,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export declare class LoginPrompts {
2
+ logError(error: string): void;
3
+ loginSuccessful(email: string): void;
4
+ openBrowser(): void;
5
+ }
@@ -0,0 +1,13 @@
1
+ import { log } from "@clack/prompts";
2
+ export class LoginPrompts {
3
+ logError(error) {
4
+ log.error(error);
5
+ }
6
+ loginSuccessful(email) {
7
+ log.success(`Successfully logged in as ${email}`);
8
+ }
9
+ openBrowser() {
10
+ log.info("Please continue with authentication in the opened browser window.");
11
+ }
12
+ }
13
+ //# sourceMappingURL=login.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/prompts/auth/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,MAAM,OAAO,YAAY;IACvB,QAAQ,CAAC,KAAa;QACpB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED,eAAe,CAAC,KAAa;QAC3B,GAAG,CAAC,OAAO,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,WAAW;QACT,GAAG,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;IAChF,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ export declare abstract class BasePrompts {
2
+ protected readonly spin: import("@clack/prompts").SpinnerResult;
3
+ startProgressIndicator(message: string): void;
4
+ stopProgressIndicator(message: string): void;
5
+ displayInfo(message: string): void;
6
+ logError(errorMessage: string): void;
7
+ }
@@ -0,0 +1,19 @@
1
+ import { log, outro, spinner } from "@clack/prompts";
2
+ export class BasePrompts {
3
+ constructor() {
4
+ this.spin = spinner();
5
+ }
6
+ startProgressIndicator(message) {
7
+ this.spin.start(message);
8
+ }
9
+ stopProgressIndicator(message) {
10
+ this.spin.stop(message);
11
+ }
12
+ displayInfo(message) {
13
+ log.step(message);
14
+ }
15
+ logError(errorMessage) {
16
+ outro(errorMessage);
17
+ }
18
+ }
19
+ //# sourceMappingURL=base-prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-prompts.js","sourceRoot":"","sources":["../../../../src/prompts/portal/common/base-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,OAAgB,WAAW;IAAjC;QACuB,SAAI,GAAG,OAAO,EAAE,CAAC;IAiBxC,CAAC;IAfU,sBAAsB,CAAC,OAAe;QACzC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAEM,qBAAqB,CAAC,OAAe;QACxC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAEM,WAAW,CAAC,OAAe;QAC9B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAEM,QAAQ,CAAC,YAAoB;QAChC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxB,CAAC;CACJ"}
@@ -0,0 +1,6 @@
1
+ export declare class PortalCopilotPrompts {
2
+ selectCopilotKey(keys: string[]): Promise<string>;
3
+ copilotConfigured(apiCopilotKey: string): void;
4
+ confirmOverwrite(): Promise<boolean>;
5
+ logError(error: string): void;
6
+ }
@@ -0,0 +1,35 @@
1
+ import { select, cancel, isCancel, outro, confirm, log } from "@clack/prompts";
2
+ export class PortalCopilotPrompts {
3
+ async selectCopilotKey(keys) {
4
+ const selectedKey = await select({
5
+ message: 'Select API Copilot key form your subscription:',
6
+ maxItems: 10,
7
+ options: keys.map((key) => ({
8
+ value: key,
9
+ label: key
10
+ }))
11
+ });
12
+ if (isCancel(selectedKey)) {
13
+ cancel("Operation cancelled.");
14
+ return process.exit(0);
15
+ }
16
+ return selectedKey;
17
+ }
18
+ copilotConfigured(apiCopilotKey) {
19
+ outro(`API Copilot is configured successfully with key '${apiCopilotKey}'. You can now generate a portal using the command 'apimatic portal:generate'`);
20
+ }
21
+ async confirmOverwrite() {
22
+ const shouldOverwrite = await confirm({
23
+ message: "API Copilot configuration already exists. Do you want to overwrite?",
24
+ initialValue: false,
25
+ });
26
+ if (isCancel(shouldOverwrite)) {
27
+ return false;
28
+ }
29
+ return shouldOverwrite;
30
+ }
31
+ logError(error) {
32
+ log.error(error);
33
+ }
34
+ }
35
+ //# sourceMappingURL=copilot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../../src/prompts/portal/copilot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAE/E,MAAM,OAAO,oBAAoB;IAExB,KAAK,CAAC,gBAAgB,CAAC,IAAc;QAC1C,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC;YAC/B,OAAO,EAAE,gDAAgD;YACzD,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC1B,KAAK,EAAE,GAAG;gBACV,KAAK,EAAE,GAAG;aACX,CAAC,CAAC;SACJ,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEM,iBAAiB,CAAC,aAAqB;QAC5C,KAAK,CACH,oDAAoD,aAAa,+EAA+E,CACjJ,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,gBAAgB;QAC3B,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC;YACpC,OAAO,EAAE,qEAAqE;YAC9E,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;CACF"}
@@ -1,10 +1,11 @@
1
+ import { DirectoryPath } from "../../types/file/directoryPath.js";
1
2
  export declare class PortalGeneratePrompts {
2
3
  private readonly spin;
3
- overwriteExistingPortalArtifactsPrompt(): Promise<boolean>;
4
- existingDestinationPortalZipPrompt(): Promise<boolean>;
4
+ overwritePortal(directory: DirectoryPath): Promise<boolean>;
5
5
  displayPortalGenerationMessage(): void;
6
6
  displayPortalGenerationSuccessMessage(): void;
7
7
  displayPortalGenerationErrorMessage(): void;
8
8
  displayOutroMessage(generatedPortalPath: string): void;
9
9
  logError(error: string): void;
10
+ private cleanUpStandardInput;
10
11
  }