@typia/utils 12.0.0-dev.20260311 → 12.0.0-dev.20260312

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 (51) hide show
  1. package/lib/converters/OpenApiConverter.d.ts +29 -16
  2. package/lib/converters/OpenApiConverter.js +25 -15
  3. package/lib/converters/OpenApiConverter.js.map +1 -1
  4. package/lib/converters/OpenApiConverter.mjs +25 -15
  5. package/lib/converters/OpenApiConverter.mjs.map +1 -1
  6. package/lib/converters/internal/OpenApiV3Downgrader.js +38 -18
  7. package/lib/converters/internal/OpenApiV3Downgrader.js.map +1 -1
  8. package/lib/converters/internal/OpenApiV3Downgrader.mjs +50 -27
  9. package/lib/converters/internal/OpenApiV3Downgrader.mjs.map +1 -1
  10. package/lib/converters/internal/OpenApiV3Upgrader.js +36 -18
  11. package/lib/converters/internal/OpenApiV3Upgrader.js.map +1 -1
  12. package/lib/converters/internal/OpenApiV3Upgrader.mjs +50 -29
  13. package/lib/converters/internal/OpenApiV3Upgrader.mjs.map +1 -1
  14. package/lib/converters/internal/OpenApiV3_1Upgrader.js +38 -20
  15. package/lib/converters/internal/OpenApiV3_1Upgrader.js.map +1 -1
  16. package/lib/converters/internal/OpenApiV3_1Upgrader.mjs +51 -29
  17. package/lib/converters/internal/OpenApiV3_1Upgrader.mjs.map +1 -1
  18. package/lib/converters/internal/OpenApiV3_2Upgrader.d.ts +16 -0
  19. package/lib/converters/internal/OpenApiV3_2Upgrader.js +204 -0
  20. package/lib/converters/internal/OpenApiV3_2Upgrader.js.map +1 -0
  21. package/lib/converters/internal/OpenApiV3_2Upgrader.mjs +243 -0
  22. package/lib/converters/internal/OpenApiV3_2Upgrader.mjs.map +1 -0
  23. package/lib/converters/internal/SwaggerV2Downgrader.js +38 -18
  24. package/lib/converters/internal/SwaggerV2Downgrader.js.map +1 -1
  25. package/lib/converters/internal/SwaggerV2Downgrader.mjs +50 -27
  26. package/lib/converters/internal/SwaggerV2Downgrader.mjs.map +1 -1
  27. package/lib/converters/internal/SwaggerV2Upgrader.js +37 -19
  28. package/lib/converters/internal/SwaggerV2Upgrader.js.map +1 -1
  29. package/lib/converters/internal/SwaggerV2Upgrader.mjs +50 -29
  30. package/lib/converters/internal/SwaggerV2Upgrader.mjs.map +1 -1
  31. package/lib/http/internal/HttpMigrateApplicationComposer.js +1 -1
  32. package/lib/http/internal/HttpMigrateApplicationComposer.js.map +1 -1
  33. package/lib/http/internal/HttpMigrateApplicationComposer.mjs +1 -1
  34. package/lib/http/internal/HttpMigrateApplicationComposer.mjs.map +1 -1
  35. package/lib/http/internal/HttpMigrateRouteComposer.d.ts +1 -1
  36. package/lib/utils/LlmJson.d.ts +19 -1
  37. package/lib/utils/LlmJson.js +27 -0
  38. package/lib/utils/LlmJson.js.map +1 -1
  39. package/lib/utils/LlmJson.mjs +27 -0
  40. package/lib/utils/LlmJson.mjs.map +1 -1
  41. package/package.json +2 -2
  42. package/src/converters/OpenApiConverter.ts +322 -285
  43. package/src/converters/internal/OpenApiV3Downgrader.ts +381 -355
  44. package/src/converters/internal/OpenApiV3Upgrader.ts +494 -470
  45. package/src/converters/internal/OpenApiV3_1Upgrader.ts +710 -685
  46. package/src/converters/internal/OpenApiV3_2Upgrader.ts +342 -0
  47. package/src/converters/internal/SwaggerV2Downgrader.ts +450 -424
  48. package/src/converters/internal/SwaggerV2Upgrader.ts +547 -523
  49. package/src/http/internal/HttpMigrateApplicationComposer.ts +56 -56
  50. package/src/http/internal/HttpMigrateRouteComposer.ts +505 -505
  51. package/src/utils/LlmJson.ts +173 -141
@@ -0,0 +1,16 @@
1
+ import { OpenApi, OpenApiV3_2 } from "@typia/interface";
2
+ /**
3
+ * OpenAPI v3.2 to emended OpenApi converter.
4
+ *
5
+ * Reuses JSON Schema conversion logic from OpenApiV3_1Upgrader since
6
+ * the schema format is identical between v3.1 and v3.2.
7
+ */
8
+ export declare namespace OpenApiV3_2Upgrader {
9
+ const convert: (input: OpenApiV3_2.IDocument) => OpenApi.IDocument;
10
+ const convertComponents: (input: OpenApiV3_2.IComponents) => OpenApi.IComponents;
11
+ /**
12
+ * Reuse schema conversion from OpenApiV3_1Upgrader.
13
+ * OpenAPI v3.2 uses the same JSON Schema (2020-12) as v3.1.
14
+ */
15
+ const convertSchema: (components: OpenApiV3_2.IComponents) => (input: OpenApiV3_2.IJsonSchema) => OpenApi.IJsonSchema;
16
+ }
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenApiV3_2Upgrader = void 0;
4
+ const OpenApiV3_1TypeChecker_1 = require("../../validators/OpenApiV3_1TypeChecker");
5
+ const OpenApiV3_1Upgrader_1 = require("./OpenApiV3_1Upgrader");
6
+ /**
7
+ * OpenAPI v3.2 to emended OpenApi converter.
8
+ *
9
+ * Reuses JSON Schema conversion logic from OpenApiV3_1Upgrader since
10
+ * the schema format is identical between v3.1 and v3.2.
11
+ */
12
+ var OpenApiV3_2Upgrader;
13
+ (function (OpenApiV3_2Upgrader) {
14
+ OpenApiV3_2Upgrader.convert = (input) => {
15
+ var _a, _b;
16
+ if (input["x-typia-emended-v12"] === true)
17
+ return input;
18
+ return Object.assign(Object.assign({}, input), { openapi: "3.2.0", components: OpenApiV3_2Upgrader.convertComponents((_a = input.components) !== null && _a !== void 0 ? _a : {}), tags: (_b = input.tags) === null || _b === void 0 ? void 0 : _b.map(convertTag), paths: input.paths
19
+ ? Object.fromEntries(Object.entries(input.paths)
20
+ .filter(([_, v]) => v !== undefined)
21
+ .map(([key, value]) => [key, convertPathItem(input)(value)]))
22
+ : undefined, webhooks: input.webhooks
23
+ ? Object.fromEntries(Object.entries(input.webhooks)
24
+ .filter(([_, v]) => v !== undefined)
25
+ .map(([key, value]) => [key, convertWebhooks(input)(value)])
26
+ .filter(([_, value]) => value !== undefined))
27
+ : undefined, "x-typia-emended-v12": true });
28
+ };
29
+ /* -----------------------------------------------------------
30
+ TAGS
31
+ ----------------------------------------------------------- */
32
+ const convertTag = (tag) => ({
33
+ name: tag.name,
34
+ summary: tag.summary,
35
+ description: tag.description,
36
+ parent: tag.parent,
37
+ kind: tag.kind,
38
+ });
39
+ /* -----------------------------------------------------------
40
+ OPERATORS
41
+ ----------------------------------------------------------- */
42
+ const convertWebhooks = (doc) => (webhook) => {
43
+ var _a, _b, _c;
44
+ if (!OpenApiV3_1TypeChecker_1.OpenApiV3_1TypeChecker.isReference(webhook))
45
+ return convertPathItem(doc)(webhook);
46
+ const found = (_b = (_a = doc.components) === null || _a === void 0 ? void 0 : _a.pathItems) === null || _b === void 0 ? void 0 : _b[(_c = webhook.$ref.split("/").pop()) !== null && _c !== void 0 ? _c : ""];
47
+ return found ? convertPathItem(doc)(found) : undefined;
48
+ };
49
+ const convertPathItem = (doc) => (pathItem) => (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, pathItem), (pathItem.get
50
+ ? { get: convertOperation(doc)(pathItem)(pathItem.get) }
51
+ : undefined)), (pathItem.put
52
+ ? { put: convertOperation(doc)(pathItem)(pathItem.put) }
53
+ : undefined)), (pathItem.post
54
+ ? { post: convertOperation(doc)(pathItem)(pathItem.post) }
55
+ : undefined)), (pathItem.delete
56
+ ? { delete: convertOperation(doc)(pathItem)(pathItem.delete) }
57
+ : undefined)), (pathItem.options
58
+ ? { options: convertOperation(doc)(pathItem)(pathItem.options) }
59
+ : undefined)), (pathItem.head
60
+ ? { head: convertOperation(doc)(pathItem)(pathItem.head) }
61
+ : undefined)), (pathItem.patch
62
+ ? { patch: convertOperation(doc)(pathItem)(pathItem.patch) }
63
+ : undefined)), (pathItem.trace
64
+ ? { trace: convertOperation(doc)(pathItem)(pathItem.trace) }
65
+ : undefined)), (pathItem.query
66
+ ? { query: convertOperation(doc)(pathItem)(pathItem.query) }
67
+ : undefined)), (pathItem.additionalOperations
68
+ ? {
69
+ additionalOperations: Object.fromEntries(Object.entries(pathItem.additionalOperations)
70
+ .filter(([_, v]) => v !== undefined)
71
+ .map(([key, value]) => [key, convertOperation(doc)(pathItem)(value)])),
72
+ }
73
+ : undefined)));
74
+ const convertOperation = (doc) => (pathItem) => (input) => {
75
+ var _a, _b;
76
+ return (Object.assign(Object.assign({}, input), { parameters: pathItem.parameters !== undefined || input.parameters !== undefined
77
+ ? [...((_a = pathItem.parameters) !== null && _a !== void 0 ? _a : []), ...((_b = input.parameters) !== null && _b !== void 0 ? _b : [])]
78
+ .map((p) => {
79
+ var _a, _b, _c, _d, _e, _f, _g, _h;
80
+ if (!OpenApiV3_1TypeChecker_1.OpenApiV3_1TypeChecker.isReference(p))
81
+ return convertParameter((_a = doc.components) !== null && _a !== void 0 ? _a : {})(p);
82
+ const found = p.$ref.startsWith("#/components/headers/")
83
+ ? (_c = (_b = doc.components) === null || _b === void 0 ? void 0 : _b.headers) === null || _c === void 0 ? void 0 : _c[(_d = p.$ref.split("/").pop()) !== null && _d !== void 0 ? _d : ""]
84
+ : (_f = (_e = doc.components) === null || _e === void 0 ? void 0 : _e.parameters) === null || _f === void 0 ? void 0 : _f[(_g = p.$ref.split("/").pop()) !== null && _g !== void 0 ? _g : ""];
85
+ return found !== undefined
86
+ ? convertParameter((_h = doc.components) !== null && _h !== void 0 ? _h : {})(Object.assign(Object.assign({}, found), { in: "header" }))
87
+ : undefined;
88
+ })
89
+ .filter((_, v) => v !== undefined)
90
+ : undefined, requestBody: input.requestBody
91
+ ? convertRequestBody(doc)(input.requestBody)
92
+ : undefined, responses: input.responses
93
+ ? Object.fromEntries(Object.entries(input.responses)
94
+ .filter(([_, v]) => v !== undefined)
95
+ .map(([key, value]) => [key, convertResponse(doc)(value)])
96
+ .filter(([_, value]) => value !== undefined))
97
+ : undefined }));
98
+ };
99
+ const convertParameter = (components) => (input) => (Object.assign(Object.assign({}, input), { schema: OpenApiV3_2Upgrader.convertSchema(components)(input.schema), examples: input.examples
100
+ ? Object.fromEntries(Object.entries(input.examples)
101
+ .map(([key, value]) => {
102
+ var _a, _b;
103
+ return [
104
+ key,
105
+ OpenApiV3_1TypeChecker_1.OpenApiV3_1TypeChecker.isReference(value)
106
+ ? (_a = components.examples) === null || _a === void 0 ? void 0 : _a[(_b = value.$ref.split("/").pop()) !== null && _b !== void 0 ? _b : ""]
107
+ : value,
108
+ ];
109
+ })
110
+ .filter(([_, v]) => v !== undefined))
111
+ : undefined }));
112
+ const convertRequestBody = (doc) => (input) => {
113
+ var _a, _b, _c, _d;
114
+ if (OpenApiV3_1TypeChecker_1.OpenApiV3_1TypeChecker.isReference(input)) {
115
+ const found = (_b = (_a = doc.components) === null || _a === void 0 ? void 0 : _a.requestBodies) === null || _b === void 0 ? void 0 : _b[(_c = input.$ref.split("/").pop()) !== null && _c !== void 0 ? _c : ""];
116
+ if (found === undefined)
117
+ return undefined;
118
+ input = found;
119
+ }
120
+ return Object.assign(Object.assign({}, input), { content: input.content
121
+ ? convertContent((_d = doc.components) !== null && _d !== void 0 ? _d : {})(input.content)
122
+ : undefined });
123
+ };
124
+ const convertResponse = (doc) => (input) => {
125
+ var _a, _b, _c, _d;
126
+ if (OpenApiV3_1TypeChecker_1.OpenApiV3_1TypeChecker.isReference(input)) {
127
+ const found = (_b = (_a = doc.components) === null || _a === void 0 ? void 0 : _a.responses) === null || _b === void 0 ? void 0 : _b[(_c = input.$ref.split("/").pop()) !== null && _c !== void 0 ? _c : ""];
128
+ if (found === undefined)
129
+ return undefined;
130
+ input = found;
131
+ }
132
+ return Object.assign(Object.assign({}, input), { content: input.content
133
+ ? convertContent((_d = doc.components) !== null && _d !== void 0 ? _d : {})(input.content)
134
+ : undefined, headers: input.headers
135
+ ? Object.fromEntries(Object.entries(input.headers)
136
+ .filter(([_, v]) => v !== undefined)
137
+ .map(([key, value]) => [
138
+ key,
139
+ (() => {
140
+ var _a, _b, _c, _d, _e;
141
+ if (OpenApiV3_1TypeChecker_1.OpenApiV3_1TypeChecker.isReference(value) === false)
142
+ return convertParameter((_a = doc.components) !== null && _a !== void 0 ? _a : {})(Object.assign(Object.assign({}, value), { in: "header" }));
143
+ const found = value.$ref.startsWith("#/components/headers/")
144
+ ? (_c = (_b = doc.components) === null || _b === void 0 ? void 0 : _b.headers) === null || _c === void 0 ? void 0 : _c[(_d = value.$ref.split("/").pop()) !== null && _d !== void 0 ? _d : ""]
145
+ : undefined;
146
+ return found !== undefined
147
+ ? convertParameter((_e = doc.components) !== null && _e !== void 0 ? _e : {})(Object.assign(Object.assign({}, found), { in: "header" }))
148
+ : undefined;
149
+ })(),
150
+ ])
151
+ .filter(([_, v]) => v !== undefined))
152
+ : undefined });
153
+ };
154
+ const convertContent = (components) => (record) => Object.fromEntries(Object.entries(record)
155
+ .filter(([_, v]) => v !== undefined)
156
+ .map(([key, value]) => [
157
+ key,
158
+ Object.assign(Object.assign({}, value), { schema: value.schema
159
+ ? OpenApiV3_2Upgrader.convertSchema(components)(value.schema)
160
+ : undefined, itemSchema: value.itemSchema
161
+ ? OpenApiV3_2Upgrader.convertSchema(components)(value.itemSchema)
162
+ : undefined, examples: value.examples
163
+ ? Object.fromEntries(Object.entries(value.examples)
164
+ .map(([key, value]) => {
165
+ var _a, _b;
166
+ return [
167
+ key,
168
+ OpenApiV3_1TypeChecker_1.OpenApiV3_1TypeChecker.isReference(value)
169
+ ? (_a = components.examples) === null || _a === void 0 ? void 0 : _a[(_b = value.$ref.split("/").pop()) !== null && _b !== void 0 ? _b : ""]
170
+ : value,
171
+ ];
172
+ })
173
+ .filter(([_, v]) => v !== undefined))
174
+ : undefined }),
175
+ ]));
176
+ /* -----------------------------------------------------------
177
+ DEFINITIONS
178
+ ----------------------------------------------------------- */
179
+ OpenApiV3_2Upgrader.convertComponents = (input) => {
180
+ var _a;
181
+ return ({
182
+ schemas: Object.fromEntries(Object.entries((_a = input.schemas) !== null && _a !== void 0 ? _a : {})
183
+ .filter(([_, v]) => v !== undefined)
184
+ .map(([key, value]) => [key, OpenApiV3_2Upgrader.convertSchema(input)(value)])),
185
+ securitySchemes: input.securitySchemes
186
+ ? Object.fromEntries(Object.entries(input.securitySchemes)
187
+ .filter(([_, v]) => v !== undefined)
188
+ .map(([key, value]) => [key, convertSecurityScheme(value)]))
189
+ : undefined,
190
+ });
191
+ };
192
+ const convertSecurityScheme = (input) => {
193
+ if (input.type === "oauth2") {
194
+ return Object.assign(Object.assign({}, input), { flows: Object.assign(Object.assign({}, input.flows), { deviceAuthorization: input.flows.deviceAuthorization }), oauth2MetadataUrl: input.oauth2MetadataUrl });
195
+ }
196
+ return input;
197
+ };
198
+ /**
199
+ * Reuse schema conversion from OpenApiV3_1Upgrader.
200
+ * OpenAPI v3.2 uses the same JSON Schema (2020-12) as v3.1.
201
+ */
202
+ OpenApiV3_2Upgrader.convertSchema = (components) => (input) => OpenApiV3_1Upgrader_1.OpenApiV3_1Upgrader.convertSchema(components)(input);
203
+ })(OpenApiV3_2Upgrader || (exports.OpenApiV3_2Upgrader = OpenApiV3_2Upgrader = {}));
204
+ //# sourceMappingURL=OpenApiV3_2Upgrader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenApiV3_2Upgrader.js","sourceRoot":"","sources":["../../../src/converters/internal/OpenApiV3_2Upgrader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,243 @@
1
+ import { OpenApiV3_1TypeChecker } from '../../validators/OpenApiV3_1TypeChecker.mjs';
2
+ import { OpenApiV3_1Upgrader } from './OpenApiV3_1Upgrader.mjs';
3
+
4
+ /**
5
+ * OpenAPI v3.2 to emended OpenApi converter.
6
+ *
7
+ * Reuses JSON Schema conversion logic from OpenApiV3_1Upgrader since
8
+ * the schema format is identical between v3.1 and v3.2.
9
+ */
10
+ var OpenApiV3_2Upgrader;
11
+ (function (OpenApiV3_2Upgrader) {
12
+ OpenApiV3_2Upgrader.convert = (input) => {
13
+ if (input["x-typia-emended-v12"] === true)
14
+ return input;
15
+ return {
16
+ ...input,
17
+ openapi: "3.2.0",
18
+ components: OpenApiV3_2Upgrader.convertComponents(input.components ?? {}),
19
+ tags: input.tags?.map(convertTag),
20
+ paths: input.paths
21
+ ? Object.fromEntries(Object.entries(input.paths)
22
+ .filter(([_, v]) => v !== undefined)
23
+ .map(([key, value]) => [key, convertPathItem(input)(value)]))
24
+ : undefined,
25
+ webhooks: input.webhooks
26
+ ? Object.fromEntries(Object.entries(input.webhooks)
27
+ .filter(([_, v]) => v !== undefined)
28
+ .map(([key, value]) => [key, convertWebhooks(input)(value)])
29
+ .filter(([_, value]) => value !== undefined))
30
+ : undefined,
31
+ "x-typia-emended-v12": true,
32
+ };
33
+ };
34
+ /* -----------------------------------------------------------
35
+ TAGS
36
+ ----------------------------------------------------------- */
37
+ const convertTag = (tag) => ({
38
+ name: tag.name,
39
+ summary: tag.summary,
40
+ description: tag.description,
41
+ parent: tag.parent,
42
+ kind: tag.kind,
43
+ });
44
+ /* -----------------------------------------------------------
45
+ OPERATORS
46
+ ----------------------------------------------------------- */
47
+ const convertWebhooks = (doc) => (webhook) => {
48
+ if (!OpenApiV3_1TypeChecker.isReference(webhook))
49
+ return convertPathItem(doc)(webhook);
50
+ const found = doc.components?.pathItems?.[webhook.$ref.split("/").pop() ?? ""];
51
+ return found ? convertPathItem(doc)(found) : undefined;
52
+ };
53
+ const convertPathItem = (doc) => (pathItem) => ({
54
+ ...pathItem,
55
+ ...(pathItem.get
56
+ ? { get: convertOperation(doc)(pathItem)(pathItem.get) }
57
+ : undefined),
58
+ ...(pathItem.put
59
+ ? { put: convertOperation(doc)(pathItem)(pathItem.put) }
60
+ : undefined),
61
+ ...(pathItem.post
62
+ ? { post: convertOperation(doc)(pathItem)(pathItem.post) }
63
+ : undefined),
64
+ ...(pathItem.delete
65
+ ? { delete: convertOperation(doc)(pathItem)(pathItem.delete) }
66
+ : undefined),
67
+ ...(pathItem.options
68
+ ? { options: convertOperation(doc)(pathItem)(pathItem.options) }
69
+ : undefined),
70
+ ...(pathItem.head
71
+ ? { head: convertOperation(doc)(pathItem)(pathItem.head) }
72
+ : undefined),
73
+ ...(pathItem.patch
74
+ ? { patch: convertOperation(doc)(pathItem)(pathItem.patch) }
75
+ : undefined),
76
+ ...(pathItem.trace
77
+ ? { trace: convertOperation(doc)(pathItem)(pathItem.trace) }
78
+ : undefined),
79
+ ...(pathItem.query
80
+ ? { query: convertOperation(doc)(pathItem)(pathItem.query) }
81
+ : undefined),
82
+ ...(pathItem.additionalOperations
83
+ ? {
84
+ additionalOperations: Object.fromEntries(Object.entries(pathItem.additionalOperations)
85
+ .filter(([_, v]) => v !== undefined)
86
+ .map(([key, value]) => [key, convertOperation(doc)(pathItem)(value)])),
87
+ }
88
+ : undefined),
89
+ });
90
+ const convertOperation = (doc) => (pathItem) => (input) => ({
91
+ ...input,
92
+ parameters: pathItem.parameters !== undefined || input.parameters !== undefined
93
+ ? [...(pathItem.parameters ?? []), ...(input.parameters ?? [])]
94
+ .map((p) => {
95
+ if (!OpenApiV3_1TypeChecker.isReference(p))
96
+ return convertParameter(doc.components ?? {})(p);
97
+ const found = p.$ref.startsWith("#/components/headers/")
98
+ ? doc.components?.headers?.[p.$ref.split("/").pop() ?? ""]
99
+ : doc.components?.parameters?.[p.$ref.split("/").pop() ?? ""];
100
+ return found !== undefined
101
+ ? convertParameter(doc.components ?? {})({
102
+ ...found,
103
+ in: "header",
104
+ })
105
+ : undefined;
106
+ })
107
+ .filter((_, v) => v !== undefined)
108
+ : undefined,
109
+ requestBody: input.requestBody
110
+ ? convertRequestBody(doc)(input.requestBody)
111
+ : undefined,
112
+ responses: input.responses
113
+ ? Object.fromEntries(Object.entries(input.responses)
114
+ .filter(([_, v]) => v !== undefined)
115
+ .map(([key, value]) => [key, convertResponse(doc)(value)])
116
+ .filter(([_, value]) => value !== undefined))
117
+ : undefined,
118
+ });
119
+ const convertParameter = (components) => (input) => ({
120
+ ...input,
121
+ schema: OpenApiV3_2Upgrader.convertSchema(components)(input.schema),
122
+ examples: input.examples
123
+ ? Object.fromEntries(Object.entries(input.examples)
124
+ .map(([key, value]) => [
125
+ key,
126
+ OpenApiV3_1TypeChecker.isReference(value)
127
+ ? components.examples?.[value.$ref.split("/").pop() ?? ""]
128
+ : value,
129
+ ])
130
+ .filter(([_, v]) => v !== undefined))
131
+ : undefined,
132
+ });
133
+ const convertRequestBody = (doc) => (input) => {
134
+ if (OpenApiV3_1TypeChecker.isReference(input)) {
135
+ const found = doc.components?.requestBodies?.[input.$ref.split("/").pop() ?? ""];
136
+ if (found === undefined)
137
+ return undefined;
138
+ input = found;
139
+ }
140
+ return {
141
+ ...input,
142
+ content: input.content
143
+ ? convertContent(doc.components ?? {})(input.content)
144
+ : undefined,
145
+ };
146
+ };
147
+ const convertResponse = (doc) => (input) => {
148
+ if (OpenApiV3_1TypeChecker.isReference(input)) {
149
+ const found = doc.components?.responses?.[input.$ref.split("/").pop() ?? ""];
150
+ if (found === undefined)
151
+ return undefined;
152
+ input = found;
153
+ }
154
+ return {
155
+ ...input,
156
+ content: input.content
157
+ ? convertContent(doc.components ?? {})(input.content)
158
+ : undefined,
159
+ headers: input.headers
160
+ ? Object.fromEntries(Object.entries(input.headers)
161
+ .filter(([_, v]) => v !== undefined)
162
+ .map(([key, value]) => [
163
+ key,
164
+ (() => {
165
+ if (OpenApiV3_1TypeChecker.isReference(value) === false)
166
+ return convertParameter(doc.components ?? {})({
167
+ ...value,
168
+ in: "header",
169
+ });
170
+ const found = value.$ref.startsWith("#/components/headers/")
171
+ ? doc.components?.headers?.[value.$ref.split("/").pop() ?? ""]
172
+ : undefined;
173
+ return found !== undefined
174
+ ? convertParameter(doc.components ?? {})({
175
+ ...found,
176
+ in: "header",
177
+ })
178
+ : undefined;
179
+ })(),
180
+ ])
181
+ .filter(([_, v]) => v !== undefined))
182
+ : undefined,
183
+ };
184
+ };
185
+ const convertContent = (components) => (record) => Object.fromEntries(Object.entries(record)
186
+ .filter(([_, v]) => v !== undefined)
187
+ .map(([key, value]) => [
188
+ key,
189
+ {
190
+ ...value,
191
+ schema: value.schema
192
+ ? OpenApiV3_2Upgrader.convertSchema(components)(value.schema)
193
+ : undefined,
194
+ itemSchema: value.itemSchema
195
+ ? OpenApiV3_2Upgrader.convertSchema(components)(value.itemSchema)
196
+ : undefined,
197
+ examples: value.examples
198
+ ? Object.fromEntries(Object.entries(value.examples)
199
+ .map(([key, value]) => [
200
+ key,
201
+ OpenApiV3_1TypeChecker.isReference(value)
202
+ ? components.examples?.[value.$ref.split("/").pop() ?? ""]
203
+ : value,
204
+ ])
205
+ .filter(([_, v]) => v !== undefined))
206
+ : undefined,
207
+ },
208
+ ]));
209
+ /* -----------------------------------------------------------
210
+ DEFINITIONS
211
+ ----------------------------------------------------------- */
212
+ OpenApiV3_2Upgrader.convertComponents = (input) => ({
213
+ schemas: Object.fromEntries(Object.entries(input.schemas ?? {})
214
+ .filter(([_, v]) => v !== undefined)
215
+ .map(([key, value]) => [key, OpenApiV3_2Upgrader.convertSchema(input)(value)])),
216
+ securitySchemes: input.securitySchemes
217
+ ? Object.fromEntries(Object.entries(input.securitySchemes)
218
+ .filter(([_, v]) => v !== undefined)
219
+ .map(([key, value]) => [key, convertSecurityScheme(value)]))
220
+ : undefined,
221
+ });
222
+ const convertSecurityScheme = (input) => {
223
+ if (input.type === "oauth2") {
224
+ return {
225
+ ...input,
226
+ flows: {
227
+ ...input.flows,
228
+ deviceAuthorization: input.flows.deviceAuthorization,
229
+ },
230
+ oauth2MetadataUrl: input.oauth2MetadataUrl,
231
+ };
232
+ }
233
+ return input;
234
+ };
235
+ /**
236
+ * Reuse schema conversion from OpenApiV3_1Upgrader.
237
+ * OpenAPI v3.2 uses the same JSON Schema (2020-12) as v3.1.
238
+ */
239
+ OpenApiV3_2Upgrader.convertSchema = (components) => (input) => OpenApiV3_1Upgrader.convertSchema(components)(input);
240
+ })(OpenApiV3_2Upgrader || (OpenApiV3_2Upgrader = {}));
241
+
242
+ export { OpenApiV3_2Upgrader };
243
+ //# sourceMappingURL=OpenApiV3_2Upgrader.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenApiV3_2Upgrader.mjs","sources":["../../../src/converters/internal/OpenApiV3_2Upgrader.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAKA;;;;;AAKG;AACG,IAAW;AAAjB,CAAA,UAAiB,mBAAmB,EAAA;AACrB,IAAA,mBAAA,CAAA,OAAO,GAAG,CAAC,KAA4B,KAAuB;AACzE,QAAA,IAAK,KAA2B,CAAC,qBAAqB,CAAC,KAAK,IAAI;AAC9D,YAAA,OAAO,KAA0B;QACnC,OAAO;AACL,YAAA,GAAG,KAAK;AACR,YAAA,OAAO,EAAE,OAAO;YAChB,UAAU,EAAE,oBAAA,iBAAiB,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;YACrD,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC;YACjC,KAAK,EAAE,KAAK,CAAC;AACX,kBAAE,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;AACvB,qBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS;qBAClC,GAAG,CACF,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAU,CAChE;AAEP,kBAAE,SAAS;YACb,QAAQ,EAAE,KAAK,CAAC;AACd,kBAAE,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;AAC1B,qBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS;qBAClC,GAAG,CACF,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KACX,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,KAAK,CAAE,CAAU;AAEjD,qBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,SAAS,CAAC;AAElD,kBAAE,SAAS;AACb,YAAA,qBAAqB,EAAE,IAAI;SAC5B;AACH,IAAA,CAAC;AAED;;AAE8D;AAC9D,IAAA,MAAM,UAAU,GAAG,CAAC,GAA+B,MAA8B;QAC/E,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,IAAI;AACf,KAAA,CAAC;AAEF;;AAE8D;IAC9D,MAAM,eAAe,GACnB,CAAC,GAA0B,KAC3B,CACE,OAE0E,KAC7C;AAC7B,QAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,OAAO,CAAC;AAC9C,YAAA,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;QACtC,MAAM,KAAK,GACT,GAAG,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;AAClE,QAAA,OAAO,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS;AACxD,IAAA,CAAC;AAEH,IAAA,MAAM,eAAe,GACnB,CAAC,GAA0B,KAC3B,CAAC,QAA2B,MAAqB;AAC/C,QAAA,GAAI,QAAgB;QACpB,IAAI,QAAQ,CAAC;AACX,cAAE,EAAE,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;cACpD,SAAS,CAAC;QACd,IAAI,QAAQ,CAAC;AACX,cAAE,EAAE,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;cACpD,SAAS,CAAC;QACd,IAAI,QAAQ,CAAC;AACX,cAAE,EAAE,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;cACtD,SAAS,CAAC;QACd,IAAI,QAAQ,CAAC;AACX,cAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;cAC1D,SAAS,CAAC;QACd,IAAI,QAAQ,CAAC;AACX,cAAE,EAAE,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;cAC5D,SAAS,CAAC;QACd,IAAI,QAAQ,CAAC;AACX,cAAE,EAAE,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;cACtD,SAAS,CAAC;QACd,IAAI,QAAQ,CAAC;AACX,cAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;cACxD,SAAS,CAAC;QACd,IAAI,QAAQ,CAAC;AACX,cAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;cACxD,SAAS,CAAC;QACd,IAAI,QAAQ,CAAC;AACX,cAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;cACxD,SAAS,CAAC;QACd,IAAI,QAAQ,CAAC;AACX,cAAE;AACE,gBAAA,oBAAoB,EAAE,MAAM,CAAC,WAAW,CACtC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;AACzC,qBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS;qBAClC,GAAG,CACF,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KACX,CAAC,GAAG,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAU,CACzD,CACJ;AACF;cACD,SAAS,CAAC;AACf,KAAA,CAAC;AAEJ,IAAA,MAAM,gBAAgB,GACpB,CAAC,GAA0B,KAC3B,CAAC,QAA2B,KAC5B,CAAC,KAA6B,MAA0B;AACtD,QAAA,GAAG,KAAK;QACR,UAAU,EACR,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK;AACxD,cAAE,CAAC,IAAI,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;AACzD,iBAAA,GAAG,CAAC,CAAC,CAAC,KAAI;AACT,gBAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC;oBACxC,OAAO,gBAAgB,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClD,MAAM,KAAK,GAEK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,uBAAuB;sBACrD,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE;sBACvD,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBAC/D,OAAO,KAAK,KAAK;sBACb,gBAAgB,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;AACrC,wBAAA,GAAG,KAAK;AACR,wBAAA,EAAE,EAAE,QAAQ;qBACb;sBACD,SAAU;AAChB,YAAA,CAAC;iBACA,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,SAAS;AACrC,cAAE,SAAS;QACf,WAAW,EAAE,KAAK,CAAC;cACf,kBAAkB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW;AAC3C,cAAE,SAAS;QACb,SAAS,EAAE,KAAK,CAAC;AACf,cAAE,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS;AAC3B,iBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS;iBAClC,GAAG,CACF,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,CAAE,CAAU;AAE/D,iBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,SAAS,CAAC;AAElD,cAAE,SAAS;AACd,KAAA,CAAC;AAEJ,IAAA,MAAM,gBAAgB,GACpB,CAAC,UAAmC,KACpC,CACE,KAAwC,MACL;AACnC,QAAA,GAAG,KAAK;QACR,MAAM,EAAE,mBAAA,CAAA,aAAa,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QAC/C,QAAQ,EAAE,KAAK,CAAC;AACd,cAAE,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;iBAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;gBACrB,GAAG;AACH,gBAAA,sBAAsB,CAAC,WAAW,CAAC,KAAK;AACtC,sBAAE,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE;AACzD,sBAAE,KAAK;aACV;AACA,iBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;AAE1C,cAAE,SAAS;AACd,KAAA,CAAC;IAEJ,MAAM,kBAAkB,GACtB,CAAC,GAA0B,KAC3B,CACE,KAE8E,KAC/B;AAC/C,QAAA,IAAI,sBAAsB,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YAC7C,MAAM,KAAK,GACT,GAAG,CAAC,UAAU,EAAE,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YACpE,IAAI,KAAK,KAAK,SAAS;AAAE,gBAAA,OAAO,SAAS;YACzC,KAAK,GAAG,KAAK;QACf;QACA,OAAO;AACL,YAAA,GAAG,KAAK;YACR,OAAO,EAAE,KAAK,CAAC;AACb,kBAAE,cAAc,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;AACpD,kBAAE,SAAS;SACd;AACH,IAAA,CAAC;IAEH,MAAM,eAAe,GACnB,CAAC,GAA0B,KAC3B,CACE,KAE0E,KAC9B;AAC5C,QAAA,IAAI,sBAAsB,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YAC7C,MAAM,KAAK,GACT,GAAG,CAAC,UAAU,EAAE,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YAChE,IAAI,KAAK,KAAK,SAAS;AAAE,gBAAA,OAAO,SAAS;YACzC,KAAK,GAAG,KAAK;QACf;QACA,OAAO;AACL,YAAA,GAAG,KAAK;YACR,OAAO,EAAE,KAAK,CAAC;AACb,kBAAE,cAAc,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;AACpD,kBAAE,SAAS;YACb,OAAO,EAAE,KAAK,CAAC;AACb,kBAAE,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO;AACzB,qBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS;qBAClC,GAAG,CACF,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KACX;oBACE,GAAG;AACH,oBAAA,CAAC,MAAK;AACJ,wBAAA,IAAI,sBAAsB,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK;4BACrD,OAAO,gBAAgB,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;AAC5C,gCAAA,GAAG,KAAK;AACR,gCAAA,EAAE,EAAE,QAAQ;AACb,6BAAA,CAAC;wBACJ,MAAM,KAAK,GAEK,KAAK,CAAC,IAAI,CAAC,UAAU,CACnC,uBAAuB;8BAErB,GAAG,CAAC,UAAU,EAAE,OAAO,GACrB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE;8BAEnC,SAAS;wBACb,OAAO,KAAK,KAAK;8BACb,gBAAgB,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;AACrC,gCAAA,GAAG,KAAK;AACR,gCAAA,EAAE,EAAE,QAAQ;6BACb;8BACD,SAAU;AAChB,oBAAA,CAAC,GAAG;iBACI;AAEb,qBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;AAE1C,kBAAE,SAAS;SACd;AACH,IAAA,CAAC;IAEH,MAAM,cAAc,GAClB,CAAC,UAAmC,KACpC,CACE,MAAyD,KAEzD,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,MAAM;AAClB,SAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS;SAClC,GAAG,CACF,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KACX;QACE,GAAG;AACH,QAAA;AACE,YAAA,GAAG,KAAK;YACR,MAAM,EAAE,KAAK,CAAC;kBACV,mBAAA,CAAA,aAAa,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM;AACxC,kBAAE,SAAS;YACb,UAAU,EAAE,KAAK,CAAC;kBACd,mBAAA,CAAA,aAAa,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,UAAU;AAC5C,kBAAE,SAAS;YACb,QAAQ,EAAE,KAAK,CAAC;AACd,kBAAE,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ;qBAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;oBACrB,GAAG;AACH,oBAAA,sBAAsB,CAAC,WAAW,CAAC,KAAK;AACtC,0BAAE,UAAU,CAAC,QAAQ,GACjB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE;AAErC,0BAAE,KAAK;iBACV;AACA,qBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;AAE1C,kBAAE,SAAS;AACd,SAAA;AACO,KAAA,CACb,CACJ;AAEL;;AAE8D;AACjD,IAAA,mBAAA,CAAA,iBAAiB,GAAG,CAC/B,KAA8B,MACL;AACzB,QAAA,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE;AAC/B,aAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS;aAClC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,mBAAA,CAAA,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAU,CAAC,CACtE;QACD,eAAe,EAAE,KAAK,CAAC;AACrB,cAAE,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe;AACjC,iBAAA,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,SAAS;AAClC,iBAAA,GAAG,CACF,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KACX,CAAC,GAAG,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAU,CAC/C;AAEP,cAAE,SAAS;AACd,KAAA,CAAC;AAEF,IAAA,MAAM,qBAAqB,GAAG,CAC5B,KAAkC,KACP;AAC3B,QAAA,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC3B,OAAO;AACL,gBAAA,GAAG,KAAK;AACR,gBAAA,KAAK,EAAE;oBACL,GAAG,KAAK,CAAC,KAAK;AACd,oBAAA,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,mBAAmB;AACrD,iBAAA;gBACD,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;aAC3C;QACH;AACA,QAAA,OAAO,KAAK;AACd,IAAA,CAAC;AAED;;;AAGG;IACU,mBAAA,CAAA,aAAa,GACxB,CAAC,UAAmC,KACpC,CAAC,KAA8B,KAC7B,mBAAmB,CAAC,aAAa,CAAC,UAAiB,CAAC,CAAC,KAAY,CAAC;AACxE,CAAC,EA1UgB,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;;;;"}
@@ -32,23 +32,43 @@ var SwaggerV2Downgrader;
32
32
  /* -----------------------------------------------------------
33
33
  OPERATORS
34
34
  ----------------------------------------------------------- */
35
- const downgradePathItem = (collection) => (pathItem) => (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, pathItem), (pathItem.get
36
- ? { get: downgradeOperation(collection)(pathItem.get) }
37
- : undefined)), (pathItem.put
38
- ? { put: downgradeOperation(collection)(pathItem.put) }
39
- : undefined)), (pathItem.post
40
- ? { post: downgradeOperation(collection)(pathItem.post) }
41
- : undefined)), (pathItem.delete
42
- ? { delete: downgradeOperation(collection)(pathItem.delete) }
43
- : undefined)), (pathItem.options
44
- ? { options: downgradeOperation(collection)(pathItem.options) }
45
- : undefined)), (pathItem.head
46
- ? { head: downgradeOperation(collection)(pathItem.head) }
47
- : undefined)), (pathItem.patch
48
- ? { patch: downgradeOperation(collection)(pathItem.patch) }
49
- : undefined)), (pathItem.trace
50
- ? { trace: downgradeOperation(collection)(pathItem.trace) }
51
- : undefined)));
35
+ const downgradePathItem = (collection) => (pathItem) => {
36
+ // Collect non-standard operations for x-additionalOperations
37
+ const xAdditionalOperations = {};
38
+ // query method goes to x-additionalOperations
39
+ if (pathItem.query) {
40
+ xAdditionalOperations["query"] = downgradeOperation(collection)(pathItem.query);
41
+ }
42
+ // additionalOperations also go to x-additionalOperations
43
+ if (pathItem.additionalOperations) {
44
+ for (const [key, value] of Object.entries(pathItem.additionalOperations)) {
45
+ if (value !== undefined) {
46
+ xAdditionalOperations[key] = downgradeOperation(collection)(value);
47
+ }
48
+ }
49
+ }
50
+ return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, pathItem), (pathItem.get
51
+ ? { get: downgradeOperation(collection)(pathItem.get) }
52
+ : undefined)), (pathItem.put
53
+ ? { put: downgradeOperation(collection)(pathItem.put) }
54
+ : undefined)), (pathItem.post
55
+ ? { post: downgradeOperation(collection)(pathItem.post) }
56
+ : undefined)), (pathItem.delete
57
+ ? { delete: downgradeOperation(collection)(pathItem.delete) }
58
+ : undefined)), (pathItem.options
59
+ ? { options: downgradeOperation(collection)(pathItem.options) }
60
+ : undefined)), (pathItem.head
61
+ ? { head: downgradeOperation(collection)(pathItem.head) }
62
+ : undefined)), (pathItem.patch
63
+ ? { patch: downgradeOperation(collection)(pathItem.patch) }
64
+ : undefined)), (pathItem.trace
65
+ ? { trace: downgradeOperation(collection)(pathItem.trace) }
66
+ : undefined)), (Object.keys(xAdditionalOperations).length > 0
67
+ ? { "x-additionalOperations": xAdditionalOperations }
68
+ : undefined)), {
69
+ // Remove v3.2-only properties from spread
70
+ query: undefined, additionalOperations: undefined });
71
+ };
52
72
  const downgradeOperation = (collection) => (input) => {
53
73
  var _a;
54
74
  return (Object.assign(Object.assign(Object.assign({}, input), { parameters: input.parameters !== undefined || input.requestBody !== undefined
@@ -72,7 +92,7 @@ var SwaggerV2Downgrader;
72
92
  };
73
93
  const downgradeParameter = (collection) => (input, i) => {
74
94
  var _a, _b;
75
- return (Object.assign(Object.assign(Object.assign(Object.assign({}, SwaggerV2Downgrader.downgradeSchema(collection)(input.schema)), input), { required: (_a = input.schema) === null || _a === void 0 ? void 0 : _a.required, schema: undefined, name: (_b = input.name) !== null && _b !== void 0 ? _b : `p${i}` }), {
95
+ return (Object.assign(Object.assign(Object.assign(Object.assign({}, SwaggerV2Downgrader.downgradeSchema(collection)(input.schema)), input), { in: input.in === "querystring" ? "query" : input.in, required: (_a = input.schema) === null || _a === void 0 ? void 0 : _a.required, schema: undefined, name: (_b = input.name) !== null && _b !== void 0 ? _b : `p${i}` }), {
76
96
  example: undefined,
77
97
  examples: undefined,
78
98
  }));