@scalar/openapi-parser 0.11.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/configuration/index.d.ts +2 -2
  3. package/dist/configuration/index.js +2 -2
  4. package/dist/configuration/index.js.map +1 -1
  5. package/dist/index.d.ts +17 -4
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +34 -4
  8. package/dist/index.js.map +2 -2
  9. package/dist/lib/Validator/Validator.d.ts.map +1 -1
  10. package/dist/lib/Validator/Validator.js +2 -2
  11. package/dist/lib/Validator/Validator.js.map +1 -1
  12. package/dist/lib/Validator/index.d.ts +1 -2
  13. package/dist/lib/Validator/index.d.ts.map +1 -1
  14. package/dist/lib/Validator/index.js +4 -2
  15. package/dist/lib/Validator/index.js.map +2 -2
  16. package/dist/plugins/fetch-urls/{fetchUrls.d.ts → fetch-urls.d.ts} +1 -1
  17. package/dist/plugins/fetch-urls/fetch-urls.d.ts.map +1 -0
  18. package/dist/plugins/fetch-urls/{fetchUrls.js → fetch-urls.js} +1 -1
  19. package/dist/plugins/fetch-urls/fetch-urls.js.map +7 -0
  20. package/dist/plugins/fetch-urls/index.d.ts +1 -1
  21. package/dist/plugins/fetch-urls/index.d.ts.map +1 -1
  22. package/dist/plugins/fetch-urls/index.js +5 -1
  23. package/dist/plugins/fetch-urls/index.js.map +2 -2
  24. package/dist/plugins/read-files/index.d.ts +1 -1
  25. package/dist/plugins/read-files/index.d.ts.map +1 -1
  26. package/dist/plugins/read-files/index.js +4 -1
  27. package/dist/plugins/read-files/index.js.map +2 -2
  28. package/dist/plugins/read-files/{readFiles.d.ts → read-files.d.ts} +1 -1
  29. package/dist/plugins/read-files/read-files.d.ts.map +1 -0
  30. package/dist/plugins/read-files/{readFiles.js → read-files.js} +3 -3
  31. package/dist/plugins/read-files/read-files.js.map +7 -0
  32. package/dist/polyfills/index.d.ts +1 -1
  33. package/dist/polyfills/index.d.ts.map +1 -1
  34. package/dist/polyfills/index.js +22 -2
  35. package/dist/polyfills/index.js.map +2 -2
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/utils/betterAjvErrors/validation-errors/base.js.map +1 -1
  38. package/dist/utils/dereference.d.ts +1 -1
  39. package/dist/utils/dereference.d.ts.map +1 -1
  40. package/dist/utils/dereference.js +3 -3
  41. package/dist/utils/dereference.js.map +1 -1
  42. package/dist/utils/details.d.ts +1 -2
  43. package/dist/utils/details.d.ts.map +1 -1
  44. package/dist/utils/details.js +12 -9
  45. package/dist/utils/details.js.map +2 -2
  46. package/dist/utils/{escapeJsonPointer.d.ts → escape-json-pointer.d.ts} +1 -1
  47. package/dist/utils/escape-json-pointer.d.ts.map +1 -0
  48. package/dist/utils/{escapeJsonPointer.js → escape-json-pointer.js} +1 -1
  49. package/dist/utils/{escapeJsonPointer.js.map → escape-json-pointer.js.map} +1 -1
  50. package/dist/utils/filter.d.ts.map +1 -1
  51. package/dist/utils/filter.js +2 -2
  52. package/dist/utils/filter.js.map +1 -1
  53. package/dist/utils/{getEntrypoint.d.ts → get-entrypoint.d.ts} +1 -1
  54. package/dist/utils/get-entrypoint.d.ts.map +1 -0
  55. package/dist/utils/{getEntrypoint.js → get-entrypoint.js} +1 -1
  56. package/dist/utils/get-entrypoint.js.map +7 -0
  57. package/dist/utils/{getListOfReferences.d.ts → get-list-of-references.d.ts} +1 -1
  58. package/dist/utils/get-list-of-references.d.ts.map +1 -0
  59. package/dist/utils/{getListOfReferences.js → get-list-of-references.js} +1 -1
  60. package/dist/utils/get-list-of-references.js.map +7 -0
  61. package/dist/utils/{getSegmentsFromPath.d.ts → get-segments-from-path.d.ts} +1 -1
  62. package/dist/utils/get-segments-from-path.d.ts.map +1 -0
  63. package/dist/utils/{getSegmentsFromPath.js → get-segments-from-path.js} +2 -2
  64. package/dist/utils/get-segments-from-path.js.map +7 -0
  65. package/dist/utils/{isFilesystem.d.ts → is-filesystem.d.ts} +1 -1
  66. package/dist/utils/is-filesystem.d.ts.map +1 -0
  67. package/dist/utils/{isFilesystem.js → is-filesystem.js} +1 -1
  68. package/dist/utils/is-filesystem.js.map +7 -0
  69. package/dist/utils/{isJson.d.ts → is-json.d.ts} +1 -1
  70. package/dist/utils/is-json.d.ts.map +1 -0
  71. package/dist/utils/{isJson.js → is-json.js} +1 -1
  72. package/dist/utils/{isJson.js.map → is-json.js.map} +1 -1
  73. package/dist/utils/{isObject.d.ts → is-object.d.ts} +1 -1
  74. package/dist/utils/is-object.d.ts.map +1 -0
  75. package/dist/utils/{isObject.js → is-object.js} +1 -1
  76. package/dist/utils/{isObject.js.map → is-object.js.map} +1 -1
  77. package/dist/utils/{isYaml.d.ts → is-yaml.d.ts} +1 -1
  78. package/dist/utils/is-yaml.d.ts.map +1 -0
  79. package/dist/utils/{isYaml.js → is-yaml.js} +1 -1
  80. package/dist/utils/{isYaml.js.map → is-yaml.js.map} +1 -1
  81. package/dist/utils/load/index.d.ts +1 -1
  82. package/dist/utils/load/index.d.ts.map +1 -1
  83. package/dist/utils/load/index.js +4 -1
  84. package/dist/utils/load/index.js.map +2 -2
  85. package/dist/utils/load/load.d.ts.map +1 -1
  86. package/dist/utils/load/load.js +4 -4
  87. package/dist/utils/load/load.js.map +1 -1
  88. package/dist/utils/{makeFilesystem.d.ts → make-filesystem.d.ts} +1 -1
  89. package/dist/utils/make-filesystem.d.ts.map +1 -0
  90. package/dist/utils/{makeFilesystem.js → make-filesystem.js} +3 -3
  91. package/dist/utils/make-filesystem.js.map +7 -0
  92. package/dist/utils/normalize.d.ts +1 -1
  93. package/dist/utils/normalize.d.ts.map +1 -1
  94. package/dist/utils/normalize.js +17 -12
  95. package/dist/utils/normalize.js.map +2 -2
  96. package/dist/utils/{resolveReferences.d.ts → resolve-references.d.ts} +1 -1
  97. package/dist/utils/resolve-references.d.ts.map +1 -0
  98. package/dist/utils/{resolveReferences.js → resolve-references.js} +15 -4
  99. package/dist/utils/resolve-references.js.map +7 -0
  100. package/dist/utils/{toJson.d.ts → to-json.d.ts} +1 -1
  101. package/dist/utils/to-json.d.ts.map +1 -0
  102. package/dist/utils/{toJson.js → to-json.js} +1 -1
  103. package/dist/utils/to-json.js.map +7 -0
  104. package/dist/utils/{toYaml.d.ts → to-yaml.d.ts} +1 -1
  105. package/dist/utils/to-yaml.d.ts.map +1 -0
  106. package/dist/utils/{toYaml.js → to-yaml.js} +1 -1
  107. package/dist/utils/{toYaml.js.map → to-yaml.js.map} +2 -2
  108. package/dist/utils/transform/sanitize.d.ts +2 -0
  109. package/dist/utils/transform/sanitize.d.ts.map +1 -1
  110. package/dist/utils/transform/sanitize.js.map +2 -2
  111. package/dist/utils/transform/utils/addInfoObject.d.ts.map +1 -1
  112. package/dist/utils/transform/utils/addInfoObject.js.map +1 -1
  113. package/dist/utils/transform/utils/addLatestOpenApiVersion.d.ts.map +1 -1
  114. package/dist/utils/transform/utils/addLatestOpenApiVersion.js.map +1 -1
  115. package/dist/utils/transform/utils/addMissingTags.d.ts.map +1 -1
  116. package/dist/utils/transform/utils/addMissingTags.js.map +1 -1
  117. package/dist/utils/transform/utils/normalizeSecuritySchemes.d.ts.map +1 -1
  118. package/dist/utils/transform/utils/normalizeSecuritySchemes.js.map +1 -1
  119. package/dist/utils/transform/utils/rejectSwaggerDocuments.d.ts.map +1 -1
  120. package/dist/utils/transform/utils/rejectSwaggerDocuments.js.map +1 -1
  121. package/dist/utils/{transformErrors.d.ts → transform-errors.d.ts} +1 -1
  122. package/dist/utils/transform-errors.d.ts.map +1 -0
  123. package/dist/utils/{transformErrors.js → transform-errors.js} +1 -1
  124. package/dist/utils/transform-errors.js.map +7 -0
  125. package/dist/utils/traverse.d.ts.map +1 -1
  126. package/dist/utils/traverse.js.map +1 -1
  127. package/dist/utils/{unescapeJsonPointer.d.ts → unescape-json-pointer.d.ts} +1 -1
  128. package/dist/utils/unescape-json-pointer.d.ts.map +1 -0
  129. package/dist/utils/{unescapeJsonPointer.js → unescape-json-pointer.js} +1 -1
  130. package/dist/utils/{unescapeJsonPointer.js.map → unescape-json-pointer.js.map} +1 -1
  131. package/dist/utils/{upgradeFromThreeToThreeOne.d.ts → upgrade-from-three-to-three-one.d.ts} +1 -1
  132. package/dist/utils/upgrade-from-three-to-three-one.d.ts.map +1 -0
  133. package/dist/utils/{upgradeFromThreeToThreeOne.js → upgrade-from-three-to-three-one.js} +1 -2
  134. package/dist/utils/upgrade-from-three-to-three-one.js.map +7 -0
  135. package/dist/utils/{upgradeFromTwoToThree.d.ts → upgrade-from-two-to-three.d.ts} +1 -1
  136. package/dist/utils/upgrade-from-two-to-three.d.ts.map +1 -0
  137. package/dist/utils/{upgradeFromTwoToThree.js → upgrade-from-two-to-three.js} +1 -1
  138. package/dist/utils/{upgradeFromTwoToThree.js.map → upgrade-from-two-to-three.js.map} +1 -1
  139. package/dist/utils/upgrade.bench.js +1 -1
  140. package/dist/utils/upgrade.bench.js.map +1 -1
  141. package/dist/utils/upgrade.d.ts.map +1 -1
  142. package/dist/utils/upgrade.js +4 -4
  143. package/dist/utils/upgrade.js.map +1 -1
  144. package/dist/utils/validate.d.ts.map +1 -1
  145. package/dist/utils/validate.js +1 -1
  146. package/dist/utils/validate.js.map +1 -1
  147. package/package.json +3 -3
  148. package/dist/lib/Validator/Validator.test.js +0 -8
  149. package/dist/lib/Validator/Validator.test.js.map +0 -7
  150. package/dist/plugins/fetch-urls/fetchUrls.d.ts.map +0 -1
  151. package/dist/plugins/fetch-urls/fetchUrls.js.map +0 -7
  152. package/dist/plugins/fetch-urls/fetchUrls.test.js +0 -50
  153. package/dist/plugins/fetch-urls/fetchUrls.test.js.map +0 -7
  154. package/dist/plugins/read-files/readFiles.d.ts.map +0 -1
  155. package/dist/plugins/read-files/readFiles.js.map +0 -7
  156. package/dist/plugins/read-files/readFiles.test.js +0 -20
  157. package/dist/plugins/read-files/readFiles.test.js.map +0 -7
  158. package/dist/utils/dereference.test.js +0 -300
  159. package/dist/utils/dereference.test.js.map +0 -7
  160. package/dist/utils/errors.test.js +0 -48
  161. package/dist/utils/errors.test.js.map +0 -7
  162. package/dist/utils/escapeJsonPointer.d.ts.map +0 -1
  163. package/dist/utils/escapeJsonPointer.test.js +0 -11
  164. package/dist/utils/escapeJsonPointer.test.js.map +0 -7
  165. package/dist/utils/getEntrypoint.d.ts.map +0 -1
  166. package/dist/utils/getEntrypoint.js.map +0 -7
  167. package/dist/utils/getEntrypoint.test.js +0 -18
  168. package/dist/utils/getEntrypoint.test.js.map +0 -7
  169. package/dist/utils/getListOfReferences.d.ts.map +0 -1
  170. package/dist/utils/getListOfReferences.js.map +0 -7
  171. package/dist/utils/getSegmentsFromPath.d.ts.map +0 -1
  172. package/dist/utils/getSegmentsFromPath.js.map +0 -7
  173. package/dist/utils/getSegmentsFromPath.test.js +0 -13
  174. package/dist/utils/getSegmentsFromPath.test.js.map +0 -7
  175. package/dist/utils/index.d.ts +0 -27
  176. package/dist/utils/index.d.ts.map +0 -1
  177. package/dist/utils/index.js +0 -27
  178. package/dist/utils/index.js.map +0 -7
  179. package/dist/utils/isFilesystem.d.ts.map +0 -1
  180. package/dist/utils/isFilesystem.js.map +0 -7
  181. package/dist/utils/isJson.d.ts.map +0 -1
  182. package/dist/utils/isObject.d.ts.map +0 -1
  183. package/dist/utils/isObject.test.js +0 -23
  184. package/dist/utils/isObject.test.js.map +0 -7
  185. package/dist/utils/isYaml.d.ts.map +0 -1
  186. package/dist/utils/load/load.test.js +0 -361
  187. package/dist/utils/load/load.test.js.map +0 -7
  188. package/dist/utils/makeFilesystem.d.ts.map +0 -1
  189. package/dist/utils/makeFilesystem.js.map +0 -7
  190. package/dist/utils/makeFilesystem.test.js +0 -15
  191. package/dist/utils/makeFilesystem.test.js.map +0 -7
  192. package/dist/utils/normalize.test.js +0 -88
  193. package/dist/utils/normalize.test.js.map +0 -7
  194. package/dist/utils/openapi/actions/details.d.ts +0 -7
  195. package/dist/utils/openapi/actions/details.d.ts.map +0 -1
  196. package/dist/utils/openapi/actions/details.js +0 -11
  197. package/dist/utils/openapi/actions/details.js.map +0 -7
  198. package/dist/utils/openapi/actions/files.d.ts +0 -6
  199. package/dist/utils/openapi/actions/files.d.ts.map +0 -1
  200. package/dist/utils/openapi/actions/files.js +0 -9
  201. package/dist/utils/openapi/actions/files.js.map +0 -7
  202. package/dist/utils/openapi/actions/get.d.ts +0 -6
  203. package/dist/utils/openapi/actions/get.d.ts.map +0 -1
  204. package/dist/utils/openapi/actions/get.js +0 -11
  205. package/dist/utils/openapi/actions/get.js.map +0 -7
  206. package/dist/utils/openapi/actions/toJson.d.ts +0 -6
  207. package/dist/utils/openapi/actions/toJson.d.ts.map +0 -1
  208. package/dist/utils/openapi/actions/toJson.js +0 -11
  209. package/dist/utils/openapi/actions/toJson.js.map +0 -7
  210. package/dist/utils/openapi/actions/toYaml.d.ts +0 -6
  211. package/dist/utils/openapi/actions/toYaml.d.ts.map +0 -1
  212. package/dist/utils/openapi/actions/toYaml.js +0 -11
  213. package/dist/utils/openapi/actions/toYaml.js.map +0 -7
  214. package/dist/utils/openapi/commands/dereferenceCommand.d.ts +0 -27
  215. package/dist/utils/openapi/commands/dereferenceCommand.d.ts.map +0 -1
  216. package/dist/utils/openapi/commands/dereferenceCommand.js +0 -27
  217. package/dist/utils/openapi/commands/dereferenceCommand.js.map +0 -7
  218. package/dist/utils/openapi/commands/filterCommand.d.ts +0 -41
  219. package/dist/utils/openapi/commands/filterCommand.d.ts.map +0 -1
  220. package/dist/utils/openapi/commands/filterCommand.js +0 -26
  221. package/dist/utils/openapi/commands/filterCommand.js.map +0 -7
  222. package/dist/utils/openapi/commands/loadCommand.d.ts +0 -8321
  223. package/dist/utils/openapi/commands/loadCommand.d.ts.map +0 -1
  224. package/dist/utils/openapi/commands/loadCommand.js +0 -42
  225. package/dist/utils/openapi/commands/loadCommand.js.map +0 -7
  226. package/dist/utils/openapi/commands/upgradeCommand.d.ts +0 -3406
  227. package/dist/utils/openapi/commands/upgradeCommand.d.ts.map +0 -1
  228. package/dist/utils/openapi/commands/upgradeCommand.js +0 -29
  229. package/dist/utils/openapi/commands/upgradeCommand.js.map +0 -7
  230. package/dist/utils/openapi/commands/validateCommand.d.ts +0 -3451
  231. package/dist/utils/openapi/commands/validateCommand.d.ts.map +0 -1
  232. package/dist/utils/openapi/commands/validateCommand.js +0 -33
  233. package/dist/utils/openapi/commands/validateCommand.js.map +0 -7
  234. package/dist/utils/openapi/index.d.ts +0 -2
  235. package/dist/utils/openapi/index.d.ts.map +0 -1
  236. package/dist/utils/openapi/index.js +0 -2
  237. package/dist/utils/openapi/index.js.map +0 -7
  238. package/dist/utils/openapi/openapi.d.ts +0 -1272
  239. package/dist/utils/openapi/openapi.d.ts.map +0 -1
  240. package/dist/utils/openapi/openapi.js +0 -15
  241. package/dist/utils/openapi/openapi.js.map +0 -7
  242. package/dist/utils/openapi/openapi.test-d.d.ts +0 -2
  243. package/dist/utils/openapi/openapi.test-d.d.ts.map +0 -1
  244. package/dist/utils/openapi/openapi.test-d.js +0 -14
  245. package/dist/utils/openapi/openapi.test-d.js.map +0 -7
  246. package/dist/utils/openapi/openapi.test.js +0 -309
  247. package/dist/utils/openapi/openapi.test.js.map +0 -7
  248. package/dist/utils/openapi/utils/queueTask.d.ts +0 -6
  249. package/dist/utils/openapi/utils/queueTask.d.ts.map +0 -1
  250. package/dist/utils/openapi/utils/queueTask.js +0 -10
  251. package/dist/utils/openapi/utils/queueTask.js.map +0 -7
  252. package/dist/utils/openapi/utils/workThroughQueue.d.ts +0 -6
  253. package/dist/utils/openapi/utils/workThroughQueue.d.ts.map +0 -1
  254. package/dist/utils/openapi/utils/workThroughQueue.js +0 -52
  255. package/dist/utils/openapi/utils/workThroughQueue.js.map +0 -7
  256. package/dist/utils/openapi/utils/workThroughQueue.test.js +0 -244
  257. package/dist/utils/openapi/utils/workThroughQueue.test.js.map +0 -7
  258. package/dist/utils/resolveReferences.d.ts.map +0 -1
  259. package/dist/utils/resolveReferences.js.map +0 -7
  260. package/dist/utils/resolveReferences.test.js +0 -567
  261. package/dist/utils/resolveReferences.test.js.map +0 -7
  262. package/dist/utils/toJson.d.ts.map +0 -1
  263. package/dist/utils/toJson.js.map +0 -7
  264. package/dist/utils/toYaml.d.ts.map +0 -1
  265. package/dist/utils/transform/index.d.ts +0 -2
  266. package/dist/utils/transform/index.d.ts.map +0 -1
  267. package/dist/utils/transform/index.js +0 -2
  268. package/dist/utils/transform/index.js.map +0 -7
  269. package/dist/utils/transform/sanitize.test.js +0 -148
  270. package/dist/utils/transform/sanitize.test.js.map +0 -7
  271. package/dist/utils/transformErrors.d.ts.map +0 -1
  272. package/dist/utils/transformErrors.js.map +0 -7
  273. package/dist/utils/transformErrors.test.js +0 -17
  274. package/dist/utils/transformErrors.test.js.map +0 -7
  275. package/dist/utils/traverse.test.js +0 -68
  276. package/dist/utils/traverse.test.js.map +0 -7
  277. package/dist/utils/unescapeJsonPointer.d.ts.map +0 -1
  278. package/dist/utils/unescapeJsonPointer.test.js +0 -19
  279. package/dist/utils/unescapeJsonPointer.test.js.map +0 -7
  280. package/dist/utils/upgrade.test.js +0 -57
  281. package/dist/utils/upgrade.test.js.map +0 -7
  282. package/dist/utils/upgradeFromThreeToThreeOne.d.ts.map +0 -1
  283. package/dist/utils/upgradeFromThreeToThreeOne.js.map +0 -7
  284. package/dist/utils/upgradeFromThreeToThreeOne.test.js +0 -462
  285. package/dist/utils/upgradeFromThreeToThreeOne.test.js.map +0 -7
  286. package/dist/utils/upgradeFromTwoToThree.d.ts.map +0 -1
  287. package/dist/utils/upgradeFromTwoToThree.test.js +0 -589
  288. package/dist/utils/upgradeFromTwoToThree.test.js.map +0 -7
  289. package/dist/utils/validate.test.js +0 -64
  290. package/dist/utils/validate.test.js.map +0 -7
@@ -1,148 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { DEFAULT_OPENAPI_VERSION, DEFAULT_TITLE, sanitize } from "./sanitize.js";
3
- describe("sanitize", () => {
4
- describe("required properties", () => {
5
- it("adds required properties", () => {
6
- const result = sanitize({});
7
- expect(result).toStrictEqual({
8
- openapi: DEFAULT_OPENAPI_VERSION,
9
- info: {
10
- title: DEFAULT_TITLE,
11
- version: "1.0"
12
- }
13
- });
14
- });
15
- it("doesn\u2019t overwrite existing properties", () => {
16
- const result = sanitize({
17
- openapi: "3.0.0",
18
- info: {
19
- title: "Foobar"
20
- }
21
- });
22
- expect(result).toStrictEqual({
23
- openapi: "3.0.0",
24
- info: {
25
- title: "Foobar",
26
- version: "1.0"
27
- }
28
- });
29
- });
30
- it("throws an error when it\u2019s a swagger document", () => {
31
- expect(
32
- () => sanitize({
33
- swagger: "2.0"
34
- })
35
- ).toThrow("Swagger 2.0 documents are not supported. Please upgrade to OpenAPI 3.x.");
36
- });
37
- });
38
- describe("tags", () => {
39
- it("adds missing tags", () => {
40
- const result = sanitize({
41
- paths: {
42
- "/pets": {
43
- get: {
44
- tags: ["pets"],
45
- responses: {}
46
- }
47
- },
48
- "/stores": {
49
- get: {
50
- tags: ["stores"],
51
- responses: {}
52
- }
53
- }
54
- }
55
- });
56
- expect(result.tags).toStrictEqual([{ name: "pets" }, { name: "stores" }]);
57
- });
58
- });
59
- describe("components.securitySchemes", () => {
60
- it("normalizes security scheme types to lowercase", () => {
61
- const result = sanitize({
62
- components: {
63
- securitySchemes: {
64
- bearerAuth: {
65
- type: "HTTP",
66
- scheme: "bearer"
67
- },
68
- basicAuth: {
69
- type: "HTTP",
70
- scheme: "basic"
71
- },
72
- apiKeyHeader: {
73
- type: "APIKEY",
74
- in: "header",
75
- name: "X-API-Key"
76
- },
77
- oauth2: {
78
- type: "OAUTH2",
79
- flows: {
80
- authorizationCode: {
81
- authorizationUrl: "https://example.com/oauth/authorize",
82
- tokenUrl: "https://example.com/oauth/token",
83
- scopes: {}
84
- }
85
- }
86
- },
87
- openIdConnect: {
88
- type: "OPENIDCONNECT",
89
- openIdConnectUrl: "https://example.com/.well-known/openid-configuration"
90
- }
91
- }
92
- }
93
- });
94
- expect(result.components?.securitySchemes).toStrictEqual({
95
- bearerAuth: {
96
- type: "http",
97
- scheme: "bearer"
98
- },
99
- basicAuth: {
100
- type: "http",
101
- scheme: "basic"
102
- },
103
- apiKeyHeader: {
104
- type: "apiKey",
105
- in: "header",
106
- name: "X-API-Key"
107
- },
108
- oauth2: {
109
- type: "oauth2",
110
- flows: {
111
- authorizationCode: {
112
- authorizationUrl: "https://example.com/oauth/authorize",
113
- tokenUrl: "https://example.com/oauth/token",
114
- scopes: {}
115
- }
116
- }
117
- },
118
- openIdConnect: {
119
- type: "openIdConnect",
120
- openIdConnectUrl: "https://example.com/.well-known/openid-configuration"
121
- }
122
- });
123
- });
124
- it("converts array scopes to objects", () => {
125
- const result = sanitize({
126
- components: {
127
- securitySchemes: {
128
- oauth2: {
129
- type: "oauth2",
130
- flows: {
131
- authorizationCode: {
132
- authorizationUrl: "https://example.com/oauth/authorize",
133
- tokenUrl: "https://example.com/oauth/token",
134
- scopes: ["read:data", "write:data"]
135
- }
136
- }
137
- }
138
- }
139
- }
140
- });
141
- expect(result.components?.securitySchemes?.oauth2.flows.authorizationCode.scopes).toStrictEqual({
142
- "read:data": "",
143
- "write:data": ""
144
- });
145
- });
146
- });
147
- });
148
- //# sourceMappingURL=sanitize.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/utils/transform/sanitize.test.ts"],
4
- "sourcesContent": ["import { describe, expect, it } from 'vitest'\n\nimport { DEFAULT_OPENAPI_VERSION, DEFAULT_TITLE, sanitize } from './sanitize'\n\ndescribe('sanitize', () => {\n describe('required properties', () => {\n /** @see https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.1.md#openapi-object */\n it('adds required properties', () => {\n const result = sanitize({})\n\n expect(result).toStrictEqual({\n openapi: DEFAULT_OPENAPI_VERSION,\n info: {\n title: DEFAULT_TITLE,\n version: '1.0',\n },\n })\n })\n\n it('doesn\u2019t overwrite existing properties', () => {\n const result = sanitize({\n openapi: '3.0.0',\n info: {\n title: 'Foobar',\n },\n })\n\n expect(result).toStrictEqual({\n openapi: '3.0.0',\n info: {\n title: 'Foobar',\n version: '1.0',\n },\n })\n })\n\n it('throws an error when it\u2019s a swagger document', () => {\n expect(() =>\n sanitize({\n swagger: '2.0',\n }),\n ).toThrow('Swagger 2.0 documents are not supported. Please upgrade to OpenAPI 3.x.')\n })\n })\n\n describe('tags', () => {\n it('adds missing tags', () => {\n const result = sanitize({\n paths: {\n '/pets': {\n get: {\n tags: ['pets'],\n responses: {},\n },\n },\n '/stores': {\n get: {\n tags: ['stores'],\n responses: {},\n },\n },\n },\n })\n\n expect(result.tags).toStrictEqual([{ name: 'pets' }, { name: 'stores' }])\n })\n })\n\n describe('components.securitySchemes', () => {\n it('normalizes security scheme types to lowercase', () => {\n const result = sanitize({\n components: {\n securitySchemes: {\n bearerAuth: {\n type: 'HTTP',\n scheme: 'bearer',\n },\n basicAuth: {\n type: 'HTTP',\n scheme: 'basic',\n },\n apiKeyHeader: {\n type: 'APIKEY',\n in: 'header',\n name: 'X-API-Key',\n },\n oauth2: {\n type: 'OAUTH2',\n flows: {\n authorizationCode: {\n authorizationUrl: 'https://example.com/oauth/authorize',\n tokenUrl: 'https://example.com/oauth/token',\n scopes: {},\n },\n },\n },\n openIdConnect: {\n type: 'OPENIDCONNECT',\n openIdConnectUrl: 'https://example.com/.well-known/openid-configuration',\n },\n },\n },\n })\n\n expect(result.components?.securitySchemes).toStrictEqual({\n bearerAuth: {\n type: 'http',\n scheme: 'bearer',\n },\n basicAuth: {\n type: 'http',\n scheme: 'basic',\n },\n apiKeyHeader: {\n type: 'apiKey',\n in: 'header',\n name: 'X-API-Key',\n },\n oauth2: {\n type: 'oauth2',\n flows: {\n authorizationCode: {\n authorizationUrl: 'https://example.com/oauth/authorize',\n tokenUrl: 'https://example.com/oauth/token',\n scopes: {},\n },\n },\n },\n openIdConnect: {\n type: 'openIdConnect',\n openIdConnectUrl: 'https://example.com/.well-known/openid-configuration',\n },\n })\n })\n\n it('converts array scopes to objects', () => {\n const result = sanitize({\n components: {\n securitySchemes: {\n oauth2: {\n type: 'oauth2',\n flows: {\n authorizationCode: {\n authorizationUrl: 'https://example.com/oauth/authorize',\n tokenUrl: 'https://example.com/oauth/token',\n scopes: ['read:data', 'write:data'],\n },\n },\n },\n },\n },\n })\n\n expect(result.components?.securitySchemes?.oauth2.flows.authorizationCode.scopes).toStrictEqual({\n 'read:data': '',\n 'write:data': '',\n })\n })\n })\n})\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformErrors.d.ts","sourceRoot":"","sources":["../../src/utils/transformErrors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG/C;;GAEG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAkBpE"}
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/transformErrors.ts"],
4
- "sourcesContent": ["import type { AnyObject } from '../types/index'\nimport { betterAjvErrors } from './betterAjvErrors/index'\n\n/**\n * Transforms ajv errors, finds the positions in the schema and returns an enriched format.\n */\nexport function transformErrors(specification: AnyObject, errors: any) {\n // TODO: This should work with multiple files\n\n if (typeof errors === 'string') {\n return [\n {\n message: errors,\n },\n ]\n }\n\n return betterAjvErrors(specification, null, errors, {\n indent: 2,\n }).map((error) => {\n error.message = error.message.trim()\n\n return error\n })\n}\n"],
5
- "mappings": "AACA,SAAS,uBAAuB;AAKzB,SAAS,gBAAgB,eAA0B,QAAa;AAGrE,MAAI,OAAO,WAAW,UAAU;AAC9B,WAAO;AAAA,MACL;AAAA,QACE,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAEA,SAAO,gBAAgB,eAAe,MAAM,QAAQ;AAAA,IAClD,QAAQ;AAAA,EACV,CAAC,EAAE,IAAI,CAAC,UAAU;AAChB,UAAM,UAAU,MAAM,QAAQ,KAAK;AAEnC,WAAO;AAAA,EACT,CAAC;AACH;",
6
- "names": []
7
- }
@@ -1,17 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { makeFilesystem } from "./makeFilesystem.js";
3
- import { transformErrors } from "./transformErrors.js";
4
- describe("transformErrors", () => {
5
- it("transforms a string to a proper error object", () => {
6
- const result = transformErrors(
7
- makeFilesystem("").find((entrypoint) => entrypoint.isEntrypoint),
8
- "example error message"
9
- );
10
- expect(result).toEqual([
11
- {
12
- message: "example error message"
13
- }
14
- ]);
15
- });
16
- });
17
- //# sourceMappingURL=transformErrors.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/transformErrors.test.ts"],
4
- "sourcesContent": ["import { describe, expect, it } from 'vitest'\n\nimport { makeFilesystem } from './makeFilesystem'\nimport { transformErrors } from './transformErrors'\n\ndescribe('transformErrors', () => {\n it('transforms a string to a proper error object', () => {\n const result = transformErrors(\n makeFilesystem('').find((entrypoint) => entrypoint.isEntrypoint),\n 'example error message',\n )\n\n expect(result).toEqual([\n {\n message: 'example error message',\n },\n ])\n })\n})\n"],
5
- "mappings": "AAAA,SAAS,UAAU,QAAQ,UAAU;AAErC,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAEhC,SAAS,mBAAmB,MAAM;AAChC,KAAG,gDAAgD,MAAM;AACvD,UAAM,SAAS;AAAA,MACb,eAAe,EAAE,EAAE,KAAK,CAAC,eAAe,WAAW,YAAY;AAAA,MAC/D;AAAA,IACF;AAEA,WAAO,MAAM,EAAE,QAAQ;AAAA,MACrB;AAAA,QACE,SAAS;AAAA,MACX;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,CAAC;",
6
- "names": []
7
- }
@@ -1,68 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { traverse } from "./traverse.js";
3
- describe("traverse", () => {
4
- it("applies transform function to a flat object", () => {
5
- const definition = { a: 1, b: 2 };
6
- const transform = (schema) => {
7
- return Object.fromEntries(
8
- Object.entries(schema).map(([key, value]) => {
9
- if (typeof value !== "number") {
10
- return [key, value];
11
- }
12
- return [key, value * 2];
13
- })
14
- );
15
- };
16
- const result = traverse(definition, transform);
17
- expect(result).toEqual({ a: 2, b: 4 });
18
- });
19
- it("applies transform function to nested objects", () => {
20
- const definition = { a: { b: 2, c: 3 }, d: 4 };
21
- const transform = (schema) => {
22
- return Object.fromEntries(
23
- Object.entries(schema).map(([key, value]) => {
24
- if (typeof value === "object" && value !== null) {
25
- return [key, value];
26
- }
27
- if (typeof value !== "number") {
28
- return [key, value];
29
- }
30
- return [key, value * 2];
31
- })
32
- );
33
- };
34
- const result = traverse(definition, transform);
35
- expect(result).toEqual({ a: { b: 4, c: 6 }, d: 8 });
36
- });
37
- it("applies transform function to arrays within objects", () => {
38
- const definition = { a: [1, 2, { b: 3 }], c: 4 };
39
- const transform = (schema) => {
40
- return Object.fromEntries(
41
- Object.entries(schema).map(([key, value]) => {
42
- if (Array.isArray(value)) {
43
- return [key, value.map((v) => typeof v === "number" ? v * 2 : v)];
44
- }
45
- if (typeof value !== "number") {
46
- return [key, value];
47
- }
48
- return [key, value * 2];
49
- })
50
- );
51
- };
52
- const result = traverse(definition, transform);
53
- expect(result).toEqual({ a: [2, 4, { b: 6 }], c: 8 });
54
- });
55
- it("handles empty objects", () => {
56
- const definition = {};
57
- const transform = (schema) => schema;
58
- const result = traverse(definition, transform);
59
- expect(result).toEqual({});
60
- });
61
- it("handles objects with null values", () => {
62
- const definition = { a: null, b: 2 };
63
- const transform = (schema) => schema;
64
- const result = traverse(definition, transform);
65
- expect(result).toEqual({ a: null, b: 2 });
66
- });
67
- });
68
- //# sourceMappingURL=traverse.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/traverse.test.ts"],
4
- "sourcesContent": ["import { describe, expect, it } from 'vitest'\n\nimport { traverse } from './traverse'\n\ndescribe('traverse', () => {\n it('applies transform function to a flat object', () => {\n const definition = { a: 1, b: 2 }\n const transform = (schema: any) => {\n return Object.fromEntries(\n Object.entries(schema).map(([key, value]) => {\n if (typeof value !== 'number') {\n return [key, value]\n }\n\n return [key, value * 2]\n }),\n )\n }\n\n const result = traverse(definition, transform)\n expect(result).toEqual({ a: 2, b: 4 })\n })\n\n it('applies transform function to nested objects', () => {\n const definition = { a: { b: 2, c: 3 }, d: 4 }\n const transform = (schema: any) => {\n return Object.fromEntries(\n Object.entries(schema).map(([key, value]) => {\n if (typeof value === 'object' && value !== null) {\n return [key, value]\n }\n\n if (typeof value !== 'number') {\n return [key, value]\n }\n\n return [key, value * 2]\n }),\n )\n }\n const result = traverse(definition, transform)\n expect(result).toEqual({ a: { b: 4, c: 6 }, d: 8 })\n })\n\n it('applies transform function to arrays within objects', () => {\n const definition = { a: [1, 2, { b: 3 }], c: 4 }\n const transform = (schema: any) => {\n return Object.fromEntries(\n Object.entries(schema).map(([key, value]) => {\n if (Array.isArray(value)) {\n return [key, value.map((v: any) => (typeof v === 'number' ? v * 2 : v))]\n }\n\n if (typeof value !== 'number') {\n return [key, value]\n }\n\n return [key, value * 2]\n }),\n )\n }\n\n const result = traverse(definition, transform)\n\n expect(result).toEqual({ a: [2, 4, { b: 6 }], c: 8 })\n })\n\n it('handles empty objects', () => {\n const definition = {}\n const transform = (schema: any) => schema\n const result = traverse(definition, transform)\n\n expect(result).toEqual({})\n })\n\n it('handles objects with null values', () => {\n const definition = { a: null, b: 2 }\n const transform = (schema: any) => schema\n const result = traverse(definition, transform)\n\n expect(result).toEqual({ a: null, b: 2 })\n })\n})\n"],
5
- "mappings": "AAAA,SAAS,UAAU,QAAQ,UAAU;AAErC,SAAS,gBAAgB;AAEzB,SAAS,YAAY,MAAM;AACzB,KAAG,+CAA+C,MAAM;AACtD,UAAM,aAAa,EAAE,GAAG,GAAG,GAAG,EAAE;AAChC,UAAM,YAAY,CAAC,WAAgB;AACjC,aAAO,OAAO;AAAA,QACZ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAC3C,cAAI,OAAO,UAAU,UAAU;AAC7B,mBAAO,CAAC,KAAK,KAAK;AAAA,UACpB;AAEA,iBAAO,CAAC,KAAK,QAAQ,CAAC;AAAA,QACxB,CAAC;AAAA,MACH;AAAA,IACF;AAEA,UAAM,SAAS,SAAS,YAAY,SAAS;AAC7C,WAAO,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC;AAAA,EACvC,CAAC;AAED,KAAG,gDAAgD,MAAM;AACvD,UAAM,aAAa,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE;AAC7C,UAAM,YAAY,CAAC,WAAgB;AACjC,aAAO,OAAO;AAAA,QACZ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAC3C,cAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAC/C,mBAAO,CAAC,KAAK,KAAK;AAAA,UACpB;AAEA,cAAI,OAAO,UAAU,UAAU;AAC7B,mBAAO,CAAC,KAAK,KAAK;AAAA,UACpB;AAEA,iBAAO,CAAC,KAAK,QAAQ,CAAC;AAAA,QACxB,CAAC;AAAA,MACH;AAAA,IACF;AACA,UAAM,SAAS,SAAS,YAAY,SAAS;AAC7C,WAAO,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;AAAA,EACpD,CAAC;AAED,KAAG,uDAAuD,MAAM;AAC9D,UAAM,aAAa,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE;AAC/C,UAAM,YAAY,CAAC,WAAgB;AACjC,aAAO,OAAO;AAAA,QACZ,OAAO,QAAQ,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AAC3C,cAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,mBAAO,CAAC,KAAK,MAAM,IAAI,CAAC,MAAY,OAAO,MAAM,WAAW,IAAI,IAAI,CAAE,CAAC;AAAA,UACzE;AAEA,cAAI,OAAO,UAAU,UAAU;AAC7B,mBAAO,CAAC,KAAK,KAAK;AAAA,UACpB;AAEA,iBAAO,CAAC,KAAK,QAAQ,CAAC;AAAA,QACxB,CAAC;AAAA,MACH;AAAA,IACF;AAEA,UAAM,SAAS,SAAS,YAAY,SAAS;AAE7C,WAAO,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC;AAAA,EACtD,CAAC;AAED,KAAG,yBAAyB,MAAM;AAChC,UAAM,aAAa,CAAC;AACpB,UAAM,YAAY,CAAC,WAAgB;AACnC,UAAM,SAAS,SAAS,YAAY,SAAS;AAE7C,WAAO,MAAM,EAAE,QAAQ,CAAC,CAAC;AAAA,EAC3B,CAAC;AAED,KAAG,oCAAoC,MAAM;AAC3C,UAAM,aAAa,EAAE,GAAG,MAAM,GAAG,EAAE;AACnC,UAAM,YAAY,CAAC,WAAgB;AACnC,UAAM,SAAS,SAAS,YAAY,SAAS;AAE7C,WAAO,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,GAAG,EAAE,CAAC;AAAA,EAC1C,CAAC;AACH,CAAC;",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"unescapeJsonPointer.d.ts","sourceRoot":"","sources":["../../src/utils/unescapeJsonPointer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,UAE9C"}
@@ -1,19 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { unescapeJsonPointer } from "./unescapeJsonPointer.js";
3
- describe("unescapeJsonPointer", async () => {
4
- it("unescapes a slash", () => {
5
- expect(unescapeJsonPointer("/foo~1bar~1baz")).toBe("/foo/bar/baz");
6
- });
7
- it("unescapes multiple slashes", () => {
8
- expect(unescapeJsonPointer("#/paths/~1upload/post/responses/401/content/application~1problem+json/schema")).toBe(
9
- "#/paths//upload/post/responses/401/content/application/problem+json/schema"
10
- );
11
- });
12
- it("unescapes a tilde", () => {
13
- expect(unescapeJsonPointer("/foo~0bar~0baz")).toBe("/foo~bar~baz");
14
- });
15
- it("unescapes a space", () => {
16
- expect(unescapeJsonPointer("foo%20bar")).toBe("foo bar");
17
- });
18
- });
19
- //# sourceMappingURL=unescapeJsonPointer.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/unescapeJsonPointer.test.ts"],
4
- "sourcesContent": ["import { describe, expect, it } from 'vitest'\n\nimport { unescapeJsonPointer } from './unescapeJsonPointer'\n\ndescribe('unescapeJsonPointer', async () => {\n it('unescapes a slash', () => {\n expect(unescapeJsonPointer('/foo~1bar~1baz')).toBe('/foo/bar/baz')\n })\n\n it('unescapes multiple slashes', () => {\n expect(unescapeJsonPointer('#/paths/~1upload/post/responses/401/content/application~1problem+json/schema')).toBe(\n '#/paths//upload/post/responses/401/content/application/problem+json/schema',\n )\n })\n\n it('unescapes a tilde', () => {\n expect(unescapeJsonPointer('/foo~0bar~0baz')).toBe('/foo~bar~baz')\n })\n\n it('unescapes a space', () => {\n expect(unescapeJsonPointer('foo%20bar')).toBe('foo bar')\n })\n})\n"],
5
- "mappings": "AAAA,SAAS,UAAU,QAAQ,UAAU;AAErC,SAAS,2BAA2B;AAEpC,SAAS,uBAAuB,YAAY;AAC1C,KAAG,qBAAqB,MAAM;AAC5B,WAAO,oBAAoB,gBAAgB,CAAC,EAAE,KAAK,cAAc;AAAA,EACnE,CAAC;AAED,KAAG,8BAA8B,MAAM;AACrC,WAAO,oBAAoB,8EAA8E,CAAC,EAAE;AAAA,MAC1G;AAAA,IACF;AAAA,EACF,CAAC;AAED,KAAG,qBAAqB,MAAM;AAC5B,WAAO,oBAAoB,gBAAgB,CAAC,EAAE,KAAK,cAAc;AAAA,EACnE,CAAC;AAED,KAAG,qBAAqB,MAAM;AAC5B,WAAO,oBAAoB,WAAW,CAAC,EAAE,KAAK,SAAS;AAAA,EACzD,CAAC;AACH,CAAC;",
6
- "names": []
7
- }
@@ -1,57 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { makeFilesystem } from "./makeFilesystem.js";
3
- import { upgrade } from "./upgrade.js";
4
- describe("upgrade", () => {
5
- it("upgrades documents from Swagger 2.0 to OpenAPI 3.1", async () => {
6
- const { specification } = upgrade({
7
- swagger: "2.0",
8
- info: {
9
- title: "Hello World",
10
- version: "1.0.0"
11
- },
12
- paths: {}
13
- });
14
- expect(specification.swagger).toBeUndefined();
15
- expect(specification.openapi).toBe("3.1.1");
16
- });
17
- it("changes the version to from 3.0.0 to 3.1.0", async () => {
18
- const { specification } = upgrade({
19
- openapi: "3.0.0",
20
- info: {
21
- title: "Hello World",
22
- version: "1.0.0"
23
- },
24
- paths: {}
25
- });
26
- expect(specification.openapi).toBe("3.1.1");
27
- });
28
- it("changes the version to 3.0.3 to 3.1.0", async () => {
29
- const { specification } = upgrade({
30
- openapi: "3.0.3",
31
- info: {
32
- title: "Hello World",
33
- version: "1.0.0"
34
- },
35
- paths: {}
36
- });
37
- expect(specification.openapi).toBe("3.1.1");
38
- });
39
- it("works with a filesystem", async () => {
40
- const { specification } = upgrade(
41
- makeFilesystem({
42
- openapi: "3.0.0",
43
- info: {
44
- title: "Hello World",
45
- version: "1.0.0"
46
- },
47
- paths: {}
48
- })
49
- );
50
- expect(specification.openapi).toBe("3.1.1");
51
- });
52
- it("deals with null", async () => {
53
- const { specification } = upgrade(null);
54
- expect(specification).toStrictEqual(null);
55
- });
56
- });
57
- //# sourceMappingURL=upgrade.test.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/upgrade.test.ts"],
4
- "sourcesContent": ["import { describe, expect, it } from 'vitest'\n\nimport { makeFilesystem } from './makeFilesystem'\nimport { upgrade } from './upgrade'\n\ndescribe('upgrade', () => {\n it('upgrades documents from Swagger 2.0 to OpenAPI 3.1', async () => {\n const { specification } = upgrade({\n swagger: '2.0',\n info: {\n title: 'Hello World',\n version: '1.0.0',\n },\n paths: {},\n })\n\n expect(specification.swagger).toBeUndefined()\n expect(specification.openapi).toBe('3.1.1')\n })\n\n it('changes the version to from 3.0.0 to 3.1.0', async () => {\n const { specification } = upgrade({\n openapi: '3.0.0',\n info: {\n title: 'Hello World',\n version: '1.0.0',\n },\n paths: {},\n })\n\n expect(specification.openapi).toBe('3.1.1')\n })\n\n it('changes the version to 3.0.3 to 3.1.0', async () => {\n const { specification } = upgrade({\n openapi: '3.0.3',\n info: {\n title: 'Hello World',\n version: '1.0.0',\n },\n paths: {},\n })\n\n expect(specification.openapi).toBe('3.1.1')\n })\n\n it('works with a filesystem', async () => {\n const { specification } = upgrade(\n makeFilesystem({\n openapi: '3.0.0',\n info: {\n title: 'Hello World',\n version: '1.0.0',\n },\n paths: {},\n }),\n )\n\n expect(specification.openapi).toBe('3.1.1')\n })\n\n it('deals with null', async () => {\n const { specification } = upgrade(null)\n\n expect(specification).toStrictEqual(null)\n })\n})\n"],
5
- "mappings": "AAAA,SAAS,UAAU,QAAQ,UAAU;AAErC,SAAS,sBAAsB;AAC/B,SAAS,eAAe;AAExB,SAAS,WAAW,MAAM;AACxB,KAAG,sDAAsD,YAAY;AACnE,UAAM,EAAE,cAAc,IAAI,QAAQ;AAAA,MAChC,SAAS;AAAA,MACT,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,OAAO,CAAC;AAAA,IACV,CAAC;AAED,WAAO,cAAc,OAAO,EAAE,cAAc;AAC5C,WAAO,cAAc,OAAO,EAAE,KAAK,OAAO;AAAA,EAC5C,CAAC;AAED,KAAG,8CAA8C,YAAY;AAC3D,UAAM,EAAE,cAAc,IAAI,QAAQ;AAAA,MAChC,SAAS;AAAA,MACT,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,OAAO,CAAC;AAAA,IACV,CAAC;AAED,WAAO,cAAc,OAAO,EAAE,KAAK,OAAO;AAAA,EAC5C,CAAC;AAED,KAAG,yCAAyC,YAAY;AACtD,UAAM,EAAE,cAAc,IAAI,QAAQ;AAAA,MAChC,SAAS;AAAA,MACT,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,SAAS;AAAA,MACX;AAAA,MACA,OAAO,CAAC;AAAA,IACV,CAAC;AAED,WAAO,cAAc,OAAO,EAAE,KAAK,OAAO;AAAA,EAC5C,CAAC;AAED,KAAG,2BAA2B,YAAY;AACxC,UAAM,EAAE,cAAc,IAAI;AAAA,MACxB,eAAe;AAAA,QACb,SAAS;AAAA,QACT,MAAM;AAAA,UACJ,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,QACA,OAAO,CAAC;AAAA,MACV,CAAC;AAAA,IACH;AAEA,WAAO,cAAc,OAAO,EAAE,KAAK,OAAO;AAAA,EAC5C,CAAC;AAED,KAAG,mBAAmB,YAAY;AAChC,UAAM,EAAE,cAAc,IAAI,QAAQ,IAAI;AAEtC,WAAO,aAAa,EAAE,cAAc,IAAI;AAAA,EAC1C,CAAC;AACH,CAAC;",
6
- "names": []
7
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"upgradeFromThreeToThreeOne.d.ts","sourceRoot":"","sources":["../../src/utils/upgradeFromThreeToThreeOne.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAkBxD,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAiBpD;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;mBAcxE"}
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/utils/upgradeFromThreeToThreeOne.ts"],
4
- "sourcesContent": ["import type { OpenAPIV3_1 } from '@scalar/openapi-types'\nimport type { UnknownObject } from '@scalar/types/utils'\n\nimport { traverse } from './traverse'\n\n// Create Sets for faster schema path lookups\nconst SCHEMA_SEGMENTS = new Set([\n 'properties',\n 'items',\n 'allOf',\n 'anyOf',\n 'oneOf',\n 'not',\n 'additionalProperties',\n 'schema',\n])\n\nconst SCHEMA_PATHS = new Set(['components/schemas'])\n\n/** Determine if the current path is within a schema - optimized version */\nexport function isSchemaPath(path: string[]): boolean {\n // Check for schema segments first (most common case)\n if (path.some((segment) => SCHEMA_SEGMENTS.has(segment))) {\n return true\n }\n\n // Check for schema suffix\n if (path.some((segment) => segment.endsWith('Schema'))) {\n return true\n }\n\n // Check for components/schemas path\n if (path.length >= 2 && path[0] === 'components' && path[1] === 'schemas') {\n return true\n }\n\n return false\n}\n\n/**\n * Upgrade from OpenAPI 3.0.x to 3.1.1\n *\n * https://www.openapis.org/blog/2021/02/16/migrating-from-openapi-3-0-to-3-1-0\n */\nexport function upgradeFromThreeToThreeOne(originalContent: UnknownObject) {\n let content = originalContent\n\n // Version check - early return if not 3.0.x\n if (content === null || typeof content.openapi !== 'string' || !content.openapi.startsWith('3.0')) {\n return content\n }\n\n content.openapi = '3.1.1'\n\n // Single traversal that handles all transformations\n content = traverse(content, applyChangesToDocument)\n\n return content as OpenAPIV3_1.Document\n}\n\nconst applyChangesToDocument = (schema: UnknownObject, path: string[]) => {\n // 1. Handle nullable types\n if (schema.type !== 'undefined' && schema.nullable === true) {\n schema.type = [schema.type, 'null']\n delete schema.nullable\n }\n\n // 2. Handle exclusiveMinimum and exclusiveMaximum\n if (schema.exclusiveMinimum === true) {\n schema.exclusiveMinimum = schema.minimum\n delete schema.minimum\n } else if (schema.exclusiveMinimum === false) {\n delete schema.exclusiveMinimum\n }\n\n if (schema.exclusiveMaximum === true) {\n schema.exclusiveMaximum = schema.maximum\n delete schema.maximum\n } else if (schema.exclusiveMaximum === false) {\n delete schema.exclusiveMaximum\n }\n\n // 3. Handle examples\n if (schema.example !== undefined) {\n if (isSchemaPath(path)) {\n schema.examples = [schema.example]\n } else {\n schema.examples = {\n default: {\n value: schema.example,\n },\n }\n }\n delete schema.example\n }\n\n // 4. Handle multipart file uploads\n if (schema.type === 'object' && schema.properties !== undefined) {\n const parentPath = path.slice(0, -1)\n const isMultipart = parentPath.some((segment, index) => {\n return segment === 'content' && path[index + 1] === 'multipart/form-data'\n })\n\n if (isMultipart) {\n for (const value of Object.values(schema.properties)) {\n if (\n typeof value === 'object' &&\n value !== null &&\n 'type' in value &&\n 'format' in value &&\n value.type === 'string' &&\n value.format === 'binary'\n ) {\n ;(value as any).contentMediaType = 'application/octet-stream'\n delete (value as any).format\n }\n }\n }\n }\n\n // 5. Handle binary file uploads\n if (path.includes('content') && path.includes('application/octet-stream')) {\n return {}\n }\n\n if (schema.type === 'string') {\n if (schema.format === 'binary') {\n return {\n type: 'string',\n contentMediaType: 'application/octet-stream',\n }\n }\n\n if (schema.format === 'base64') {\n return {\n type: 'string',\n contentEncoding: 'base64',\n }\n }\n\n if (schema.format === 'byte') {\n const parentPath = path.slice(0, -1)\n const contentMediaType = parentPath.find((_, index) => path[index - 1] === 'content')\n return {\n type: 'string',\n contentEncoding: 'base64',\n contentMediaType,\n }\n }\n }\n\n return schema\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }