openapi-typesafe 0.0.0 → 1.0.0-rc.1

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 (863) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +71 -1
  3. package/bin/cli.js +4 -0
  4. package/dist/adapters/node-file-system/node-file-system.cjs +46 -0
  5. package/dist/adapters/node-file-system/node-file-system.cjs.map +1 -0
  6. package/dist/adapters/node-file-system/node-file-system.mjs +40 -0
  7. package/dist/adapters/node-file-system/node-file-system.mjs.map +1 -0
  8. package/dist/adapters/redocly-loader/alias-limit.cjs +16 -0
  9. package/dist/adapters/redocly-loader/alias-limit.cjs.map +1 -0
  10. package/dist/adapters/redocly-loader/alias-limit.mjs +14 -0
  11. package/dist/adapters/redocly-loader/alias-limit.mjs.map +1 -0
  12. package/dist/adapters/redocly-loader/allowed-hosts.cjs +42 -0
  13. package/dist/adapters/redocly-loader/allowed-hosts.cjs.map +1 -0
  14. package/dist/adapters/redocly-loader/allowed-hosts.mjs +40 -0
  15. package/dist/adapters/redocly-loader/allowed-hosts.mjs.map +1 -0
  16. package/dist/adapters/redocly-loader/bundled-ref-repair.cjs +53 -0
  17. package/dist/adapters/redocly-loader/bundled-ref-repair.cjs.map +1 -0
  18. package/dist/adapters/redocly-loader/bundled-ref-repair.mjs +51 -0
  19. package/dist/adapters/redocly-loader/bundled-ref-repair.mjs.map +1 -0
  20. package/dist/adapters/redocly-loader/malformed-refs.cjs +41 -0
  21. package/dist/adapters/redocly-loader/malformed-refs.cjs.map +1 -0
  22. package/dist/adapters/redocly-loader/malformed-refs.mjs +38 -0
  23. package/dist/adapters/redocly-loader/malformed-refs.mjs.map +1 -0
  24. package/dist/adapters/redocly-loader/redocly-config-source.cjs +61 -0
  25. package/dist/adapters/redocly-loader/redocly-config-source.cjs.map +1 -0
  26. package/dist/adapters/redocly-loader/redocly-config-source.mjs +54 -0
  27. package/dist/adapters/redocly-loader/redocly-config-source.mjs.map +1 -0
  28. package/dist/adapters/redocly-loader/redocly-schema-loader.cjs +179 -0
  29. package/dist/adapters/redocly-loader/redocly-schema-loader.cjs.map +1 -0
  30. package/dist/adapters/redocly-loader/redocly-schema-loader.mjs +177 -0
  31. package/dist/adapters/redocly-loader/redocly-schema-loader.mjs.map +1 -0
  32. package/dist/adapters/redocly-loader/ref-access.cjs +107 -0
  33. package/dist/adapters/redocly-loader/ref-access.cjs.map +1 -0
  34. package/dist/adapters/redocly-loader/ref-access.mjs +99 -0
  35. package/dist/adapters/redocly-loader/ref-access.mjs.map +1 -0
  36. package/dist/adapters/redocly-loader/ref-holders.cjs +31 -0
  37. package/dist/adapters/redocly-loader/ref-holders.cjs.map +1 -0
  38. package/dist/adapters/redocly-loader/ref-holders.mjs +29 -0
  39. package/dist/adapters/redocly-loader/ref-holders.mjs.map +1 -0
  40. package/dist/adapters/redocly-loader/remote-fetch.cjs +60 -0
  41. package/dist/adapters/redocly-loader/remote-fetch.cjs.map +1 -0
  42. package/dist/adapters/redocly-loader/remote-fetch.mjs +56 -0
  43. package/dist/adapters/redocly-loader/remote-fetch.mjs.map +1 -0
  44. package/dist/adapters/redocly-loader/schema-load-errors.cjs +87 -0
  45. package/dist/adapters/redocly-loader/schema-load-errors.cjs.map +1 -0
  46. package/dist/adapters/redocly-loader/schema-load-errors.mjs +77 -0
  47. package/dist/adapters/redocly-loader/schema-load-errors.mjs.map +1 -0
  48. package/dist/adapters/redocly-loader/schema-source.cjs +104 -0
  49. package/dist/adapters/redocly-loader/schema-source.cjs.map +1 -0
  50. package/dist/adapters/redocly-loader/schema-source.mjs +98 -0
  51. package/dist/adapters/redocly-loader/schema-source.mjs.map +1 -0
  52. package/dist/adapters/redocly-loader/unsupported-keys.cjs +62 -0
  53. package/dist/adapters/redocly-loader/unsupported-keys.cjs.map +1 -0
  54. package/dist/adapters/redocly-loader/unsupported-keys.mjs +58 -0
  55. package/dist/adapters/redocly-loader/unsupported-keys.mjs.map +1 -0
  56. package/dist/adapters/terminal-logger/terminal-logger.cjs +67 -0
  57. package/dist/adapters/terminal-logger/terminal-logger.cjs.map +1 -0
  58. package/dist/adapters/terminal-logger/terminal-logger.mjs +59 -0
  59. package/dist/adapters/terminal-logger/terminal-logger.mjs.map +1 -0
  60. package/dist/adapters/type-ast-bridge/footer-nodes.cjs +21 -0
  61. package/dist/adapters/type-ast-bridge/footer-nodes.cjs.map +1 -0
  62. package/dist/adapters/type-ast-bridge/footer-nodes.mjs +17 -0
  63. package/dist/adapters/type-ast-bridge/footer-nodes.mjs.map +1 -0
  64. package/dist/adapters/type-ast-bridge/ir-declarations-to-typescript.cjs +75 -0
  65. package/dist/adapters/type-ast-bridge/ir-declarations-to-typescript.cjs.map +1 -0
  66. package/dist/adapters/type-ast-bridge/ir-declarations-to-typescript.mjs +71 -0
  67. package/dist/adapters/type-ast-bridge/ir-declarations-to-typescript.mjs.map +1 -0
  68. package/dist/adapters/type-ast-bridge/ir-to-typescript.cjs +148 -0
  69. package/dist/adapters/type-ast-bridge/ir-to-typescript.cjs.map +1 -0
  70. package/dist/adapters/type-ast-bridge/ir-to-typescript.mjs +142 -0
  71. package/dist/adapters/type-ast-bridge/ir-to-typescript.mjs.map +1 -0
  72. package/dist/adapters/type-ast-bridge/lazy-node.cjs +23 -0
  73. package/dist/adapters/type-ast-bridge/lazy-node.cjs.map +1 -0
  74. package/dist/adapters/type-ast-bridge/lazy-node.mjs +21 -0
  75. package/dist/adapters/type-ast-bridge/lazy-node.mjs.map +1 -0
  76. package/dist/adapters/type-ast-bridge/load-typescript.cjs +57 -0
  77. package/dist/adapters/type-ast-bridge/load-typescript.cjs.map +1 -0
  78. package/dist/adapters/type-ast-bridge/load-typescript.mjs +51 -0
  79. package/dist/adapters/type-ast-bridge/load-typescript.mjs.map +1 -0
  80. package/dist/adapters/type-ast-bridge/print-typescript.cjs +21 -0
  81. package/dist/adapters/type-ast-bridge/print-typescript.cjs.map +1 -0
  82. package/dist/adapters/type-ast-bridge/print-typescript.mjs +19 -0
  83. package/dist/adapters/type-ast-bridge/print-typescript.mjs.map +1 -0
  84. package/dist/adapters/type-ast-bridge/typescript-raw-text.cjs +33 -0
  85. package/dist/adapters/type-ast-bridge/typescript-raw-text.cjs.map +1 -0
  86. package/dist/adapters/type-ast-bridge/typescript-raw-text.mjs +29 -0
  87. package/dist/adapters/type-ast-bridge/typescript-raw-text.mjs.map +1 -0
  88. package/dist/adapters/type-ast-bridge/typescript-to-ir.cjs +210 -0
  89. package/dist/adapters/type-ast-bridge/typescript-to-ir.cjs.map +1 -0
  90. package/dist/adapters/type-ast-bridge/typescript-to-ir.mjs +207 -0
  91. package/dist/adapters/type-ast-bridge/typescript-to-ir.mjs.map +1 -0
  92. package/dist/api/ast-to-string.cjs +39 -0
  93. package/dist/api/ast-to-string.cjs.map +1 -0
  94. package/dist/api/ast-to-string.mjs +37 -0
  95. package/dist/api/ast-to-string.mjs.map +1 -0
  96. package/dist/api/comment-header.cjs +11 -0
  97. package/dist/api/comment-header.cjs.map +1 -0
  98. package/dist/api/comment-header.mjs +9 -0
  99. package/dist/api/comment-header.mjs.map +1 -0
  100. package/dist/api/default-ports.cjs +38 -0
  101. package/dist/api/default-ports.cjs.map +1 -0
  102. package/dist/api/default-ports.mjs +28 -0
  103. package/dist/api/default-ports.mjs.map +1 -0
  104. package/dist/api/discriminator-conflict-warnings.cjs +25 -0
  105. package/dist/api/discriminator-conflict-warnings.cjs.map +1 -0
  106. package/dist/api/discriminator-conflict-warnings.mjs +23 -0
  107. package/dist/api/discriminator-conflict-warnings.mjs.map +1 -0
  108. package/dist/api/discriminator-enum-names.cjs +19 -0
  109. package/dist/api/discriminator-enum-names.cjs.map +1 -0
  110. package/dist/api/discriminator-enum-names.mjs +17 -0
  111. package/dist/api/discriminator-enum-names.mjs.map +1 -0
  112. package/dist/api/discriminator-enum-parent.cjs +59 -0
  113. package/dist/api/discriminator-enum-parent.cjs.map +1 -0
  114. package/dist/api/discriminator-enum-parent.mjs +57 -0
  115. package/dist/api/discriminator-enum-parent.mjs.map +1 -0
  116. package/dist/api/discriminator-enum.cjs +69 -0
  117. package/dist/api/discriminator-enum.cjs.map +1 -0
  118. package/dist/api/discriminator-enum.mjs +66 -0
  119. package/dist/api/discriminator-enum.mjs.map +1 -0
  120. package/dist/api/discriminator-other-owners.cjs +67 -0
  121. package/dist/api/discriminator-other-owners.cjs.map +1 -0
  122. package/dist/api/discriminator-other-owners.mjs +64 -0
  123. package/dist/api/discriminator-other-owners.mjs.map +1 -0
  124. package/dist/api/discriminator-patch.cjs +88 -0
  125. package/dist/api/discriminator-patch.cjs.map +1 -0
  126. package/dist/api/discriminator-patch.mjs +82 -0
  127. package/dist/api/discriminator-patch.mjs.map +1 -0
  128. package/dist/api/discriminator-scan.cjs +153 -0
  129. package/dist/api/discriminator-scan.cjs.map +1 -0
  130. package/dist/api/discriminator-scan.mjs +150 -0
  131. package/dist/api/discriminator-scan.mjs.map +1 -0
  132. package/dist/api/document-declarations.cjs +28 -0
  133. package/dist/api/document-declarations.cjs.map +1 -0
  134. package/dist/api/document-declarations.mjs +26 -0
  135. package/dist/api/document-declarations.mjs.map +1 -0
  136. package/dist/api/document-refs.cjs +53 -0
  137. package/dist/api/document-refs.cjs.map +1 -0
  138. package/dist/api/document-refs.mjs +50 -0
  139. package/dist/api/document-refs.mjs.map +1 -0
  140. package/dist/api/document-run.cjs +122 -0
  141. package/dist/api/document-run.cjs.map +1 -0
  142. package/dist/api/document-run.mjs +116 -0
  143. package/dist/api/document-run.mjs.map +1 -0
  144. package/dist/api/enum-values-warnings.cjs +16 -0
  145. package/dist/api/enum-values-warnings.cjs.map +1 -0
  146. package/dist/api/enum-values-warnings.mjs +14 -0
  147. package/dist/api/enum-values-warnings.mjs.map +1 -0
  148. package/dist/api/footer-entry.cjs +18 -0
  149. package/dist/api/footer-entry.cjs.map +1 -0
  150. package/dist/api/footer-entry.mjs +15 -0
  151. package/dist/api/footer-entry.mjs.map +1 -0
  152. package/dist/api/footer-sink.cjs +53 -0
  153. package/dist/api/footer-sink.cjs.map +1 -0
  154. package/dist/api/footer-sink.mjs +51 -0
  155. package/dist/api/footer-sink.mjs.map +1 -0
  156. package/dist/api/legacy-callback-warning.cjs +25 -0
  157. package/dist/api/legacy-callback-warning.cjs.map +1 -0
  158. package/dist/api/legacy-callback-warning.mjs +22 -0
  159. package/dist/api/legacy-callback-warning.mjs.map +1 -0
  160. package/dist/api/legacy-ts-helpers.cjs +203 -0
  161. package/dist/api/legacy-ts-helpers.cjs.map +1 -0
  162. package/dist/api/legacy-ts-helpers.mjs +187 -0
  163. package/dist/api/legacy-ts-helpers.mjs.map +1 -0
  164. package/dist/api/legacy-utils.cjs +65 -0
  165. package/dist/api/legacy-utils.cjs.map +1 -0
  166. package/dist/api/legacy-utils.mjs +50 -0
  167. package/dist/api/legacy-utils.mjs.map +1 -0
  168. package/dist/api/openapi-ts.cjs +40 -0
  169. package/dist/api/openapi-ts.cjs.map +1 -0
  170. package/dist/api/openapi-ts.mjs +34 -0
  171. package/dist/api/openapi-ts.mjs.map +1 -0
  172. package/dist/api/path-template-warnings.cjs +21 -0
  173. package/dist/api/path-template-warnings.cjs.map +1 -0
  174. package/dist/api/path-template-warnings.mjs +19 -0
  175. package/dist/api/path-template-warnings.mjs.map +1 -0
  176. package/dist/api/schema-callbacks.cjs +140 -0
  177. package/dist/api/schema-callbacks.cjs.map +1 -0
  178. package/dist/api/schema-callbacks.mjs +136 -0
  179. package/dist/api/schema-callbacks.mjs.map +1 -0
  180. package/dist/api/string-to-ast.cjs +21 -0
  181. package/dist/api/string-to-ast.cjs.map +1 -0
  182. package/dist/api/string-to-ast.mjs +18 -0
  183. package/dist/api/string-to-ast.mjs.map +1 -0
  184. package/dist/api/transform-context.cjs +84 -0
  185. package/dist/api/transform-context.cjs.map +1 -0
  186. package/dist/api/transform-context.mjs +67 -0
  187. package/dist/api/transform-context.mjs.map +1 -0
  188. package/dist/api/transform-schema.cjs +80 -0
  189. package/dist/api/transform-schema.cjs.map +1 -0
  190. package/dist/api/transform-schema.mjs +75 -0
  191. package/dist/api/transform-schema.mjs.map +1 -0
  192. package/dist/api/type-helpers.cjs +85 -0
  193. package/dist/api/type-helpers.cjs.map +1 -0
  194. package/dist/api/type-helpers.mjs +66 -0
  195. package/dist/api/type-helpers.mjs.map +1 -0
  196. package/dist/api/unsupported-feature-warnings.cjs +22 -0
  197. package/dist/api/unsupported-feature-warnings.cjs.map +1 -0
  198. package/dist/api/unsupported-feature-warnings.mjs +20 -0
  199. package/dist/api/unsupported-feature-warnings.mjs.map +1 -0
  200. package/dist/application/print/comment-writer.cjs +95 -0
  201. package/dist/application/print/comment-writer.cjs.map +1 -0
  202. package/dist/application/print/comment-writer.mjs +93 -0
  203. package/dist/application/print/comment-writer.mjs.map +1 -0
  204. package/dist/application/print/declaration-printer.cjs +83 -0
  205. package/dist/application/print/declaration-printer.cjs.map +1 -0
  206. package/dist/application/print/declaration-printer.mjs +81 -0
  207. package/dist/application/print/declaration-printer.mjs.map +1 -0
  208. package/dist/application/print/literal-text.cjs +52 -0
  209. package/dist/application/print/literal-text.cjs.map +1 -0
  210. package/dist/application/print/literal-text.mjs +48 -0
  211. package/dist/application/print/literal-text.mjs.map +1 -0
  212. package/dist/application/print/print-nodes.cjs +38 -0
  213. package/dist/application/print/print-nodes.cjs.map +1 -0
  214. package/dist/application/print/print-nodes.mjs +36 -0
  215. package/dist/application/print/print-nodes.mjs.map +1 -0
  216. package/dist/application/print/print-options.cjs +6 -0
  217. package/dist/application/print/print-options.cjs.map +1 -0
  218. package/dist/application/print/print-options.mjs +4 -0
  219. package/dist/application/print/print-options.mjs.map +1 -0
  220. package/dist/application/print/text-writer.cjs +63 -0
  221. package/dist/application/print/text-writer.cjs.map +1 -0
  222. package/dist/application/print/text-writer.mjs +60 -0
  223. package/dist/application/print/text-writer.mjs.map +1 -0
  224. package/dist/application/print/type-printer.cjs +219 -0
  225. package/dist/application/print/type-printer.cjs.map +1 -0
  226. package/dist/application/print/type-printer.mjs +215 -0
  227. package/dist/application/print/type-printer.mjs.map +1 -0
  228. package/dist/application/stack-overflow.cjs +36 -0
  229. package/dist/application/stack-overflow.cjs.map +1 -0
  230. package/dist/application/stack-overflow.mjs +31 -0
  231. package/dist/application/stack-overflow.mjs.map +1 -0
  232. package/dist/application/transform/document/assignability.cjs +144 -0
  233. package/dist/application/transform/document/assignability.cjs.map +1 -0
  234. package/dist/application/transform/document/assignability.mjs +138 -0
  235. package/dist/application/transform/document/assignability.mjs.map +1 -0
  236. package/dist/application/transform/document/components.cjs +104 -0
  237. package/dist/application/transform/document/components.cjs.map +1 -0
  238. package/dist/application/transform/document/components.mjs +102 -0
  239. package/dist/application/transform/document/components.mjs.map +1 -0
  240. package/dist/application/transform/document/declared-types.cjs +66 -0
  241. package/dist/application/transform/document/declared-types.cjs.map +1 -0
  242. package/dist/application/transform/document/declared-types.mjs +63 -0
  243. package/dist/application/transform/document/declared-types.mjs.map +1 -0
  244. package/dist/application/transform/document/defs-root.cjs +18 -0
  245. package/dist/application/transform/document/defs-root.cjs.map +1 -0
  246. package/dist/application/transform/document/defs-root.mjs +16 -0
  247. package/dist/application/transform/document/defs-root.mjs.map +1 -0
  248. package/dist/application/transform/document/document-member.cjs +13 -0
  249. package/dist/application/transform/document/document-member.cjs.map +1 -0
  250. package/dist/application/transform/document/document-member.mjs +11 -0
  251. package/dist/application/transform/document/document-member.mjs.map +1 -0
  252. package/dist/application/transform/document/document.cjs +109 -0
  253. package/dist/application/transform/document/document.cjs.map +1 -0
  254. package/dist/application/transform/document/document.mjs +106 -0
  255. package/dist/application/transform/document/document.mjs.map +1 -0
  256. package/dist/application/transform/document/exploded-query.cjs +46 -0
  257. package/dist/application/transform/document/exploded-query.cjs.map +1 -0
  258. package/dist/application/transform/document/exploded-query.mjs +43 -0
  259. package/dist/application/transform/document/exploded-query.mjs.map +1 -0
  260. package/dist/application/transform/document/global-type-references.cjs +63 -0
  261. package/dist/application/transform/document/global-type-references.cjs.map +1 -0
  262. package/dist/application/transform/document/global-type-references.mjs +61 -0
  263. package/dist/application/transform/document/global-type-references.mjs.map +1 -0
  264. package/dist/application/transform/document/header.cjs +27 -0
  265. package/dist/application/transform/document/header.cjs.map +1 -0
  266. package/dist/application/transform/document/header.mjs +25 -0
  267. package/dist/application/transform/document/header.mjs.map +1 -0
  268. package/dist/application/transform/document/kept-deprecated.cjs +96 -0
  269. package/dist/application/transform/document/kept-deprecated.cjs.map +1 -0
  270. package/dist/application/transform/document/kept-deprecated.mjs +94 -0
  271. package/dist/application/transform/document/kept-deprecated.mjs.map +1 -0
  272. package/dist/application/transform/document/list-assignability.cjs +54 -0
  273. package/dist/application/transform/document/list-assignability.cjs.map +1 -0
  274. package/dist/application/transform/document/list-assignability.mjs +52 -0
  275. package/dist/application/transform/document/list-assignability.mjs.map +1 -0
  276. package/dist/application/transform/document/media-type.cjs +42 -0
  277. package/dist/application/transform/document/media-type.cjs.map +1 -0
  278. package/dist/application/transform/document/media-type.mjs +38 -0
  279. package/dist/application/transform/document/media-type.mjs.map +1 -0
  280. package/dist/application/transform/document/operation.cjs +45 -0
  281. package/dist/application/transform/document/operation.cjs.map +1 -0
  282. package/dist/application/transform/document/operation.mjs +43 -0
  283. package/dist/application/transform/document/operation.mjs.map +1 -0
  284. package/dist/application/transform/document/parameter.cjs +25 -0
  285. package/dist/application/transform/document/parameter.cjs.map +1 -0
  286. package/dist/application/transform/document/parameter.mjs +23 -0
  287. package/dist/application/transform/document/parameter.mjs.map +1 -0
  288. package/dist/application/transform/document/parameters.cjs +146 -0
  289. package/dist/application/transform/document/parameters.cjs.map +1 -0
  290. package/dist/application/transform/document/parameters.mjs +144 -0
  291. package/dist/application/transform/document/parameters.mjs.map +1 -0
  292. package/dist/application/transform/document/path-item.cjs +82 -0
  293. package/dist/application/transform/document/path-item.cjs.map +1 -0
  294. package/dist/application/transform/document/path-item.mjs +80 -0
  295. package/dist/application/transform/document/path-item.mjs.map +1 -0
  296. package/dist/application/transform/document/path-key-overlaps.cjs +107 -0
  297. package/dist/application/transform/document/path-key-overlaps.cjs.map +1 -0
  298. package/dist/application/transform/document/path-key-overlaps.mjs +105 -0
  299. package/dist/application/transform/document/path-key-overlaps.mjs.map +1 -0
  300. package/dist/application/transform/document/path-template-replace.cjs +48 -0
  301. package/dist/application/transform/document/path-template-replace.cjs.map +1 -0
  302. package/dist/application/transform/document/path-template-replace.mjs +45 -0
  303. package/dist/application/transform/document/path-template-replace.mjs.map +1 -0
  304. package/dist/application/transform/document/paths-enum.cjs +75 -0
  305. package/dist/application/transform/document/paths-enum.cjs.map +1 -0
  306. package/dist/application/transform/document/paths-enum.mjs +72 -0
  307. package/dist/application/transform/document/paths-enum.mjs.map +1 -0
  308. package/dist/application/transform/document/paths.cjs +153 -0
  309. package/dist/application/transform/document/paths.cjs.map +1 -0
  310. package/dist/application/transform/document/paths.mjs +149 -0
  311. package/dist/application/transform/document/paths.mjs.map +1 -0
  312. package/dist/application/transform/document/request-body.cjs +36 -0
  313. package/dist/application/transform/document/request-body.cjs.map +1 -0
  314. package/dist/application/transform/document/request-body.mjs +34 -0
  315. package/dist/application/transform/document/request-body.mjs.map +1 -0
  316. package/dist/application/transform/document/response.cjs +59 -0
  317. package/dist/application/transform/document/response.cjs.map +1 -0
  318. package/dist/application/transform/document/response.mjs +57 -0
  319. package/dist/application/transform/document/response.mjs.map +1 -0
  320. package/dist/application/transform/document/responses.cjs +23 -0
  321. package/dist/application/transform/document/responses.cjs.map +1 -0
  322. package/dist/application/transform/document/responses.mjs +21 -0
  323. package/dist/application/transform/document/responses.mjs.map +1 -0
  324. package/dist/application/transform/document/root-type-aliases.cjs +70 -0
  325. package/dist/application/transform/document/root-type-aliases.cjs.map +1 -0
  326. package/dist/application/transform/document/root-type-aliases.mjs +67 -0
  327. package/dist/application/transform/document/root-type-aliases.mjs.map +1 -0
  328. package/dist/application/transform/document/template-key-match.cjs +128 -0
  329. package/dist/application/transform/document/template-key-match.cjs.map +1 -0
  330. package/dist/application/transform/document/template-key-match.mjs +125 -0
  331. package/dist/application/transform/document/template-key-match.mjs.map +1 -0
  332. package/dist/application/transform/document/type-assignability.cjs +192 -0
  333. package/dist/application/transform/document/type-assignability.cjs.map +1 -0
  334. package/dist/application/transform/document/type-assignability.mjs +190 -0
  335. package/dist/application/transform/document/type-assignability.mjs.map +1 -0
  336. package/dist/application/transform/document/type-key.cjs +70 -0
  337. package/dist/application/transform/document/type-key.cjs.map +1 -0
  338. package/dist/application/transform/document/type-key.mjs +68 -0
  339. package/dist/application/transform/document/type-key.mjs.map +1 -0
  340. package/dist/application/transform/document/type-resolution.cjs +131 -0
  341. package/dist/application/transform/document/type-resolution.cjs.map +1 -0
  342. package/dist/application/transform/document/type-resolution.mjs +125 -0
  343. package/dist/application/transform/document/type-resolution.mjs.map +1 -0
  344. package/dist/application/transform/document/webhooks.cjs +19 -0
  345. package/dist/application/transform/document/webhooks.cjs.map +1 -0
  346. package/dist/application/transform/document/webhooks.mjs +17 -0
  347. package/dist/application/transform/document/webhooks.mjs.map +1 -0
  348. package/dist/application/transform/document-entries.cjs +17 -0
  349. package/dist/application/transform/document-entries.cjs.map +1 -0
  350. package/dist/application/transform/document-entries.mjs +14 -0
  351. package/dist/application/transform/document-entries.mjs.map +1 -0
  352. package/dist/application/transform/footer/document-footer.cjs +150 -0
  353. package/dist/application/transform/footer/document-footer.cjs.map +1 -0
  354. package/dist/application/transform/footer/document-footer.mjs +148 -0
  355. package/dist/application/transform/footer/document-footer.mjs.map +1 -0
  356. package/dist/application/transform/footer/enum-naming.cjs +138 -0
  357. package/dist/application/transform/footer/enum-naming.cjs.map +1 -0
  358. package/dist/application/transform/footer/enum-naming.mjs +131 -0
  359. package/dist/application/transform/footer/enum-naming.mjs.map +1 -0
  360. package/dist/application/transform/footer/enum-values-check.cjs +129 -0
  361. package/dist/application/transform/footer/enum-values-check.cjs.map +1 -0
  362. package/dist/application/transform/footer/enum-values-check.mjs +127 -0
  363. package/dist/application/transform/footer/enum-values-check.mjs.map +1 -0
  364. package/dist/application/transform/footer/evaluation.cjs +33 -0
  365. package/dist/application/transform/footer/evaluation.cjs.map +1 -0
  366. package/dist/application/transform/footer/evaluation.mjs +26 -0
  367. package/dist/application/transform/footer/evaluation.mjs.map +1 -0
  368. package/dist/application/transform/footer/shared-enum-names.cjs +60 -0
  369. package/dist/application/transform/footer/shared-enum-names.cjs.map +1 -0
  370. package/dist/application/transform/footer/shared-enum-names.mjs +57 -0
  371. package/dist/application/transform/footer/shared-enum-names.mjs.map +1 -0
  372. package/dist/application/transform/footer/type-evaluation.cjs +246 -0
  373. package/dist/application/transform/footer/type-evaluation.cjs.map +1 -0
  374. package/dist/application/transform/footer/type-evaluation.mjs +244 -0
  375. package/dist/application/transform/footer/type-evaluation.mjs.map +1 -0
  376. package/dist/application/transform/footer/type-rules.cjs +172 -0
  377. package/dist/application/transform/footer/type-rules.cjs.map +1 -0
  378. package/dist/application/transform/footer/type-rules.mjs +166 -0
  379. package/dist/application/transform/footer/type-rules.mjs.map +1 -0
  380. package/dist/application/transform/helper-types.cjs +68 -0
  381. package/dist/application/transform/helper-types.cjs.map +1 -0
  382. package/dist/application/transform/helper-types.mjs +65 -0
  383. package/dist/application/transform/helper-types.mjs.map +1 -0
  384. package/dist/application/transform/literal-type.cjs +36 -0
  385. package/dist/application/transform/literal-type.cjs.map +1 -0
  386. package/dist/application/transform/literal-type.mjs +34 -0
  387. package/dist/application/transform/literal-type.mjs.map +1 -0
  388. package/dist/application/transform/numbered-names.cjs +18 -0
  389. package/dist/application/transform/numbered-names.cjs.map +1 -0
  390. package/dist/application/transform/numbered-names.mjs +16 -0
  391. package/dist/application/transform/numbered-names.mjs.map +1 -0
  392. package/dist/application/transform/ref-pointer/generated-location.cjs +138 -0
  393. package/dist/application/transform/ref-pointer/generated-location.cjs.map +1 -0
  394. package/dist/application/transform/ref-pointer/generated-location.mjs +136 -0
  395. package/dist/application/transform/ref-pointer/generated-location.mjs.map +1 -0
  396. package/dist/application/transform/ref-pointer/generated-shape.cjs +171 -0
  397. package/dist/application/transform/ref-pointer/generated-shape.cjs.map +1 -0
  398. package/dist/application/transform/ref-pointer/generated-shape.mjs +162 -0
  399. package/dist/application/transform/ref-pointer/generated-shape.mjs.map +1 -0
  400. package/dist/application/transform/ref-pointer/inline-cycles.cjs +44 -0
  401. package/dist/application/transform/ref-pointer/inline-cycles.cjs.map +1 -0
  402. package/dist/application/transform/ref-pointer/inline-cycles.mjs +42 -0
  403. package/dist/application/transform/ref-pointer/inline-cycles.mjs.map +1 -0
  404. package/dist/application/transform/ref-pointer/original-index.cjs +62 -0
  405. package/dist/application/transform/ref-pointer/original-index.cjs.map +1 -0
  406. package/dist/application/transform/ref-pointer/original-index.mjs +60 -0
  407. package/dist/application/transform/ref-pointer/original-index.mjs.map +1 -0
  408. package/dist/application/transform/ref-pointer/pointer-type.cjs +60 -0
  409. package/dist/application/transform/ref-pointer/pointer-type.cjs.map +1 -0
  410. package/dist/application/transform/ref-pointer/pointer-type.mjs +57 -0
  411. package/dist/application/transform/ref-pointer/pointer-type.mjs.map +1 -0
  412. package/dist/application/transform/ref-pointer/pointer-walk.cjs +66 -0
  413. package/dist/application/transform/ref-pointer/pointer-walk.cjs.map +1 -0
  414. package/dist/application/transform/ref-pointer/pointer-walk.mjs +56 -0
  415. package/dist/application/transform/ref-pointer/pointer-walk.mjs.map +1 -0
  416. package/dist/application/transform/ref-pointer/typed-walk.cjs +124 -0
  417. package/dist/application/transform/ref-pointer/typed-walk.cjs.map +1 -0
  418. package/dist/application/transform/ref-pointer/typed-walk.mjs +122 -0
  419. package/dist/application/transform/ref-pointer/typed-walk.mjs.map +1 -0
  420. package/dist/application/transform/ref-type.cjs +62 -0
  421. package/dist/application/transform/ref-type.cjs.map +1 -0
  422. package/dist/application/transform/ref-type.mjs +55 -0
  423. package/dist/application/transform/ref-type.mjs.map +1 -0
  424. package/dist/application/transform/schema/access-flags.cjs +38 -0
  425. package/dist/application/transform/schema/access-flags.cjs.map +1 -0
  426. package/dist/application/transform/schema/access-flags.mjs +36 -0
  427. package/dist/application/transform/schema/access-flags.mjs.map +1 -0
  428. package/dist/application/transform/schema/array-type.cjs +136 -0
  429. package/dist/application/transform/schema/array-type.cjs.map +1 -0
  430. package/dist/application/transform/schema/array-type.mjs +134 -0
  431. package/dist/application/transform/schema/array-type.mjs.map +1 -0
  432. package/dist/application/transform/schema/composition-type.cjs +142 -0
  433. package/dist/application/transform/schema/composition-type.cjs.map +1 -0
  434. package/dist/application/transform/schema/composition-type.mjs +140 -0
  435. package/dist/application/transform/schema/composition-type.mjs.map +1 -0
  436. package/dist/application/transform/schema/core-type.cjs +86 -0
  437. package/dist/application/transform/schema/core-type.cjs.map +1 -0
  438. package/dist/application/transform/schema/core-type.mjs +84 -0
  439. package/dist/application/transform/schema/core-type.mjs.map +1 -0
  440. package/dist/application/transform/schema/discriminated-union.cjs +30 -0
  441. package/dist/application/transform/schema/discriminated-union.cjs.map +1 -0
  442. package/dist/application/transform/schema/discriminated-union.mjs +27 -0
  443. package/dist/application/transform/schema/discriminated-union.mjs.map +1 -0
  444. package/dist/application/transform/schema/discriminator-property.cjs +22 -0
  445. package/dist/application/transform/schema/discriminator-property.cjs.map +1 -0
  446. package/dist/application/transform/schema/discriminator-property.mjs +20 -0
  447. package/dist/application/transform/schema/discriminator-property.mjs.map +1 -0
  448. package/dist/application/transform/schema/enum-rule.cjs +163 -0
  449. package/dist/application/transform/schema/enum-rule.cjs.map +1 -0
  450. package/dist/application/transform/schema/enum-rule.mjs +160 -0
  451. package/dist/application/transform/schema/enum-rule.mjs.map +1 -0
  452. package/dist/application/transform/schema/inherited-discriminator.cjs +29 -0
  453. package/dist/application/transform/schema/inherited-discriminator.cjs.map +1 -0
  454. package/dist/application/transform/schema/inherited-discriminator.mjs +26 -0
  455. package/dist/application/transform/schema/inherited-discriminator.mjs.map +1 -0
  456. package/dist/application/transform/schema/object-type.cjs +186 -0
  457. package/dist/application/transform/schema/object-type.cjs.map +1 -0
  458. package/dist/application/transform/schema/object-type.mjs +182 -0
  459. package/dist/application/transform/schema/object-type.mjs.map +1 -0
  460. package/dist/application/transform/schema/presence-members.cjs +59 -0
  461. package/dist/application/transform/schema/presence-members.cjs.map +1 -0
  462. package/dist/application/transform/schema/presence-members.mjs +57 -0
  463. package/dist/application/transform/schema/presence-members.mjs.map +1 -0
  464. package/dist/application/transform/schema/required-variants.cjs +45 -0
  465. package/dist/application/transform/schema/required-variants.cjs.map +1 -0
  466. package/dist/application/transform/schema/required-variants.mjs +42 -0
  467. package/dist/application/transform/schema/required-variants.mjs.map +1 -0
  468. package/dist/application/transform/schema/schema-transform.cjs +72 -0
  469. package/dist/application/transform/schema/schema-transform.cjs.map +1 -0
  470. package/dist/application/transform/schema/schema-transform.mjs +68 -0
  471. package/dist/application/transform/schema/schema-transform.mjs.map +1 -0
  472. package/dist/application/transform/schema/unevaluated-properties.cjs +61 -0
  473. package/dist/application/transform/schema/unevaluated-properties.cjs.map +1 -0
  474. package/dist/application/transform/schema/unevaluated-properties.mjs +59 -0
  475. package/dist/application/transform/schema/unevaluated-properties.mjs.map +1 -0
  476. package/dist/application/transform/schema-comment.cjs +130 -0
  477. package/dist/application/transform/schema-comment.cjs.map +1 -0
  478. package/dist/application/transform/schema-comment.mjs +125 -0
  479. package/dist/application/transform/schema-comment.mjs.map +1 -0
  480. package/dist/application/transform/shared-types.cjs +8 -0
  481. package/dist/application/transform/shared-types.cjs.map +1 -0
  482. package/dist/application/transform/shared-types.mjs +6 -0
  483. package/dist/application/transform/shared-types.mjs.map +1 -0
  484. package/dist/application/transform/type-combinators.cjs +49 -0
  485. package/dist/application/transform/type-combinators.cjs.map +1 -0
  486. package/dist/application/transform/type-combinators.mjs +42 -0
  487. package/dist/application/transform/type-combinators.mjs.map +1 -0
  488. package/dist/cli/cli-arguments.cjs +145 -0
  489. package/dist/cli/cli-arguments.cjs.map +1 -0
  490. package/dist/cli/cli-arguments.mjs +137 -0
  491. package/dist/cli/cli-arguments.mjs.map +1 -0
  492. package/dist/cli/cli-errors.cjs +81 -0
  493. package/dist/cli/cli-errors.cjs.map +1 -0
  494. package/dist/cli/cli-errors.mjs +77 -0
  495. package/dist/cli/cli-errors.mjs.map +1 -0
  496. package/dist/cli/cli-output.cjs +42 -0
  497. package/dist/cli/cli-output.cjs.map +1 -0
  498. package/dist/cli/cli-output.mjs +35 -0
  499. package/dist/cli/cli-output.mjs.map +1 -0
  500. package/dist/cli/docs-links.cjs +6 -0
  501. package/dist/cli/docs-links.cjs.map +1 -0
  502. package/dist/cli/docs-links.mjs +4 -0
  503. package/dist/cli/docs-links.mjs.map +1 -0
  504. package/dist/cli/fix-option.cjs +19 -0
  505. package/dist/cli/fix-option.cjs.map +1 -0
  506. package/dist/cli/fix-option.mjs +16 -0
  507. package/dist/cli/fix-option.mjs.map +1 -0
  508. package/dist/cli/help-text.cjs +44 -0
  509. package/dist/cli/help-text.cjs.map +1 -0
  510. package/dist/cli/help-text.mjs +42 -0
  511. package/dist/cli/help-text.mjs.map +1 -0
  512. package/dist/cli/main.cjs +67 -0
  513. package/dist/cli/main.cjs.map +1 -0
  514. package/dist/cli/main.d.cts +2 -0
  515. package/dist/cli/main.d.mts +2 -0
  516. package/dist/cli/main.d.ts +2 -0
  517. package/dist/cli/main.mjs +59 -0
  518. package/dist/cli/main.mjs.map +1 -0
  519. package/dist/cli/redocly-apis.cjs +69 -0
  520. package/dist/cli/redocly-apis.cjs.map +1 -0
  521. package/dist/cli/redocly-apis.mjs +66 -0
  522. package/dist/cli/redocly-apis.mjs.map +1 -0
  523. package/dist/cli/ref-limits.cjs +14 -0
  524. package/dist/cli/ref-limits.cjs.map +1 -0
  525. package/dist/cli/ref-limits.mjs +12 -0
  526. package/dist/cli/ref-limits.mjs.map +1 -0
  527. package/dist/cli/run-cli.cjs +113 -0
  528. package/dist/cli/run-cli.cjs.map +1 -0
  529. package/dist/cli/run-cli.mjs +111 -0
  530. package/dist/cli/run-cli.mjs.map +1 -0
  531. package/dist/domain/assert-never.cjs +8 -0
  532. package/dist/domain/assert-never.cjs.map +1 -0
  533. package/dist/domain/assert-never.mjs +6 -0
  534. package/dist/domain/assert-never.mjs.map +1 -0
  535. package/dist/domain/errors.cjs +52 -0
  536. package/dist/domain/errors.cjs.map +1 -0
  537. package/dist/domain/errors.mjs +48 -0
  538. package/dist/domain/errors.mjs.map +1 -0
  539. package/dist/domain/ir/constructors.cjs +93 -0
  540. package/dist/domain/ir/constructors.cjs.map +1 -0
  541. package/dist/domain/ir/constructors.mjs +74 -0
  542. package/dist/domain/ir/constructors.mjs.map +1 -0
  543. package/dist/domain/ir/identifier-text.cjs +29 -0
  544. package/dist/domain/ir/identifier-text.cjs.map +1 -0
  545. package/dist/domain/ir/identifier-text.mjs +25 -0
  546. package/dist/domain/ir/identifier-text.mjs.map +1 -0
  547. package/dist/domain/ir/newer-identifier-ranges.cjs +109 -0
  548. package/dist/domain/ir/newer-identifier-ranges.cjs.map +1 -0
  549. package/dist/domain/ir/newer-identifier-ranges.mjs +106 -0
  550. package/dist/domain/ir/newer-identifier-ranges.mjs.map +1 -0
  551. package/dist/domain/ir/normalize.cjs +32 -0
  552. package/dist/domain/ir/normalize.cjs.map +1 -0
  553. package/dist/domain/ir/normalize.mjs +29 -0
  554. package/dist/domain/ir/normalize.mjs.map +1 -0
  555. package/dist/domain/ir/property-name.cjs +19 -0
  556. package/dist/domain/ir/property-name.cjs.map +1 -0
  557. package/dist/domain/ir/property-name.mjs +16 -0
  558. package/dist/domain/ir/property-name.mjs.map +1 -0
  559. package/dist/domain/ir/raw-text-escapes.cjs +25 -0
  560. package/dist/domain/ir/raw-text-escapes.cjs.map +1 -0
  561. package/dist/domain/ir/raw-text-escapes.mjs +22 -0
  562. package/dist/domain/ir/raw-text-escapes.mjs.map +1 -0
  563. package/dist/domain/openapi/admitted-values.cjs +75 -0
  564. package/dist/domain/openapi/admitted-values.cjs.map +1 -0
  565. package/dist/domain/openapi/admitted-values.mjs +72 -0
  566. package/dist/domain/openapi/admitted-values.mjs.map +1 -0
  567. package/dist/domain/openapi/alias-expansion.cjs +50 -0
  568. package/dist/domain/openapi/alias-expansion.cjs.map +1 -0
  569. package/dist/domain/openapi/alias-expansion.mjs +45 -0
  570. package/dist/domain/openapi/alias-expansion.mjs.map +1 -0
  571. package/dist/domain/openapi/binary-content.cjs +48 -0
  572. package/dist/domain/openapi/binary-content.cjs.map +1 -0
  573. package/dist/domain/openapi/binary-content.mjs +45 -0
  574. package/dist/domain/openapi/binary-content.mjs.map +1 -0
  575. package/dist/domain/openapi/components-object.cjs +29 -0
  576. package/dist/domain/openapi/components-object.cjs.map +1 -0
  577. package/dist/domain/openapi/components-object.mjs +24 -0
  578. package/dist/domain/openapi/components-object.mjs.map +1 -0
  579. package/dist/domain/openapi/discriminated-union.cjs +68 -0
  580. package/dist/domain/openapi/discriminated-union.cjs.map +1 -0
  581. package/dist/domain/openapi/discriminated-union.mjs +62 -0
  582. package/dist/domain/openapi/discriminated-union.mjs.map +1 -0
  583. package/dist/domain/openapi/discriminator-conflicts.cjs +143 -0
  584. package/dist/domain/openapi/discriminator-conflicts.cjs.map +1 -0
  585. package/dist/domain/openapi/discriminator-conflicts.mjs +141 -0
  586. package/dist/domain/openapi/discriminator-conflicts.mjs.map +1 -0
  587. package/dist/domain/openapi/json-pointer.cjs +31 -0
  588. package/dist/domain/openapi/json-pointer.cjs.map +1 -0
  589. package/dist/domain/openapi/json-pointer.mjs +27 -0
  590. package/dist/domain/openapi/json-pointer.mjs.map +1 -0
  591. package/dist/domain/openapi/media-type-object.cjs +14 -0
  592. package/dist/domain/openapi/media-type-object.cjs.map +1 -0
  593. package/dist/domain/openapi/media-type-object.mjs +11 -0
  594. package/dist/domain/openapi/media-type-object.mjs.map +1 -0
  595. package/dist/domain/openapi/parameter-object.cjs +13 -0
  596. package/dist/domain/openapi/parameter-object.cjs.map +1 -0
  597. package/dist/domain/openapi/parameter-object.mjs +10 -0
  598. package/dist/domain/openapi/parameter-object.mjs.map +1 -0
  599. package/dist/domain/openapi/path-item-object.cjs +35 -0
  600. package/dist/domain/openapi/path-item-object.cjs.map +1 -0
  601. package/dist/domain/openapi/path-item-object.mjs +30 -0
  602. package/dist/domain/openapi/path-item-object.mjs.map +1 -0
  603. package/dist/domain/openapi/path-templates.cjs +23 -0
  604. package/dist/domain/openapi/path-templates.cjs.map +1 -0
  605. package/dist/domain/openapi/path-templates.mjs +21 -0
  606. package/dist/domain/openapi/path-templates.mjs.map +1 -0
  607. package/dist/domain/openapi/unsupported-features.cjs +87 -0
  608. package/dist/domain/openapi/unsupported-features.cjs.map +1 -0
  609. package/dist/domain/openapi/unsupported-features.mjs +84 -0
  610. package/dist/domain/openapi/unsupported-features.mjs.map +1 -0
  611. package/dist/domain/output-fixes.cjs +101 -0
  612. package/dist/domain/output-fixes.cjs.map +1 -0
  613. package/dist/domain/output-fixes.mjs +94 -0
  614. package/dist/domain/output-fixes.mjs.map +1 -0
  615. package/dist/domain/warnings.cjs +15 -0
  616. package/dist/domain/warnings.cjs.map +1 -0
  617. package/dist/domain/warnings.mjs +12 -0
  618. package/dist/domain/warnings.mjs.map +1 -0
  619. package/dist/index.cjs +98 -0
  620. package/dist/index.cjs.map +1 -0
  621. package/dist/index.d.cts +841 -0
  622. package/dist/index.d.mts +841 -0
  623. package/dist/index.d.ts +841 -0
  624. package/dist/index.mjs +27 -0
  625. package/dist/index.mjs.map +1 -0
  626. package/dist/transform/components-object.cjs +15 -0
  627. package/dist/transform/components-object.cjs.map +1 -0
  628. package/dist/transform/components-object.mjs +11 -0
  629. package/dist/transform/components-object.mjs.map +1 -0
  630. package/dist/transform/header-object.cjs +12 -0
  631. package/dist/transform/header-object.cjs.map +1 -0
  632. package/dist/transform/header-object.mjs +10 -0
  633. package/dist/transform/header-object.mjs.map +1 -0
  634. package/dist/transform/media-type-object.cjs +12 -0
  635. package/dist/transform/media-type-object.cjs.map +1 -0
  636. package/dist/transform/media-type-object.mjs +10 -0
  637. package/dist/transform/media-type-object.mjs.map +1 -0
  638. package/dist/transform/operation-object.cjs +26 -0
  639. package/dist/transform/operation-object.cjs.map +1 -0
  640. package/dist/transform/operation-object.mjs +21 -0
  641. package/dist/transform/operation-object.mjs.map +1 -0
  642. package/dist/transform/parameter-object.cjs +12 -0
  643. package/dist/transform/parameter-object.cjs.map +1 -0
  644. package/dist/transform/parameter-object.mjs +10 -0
  645. package/dist/transform/parameter-object.mjs.map +1 -0
  646. package/dist/transform/path-item-object.cjs +12 -0
  647. package/dist/transform/path-item-object.cjs.map +1 -0
  648. package/dist/transform/path-item-object.mjs +10 -0
  649. package/dist/transform/path-item-object.mjs.map +1 -0
  650. package/dist/transform/paths-object.cjs +11 -0
  651. package/dist/transform/paths-object.cjs.map +1 -0
  652. package/dist/transform/paths-object.mjs +9 -0
  653. package/dist/transform/paths-object.mjs.map +1 -0
  654. package/dist/transform/request-body-object.cjs +12 -0
  655. package/dist/transform/request-body-object.cjs.map +1 -0
  656. package/dist/transform/request-body-object.mjs +10 -0
  657. package/dist/transform/request-body-object.mjs.map +1 -0
  658. package/dist/transform/response-object.cjs +12 -0
  659. package/dist/transform/response-object.cjs.map +1 -0
  660. package/dist/transform/response-object.mjs +10 -0
  661. package/dist/transform/response-object.mjs.map +1 -0
  662. package/dist/transform/responses-object.cjs +12 -0
  663. package/dist/transform/responses-object.cjs.map +1 -0
  664. package/dist/transform/responses-object.mjs +10 -0
  665. package/dist/transform/responses-object.mjs.map +1 -0
  666. package/dist/transform/schema-object.cjs +21 -0
  667. package/dist/transform/schema-object.cjs.map +1 -0
  668. package/dist/transform/schema-object.mjs +16 -0
  669. package/dist/transform/schema-object.mjs.map +1 -0
  670. package/package.json +115 -4
  671. package/src/adapters/node-file-system/node-file-system.ts +44 -0
  672. package/src/adapters/redocly-loader/alias-limit.ts +20 -0
  673. package/src/adapters/redocly-loader/allowed-hosts.ts +62 -0
  674. package/src/adapters/redocly-loader/bundled-ref-repair.ts +65 -0
  675. package/src/adapters/redocly-loader/malformed-refs.ts +61 -0
  676. package/src/adapters/redocly-loader/redocly-config-source.ts +78 -0
  677. package/src/adapters/redocly-loader/redocly-schema-loader.ts +262 -0
  678. package/src/adapters/redocly-loader/ref-access.ts +146 -0
  679. package/src/adapters/redocly-loader/ref-holders.ts +43 -0
  680. package/src/adapters/redocly-loader/remote-fetch.ts +104 -0
  681. package/src/adapters/redocly-loader/schema-load-errors.ts +124 -0
  682. package/src/adapters/redocly-loader/schema-source.ts +151 -0
  683. package/src/adapters/redocly-loader/unsupported-keys.ts +102 -0
  684. package/src/adapters/terminal-logger/terminal-logger.ts +98 -0
  685. package/src/adapters/type-ast-bridge/footer-nodes.ts +38 -0
  686. package/src/adapters/type-ast-bridge/ir-declarations-to-typescript.ts +100 -0
  687. package/src/adapters/type-ast-bridge/ir-to-typescript.ts +223 -0
  688. package/src/adapters/type-ast-bridge/lazy-node.ts +24 -0
  689. package/src/adapters/type-ast-bridge/load-typescript.ts +84 -0
  690. package/src/adapters/type-ast-bridge/print-typescript.ts +33 -0
  691. package/src/adapters/type-ast-bridge/typescript-raw-text.ts +49 -0
  692. package/src/adapters/type-ast-bridge/typescript-to-ir.ts +294 -0
  693. package/src/adapters/type-ast-bridge/typescript-types.ts +8 -0
  694. package/src/api/ast-to-string.ts +59 -0
  695. package/src/api/comment-header.ts +7 -0
  696. package/src/api/default-ports.ts +44 -0
  697. package/src/api/discriminator-conflict-warnings.ts +43 -0
  698. package/src/api/discriminator-enum-names.ts +26 -0
  699. package/src/api/discriminator-enum-parent.ts +129 -0
  700. package/src/api/discriminator-enum.ts +115 -0
  701. package/src/api/discriminator-other-owners.ts +97 -0
  702. package/src/api/discriminator-patch.ts +147 -0
  703. package/src/api/discriminator-scan.ts +260 -0
  704. package/src/api/document-declarations.ts +41 -0
  705. package/src/api/document-refs.ts +71 -0
  706. package/src/api/document-run.ts +177 -0
  707. package/src/api/enum-values-warnings.ts +21 -0
  708. package/src/api/footer-entry.ts +23 -0
  709. package/src/api/footer-sink.ts +67 -0
  710. package/src/api/legacy-callback-warning.ts +29 -0
  711. package/src/api/legacy-ts-helpers.ts +311 -0
  712. package/src/api/legacy-utils.ts +118 -0
  713. package/src/api/openapi-ts.ts +62 -0
  714. package/src/api/path-template-warnings.ts +27 -0
  715. package/src/api/schema-callbacks.ts +211 -0
  716. package/src/api/string-to-ast.ts +27 -0
  717. package/src/api/transform-context.ts +93 -0
  718. package/src/api/transform-schema.ts +123 -0
  719. package/src/api/type-helpers.ts +130 -0
  720. package/src/api/unsupported-feature-warnings.ts +33 -0
  721. package/src/application/ports/file-system.ts +12 -0
  722. package/src/application/ports/logger.ts +16 -0
  723. package/src/application/ports/redocly-config-source.ts +20 -0
  724. package/src/application/ports/schema-loader.ts +32 -0
  725. package/src/application/print/comment-writer.ts +91 -0
  726. package/src/application/print/declaration-printer.ts +100 -0
  727. package/src/application/print/literal-text.ts +62 -0
  728. package/src/application/print/print-nodes.ts +62 -0
  729. package/src/application/print/print-options.ts +11 -0
  730. package/src/application/print/text-writer.ts +83 -0
  731. package/src/application/print/type-printer.ts +287 -0
  732. package/src/application/stack-overflow.ts +54 -0
  733. package/src/application/transform/document/assignability.ts +203 -0
  734. package/src/application/transform/document/components.ts +189 -0
  735. package/src/application/transform/document/declared-types.ts +93 -0
  736. package/src/application/transform/document/defs-root.ts +25 -0
  737. package/src/application/transform/document/document-member.ts +20 -0
  738. package/src/application/transform/document/document.ts +215 -0
  739. package/src/application/transform/document/exploded-query.ts +91 -0
  740. package/src/application/transform/document/global-type-references.ts +78 -0
  741. package/src/application/transform/document/header.ts +34 -0
  742. package/src/application/transform/document/kept-deprecated.ts +135 -0
  743. package/src/application/transform/document/list-assignability.ts +87 -0
  744. package/src/application/transform/document/media-type.ts +78 -0
  745. package/src/application/transform/document/operation.ts +64 -0
  746. package/src/application/transform/document/parameter.ts +45 -0
  747. package/src/application/transform/document/parameters.ts +265 -0
  748. package/src/application/transform/document/path-item.ts +168 -0
  749. package/src/application/transform/document/path-key-overlaps.ts +201 -0
  750. package/src/application/transform/document/path-template-replace.ts +90 -0
  751. package/src/application/transform/document/paths-enum.ts +127 -0
  752. package/src/application/transform/document/paths.ts +273 -0
  753. package/src/application/transform/document/request-body.ts +50 -0
  754. package/src/application/transform/document/response.ts +109 -0
  755. package/src/application/transform/document/responses.ts +29 -0
  756. package/src/application/transform/document/root-type-aliases.ts +107 -0
  757. package/src/application/transform/document/template-key-match.ts +183 -0
  758. package/src/application/transform/document/type-assignability.ts +268 -0
  759. package/src/application/transform/document/type-key.ts +80 -0
  760. package/src/application/transform/document/type-resolution.ts +163 -0
  761. package/src/application/transform/document/webhooks.ts +22 -0
  762. package/src/application/transform/document-entries.ts +28 -0
  763. package/src/application/transform/footer/document-footer.ts +212 -0
  764. package/src/application/transform/footer/enum-naming.ts +210 -0
  765. package/src/application/transform/footer/enum-values-check.ts +171 -0
  766. package/src/application/transform/footer/evaluation.ts +47 -0
  767. package/src/application/transform/footer/shared-enum-names.ts +86 -0
  768. package/src/application/transform/footer/type-evaluation.ts +294 -0
  769. package/src/application/transform/footer/type-rules.ts +269 -0
  770. package/src/application/transform/helper-types.ts +92 -0
  771. package/src/application/transform/literal-type.ts +54 -0
  772. package/src/application/transform/numbered-names.ts +20 -0
  773. package/src/application/transform/ref-pointer/generated-location.ts +211 -0
  774. package/src/application/transform/ref-pointer/generated-shape.ts +275 -0
  775. package/src/application/transform/ref-pointer/inline-cycles.ts +56 -0
  776. package/src/application/transform/ref-pointer/original-index.ts +95 -0
  777. package/src/application/transform/ref-pointer/pointer-type.ts +92 -0
  778. package/src/application/transform/ref-pointer/pointer-walk.ts +96 -0
  779. package/src/application/transform/ref-pointer/typed-walk.ts +192 -0
  780. package/src/application/transform/ref-type.ts +102 -0
  781. package/src/application/transform/schema/access-flags.ts +63 -0
  782. package/src/application/transform/schema/array-type.ts +213 -0
  783. package/src/application/transform/schema/composition-type.ts +255 -0
  784. package/src/application/transform/schema/core-type.ts +119 -0
  785. package/src/application/transform/schema/discriminated-union.ts +58 -0
  786. package/src/application/transform/schema/discriminator-property.ts +33 -0
  787. package/src/application/transform/schema/enum-rule.ts +280 -0
  788. package/src/application/transform/schema/inherited-discriminator.ts +54 -0
  789. package/src/application/transform/schema/object-type.ts +289 -0
  790. package/src/application/transform/schema/presence-members.ts +96 -0
  791. package/src/application/transform/schema/required-variants.ts +88 -0
  792. package/src/application/transform/schema/schema-context.ts +136 -0
  793. package/src/application/transform/schema/schema-rule.ts +29 -0
  794. package/src/application/transform/schema/schema-transform.ts +99 -0
  795. package/src/application/transform/schema/unevaluated-properties.ts +105 -0
  796. package/src/application/transform/schema-comment.ts +196 -0
  797. package/src/application/transform/shared-types.ts +9 -0
  798. package/src/application/transform/transform-context.ts +51 -0
  799. package/src/application/transform/type-combinators.ts +57 -0
  800. package/src/cli/cli-arguments.ts +208 -0
  801. package/src/cli/cli-dependencies.ts +47 -0
  802. package/src/cli/cli-errors.ts +127 -0
  803. package/src/cli/cli-output.ts +67 -0
  804. package/src/cli/docs-links.ts +6 -0
  805. package/src/cli/fix-option.ts +29 -0
  806. package/src/cli/help-text.ts +52 -0
  807. package/src/cli/main.ts +73 -0
  808. package/src/cli/redocly-apis.ts +95 -0
  809. package/src/cli/ref-limits.ts +16 -0
  810. package/src/cli/run-cli.ts +131 -0
  811. package/src/domain/assert-never.ts +8 -0
  812. package/src/domain/errors.ts +76 -0
  813. package/src/domain/ir/constructors.ts +142 -0
  814. package/src/domain/ir/identifier-text.ts +49 -0
  815. package/src/domain/ir/newer-identifier-ranges.ts +109 -0
  816. package/src/domain/ir/nodes.ts +225 -0
  817. package/src/domain/ir/normalize.ts +51 -0
  818. package/src/domain/ir/property-name.ts +28 -0
  819. package/src/domain/ir/raw-text-escapes.ts +37 -0
  820. package/src/domain/openapi/admitted-values.ts +113 -0
  821. package/src/domain/openapi/alias-expansion.ts +72 -0
  822. package/src/domain/openapi/binary-content.ts +74 -0
  823. package/src/domain/openapi/components-object.ts +52 -0
  824. package/src/domain/openapi/discriminated-union.ts +109 -0
  825. package/src/domain/openapi/discriminator-conflicts.ts +251 -0
  826. package/src/domain/openapi/document-object.ts +12 -0
  827. package/src/domain/openapi/header-object.ts +9 -0
  828. package/src/domain/openapi/json-pointer.ts +46 -0
  829. package/src/domain/openapi/media-type-object.ts +26 -0
  830. package/src/domain/openapi/operation-object.ts +13 -0
  831. package/src/domain/openapi/parameter-object.ts +34 -0
  832. package/src/domain/openapi/path-item-object.ts +70 -0
  833. package/src/domain/openapi/path-templates.ts +31 -0
  834. package/src/domain/openapi/request-body-object.ts +7 -0
  835. package/src/domain/openapi/response-object.ts +14 -0
  836. package/src/domain/openapi/schema-object.ts +61 -0
  837. package/src/domain/openapi/unsupported-features.ts +139 -0
  838. package/src/domain/output-fixes.ts +136 -0
  839. package/src/domain/warnings.ts +20 -0
  840. package/src/index.ts +67 -0
  841. package/src/transform/components-object.ts +27 -0
  842. package/src/transform/header-object.ts +19 -0
  843. package/src/transform/media-type-object.ts +19 -0
  844. package/src/transform/operation-object.ts +36 -0
  845. package/src/transform/parameter-object.ts +19 -0
  846. package/src/transform/parameters-array.ts +19 -0
  847. package/src/transform/path-item-object.ts +22 -0
  848. package/src/transform/paths-enum.ts +8 -0
  849. package/src/transform/paths-object.ts +15 -0
  850. package/src/transform/request-body-object.ts +19 -0
  851. package/src/transform/response-object.ts +19 -0
  852. package/src/transform/responses-object.ts +19 -0
  853. package/src/transform/schema-object.ts +36 -0
  854. package/src/transform/webhooks-object.ts +15 -0
  855. package/src/types/generator-options.ts +278 -0
  856. package/src/types/openapi-common.ts +100 -0
  857. package/src/types/openapi-document.ts +196 -0
  858. package/src/types/openapi-path-item.ts +130 -0
  859. package/src/types/openapi-request.ts +209 -0
  860. package/src/types/openapi-response.ts +81 -0
  861. package/src/types/openapi-schema.ts +169 -0
  862. package/src/types/openapi-security.ts +116 -0
  863. package/src/types.ts +12 -0
@@ -0,0 +1,81 @@
1
+ 'use strict';
2
+
3
+ const errors = require('../domain/errors.cjs');
4
+
5
+ const EXIT_CODES = {
6
+ SUCCESS: 0,
7
+ /** `--check` found output that differs from the generated types (as in the original CLI). */
8
+ OUTPUT_STALE: 1,
9
+ /** A flag, the Redocly config, the environment or a callback is wrong. */
10
+ USAGE: 2,
11
+ /** The OpenAPI document cannot be read, is invalid, or cannot be converted. */
12
+ SCHEMA: 3,
13
+ /** An output file cannot be read or written. */
14
+ OUTPUT: 4,
15
+ /** An unexpected failure: a bug in the generator (sysexits `EX_SOFTWARE`). */
16
+ INTERNAL: 70
17
+ };
18
+ function schemaInvalidMessage(error) {
19
+ const count = Array.isArray(error.details.problems) ? error.details.problems.length : 1;
20
+ return `The OpenAPI document has ${count} ${count === 1 ? "error" : "errors"} (see above)`;
21
+ }
22
+ function loadFailedMessage(error) {
23
+ const reason = error.cause instanceof Error ? error.cause.cause : void 0;
24
+ if (!(reason instanceof Error)) {
25
+ return error.message;
26
+ }
27
+ return `${error.message}: ${reason.message} (${String(error.details.source)})`;
28
+ }
29
+ const YAML_DEPTH_LIMIT_MESSAGE = /nesting exceeded maxDepth \((\d+)\)/;
30
+ function parseFailedMessage(error) {
31
+ const limit = YAML_DEPTH_LIMIT_MESSAGE.exec(error.message)?.[1];
32
+ if (limit === void 0) {
33
+ return error.message;
34
+ }
35
+ return `${error.message}. The YAML parser reads at most ${limit} nested levels: move nested schemas to \`components\` and reference them with \`$ref\``;
36
+ }
37
+ const CLI_ERROR_REPORTS = {
38
+ SCHEMA_SOURCE_EMPTY: { exitCode: EXIT_CODES.SCHEMA },
39
+ SCHEMA_SOURCE_INVALID: { exitCode: EXIT_CODES.SCHEMA },
40
+ SCHEMA_LOAD_FAILED: { exitCode: EXIT_CODES.SCHEMA, message: loadFailedMessage },
41
+ SCHEMA_PARSE_FAILED: { exitCode: EXIT_CODES.SCHEMA, message: parseFailedMessage },
42
+ SCHEMA_VERSION_UNSUPPORTED: { exitCode: EXIT_CODES.SCHEMA },
43
+ SCHEMA_INVALID: { exitCode: EXIT_CODES.SCHEMA, message: schemaInvalidMessage },
44
+ SCHEMA_REF_INVALID: { exitCode: EXIT_CODES.SCHEMA },
45
+ SCHEMA_REF_FORBIDDEN: { exitCode: EXIT_CODES.SCHEMA },
46
+ SCHEMA_OBJECT_INVALID: { exitCode: EXIT_CODES.SCHEMA },
47
+ SCHEMA_PROPERTY_INVALID: { exitCode: EXIT_CODES.SCHEMA },
48
+ SCHEMA_TOO_DEEP: { exitCode: EXIT_CODES.SCHEMA },
49
+ SCHEMA_KEY_UNSUPPORTED: { exitCode: EXIT_CODES.SCHEMA },
50
+ ENUM_NAME_EMPTY: { exitCode: EXIT_CODES.SCHEMA },
51
+ CALLBACK_RESULT_UNREADABLE: { exitCode: EXIT_CODES.USAGE },
52
+ OPTION_FIX_UNKNOWN: { exitCode: EXIT_CODES.USAGE },
53
+ TYPESCRIPT_NOT_FOUND: { exitCode: EXIT_CODES.USAGE },
54
+ CLI_FLAG_REMOVED: { exitCode: EXIT_CODES.USAGE },
55
+ CLI_GLOB_UNSUPPORTED: { exitCode: EXIT_CODES.USAGE },
56
+ CLI_CONFIG_NOT_FOUND: { exitCode: EXIT_CODES.USAGE },
57
+ CLI_CONFIG_INVALID: { exitCode: EXIT_CODES.USAGE },
58
+ CLI_CONFIG_OUTPUT_MISSING: { exitCode: EXIT_CODES.USAGE },
59
+ CLI_CHECK_OUTPUT_MISSING: { exitCode: EXIT_CODES.USAGE },
60
+ CLI_INPUT_MISSING: { exitCode: EXIT_CODES.USAGE },
61
+ OUTPUT_STALE: { exitCode: EXIT_CODES.OUTPUT_STALE },
62
+ OUTPUT_READ_FAILED: { exitCode: EXIT_CODES.OUTPUT },
63
+ OUTPUT_WRITE_FAILED: { exitCode: EXIT_CODES.OUTPUT }
64
+ };
65
+ function describeCliFailure(error) {
66
+ if (!errors.isOpenAPITypesafeError(error)) {
67
+ const text = error instanceof Error ? error.stack ?? error.message : String(error);
68
+ return { exitCode: EXIT_CODES.INTERNAL, message: `Unexpected error: ${text}` };
69
+ }
70
+ const report = CLI_ERROR_REPORTS[error.code];
71
+ const message = report.message?.(error) ?? error.message;
72
+ return { exitCode: report.exitCode, message: `${message} (${error.code})` };
73
+ }
74
+ function cliError(code, message, cause) {
75
+ return new errors.OpenAPITypesafeError({ code: errors.ERROR_CODES[code], message, cause });
76
+ }
77
+
78
+ exports.EXIT_CODES = EXIT_CODES;
79
+ exports.cliError = cliError;
80
+ exports.describeCliFailure = describeCliFailure;
81
+ //# sourceMappingURL=cli-errors.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-errors.cjs","sources":["../../src/cli/cli-errors.ts"],"sourcesContent":["import {\n ERROR_CODES,\n type ErrorCode,\n isOpenAPITypesafeError,\n OpenAPITypesafeError,\n} from \"../domain/errors.js\";\n\n/**\n * How the CLI reports a failure (ENGINEERING_PLAN 4.6, ADR-011): each error code maps to a process\n * exit code and the line printed for it. The table is exhaustive, so a new error code does not\n * compile until the CLI handles it.\n */\n\n/** Process exit codes of the CLI, documented in docs/cli.md. */\nexport const EXIT_CODES = {\n SUCCESS: 0,\n /** `--check` found output that differs from the generated types (as in the original CLI). */\n OUTPUT_STALE: 1,\n /** A flag, the Redocly config, the environment or a callback is wrong. */\n USAGE: 2,\n /** The OpenAPI document cannot be read, is invalid, or cannot be converted. */\n SCHEMA: 3,\n /** An output file cannot be read or written. */\n OUTPUT: 4,\n /** An unexpected failure: a bug in the generator (sysexits `EX_SOFTWARE`). */\n INTERNAL: 70,\n} as const;\n\nexport type ExitCode = (typeof EXIT_CODES)[keyof typeof EXIT_CODES];\n\ninterface CliErrorReport {\n readonly exitCode: ExitCode;\n /** The printed text; the error's own message when absent. */\n readonly message?: (error: OpenAPITypesafeError) => string;\n}\n\n/** Problems are printed one by one while linting, so the summary only counts them. */\nfunction schemaInvalidMessage(error: OpenAPITypesafeError): string {\n const count = Array.isArray(error.details.problems) ? error.details.problems.length : 1;\n return `The OpenAPI document has ${count} ${count === 1 ? \"error\" : \"errors\"} (see above)`;\n}\n\n/**\n * Node's `fetch` fails with only \"fetch failed\"; the network reason (refused, DNS, TLS) is the\n * cause of that error. The Node API keeps the original message, so only the CLI adds it.\n */\nfunction loadFailedMessage(error: OpenAPITypesafeError): string {\n const reason = error.cause instanceof Error ? error.cause.cause : undefined;\n if (!(reason instanceof Error)) {\n return error.message;\n }\n // `loadFailedError`, the only source of this code, always sets the source.\n return `${error.message}: ${reason.message} (${String(error.details.source)})`;\n}\n\n/** The message js-yaml throws at its nesting limit (docs/security/threat-model.md T2). */\nconst YAML_DEPTH_LIMIT_MESSAGE = /nesting exceeded maxDepth \\((\\d+)\\)/;\n\n/** The parser's message says the limit, not how to stay under it. */\nfunction parseFailedMessage(error: OpenAPITypesafeError): string {\n const limit = YAML_DEPTH_LIMIT_MESSAGE.exec(error.message)?.[1];\n if (limit === undefined) {\n return error.message;\n }\n return (\n `${error.message}. The YAML parser reads at most ${limit} nested levels: ` +\n \"move nested schemas to `components` and reference them with `$ref`\"\n );\n}\n\nconst CLI_ERROR_REPORTS: Readonly<Record<ErrorCode, CliErrorReport>> = {\n SCHEMA_SOURCE_EMPTY: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_SOURCE_INVALID: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_LOAD_FAILED: { exitCode: EXIT_CODES.SCHEMA, message: loadFailedMessage },\n SCHEMA_PARSE_FAILED: { exitCode: EXIT_CODES.SCHEMA, message: parseFailedMessage },\n SCHEMA_VERSION_UNSUPPORTED: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_INVALID: { exitCode: EXIT_CODES.SCHEMA, message: schemaInvalidMessage },\n SCHEMA_REF_INVALID: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_REF_FORBIDDEN: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_OBJECT_INVALID: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_PROPERTY_INVALID: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_TOO_DEEP: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_KEY_UNSUPPORTED: { exitCode: EXIT_CODES.SCHEMA },\n ENUM_NAME_EMPTY: { exitCode: EXIT_CODES.SCHEMA },\n CALLBACK_RESULT_UNREADABLE: { exitCode: EXIT_CODES.USAGE },\n OPTION_FIX_UNKNOWN: { exitCode: EXIT_CODES.USAGE },\n TYPESCRIPT_NOT_FOUND: { exitCode: EXIT_CODES.USAGE },\n CLI_FLAG_REMOVED: { exitCode: EXIT_CODES.USAGE },\n CLI_GLOB_UNSUPPORTED: { exitCode: EXIT_CODES.USAGE },\n CLI_CONFIG_NOT_FOUND: { exitCode: EXIT_CODES.USAGE },\n CLI_CONFIG_INVALID: { exitCode: EXIT_CODES.USAGE },\n CLI_CONFIG_OUTPUT_MISSING: { exitCode: EXIT_CODES.USAGE },\n CLI_CHECK_OUTPUT_MISSING: { exitCode: EXIT_CODES.USAGE },\n CLI_INPUT_MISSING: { exitCode: EXIT_CODES.USAGE },\n OUTPUT_STALE: { exitCode: EXIT_CODES.OUTPUT_STALE },\n OUTPUT_READ_FAILED: { exitCode: EXIT_CODES.OUTPUT },\n OUTPUT_WRITE_FAILED: { exitCode: EXIT_CODES.OUTPUT },\n};\n\n/** What the CLI prints and returns for a thrown value. */\nexport interface CliFailure {\n readonly exitCode: ExitCode;\n readonly message: string;\n}\n\n/**\n * Map a thrown value to the CLI's output. A typed error prints one line with its code; anything\n * else is a bug and prints its stack, so it can be reported.\n */\nexport function describeCliFailure(error: unknown): CliFailure {\n if (!isOpenAPITypesafeError(error)) {\n const text = error instanceof Error ? (error.stack ?? error.message) : String(error);\n return { exitCode: EXIT_CODES.INTERNAL, message: `Unexpected error: ${text}` };\n }\n const report = CLI_ERROR_REPORTS[error.code];\n const message = report.message?.(error) ?? error.message;\n return { exitCode: report.exitCode, message: `${message} (${error.code})` };\n}\n\n/** Errors of the CLI itself; its messages are the original CLI's messages. */\nexport function cliError(\n code: Extract<ErrorCode, `CLI_${string}` | `OUTPUT_${string}`>,\n message: string,\n cause?: unknown,\n): OpenAPITypesafeError {\n return new OpenAPITypesafeError({ code: ERROR_CODES[code], message, cause });\n}\n"],"names":["isOpenAPITypesafeError","OpenAPITypesafeError","ERROR_CODES"],"mappings":";;;;AAcO,MAAM,UAAA,GAAa;AAAA,EACxB,OAAA,EAAS,CAAA;AAAA;AAAA,EAET,YAAA,EAAc,CAAA;AAAA;AAAA,EAEd,KAAA,EAAO,CAAA;AAAA;AAAA,EAEP,MAAA,EAAQ,CAAA;AAAA;AAAA,EAER,MAAA,EAAQ,CAAA;AAAA;AAAA,EAER,QAAA,EAAU;AACZ;AAWA,SAAS,qBAAqB,KAAA,EAAqC;AACjE,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,GAAI,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,MAAA,GAAS,CAAA;AACtF,EAAA,OAAO,4BAA4B,KAAK,CAAA,CAAA,EAAI,KAAA,KAAU,CAAA,GAAI,UAAU,QAAQ,CAAA,YAAA,CAAA;AAC9E;AAMA,SAAS,kBAAkB,KAAA,EAAqC;AAC9D,EAAA,MAAM,SAAS,KAAA,CAAM,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,MAAM,KAAA,GAAQ,MAAA;AAClE,EAAA,IAAI,EAAE,kBAAkB,KAAA,CAAA,EAAQ;AAC9B,IAAA,OAAO,KAAA,CAAM,OAAA;AAAA,EACf;AAEA,EAAA,OAAO,CAAA,EAAG,KAAA,CAAM,OAAO,CAAA,EAAA,EAAK,MAAA,CAAO,OAAO,CAAA,EAAA,EAAK,MAAA,CAAO,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAC,CAAA,CAAA,CAAA;AAC7E;AAGA,MAAM,wBAAA,GAA2B,qCAAA;AAGjC,SAAS,mBAAmB,KAAA,EAAqC;AAC/D,EAAA,MAAM,QAAQ,wBAAA,CAAyB,IAAA,CAAK,KAAA,CAAM,OAAO,IAAI,CAAC,CAAA;AAC9D,EAAA,IAAI,UAAU,MAAA,EAAW;AACvB,IAAA,OAAO,KAAA,CAAM,OAAA;AAAA,EACf;AACA,EAAA,OACE,CAAA,EAAG,KAAA,CAAM,OAAO,CAAA,gCAAA,EAAmC,KAAK,CAAA,sFAAA,CAAA;AAG5D;AAEA,MAAM,iBAAA,GAAiE;AAAA,EACrE,mBAAA,EAAqB,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA,EAAO;AAAA,EACnD,qBAAA,EAAuB,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA,EAAO;AAAA,EACrD,oBAAoB,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA,EAAQ,SAAS,iBAAA,EAAkB;AAAA,EAC9E,qBAAqB,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA,EAAQ,SAAS,kBAAA,EAAmB;AAAA,EAChF,0BAAA,EAA4B,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA,EAAO;AAAA,EAC1D,gBAAgB,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA,EAAQ,SAAS,oBAAA,EAAqB;AAAA,EAC7E,kBAAA,EAAoB,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA,EAAO;AAAA,EAClD,oBAAA,EAAsB,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA,EAAO;AAAA,EACpD,qBAAA,EAAuB,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA,EAAO;AAAA,EACrD,uBAAA,EAAyB,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA,EAAO;AAAA,EACvD,eAAA,EAAiB,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA,EAAO;AAAA,EAC/C,sBAAA,EAAwB,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA,EAAO;AAAA,EACtD,eAAA,EAAiB,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA,EAAO;AAAA,EAC/C,0BAAA,EAA4B,EAAE,QAAA,EAAU,UAAA,CAAW,KAAA,EAAM;AAAA,EACzD,kBAAA,EAAoB,EAAE,QAAA,EAAU,UAAA,CAAW,KAAA,EAAM;AAAA,EACjD,oBAAA,EAAsB,EAAE,QAAA,EAAU,UAAA,CAAW,KAAA,EAAM;AAAA,EACnD,gBAAA,EAAkB,EAAE,QAAA,EAAU,UAAA,CAAW,KAAA,EAAM;AAAA,EAC/C,oBAAA,EAAsB,EAAE,QAAA,EAAU,UAAA,CAAW,KAAA,EAAM;AAAA,EACnD,oBAAA,EAAsB,EAAE,QAAA,EAAU,UAAA,CAAW,KAAA,EAAM;AAAA,EACnD,kBAAA,EAAoB,EAAE,QAAA,EAAU,UAAA,CAAW,KAAA,EAAM;AAAA,EACjD,yBAAA,EAA2B,EAAE,QAAA,EAAU,UAAA,CAAW,KAAA,EAAM;AAAA,EACxD,wBAAA,EAA0B,EAAE,QAAA,EAAU,UAAA,CAAW,KAAA,EAAM;AAAA,EACvD,iBAAA,EAAmB,EAAE,QAAA,EAAU,UAAA,CAAW,KAAA,EAAM;AAAA,EAChD,YAAA,EAAc,EAAE,QAAA,EAAU,UAAA,CAAW,YAAA,EAAa;AAAA,EAClD,kBAAA,EAAoB,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA,EAAO;AAAA,EAClD,mBAAA,EAAqB,EAAE,QAAA,EAAU,UAAA,CAAW,MAAA;AAC9C,CAAA;AAYO,SAAS,mBAAmB,KAAA,EAA4B;AAC7D,EAAA,IAAI,CAACA,6BAAA,CAAuB,KAAK,CAAA,EAAG;AAClC,IAAA,MAAM,IAAA,GAAO,iBAAiB,KAAA,GAAS,KAAA,CAAM,SAAS,KAAA,CAAM,OAAA,GAAW,OAAO,KAAK,CAAA;AACnF,IAAA,OAAO,EAAE,QAAA,EAAU,UAAA,CAAW,UAAU,OAAA,EAAS,CAAA,kBAAA,EAAqB,IAAI,CAAA,CAAA,EAAG;AAAA,EAC/E;AACA,EAAA,MAAM,MAAA,GAAS,iBAAA,CAAkB,KAAA,CAAM,IAAI,CAAA;AAC3C,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,GAAU,KAAK,KAAK,KAAA,CAAM,OAAA;AACjD,EAAA,OAAO,EAAE,QAAA,EAAU,MAAA,CAAO,QAAA,EAAU,OAAA,EAAS,GAAG,OAAO,CAAA,EAAA,EAAK,KAAA,CAAM,IAAI,CAAA,CAAA,CAAA,EAAI;AAC5E;AAGO,SAAS,QAAA,CACd,IAAA,EACA,OAAA,EACA,KAAA,EACsB;AACtB,EAAA,OAAO,IAAIC,4BAAqB,EAAE,IAAA,EAAMC,mBAAY,IAAI,CAAA,EAAG,OAAA,EAAS,KAAA,EAAO,CAAA;AAC7E;;;;"}
@@ -0,0 +1,77 @@
1
+ import { isOpenAPITypesafeError, OpenAPITypesafeError, ERROR_CODES } from '../domain/errors.mjs';
2
+
3
+ const EXIT_CODES = {
4
+ SUCCESS: 0,
5
+ /** `--check` found output that differs from the generated types (as in the original CLI). */
6
+ OUTPUT_STALE: 1,
7
+ /** A flag, the Redocly config, the environment or a callback is wrong. */
8
+ USAGE: 2,
9
+ /** The OpenAPI document cannot be read, is invalid, or cannot be converted. */
10
+ SCHEMA: 3,
11
+ /** An output file cannot be read or written. */
12
+ OUTPUT: 4,
13
+ /** An unexpected failure: a bug in the generator (sysexits `EX_SOFTWARE`). */
14
+ INTERNAL: 70
15
+ };
16
+ function schemaInvalidMessage(error) {
17
+ const count = Array.isArray(error.details.problems) ? error.details.problems.length : 1;
18
+ return `The OpenAPI document has ${count} ${count === 1 ? "error" : "errors"} (see above)`;
19
+ }
20
+ function loadFailedMessage(error) {
21
+ const reason = error.cause instanceof Error ? error.cause.cause : void 0;
22
+ if (!(reason instanceof Error)) {
23
+ return error.message;
24
+ }
25
+ return `${error.message}: ${reason.message} (${String(error.details.source)})`;
26
+ }
27
+ const YAML_DEPTH_LIMIT_MESSAGE = /nesting exceeded maxDepth \((\d+)\)/;
28
+ function parseFailedMessage(error) {
29
+ const limit = YAML_DEPTH_LIMIT_MESSAGE.exec(error.message)?.[1];
30
+ if (limit === void 0) {
31
+ return error.message;
32
+ }
33
+ return `${error.message}. The YAML parser reads at most ${limit} nested levels: move nested schemas to \`components\` and reference them with \`$ref\``;
34
+ }
35
+ const CLI_ERROR_REPORTS = {
36
+ SCHEMA_SOURCE_EMPTY: { exitCode: EXIT_CODES.SCHEMA },
37
+ SCHEMA_SOURCE_INVALID: { exitCode: EXIT_CODES.SCHEMA },
38
+ SCHEMA_LOAD_FAILED: { exitCode: EXIT_CODES.SCHEMA, message: loadFailedMessage },
39
+ SCHEMA_PARSE_FAILED: { exitCode: EXIT_CODES.SCHEMA, message: parseFailedMessage },
40
+ SCHEMA_VERSION_UNSUPPORTED: { exitCode: EXIT_CODES.SCHEMA },
41
+ SCHEMA_INVALID: { exitCode: EXIT_CODES.SCHEMA, message: schemaInvalidMessage },
42
+ SCHEMA_REF_INVALID: { exitCode: EXIT_CODES.SCHEMA },
43
+ SCHEMA_REF_FORBIDDEN: { exitCode: EXIT_CODES.SCHEMA },
44
+ SCHEMA_OBJECT_INVALID: { exitCode: EXIT_CODES.SCHEMA },
45
+ SCHEMA_PROPERTY_INVALID: { exitCode: EXIT_CODES.SCHEMA },
46
+ SCHEMA_TOO_DEEP: { exitCode: EXIT_CODES.SCHEMA },
47
+ SCHEMA_KEY_UNSUPPORTED: { exitCode: EXIT_CODES.SCHEMA },
48
+ ENUM_NAME_EMPTY: { exitCode: EXIT_CODES.SCHEMA },
49
+ CALLBACK_RESULT_UNREADABLE: { exitCode: EXIT_CODES.USAGE },
50
+ OPTION_FIX_UNKNOWN: { exitCode: EXIT_CODES.USAGE },
51
+ TYPESCRIPT_NOT_FOUND: { exitCode: EXIT_CODES.USAGE },
52
+ CLI_FLAG_REMOVED: { exitCode: EXIT_CODES.USAGE },
53
+ CLI_GLOB_UNSUPPORTED: { exitCode: EXIT_CODES.USAGE },
54
+ CLI_CONFIG_NOT_FOUND: { exitCode: EXIT_CODES.USAGE },
55
+ CLI_CONFIG_INVALID: { exitCode: EXIT_CODES.USAGE },
56
+ CLI_CONFIG_OUTPUT_MISSING: { exitCode: EXIT_CODES.USAGE },
57
+ CLI_CHECK_OUTPUT_MISSING: { exitCode: EXIT_CODES.USAGE },
58
+ CLI_INPUT_MISSING: { exitCode: EXIT_CODES.USAGE },
59
+ OUTPUT_STALE: { exitCode: EXIT_CODES.OUTPUT_STALE },
60
+ OUTPUT_READ_FAILED: { exitCode: EXIT_CODES.OUTPUT },
61
+ OUTPUT_WRITE_FAILED: { exitCode: EXIT_CODES.OUTPUT }
62
+ };
63
+ function describeCliFailure(error) {
64
+ if (!isOpenAPITypesafeError(error)) {
65
+ const text = error instanceof Error ? error.stack ?? error.message : String(error);
66
+ return { exitCode: EXIT_CODES.INTERNAL, message: `Unexpected error: ${text}` };
67
+ }
68
+ const report = CLI_ERROR_REPORTS[error.code];
69
+ const message = report.message?.(error) ?? error.message;
70
+ return { exitCode: report.exitCode, message: `${message} (${error.code})` };
71
+ }
72
+ function cliError(code, message, cause) {
73
+ return new OpenAPITypesafeError({ code: ERROR_CODES[code], message, cause });
74
+ }
75
+
76
+ export { EXIT_CODES, cliError, describeCliFailure };
77
+ //# sourceMappingURL=cli-errors.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-errors.mjs","sources":["../../src/cli/cli-errors.ts"],"sourcesContent":["import {\n ERROR_CODES,\n type ErrorCode,\n isOpenAPITypesafeError,\n OpenAPITypesafeError,\n} from \"../domain/errors.js\";\n\n/**\n * How the CLI reports a failure (ENGINEERING_PLAN 4.6, ADR-011): each error code maps to a process\n * exit code and the line printed for it. The table is exhaustive, so a new error code does not\n * compile until the CLI handles it.\n */\n\n/** Process exit codes of the CLI, documented in docs/cli.md. */\nexport const EXIT_CODES = {\n SUCCESS: 0,\n /** `--check` found output that differs from the generated types (as in the original CLI). */\n OUTPUT_STALE: 1,\n /** A flag, the Redocly config, the environment or a callback is wrong. */\n USAGE: 2,\n /** The OpenAPI document cannot be read, is invalid, or cannot be converted. */\n SCHEMA: 3,\n /** An output file cannot be read or written. */\n OUTPUT: 4,\n /** An unexpected failure: a bug in the generator (sysexits `EX_SOFTWARE`). */\n INTERNAL: 70,\n} as const;\n\nexport type ExitCode = (typeof EXIT_CODES)[keyof typeof EXIT_CODES];\n\ninterface CliErrorReport {\n readonly exitCode: ExitCode;\n /** The printed text; the error's own message when absent. */\n readonly message?: (error: OpenAPITypesafeError) => string;\n}\n\n/** Problems are printed one by one while linting, so the summary only counts them. */\nfunction schemaInvalidMessage(error: OpenAPITypesafeError): string {\n const count = Array.isArray(error.details.problems) ? error.details.problems.length : 1;\n return `The OpenAPI document has ${count} ${count === 1 ? \"error\" : \"errors\"} (see above)`;\n}\n\n/**\n * Node's `fetch` fails with only \"fetch failed\"; the network reason (refused, DNS, TLS) is the\n * cause of that error. The Node API keeps the original message, so only the CLI adds it.\n */\nfunction loadFailedMessage(error: OpenAPITypesafeError): string {\n const reason = error.cause instanceof Error ? error.cause.cause : undefined;\n if (!(reason instanceof Error)) {\n return error.message;\n }\n // `loadFailedError`, the only source of this code, always sets the source.\n return `${error.message}: ${reason.message} (${String(error.details.source)})`;\n}\n\n/** The message js-yaml throws at its nesting limit (docs/security/threat-model.md T2). */\nconst YAML_DEPTH_LIMIT_MESSAGE = /nesting exceeded maxDepth \\((\\d+)\\)/;\n\n/** The parser's message says the limit, not how to stay under it. */\nfunction parseFailedMessage(error: OpenAPITypesafeError): string {\n const limit = YAML_DEPTH_LIMIT_MESSAGE.exec(error.message)?.[1];\n if (limit === undefined) {\n return error.message;\n }\n return (\n `${error.message}. The YAML parser reads at most ${limit} nested levels: ` +\n \"move nested schemas to `components` and reference them with `$ref`\"\n );\n}\n\nconst CLI_ERROR_REPORTS: Readonly<Record<ErrorCode, CliErrorReport>> = {\n SCHEMA_SOURCE_EMPTY: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_SOURCE_INVALID: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_LOAD_FAILED: { exitCode: EXIT_CODES.SCHEMA, message: loadFailedMessage },\n SCHEMA_PARSE_FAILED: { exitCode: EXIT_CODES.SCHEMA, message: parseFailedMessage },\n SCHEMA_VERSION_UNSUPPORTED: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_INVALID: { exitCode: EXIT_CODES.SCHEMA, message: schemaInvalidMessage },\n SCHEMA_REF_INVALID: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_REF_FORBIDDEN: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_OBJECT_INVALID: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_PROPERTY_INVALID: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_TOO_DEEP: { exitCode: EXIT_CODES.SCHEMA },\n SCHEMA_KEY_UNSUPPORTED: { exitCode: EXIT_CODES.SCHEMA },\n ENUM_NAME_EMPTY: { exitCode: EXIT_CODES.SCHEMA },\n CALLBACK_RESULT_UNREADABLE: { exitCode: EXIT_CODES.USAGE },\n OPTION_FIX_UNKNOWN: { exitCode: EXIT_CODES.USAGE },\n TYPESCRIPT_NOT_FOUND: { exitCode: EXIT_CODES.USAGE },\n CLI_FLAG_REMOVED: { exitCode: EXIT_CODES.USAGE },\n CLI_GLOB_UNSUPPORTED: { exitCode: EXIT_CODES.USAGE },\n CLI_CONFIG_NOT_FOUND: { exitCode: EXIT_CODES.USAGE },\n CLI_CONFIG_INVALID: { exitCode: EXIT_CODES.USAGE },\n CLI_CONFIG_OUTPUT_MISSING: { exitCode: EXIT_CODES.USAGE },\n CLI_CHECK_OUTPUT_MISSING: { exitCode: EXIT_CODES.USAGE },\n CLI_INPUT_MISSING: { exitCode: EXIT_CODES.USAGE },\n OUTPUT_STALE: { exitCode: EXIT_CODES.OUTPUT_STALE },\n OUTPUT_READ_FAILED: { exitCode: EXIT_CODES.OUTPUT },\n OUTPUT_WRITE_FAILED: { exitCode: EXIT_CODES.OUTPUT },\n};\n\n/** What the CLI prints and returns for a thrown value. */\nexport interface CliFailure {\n readonly exitCode: ExitCode;\n readonly message: string;\n}\n\n/**\n * Map a thrown value to the CLI's output. A typed error prints one line with its code; anything\n * else is a bug and prints its stack, so it can be reported.\n */\nexport function describeCliFailure(error: unknown): CliFailure {\n if (!isOpenAPITypesafeError(error)) {\n const text = error instanceof Error ? (error.stack ?? error.message) : String(error);\n return { exitCode: EXIT_CODES.INTERNAL, message: `Unexpected error: ${text}` };\n }\n const report = CLI_ERROR_REPORTS[error.code];\n const message = report.message?.(error) ?? error.message;\n return { exitCode: report.exitCode, message: `${message} (${error.code})` };\n}\n\n/** Errors of the CLI itself; its messages are the original CLI's messages. */\nexport function cliError(\n code: Extract<ErrorCode, `CLI_${string}` | `OUTPUT_${string}`>,\n message: string,\n cause?: unknown,\n): OpenAPITypesafeError {\n return new OpenAPITypesafeError({ code: ERROR_CODES[code], message, cause });\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ 'use strict';
2
+
3
+ const path = require('node:path');
4
+ const node_url = require('node:url');
5
+ const terminalLogger = require('../adapters/terminal-logger/terminal-logger.cjs');
6
+ const cliErrors = require('./cli-errors.cjs');
7
+
8
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
9
+
10
+ const path__default = /*#__PURE__*/_interopDefaultCompat(path);
11
+
12
+ const URL_SCHEME = /^[a-z][a-z\d+.-]+:/i;
13
+ function resolveLocationUrl(location, base) {
14
+ if (URL_SCHEME.test(location)) {
15
+ return new URL(location);
16
+ }
17
+ const baseDirectory = node_url.fileURLToPath(new URL(".", base));
18
+ return node_url.pathToFileURL(path__default.resolve(baseDirectory, location));
19
+ }
20
+ function printDone(run, output) {
21
+ const { style, now } = run.deps;
22
+ const target = style.green(`${output.source} \u2192 ${style.bold(output.output)}`);
23
+ const duration = style.dim(`[${terminalLogger.formatDuration(now() - run.startedAt)}]`);
24
+ run.deps.console.info(`\u{1F680} ${target} ${duration}`);
25
+ }
26
+ function emitOutput(run, output, contents) {
27
+ if (run.args.isCheck) {
28
+ if (run.deps.files.readText(output.file) !== contents) {
29
+ throw cliErrors.cliError(
30
+ "OUTPUT_STALE",
31
+ `Generated types are not up-to-date! ${output.output} differs from its schema.`
32
+ );
33
+ }
34
+ return;
35
+ }
36
+ run.deps.files.writeText(output.file, contents);
37
+ printDone(run, output);
38
+ }
39
+
40
+ exports.emitOutput = emitOutput;
41
+ exports.resolveLocationUrl = resolveLocationUrl;
42
+ //# sourceMappingURL=cli-output.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-output.cjs","sources":["../../src/cli/cli-output.ts"],"sourcesContent":["import path from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport { formatDuration } from \"../adapters/terminal-logger/terminal-logger.js\";\nimport type { CliArguments } from \"./cli-arguments.js\";\nimport type { CliDependencies } from \"./cli-dependencies.js\";\nimport { cliError } from \"./cli-errors.js\";\n\n/** Writing one generated file, or checking it with `--check`, and the line printed for it. */\n\n/** One CLI run: its dependencies, its arguments and when it started. */\nexport interface CliRun {\n readonly deps: CliDependencies;\n readonly args: CliArguments;\n readonly startedAt: number;\n}\n\n/** A generated file: `source` names the schema and `output` is the path as the user wrote it. */\nexport interface OutputFile {\n readonly source: string;\n readonly output: string;\n readonly file: URL;\n}\n\n/**\n * A scheme of two or more characters (`https:`, `file:`). One letter is a Windows drive (`C:`), so\n * `C:\\\\specs\\\\api.yaml` stays a path.\n */\nconst URL_SCHEME = /^[a-z][a-z\\d+.-]+:/i;\n\n/**\n * The URL of a location the user wrote: a URL as it is, else a file path, absolute or relative to\n * the directory of `base` (a directory or file URL). A path is not parsed as a URL, so `#`, `?` and\n * `%` are part of the file name.\n */\nexport function resolveLocationUrl(location: string, base: URL): URL {\n if (URL_SCHEME.test(location)) {\n return new URL(location);\n }\n const baseDirectory = fileURLToPath(new URL(\".\", base));\n return pathToFileURL(path.resolve(baseDirectory, location));\n}\n\nfunction printDone(run: CliRun, output: OutputFile): void {\n const { style, now } = run.deps;\n const target = style.green(`${output.source} → ${style.bold(output.output)}`);\n const duration = style.dim(`[${formatDuration(now() - run.startedAt)}]`);\n run.deps.console.info(`🚀 ${target} ${duration}`);\n}\n\n/**\n * With `--check`, fail with `OUTPUT_STALE` when the file differs from `contents` and leave it\n * alone otherwise. Without it, write the file and print where it went.\n */\nexport function emitOutput(run: CliRun, output: OutputFile, contents: string): void {\n if (run.args.isCheck) {\n if (run.deps.files.readText(output.file) !== contents) {\n // The original message, then the file: with several APIs it tells which one is stale.\n throw cliError(\n \"OUTPUT_STALE\",\n `Generated types are not up-to-date! ${output.output} differs from its schema.`,\n );\n }\n return;\n }\n run.deps.files.writeText(output.file, contents);\n printDone(run, output);\n}\n"],"names":["fileURLToPath","pathToFileURL","path","formatDuration","cliError"],"mappings":";;;;;;;;;;;AA2BA,MAAM,UAAA,GAAa,qBAAA;AAOZ,SAAS,kBAAA,CAAmB,UAAkB,IAAA,EAAgB;AACnE,EAAA,IAAI,UAAA,CAAW,IAAA,CAAK,QAAQ,CAAA,EAAG;AAC7B,IAAA,OAAO,IAAI,IAAI,QAAQ,CAAA;AAAA,EACzB;AACA,EAAA,MAAM,gBAAgBA,sBAAA,CAAc,IAAI,GAAA,CAAI,GAAA,EAAK,IAAI,CAAC,CAAA;AACtD,EAAA,OAAOC,sBAAA,CAAcC,aAAA,CAAK,OAAA,CAAQ,aAAA,EAAe,QAAQ,CAAC,CAAA;AAC5D;AAEA,SAAS,SAAA,CAAU,KAAa,MAAA,EAA0B;AACxD,EAAA,MAAM,EAAE,KAAA,EAAO,GAAA,EAAI,GAAI,GAAA,CAAI,IAAA;AAC3B,EAAA,MAAM,MAAA,GAAS,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,MAAA,CAAO,MAAM,CAAA,QAAA,EAAM,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,MAAM,CAAC,CAAA,CAAE,CAAA;AAC5E,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,GAAA,CAAI,CAAA,CAAA,EAAIC,6BAAA,CAAe,KAAI,GAAI,GAAA,CAAI,SAAS,CAAC,CAAA,CAAA,CAAG,CAAA;AACvE,EAAA,GAAA,CAAI,KAAK,OAAA,CAAQ,IAAA,CAAK,aAAM,MAAM,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE,CAAA;AAClD;AAMO,SAAS,UAAA,CAAW,GAAA,EAAa,MAAA,EAAoB,QAAA,EAAwB;AAClF,EAAA,IAAI,GAAA,CAAI,KAAK,OAAA,EAAS;AACpB,IAAA,IAAI,IAAI,IAAA,CAAK,KAAA,CAAM,SAAS,MAAA,CAAO,IAAI,MAAM,QAAA,EAAU;AAErD,MAAA,MAAMC,kBAAA;AAAA,QACJ,cAAA;AAAA,QACA,CAAA,oCAAA,EAAuC,OAAO,MAAM,CAAA,yBAAA;AAAA,OACtD;AAAA,IACF;AACA,IAAA;AAAA,EACF;AACA,EAAA,GAAA,CAAI,IAAA,CAAK,KAAA,CAAM,SAAA,CAAU,MAAA,CAAO,MAAM,QAAQ,CAAA;AAC9C,EAAA,SAAA,CAAU,KAAK,MAAM,CAAA;AACvB;;;"}
@@ -0,0 +1,35 @@
1
+ import path from 'node:path';
2
+ import { fileURLToPath, pathToFileURL } from 'node:url';
3
+ import { formatDuration } from '../adapters/terminal-logger/terminal-logger.mjs';
4
+ import { cliError } from './cli-errors.mjs';
5
+
6
+ const URL_SCHEME = /^[a-z][a-z\d+.-]+:/i;
7
+ function resolveLocationUrl(location, base) {
8
+ if (URL_SCHEME.test(location)) {
9
+ return new URL(location);
10
+ }
11
+ const baseDirectory = fileURLToPath(new URL(".", base));
12
+ return pathToFileURL(path.resolve(baseDirectory, location));
13
+ }
14
+ function printDone(run, output) {
15
+ const { style, now } = run.deps;
16
+ const target = style.green(`${output.source} \u2192 ${style.bold(output.output)}`);
17
+ const duration = style.dim(`[${formatDuration(now() - run.startedAt)}]`);
18
+ run.deps.console.info(`\u{1F680} ${target} ${duration}`);
19
+ }
20
+ function emitOutput(run, output, contents) {
21
+ if (run.args.isCheck) {
22
+ if (run.deps.files.readText(output.file) !== contents) {
23
+ throw cliError(
24
+ "OUTPUT_STALE",
25
+ `Generated types are not up-to-date! ${output.output} differs from its schema.`
26
+ );
27
+ }
28
+ return;
29
+ }
30
+ run.deps.files.writeText(output.file, contents);
31
+ printDone(run, output);
32
+ }
33
+
34
+ export { emitOutput, resolveLocationUrl };
35
+ //# sourceMappingURL=cli-output.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-output.mjs","sources":["../../src/cli/cli-output.ts"],"sourcesContent":["import path from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport { formatDuration } from \"../adapters/terminal-logger/terminal-logger.js\";\nimport type { CliArguments } from \"./cli-arguments.js\";\nimport type { CliDependencies } from \"./cli-dependencies.js\";\nimport { cliError } from \"./cli-errors.js\";\n\n/** Writing one generated file, or checking it with `--check`, and the line printed for it. */\n\n/** One CLI run: its dependencies, its arguments and when it started. */\nexport interface CliRun {\n readonly deps: CliDependencies;\n readonly args: CliArguments;\n readonly startedAt: number;\n}\n\n/** A generated file: `source` names the schema and `output` is the path as the user wrote it. */\nexport interface OutputFile {\n readonly source: string;\n readonly output: string;\n readonly file: URL;\n}\n\n/**\n * A scheme of two or more characters (`https:`, `file:`). One letter is a Windows drive (`C:`), so\n * `C:\\\\specs\\\\api.yaml` stays a path.\n */\nconst URL_SCHEME = /^[a-z][a-z\\d+.-]+:/i;\n\n/**\n * The URL of a location the user wrote: a URL as it is, else a file path, absolute or relative to\n * the directory of `base` (a directory or file URL). A path is not parsed as a URL, so `#`, `?` and\n * `%` are part of the file name.\n */\nexport function resolveLocationUrl(location: string, base: URL): URL {\n if (URL_SCHEME.test(location)) {\n return new URL(location);\n }\n const baseDirectory = fileURLToPath(new URL(\".\", base));\n return pathToFileURL(path.resolve(baseDirectory, location));\n}\n\nfunction printDone(run: CliRun, output: OutputFile): void {\n const { style, now } = run.deps;\n const target = style.green(`${output.source} → ${style.bold(output.output)}`);\n const duration = style.dim(`[${formatDuration(now() - run.startedAt)}]`);\n run.deps.console.info(`🚀 ${target} ${duration}`);\n}\n\n/**\n * With `--check`, fail with `OUTPUT_STALE` when the file differs from `contents` and leave it\n * alone otherwise. Without it, write the file and print where it went.\n */\nexport function emitOutput(run: CliRun, output: OutputFile, contents: string): void {\n if (run.args.isCheck) {\n if (run.deps.files.readText(output.file) !== contents) {\n // The original message, then the file: with several APIs it tells which one is stale.\n throw cliError(\n \"OUTPUT_STALE\",\n `Generated types are not up-to-date! ${output.output} differs from its schema.`,\n );\n }\n return;\n }\n run.deps.files.writeText(output.file, contents);\n printDone(run, output);\n}\n"],"names":[],"mappings":";;;;;AA2BA,MAAM,UAAA,GAAa,qBAAA;AAOZ,SAAS,kBAAA,CAAmB,UAAkB,IAAA,EAAgB;AACnE,EAAA,IAAI,UAAA,CAAW,IAAA,CAAK,QAAQ,CAAA,EAAG;AAC7B,IAAA,OAAO,IAAI,IAAI,QAAQ,CAAA;AAAA,EACzB;AACA,EAAA,MAAM,gBAAgB,aAAA,CAAc,IAAI,GAAA,CAAI,GAAA,EAAK,IAAI,CAAC,CAAA;AACtD,EAAA,OAAO,aAAA,CAAc,IAAA,CAAK,OAAA,CAAQ,aAAA,EAAe,QAAQ,CAAC,CAAA;AAC5D;AAEA,SAAS,SAAA,CAAU,KAAa,MAAA,EAA0B;AACxD,EAAA,MAAM,EAAE,KAAA,EAAO,GAAA,EAAI,GAAI,GAAA,CAAI,IAAA;AAC3B,EAAA,MAAM,MAAA,GAAS,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,MAAA,CAAO,MAAM,CAAA,QAAA,EAAM,KAAA,CAAM,IAAA,CAAK,MAAA,CAAO,MAAM,CAAC,CAAA,CAAE,CAAA;AAC5E,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,GAAA,CAAI,CAAA,CAAA,EAAI,cAAA,CAAe,KAAI,GAAI,GAAA,CAAI,SAAS,CAAC,CAAA,CAAA,CAAG,CAAA;AACvE,EAAA,GAAA,CAAI,KAAK,OAAA,CAAQ,IAAA,CAAK,aAAM,MAAM,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE,CAAA;AAClD;AAMO,SAAS,UAAA,CAAW,GAAA,EAAa,MAAA,EAAoB,QAAA,EAAwB;AAClF,EAAA,IAAI,GAAA,CAAI,KAAK,OAAA,EAAS;AACpB,IAAA,IAAI,IAAI,IAAA,CAAK,KAAA,CAAM,SAAS,MAAA,CAAO,IAAI,MAAM,QAAA,EAAU;AAErD,MAAA,MAAM,QAAA;AAAA,QACJ,cAAA;AAAA,QACA,CAAA,oCAAA,EAAuC,OAAO,MAAM,CAAA,yBAAA;AAAA,OACtD;AAAA,IACF;AACA,IAAA;AAAA,EACF;AACA,EAAA,GAAA,CAAI,IAAA,CAAK,KAAA,CAAM,SAAA,CAAU,MAAA,CAAO,MAAM,QAAQ,CAAA;AAC9C,EAAA,SAAA,CAAU,KAAK,MAAM,CAAA;AACvB;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ const MULTIPLE_SCHEMAS_DOCS_URL = "https://github.com/openapi-typesafe/openapi-typesafe/blob/main/docs/cli.md#multiple-schemas";
4
+
5
+ exports.MULTIPLE_SCHEMAS_DOCS_URL = MULTIPLE_SCHEMAS_DOCS_URL;
6
+ //# sourceMappingURL=docs-links.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-links.cjs","sources":["../../src/cli/docs-links.ts"],"sourcesContent":["/**\n * Links that CLI messages print. They point at the docs in this repository on GitHub, which work\n * before the docs site is published and stay valid after.\n */\nexport const MULTIPLE_SCHEMAS_DOCS_URL =\n \"https://github.com/openapi-typesafe/openapi-typesafe/blob/main/docs/cli.md#multiple-schemas\";\n"],"names":[],"mappings":";;AAIO,MAAM,yBAAA,GACX;;"}
@@ -0,0 +1,4 @@
1
+ const MULTIPLE_SCHEMAS_DOCS_URL = "https://github.com/openapi-typesafe/openapi-typesafe/blob/main/docs/cli.md#multiple-schemas";
2
+
3
+ export { MULTIPLE_SCHEMAS_DOCS_URL };
4
+ //# sourceMappingURL=docs-links.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-links.mjs","sources":["../../src/cli/docs-links.ts"],"sourcesContent":["/**\n * Links that CLI messages print. They point at the docs in this repository on GitHub, which work\n * before the docs site is published and stay valid after.\n */\nexport const MULTIPLE_SCHEMAS_DOCS_URL =\n \"https://github.com/openapi-typesafe/openapi-typesafe/blob/main/docs/cli.md#multiple-schemas\";\n"],"names":[],"mappings":"AAIO,MAAM,yBAAA,GACX;;"}
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ const outputFixes = require('../domain/output-fixes.cjs');
4
+
5
+ const SEPARATOR = ",";
6
+ function fixNamesOf(value) {
7
+ if (value === void 0) {
8
+ return void 0;
9
+ }
10
+ const names = [value].flat().flatMap((entry) => String(entry).split(SEPARATOR)).map((name) => name.trim()).filter((name) => name !== "");
11
+ return outputFixes.outputFixNamesOf(names);
12
+ }
13
+ function fixOption(names) {
14
+ return names === void 0 ? {} : { fix: names };
15
+ }
16
+
17
+ exports.fixNamesOf = fixNamesOf;
18
+ exports.fixOption = fixOption;
19
+ //# sourceMappingURL=fix-option.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix-option.cjs","sources":["../../src/cli/fix-option.ts"],"sourcesContent":["import { type OutputFixName, outputFixNamesOf } from \"../domain/output-fixes.js\";\nimport type { GeneratorOptions } from \"../types.js\";\n\n/**\n * The `fix` option (ADR-021) as the CLI and `redocly.yaml` give it: `--fix a,b`, repeatable, or\n * `fix: [a, b]` / `fix: a,b` in an API's settings. Unknown names fail with `OPTION_FIX_UNKNOWN`.\n */\n\nconst SEPARATOR = \",\";\n\n/** The names of a flag value or a config value; `undefined` when the option is not set. */\nexport function fixNamesOf(value: unknown): readonly OutputFixName[] | undefined {\n if (value === undefined) {\n return undefined;\n }\n const names = [value]\n .flat()\n .flatMap((entry) => String(entry).split(SEPARATOR))\n .map((name) => name.trim())\n .filter((name) => name !== \"\");\n return outputFixNamesOf(names);\n}\n\n/** The generator option for the names; nothing when the option is not set. */\nexport function fixOption(\n names: readonly OutputFixName[] | undefined,\n): Pick<GeneratorOptions, \"fix\"> {\n return names === undefined ? {} : { fix: names };\n}\n"],"names":["outputFixNamesOf"],"mappings":";;;;AAQA,MAAM,SAAA,GAAY,GAAA;AAGX,SAAS,WAAW,KAAA,EAAsD;AAC/E,EAAA,IAAI,UAAU,MAAA,EAAW;AACvB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,MAAM,KAAA,GAAQ,CAAC,KAAK,CAAA,CACjB,IAAA,EAAK,CACL,OAAA,CAAQ,CAAC,KAAA,KAAU,MAAA,CAAO,KAAK,CAAA,CAAE,KAAA,CAAM,SAAS,CAAC,CAAA,CACjD,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,IAAA,EAAM,CAAA,CACzB,MAAA,CAAO,CAAC,IAAA,KAAS,IAAA,KAAS,EAAE,CAAA;AAC/B,EAAA,OAAOA,6BAAiB,KAAK,CAAA;AAC/B;AAGO,SAAS,UACd,KAAA,EAC+B;AAC/B,EAAA,OAAO,UAAU,MAAA,GAAY,EAAC,GAAI,EAAE,KAAK,KAAA,EAAM;AACjD;;;"}
@@ -0,0 +1,16 @@
1
+ import { outputFixNamesOf } from '../domain/output-fixes.mjs';
2
+
3
+ const SEPARATOR = ",";
4
+ function fixNamesOf(value) {
5
+ if (value === void 0) {
6
+ return void 0;
7
+ }
8
+ const names = [value].flat().flatMap((entry) => String(entry).split(SEPARATOR)).map((name) => name.trim()).filter((name) => name !== "");
9
+ return outputFixNamesOf(names);
10
+ }
11
+ function fixOption(names) {
12
+ return names === void 0 ? {} : { fix: names };
13
+ }
14
+
15
+ export { fixNamesOf, fixOption };
16
+ //# sourceMappingURL=fix-option.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix-option.mjs","sources":["../../src/cli/fix-option.ts"],"sourcesContent":["import { type OutputFixName, outputFixNamesOf } from \"../domain/output-fixes.js\";\nimport type { GeneratorOptions } from \"../types.js\";\n\n/**\n * The `fix` option (ADR-021) as the CLI and `redocly.yaml` give it: `--fix a,b`, repeatable, or\n * `fix: [a, b]` / `fix: a,b` in an API's settings. Unknown names fail with `OPTION_FIX_UNKNOWN`.\n */\n\nconst SEPARATOR = \",\";\n\n/** The names of a flag value or a config value; `undefined` when the option is not set. */\nexport function fixNamesOf(value: unknown): readonly OutputFixName[] | undefined {\n if (value === undefined) {\n return undefined;\n }\n const names = [value]\n .flat()\n .flatMap((entry) => String(entry).split(SEPARATOR))\n .map((name) => name.trim())\n .filter((name) => name !== \"\");\n return outputFixNamesOf(names);\n}\n\n/** The generator option for the names; nothing when the option is not set. */\nexport function fixOption(\n names: readonly OutputFixName[] | undefined,\n): Pick<GeneratorOptions, \"fix\"> {\n return names === undefined ? {} : { fix: names };\n}\n"],"names":[],"mappings":";;AAQA,MAAM,SAAA,GAAY,GAAA;AAGX,SAAS,WAAW,KAAA,EAAsD;AAC/E,EAAA,IAAI,UAAU,MAAA,EAAW;AACvB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,MAAM,KAAA,GAAQ,CAAC,KAAK,CAAA,CACjB,IAAA,EAAK,CACL,OAAA,CAAQ,CAAC,KAAA,KAAU,MAAA,CAAO,KAAK,CAAA,CAAE,KAAA,CAAM,SAAS,CAAC,CAAA,CACjD,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,IAAA,EAAM,CAAA,CACzB,MAAA,CAAO,CAAC,IAAA,KAAS,IAAA,KAAS,EAAE,CAAA;AAC/B,EAAA,OAAO,iBAAiB,KAAK,CAAA;AAC/B;AAGO,SAAS,UACd,KAAA,EAC+B;AAC/B,EAAA,OAAO,UAAU,MAAA,GAAY,EAAC,GAAI,EAAE,KAAK,KAAA,EAAM;AACjD;;"}
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ const HELP_TEXT = [
4
+ "Usage",
5
+ " $ openapi-typesafe [input] [options]",
6
+ "",
7
+ "Options",
8
+ " --help Display this",
9
+ " --version Display the version",
10
+ " --redocly [path], -c Specify path to Redocly config (default: redocly.yaml)",
11
+ " --output, -o Specify output file (if not specified in redocly.yaml)",
12
+ " --enum Export true TS enums instead of unions",
13
+ " --enum-values Export enum values as arrays",
14
+ " --conditional-enums Only generate true TS enums when enum metadata is available (default: false)",
15
+ " --dedupe-enums Dedupe enum types when `--enum=true` is set",
16
+ " --check Check that the generated types are up-to-date. (default: false)",
17
+ " --export-type, -t Export top-level `type` instead of `interface`",
18
+ " --immutable Generate readonly types",
19
+ " --additional-properties Treat schema objects as if `additionalProperties: true` is set",
20
+ " --empty-objects-unknown Generate `unknown` instead of `Record<string, never>` for empty objects",
21
+ " --default-non-nullable Set to `false` to ignore default values when generating non-nullable types",
22
+ " --properties-required-by-default",
23
+ " Treat schema objects as if `required` is set to all properties by default",
24
+ " --array-length Generate tuples using array minItems / maxItems",
25
+ " --binary-as-blob Type raw binary strings (format: binary, contentMediaType) as Blob",
26
+ ' --fix [names] Turn on output fixes, comma-separated, or "all" (see docs/cli.md#fix)',
27
+ " --path-params-as-types Convert paths to template literal types",
28
+ " --generate-path-params Generate path parameters for all paths where they are undefined by schema",
29
+ " --alphabetize Sort object keys alphabetically",
30
+ " --exclude-deprecated Exclude deprecated types",
31
+ " --root-types Export schemas types at root level",
32
+ " --root-types-no-schema-prefix",
33
+ ' Do not add "Schema" prefix to types at the root level (should only be used with --root-types)',
34
+ " --root-types-keep-casing Keep casing of root types (should only be used with --root-types)",
35
+ " --make-paths-enum Generate ApiPaths enum for all paths",
36
+ " --read-write-markers Generate $Read/$Write markers for readOnly/writeOnly properties",
37
+ " --no-lint Skip the Redocly lint (bundling errors still fail)",
38
+ " --local-ref-root [dir] Load local $ref files only from this directory",
39
+ " --remote-ref-hosts [hosts] Load remote $ref documents only from these comma-separated hosts (empty: none)",
40
+ ""
41
+ ].join("\n");
42
+
43
+ exports.HELP_TEXT = HELP_TEXT;
44
+ //# sourceMappingURL=help-text.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help-text.cjs","sources":["../../src/cli/help-text.ts"],"sourcesContent":["/** The text of `--help`, as in the original CLI; long lines are split only in this source. */\nexport const HELP_TEXT = [\n \"Usage\",\n \" $ openapi-typesafe [input] [options]\",\n \"\",\n \"Options\",\n \" --help Display this\",\n \" --version Display the version\",\n \" --redocly [path], -c Specify path to Redocly config (default: redocly.yaml)\",\n \" --output, -o Specify output file (if not specified in redocly.yaml)\",\n \" --enum Export true TS enums instead of unions\",\n \" --enum-values Export enum values as arrays\",\n \" --conditional-enums Only generate true TS enums when enum\" +\n \" metadata is available (default: false)\",\n \" --dedupe-enums Dedupe enum types when `--enum=true` is set\",\n \" --check Check that the generated types are\" +\n \" up-to-date. (default: false)\",\n \" --export-type, -t Export top-level `type` instead of `interface`\",\n \" --immutable Generate readonly types\",\n \" --additional-properties Treat schema objects as if `additionalProperties: true` is set\",\n \" --empty-objects-unknown Generate `unknown` instead of\" +\n \" `Record<string, never>` for empty objects\",\n \" --default-non-nullable Set to `false` to ignore default values\" +\n \" when generating non-nullable types\",\n \" --properties-required-by-default\",\n \" Treat schema objects as if `required` is\" +\n \" set to all properties by default\",\n \" --array-length Generate tuples using array minItems / maxItems\",\n \" --binary-as-blob Type raw binary strings (format: binary,\" +\n \" contentMediaType) as Blob\",\n \" --fix [names] Turn on output fixes, comma-separated, or\" +\n ' \"all\" (see docs/cli.md#fix)',\n \" --path-params-as-types Convert paths to template literal types\",\n \" --generate-path-params Generate path parameters for all paths where they are\" +\n \" undefined by schema\",\n \" --alphabetize Sort object keys alphabetically\",\n \" --exclude-deprecated Exclude deprecated types\",\n \" --root-types Export schemas types at root level\",\n \" --root-types-no-schema-prefix\",\n ' Do not add \"Schema\" prefix to types at' +\n \" the root level (should only be used with --root-types)\",\n \" --root-types-keep-casing Keep casing of root types (should only be\" +\n \" used with --root-types)\",\n \" --make-paths-enum Generate ApiPaths enum for all paths\",\n \" --read-write-markers Generate $Read/$Write markers for\" +\n \" readOnly/writeOnly properties\",\n \" --no-lint Skip the Redocly lint (bundling errors still fail)\",\n \" --local-ref-root [dir] Load local $ref files only from this directory\",\n \" --remote-ref-hosts [hosts] Load remote $ref documents only from these\" +\n \" comma-separated hosts (empty: none)\",\n \"\",\n].join(\"\\n\");\n"],"names":[],"mappings":";;AACO,MAAM,SAAA,GAAY;AAAA,EACvB,OAAA;AAAA,EACA,wCAAA;AAAA,EACA,EAAA;AAAA,EACA,SAAA;AAAA,EACA,2CAAA;AAAA,EACA,kDAAA;AAAA,EACA,qFAAA;AAAA,EACA,qFAAA;AAAA,EACA,qEAAA;AAAA,EACA,2DAAA;AAAA,EACA,2GAAA;AAAA,EAEA,0EAAA;AAAA,EACA,8FAAA;AAAA,EAEA,6EAAA;AAAA,EACA,sDAAA;AAAA,EACA,6FAAA;AAAA,EACA,sGAAA;AAAA,EAEA,yGAAA;AAAA,EAEA,oCAAA;AAAA,EACA,wGAAA;AAAA,EAEA,8EAAA;AAAA,EACA,iGAAA;AAAA,EAEA,oGAAA;AAAA,EAEA,sEAAA;AAAA,EACA,wGAAA;AAAA,EAEA,8DAAA;AAAA,EACA,uDAAA;AAAA,EACA,iEAAA;AAAA,EACA,iCAAA;AAAA,EACA,4HAAA;AAAA,EAEA,gGAAA;AAAA,EAEA,mEAAA;AAAA,EACA,8FAAA;AAAA,EAEA,iFAAA;AAAA,EACA,6EAAA;AAAA,EACA,6GAAA;AAAA,EAEA;AACF,CAAA,CAAE,KAAK,IAAI;;"}
@@ -0,0 +1,42 @@
1
+ const HELP_TEXT = [
2
+ "Usage",
3
+ " $ openapi-typesafe [input] [options]",
4
+ "",
5
+ "Options",
6
+ " --help Display this",
7
+ " --version Display the version",
8
+ " --redocly [path], -c Specify path to Redocly config (default: redocly.yaml)",
9
+ " --output, -o Specify output file (if not specified in redocly.yaml)",
10
+ " --enum Export true TS enums instead of unions",
11
+ " --enum-values Export enum values as arrays",
12
+ " --conditional-enums Only generate true TS enums when enum metadata is available (default: false)",
13
+ " --dedupe-enums Dedupe enum types when `--enum=true` is set",
14
+ " --check Check that the generated types are up-to-date. (default: false)",
15
+ " --export-type, -t Export top-level `type` instead of `interface`",
16
+ " --immutable Generate readonly types",
17
+ " --additional-properties Treat schema objects as if `additionalProperties: true` is set",
18
+ " --empty-objects-unknown Generate `unknown` instead of `Record<string, never>` for empty objects",
19
+ " --default-non-nullable Set to `false` to ignore default values when generating non-nullable types",
20
+ " --properties-required-by-default",
21
+ " Treat schema objects as if `required` is set to all properties by default",
22
+ " --array-length Generate tuples using array minItems / maxItems",
23
+ " --binary-as-blob Type raw binary strings (format: binary, contentMediaType) as Blob",
24
+ ' --fix [names] Turn on output fixes, comma-separated, or "all" (see docs/cli.md#fix)',
25
+ " --path-params-as-types Convert paths to template literal types",
26
+ " --generate-path-params Generate path parameters for all paths where they are undefined by schema",
27
+ " --alphabetize Sort object keys alphabetically",
28
+ " --exclude-deprecated Exclude deprecated types",
29
+ " --root-types Export schemas types at root level",
30
+ " --root-types-no-schema-prefix",
31
+ ' Do not add "Schema" prefix to types at the root level (should only be used with --root-types)',
32
+ " --root-types-keep-casing Keep casing of root types (should only be used with --root-types)",
33
+ " --make-paths-enum Generate ApiPaths enum for all paths",
34
+ " --read-write-markers Generate $Read/$Write markers for readOnly/writeOnly properties",
35
+ " --no-lint Skip the Redocly lint (bundling errors still fail)",
36
+ " --local-ref-root [dir] Load local $ref files only from this directory",
37
+ " --remote-ref-hosts [hosts] Load remote $ref documents only from these comma-separated hosts (empty: none)",
38
+ ""
39
+ ].join("\n");
40
+
41
+ export { HELP_TEXT };
42
+ //# sourceMappingURL=help-text.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help-text.mjs","sources":["../../src/cli/help-text.ts"],"sourcesContent":["/** The text of `--help`, as in the original CLI; long lines are split only in this source. */\nexport const HELP_TEXT = [\n \"Usage\",\n \" $ openapi-typesafe [input] [options]\",\n \"\",\n \"Options\",\n \" --help Display this\",\n \" --version Display the version\",\n \" --redocly [path], -c Specify path to Redocly config (default: redocly.yaml)\",\n \" --output, -o Specify output file (if not specified in redocly.yaml)\",\n \" --enum Export true TS enums instead of unions\",\n \" --enum-values Export enum values as arrays\",\n \" --conditional-enums Only generate true TS enums when enum\" +\n \" metadata is available (default: false)\",\n \" --dedupe-enums Dedupe enum types when `--enum=true` is set\",\n \" --check Check that the generated types are\" +\n \" up-to-date. (default: false)\",\n \" --export-type, -t Export top-level `type` instead of `interface`\",\n \" --immutable Generate readonly types\",\n \" --additional-properties Treat schema objects as if `additionalProperties: true` is set\",\n \" --empty-objects-unknown Generate `unknown` instead of\" +\n \" `Record<string, never>` for empty objects\",\n \" --default-non-nullable Set to `false` to ignore default values\" +\n \" when generating non-nullable types\",\n \" --properties-required-by-default\",\n \" Treat schema objects as if `required` is\" +\n \" set to all properties by default\",\n \" --array-length Generate tuples using array minItems / maxItems\",\n \" --binary-as-blob Type raw binary strings (format: binary,\" +\n \" contentMediaType) as Blob\",\n \" --fix [names] Turn on output fixes, comma-separated, or\" +\n ' \"all\" (see docs/cli.md#fix)',\n \" --path-params-as-types Convert paths to template literal types\",\n \" --generate-path-params Generate path parameters for all paths where they are\" +\n \" undefined by schema\",\n \" --alphabetize Sort object keys alphabetically\",\n \" --exclude-deprecated Exclude deprecated types\",\n \" --root-types Export schemas types at root level\",\n \" --root-types-no-schema-prefix\",\n ' Do not add \"Schema\" prefix to types at' +\n \" the root level (should only be used with --root-types)\",\n \" --root-types-keep-casing Keep casing of root types (should only be\" +\n \" used with --root-types)\",\n \" --make-paths-enum Generate ApiPaths enum for all paths\",\n \" --read-write-markers Generate $Read/$Write markers for\" +\n \" readOnly/writeOnly properties\",\n \" --no-lint Skip the Redocly lint (bundling errors still fail)\",\n \" --local-ref-root [dir] Load local $ref files only from this directory\",\n \" --remote-ref-hosts [hosts] Load remote $ref documents only from these\" +\n \" comma-separated hosts (empty: none)\",\n \"\",\n].join(\"\\n\");\n"],"names":[],"mappings":"AACO,MAAM,SAAA,GAAY;AAAA,EACvB,OAAA;AAAA,EACA,wCAAA;AAAA,EACA,EAAA;AAAA,EACA,SAAA;AAAA,EACA,2CAAA;AAAA,EACA,kDAAA;AAAA,EACA,qFAAA;AAAA,EACA,qFAAA;AAAA,EACA,qEAAA;AAAA,EACA,2DAAA;AAAA,EACA,2GAAA;AAAA,EAEA,0EAAA;AAAA,EACA,8FAAA;AAAA,EAEA,6EAAA;AAAA,EACA,sDAAA;AAAA,EACA,6FAAA;AAAA,EACA,sGAAA;AAAA,EAEA,yGAAA;AAAA,EAEA,oCAAA;AAAA,EACA,wGAAA;AAAA,EAEA,8EAAA;AAAA,EACA,iGAAA;AAAA,EAEA,oGAAA;AAAA,EAEA,sEAAA;AAAA,EACA,wGAAA;AAAA,EAEA,8DAAA;AAAA,EACA,uDAAA;AAAA,EACA,iEAAA;AAAA,EACA,iCAAA;AAAA,EACA,4HAAA;AAAA,EAEA,gGAAA;AAAA,EAEA,mEAAA;AAAA,EACA,8FAAA;AAAA,EAEA,iFAAA;AAAA,EACA,6EAAA;AAAA,EACA,6GAAA;AAAA,EAEA;AACF,CAAA,CAAE,KAAK,IAAI;;"}
@@ -0,0 +1,67 @@
1
+ 'use strict';
2
+
3
+ const fs = require('node:fs');
4
+ const node_tty = require('node:tty');
5
+ const node_url = require('node:url');
6
+ const colors = require('ansi-colors');
7
+ const nodeFileSystem = require('../adapters/node-file-system/node-file-system.cjs');
8
+ const redoclyConfigSource = require('../adapters/redocly-loader/redocly-config-source.cjs');
9
+ const astToString = require('../api/ast-to-string.cjs');
10
+ const commentHeader = require('../api/comment-header.cjs');
11
+ const defaultPorts = require('../api/default-ports.cjs');
12
+ const openapiTs = require('../api/openapi-ts.cjs');
13
+ const runCli = require('./run-cli.cjs');
14
+
15
+ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
16
+ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
17
+
18
+ const fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
19
+ const colors__default = /*#__PURE__*/_interopDefaultCompat(colors);
20
+
21
+ const PACKAGE_JSON = new URL("../../package.json", (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli/main.cjs', document.baseURI).href)));
22
+ function readVersion() {
23
+ const packageJson = JSON.parse(fs__default.readFileSync(PACKAGE_JSON, "utf8"));
24
+ return packageJson.version;
25
+ }
26
+ function terminalStyle() {
27
+ const palette = colors__default.create();
28
+ palette.enabled = defaultPorts.terminalSupportsColor();
29
+ return {
30
+ bold: (text) => palette.bold(text),
31
+ green: (text) => palette.green(text),
32
+ dim: (text) => palette.dim(text)
33
+ };
34
+ }
35
+ const STDIN_DESCRIPTOR = 0;
36
+ const generateTypes = async (source, options) => `${commentHeader.COMMENT_HEADER}${astToString.astToString(await openapiTs.default(source, options))}`;
37
+ function terminalConsole() {
38
+ return {
39
+ // biome-ignore lint/suspicious/noConsole: the CLI's own output lines
40
+ info: (text) => console.info(text),
41
+ // biome-ignore lint/suspicious/noConsole: the CLI's own notices
42
+ notice: (text) => console.warn(text)
43
+ };
44
+ }
45
+ function processDependencies() {
46
+ const cwd = process.cwd();
47
+ return {
48
+ cwd: node_url.pathToFileURL(`${cwd}/`),
49
+ version: readVersion(),
50
+ logger: defaultPorts.defaultLogger(false),
51
+ console: terminalConsole(),
52
+ writeStdout: (text) => process.stdout.write(text),
53
+ stdin: () => process.stdin,
54
+ // `isatty` reads the descriptor without opening `process.stdin`, which would keep the
55
+ // process alive.
56
+ isStdinTerminal: () => node_tty.isatty(STDIN_DESCRIPTOR),
57
+ files: nodeFileSystem.createNodeFileSystem(),
58
+ redoclyConfigs: redoclyConfigSource.createRedoclyConfigSource(cwd),
59
+ generate: generateTypes,
60
+ now: defaultPorts.monotonicNow,
61
+ style: terminalStyle()
62
+ };
63
+ }
64
+ runCli.runCli(process.argv.slice(2), processDependencies()).then((exitCode) => {
65
+ process.exitCode = exitCode;
66
+ });
67
+ //# sourceMappingURL=main.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.cjs","sources":["../../src/cli/main.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport { isatty } from \"node:tty\";\nimport { pathToFileURL } from \"node:url\";\nimport colors from \"ansi-colors\";\nimport { createNodeFileSystem } from \"../adapters/node-file-system/node-file-system.js\";\nimport { createRedoclyConfigSource } from \"../adapters/redocly-loader/redocly-config-source.js\";\nimport { astToString } from \"../api/ast-to-string.js\";\nimport { COMMENT_HEADER } from \"../api/comment-header.js\";\nimport { defaultLogger, monotonicNow, terminalSupportsColor } from \"../api/default-ports.js\";\nimport openapiTS from \"../api/openapi-ts.js\";\nimport type { CliConsole, CliDependencies, GenerateTypes, TextStyle } from \"./cli-dependencies.js\";\nimport { runCli } from \"./run-cli.js\";\n\n/**\n * The CLI's composition root (ENGINEERING_PLAN 4.5, ADR-012): the only CLI module that touches the\n * process. `bin/cli.js` imports the built copy of this module.\n */\n\n/** The same path from `src/cli/` and from the built `dist/cli/`. */\nconst PACKAGE_JSON = new URL(\"../../package.json\", import.meta.url);\n\nfunction readVersion(): string {\n const packageJson: { version: string } = JSON.parse(fs.readFileSync(PACKAGE_JSON, \"utf8\"));\n return packageJson.version;\n}\n\nfunction terminalStyle(): TextStyle {\n const palette = colors.create();\n palette.enabled = terminalSupportsColor();\n return {\n bold: (text) => palette.bold(text),\n green: (text) => palette.green(text),\n dim: (text) => palette.dim(text),\n };\n}\n\nconst STDIN_DESCRIPTOR = 0;\n\nconst generateTypes: GenerateTypes = async (source, options) =>\n `${COMMENT_HEADER}${astToString(await openapiTS(source, options))}`;\n\nfunction terminalConsole(): CliConsole {\n return {\n // biome-ignore lint/suspicious/noConsole: the CLI's own output lines\n info: (text) => console.info(text),\n // biome-ignore lint/suspicious/noConsole: the CLI's own notices\n notice: (text) => console.warn(text),\n };\n}\n\nfunction processDependencies(): CliDependencies {\n const cwd = process.cwd();\n return {\n cwd: pathToFileURL(`${cwd}/`),\n version: readVersion(),\n logger: defaultLogger(false),\n console: terminalConsole(),\n writeStdout: (text) => process.stdout.write(text),\n stdin: () => process.stdin,\n // `isatty` reads the descriptor without opening `process.stdin`, which would keep the\n // process alive.\n isStdinTerminal: () => isatty(STDIN_DESCRIPTOR),\n files: createNodeFileSystem(),\n redoclyConfigs: createRedoclyConfigSource(cwd),\n generate: generateTypes,\n now: monotonicNow,\n style: terminalStyle(),\n };\n}\n\nrunCli(process.argv.slice(2), processDependencies()).then((exitCode) => {\n process.exitCode = exitCode;\n});\n"],"names":["fs","colors","terminalSupportsColor","COMMENT_HEADER","astToString","openapiTS","pathToFileURL","defaultLogger","isatty","createNodeFileSystem","createRedoclyConfigSource","monotonicNow","runCli"],"mappings":";;;;;;;;;;;;;;;;;;;;AAmBA,MAAM,YAAA,GAAe,IAAI,GAAA,CAAI,oBAAA,EAAsB,8PAAe,CAAA;AAElE,SAAS,WAAA,GAAsB;AAC7B,EAAA,MAAM,cAAmC,IAAA,CAAK,KAAA,CAAMA,YAAG,YAAA,CAAa,YAAA,EAAc,MAAM,CAAC,CAAA;AACzF,EAAA,OAAO,WAAA,CAAY,OAAA;AACrB;AAEA,SAAS,aAAA,GAA2B;AAClC,EAAA,MAAM,OAAA,GAAUC,gBAAO,MAAA,EAAO;AAC9B,EAAA,OAAA,CAAQ,UAAUC,kCAAA,EAAsB;AACxC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,CAAC,IAAA,KAAS,OAAA,CAAQ,KAAK,IAAI,CAAA;AAAA,IACjC,KAAA,EAAO,CAAC,IAAA,KAAS,OAAA,CAAQ,MAAM,IAAI,CAAA;AAAA,IACnC,GAAA,EAAK,CAAC,IAAA,KAAS,OAAA,CAAQ,IAAI,IAAI;AAAA,GACjC;AACF;AAEA,MAAM,gBAAA,GAAmB,CAAA;AAEzB,MAAM,aAAA,GAA+B,OAAO,MAAA,EAAQ,OAAA,KAClD,CAAA,EAAGC,4BAAc,CAAA,EAAGC,uBAAA,CAAY,MAAMC,iBAAA,CAAU,MAAA,EAAQ,OAAO,CAAC,CAAC,CAAA,CAAA;AAEnE,SAAS,eAAA,GAA8B;AACrC,EAAA,OAAO;AAAA;AAAA,IAEL,IAAA,EAAM,CAAC,IAAA,KAAS,OAAA,CAAQ,KAAK,IAAI,CAAA;AAAA;AAAA,IAEjC,MAAA,EAAQ,CAAC,IAAA,KAAS,OAAA,CAAQ,KAAK,IAAI;AAAA,GACrC;AACF;AAEA,SAAS,mBAAA,GAAuC;AAC9C,EAAA,MAAM,GAAA,GAAM,QAAQ,GAAA,EAAI;AACxB,EAAA,OAAO;AAAA,IACL,GAAA,EAAKC,sBAAA,CAAc,CAAA,EAAG,GAAG,CAAA,CAAA,CAAG,CAAA;AAAA,IAC5B,SAAS,WAAA,EAAY;AAAA,IACrB,MAAA,EAAQC,2BAAc,KAAK,CAAA;AAAA,IAC3B,SAAS,eAAA,EAAgB;AAAA,IACzB,aAAa,CAAC,IAAA,KAAS,OAAA,CAAQ,MAAA,CAAO,MAAM,IAAI,CAAA;AAAA,IAChD,KAAA,EAAO,MAAM,OAAA,CAAQ,KAAA;AAAA;AAAA;AAAA,IAGrB,eAAA,EAAiB,MAAMC,eAAA,CAAO,gBAAgB,CAAA;AAAA,IAC9C,OAAOC,mCAAA,EAAqB;AAAA,IAC5B,cAAA,EAAgBC,8CAA0B,GAAG,CAAA;AAAA,IAC7C,QAAA,EAAU,aAAA;AAAA,IACV,GAAA,EAAKC,yBAAA;AAAA,IACL,OAAO,aAAA;AAAc,GACvB;AACF;AAEAC,aAAA,CAAO,OAAA,CAAQ,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA,EAAG,qBAAqB,CAAA,CAAE,IAAA,CAAK,CAAC,QAAA,KAAa;AACtE,EAAA,OAAA,CAAQ,QAAA,GAAW,QAAA;AACrB,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+
2
+ export { };
@@ -0,0 +1,2 @@
1
+
2
+ export { };
@@ -0,0 +1,2 @@
1
+
2
+ export { };