@apimatic/cli 1.1.0-alpha.9 → 1.1.0-beta.10

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 (341) hide show
  1. package/README.md +443 -374
  2. package/bin/run.js +5 -0
  3. package/lib/actions/action-result.d.ts +19 -0
  4. package/lib/actions/action-result.js +70 -0
  5. package/lib/actions/action-result.js.map +1 -0
  6. package/lib/actions/api/transform.d.ts +15 -0
  7. package/lib/actions/api/transform.js +48 -0
  8. package/lib/actions/api/transform.js.map +1 -0
  9. package/lib/actions/api/validate.d.ts +14 -0
  10. package/lib/actions/api/validate.js +52 -0
  11. package/lib/actions/api/validate.js.map +1 -0
  12. package/lib/actions/auth/login.d.ts +13 -0
  13. package/lib/actions/auth/login.js +55 -0
  14. package/lib/actions/auth/login.js.map +1 -0
  15. package/lib/actions/auth/logout.d.ts +8 -0
  16. package/lib/actions/auth/logout.js +15 -0
  17. package/lib/actions/auth/logout.js.map +1 -0
  18. package/lib/actions/auth/status.d.ts +11 -0
  19. package/lib/actions/auth/status.js +26 -0
  20. package/lib/actions/auth/status.js.map +1 -0
  21. package/lib/actions/portal/copilot.d.ts +16 -0
  22. package/lib/actions/portal/copilot.js +89 -0
  23. package/lib/actions/portal/copilot.js.map +1 -0
  24. package/lib/actions/portal/generate.d.ts +11 -5
  25. package/lib/actions/portal/generate.js +60 -55
  26. package/lib/actions/portal/generate.js.map +1 -0
  27. package/lib/actions/portal/quickstart.d.ts +17 -0
  28. package/lib/actions/portal/quickstart.js +169 -0
  29. package/lib/actions/portal/quickstart.js.map +1 -0
  30. package/lib/actions/portal/recipe/new-recipe.d.ts +15 -0
  31. package/lib/actions/portal/recipe/new-recipe.js +177 -0
  32. package/lib/actions/portal/recipe/new-recipe.js.map +1 -0
  33. package/lib/actions/portal/serve.d.ts +15 -0
  34. package/lib/actions/portal/serve.js +104 -0
  35. package/lib/actions/portal/serve.js.map +1 -0
  36. package/lib/actions/portal/toc/new-toc.d.ts +17 -13
  37. package/lib/actions/portal/toc/new-toc.js +85 -123
  38. package/lib/actions/portal/toc/new-toc.js.map +1 -0
  39. package/lib/actions/quickstart.d.ts +10 -0
  40. package/lib/actions/quickstart.js +30 -0
  41. package/lib/actions/quickstart.js.map +1 -0
  42. package/lib/actions/sdk/generate.d.ts +13 -0
  43. package/lib/actions/sdk/generate.js +77 -0
  44. package/lib/actions/sdk/generate.js.map +1 -0
  45. package/lib/actions/sdk/quickstart.d.ts +17 -0
  46. package/lib/actions/sdk/quickstart.js +171 -0
  47. package/lib/actions/sdk/quickstart.js.map +1 -0
  48. package/lib/application/portal/recipe/portal-recipe.d.ts +8 -0
  49. package/lib/application/portal/recipe/portal-recipe.js +33 -0
  50. package/lib/application/portal/recipe/portal-recipe.js.map +1 -0
  51. package/lib/application/portal/recipe/recipe-generator.d.ts +21 -0
  52. package/lib/application/portal/recipe/recipe-generator.js +145 -0
  53. package/lib/application/portal/recipe/recipe-generator.js.map +1 -0
  54. package/lib/application/portal/toc/toc-content-parser.d.ts +1 -1
  55. package/lib/application/portal/toc/toc-content-parser.js +9 -11
  56. package/lib/application/portal/toc/toc-content-parser.js.map +1 -0
  57. package/lib/application/portal/toc/toc-structure-generator.d.ts +23 -2
  58. package/lib/application/portal/toc/toc-structure-generator.js +133 -66
  59. package/lib/application/portal/toc/toc-structure-generator.js.map +1 -0
  60. package/lib/client-utils/auth-manager.d.ts +7 -2
  61. package/lib/client-utils/auth-manager.js +26 -14
  62. package/lib/client-utils/auth-manager.js.map +1 -0
  63. package/lib/commands/api/transform.d.ts +10 -7
  64. package/lib/commands/api/transform.js +51 -111
  65. package/lib/commands/api/transform.js.map +1 -0
  66. package/lib/commands/api/validate.d.ts +7 -4
  67. package/lib/commands/api/validate.js +31 -74
  68. package/lib/commands/api/validate.js.map +1 -0
  69. package/lib/commands/auth/login.d.ts +3 -1
  70. package/lib/commands/auth/login.js +26 -68
  71. package/lib/commands/auth/login.js.map +1 -0
  72. package/lib/commands/auth/logout.d.ts +3 -1
  73. package/lib/commands/auth/logout.js +14 -21
  74. package/lib/commands/auth/logout.js.map +1 -0
  75. package/lib/commands/auth/status.d.ts +1 -0
  76. package/lib/commands/auth/status.js +18 -21
  77. package/lib/commands/auth/status.js.map +1 -0
  78. package/lib/commands/portal/copilot.d.ts +13 -0
  79. package/lib/commands/portal/copilot.js +34 -0
  80. package/lib/commands/portal/copilot.js.map +1 -0
  81. package/lib/commands/portal/generate.d.ts +7 -11
  82. package/lib/commands/portal/generate.js +26 -89
  83. package/lib/commands/portal/generate.js.map +1 -0
  84. package/lib/commands/portal/recipe/new.d.ts +12 -0
  85. package/lib/commands/portal/recipe/new.js +45 -0
  86. package/lib/commands/portal/recipe/new.js.map +1 -0
  87. package/lib/commands/portal/serve.d.ts +8 -8
  88. package/lib/commands/portal/serve.js +41 -125
  89. package/lib/commands/portal/serve.js.map +1 -0
  90. package/lib/commands/portal/toc/new.d.ts +8 -7
  91. package/lib/commands/portal/toc/new.js +52 -49
  92. package/lib/commands/portal/toc/new.js.map +1 -0
  93. package/lib/commands/quickstart.d.ts +9 -0
  94. package/lib/commands/quickstart.js +37 -0
  95. package/lib/commands/quickstart.js.map +1 -0
  96. package/lib/commands/sdk/generate.d.ts +10 -8
  97. package/lib/commands/sdk/generate.js +46 -131
  98. package/lib/commands/sdk/generate.js.map +1 -0
  99. package/lib/config/axios-config.js +4 -6
  100. package/lib/config/axios-config.js.map +1 -0
  101. package/lib/hooks/not-found.d.ts +3 -0
  102. package/lib/hooks/not-found.js +52 -0
  103. package/lib/hooks/not-found.js.map +1 -0
  104. package/lib/hooks/utils.d.ts +5 -0
  105. package/lib/hooks/utils.js +51 -0
  106. package/lib/hooks/utils.js.map +1 -0
  107. package/lib/index.js +2 -5
  108. package/lib/index.js.map +1 -0
  109. package/lib/infrastructure/debounce-service.d.ts +10 -0
  110. package/lib/infrastructure/debounce-service.js +55 -0
  111. package/lib/infrastructure/debounce-service.js.map +1 -0
  112. package/lib/infrastructure/env-info.d.ts +12 -0
  113. package/lib/infrastructure/env-info.js +58 -0
  114. package/lib/infrastructure/env-info.js.map +1 -0
  115. package/lib/infrastructure/file-service.d.ts +25 -0
  116. package/lib/infrastructure/file-service.js +131 -0
  117. package/lib/infrastructure/file-service.js.map +1 -0
  118. package/lib/infrastructure/launcher-service.d.ts +9 -0
  119. package/lib/infrastructure/launcher-service.js +72 -0
  120. package/lib/infrastructure/launcher-service.js.map +1 -0
  121. package/lib/infrastructure/network-service.d.ts +3 -0
  122. package/lib/infrastructure/network-service.js +7 -0
  123. package/lib/infrastructure/network-service.js.map +1 -0
  124. package/lib/infrastructure/service-error.d.ts +16 -0
  125. package/lib/infrastructure/service-error.js +49 -0
  126. package/lib/infrastructure/service-error.js.map +1 -0
  127. package/lib/infrastructure/services/api-client-factory.d.ts +6 -0
  128. package/lib/infrastructure/services/api-client-factory.js +20 -0
  129. package/lib/infrastructure/services/api-client-factory.js.map +1 -0
  130. package/lib/infrastructure/services/api-service.d.ts +13 -0
  131. package/lib/infrastructure/services/api-service.js +103 -0
  132. package/lib/infrastructure/services/api-service.js.map +1 -0
  133. package/lib/infrastructure/services/auth-service.d.ts +11 -0
  134. package/lib/infrastructure/services/auth-service.js +37 -0
  135. package/lib/infrastructure/services/auth-service.js.map +1 -0
  136. package/lib/infrastructure/services/file-download-service.d.ts +15 -0
  137. package/lib/infrastructure/services/file-download-service.js +104 -0
  138. package/lib/infrastructure/services/file-download-service.js.map +1 -0
  139. package/lib/infrastructure/services/portal-service.d.ts +15 -12
  140. package/lib/infrastructure/services/portal-service.js +152 -99
  141. package/lib/infrastructure/services/portal-service.js.map +1 -0
  142. package/lib/infrastructure/services/telemetry-service.d.ts +9 -0
  143. package/lib/infrastructure/services/telemetry-service.js +38 -0
  144. package/lib/infrastructure/services/telemetry-service.js.map +1 -0
  145. package/lib/infrastructure/services/transformation-service.d.ts +23 -0
  146. package/lib/infrastructure/services/transformation-service.js +56 -0
  147. package/lib/infrastructure/services/transformation-service.js.map +1 -0
  148. package/lib/infrastructure/services/validation-service.d.ts +43 -0
  149. package/lib/infrastructure/services/validation-service.js +142 -0
  150. package/lib/infrastructure/services/validation-service.js.map +1 -0
  151. package/lib/infrastructure/tmp-extensions.d.ts +2 -0
  152. package/lib/infrastructure/tmp-extensions.js +6 -0
  153. package/lib/infrastructure/tmp-extensions.js.map +1 -0
  154. package/lib/infrastructure/zip-service.d.ts +6 -0
  155. package/lib/infrastructure/zip-service.js +39 -0
  156. package/lib/infrastructure/zip-service.js.map +1 -0
  157. package/lib/prompts/api/transform.d.ts +11 -0
  158. package/lib/prompts/api/transform.js +29 -0
  159. package/lib/prompts/api/transform.js.map +1 -0
  160. package/lib/prompts/api/validate.d.ts +15 -0
  161. package/lib/prompts/api/validate.js +76 -0
  162. package/lib/prompts/api/validate.js.map +1 -0
  163. package/lib/prompts/auth/login.d.ts +10 -0
  164. package/lib/prompts/auth/login.js +22 -0
  165. package/lib/prompts/auth/login.js.map +1 -0
  166. package/lib/prompts/auth/logout.d.ts +3 -0
  167. package/lib/prompts/auth/logout.js +7 -0
  168. package/lib/prompts/auth/logout.js.map +1 -0
  169. package/lib/prompts/auth/status.d.ts +8 -0
  170. package/lib/prompts/auth/status.js +22 -0
  171. package/lib/prompts/auth/status.js.map +1 -0
  172. package/lib/prompts/format.d.ts +31 -0
  173. package/lib/prompts/format.js +89 -0
  174. package/lib/prompts/format.js.map +1 -0
  175. package/lib/prompts/portal/copilot.d.ts +18 -0
  176. package/lib/prompts/portal/copilot.js +82 -0
  177. package/lib/prompts/portal/copilot.js.map +1 -0
  178. package/lib/prompts/portal/generate.d.ts +13 -8
  179. package/lib/prompts/portal/generate.js +36 -53
  180. package/lib/prompts/portal/generate.js.map +1 -0
  181. package/lib/prompts/portal/quickstart.d.ts +31 -29
  182. package/lib/prompts/portal/quickstart.js +139 -185
  183. package/lib/prompts/portal/quickstart.js.map +1 -0
  184. package/lib/prompts/portal/recipe/new-recipe.d.ts +29 -0
  185. package/lib/prompts/portal/recipe/new-recipe.js +165 -0
  186. package/lib/prompts/portal/recipe/new-recipe.js.map +1 -0
  187. package/lib/prompts/portal/serve.d.ts +9 -5
  188. package/lib/prompts/portal/serve.js +29 -19
  189. package/lib/prompts/portal/serve.js.map +1 -0
  190. package/lib/prompts/portal/toc/new-toc.d.ts +13 -8
  191. package/lib/prompts/portal/toc/new-toc.js +36 -36
  192. package/lib/prompts/portal/toc/new-toc.js.map +1 -0
  193. package/lib/prompts/prompt.d.ts +3 -0
  194. package/lib/prompts/prompt.js +37 -0
  195. package/lib/prompts/prompt.js.map +1 -0
  196. package/lib/prompts/quickstart.d.ts +6 -0
  197. package/lib/prompts/quickstart.js +25 -0
  198. package/lib/prompts/quickstart.js.map +1 -0
  199. package/lib/prompts/sdk/generate.d.ts +16 -0
  200. package/lib/prompts/sdk/generate.js +57 -0
  201. package/lib/prompts/sdk/generate.js.map +1 -0
  202. package/lib/prompts/sdk/quickstart.d.ts +35 -0
  203. package/lib/prompts/sdk/quickstart.js +177 -0
  204. package/lib/prompts/sdk/quickstart.js.map +1 -0
  205. package/lib/types/api/account.d.ts +10 -0
  206. package/lib/types/api/account.js +2 -0
  207. package/lib/types/api/account.js.map +1 -0
  208. package/lib/types/api/transform.d.ts +14 -25
  209. package/lib/types/api/transform.js +20 -23
  210. package/lib/types/api/transform.js.map +1 -0
  211. package/lib/types/build/build.d.ts +22 -0
  212. package/lib/types/build/build.js +7 -0
  213. package/lib/types/build/build.js.map +1 -0
  214. package/lib/types/build-context.d.ts +13 -0
  215. package/lib/types/build-context.js +33 -0
  216. package/lib/types/build-context.js.map +1 -0
  217. package/lib/types/common/command-metadata.d.ts +4 -0
  218. package/lib/types/common/command-metadata.js +2 -0
  219. package/lib/types/common/command-metadata.js.map +1 -0
  220. package/lib/types/events/domain-event.d.ts +8 -0
  221. package/lib/types/events/domain-event.js +11 -0
  222. package/lib/types/events/domain-event.js.map +1 -0
  223. package/lib/types/events/quickstart-completed.d.ts +7 -0
  224. package/lib/types/events/quickstart-completed.js +10 -0
  225. package/lib/types/events/quickstart-completed.js.map +1 -0
  226. package/lib/types/events/quickstart-initiated.d.ts +7 -0
  227. package/lib/types/events/quickstart-initiated.js +10 -0
  228. package/lib/types/events/quickstart-initiated.js.map +1 -0
  229. package/lib/types/events/recipe-creation-failed.d.ts +5 -0
  230. package/lib/types/events/recipe-creation-failed.js +8 -0
  231. package/lib/types/events/recipe-creation-failed.js.map +1 -0
  232. package/lib/types/events/toc-creation-failed.d.ts +5 -0
  233. package/lib/types/events/toc-creation-failed.js +8 -0
  234. package/lib/types/events/toc-creation-failed.js.map +1 -0
  235. package/lib/types/file/directory.d.ts +17 -0
  236. package/lib/types/file/directory.js +87 -0
  237. package/lib/types/file/directory.js.map +1 -0
  238. package/lib/types/file/directoryPath.d.ts +10 -0
  239. package/lib/types/file/directoryPath.js +26 -0
  240. package/lib/types/file/directoryPath.js.map +1 -0
  241. package/lib/types/file/fileName.d.ts +7 -0
  242. package/lib/types/file/fileName.js +21 -0
  243. package/lib/types/file/fileName.js.map +1 -0
  244. package/lib/types/file/filePath.d.ts +10 -0
  245. package/lib/types/file/filePath.js +32 -0
  246. package/lib/types/file/filePath.js.map +1 -0
  247. package/lib/types/file/resource-input.d.ts +5 -0
  248. package/lib/types/file/resource-input.js +42 -0
  249. package/lib/types/file/resource-input.js.map +1 -0
  250. package/lib/types/file/urlPath.d.ts +6 -0
  251. package/lib/types/file/urlPath.js +22 -0
  252. package/lib/types/file/urlPath.js.map +1 -0
  253. package/lib/types/flags-provider.d.ts +15 -0
  254. package/lib/types/flags-provider.js +34 -0
  255. package/lib/types/flags-provider.js.map +1 -0
  256. package/lib/types/portal-context.d.ts +13 -0
  257. package/lib/types/portal-context.js +38 -0
  258. package/lib/types/portal-context.js.map +1 -0
  259. package/lib/types/recipe/recipe.d.ts +22 -0
  260. package/lib/types/recipe/recipe.js +6 -0
  261. package/lib/types/recipe/recipe.js.map +1 -0
  262. package/lib/types/recipe-context.d.ts +9 -0
  263. package/lib/types/recipe-context.js +26 -0
  264. package/lib/types/recipe-context.js.map +1 -0
  265. package/lib/types/resource-context.d.ts +12 -0
  266. package/lib/types/resource-context.js +30 -0
  267. package/lib/types/resource-context.js.map +1 -0
  268. package/lib/types/sdk/generate.d.ts +9 -22
  269. package/lib/types/sdk/generate.js +25 -14
  270. package/lib/types/sdk/generate.js.map +1 -0
  271. package/lib/types/sdk-context.d.ts +14 -0
  272. package/lib/types/sdk-context.js +32 -0
  273. package/lib/types/sdk-context.js.map +1 -0
  274. package/lib/types/sdl/sdl.d.ts +27 -0
  275. package/lib/types/sdl/sdl.js +145 -3
  276. package/lib/types/sdl/sdl.js.map +1 -0
  277. package/lib/types/spec-context.d.ts +12 -0
  278. package/lib/types/spec-context.js +29 -0
  279. package/lib/types/spec-context.js.map +1 -0
  280. package/lib/types/temp-context.d.ts +11 -0
  281. package/lib/types/temp-context.js +27 -0
  282. package/lib/types/temp-context.js.map +1 -0
  283. package/lib/types/toc/toc.d.ts +31 -6
  284. package/lib/types/toc/toc.js +2 -10
  285. package/lib/types/toc/toc.js.map +1 -0
  286. package/lib/types/toc-context.d.ts +12 -0
  287. package/lib/types/toc-context.js +26 -0
  288. package/lib/types/toc-context.js.map +1 -0
  289. package/lib/types/transform-context.d.ts +13 -0
  290. package/lib/types/transform-context.js +30 -0
  291. package/lib/types/transform-context.js.map +1 -0
  292. package/lib/types/utils.d.ts +0 -9
  293. package/lib/types/utils.js +2 -3
  294. package/lib/types/utils.js.map +1 -0
  295. package/lib/types/versioned-build-context.d.ts +15 -0
  296. package/lib/types/versioned-build-context.js +28 -0
  297. package/lib/types/versioned-build-context.js.map +1 -0
  298. package/lib/utils/string-utils.d.ts +3 -0
  299. package/lib/utils/string-utils.js +79 -0
  300. package/lib/utils/string-utils.js.map +1 -0
  301. package/lib/utils/utils.d.ts +2 -44
  302. package/lib/utils/utils.js +14 -366
  303. package/lib/utils/utils.js.map +1 -0
  304. package/package.json +50 -31
  305. package/bin/run +0 -9
  306. package/lib/application/portal/toc/sdl-parser.d.ts +0 -13
  307. package/lib/application/portal/toc/sdl-parser.js +0 -53
  308. package/lib/client-utils/sdk-client.d.ts +0 -23
  309. package/lib/client-utils/sdk-client.js +0 -124
  310. package/lib/commands/portal/quickstart.d.ts +0 -10
  311. package/lib/commands/portal/quickstart.js +0 -79
  312. package/lib/config/env.d.ts +0 -27
  313. package/lib/config/env.js +0 -31
  314. package/lib/controllers/api/transform.d.ts +0 -5
  315. package/lib/controllers/api/transform.js +0 -56
  316. package/lib/controllers/api/validate.d.ts +0 -3
  317. package/lib/controllers/api/validate.js +0 -33
  318. package/lib/controllers/portal/generate.d.ts +0 -3
  319. package/lib/controllers/portal/generate.js +0 -110
  320. package/lib/controllers/portal/quickstart.d.ts +0 -14
  321. package/lib/controllers/portal/quickstart.js +0 -258
  322. package/lib/controllers/portal/serve.d.ts +0 -3
  323. package/lib/controllers/portal/serve.js +0 -138
  324. package/lib/controllers/sdk/generate.d.ts +0 -4
  325. package/lib/controllers/sdk/generate.js +0 -66
  326. package/lib/services/portal/server.d.ts +0 -14
  327. package/lib/services/portal/server.js +0 -101
  328. package/lib/types/api/validate.d.ts +0 -12
  329. package/lib/types/api/validate.js +0 -3
  330. package/lib/types/common/result.d.ts +0 -17
  331. package/lib/types/common/result.js +0 -36
  332. package/lib/types/portal/generate.d.ts +0 -26
  333. package/lib/types/portal/generate.js +0 -4
  334. package/lib/types/portal/quickstart.d.ts +0 -17
  335. package/lib/types/portal/quickstart.js +0 -3
  336. package/lib/validators/common/directoryValidator.d.ts +0 -9
  337. package/lib/validators/common/directoryValidator.js +0 -53
  338. package/lib/validators/common/portValidator.d.ts +0 -5
  339. package/lib/validators/common/portValidator.js +0 -20
  340. package/lib/validators/portal/serveValidator.d.ts +0 -6
  341. package/lib/validators/portal/serveValidator.js +0 -21
@@ -1,348 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMessageInRedColor = exports.getMessageInMagentaColor = exports.getMessageInGreenColor = exports.getMessageInCyanColor = exports.getMessageInBlueColor = exports.getMessageInOrangeColor = exports.getNonHiddenItemsFromDirectory = exports.printValidationMessages = exports.getFileNameFromPath = exports.getGeneratedFilesPaths = exports.isJSONParsable = exports.replaceHTML = exports.zipDirectory = exports.zipDirectoryToStream = exports.writeFileUsingReadableStream = exports.deleteFile = exports.isValidUrl = exports.directoryToJson = exports.validationMessagesToJson = exports.clearDirectory = exports.createTempDirectory = exports.unzipFile = void 0;
4
- exports.extractZipFile = extractZipFile;
5
- exports.validateAndZipPortalSource = validateAndZipPortalSource;
6
- exports.cleanUpGeneratedPortalFiles = cleanUpGeneratedPortalFiles;
7
- exports.isPortInUse = isPortInUse;
8
- exports.parseStreamBodyToJson = parseStreamBodyToJson;
9
- const tslib_1 = require("tslib");
10
- const net = require("net");
11
- const path = require("path");
12
- const fs = require("fs-extra");
13
- const os = require("os");
14
- const archiver = require("archiver");
15
- const unzipper = require("unzipper");
16
- const stripTags = require("striptags");
17
- const stream_1 = require("stream");
18
- const AdmZip = require("adm-zip");
19
- const unzipFile = (stream, destination) => {
20
- return new Promise((resolve, reject) => {
21
- const extractStream = unzipper.Extract({ path: destination });
22
- stream
23
- .pipe(extractStream)
24
- .on("error", (error) => reject(new Error("Error during extraction: " + error.message)));
25
- extractStream.on("close", () => resolve("Extracted"));
26
- extractStream.on("error", (error) => reject(new Error("Error during extraction: " + error.message)));
27
- });
28
- };
29
- exports.unzipFile = unzipFile;
30
- const createTempDirectory = async () => {
31
- return fs.mkdtempSync(path.join(os.tmpdir(), "apimatic-cli-"));
32
- };
33
- exports.createTempDirectory = createTempDirectory;
34
- const clearDirectory = async (folderPath) => {
35
- if (!fs.existsSync(folderPath)) {
36
- throw new Error(`Directory ${folderPath} does not exist`);
37
- }
38
- const files = await fs.readdir(folderPath);
39
- for (const file of files) {
40
- const filePath = path.join(folderPath, file);
41
- await (0, exports.deleteFile)(filePath);
42
- }
43
- await (0, exports.deleteFile)(folderPath);
44
- };
45
- exports.clearDirectory = clearDirectory;
46
- const validationMessagesToJson = (validationMessages) => {
47
- const structuredValidationMessages = {
48
- "Validation Messages": {
49
- Errors: [],
50
- Warnings: [],
51
- Messages: []
52
- }
53
- };
54
- if (validationMessages.errors) {
55
- validationMessages.errors.forEach((error) => {
56
- structuredValidationMessages["Validation Messages"]["Errors"].push((0, exports.replaceHTML)(error));
57
- });
58
- }
59
- if (validationMessages.warnings) {
60
- validationMessages.warnings.forEach((warning) => {
61
- structuredValidationMessages["Validation Messages"]["Warnings"].push((0, exports.replaceHTML)(warning));
62
- });
63
- }
64
- if (validationMessages.messages) {
65
- validationMessages.messages.forEach((message) => {
66
- structuredValidationMessages["Validation Messages"]["Messages"].push((0, exports.replaceHTML)(message));
67
- });
68
- }
69
- return structuredValidationMessages;
70
- };
71
- exports.validationMessagesToJson = validationMessagesToJson;
72
- const descriptions = Object.entries({
73
- "APIMATIC-BUILD.json": "# Defines all configurations for the API portal, including programming languages and themes",
74
- spec: "# Contains all API definition files",
75
- content: "# Includes custom documentation pages in Markdown",
76
- "content/toc.yml": "# Controls the structure of the side navigation bar in the API portal",
77
- static: "# Includes all static files, such as images, GIFs, and PDFs"
78
- }).reduce((acc, [key, value]) => {
79
- acc[path.normalize(key)] = value;
80
- return acc;
81
- }, {});
82
- const directoryToJson = (dirPath, parentPath = "") => {
83
- const directoryStructure = {};
84
- const items = fs.readdirSync(dirPath);
85
- items.forEach((item) => {
86
- if (item === ".git")
87
- return; // Skip .git directory
88
- const itemPath = path.join(dirPath, item);
89
- const relativePath = path.join(parentPath, item);
90
- const stats = fs.statSync(itemPath);
91
- if (stats.isDirectory()) {
92
- const subdirectoryStructure = (0, exports.directoryToJson)(itemPath, relativePath);
93
- const folderName = descriptions[path.normalize(relativePath)]
94
- ? `${item} : ${descriptions[path.normalize(relativePath)]}`
95
- : item;
96
- directoryStructure[folderName] = subdirectoryStructure;
97
- }
98
- else {
99
- directoryStructure[descriptions[path.normalize(relativePath)] ? `${item} : ${descriptions[path.normalize(relativePath)]}` : item] = null;
100
- }
101
- });
102
- return directoryStructure;
103
- };
104
- exports.directoryToJson = directoryToJson;
105
- const isValidUrl = (input) => {
106
- if (!input) {
107
- return false;
108
- }
109
- try {
110
- const url = new URL(input);
111
- if (!["http:", "https:"].includes(url.protocol)) {
112
- return false;
113
- }
114
- if (url.protocol === "file:" || fs.existsSync(input)) {
115
- return false;
116
- }
117
- if (!url.host) {
118
- return false;
119
- }
120
- return true;
121
- }
122
- catch (_) {
123
- return false;
124
- }
125
- };
126
- exports.isValidUrl = isValidUrl;
127
- const deleteFile = async (filePath) => {
128
- return await fs.remove(filePath);
129
- };
130
- exports.deleteFile = deleteFile;
131
- const writeFileUsingReadableStream = (stream, destinationPath) => {
132
- return new Promise((resolve) => {
133
- const writeStream = fs.createWriteStream(destinationPath);
134
- stream.pipe(writeStream);
135
- writeStream.on("close", () => {
136
- resolve("Zipped");
137
- });
138
- });
139
- };
140
- exports.writeFileUsingReadableStream = writeFileUsingReadableStream;
141
- const zipDirectoryToStream = async (sourcePath) => {
142
- // Check if the directory exists for the user or not
143
- await fs.ensureDir(sourcePath);
144
- const archive = archiver("zip");
145
- return new Promise((resolve, reject) => {
146
- archive.on("error", (err) => {
147
- reject(new Error(err.message));
148
- });
149
- const passThroughStream = new stream_1.PassThrough();
150
- archive.pipe(passThroughStream);
151
- archive.directory(sourcePath, false);
152
- archive.finalize().catch(reject);
153
- resolve(passThroughStream);
154
- });
155
- };
156
- exports.zipDirectoryToStream = zipDirectoryToStream;
157
- /**
158
- * Packages local files into a ZIP archive
159
- *
160
- * @param {docsPortalFolderPath} path to portal directory.
161
- * @param {destinationZipPath} path to generated zip
162
- * return {string}
163
- */
164
- const zipDirectory = async (sourcePath, destinationPath) => {
165
- // Check if the directory exists for the user or not
166
- await fs.ensureDir(sourcePath);
167
- const zipPath = path.join(destinationPath, ".target.zip");
168
- const output = fs.createWriteStream(zipPath);
169
- const archive = archiver("zip");
170
- return new Promise((resolve, reject) => {
171
- archive.on("error", (err) => {
172
- reject(new Error(err.message));
173
- });
174
- output.on("error", (err) => {
175
- reject(new Error(err.message));
176
- });
177
- output.on("close", () => {
178
- resolve(zipPath);
179
- });
180
- archive.pipe(output);
181
- archive.directory(sourcePath, false);
182
- archive.finalize().catch(reject);
183
- });
184
- };
185
- exports.zipDirectory = zipDirectory;
186
- const replaceHTML = (string) => {
1
+ import { __asyncValues } from "tslib";
2
+ import * as path from "path";
3
+ import { Buffer } from "buffer";
4
+ import stripTags from "striptags";
5
+ export const replaceHTML = (string) => {
187
6
  return stripTags(string);
188
7
  };
189
- exports.replaceHTML = replaceHTML;
190
- const isJSONParsable = (json) => {
191
- try {
192
- JSON.parse(json);
193
- return true;
194
- }
195
- catch (e) {
196
- return false;
197
- }
198
- };
199
- exports.isJSONParsable = isJSONParsable;
200
- const getGeneratedFilesPaths = (sourceDirectoryPath, generatedPortalArtifactsDirectoryPath) => {
201
- const generatedBuildInputZipPath = path.join(sourceDirectoryPath, ".portal_source.zip");
202
- const generatedPortalArtifactsZipFilePath = path.join(sourceDirectoryPath, ".generated_portal.zip");
203
- const generatedPortalArtifactsFolderPath = path.join(path.dirname(generatedPortalArtifactsDirectoryPath), "generated_portal");
204
- return [generatedBuildInputZipPath, generatedPortalArtifactsFolderPath, generatedPortalArtifactsZipFilePath];
205
- };
206
- exports.getGeneratedFilesPaths = getGeneratedFilesPaths;
207
- const getFileNameFromPath = (filePath) => {
8
+ export const getFileNameFromPath = (filePath) => {
208
9
  return path.basename(filePath).split(".")[0];
209
10
  };
210
- exports.getFileNameFromPath = getFileNameFromPath;
211
- const printValidationMessages = ({ warnings, errors, messages }, { log, warn, error }) => {
212
- warnings = warnings || [];
213
- messages = messages || [];
214
- const singleError = errors.join("\n") || "";
215
- messages.forEach((message) => {
216
- log(`Info: ${(0, exports.replaceHTML)(message)}`);
217
- });
218
- warnings.forEach((warning) => {
219
- warn((0, exports.replaceHTML)(warning));
220
- });
221
- if (errors.length > 0) {
222
- error((0, exports.replaceHTML)(singleError));
223
- }
224
- };
225
- exports.printValidationMessages = printValidationMessages;
226
- /**
227
- * Extracts a ZIP file to a specified destination directory.
228
- *
229
- * @param zipFilePath Path to the ZIP file.
230
- * @param destinationDir Path to the destination directory where files will be extracted.
231
- */
232
- async function extractZipFile(zipFilePath, destinationDir) {
233
- const MAX_ZIP_SIZE = 300 * 1024 * 1024;
234
- return new Promise((resolve, reject) => {
235
- try {
236
- const zip = new AdmZip(zipFilePath);
237
- const zipEntries = zip.getEntries();
238
- let totalSize = 0;
239
- zipEntries.forEach((entry) => {
240
- totalSize += entry.getData().length;
241
- const normalizedPath = path.normalize(entry.entryName);
242
- if (normalizedPath.startsWith("..") || path.isAbsolute(normalizedPath)) {
243
- return reject(new Error(`Blocked potentially unsafe path: ${normalizedPath}`));
244
- }
245
- });
246
- if (totalSize > MAX_ZIP_SIZE) {
247
- return reject(new Error((0, exports.getMessageInRedColor)("Archive size is too large for safe extraction.")));
248
- }
249
- if (!fs.existsSync(destinationDir)) {
250
- fs.mkdirSync(destinationDir, { recursive: true });
251
- }
252
- zipEntries.forEach((entry) => {
253
- const resolvedPath = path.resolve(destinationDir, entry.entryName);
254
- if (!resolvedPath.startsWith(path.resolve(destinationDir))) {
255
- return reject(new Error("An error occurred while extracting zip file."));
256
- }
257
- zip.extractEntryTo(entry, destinationDir, true, true);
258
- });
259
- resolve();
260
- }
261
- catch (error) {
262
- return reject(new Error(`Failed to extract ZIP File: ${error}`));
263
- }
264
- });
265
- }
266
- async function validateAndZipPortalSource(sourceDir, outputPath, ignoredPaths = []) {
267
- const output = fs.createWriteStream(outputPath);
268
- const archive = archiver("zip", {
269
- zlib: { level: 9 }
270
- });
271
- return new Promise((resolve, reject) => {
272
- output.on("close", () => resolve(outputPath));
273
- output.on("error", (err) => {
274
- return reject(new Error(`Failed to zip the source directory: ${err.message}`));
275
- });
276
- archive.on("error", (err) => {
277
- return reject(new Error(`Failed to zip the source directory: ${err.message}`));
278
- });
279
- archive.pipe(output);
280
- // Function to recursively add files and directories to the archive, excluding ignored paths
281
- const addItemsToArchive = async (currentPath, archivePath) => {
282
- const items = await fs.readdir(currentPath);
283
- for (const item of items) {
284
- const fullPath = path.join(currentPath, item);
285
- const relativePath = path.relative(sourceDir, fullPath);
286
- // Check if the path is ignored.
287
- const isIgnored = ignoredPaths.some((ignoredPath) => fullPath === ignoredPath ||
288
- relativePath === ignoredPath ||
289
- fullPath === path.resolve(ignoredPath) ||
290
- relativePath.startsWith(ignoredPath + "/") ||
291
- relativePath.startsWith(ignoredPath + "\\"));
292
- if (!isIgnored) {
293
- const stats = await fs.stat(fullPath);
294
- if (stats.isDirectory()) {
295
- await addItemsToArchive(fullPath, archivePath ? path.join(archivePath, item) : item);
296
- }
297
- else {
298
- archive.file(fullPath, { name: archivePath ? path.join(archivePath, item) : item });
299
- }
300
- }
301
- }
302
- };
303
- // Start adding items from the source directory
304
- addItemsToArchive(sourceDir, false)
305
- .then(() => {
306
- archive.finalize();
307
- })
308
- .catch((err) => {
309
- return reject(new Error(`Failed to add items to the zip created for source directory: ${err.message}`));
310
- });
311
- });
312
- }
313
- async function cleanUpGeneratedPortalFiles(sourceDir) {
314
- const generatedPortalZipFilePath = path.join(sourceDir, ".generated_portal.zip");
315
- const generatedPortalSourceZipFilePath = path.join(sourceDir, ".portal_source.zip");
316
- if (fs.existsSync(generatedPortalZipFilePath)) {
317
- await (0, exports.deleteFile)(generatedPortalZipFilePath);
318
- }
319
- if (fs.existsSync(generatedPortalSourceZipFilePath)) {
320
- await (0, exports.deleteFile)(generatedPortalSourceZipFilePath);
321
- }
322
- }
323
- function isPortInUse(port) {
324
- return new Promise((resolve) => {
325
- const server = net.createServer();
326
- server.once("error", (err) => {
327
- if (err.code === "EADDRINUSE") {
328
- resolve(true);
329
- }
330
- else {
331
- resolve(false);
332
- }
333
- });
334
- server.once("listening", () => {
335
- server.close();
336
- resolve(false);
337
- });
338
- server.listen(port);
339
- });
340
- }
341
- async function parseStreamBodyToJson(body) {
11
+ export async function parseStreamBodyToJson(body) {
342
12
  var _a, e_1, _b, _c;
343
13
  const chunks = [];
344
14
  try {
345
- for (var _d = true, body_1 = tslib_1.__asyncValues(body), body_1_1; body_1_1 = await body_1.next(), _a = body_1_1.done, !_a; _d = true) {
15
+ for (var _d = true, body_1 = __asyncValues(body), body_1_1; body_1_1 = await body_1.next(), _a = body_1_1.done, !_a; _d = true) {
346
16
  _c = body_1_1.value;
347
17
  _d = false;
348
18
  const chunk = _c;
@@ -359,32 +29,10 @@ async function parseStreamBodyToJson(body) {
359
29
  const text = Buffer.concat(chunks).toString("utf-8");
360
30
  return JSON.parse(text);
361
31
  }
362
- const getNonHiddenItemsFromDirectory = (directoryPath) => {
363
- return fs.readdirSync(directoryPath).filter((item) => !item.startsWith("."));
364
- };
365
- exports.getNonHiddenItemsFromDirectory = getNonHiddenItemsFromDirectory;
366
- const getMessageInOrangeColor = (message) => {
367
- return `\u001b[33m${message}\u001b[0m`;
368
- };
369
- exports.getMessageInOrangeColor = getMessageInOrangeColor;
370
- const getMessageInBlueColor = (message) => {
371
- return `\u001b[34m${message}\u001b[0m`;
372
- };
373
- exports.getMessageInBlueColor = getMessageInBlueColor;
374
- const getMessageInCyanColor = (message) => {
375
- return `\u001b[36m${message}\u001b[0m`;
376
- };
377
- exports.getMessageInCyanColor = getMessageInCyanColor;
378
- const getMessageInGreenColor = (message) => {
379
- return `\u001b[32m${message}\u001b[0m`;
380
- };
381
- exports.getMessageInGreenColor = getMessageInGreenColor;
382
- const getMessageInMagentaColor = (message) => {
383
- return `\u001b[35m${message}\u001b[0m`;
384
- };
385
- exports.getMessageInMagentaColor = getMessageInMagentaColor;
386
- const getMessageInRedColor = (message) => {
387
- return `\u001b[31m${message}\u001b[0m`;
32
+ export const toPascalCase = (str) => {
33
+ return str
34
+ .split(" ")
35
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
36
+ .join("");
388
37
  };
389
- exports.getMessageInRedColor = getMessageInRedColor;
390
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd1FBLHdDQXdDQztBQUVELGdFQTJEQztBQUVELGtFQVNDO0FBRUQsa0NBbUJDO0FBRUQsc0RBT0M7O0FBdFpELDJCQUEyQjtBQUMzQiw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLHlCQUF5QjtBQUN6QixxQ0FBcUM7QUFDckMscUNBQXFDO0FBQ3JDLHVDQUF1QztBQUN2QyxtQ0FBcUM7QUFDckMsa0NBQW1DO0FBSzVCLE1BQU0sU0FBUyxHQUFHLENBQUMsTUFBNkIsRUFBRSxXQUFtQixFQUFFLEVBQUU7SUFDOUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFFOUQsTUFBTTthQUNILElBQUksQ0FBQyxhQUFhLENBQUM7YUFDbkIsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDJCQUEyQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDdEQsYUFBYSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQywyQkFBMkIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBWFcsUUFBQSxTQUFTLGFB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
38
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,SAAS,MAAM,WAAW,CAAC;AAElC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,EAAE;IAC5C,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAE,EAAE;IACtD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAA2B;;IACrE,MAAM,MAAM,GAAa,EAAE,CAAC;;QAC5B,KAA0B,eAAA,SAAA,cAAA,IAAI,CAAA,UAAA,sEAAE,CAAC;YAAP,oBAAI;YAAJ,WAAI;YAAnB,MAAM,KAAK,KAAA,CAAA;YACpB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,CAAC;;;;;;;;;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAU,EAAE;IAClD,OAAO,GAAG;SACP,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACzE,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,15 @@
1
1
  {
2
2
  "name": "@apimatic/cli",
3
3
  "description": "The official CLI for APIMatic.",
4
- "version": "1.1.0-alpha.9",
4
+ "version": "1.1.0-beta.10",
5
5
  "author": "APIMatic",
6
6
  "bin": {
7
- "apimatic": "./bin/run"
7
+ "apimatic": "./bin/run.js"
8
+ },
9
+ "bugs": {
10
+ "url": "https://github.com/apimatic/apimatic-cli/issues",
11
+ "email": "support@apimatic.io"
8
12
  },
9
- "bugs": "https://github.com/apimatic/apimatic-cli/issues",
10
13
  "publishConfig": {
11
14
  "access": "public"
12
15
  },
@@ -14,13 +17,13 @@
14
17
  "node": ">=20.0.0"
15
18
  },
16
19
  "files": [
17
- "/bin",
18
- "/lib",
20
+ "./bin",
21
+ "./lib",
19
22
  "/npm-shrinkwrap.json",
20
23
  "/oclif.manifest.json"
21
24
  ],
22
25
  "repository": "git://github.com/apimatic/apimatic-cli.git",
23
- "homepage": "https://github.com/apimatic/apimatic-cli",
26
+ "homepage": "https://docs.apimatic.io/apimatic-cli/intro-and-install/",
24
27
  "keywords": [
25
28
  "apimatic",
26
29
  "cli",
@@ -30,60 +33,68 @@
30
33
  "automation"
31
34
  ],
32
35
  "license": "MIT",
36
+ "type": "module",
33
37
  "main": "lib/index.js",
34
38
  "types": "lib/index.d.ts",
35
39
  "scripts": {
36
40
  "build": "tsc -b",
37
41
  "postpack": "rimraf oclif.manifest.json",
38
- "posttest": "eslint . --ext .ts --config .eslintrc",
39
- "test": "nyc --extension .ts mocha --forbid-only \"test/**/*.test.ts\"",
42
+ "posttest": "eslint . --ext .ts",
40
43
  "prettier": "prettier \"src/**/*.{js,ts}\"",
41
44
  "format": "prettier --write \"src/**/*.{js,ts}\"",
42
45
  "lint": "eslint \"src/**/*.{js,ts}\"",
43
- "lint:fix": "eslint --fix \"src/**/*.{js,ts}\" --quiet"
46
+ "lint:fix": "eslint --fix \"src/**/*.{js,ts}\" --quiet",
47
+ "test": "tsx node_modules/mocha/bin/_mocha --forbid-only \"test/**/*.test.ts\" --timeout 99999"
44
48
  },
45
49
  "dependencies": {
46
- "@apimatic/sdk": "^0.2.0-alpha.1",
47
- "@clack/prompts": "^0.11.0",
50
+ "@apimatic/sdk": "^0.2.0-alpha.7",
51
+ "@clack/prompts": "1.0.0-alpha.1",
48
52
  "@oclif/core": "^4.2.8",
49
53
  "@oclif/plugin-autocomplete": "^3.2.24",
50
54
  "@oclif/plugin-help": "^6.2.26",
51
- "@oclif/plugin-not-found": "^3.2.44",
52
- "adm-zip": "^0.5.14",
53
55
  "archiver": "^7.0.1",
56
+ "async-mutex": "^0.5.0",
54
57
  "axios": "^1.8.1",
55
- "base-64": "^1.0.0",
56
58
  "chokidar": "^3.6.0",
57
59
  "connect-livereload": "^0.6.1",
60
+ "execa": "^9.6.0",
58
61
  "express": "^4.17.1",
59
- "file-type": "^15.0.0",
62
+ "extract-zip": "^2.0.1",
63
+ "fast-levenshtein": "^3.0.0",
60
64
  "form-data": "^4.0.2",
61
65
  "fs-extra": "^11.3.0",
66
+ "get-port": "^7.1.0",
67
+ "is-in-ci": "^2.0.0",
62
68
  "livereload": "^0.9.3",
69
+ "neverthrow": "^8.2.0",
63
70
  "open": "^8.4.0",
64
- "simple-git": "^3.27.0",
71
+ "prettier": "^2.8.8",
65
72
  "striptags": "^3.2.0",
66
- "treeify": "^1.1.0",
67
- "tslib": "^2.5.0",
68
- "unzipper": "^0.12.3",
73
+ "tmp-promise": "^3.0.3",
74
+ "tslib": "^2.8.1",
75
+ "uuid": "^11.1.0",
69
76
  "yaml": "^2.8.0"
70
77
  },
71
78
  "devDependencies": {
72
79
  "@commitlint/cli": "^15.0.0",
73
80
  "@commitlint/config-conventional": "^15.0.0",
81
+ "@eslint/js": "^9.34.0",
74
82
  "@oclif/test": "^4.1.13",
75
83
  "@semantic-release/changelog": "^6.0.3",
76
84
  "@semantic-release/git": "^10.0.1",
77
- "@types/adm-zip": "^0.5.5",
78
- "@types/archiver": "^5.1.1",
85
+ "@types/archiver": "^5.3.4",
79
86
  "@types/base-64": "^1.0.0",
80
87
  "@types/chai": "^4.3.20",
81
- "@types/connect-livereload": "^0.5.1",
82
- "@types/express": "^4.17.13",
88
+ "@types/connect-livereload": "^0.5.32",
89
+ "@types/express": "^4.17.23",
90
+ "@types/fast-levenshtein": "^0.0.4",
83
91
  "@types/fs-extra": "^9.0.13",
84
- "@types/livereload": "^0.9.2",
92
+ "@types/livereload": "^0.9.5",
85
93
  "@types/mocha": "^5.2.7",
94
+ "@types/mock-fs": "^4.13.4",
86
95
  "@types/node": "^20.17.50",
96
+ "@types/prettier": "^2.7.3",
97
+ "@types/sinon": "^17.0.4",
87
98
  "@types/treeify": "^1.0.3",
88
99
  "@types/unzipper": "^0.10.4",
89
100
  "@typescript-eslint/eslint-plugin": "^8.0.0",
@@ -94,24 +105,28 @@
94
105
  "eslint-plugin-import": "^2.25.2",
95
106
  "husky": "^7.0.4",
96
107
  "lint-staged": "^11.2.6",
97
- "mocha": "^11.5.0",
108
+ "mocha": "^11.7.1",
109
+ "mock-fs": "^5.5.0",
98
110
  "nock": "^14.0.4",
99
111
  "nyc": "^17.1.0",
100
112
  "oclif": "^4.17.34",
101
- "prettier": "^2.4.1",
102
113
  "rimraf": "^6.0.1",
103
- "tmp-promise": "^3.0.3",
104
- "ts-node": "^8.10.2",
114
+ "sinon": "^21.0.0",
115
+ "ts-node": "^10.9.2",
116
+ "tsx": "^4.20.3",
105
117
  "typescript": "^5.2.2"
106
118
  },
107
119
  "oclif": {
108
120
  "commands": "./lib/commands",
121
+ "dirname": "apimatic",
109
122
  "bin": "apimatic",
110
123
  "description": "The official CLI for APIMatic. \nTo get started with APIMatic's CLI using a step by step wizard, run 'apimatic portal:quickstart'.",
124
+ "hooks": {
125
+ "command_not_found": "./lib/hooks/not-found"
126
+ },
111
127
  "plugins": [
112
128
  "@oclif/plugin-autocomplete",
113
- "@oclif/plugin-help",
114
- "@oclif/plugin-not-found"
129
+ "@oclif/plugin-help"
115
130
  ],
116
131
  "topics": {
117
132
  "api": {
@@ -125,9 +140,13 @@
125
140
  },
126
141
  "sdk": {
127
142
  "description": "Generate SDKs for your APIs in multiple languages."
143
+ },
144
+ "portal:toc": {
145
+ "description": "Generate a Table of Contents (TOC) file for your API documentation portal."
128
146
  }
129
147
  },
130
- "state": "Alpha"
148
+ "topicSeparator": " ",
149
+ "state": "beta"
131
150
  },
132
151
  "lint-staged": {
133
152
  "*.js": "eslint --cache --fix",
package/bin/run DELETED
@@ -1,9 +0,0 @@
1
- #!/usr/bin/env node
2
- /* eslint-disable no-undef */
3
- /* eslint-disable @typescript-eslint/no-var-requires */
4
-
5
- const { run, flush, handle } = require("@oclif/core");
6
-
7
- run()
8
- .then(flush)
9
- .catch(handle);
@@ -1,13 +0,0 @@
1
- import { PortalService } from "../../../infrastructure/services/portal-service";
2
- import { TocEndpoint, TocModel } from "../../../types/toc/toc";
3
- import { Result } from "../../../types/common/result";
4
- export declare class SdlParser {
5
- private readonly portalService;
6
- constructor(portalService: PortalService);
7
- getTocComponentsFromSdl(specFolderPath: string, workingDirectory: string, configDir: string): Promise<Result<{
8
- endpointGroups: Map<string, TocEndpoint[]>;
9
- models: TocModel[];
10
- }, string>>;
11
- private extractEndpointGroups;
12
- private extractModels;
13
- }