@redocly/cli 1.34.3 → 2.0.0-next.0

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 (321) hide show
  1. package/README.md +34 -3
  2. package/bin/cli.js +1 -1
  3. package/lib/auth/device-flow.d.ts +1 -0
  4. package/lib/auth/device-flow.d.ts.map +1 -0
  5. package/lib/auth/device-flow.js +15 -17
  6. package/lib/auth/device-flow.js.map +1 -0
  7. package/lib/auth/oauth-client.d.ts +1 -0
  8. package/lib/auth/oauth-client.d.ts.map +1 -0
  9. package/lib/auth/oauth-client.js +21 -23
  10. package/lib/auth/oauth-client.js.map +1 -0
  11. package/lib/commands/auth.d.ts +3 -5
  12. package/lib/commands/auth.d.ts.map +1 -0
  13. package/lib/commands/auth.js +19 -44
  14. package/lib/commands/auth.js.map +1 -0
  15. package/lib/commands/build-docs/index.d.ts +4 -3
  16. package/lib/commands/build-docs/index.d.ts.map +1 -0
  17. package/lib/commands/build-docs/index.js +23 -24
  18. package/lib/commands/build-docs/index.js.map +1 -0
  19. package/lib/commands/build-docs/types.d.ts +2 -1
  20. package/lib/commands/build-docs/types.d.ts.map +1 -0
  21. package/lib/commands/build-docs/types.js +2 -2
  22. package/lib/commands/build-docs/types.js.map +1 -0
  23. package/lib/commands/build-docs/utils.d.ts +3 -2
  24. package/lib/commands/build-docs/utils.d.ts.map +1 -0
  25. package/lib/commands/build-docs/utils.js +35 -37
  26. package/lib/commands/build-docs/utils.js.map +1 -0
  27. package/lib/commands/bundle.d.ts +6 -3
  28. package/lib/commands/bundle.d.ts.map +1 -0
  29. package/lib/commands/bundle.js +34 -38
  30. package/lib/commands/bundle.js.map +1 -0
  31. package/lib/commands/eject.d.ts +3 -2
  32. package/lib/commands/eject.d.ts.map +1 -0
  33. package/lib/commands/eject.js +11 -13
  34. package/lib/commands/eject.js.map +1 -0
  35. package/lib/commands/join.d.ts +4 -3
  36. package/lib/commands/join.d.ts.map +1 -0
  37. package/lib/commands/join.js +79 -81
  38. package/lib/commands/join.js.map +1 -0
  39. package/lib/commands/lint.d.ts +8 -6
  40. package/lib/commands/lint.d.ts.map +1 -0
  41. package/lib/commands/lint.js +53 -62
  42. package/lib/commands/lint.js.map +1 -0
  43. package/lib/commands/preview-project/constants.d.ts +2 -1
  44. package/lib/commands/preview-project/constants.d.ts.map +1 -0
  45. package/lib/commands/preview-project/constants.js +4 -6
  46. package/lib/commands/preview-project/constants.js.map +1 -0
  47. package/lib/commands/preview-project/index.d.ts +3 -2
  48. package/lib/commands/preview-project/index.d.ts.map +1 -0
  49. package/lib/commands/preview-project/index.js +21 -23
  50. package/lib/commands/preview-project/index.js.map +1 -0
  51. package/lib/commands/preview-project/types.d.ts +3 -2
  52. package/lib/commands/preview-project/types.d.ts.map +1 -0
  53. package/lib/commands/preview-project/types.js +2 -2
  54. package/lib/commands/preview-project/types.js.map +1 -0
  55. package/lib/commands/split/index.d.ts +4 -3
  56. package/lib/commands/split/index.d.ts.map +1 -0
  57. package/lib/commands/split/index.js +53 -57
  58. package/lib/commands/split/index.js.map +1 -0
  59. package/lib/commands/split/types.d.ts +2 -2
  60. package/lib/commands/split/types.d.ts.map +1 -0
  61. package/lib/commands/split/types.js +11 -13
  62. package/lib/commands/split/types.js.map +1 -0
  63. package/lib/commands/stats.d.ts +3 -2
  64. package/lib/commands/stats.d.ts.map +1 -0
  65. package/lib/commands/stats.js +21 -24
  66. package/lib/commands/stats.js.map +1 -0
  67. package/lib/commands/translations.d.ts +3 -2
  68. package/lib/commands/translations.d.ts.map +1 -0
  69. package/lib/commands/translations.js +11 -13
  70. package/lib/commands/translations.js.map +1 -0
  71. package/lib/index.d.ts +2 -1
  72. package/lib/index.d.ts.map +1 -0
  73. package/lib/index.js +109 -239
  74. package/lib/index.js.map +1 -0
  75. package/lib/otel.d.ts +2 -1
  76. package/lib/otel.d.ts.map +1 -0
  77. package/lib/otel.js +22 -23
  78. package/lib/otel.js.map +1 -0
  79. package/lib/reunite/api/api-client.d.ts +4 -3
  80. package/lib/reunite/api/api-client.d.ts.map +1 -0
  81. package/lib/reunite/api/api-client.js +14 -20
  82. package/lib/reunite/api/api-client.js.map +1 -0
  83. package/lib/reunite/api/api-keys.d.ts +2 -1
  84. package/lib/reunite/api/api-keys.d.ts.map +1 -0
  85. package/lib/reunite/api/api-keys.js +4 -20
  86. package/lib/reunite/api/api-keys.js.map +1 -0
  87. package/lib/reunite/api/domains.d.ts +5 -2
  88. package/lib/reunite/api/domains.d.ts.map +1 -0
  89. package/lib/reunite/api/domains.js +6 -15
  90. package/lib/reunite/api/domains.js.map +1 -0
  91. package/lib/reunite/api/index.d.ts +4 -3
  92. package/lib/reunite/api/index.d.ts.map +1 -0
  93. package/lib/reunite/api/index.js +4 -19
  94. package/lib/reunite/api/index.js.map +1 -0
  95. package/lib/reunite/api/types.d.ts +1 -0
  96. package/lib/reunite/api/types.d.ts.map +1 -0
  97. package/lib/reunite/api/types.js +2 -2
  98. package/lib/reunite/api/types.js.map +1 -0
  99. package/lib/reunite/commands/push-status.d.ts +6 -5
  100. package/lib/reunite/commands/push-status.d.ts.map +1 -0
  101. package/lib/reunite/commands/push-status.js +31 -37
  102. package/lib/reunite/commands/push-status.js.map +1 -0
  103. package/lib/reunite/commands/push.d.ts +6 -6
  104. package/lib/reunite/commands/push.d.ts.map +1 -0
  105. package/lib/reunite/commands/push.js +31 -40
  106. package/lib/reunite/commands/push.js.map +1 -0
  107. package/lib/reunite/commands/utils.d.ts +4 -3
  108. package/lib/reunite/commands/utils.d.ts.map +1 -0
  109. package/lib/reunite/commands/utils.js +9 -12
  110. package/lib/reunite/commands/utils.js.map +1 -0
  111. package/lib/reunite/utils.d.ts +1 -0
  112. package/lib/reunite/utils.d.ts.map +1 -0
  113. package/lib/reunite/utils.js +2 -5
  114. package/lib/reunite/utils.js.map +1 -0
  115. package/lib/types.d.ts +15 -27
  116. package/lib/types.d.ts.map +1 -0
  117. package/lib/types.js +2 -5
  118. package/lib/types.js.map +1 -0
  119. package/lib/utils/assert-node-version.d.ts +1 -0
  120. package/lib/utils/assert-node-version.d.ts.map +1 -0
  121. package/lib/utils/assert-node-version.js +8 -10
  122. package/lib/utils/assert-node-version.js.map +1 -0
  123. package/lib/utils/error.d.ts +4 -0
  124. package/lib/utils/error.d.ts.map +1 -0
  125. package/lib/utils/error.js +8 -0
  126. package/lib/utils/error.js.map +1 -0
  127. package/lib/utils/fetch-with-timeout.d.ts +1 -0
  128. package/lib/utils/fetch-with-timeout.d.ts.map +1 -0
  129. package/lib/utils/fetch-with-timeout.js +6 -8
  130. package/lib/utils/fetch-with-timeout.js.map +1 -0
  131. package/lib/utils/{getCommandNameFromArgs.d.ts → get-command-name-from-args.d.ts} +1 -0
  132. package/lib/utils/get-command-name-from-args.d.ts.map +1 -0
  133. package/lib/utils/get-command-name-from-args.js +4 -0
  134. package/lib/utils/get-command-name-from-args.js.map +1 -0
  135. package/lib/utils/js-utils.d.ts +1 -0
  136. package/lib/utils/js-utils.d.ts.map +1 -0
  137. package/lib/utils/js-utils.js +8 -12
  138. package/lib/utils/js-utils.js.map +1 -0
  139. package/lib/utils/miscellaneous.d.ts +9 -48
  140. package/lib/utils/miscellaneous.d.ts.map +1 -0
  141. package/lib/utils/miscellaneous.js +131 -269
  142. package/lib/utils/miscellaneous.js.map +1 -0
  143. package/lib/utils/package.d.ts +2 -0
  144. package/lib/utils/package.d.ts.map +1 -0
  145. package/lib/utils/package.js +4 -0
  146. package/lib/utils/package.js.map +1 -0
  147. package/lib/utils/platform.d.ts +1 -0
  148. package/lib/utils/platform.d.ts.map +1 -0
  149. package/lib/utils/platform.js +5 -9
  150. package/lib/utils/platform.js.map +1 -0
  151. package/lib/utils/proxy-agent.d.ts +3 -0
  152. package/lib/utils/proxy-agent.d.ts.map +1 -0
  153. package/lib/utils/proxy-agent.js +6 -0
  154. package/lib/utils/proxy-agent.js.map +1 -0
  155. package/lib/utils/spinner.d.ts +1 -0
  156. package/lib/utils/spinner.d.ts.map +1 -0
  157. package/lib/utils/spinner.js +8 -10
  158. package/lib/utils/spinner.js.map +1 -0
  159. package/lib/utils/telemetry.d.ts +40 -0
  160. package/lib/utils/telemetry.d.ts.map +1 -0
  161. package/lib/utils/telemetry.js +138 -0
  162. package/lib/utils/telemetry.js.map +1 -0
  163. package/lib/utils/update-version-notifier.d.ts +1 -1
  164. package/lib/utils/update-version-notifier.d.ts.map +1 -0
  165. package/lib/utils/update-version-notifier.js +35 -38
  166. package/lib/utils/update-version-notifier.js.map +1 -0
  167. package/lib/utils/validate-positive-number.d.ts +2 -0
  168. package/lib/utils/validate-positive-number.d.ts.map +1 -0
  169. package/lib/utils/validate-positive-number.js +13 -0
  170. package/lib/utils/validate-positive-number.js.map +1 -0
  171. package/lib/wrapper.d.ts +3 -3
  172. package/lib/wrapper.d.ts.map +1 -0
  173. package/lib/wrapper.js +39 -26
  174. package/lib/wrapper.js.map +1 -0
  175. package/package.json +15 -16
  176. package/CHANGELOG.md +0 -770
  177. package/lib/__mocks__/@redocly/openapi-core.d.ts +0 -99
  178. package/lib/__mocks__/@redocly/openapi-core.js +0 -84
  179. package/lib/__mocks__/documents.d.ts +0 -150
  180. package/lib/__mocks__/documents.js +0 -123
  181. package/lib/__mocks__/fs.d.ts +0 -8
  182. package/lib/__mocks__/fs.js +0 -9
  183. package/lib/__mocks__/perf_hooks.d.ts +0 -3
  184. package/lib/__mocks__/perf_hooks.js +0 -6
  185. package/lib/__mocks__/redoc.d.ts +0 -6
  186. package/lib/__mocks__/redoc.js +0 -5
  187. package/lib/__tests__/commands/build-docs.test.d.ts +0 -1
  188. package/lib/__tests__/commands/build-docs.test.js +0 -54
  189. package/lib/__tests__/commands/bundle.test.d.ts +0 -1
  190. package/lib/__tests__/commands/bundle.test.js +0 -235
  191. package/lib/__tests__/commands/join.test.d.ts +0 -1
  192. package/lib/__tests__/commands/join.test.js +0 -274
  193. package/lib/__tests__/commands/lint.test.d.ts +0 -1
  194. package/lib/__tests__/commands/lint.test.js +0 -149
  195. package/lib/__tests__/commands/push-region.test.d.ts +0 -1
  196. package/lib/__tests__/commands/push-region.test.js +0 -90
  197. package/lib/__tests__/commands/push.test.d.ts +0 -1
  198. package/lib/__tests__/commands/push.test.js +0 -496
  199. package/lib/__tests__/fetch-with-timeout.test.d.ts +0 -1
  200. package/lib/__tests__/fetch-with-timeout.test.js +0 -64
  201. package/lib/__tests__/fixtures/config.d.ts +0 -21
  202. package/lib/__tests__/fixtures/config.js +0 -24
  203. package/lib/__tests__/spinner.test.d.ts +0 -1
  204. package/lib/__tests__/spinner.test.js +0 -43
  205. package/lib/__tests__/utils.test.d.ts +0 -1
  206. package/lib/__tests__/utils.test.js +0 -651
  207. package/lib/__tests__/wrapper.test.d.ts +0 -1
  208. package/lib/__tests__/wrapper.test.js +0 -76
  209. package/lib/auth/__tests__/device-flow.test.d.ts +0 -1
  210. package/lib/auth/__tests__/device-flow.test.js +0 -62
  211. package/lib/auth/__tests__/oauth-client.test.d.ts +0 -1
  212. package/lib/auth/__tests__/oauth-client.test.js +0 -93
  213. package/lib/commands/preview-docs/index.d.ts +0 -12
  214. package/lib/commands/preview-docs/index.js +0 -127
  215. package/lib/commands/preview-docs/preview-server/default.hbs +0 -24
  216. package/lib/commands/preview-docs/preview-server/hot.js +0 -59
  217. package/lib/commands/preview-docs/preview-server/oauth2-redirect.html +0 -21
  218. package/lib/commands/preview-docs/preview-server/preview-server.d.ts +0 -5
  219. package/lib/commands/preview-docs/preview-server/preview-server.js +0 -113
  220. package/lib/commands/preview-docs/preview-server/server.d.ts +0 -22
  221. package/lib/commands/preview-docs/preview-server/server.js +0 -85
  222. package/lib/commands/push.d.ts +0 -44
  223. package/lib/commands/push.js +0 -301
  224. package/lib/commands/split/__tests__/index.test.d.ts +0 -1
  225. package/lib/commands/split/__tests__/index.test.js +0 -91
  226. package/lib/reunite/api/__tests__/api-keys.test.d.ts +0 -1
  227. package/lib/reunite/api/__tests__/api-keys.test.js +0 -26
  228. package/lib/reunite/api/__tests__/api.client.test.d.ts +0 -1
  229. package/lib/reunite/api/__tests__/api.client.test.js +0 -337
  230. package/lib/reunite/api/__tests__/domains.test.d.ts +0 -1
  231. package/lib/reunite/api/__tests__/domains.test.js +0 -32
  232. package/lib/reunite/commands/__tests__/push-status.test.d.ts +0 -1
  233. package/lib/reunite/commands/__tests__/push-status.test.js +0 -563
  234. package/lib/reunite/commands/__tests__/push.test.d.ts +0 -1
  235. package/lib/reunite/commands/__tests__/push.test.js +0 -315
  236. package/lib/reunite/commands/__tests__/utils.test.d.ts +0 -1
  237. package/lib/reunite/commands/__tests__/utils.test.js +0 -51
  238. package/lib/utils/__mocks__/miscellaneous.d.ts +0 -43
  239. package/lib/utils/__mocks__/miscellaneous.js +0 -24
  240. package/lib/utils/getCommandNameFromArgs.js +0 -6
  241. package/src/__mocks__/@redocly/openapi-core.ts +0 -88
  242. package/src/__mocks__/documents.ts +0 -124
  243. package/src/__mocks__/fs.ts +0 -6
  244. package/src/__mocks__/perf_hooks.ts +0 -3
  245. package/src/__mocks__/redoc.ts +0 -2
  246. package/src/__tests__/commands/build-docs.test.ts +0 -59
  247. package/src/__tests__/commands/bundle.test.ts +0 -285
  248. package/src/__tests__/commands/join.test.ts +0 -334
  249. package/src/__tests__/commands/lint.test.ts +0 -190
  250. package/src/__tests__/commands/push-region.test.ts +0 -104
  251. package/src/__tests__/commands/push.test.ts +0 -553
  252. package/src/__tests__/fetch-with-timeout.test.ts +0 -81
  253. package/src/__tests__/fixtures/config.ts +0 -21
  254. package/src/__tests__/fixtures/openapi.json +0 -0
  255. package/src/__tests__/fixtures/openapi.yaml +0 -0
  256. package/src/__tests__/fixtures/redocly.yaml +0 -0
  257. package/src/__tests__/spinner.test.ts +0 -51
  258. package/src/__tests__/utils.test.ts +0 -781
  259. package/src/__tests__/wrapper.test.ts +0 -91
  260. package/src/auth/__tests__/device-flow.test.ts +0 -73
  261. package/src/auth/__tests__/oauth-client.test.ts +0 -117
  262. package/src/auth/device-flow.ts +0 -175
  263. package/src/auth/oauth-client.ts +0 -111
  264. package/src/commands/auth.ts +0 -66
  265. package/src/commands/build-docs/index.ts +0 -55
  266. package/src/commands/build-docs/template.hbs +0 -23
  267. package/src/commands/build-docs/types.ts +0 -25
  268. package/src/commands/build-docs/utils.ts +0 -110
  269. package/src/commands/bundle.ts +0 -154
  270. package/src/commands/eject.ts +0 -42
  271. package/src/commands/join.ts +0 -794
  272. package/src/commands/lint.ts +0 -169
  273. package/src/commands/preview-docs/index.ts +0 -183
  274. package/src/commands/preview-docs/preview-server/default.hbs +0 -24
  275. package/src/commands/preview-docs/preview-server/hot.js +0 -59
  276. package/src/commands/preview-docs/preview-server/oauth2-redirect.html +0 -21
  277. package/src/commands/preview-docs/preview-server/preview-server.ts +0 -159
  278. package/src/commands/preview-docs/preview-server/server.ts +0 -92
  279. package/src/commands/preview-project/constants.ts +0 -23
  280. package/src/commands/preview-project/index.ts +0 -71
  281. package/src/commands/preview-project/types.ts +0 -12
  282. package/src/commands/push.ts +0 -470
  283. package/src/commands/split/__tests__/fixtures/samples.json +0 -61
  284. package/src/commands/split/__tests__/fixtures/spec.json +0 -70
  285. package/src/commands/split/__tests__/fixtures/webhooks.json +0 -85
  286. package/src/commands/split/__tests__/index.test.ts +0 -156
  287. package/src/commands/split/index.ts +0 -397
  288. package/src/commands/split/types.ts +0 -60
  289. package/src/commands/stats.ts +0 -140
  290. package/src/commands/translations.ts +0 -32
  291. package/src/custom.d.ts +0 -1
  292. package/src/index.ts +0 -970
  293. package/src/otel.ts +0 -59
  294. package/src/reunite/api/__tests__/api-keys.test.ts +0 -37
  295. package/src/reunite/api/__tests__/api.client.test.ts +0 -452
  296. package/src/reunite/api/__tests__/domains.test.ts +0 -41
  297. package/src/reunite/api/api-client.ts +0 -381
  298. package/src/reunite/api/api-keys.ts +0 -26
  299. package/src/reunite/api/domains.ts +0 -23
  300. package/src/reunite/api/index.ts +0 -3
  301. package/src/reunite/api/types.ts +0 -108
  302. package/src/reunite/commands/__tests__/push-status.test.ts +0 -653
  303. package/src/reunite/commands/__tests__/push.test.ts +0 -385
  304. package/src/reunite/commands/__tests__/utils.test.ts +0 -62
  305. package/src/reunite/commands/push-status.ts +0 -325
  306. package/src/reunite/commands/push.ts +0 -235
  307. package/src/reunite/commands/utils.ts +0 -66
  308. package/src/reunite/utils.ts +0 -1
  309. package/src/types.ts +0 -64
  310. package/src/utils/__mocks__/miscellaneous.ts +0 -24
  311. package/src/utils/assert-node-version.ts +0 -19
  312. package/src/utils/fetch-with-timeout.ts +0 -30
  313. package/src/utils/getCommandNameFromArgs.ts +0 -5
  314. package/src/utils/js-utils.ts +0 -24
  315. package/src/utils/miscellaneous.ts +0 -729
  316. package/src/utils/platform.ts +0 -31
  317. package/src/utils/spinner.ts +0 -50
  318. package/src/utils/update-version-notifier.ts +0 -115
  319. package/src/wrapper.ts +0 -77
  320. package/tsconfig.json +0 -9
  321. package/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,4 @@
1
+ import { createRequire } from 'node:module';
2
+ const packageJson = createRequire(import.meta.url ?? __dirname)('../../package.json');
3
+ export const { version, name, engines } = packageJson;
4
+ //# sourceMappingURL=package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAC;AAEtF,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC"}
@@ -14,3 +14,4 @@ export declare function getPlatformSpawnArgs(): {
14
14
  sanitize: (input: string | undefined, sanitizer: (input: string) => string) => string;
15
15
  shell: boolean;
16
16
  };
17
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/utils/platform.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,YAAY,UAAW,MAAM,KAAG,MAE5C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,UAAW,MAAM,KAAG,MAE9C,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB;;sBAIA,MAAM,GAAG,SAAS,aAAa,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM;;EAS3F"}
@@ -1,25 +1,20 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sanitizeLocale = exports.sanitizePath = void 0;
4
- exports.getPlatformSpawnArgs = getPlatformSpawnArgs;
1
+ import * as process from 'node:process';
5
2
  /**
6
3
  * Sanitizes the input path by removing invalid characters.
7
4
  */
8
- const sanitizePath = (input) => {
5
+ export const sanitizePath = (input) => {
9
6
  return input.replace(/[^a-zA-Z0-9 ._\-:\\/@]/g, '');
10
7
  };
11
- exports.sanitizePath = sanitizePath;
12
8
  /**
13
9
  * Sanitizes the input locale (ex. en-US) by removing invalid characters.
14
10
  */
15
- const sanitizeLocale = (input) => {
11
+ export const sanitizeLocale = (input) => {
16
12
  return input.replace(/[^a-zA-Z0-9@._-]/g, '');
17
13
  };
18
- exports.sanitizeLocale = sanitizeLocale;
19
14
  /**
20
15
  * Retrieves platform-specific arguments and utilities.
21
16
  */
22
- function getPlatformSpawnArgs() {
17
+ export function getPlatformSpawnArgs() {
23
18
  const isWindowsPlatform = process.platform === 'win32';
24
19
  const npxExecutableName = isWindowsPlatform ? 'npx.cmd' : 'npx';
25
20
  const sanitizeIfWindows = (input, sanitizer) => {
@@ -32,3 +27,4 @@ function getPlatformSpawnArgs() {
32
27
  };
33
28
  return { npxExecutableName, sanitize: sanitizeIfWindows, shell: isWindowsPlatform };
34
29
  }
30
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/utils/platform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE;IACpD,OAAO,KAAK,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAU,EAAE;IACtD,OAAO,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,iBAAiB,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;IACvD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;IAEhE,MAAM,iBAAiB,GAAG,CAAC,KAAyB,EAAE,SAAoC,EAAE,EAAE;QAC5F,IAAI,iBAAiB,IAAI,KAAK,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,IAAI,EAAE,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;AACtF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { HttpsProxyAgent } from 'https-proxy-agent';
2
+ export declare function getProxyAgent(): HttpsProxyAgent<string> | undefined;
3
+ //# sourceMappingURL=proxy-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-agent.d.ts","sourceRoot":"","sources":["../../src/utils/proxy-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,wBAAgB,aAAa,wCAG5B"}
@@ -0,0 +1,6 @@
1
+ import { HttpsProxyAgent } from 'https-proxy-agent';
2
+ export function getProxyAgent() {
3
+ const proxy = process.env.HTTPS_PROXY || process.env.HTTP_PROXY;
4
+ return proxy ? new HttpsProxyAgent(proxy) : undefined;
5
+ }
6
+ //# sourceMappingURL=proxy-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-agent.js","sourceRoot":"","sources":["../../src/utils/proxy-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,UAAU,aAAa;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAChE,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC"}
@@ -8,3 +8,4 @@ export declare class Spinner {
8
8
  start(message: string): void;
9
9
  stop(): void;
10
10
  }
11
+ //# sourceMappingURL=spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/utils/spinner.ts"],"names":[],"mappings":"AAKA,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,OAAO,CAAS;;IASxB,OAAO,CAAC,SAAS;IAKjB,KAAK,CAAC,OAAO,EAAE,MAAM;IAmBrB,IAAI;CAQL"}
@@ -1,9 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Spinner = void 0;
4
- const process = require("process");
1
+ import * as process from 'node:process';
2
+ import { logger } from '@redocly/openapi-core';
5
3
  const SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
6
- class Spinner {
4
+ export class Spinner {
7
5
  constructor() {
8
6
  this.frames = SPINNER_FRAMES;
9
7
  this.currentFrame = 0;
@@ -11,7 +9,7 @@ class Spinner {
11
9
  this.message = '';
12
10
  }
13
11
  showFrame() {
14
- process.stdout.write('\r' + this.frames[this.currentFrame] + ' ' + this.message);
12
+ logger.info('\r' + this.frames[this.currentFrame] + ' ' + this.message);
15
13
  this.currentFrame = (this.currentFrame + 1) % this.frames.length;
16
14
  }
17
15
  start(message) {
@@ -20,8 +18,8 @@ class Spinner {
20
18
  }
21
19
  this.message = message;
22
20
  // If we're not in a TTY, don't display the spinner.
23
- if (!process.stdout.isTTY) {
24
- process.stdout.write(`${message}...\n`);
21
+ if (!process.stderr.isTTY) {
22
+ logger.info(`${message}...\n`);
25
23
  return;
26
24
  }
27
25
  if (this.intervalId === null) {
@@ -34,9 +32,9 @@ class Spinner {
34
32
  if (this.intervalId !== null) {
35
33
  clearInterval(this.intervalId);
36
34
  this.intervalId = null;
37
- process.stdout.write('\r');
35
+ logger.info('\r');
38
36
  }
39
37
  this.message = '';
40
38
  }
41
39
  }
42
- exports.Spinner = Spinner;
40
+ //# sourceMappingURL=spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/utils/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1E,MAAM,OAAO,OAAO;IAMlB;QACE,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;IAEO,SAAS;QACf,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACxE,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,oDAAoD;QACpD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,OAAO,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;gBACjC,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;CACF"}
@@ -0,0 +1,40 @@
1
+ import type { ExitCode } from './miscellaneous.js';
2
+ import type { ArazzoDefinition, Config } from '@redocly/openapi-core';
3
+ import type { Arguments } from 'yargs';
4
+ import type { CommandOptions } from '../types.js';
5
+ export type Analytics = {
6
+ event: string;
7
+ event_time: string;
8
+ logged_in: 'yes' | 'no';
9
+ command: string;
10
+ arguments: string;
11
+ node_version: string;
12
+ npm_version: string;
13
+ os_platform: string;
14
+ version: string;
15
+ exit_code: ExitCode;
16
+ environment?: string;
17
+ metadata?: string;
18
+ environment_ci?: string;
19
+ raw_input: string;
20
+ has_config?: 'yes' | 'no';
21
+ spec_version?: string;
22
+ spec_keyword?: string;
23
+ spec_full_version?: string;
24
+ respect_x_security_auth_types?: string;
25
+ };
26
+ export declare function sendTelemetry({ config, argv, exit_code, spec_version, spec_keyword, spec_full_version, respect_x_security_auth_types, }: {
27
+ config: Config | undefined;
28
+ argv: Arguments<CommandOptions> | undefined;
29
+ exit_code: ExitCode;
30
+ spec_version: string | undefined;
31
+ spec_keyword: string | undefined;
32
+ spec_full_version: string | undefined;
33
+ respect_x_security_auth_types: string[] | undefined;
34
+ }): Promise<void>;
35
+ export declare function collectXSecurityAuthTypes(document: Partial<ArazzoDefinition>, respectXSecurityAuthTypesAndSchemeName: string[]): void;
36
+ export declare function cleanArgs(parsedArgs: CommandOptions, rawArgv: string[]): {
37
+ arguments: string;
38
+ raw_input: string;
39
+ };
40
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/utils/telemetry.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAS,MAAM,uBAAuB,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,KAAK,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,QAAQ,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6BAA6B,CAAC,EAAE,MAAM,CAAC;CACxC,CAAC;AAEF,wBAAsB,aAAa,CAAC,EAClC,MAAM,EACN,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,6BAA6B,GAC9B,EAAE;IACD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;IAC5C,SAAS,EAAE,QAAQ,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,6BAA6B,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACrD,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ChB;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACnC,sCAAsC,EAAE,MAAM,EAAE,QAkCjD;AAuCD,wBAAgB,SAAS,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE;;;EA0BtE"}
@@ -0,0 +1,138 @@
1
+ import * as os from 'node:os';
2
+ import * as fs from 'node:fs';
3
+ import { execSync } from 'node:child_process';
4
+ import { isAbsoluteUrl } from '@redocly/openapi-core';
5
+ import { version } from './package.js';
6
+ import { getReuniteUrl } from '../reunite/api/index.js';
7
+ export async function sendTelemetry({ config, argv, exit_code, spec_version, spec_keyword, spec_full_version, respect_x_security_auth_types, }) {
8
+ try {
9
+ if (!argv) {
10
+ return;
11
+ }
12
+ const { _: [command], $0: _, ...args } = argv;
13
+ const event_time = new Date().toISOString();
14
+ const residency = args.residency || config?.resolvedConfig?.residency;
15
+ const { RedoclyOAuthClient } = await import('../auth/oauth-client.js');
16
+ const oauthClient = new RedoclyOAuthClient('redocly-cli', version);
17
+ const reuniteUrl = getReuniteUrl(residency);
18
+ const logged_in = await oauthClient.isAuthorized(reuniteUrl);
19
+ const data = {
20
+ event: 'cli_command',
21
+ event_time,
22
+ logged_in: logged_in ? 'yes' : 'no',
23
+ command: `${command}`,
24
+ ...cleanArgs(args, process.argv.slice(2)),
25
+ node_version: process.version,
26
+ npm_version: execSync('npm -v').toString().replace('\n', ''),
27
+ os_platform: os.platform(),
28
+ version,
29
+ exit_code,
30
+ environment: process.env.REDOCLY_ENVIRONMENT,
31
+ metadata: process.env.REDOCLY_CLI_TELEMETRY_METADATA,
32
+ environment_ci: process.env.CI,
33
+ has_config: typeof config?.document?.parsed === 'undefined' ? 'no' : 'yes',
34
+ spec_version,
35
+ spec_keyword,
36
+ spec_full_version,
37
+ respect_x_security_auth_types: spec_version === 'arazzo1' && respect_x_security_auth_types?.length
38
+ ? JSON.stringify(respect_x_security_auth_types)
39
+ : undefined,
40
+ };
41
+ const { otelTelemetry } = await import('../otel.js');
42
+ otelTelemetry.init();
43
+ otelTelemetry.send(data.command, data);
44
+ }
45
+ catch (err) {
46
+ // Do nothing.
47
+ }
48
+ }
49
+ export function collectXSecurityAuthTypes(document, respectXSecurityAuthTypesAndSchemeName) {
50
+ for (const workflow of document.workflows ?? []) {
51
+ // Collect auth types from workflow-level x-security
52
+ for (const security of workflow['x-security'] ?? []) {
53
+ const scheme = security.scheme;
54
+ if (scheme?.type) {
55
+ const authType = scheme.type === 'http' ? scheme.scheme : scheme.type;
56
+ if (authType && !respectXSecurityAuthTypesAndSchemeName.includes(authType)) {
57
+ respectXSecurityAuthTypesAndSchemeName.push(authType);
58
+ }
59
+ }
60
+ }
61
+ // Collect auth types from step-level x-security
62
+ for (const step of workflow.steps ?? []) {
63
+ for (const security of step['x-security'] ?? []) {
64
+ // Handle scheme case
65
+ const scheme = security.scheme;
66
+ if (scheme?.type) {
67
+ const authType = scheme.type === 'http' ? scheme.scheme : scheme.type;
68
+ if (authType && !respectXSecurityAuthTypesAndSchemeName.includes(authType)) {
69
+ respectXSecurityAuthTypesAndSchemeName.push(authType);
70
+ }
71
+ }
72
+ // Handle schemeName case
73
+ const schemeName = security.schemeName;
74
+ if (schemeName && !respectXSecurityAuthTypesAndSchemeName.includes(schemeName)) {
75
+ respectXSecurityAuthTypesAndSchemeName.push(schemeName);
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ function isFile(value) {
82
+ return fs.existsSync(value) && fs.statSync(value).isFile();
83
+ }
84
+ function isDirectory(value) {
85
+ return fs.existsSync(value) && fs.statSync(value).isDirectory();
86
+ }
87
+ function cleanString(value) {
88
+ if (!value) {
89
+ return value;
90
+ }
91
+ if (isAbsoluteUrl(value)) {
92
+ return value.split('://')[0] + '://url';
93
+ }
94
+ if (isFile(value)) {
95
+ return value.replace(/.+\.([^.]+)$/, (_, ext) => 'file-' + ext);
96
+ }
97
+ if (isDirectory(value)) {
98
+ return 'folder';
99
+ }
100
+ return value;
101
+ }
102
+ function replaceArgs(commandInput, targets, replacement) {
103
+ const targetValues = Array.isArray(targets) ? targets : [targets];
104
+ for (const target of targetValues) {
105
+ commandInput = commandInput.replaceAll(target, replacement);
106
+ }
107
+ return commandInput;
108
+ }
109
+ export function cleanArgs(parsedArgs, rawArgv) {
110
+ const KEYS_TO_CLEAN = ['organization', 'o', 'input', 'i', 'client-cert', 'client-key', 'ca-cert'];
111
+ let commandInput = rawArgv.join(' ');
112
+ const commandArguments = {};
113
+ for (const [key, value] of Object.entries(parsedArgs)) {
114
+ if (KEYS_TO_CLEAN.includes(key)) {
115
+ commandArguments[key] = '***';
116
+ commandInput = replaceArgs(commandInput, value, '***');
117
+ }
118
+ else if (typeof value === 'string') {
119
+ const cleanedValue = cleanString(value);
120
+ commandArguments[key] = cleanedValue;
121
+ commandInput = replaceArgs(commandInput, value, cleanedValue);
122
+ }
123
+ else if (Array.isArray(value)) {
124
+ commandArguments[key] = value.map(cleanString);
125
+ for (const replacedValue of value) {
126
+ const newValue = cleanString(replacedValue);
127
+ if (commandInput.includes(replacedValue)) {
128
+ commandInput = commandInput.replaceAll(replacedValue, newValue);
129
+ }
130
+ }
131
+ }
132
+ else {
133
+ commandArguments[key] = value;
134
+ }
135
+ }
136
+ return { arguments: JSON.stringify(commandArguments), raw_input: commandInput };
137
+ }
138
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/utils/telemetry.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- export declare const version: any, name: any;
2
1
  export declare const notifyUpdateCliVersion: () => void;
3
2
  export declare const cacheLatestVersion: () => void;
3
+ //# sourceMappingURL=update-version-notifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-version-notifier.d.ts","sourceRoot":"","sources":["../../src/utils/update-version-notifier.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,sBAAsB,YAalC,CAAC;AAkBF,eAAO,MAAM,kBAAkB,YAa9B,CAAC"}
@@ -1,15 +1,13 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.cacheLatestVersion = exports.notifyUpdateCliVersion = exports.name = exports.version = void 0;
5
- const os_1 = require("os");
6
- const path_1 = require("path");
7
- const fs_1 = require("fs");
8
- const semver_1 = require("semver");
9
- const fetch_with_timeout_1 = require("./fetch-with-timeout");
10
- const colorette_1 = require("colorette");
11
- const miscellaneous_1 = require("./miscellaneous");
12
- _a = require('../../package.json'), exports.version = _a.version, exports.name = _a.name;
1
+ import { tmpdir } from 'node:os';
2
+ import { join } from 'node:path';
3
+ import * as process from 'node:process';
4
+ import { existsSync, writeFileSync, readFileSync, statSync } from 'node:fs';
5
+ import { compare } from 'semver';
6
+ import { logger } from '@redocly/openapi-core';
7
+ import fetch, { DEFAULT_FETCH_TIMEOUT } from './fetch-with-timeout.js';
8
+ import { cyan, green, yellow } from 'colorette';
9
+ import { cleanColors } from './miscellaneous.js';
10
+ import { version, name } from './package.js';
13
11
  const VERSION_CACHE_FILE = 'redocly-cli-version';
14
12
  const SPACE_TO_BORDER = 4;
15
13
  const INTERVAL_TO_CHECK = 1000 * 60 * 60 * 12;
@@ -17,26 +15,25 @@ const SHOULD_NOT_NOTIFY = process.env.NODE_ENV === 'test' ||
17
15
  process.env.CI ||
18
16
  !!process.env.LAMBDA_TASK_ROOT ||
19
17
  process.env.REDOCLY_SUPPRESS_UPDATE_NOTICE === 'true';
20
- const notifyUpdateCliVersion = () => {
18
+ export const notifyUpdateCliVersion = () => {
21
19
  if (SHOULD_NOT_NOTIFY) {
22
20
  return;
23
21
  }
24
22
  try {
25
- const latestVersion = (0, fs_1.readFileSync)((0, path_1.join)((0, os_1.tmpdir)(), VERSION_CACHE_FILE)).toString();
26
- if (isNewVersionAvailable(exports.version, latestVersion)) {
27
- renderUpdateBanner(exports.version, latestVersion);
23
+ const latestVersion = readFileSync(join(tmpdir(), VERSION_CACHE_FILE)).toString();
24
+ if (isNewVersionAvailable(version, latestVersion)) {
25
+ renderUpdateBanner(version, latestVersion);
28
26
  }
29
27
  }
30
28
  catch (e) {
31
29
  return;
32
30
  }
33
31
  };
34
- exports.notifyUpdateCliVersion = notifyUpdateCliVersion;
35
- const isNewVersionAvailable = (current, latest) => (0, semver_1.compare)(current, latest) < 0;
32
+ const isNewVersionAvailable = (current, latest) => compare(current, latest) < 0;
36
33
  const getLatestVersion = async (packageName) => {
37
34
  const latestUrl = `http://registry.npmjs.org/${packageName}/latest`;
38
35
  try {
39
- const response = await (0, fetch_with_timeout_1.default)(latestUrl, { timeout: fetch_with_timeout_1.DEFAULT_FETCH_TIMEOUT });
36
+ const response = await fetch(latestUrl, { timeout: DEFAULT_FETCH_TIMEOUT });
40
37
  const info = await response.json();
41
38
  return info.version;
42
39
  }
@@ -45,54 +42,53 @@ const getLatestVersion = async (packageName) => {
45
42
  return;
46
43
  }
47
44
  };
48
- const cacheLatestVersion = () => {
45
+ export const cacheLatestVersion = () => {
49
46
  if (!isNeedToBeCached() || SHOULD_NOT_NOTIFY) {
50
47
  return;
51
48
  }
52
- getLatestVersion(exports.name)
49
+ getLatestVersion(name)
53
50
  .then((version) => {
54
51
  if (version) {
55
- const lastCheckFile = (0, path_1.join)((0, os_1.tmpdir)(), VERSION_CACHE_FILE);
56
- (0, fs_1.writeFileSync)(lastCheckFile, version);
52
+ const lastCheckFile = join(tmpdir(), VERSION_CACHE_FILE);
53
+ writeFileSync(lastCheckFile, version);
57
54
  }
58
55
  })
59
56
  .catch(() => { });
60
57
  };
61
- exports.cacheLatestVersion = cacheLatestVersion;
62
58
  const renderUpdateBanner = (current, latest) => {
63
59
  const messageLines = [
64
- `A new version of ${(0, colorette_1.cyan)('Redocly CLI')} (${(0, colorette_1.green)(latest)}) is available.`,
65
- `Update now: \`${(0, colorette_1.cyan)('npm i -g @redocly/cli@latest')}\`.`,
60
+ `A new version of ${cyan('Redocly CLI')} (${green(latest)}) is available.`,
61
+ `Update now: \`${cyan('npm i -g @redocly/cli@latest')}\`.`,
66
62
  `Changelog: https://redocly.com/docs/cli/changelog/`,
67
63
  ];
68
- const maxLength = Math.max(...messageLines.map((line) => (0, miscellaneous_1.cleanColors)(line).length));
69
- const border = (0, colorette_1.yellow)('═'.repeat(maxLength + SPACE_TO_BORDER));
64
+ const maxLength = Math.max(...messageLines.map((line) => cleanColors(line).length));
65
+ const border = yellow('═'.repeat(maxLength + SPACE_TO_BORDER));
70
66
  const extraSpaces = ' '.repeat(SPACE_TO_BORDER);
71
67
  const banner = [
72
68
  '',
73
- extraSpaces + (0, colorette_1.yellow)('╔' + border + '╗'),
74
- extraSpaces + (0, colorette_1.yellow)('║' + ' '.repeat(maxLength + SPACE_TO_BORDER) + '║'),
69
+ extraSpaces + yellow('╔' + border + '╗'),
70
+ extraSpaces + yellow('║' + ' '.repeat(maxLength + SPACE_TO_BORDER) + '║'),
75
71
  messageLines.map(getLineWithPadding(maxLength, extraSpaces)).join('\n'),
76
- extraSpaces + (0, colorette_1.yellow)('║' + ' '.repeat(maxLength + SPACE_TO_BORDER) + '║'),
77
- extraSpaces + (0, colorette_1.yellow)('╚' + border + '╝'),
72
+ extraSpaces + yellow('║' + ' '.repeat(maxLength + SPACE_TO_BORDER) + '║'),
73
+ extraSpaces + yellow('╚' + border + '╝'),
78
74
  '',
79
75
  '',
80
76
  ].join('\n');
81
- process.stderr.write(banner);
77
+ logger.info(banner);
82
78
  };
83
79
  const getLineWithPadding = (maxLength, extraSpaces) => (line) => {
84
- const padding = ' '.repeat(maxLength - (0, miscellaneous_1.cleanColors)(line).length);
85
- return `${extraSpaces}${(0, colorette_1.yellow)('║')} ${line}${padding} ${(0, colorette_1.yellow)('║')}`;
80
+ const padding = ' '.repeat(maxLength - cleanColors(line).length);
81
+ return `${extraSpaces}${yellow('║')} ${line}${padding} ${yellow('║')}`;
86
82
  };
87
83
  const isNeedToBeCached = () => {
88
84
  try {
89
85
  // Last version from npm is stored in a file in the OS temp folder
90
- const versionFile = (0, path_1.join)((0, os_1.tmpdir)(), VERSION_CACHE_FILE);
91
- if (!(0, fs_1.existsSync)(versionFile)) {
86
+ const versionFile = join(tmpdir(), VERSION_CACHE_FILE);
87
+ if (!existsSync(versionFile)) {
92
88
  return true;
93
89
  }
94
90
  const now = new Date().getTime();
95
- const stats = (0, fs_1.statSync)(versionFile);
91
+ const stats = statSync(versionFile);
96
92
  const lastCheck = stats.mtime.getTime();
97
93
  return now - lastCheck >= INTERVAL_TO_CHECK;
98
94
  }
@@ -100,3 +96,4 @@ const isNeedToBeCached = () => {
100
96
  return false;
101
97
  }
102
98
  };
99
+ //# sourceMappingURL=update-version-notifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-version-notifier.js","sourceRoot":"","sources":["../../src/utils/update-version-notifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function validatePositiveNumber(optionName: string, requireInteger?: boolean): (arg: any) => number;
2
+ //# sourceMappingURL=validate-positive-number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-positive-number.d.ts","sourceRoot":"","sources":["../../src/utils/validate-positive-number.ts"],"names":[],"mappings":"AAAA,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,cAAc,UAAQ,SAClE,GAAG,YAUjB"}
@@ -0,0 +1,13 @@
1
+ export function validatePositiveNumber(optionName, requireInteger = false) {
2
+ return (arg) => {
3
+ const num = Number(arg);
4
+ if (isNaN(num) || num <= 0) {
5
+ throw new Error(`${optionName} must be a positive number`);
6
+ }
7
+ if (requireInteger && !Number.isInteger(num)) {
8
+ throw new Error(`${optionName} must be a positive integer`);
9
+ }
10
+ return num;
11
+ };
12
+ }
13
+ //# sourceMappingURL=validate-positive-number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-positive-number.js","sourceRoot":"","sources":["../../src/utils/validate-positive-number.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,sBAAsB,CAAC,UAAkB,EAAE,cAAc,GAAG,KAAK;IAC/E,OAAO,CAAC,GAAQ,EAAE,EAAE;QAClB,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,4BAA4B,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,cAAc,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,6BAA6B,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC"}
package/lib/wrapper.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import type { Arguments } from 'yargs';
2
- import type { Config } from '@redocly/openapi-core';
3
- import type { CollectFn } from '@redocly/openapi-core/lib/utils';
4
- import type { CommandOptions } from './types';
2
+ import type { Config, CollectFn } from '@redocly/openapi-core';
3
+ import type { CommandOptions } from './types.js';
5
4
  export type CommandArgs<T extends CommandOptions> = {
6
5
  argv: T;
7
6
  config: Config;
@@ -9,3 +8,4 @@ export type CommandArgs<T extends CommandOptions> = {
9
8
  collectSpecData?: CollectFn;
10
9
  };
11
10
  export declare function commandWrapper<T extends CommandOptions>(commandHandler?: (wrapperArgs: CommandArgs<T>) => Promise<unknown>): (argv: Arguments<T>) => Promise<void>;
11
+ //# sourceMappingURL=wrapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../src/wrapper.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAA2B,MAAM,uBAAuB,CAAC;AAExF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,cAAc,IAAI;IAClD,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,SAAS,CAAC;CAC7B,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,SAAS,cAAc,EACrD,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,UAE9C,SAAS,CAAC,CAAC,CAAC,mBAuEjC"}