openapi-typesafe 1.0.0-rc.2 → 1.0.0-rc.4

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 (514) hide show
  1. package/CHANGELOG.md +1831 -0
  2. package/dist/adapters/node-deprecations/node-deprecations.cjs +14 -0
  3. package/dist/adapters/node-deprecations/node-deprecations.cjs.map +1 -0
  4. package/dist/adapters/node-deprecations/node-deprecations.mjs +12 -0
  5. package/dist/adapters/node-deprecations/node-deprecations.mjs.map +1 -0
  6. package/dist/adapters/node-file-system/file-claims.cjs +105 -0
  7. package/dist/adapters/node-file-system/file-claims.cjs.map +1 -0
  8. package/dist/adapters/node-file-system/file-claims.mjs +95 -0
  9. package/dist/adapters/node-file-system/file-claims.mjs.map +1 -0
  10. package/dist/adapters/node-file-system/file-identity.cjs +82 -0
  11. package/dist/adapters/node-file-system/file-identity.cjs.map +1 -0
  12. package/dist/adapters/node-file-system/file-identity.mjs +74 -0
  13. package/dist/adapters/node-file-system/file-identity.mjs.map +1 -0
  14. package/dist/adapters/node-file-system/node-file-system.cjs +90 -14
  15. package/dist/adapters/node-file-system/node-file-system.cjs.map +1 -1
  16. package/dist/adapters/node-file-system/node-file-system.mjs +90 -14
  17. package/dist/adapters/node-file-system/node-file-system.mjs.map +1 -1
  18. package/dist/adapters/redocly-loader/bundled-mapping-copies.cjs +75 -0
  19. package/dist/adapters/redocly-loader/bundled-mapping-copies.cjs.map +1 -0
  20. package/dist/adapters/redocly-loader/bundled-mapping-copies.mjs +72 -0
  21. package/dist/adapters/redocly-loader/bundled-mapping-copies.mjs.map +1 -0
  22. package/dist/adapters/redocly-loader/bundled-ref-repair.cjs +1 -1
  23. package/dist/adapters/redocly-loader/bundled-ref-repair.cjs.map +1 -1
  24. package/dist/adapters/redocly-loader/bundled-ref-repair.mjs +2 -2
  25. package/dist/adapters/redocly-loader/bundled-ref-repair.mjs.map +1 -1
  26. package/dist/adapters/redocly-loader/loaded-documents.cjs +28 -0
  27. package/dist/adapters/redocly-loader/loaded-documents.cjs.map +1 -0
  28. package/dist/adapters/redocly-loader/loaded-documents.mjs +21 -0
  29. package/dist/adapters/redocly-loader/loaded-documents.mjs.map +1 -0
  30. package/dist/adapters/redocly-loader/redocly-schema-loader.cjs +14 -15
  31. package/dist/adapters/redocly-loader/redocly-schema-loader.cjs.map +1 -1
  32. package/dist/adapters/redocly-loader/redocly-schema-loader.mjs +12 -13
  33. package/dist/adapters/redocly-loader/redocly-schema-loader.mjs.map +1 -1
  34. package/dist/adapters/redocly-loader/ref-access.cjs +31 -3
  35. package/dist/adapters/redocly-loader/ref-access.cjs.map +1 -1
  36. package/dist/adapters/redocly-loader/ref-access.mjs +31 -3
  37. package/dist/adapters/redocly-loader/ref-access.mjs.map +1 -1
  38. package/dist/adapters/redocly-loader/ref-holders.cjs +2 -2
  39. package/dist/adapters/redocly-loader/ref-holders.cjs.map +1 -1
  40. package/dist/adapters/redocly-loader/ref-holders.mjs +3 -3
  41. package/dist/adapters/redocly-loader/ref-holders.mjs.map +1 -1
  42. package/dist/adapters/redocly-loader/remote-body-limit.cjs +50 -0
  43. package/dist/adapters/redocly-loader/remote-body-limit.cjs.map +1 -0
  44. package/dist/adapters/redocly-loader/remote-body-limit.mjs +48 -0
  45. package/dist/adapters/redocly-loader/remote-body-limit.mjs.map +1 -0
  46. package/dist/adapters/redocly-loader/remote-fetch.cjs +35 -6
  47. package/dist/adapters/redocly-loader/remote-fetch.cjs.map +1 -1
  48. package/dist/adapters/redocly-loader/remote-fetch.mjs +35 -6
  49. package/dist/adapters/redocly-loader/remote-fetch.mjs.map +1 -1
  50. package/dist/adapters/redocly-loader/remote-node-limit.cjs +47 -0
  51. package/dist/adapters/redocly-loader/remote-node-limit.cjs.map +1 -0
  52. package/dist/adapters/redocly-loader/remote-node-limit.mjs +44 -0
  53. package/dist/adapters/redocly-loader/remote-node-limit.mjs.map +1 -0
  54. package/dist/adapters/redocly-loader/schema-load-errors.cjs +32 -8
  55. package/dist/adapters/redocly-loader/schema-load-errors.cjs.map +1 -1
  56. package/dist/adapters/redocly-loader/schema-load-errors.mjs +32 -9
  57. package/dist/adapters/redocly-loader/schema-load-errors.mjs.map +1 -1
  58. package/dist/adapters/redocly-loader/schema-source.cjs +11 -7
  59. package/dist/adapters/redocly-loader/schema-source.cjs.map +1 -1
  60. package/dist/adapters/redocly-loader/schema-source.mjs +12 -8
  61. package/dist/adapters/redocly-loader/schema-source.mjs.map +1 -1
  62. package/dist/adapters/redocly-loader/unsupported-keys.cjs +3 -5
  63. package/dist/adapters/redocly-loader/unsupported-keys.cjs.map +1 -1
  64. package/dist/adapters/redocly-loader/unsupported-keys.mjs +3 -5
  65. package/dist/adapters/redocly-loader/unsupported-keys.mjs.map +1 -1
  66. package/dist/adapters/terminal-logger/terminal-logger.cjs +6 -4
  67. package/dist/adapters/terminal-logger/terminal-logger.cjs.map +1 -1
  68. package/dist/adapters/terminal-logger/terminal-logger.mjs +6 -4
  69. package/dist/adapters/terminal-logger/terminal-logger.mjs.map +1 -1
  70. package/dist/api/default-ports.cjs +19 -2
  71. package/dist/api/default-ports.cjs.map +1 -1
  72. package/dist/api/default-ports.mjs +19 -3
  73. package/dist/api/default-ports.mjs.map +1 -1
  74. package/dist/api/discriminator-conflict-warnings.cjs +1 -1
  75. package/dist/api/discriminator-conflict-warnings.cjs.map +1 -1
  76. package/dist/api/discriminator-conflict-warnings.mjs +2 -2
  77. package/dist/api/discriminator-conflict-warnings.mjs.map +1 -1
  78. package/dist/api/discriminator-enum-parent.cjs +2 -2
  79. package/dist/api/discriminator-enum-parent.cjs.map +1 -1
  80. package/dist/api/discriminator-enum-parent.mjs +3 -3
  81. package/dist/api/discriminator-enum-parent.mjs.map +1 -1
  82. package/dist/api/discriminator-other-owners.cjs +5 -3
  83. package/dist/api/discriminator-other-owners.cjs.map +1 -1
  84. package/dist/api/discriminator-other-owners.mjs +5 -3
  85. package/dist/api/discriminator-other-owners.mjs.map +1 -1
  86. package/dist/api/discriminator-patch.cjs +8 -4
  87. package/dist/api/discriminator-patch.cjs.map +1 -1
  88. package/dist/api/discriminator-patch.mjs +9 -5
  89. package/dist/api/discriminator-patch.mjs.map +1 -1
  90. package/dist/api/discriminator-scan.cjs +17 -10
  91. package/dist/api/discriminator-scan.cjs.map +1 -1
  92. package/dist/api/discriminator-scan.mjs +18 -11
  93. package/dist/api/discriminator-scan.mjs.map +1 -1
  94. package/dist/api/document-run.cjs +4 -3
  95. package/dist/api/document-run.cjs.map +1 -1
  96. package/dist/api/document-run.mjs +4 -3
  97. package/dist/api/document-run.mjs.map +1 -1
  98. package/dist/api/legacy-callback-warning.cjs +7 -4
  99. package/dist/api/legacy-callback-warning.cjs.map +1 -1
  100. package/dist/api/legacy-callback-warning.mjs +8 -5
  101. package/dist/api/legacy-callback-warning.mjs.map +1 -1
  102. package/dist/api/legacy-utils.cjs.map +1 -1
  103. package/dist/api/legacy-utils.mjs.map +1 -1
  104. package/dist/api/openapi-ts.cjs +9 -5
  105. package/dist/api/openapi-ts.cjs.map +1 -1
  106. package/dist/api/openapi-ts.mjs +10 -7
  107. package/dist/api/openapi-ts.mjs.map +1 -1
  108. package/dist/api/schema-callbacks.cjs +36 -12
  109. package/dist/api/schema-callbacks.cjs.map +1 -1
  110. package/dist/api/schema-callbacks.mjs +36 -12
  111. package/dist/api/schema-callbacks.mjs.map +1 -1
  112. package/dist/api/string-to-ast.cjs +7 -9
  113. package/dist/api/string-to-ast.cjs.map +1 -1
  114. package/dist/api/string-to-ast.mjs +8 -9
  115. package/dist/api/string-to-ast.mjs.map +1 -1
  116. package/dist/api/transform-context.cjs +7 -3
  117. package/dist/api/transform-context.cjs.map +1 -1
  118. package/dist/api/transform-context.mjs +7 -3
  119. package/dist/api/transform-context.mjs.map +1 -1
  120. package/dist/api/transform-schema.cjs +42 -12
  121. package/dist/api/transform-schema.cjs.map +1 -1
  122. package/dist/api/transform-schema.mjs +44 -14
  123. package/dist/api/transform-schema.mjs.map +1 -1
  124. package/dist/application/print/text-writer.cjs +10 -3
  125. package/dist/application/print/text-writer.cjs.map +1 -1
  126. package/dist/application/print/text-writer.mjs +10 -3
  127. package/dist/application/print/text-writer.mjs.map +1 -1
  128. package/dist/application/stack-overflow.cjs +2 -1
  129. package/dist/application/stack-overflow.cjs.map +1 -1
  130. package/dist/application/stack-overflow.mjs +2 -1
  131. package/dist/application/stack-overflow.mjs.map +1 -1
  132. package/dist/application/transform/document/components.cjs +2 -2
  133. package/dist/application/transform/document/components.cjs.map +1 -1
  134. package/dist/application/transform/document/components.mjs +4 -4
  135. package/dist/application/transform/document/components.mjs.map +1 -1
  136. package/dist/application/transform/document/declared-type-names.cjs +23 -0
  137. package/dist/application/transform/document/declared-type-names.cjs.map +1 -0
  138. package/dist/application/transform/document/declared-type-names.mjs +20 -0
  139. package/dist/application/transform/document/declared-type-names.mjs.map +1 -0
  140. package/dist/application/transform/document/defs-root.cjs +1 -1
  141. package/dist/application/transform/document/defs-root.cjs.map +1 -1
  142. package/dist/application/transform/document/defs-root.mjs +2 -2
  143. package/dist/application/transform/document/defs-root.mjs.map +1 -1
  144. package/dist/application/transform/document/document.cjs +4 -1
  145. package/dist/application/transform/document/document.cjs.map +1 -1
  146. package/dist/application/transform/document/document.mjs +3 -2
  147. package/dist/application/transform/document/document.mjs.map +1 -1
  148. package/dist/application/transform/document/enum-names-given-back.cjs +62 -0
  149. package/dist/application/transform/document/enum-names-given-back.cjs.map +1 -0
  150. package/dist/application/transform/document/enum-names-given-back.mjs +58 -0
  151. package/dist/application/transform/document/enum-names-given-back.mjs.map +1 -0
  152. package/dist/application/transform/document/global-type-references.cjs +1 -0
  153. package/dist/application/transform/document/global-type-references.cjs.map +1 -1
  154. package/dist/application/transform/document/global-type-references.mjs +1 -1
  155. package/dist/application/transform/document/global-type-references.mjs.map +1 -1
  156. package/dist/application/transform/document/media-type.cjs +2 -2
  157. package/dist/application/transform/document/media-type.cjs.map +1 -1
  158. package/dist/application/transform/document/media-type.mjs +3 -3
  159. package/dist/application/transform/document/media-type.mjs.map +1 -1
  160. package/dist/application/transform/document/operation-keys-written.cjs +26 -0
  161. package/dist/application/transform/document/operation-keys-written.cjs.map +1 -0
  162. package/dist/application/transform/document/operation-keys-written.mjs +24 -0
  163. package/dist/application/transform/document/operation-keys-written.mjs.map +1 -0
  164. package/dist/application/transform/document/operation.cjs +1 -1
  165. package/dist/application/transform/document/operation.cjs.map +1 -1
  166. package/dist/application/transform/document/operation.mjs +2 -2
  167. package/dist/application/transform/document/operation.mjs.map +1 -1
  168. package/dist/application/transform/document/parameter-entries.cjs +34 -0
  169. package/dist/application/transform/document/parameter-entries.cjs.map +1 -0
  170. package/dist/application/transform/document/parameter-entries.mjs +30 -0
  171. package/dist/application/transform/document/parameter-entries.mjs.map +1 -0
  172. package/dist/application/transform/document/parameter.cjs +12 -4
  173. package/dist/application/transform/document/parameter.cjs.map +1 -1
  174. package/dist/application/transform/document/parameter.mjs +13 -5
  175. package/dist/application/transform/document/parameter.mjs.map +1 -1
  176. package/dist/application/transform/document/parameters.cjs +7 -30
  177. package/dist/application/transform/document/parameters.cjs.map +1 -1
  178. package/dist/application/transform/document/parameters.mjs +8 -31
  179. package/dist/application/transform/document/parameters.mjs.map +1 -1
  180. package/dist/application/transform/document/path-item.cjs +11 -14
  181. package/dist/application/transform/document/path-item.cjs.map +1 -1
  182. package/dist/application/transform/document/path-item.mjs +12 -16
  183. package/dist/application/transform/document/path-item.mjs.map +1 -1
  184. package/dist/application/transform/document/paths-enum.cjs +1 -0
  185. package/dist/application/transform/document/paths-enum.cjs.map +1 -1
  186. package/dist/application/transform/document/paths-enum.mjs +1 -1
  187. package/dist/application/transform/document/paths-enum.mjs.map +1 -1
  188. package/dist/application/transform/document/paths.cjs +6 -2
  189. package/dist/application/transform/document/paths.cjs.map +1 -1
  190. package/dist/application/transform/document/paths.mjs +8 -4
  191. package/dist/application/transform/document/paths.mjs.map +1 -1
  192. package/dist/application/transform/document/referenced-parameter.cjs +80 -0
  193. package/dist/application/transform/document/referenced-parameter.cjs.map +1 -0
  194. package/dist/application/transform/document/referenced-parameter.mjs +78 -0
  195. package/dist/application/transform/document/referenced-parameter.mjs.map +1 -0
  196. package/dist/application/transform/document/request-body.cjs +1 -1
  197. package/dist/application/transform/document/request-body.cjs.map +1 -1
  198. package/dist/application/transform/document/request-body.mjs +2 -2
  199. package/dist/application/transform/document/request-body.mjs.map +1 -1
  200. package/dist/application/transform/document/response.cjs +2 -2
  201. package/dist/application/transform/document/response.cjs.map +1 -1
  202. package/dist/application/transform/document/response.mjs +3 -3
  203. package/dist/application/transform/document/response.mjs.map +1 -1
  204. package/dist/application/transform/document/responses.cjs +1 -1
  205. package/dist/application/transform/document/responses.cjs.map +1 -1
  206. package/dist/application/transform/document/responses.mjs +2 -2
  207. package/dist/application/transform/document/responses.mjs.map +1 -1
  208. package/dist/application/transform/document/root-type-aliases.cjs +8 -23
  209. package/dist/application/transform/document/root-type-aliases.cjs.map +1 -1
  210. package/dist/application/transform/document/root-type-aliases.mjs +8 -24
  211. package/dist/application/transform/document/root-type-aliases.mjs.map +1 -1
  212. package/dist/application/transform/document/type-resolution.cjs +3 -1
  213. package/dist/application/transform/document/type-resolution.cjs.map +1 -1
  214. package/dist/application/transform/document/type-resolution.mjs +3 -1
  215. package/dist/application/transform/document/type-resolution.mjs.map +1 -1
  216. package/dist/application/transform/document/webhooks.cjs +1 -1
  217. package/dist/application/transform/document/webhooks.cjs.map +1 -1
  218. package/dist/application/transform/document/webhooks.mjs +2 -2
  219. package/dist/application/transform/document/webhooks.mjs.map +1 -1
  220. package/dist/application/transform/footer/document-footer.cjs +10 -2
  221. package/dist/application/transform/footer/document-footer.cjs.map +1 -1
  222. package/dist/application/transform/footer/document-footer.mjs +10 -2
  223. package/dist/application/transform/footer/document-footer.mjs.map +1 -1
  224. package/dist/application/transform/footer/enum-name-claims.cjs +48 -0
  225. package/dist/application/transform/footer/enum-name-claims.cjs.map +1 -0
  226. package/dist/application/transform/footer/enum-name-claims.mjs +46 -0
  227. package/dist/application/transform/footer/enum-name-claims.mjs.map +1 -0
  228. package/dist/application/transform/footer/operation-keys.cjs +23 -0
  229. package/dist/application/transform/footer/operation-keys.cjs.map +1 -0
  230. package/dist/application/transform/footer/operation-keys.mjs +21 -0
  231. package/dist/application/transform/footer/operation-keys.mjs.map +1 -0
  232. package/dist/application/transform/footer/type-evaluation.cjs +4 -4
  233. package/dist/application/transform/footer/type-evaluation.cjs.map +1 -1
  234. package/dist/application/transform/footer/type-evaluation.mjs +4 -4
  235. package/dist/application/transform/footer/type-evaluation.mjs.map +1 -1
  236. package/dist/application/transform/helper-types.cjs +1 -1
  237. package/dist/application/transform/helper-types.cjs.map +1 -1
  238. package/dist/application/transform/helper-types.mjs +1 -1
  239. package/dist/application/transform/helper-types.mjs.map +1 -1
  240. package/dist/application/transform/numbered-names.cjs +9 -0
  241. package/dist/application/transform/numbered-names.cjs.map +1 -1
  242. package/dist/application/transform/numbered-names.mjs +9 -1
  243. package/dist/application/transform/numbered-names.mjs.map +1 -1
  244. package/dist/application/transform/ref-pointer/generated-location.cjs +1 -1
  245. package/dist/application/transform/ref-pointer/generated-location.cjs.map +1 -1
  246. package/dist/application/transform/ref-pointer/generated-location.mjs +2 -2
  247. package/dist/application/transform/ref-pointer/generated-location.mjs.map +1 -1
  248. package/dist/application/transform/ref-pointer/pointer-type.cjs +1 -1
  249. package/dist/application/transform/ref-pointer/pointer-type.cjs.map +1 -1
  250. package/dist/application/transform/ref-pointer/pointer-type.mjs +2 -2
  251. package/dist/application/transform/ref-pointer/pointer-type.mjs.map +1 -1
  252. package/dist/application/transform/ref-type.cjs +2 -1
  253. package/dist/application/transform/ref-type.cjs.map +1 -1
  254. package/dist/application/transform/ref-type.mjs +2 -1
  255. package/dist/application/transform/ref-type.mjs.map +1 -1
  256. package/dist/application/transform/schema/access-flags.cjs +1 -1
  257. package/dist/application/transform/schema/access-flags.cjs.map +1 -1
  258. package/dist/application/transform/schema/access-flags.mjs +2 -2
  259. package/dist/application/transform/schema/access-flags.mjs.map +1 -1
  260. package/dist/application/transform/schema/array-type.cjs +2 -2
  261. package/dist/application/transform/schema/array-type.cjs.map +1 -1
  262. package/dist/application/transform/schema/array-type.mjs +3 -3
  263. package/dist/application/transform/schema/array-type.mjs.map +1 -1
  264. package/dist/application/transform/schema/composition-type.cjs +4 -4
  265. package/dist/application/transform/schema/composition-type.cjs.map +1 -1
  266. package/dist/application/transform/schema/composition-type.mjs +6 -6
  267. package/dist/application/transform/schema/composition-type.mjs.map +1 -1
  268. package/dist/application/transform/schema/enum-rule.cjs +4 -6
  269. package/dist/application/transform/schema/enum-rule.cjs.map +1 -1
  270. package/dist/application/transform/schema/enum-rule.mjs +6 -8
  271. package/dist/application/transform/schema/enum-rule.mjs.map +1 -1
  272. package/dist/application/transform/schema/object-type.cjs +3 -3
  273. package/dist/application/transform/schema/object-type.cjs.map +1 -1
  274. package/dist/application/transform/schema/object-type.mjs +4 -4
  275. package/dist/application/transform/schema/object-type.mjs.map +1 -1
  276. package/dist/application/transform/schema/presence-members.cjs +1 -1
  277. package/dist/application/transform/schema/presence-members.cjs.map +1 -1
  278. package/dist/application/transform/schema/presence-members.mjs +2 -2
  279. package/dist/application/transform/schema/presence-members.mjs.map +1 -1
  280. package/dist/application/transform/schema/ref-siblings.cjs +47 -0
  281. package/dist/application/transform/schema/ref-siblings.cjs.map +1 -0
  282. package/dist/application/transform/schema/ref-siblings.mjs +45 -0
  283. package/dist/application/transform/schema/ref-siblings.mjs.map +1 -0
  284. package/dist/application/transform/schema/required-variants.cjs +2 -2
  285. package/dist/application/transform/schema/required-variants.cjs.map +1 -1
  286. package/dist/application/transform/schema/required-variants.mjs +3 -3
  287. package/dist/application/transform/schema/required-variants.mjs.map +1 -1
  288. package/dist/application/transform/schema/schema-transform.cjs +4 -2
  289. package/dist/application/transform/schema/schema-transform.cjs.map +1 -1
  290. package/dist/application/transform/schema/schema-transform.mjs +4 -2
  291. package/dist/application/transform/schema/schema-transform.mjs.map +1 -1
  292. package/dist/application/transform/schema/unevaluated-properties.cjs +1 -1
  293. package/dist/application/transform/schema/unevaluated-properties.cjs.map +1 -1
  294. package/dist/application/transform/schema/unevaluated-properties.mjs +2 -2
  295. package/dist/application/transform/schema/unevaluated-properties.mjs.map +1 -1
  296. package/dist/application/transform/schema-comment.cjs +6 -2
  297. package/dist/application/transform/schema-comment.cjs.map +1 -1
  298. package/dist/application/transform/schema-comment.mjs +7 -3
  299. package/dist/application/transform/schema-comment.mjs.map +1 -1
  300. package/dist/cli/api-settings.cjs +62 -6
  301. package/dist/cli/api-settings.cjs.map +1 -1
  302. package/dist/cli/api-settings.mjs +60 -7
  303. package/dist/cli/api-settings.mjs.map +1 -1
  304. package/dist/cli/api-writes.cjs +72 -0
  305. package/dist/cli/api-writes.cjs.map +1 -0
  306. package/dist/cli/api-writes.mjs +69 -0
  307. package/dist/cli/api-writes.mjs.map +1 -0
  308. package/dist/cli/cli-errors.cjs +12 -1
  309. package/dist/cli/cli-errors.cjs.map +1 -1
  310. package/dist/cli/cli-errors.mjs +12 -1
  311. package/dist/cli/cli-errors.mjs.map +1 -1
  312. package/dist/cli/cli-output.cjs +106 -1
  313. package/dist/cli/cli-output.cjs.map +1 -1
  314. package/dist/cli/cli-output.mjs +99 -2
  315. package/dist/cli/cli-output.mjs.map +1 -1
  316. package/dist/cli/main.cjs +5 -1
  317. package/dist/cli/main.cjs.map +1 -1
  318. package/dist/cli/main.mjs +6 -2
  319. package/dist/cli/main.mjs.map +1 -1
  320. package/dist/cli/redocly-apis.cjs +82 -36
  321. package/dist/cli/redocly-apis.cjs.map +1 -1
  322. package/dist/cli/redocly-apis.mjs +85 -39
  323. package/dist/cli/redocly-apis.mjs.map +1 -1
  324. package/dist/cli/run-cli.cjs +13 -7
  325. package/dist/cli/run-cli.cjs.map +1 -1
  326. package/dist/cli/run-cli.mjs +14 -8
  327. package/dist/cli/run-cli.mjs.map +1 -1
  328. package/dist/domain/append-all.cjs +10 -0
  329. package/dist/domain/append-all.cjs.map +1 -0
  330. package/dist/domain/append-all.mjs +8 -0
  331. package/dist/domain/append-all.mjs.map +1 -0
  332. package/dist/domain/cause-secrets.cjs +37 -0
  333. package/dist/domain/cause-secrets.cjs.map +1 -0
  334. package/dist/domain/cause-secrets.mjs +35 -0
  335. package/dist/domain/cause-secrets.mjs.map +1 -0
  336. package/dist/domain/deprecations.cjs +11 -0
  337. package/dist/domain/deprecations.cjs.map +1 -0
  338. package/dist/domain/deprecations.mjs +9 -0
  339. package/dist/domain/deprecations.mjs.map +1 -0
  340. package/dist/domain/errors.cjs +9 -3
  341. package/dist/domain/errors.cjs.map +1 -1
  342. package/dist/domain/errors.mjs +9 -3
  343. package/dist/domain/errors.mjs.map +1 -1
  344. package/dist/domain/ir/identifier-text.cjs.map +1 -1
  345. package/dist/domain/ir/identifier-text.mjs +1 -1
  346. package/dist/domain/ir/identifier-text.mjs.map +1 -1
  347. package/dist/domain/ir/ir-shape.cjs +187 -0
  348. package/dist/domain/ir/ir-shape.cjs.map +1 -0
  349. package/dist/domain/ir/ir-shape.mjs +184 -0
  350. package/dist/domain/ir/ir-shape.mjs.map +1 -0
  351. package/dist/domain/ir/newer-identifier-ranges.cjs +182 -29
  352. package/dist/domain/ir/newer-identifier-ranges.cjs.map +1 -1
  353. package/dist/domain/ir/newer-identifier-ranges.mjs +182 -29
  354. package/dist/domain/ir/newer-identifier-ranges.mjs.map +1 -1
  355. package/dist/domain/openapi/alias-expansion.cjs +3 -1
  356. package/dist/domain/openapi/alias-expansion.cjs.map +1 -1
  357. package/dist/domain/openapi/alias-expansion.mjs +3 -1
  358. package/dist/domain/openapi/alias-expansion.mjs.map +1 -1
  359. package/dist/domain/openapi/discriminated-union.cjs +3 -3
  360. package/dist/domain/openapi/discriminated-union.cjs.map +1 -1
  361. package/dist/domain/openapi/discriminated-union.mjs +4 -4
  362. package/dist/domain/openapi/discriminated-union.mjs.map +1 -1
  363. package/dist/domain/openapi/discriminator-conflicts.cjs +10 -6
  364. package/dist/domain/openapi/discriminator-conflicts.cjs.map +1 -1
  365. package/dist/domain/openapi/discriminator-conflicts.mjs +11 -7
  366. package/dist/domain/openapi/discriminator-conflicts.mjs.map +1 -1
  367. package/dist/domain/openapi/json-pointer.cjs +43 -1
  368. package/dist/domain/openapi/json-pointer.cjs.map +1 -1
  369. package/dist/domain/openapi/json-pointer.mjs +40 -2
  370. package/dist/domain/openapi/json-pointer.mjs.map +1 -1
  371. package/dist/domain/openapi/schema-dialect.cjs +15 -0
  372. package/dist/domain/openapi/schema-dialect.cjs.map +1 -0
  373. package/dist/domain/openapi/schema-dialect.mjs +12 -0
  374. package/dist/domain/openapi/schema-dialect.mjs.map +1 -0
  375. package/dist/domain/openapi/unsupported-features.cjs +1 -1
  376. package/dist/domain/openapi/unsupported-features.cjs.map +1 -1
  377. package/dist/domain/openapi/unsupported-features.mjs +2 -2
  378. package/dist/domain/openapi/unsupported-features.mjs.map +1 -1
  379. package/dist/domain/output-fixes.cjs +25 -14
  380. package/dist/domain/output-fixes.cjs.map +1 -1
  381. package/dist/domain/output-fixes.mjs +25 -13
  382. package/dist/domain/output-fixes.mjs.map +1 -1
  383. package/dist/domain/url-secrets.cjs +48 -0
  384. package/dist/domain/url-secrets.cjs.map +1 -0
  385. package/dist/domain/url-secrets.mjs +45 -0
  386. package/dist/domain/url-secrets.mjs.map +1 -0
  387. package/dist/domain/warnings.cjs +0 -1
  388. package/dist/domain/warnings.cjs.map +1 -1
  389. package/dist/domain/warnings.mjs +0 -1
  390. package/dist/domain/warnings.mjs.map +1 -1
  391. package/dist/index.cjs +2 -3
  392. package/dist/index.cjs.map +1 -1
  393. package/dist/index.d.cts +57 -20
  394. package/dist/index.d.mts +57 -20
  395. package/dist/index.d.ts +57 -20
  396. package/dist/index.mjs +3 -2
  397. package/dist/index.mjs.map +1 -1
  398. package/package.json +5 -6
  399. package/src/adapters/node-deprecations/node-deprecations.ts +14 -0
  400. package/src/adapters/node-file-system/file-claims.ts +138 -0
  401. package/src/adapters/node-file-system/file-identity.ts +137 -0
  402. package/src/adapters/node-file-system/node-file-system.ts +145 -18
  403. package/src/adapters/redocly-loader/bundled-mapping-copies.ts +95 -0
  404. package/src/adapters/redocly-loader/bundled-ref-repair.ts +2 -2
  405. package/src/adapters/redocly-loader/loaded-documents.ts +46 -0
  406. package/src/adapters/redocly-loader/redocly-schema-loader.ts +18 -24
  407. package/src/adapters/redocly-loader/ref-access.ts +37 -3
  408. package/src/adapters/redocly-loader/ref-holders.ts +3 -3
  409. package/src/adapters/redocly-loader/remote-body-limit.ts +66 -0
  410. package/src/adapters/redocly-loader/remote-fetch.ts +74 -11
  411. package/src/adapters/redocly-loader/remote-node-limit.ts +62 -0
  412. package/src/adapters/redocly-loader/schema-load-errors.ts +52 -13
  413. package/src/adapters/redocly-loader/schema-source.ts +20 -8
  414. package/src/adapters/redocly-loader/unsupported-keys.ts +3 -7
  415. package/src/adapters/terminal-logger/terminal-logger.ts +10 -5
  416. package/src/api/default-ports.ts +40 -4
  417. package/src/api/discriminator-conflict-warnings.ts +2 -2
  418. package/src/api/discriminator-enum-parent.ts +3 -3
  419. package/src/api/discriminator-other-owners.ts +5 -3
  420. package/src/api/discriminator-patch.ts +9 -6
  421. package/src/api/discriminator-scan.ts +19 -11
  422. package/src/api/document-run.ts +9 -3
  423. package/src/api/legacy-callback-warning.ts +13 -6
  424. package/src/api/legacy-utils.ts +5 -1
  425. package/src/api/openapi-ts.ts +26 -7
  426. package/src/api/run-context.ts +6 -0
  427. package/src/api/schema-callbacks.ts +60 -17
  428. package/src/api/string-to-ast.ts +11 -15
  429. package/src/api/transform-context.ts +7 -3
  430. package/src/api/transform-schema.ts +67 -15
  431. package/src/application/ports/deprecation-reporter.ts +9 -0
  432. package/src/application/ports/file-system.ts +39 -0
  433. package/src/application/ports/schema-loader.ts +11 -1
  434. package/src/application/print/text-writer.ts +10 -3
  435. package/src/application/stack-overflow.ts +9 -5
  436. package/src/application/transform/document/components.ts +4 -4
  437. package/src/application/transform/document/declared-type-names.ts +36 -0
  438. package/src/application/transform/document/defs-root.ts +2 -2
  439. package/src/application/transform/document/document.ts +4 -3
  440. package/src/application/transform/document/enum-names-given-back.ts +91 -0
  441. package/src/application/transform/document/global-type-references.ts +1 -1
  442. package/src/application/transform/document/media-type.ts +4 -3
  443. package/src/application/transform/document/operation-keys-written.ts +27 -0
  444. package/src/application/transform/document/operation.ts +2 -2
  445. package/src/application/transform/document/parameter-entries.ts +70 -0
  446. package/src/application/transform/document/parameter.ts +21 -9
  447. package/src/application/transform/document/parameters.ts +13 -58
  448. package/src/application/transform/document/path-item.ts +13 -31
  449. package/src/application/transform/document/paths-enum.ts +1 -1
  450. package/src/application/transform/document/paths.ts +8 -4
  451. package/src/application/transform/document/referenced-parameter.ts +146 -0
  452. package/src/application/transform/document/request-body.ts +2 -2
  453. package/src/application/transform/document/response.ts +3 -3
  454. package/src/application/transform/document/responses.ts +2 -2
  455. package/src/application/transform/document/root-type-aliases.ts +17 -38
  456. package/src/application/transform/document/type-resolution.ts +2 -1
  457. package/src/application/transform/document/webhooks.ts +2 -2
  458. package/src/application/transform/footer/document-footer.ts +18 -1
  459. package/src/application/transform/footer/enum-name-claims.ts +62 -0
  460. package/src/application/transform/footer/operation-keys.ts +28 -0
  461. package/src/application/transform/footer/type-evaluation.ts +4 -4
  462. package/src/application/transform/helper-types.ts +6 -5
  463. package/src/application/transform/numbered-names.ts +15 -0
  464. package/src/application/transform/ref-pointer/generated-location.ts +2 -2
  465. package/src/application/transform/ref-pointer/pointer-type.ts +2 -4
  466. package/src/application/transform/ref-type.ts +2 -1
  467. package/src/application/transform/schema/access-flags.ts +2 -2
  468. package/src/application/transform/schema/array-type.ts +3 -5
  469. package/src/application/transform/schema/composition-type.ts +6 -6
  470. package/src/application/transform/schema/enum-rule.ts +10 -8
  471. package/src/application/transform/schema/object-type.ts +4 -4
  472. package/src/application/transform/schema/presence-members.ts +2 -2
  473. package/src/application/transform/schema/ref-siblings.ts +76 -0
  474. package/src/application/transform/schema/required-variants.ts +3 -3
  475. package/src/application/transform/schema/schema-context.ts +3 -0
  476. package/src/application/transform/schema/schema-transform.ts +4 -2
  477. package/src/application/transform/schema/unevaluated-properties.ts +2 -2
  478. package/src/application/transform/schema-comment.ts +7 -3
  479. package/src/application/transform/transform-context.ts +5 -0
  480. package/src/cli/api-settings.ts +82 -7
  481. package/src/cli/api-writes.ts +117 -0
  482. package/src/cli/cli-dependencies.ts +21 -4
  483. package/src/cli/cli-errors.ts +20 -1
  484. package/src/cli/cli-output.ts +186 -7
  485. package/src/cli/main.ts +6 -3
  486. package/src/cli/redocly-apis.ts +153 -48
  487. package/src/cli/run-cli.ts +37 -8
  488. package/src/domain/append-all.ts +10 -0
  489. package/src/domain/cause-secrets.ts +52 -0
  490. package/src/domain/deprecations.ts +15 -0
  491. package/src/domain/errors.ts +22 -7
  492. package/src/domain/ir/identifier-text.ts +6 -5
  493. package/src/domain/ir/ir-shape.ts +299 -0
  494. package/src/domain/ir/newer-identifier-ranges.ts +183 -30
  495. package/src/domain/openapi/alias-expansion.ts +4 -1
  496. package/src/domain/openapi/discriminated-union.ts +6 -4
  497. package/src/domain/openapi/discriminator-conflicts.ts +21 -7
  498. package/src/domain/openapi/document-object.ts +2 -0
  499. package/src/domain/openapi/json-pointer.ts +96 -7
  500. package/src/domain/openapi/schema-dialect.ts +22 -0
  501. package/src/domain/openapi/unsupported-features.ts +2 -2
  502. package/src/domain/output-fixes.ts +37 -18
  503. package/src/domain/url-secrets.ts +72 -0
  504. package/src/domain/warnings.ts +0 -1
  505. package/src/index.ts +2 -6
  506. package/src/types/generator-options.ts +1 -1
  507. package/dist/cli/main.d.cts +0 -2
  508. package/dist/cli/main.d.mts +0 -2
  509. package/dist/cli/main.d.ts +0 -2
  510. package/dist/domain/url-credentials.cjs +0 -10
  511. package/dist/domain/url-credentials.cjs.map +0 -1
  512. package/dist/domain/url-credentials.mjs +0 -8
  513. package/dist/domain/url-credentials.mjs.map +0 -1
  514. package/src/domain/url-credentials.ts +0 -18
@@ -1,22 +1,52 @@
1
1
  // Generated by scripts/identifier-ranges.ts (Node.js 26.0.0, Unicode
2
- // 17.0, TypeScript 5.9.3). Do not edit.
2
+ // 17.0, TypeScript 5.4.5). Do not edit.
3
3
 
4
4
  /** `ID_Start` code points that TypeScript's scanner does not accept, as regex class items. */
5
5
  export const NEWER_IDENTIFIER_START: readonly string[] = [
6
- "\\u{88F}",
7
- "\\u{C5C}",
8
- "\\u{CDC}",
6
+ "\\u{870}-\\u{887}",
7
+ "\\u{889}-\\u{88F}",
8
+ "\\u{8B5}",
9
+ "\\u{8BE}-\\u{8C9}",
10
+ "\\u{C5C}-\\u{C5D}",
11
+ "\\u{CDC}-\\u{CDD}",
12
+ "\\u{D04}",
13
+ "\\u{170D}",
14
+ "\\u{171F}",
15
+ "\\u{1B4C}",
9
16
  "\\u{1C89}-\\u{1C8A}",
10
- "\\u{A7CB}-\\u{A7CF}",
11
- "\\u{A7D2}",
12
- "\\u{A7D4}",
13
- "\\u{A7DA}-\\u{A7DC}",
14
- "\\u{A7F1}",
17
+ "\\u{2C2F}",
18
+ "\\u{2C5F}",
19
+ "\\u{31BB}-\\u{31BF}",
20
+ "\\u{4DB6}-\\u{4DBF}",
21
+ "\\u{9FF0}-\\u{9FFF}",
22
+ "\\u{A7C0}-\\u{A7C1}",
23
+ "\\u{A7C7}-\\u{A7DC}",
24
+ "\\u{A7F1}-\\u{A7F6}",
25
+ "\\u{AB68}-\\u{AB69}",
26
+ "\\u{10570}-\\u{1057A}",
27
+ "\\u{1057C}-\\u{1058A}",
28
+ "\\u{1058C}-\\u{10592}",
29
+ "\\u{10594}-\\u{10595}",
30
+ "\\u{10597}-\\u{105A1}",
31
+ "\\u{105A3}-\\u{105B1}",
32
+ "\\u{105B3}-\\u{105B9}",
33
+ "\\u{105BB}-\\u{105BC}",
15
34
  "\\u{105C0}-\\u{105F3}",
35
+ "\\u{10780}-\\u{10785}",
36
+ "\\u{10787}-\\u{107B0}",
37
+ "\\u{107B2}-\\u{107BA}",
16
38
  "\\u{10940}-\\u{10959}",
17
39
  "\\u{10D4A}-\\u{10D65}",
18
40
  "\\u{10D6F}-\\u{10D85}",
41
+ "\\u{10E80}-\\u{10EA9}",
42
+ "\\u{10EB0}-\\u{10EB1}",
19
43
  "\\u{10EC2}-\\u{10EC7}",
44
+ "\\u{10F70}-\\u{10F81}",
45
+ "\\u{10FB0}-\\u{10FC4}",
46
+ "\\u{11071}-\\u{11072}",
47
+ "\\u{11075}",
48
+ "\\u{11147}",
49
+ "\\u{1123F}-\\u{11240}",
20
50
  "\\u{11380}-\\u{11389}",
21
51
  "\\u{1138B}",
22
52
  "\\u{1138E}",
@@ -24,18 +54,47 @@ export const NEWER_IDENTIFIER_START: readonly string[] = [
24
54
  "\\u{113B7}",
25
55
  "\\u{113D1}",
26
56
  "\\u{113D3}",
57
+ "\\u{11460}-\\u{11461}",
58
+ "\\u{11740}-\\u{11746}",
59
+ "\\u{11900}-\\u{11906}",
60
+ "\\u{11909}",
61
+ "\\u{1190C}-\\u{11913}",
62
+ "\\u{11915}-\\u{11916}",
63
+ "\\u{11918}-\\u{1192F}",
64
+ "\\u{1193F}",
65
+ "\\u{11941}",
66
+ "\\u{11AB0}-\\u{11ABF}",
27
67
  "\\u{11BC0}-\\u{11BE0}",
28
68
  "\\u{11DB0}-\\u{11DDB}",
69
+ "\\u{11F02}",
70
+ "\\u{11F04}-\\u{11F10}",
71
+ "\\u{11F12}-\\u{11F33}",
72
+ "\\u{11FB0}",
73
+ "\\u{12F90}-\\u{12FF0}",
74
+ "\\u{1342F}",
75
+ "\\u{13441}-\\u{13446}",
29
76
  "\\u{13460}-\\u{143FA}",
30
77
  "\\u{16100}-\\u{1611D}",
78
+ "\\u{16A70}-\\u{16ABE}",
31
79
  "\\u{16D40}-\\u{16D6C}",
32
80
  "\\u{16EA0}-\\u{16EB8}",
33
81
  "\\u{16EBB}-\\u{16ED3}",
34
82
  "\\u{16FF2}-\\u{16FF6}",
35
83
  "\\u{187F8}-\\u{187FF}",
36
- "\\u{18CFF}",
37
- "\\u{18D09}-\\u{18D1E}",
84
+ "\\u{18AF3}-\\u{18CD5}",
85
+ "\\u{18CFF}-\\u{18D1E}",
38
86
  "\\u{18D80}-\\u{18DF2}",
87
+ "\\u{1AFF0}-\\u{1AFF3}",
88
+ "\\u{1AFF5}-\\u{1AFFB}",
89
+ "\\u{1AFFD}-\\u{1AFFE}",
90
+ "\\u{1B11F}-\\u{1B122}",
91
+ "\\u{1B132}",
92
+ "\\u{1B155}",
93
+ "\\u{1DF00}-\\u{1DF1E}",
94
+ "\\u{1DF25}-\\u{1DF2A}",
95
+ "\\u{1E030}-\\u{1E06D}",
96
+ "\\u{1E290}-\\u{1E2AD}",
97
+ "\\u{1E4D0}-\\u{1E4EB}",
39
98
  "\\u{1E5D0}-\\u{1E5ED}",
40
99
  "\\u{1E5F0}",
41
100
  "\\u{1E6C0}-\\u{1E6DE}",
@@ -44,32 +103,83 @@ export const NEWER_IDENTIFIER_START: readonly string[] = [
44
103
  "\\u{1E6E7}-\\u{1E6ED}",
45
104
  "\\u{1E6F0}-\\u{1E6F4}",
46
105
  "\\u{1E6FE}-\\u{1E6FF}",
47
- "\\u{2B73A}-\\u{2B73F}",
106
+ "\\u{1E7E0}-\\u{1E7E6}",
107
+ "\\u{1E7E8}-\\u{1E7EB}",
108
+ "\\u{1E7ED}-\\u{1E7EE}",
109
+ "\\u{1E7F0}-\\u{1E7FE}",
110
+ "\\u{2A6D7}-\\u{2A6DF}",
111
+ "\\u{2B735}-\\u{2B73F}",
48
112
  "\\u{2CEA2}-\\u{2CEAD}",
49
- "\\u{323B0}-\\u{33479}",
113
+ "\\u{2EBF0}-\\u{2EE5D}",
114
+ "\\u{30000}-\\u{3134A}",
115
+ "\\u{31350}-\\u{33479}",
50
116
  ];
51
117
 
52
118
  /** `ID_Continue` code points that TypeScript's scanner does not accept, as regex class items. */
53
119
  export const NEWER_IDENTIFIER_PART: readonly string[] = [
54
- "\\u{88F}",
55
- "\\u{897}",
56
- "\\u{C5C}",
57
- "\\u{CDC}",
58
- "\\u{1ACF}-\\u{1ADD}",
120
+ "\\u{870}-\\u{887}",
121
+ "\\u{889}-\\u{88F}",
122
+ "\\u{897}-\\u{89F}",
123
+ "\\u{8B5}",
124
+ "\\u{8BE}-\\u{8D2}",
125
+ "\\u{B55}",
126
+ "\\u{C3C}",
127
+ "\\u{C5C}-\\u{C5D}",
128
+ "\\u{CDC}-\\u{CDD}",
129
+ "\\u{CF3}",
130
+ "\\u{D04}",
131
+ "\\u{D81}",
132
+ "\\u{ECE}",
133
+ "\\u{170D}",
134
+ "\\u{1715}",
135
+ "\\u{171F}",
136
+ "\\u{180F}",
137
+ "\\u{1ABF}-\\u{1ADD}",
59
138
  "\\u{1AE0}-\\u{1AEB}",
139
+ "\\u{1B4C}",
60
140
  "\\u{1C89}-\\u{1C8A}",
61
- "\\u{A7CB}-\\u{A7CF}",
62
- "\\u{A7D2}",
63
- "\\u{A7D4}",
64
- "\\u{A7DA}-\\u{A7DC}",
65
- "\\u{A7F1}",
141
+ "\\u{1DFA}",
142
+ "\\u{200C}-\\u{200D}",
143
+ "\\u{2C2F}",
144
+ "\\u{2C5F}",
145
+ "\\u{30FB}",
146
+ "\\u{31BB}-\\u{31BF}",
147
+ "\\u{4DB6}-\\u{4DBF}",
148
+ "\\u{9FF0}-\\u{9FFF}",
149
+ "\\u{A7C0}-\\u{A7C1}",
150
+ "\\u{A7C7}-\\u{A7DC}",
151
+ "\\u{A7F1}-\\u{A7F6}",
152
+ "\\u{A82C}",
153
+ "\\u{AB68}-\\u{AB69}",
154
+ "\\u{FF65}",
155
+ "\\u{10570}-\\u{1057A}",
156
+ "\\u{1057C}-\\u{1058A}",
157
+ "\\u{1058C}-\\u{10592}",
158
+ "\\u{10594}-\\u{10595}",
159
+ "\\u{10597}-\\u{105A1}",
160
+ "\\u{105A3}-\\u{105B1}",
161
+ "\\u{105B3}-\\u{105B9}",
162
+ "\\u{105BB}-\\u{105BC}",
66
163
  "\\u{105C0}-\\u{105F3}",
164
+ "\\u{10780}-\\u{10785}",
165
+ "\\u{10787}-\\u{107B0}",
166
+ "\\u{107B2}-\\u{107BA}",
67
167
  "\\u{10940}-\\u{10959}",
68
168
  "\\u{10D40}-\\u{10D65}",
69
169
  "\\u{10D69}-\\u{10D6D}",
70
170
  "\\u{10D6F}-\\u{10D85}",
171
+ "\\u{10E80}-\\u{10EA9}",
172
+ "\\u{10EAB}-\\u{10EAC}",
173
+ "\\u{10EB0}-\\u{10EB1}",
71
174
  "\\u{10EC2}-\\u{10EC7}",
72
- "\\u{10EFA}-\\u{10EFC}",
175
+ "\\u{10EFA}-\\u{10EFF}",
176
+ "\\u{10F70}-\\u{10F85}",
177
+ "\\u{10FB0}-\\u{10FC4}",
178
+ "\\u{11070}-\\u{11075}",
179
+ "\\u{110C2}",
180
+ "\\u{11147}",
181
+ "\\u{111CE}-\\u{111CF}",
182
+ "\\u{1123F}-\\u{11241}",
73
183
  "\\u{11380}-\\u{11389}",
74
184
  "\\u{1138B}",
75
185
  "\\u{1138E}",
@@ -80,30 +190,73 @@ export const NEWER_IDENTIFIER_PART: readonly string[] = [
80
190
  "\\u{113C7}-\\u{113CA}",
81
191
  "\\u{113CC}-\\u{113D3}",
82
192
  "\\u{113E1}-\\u{113E2}",
193
+ "\\u{11460}-\\u{11461}",
83
194
  "\\u{116D0}-\\u{116E3}",
195
+ "\\u{11740}-\\u{11746}",
196
+ "\\u{11900}-\\u{11906}",
197
+ "\\u{11909}",
198
+ "\\u{1190C}-\\u{11913}",
199
+ "\\u{11915}-\\u{11916}",
200
+ "\\u{11918}-\\u{11935}",
201
+ "\\u{11937}-\\u{11938}",
202
+ "\\u{1193B}-\\u{11943}",
203
+ "\\u{11950}-\\u{11959}",
204
+ "\\u{11AB0}-\\u{11ABF}",
84
205
  "\\u{11B60}-\\u{11B67}",
85
206
  "\\u{11BC0}-\\u{11BE0}",
86
207
  "\\u{11BF0}-\\u{11BF9}",
87
208
  "\\u{11DB0}-\\u{11DDB}",
88
209
  "\\u{11DE0}-\\u{11DE9}",
89
- "\\u{11F5A}",
210
+ "\\u{11F00}-\\u{11F10}",
211
+ "\\u{11F12}-\\u{11F3A}",
212
+ "\\u{11F3E}-\\u{11F42}",
213
+ "\\u{11F50}-\\u{11F5A}",
214
+ "\\u{11FB0}",
215
+ "\\u{12F90}-\\u{12FF0}",
216
+ "\\u{1342F}",
217
+ "\\u{13440}-\\u{13455}",
90
218
  "\\u{13460}-\\u{143FA}",
91
219
  "\\u{16100}-\\u{16139}",
220
+ "\\u{16A70}-\\u{16ABE}",
221
+ "\\u{16AC0}-\\u{16AC9}",
92
222
  "\\u{16D40}-\\u{16D6C}",
93
223
  "\\u{16D70}-\\u{16D79}",
94
224
  "\\u{16EA0}-\\u{16EB8}",
95
225
  "\\u{16EBB}-\\u{16ED3}",
96
- "\\u{16FF2}-\\u{16FF6}",
226
+ "\\u{16FE4}",
227
+ "\\u{16FF0}-\\u{16FF6}",
97
228
  "\\u{187F8}-\\u{187FF}",
98
- "\\u{18CFF}",
99
- "\\u{18D09}-\\u{18D1E}",
229
+ "\\u{18AF3}-\\u{18CD5}",
230
+ "\\u{18CFF}-\\u{18D1E}",
100
231
  "\\u{18D80}-\\u{18DF2}",
232
+ "\\u{1AFF0}-\\u{1AFF3}",
233
+ "\\u{1AFF5}-\\u{1AFFB}",
234
+ "\\u{1AFFD}-\\u{1AFFE}",
235
+ "\\u{1B11F}-\\u{1B122}",
236
+ "\\u{1B132}",
237
+ "\\u{1B155}",
101
238
  "\\u{1CCF0}-\\u{1CCF9}",
239
+ "\\u{1CF00}-\\u{1CF2D}",
240
+ "\\u{1CF30}-\\u{1CF46}",
241
+ "\\u{1DF00}-\\u{1DF1E}",
242
+ "\\u{1DF25}-\\u{1DF2A}",
243
+ "\\u{1E030}-\\u{1E06D}",
244
+ "\\u{1E08F}",
245
+ "\\u{1E290}-\\u{1E2AE}",
246
+ "\\u{1E4D0}-\\u{1E4F9}",
102
247
  "\\u{1E5D0}-\\u{1E5FA}",
103
248
  "\\u{1E6C0}-\\u{1E6DE}",
104
249
  "\\u{1E6E0}-\\u{1E6F5}",
105
250
  "\\u{1E6FE}-\\u{1E6FF}",
106
- "\\u{2B73A}-\\u{2B73F}",
251
+ "\\u{1E7E0}-\\u{1E7E6}",
252
+ "\\u{1E7E8}-\\u{1E7EB}",
253
+ "\\u{1E7ED}-\\u{1E7EE}",
254
+ "\\u{1E7F0}-\\u{1E7FE}",
255
+ "\\u{1FBF0}-\\u{1FBF9}",
256
+ "\\u{2A6D7}-\\u{2A6DF}",
257
+ "\\u{2B735}-\\u{2B73F}",
107
258
  "\\u{2CEA2}-\\u{2CEAD}",
108
- "\\u{323B0}-\\u{33479}",
259
+ "\\u{2EBF0}-\\u{2EE5D}",
260
+ "\\u{30000}-\\u{3134A}",
261
+ "\\u{31350}-\\u{33479}",
109
262
  ];
@@ -53,7 +53,10 @@ export function countNodes(root: unknown): NodeCounts {
53
53
  ? childrenOf(node).filter((child) => isContainer(child) && !entered.has(child))
54
54
  : [];
55
55
  if (pending.length > 0) {
56
- stack.push(...(pending as object[]));
56
+ // One push per child: spreading an array of millions of children overflows the stack.
57
+ for (const child of pending as object[]) {
58
+ stack.push(child);
59
+ }
57
60
  continue;
58
61
  }
59
62
  stack.pop();
@@ -1,4 +1,4 @@
1
- import { escapePointerSegment } from "./json-pointer.js";
1
+ import { canonicalRef, escapePointerSegment } from "./json-pointer.js";
2
2
  import type { Schema, SchemaObject } from "./schema-object.js";
3
3
 
4
4
  /**
@@ -51,7 +51,7 @@ function reaches(schema: Schema, search: Search): boolean {
51
51
  }
52
52
  const ref = (schema as { readonly $ref?: unknown }).$ref;
53
53
  if (typeof ref === "string") {
54
- if (ref === search.target) {
54
+ if (canonicalRef(ref) === canonicalRef(search.target)) {
55
55
  return true;
56
56
  }
57
57
  if (search.visited.has(ref)) {
@@ -84,7 +84,9 @@ function mappingRef(target: unknown): string | undefined {
84
84
  if (typeof target !== "string") {
85
85
  return undefined;
86
86
  }
87
- return target.startsWith("#") ? target : `${COMPONENT_SCHEMAS}${escapePointerSegment(target)}`;
87
+ return target.startsWith("#")
88
+ ? canonicalRef(target)
89
+ : `${COMPONENT_SCHEMAS}${escapePointerSegment(target)}`;
88
90
  }
89
91
 
90
92
  /** Whether the discriminator `mapping` of `union` names the schema at `target`. */
@@ -93,7 +95,7 @@ export function unionMaps(union: SchemaObject, target: string): boolean {
93
95
  if (!isSchemaObject(mapping)) {
94
96
  return false;
95
97
  }
96
- return Object.values(mapping).some((value) => mappingRef(value) === target);
98
+ return Object.values(mapping).some((value) => mappingRef(value) === canonicalRef(target));
97
99
  }
98
100
 
99
101
  /**
@@ -1,6 +1,13 @@
1
+ import { appendAll } from "../append-all.js";
1
2
  import { admittedPropertyValues, resolveLocalRef } from "./admitted-values.js";
2
3
  import { isUnionMember, unionAt } from "./discriminated-union.js";
3
- import { createRef, escapePointerSegment, parseRefPointer } from "./json-pointer.js";
4
+ import {
5
+ appendPointer,
6
+ canonicalRef,
7
+ escapePointerSegment,
8
+ parseRefPointer,
9
+ ROOT_POINTER,
10
+ } from "./json-pointer.js";
4
11
 
5
12
  /**
6
13
  * Discriminator members whose discriminator value their own property does not allow. By the
@@ -45,8 +52,11 @@ function refsOf(list: unknown): string[] {
45
52
  );
46
53
  }
47
54
 
55
+ /** A mapping value as a canonical `$ref`: Redocly writes it percent-decoded (`canonicalRef`). */
48
56
  function mappingTarget(target: string): string {
49
- return target.startsWith("#") ? target : `${COMPONENT_SCHEMAS}${escapePointerSegment(target)}`;
57
+ return target.startsWith("#")
58
+ ? canonicalRef(target)
59
+ : `${COMPONENT_SCHEMAS}${escapePointerSegment(target)}`;
50
60
  }
51
61
 
52
62
  function ownerAt(node: JsonObject, pointer: () => string): Owner | null {
@@ -76,7 +86,7 @@ function pointerOf(visit: Visit): string {
76
86
  for (let current: Visit | null = visit; current?.key != null; current = current.parent) {
77
87
  segments.unshift(current.key);
78
88
  }
79
- return createRef(segments);
89
+ return appendPointer(ROOT_POINTER, segments);
80
90
  }
81
91
 
82
92
  function childrenOf(visit: Visit): Visit[] {
@@ -101,7 +111,7 @@ function ownersIn(document: unknown): Owner[] {
101
111
  if (owner !== null) {
102
112
  found.push(owner);
103
113
  }
104
- stack.push(...childrenOf(visit).reverse());
114
+ appendAll(stack, childrenOf(visit).reverse());
105
115
  }
106
116
  return found;
107
117
  }
@@ -200,8 +210,10 @@ function membersOf(owner: Owner, search: ConflictSearch): Member[] {
200
210
  const listed = owner.memberRefs.map((ref) => ({ ref, skipped: new Set([owner.pointer]) }));
201
211
  const members = new Map<string, Member>();
202
212
  for (const member of [...listed, ...inheritingMembers(owner, search)]) {
203
- if (!members.has(member.ref)) {
204
- members.set(member.ref, member);
213
+ // A member may be listed by a `$ref` and found by its pointer: both name it canonically.
214
+ const key = canonicalRef(member.ref);
215
+ if (!members.has(key)) {
216
+ members.set(key, member);
205
217
  }
206
218
  }
207
219
  return [...members.values()];
@@ -209,7 +221,9 @@ function membersOf(owner: Owner, search: ConflictSearch): Member[] {
209
221
 
210
222
  function memberValues(owner: Owner, member: string): { values: string[]; isImplicit: boolean } {
211
223
  const values = Object.entries(owner.mapping)
212
- .filter(([, target]) => typeof target === "string" && mappingTarget(target) === member)
224
+ .filter(
225
+ ([, target]) => typeof target === "string" && mappingTarget(target) === canonicalRef(member),
226
+ )
213
227
  .map(([key]) => key);
214
228
  const name = parseRefPointer(member).pop() ?? "";
215
229
  return values.length > 0 ? { values, isImplicit: false } : { values: [name], isImplicit: true };
@@ -4,6 +4,8 @@ import type { Schema } from "./schema-object.js";
4
4
 
5
5
  /** The parts of an OpenAPI document that get a root type (OpenAPI 3.1 §4.8.1). */
6
6
  export interface DocumentObject {
7
+ /** The OpenAPI version: `3.0.x`, `3.1.x` or `3.2.x`. */
8
+ readonly openapi?: string;
7
9
  readonly paths?: PathsObject;
8
10
  readonly webhooks?: PathsObject;
9
11
  readonly components?: ComponentsObject;
@@ -18,19 +18,108 @@ function unescapePointerSegment(segment: string): string {
18
18
  }
19
19
 
20
20
  /**
21
- * Escape one segment for a JSON Pointer in a `$ref` fragment: `~` → `~0`, `/` → `~1`, and `%` →
22
- * `%25`, because reading a pointer back percent-decodes it. The original did not escape `%`, so a
23
- * name like `50%` threw URIError and `a%2Fb` read back as `a/b` (upstream #2251, #2828).
21
+ * Escape one segment for a JSON Pointer in a `$ref` fragment: `~` → `~0` and `/` → `~1` (RFC 6901),
22
+ * then `%` → `%25` and `#` → `%23`, the two characters of a key that a URI fragment cannot hold as
23
+ * written (RFC 6901 §6, RFC 3986). Reading a pointer back percent-decodes it, so the original's
24
+ * unescaped `%` threw URIError for `50%` and read `a%2Fb` as `a/b` (upstream #2251, #2828), and
25
+ * reading starts at the first `#/`, so an unescaped key `a#` cut the pointer short.
24
26
  */
25
27
  export function escapePointerSegment(segment: string): string {
26
- return segment.replaceAll("~", "~0").replaceAll("/", "~1").replaceAll("%", "%25");
28
+ return segment
29
+ .replaceAll("~", "~0")
30
+ .replaceAll("/", "~1")
31
+ .replaceAll("%", "%25")
32
+ .replaceAll("#", "%23");
33
+ }
34
+
35
+ /** The pointer of the document root. */
36
+ export const ROOT_POINTER = "#";
37
+
38
+ /** A raw pointer segment; a missing one (`undefined`, `null` or empty) is skipped. */
39
+ export type PointerSegment = string | number | null | undefined;
40
+
41
+ /**
42
+ * Extend the pointer `base` with raw segments: document keys, such as a path, a property name or a
43
+ * media type, and array indexes. Each segment is escaped and never read as a `$ref`, so a key like
44
+ * `#/%41` stays one segment and reads back unchanged with {@link parseRefPointer}. A missing
45
+ * segment, such as the absent `name` of a parameter, is skipped, as the original `createRef` did,
46
+ * and an empty one too, because `parseRefPointer` drops it.
47
+ */
48
+ export function appendPointer(
49
+ base: string | undefined,
50
+ segments: readonly PointerSegment[],
51
+ ): string {
52
+ let pointer = pointerBase(base);
53
+ for (const segment of segments) {
54
+ if (segment !== undefined && segment !== null && segment !== "") {
55
+ pointer = childPointer(pointer, String(segment));
56
+ }
57
+ }
58
+ return pointer;
59
+ }
60
+
61
+ /**
62
+ * The pointer of the child `key` of the node at `pointer`, with `key` escaped. Unlike
63
+ * {@link appendPointer}, an empty key is a child too: a document walk names every key it visits.
64
+ */
65
+ export function childPointer(pointer: string, key: string): string {
66
+ return `${pointer}/${escapePointerSegment(key)}`;
67
+ }
68
+
69
+ /**
70
+ * A local `$ref` or `mapping` value in the form {@link appendPointer} builds, so that pointers
71
+ * compare as text whatever escapes the document chose: `.../a#b` and `.../a%23b` are both
72
+ * `.../a%23b`. Redocly writes a bundled `mapping` value percent-decoded, which is no pointer for a
73
+ * key with `%` (`.../50%`), so such a text is read as written. Any other text, such as an
74
+ * external `$ref` or a bare schema name, is returned unchanged.
75
+ */
76
+ export function canonicalRef(ref: string): string {
77
+ if (!ref.startsWith(`${ROOT_POINTER}/`)) {
78
+ return ref;
79
+ }
80
+ return appendPointer(ROOT_POINTER, refSegments(ref));
81
+ }
82
+
83
+ function refSegments(ref: string): string[] {
84
+ try {
85
+ return parseRefPointer(ref);
86
+ } catch (error) {
87
+ if (!(error instanceof URIError)) {
88
+ throw error;
89
+ }
90
+ return writtenSegments(ref);
91
+ }
92
+ }
93
+
94
+ /** The segments of a pointer that is not percent-encoded: only `~1` and `~0` are escapes. */
95
+ function writtenSegments(ref: string): string[] {
96
+ return ref
97
+ .slice(ROOT_POINTER.length + 1)
98
+ .split("/")
99
+ .filter((segment) => segment.length > 0)
100
+ .map((segment) => segment.replaceAll("~1", "/").replaceAll("~0", "~"));
101
+ }
102
+
103
+ /**
104
+ * A pointer (`#` or `#/...`) is kept as written; a missing base is the root. Any other text is a
105
+ * `path` given to the exported transformers, such as `/items/{id}` or `other.yaml#/a`, which the
106
+ * original read as a `createRef` part, so it is read the same way here.
107
+ */
108
+ function pointerBase(base: string | undefined): string {
109
+ if (base === undefined || base === "") {
110
+ return ROOT_POINTER;
111
+ }
112
+ return base === ROOT_POINTER || base.startsWith(`${ROOT_POINTER}/`) ? base : createRef([base]);
27
113
  }
28
114
 
29
115
  /**
30
- * Join parts into a local `$ref` (the original `createRef`). Empty parts are skipped. A part that
31
- * is itself a `$ref` contributes its segments; any other part is one segment.
116
+ * Join parts into a local `$ref` (the original `createRef`, exported for 1.x by ADR-034). Empty
117
+ * parts are skipped. A part that contains `#/` is parsed as a `$ref` and contributes its decoded
118
+ * segments, so it throws URIError for a malformed percent escape; any other part is one segment.
119
+ * Because of that parsing, the generator does not pass document keys here: it builds pointers
120
+ * with {@link appendPointer}, which never parses a segment.
32
121
  */
33
- export function createRef(parts: readonly (string | number | null | undefined)[]): string {
122
+ export function createRef(parts: readonly PointerSegment[]): string {
34
123
  let ref = "#";
35
124
  for (const part of parts) {
36
125
  if (part === undefined || part === null || part === "") {
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The schema dialect of a document. OpenAPI 3.0 Schema Objects ignore every keyword next to a
3
+ * `$ref` (OpenAPI 3.0.3, Reference Object). OpenAPI 3.1 and 3.2 use JSON Schema 2020-12, where a
4
+ * `$ref` is one keyword among the others, and all of them apply (JSON Schema Core §8.2.3.1).
5
+ */
6
+ export const SCHEMA_DIALECTS = {
7
+ OPENAPI_3_0: "openapi-3.0",
8
+ JSON_SCHEMA_2020_12: "json-schema-2020-12",
9
+ } as const;
10
+
11
+ export type SchemaDialect = (typeof SCHEMA_DIALECTS)[keyof typeof SCHEMA_DIALECTS];
12
+
13
+ const OPENAPI_3_0_RE = /^3\.0(?:\.|$)/;
14
+
15
+ /**
16
+ * The dialect of a document's `openapi` version. Without a version (a schema passed to a
17
+ * transformer on its own) it is OpenAPI 3.0, which keeps the output the original gives.
18
+ */
19
+ export function schemaDialectOf(openapiVersion: unknown): SchemaDialect {
20
+ const isOpenApi30 = typeof openapiVersion !== "string" || OPENAPI_3_0_RE.test(openapiVersion);
21
+ return isOpenApi30 ? SCHEMA_DIALECTS.OPENAPI_3_0 : SCHEMA_DIALECTS.JSON_SCHEMA_2020_12;
22
+ }
@@ -1,4 +1,4 @@
1
- import { createRef, parseRefPointer } from "./json-pointer.js";
1
+ import { appendPointer, parseRefPointer, ROOT_POINTER } from "./json-pointer.js";
2
2
  import { QUERYSTRING_LOCATION } from "./parameter-object.js";
3
3
  import { type PathItemObject, pathItemOperations } from "./path-item-object.js";
4
4
 
@@ -60,7 +60,7 @@ function locatedParameters(
60
60
  }
61
61
  return parameters.flatMap((entry, index) => {
62
62
  const parameter = resolveLocal(document, entry);
63
- const pointer = createRef([...segments, String(index)]);
63
+ const pointer = appendPointer(ROOT_POINTER, [...segments, index]);
64
64
  return isObject(parameter) ? [{ pointer, parameter }] : [];
65
65
  });
66
66
  }