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

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.
@@ -18,6 +18,7 @@ import { OpenApi, OpenApiV3, OpenApiV3_1, OpenApiV3_2, SwaggerV2 } from "@typia/
18
18
  *
19
19
  * - Emended v3.2 → Swagger v2.0
20
20
  * - Emended v3.2 → OpenAPI v3.0
21
+ * - Emended v3.2 → OpenAPI v3.1
21
22
  *
22
23
  * The emended format normalizes ambiguous expressions: dereferences `$ref`,
23
24
  * merges `allOf`, converts `nullable` to union types, etc.
@@ -48,6 +49,7 @@ export declare namespace OpenApiConverter {
48
49
  * @returns OpenAPI v3.0 document
49
50
  */
50
51
  function downgradeDocument(document: OpenApi.IDocument, version: "3.0"): OpenApiV3.IDocument;
52
+ function downgradeDocument(document: OpenApi.IDocument, version: "3.1"): OpenApiV3_1.IDocument;
51
53
  /**
52
54
  * Upgrade components to typia's emended format.
53
55
  *
@@ -71,6 +73,14 @@ export declare namespace OpenApiConverter {
71
73
  * @returns OpenAPI v3.0 components
72
74
  */
73
75
  function downgradeComponents(input: OpenApi.IComponents, version: "3.0"): OpenApiV3.IComponents;
76
+ /**
77
+ * Downgrade components to OpenAPI v3.1 format.
78
+ *
79
+ * @param input Source emended components
80
+ * @param version Target version "3.1"
81
+ * @returns OpenAPI v3.1 components
82
+ */
83
+ function downgradeComponents(input: OpenApi.IComponents, version: "3.1"): OpenApiV3_1.IComponents;
74
84
  /**
75
85
  * Upgrade Swagger v2.0 schema to emended format.
76
86
  *
@@ -145,4 +155,19 @@ export declare namespace OpenApiConverter {
145
155
  version: "3.0";
146
156
  downgraded: OpenApiV3.IComponents;
147
157
  }): OpenApiV3.IJsonSchema;
158
+ /**
159
+ * Downgrade schema to OpenAPI v3.1 format.
160
+ *
161
+ * @param props.components Source emended components
162
+ * @param props.schema Schema to downgrade
163
+ * @param props.version Target version "3.1"
164
+ * @param props.downgraded Target components (mutated)
165
+ * @returns OpenAPI v3.1 schema
166
+ */
167
+ function downgradeSchema(props: {
168
+ components: OpenApi.IComponents;
169
+ schema: OpenApi.IJsonSchema;
170
+ version: "3.1";
171
+ downgraded: OpenApiV3_1.IComponents;
172
+ }): OpenApiV3_1.IJsonSchema;
148
173
  }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OpenApiConverter = void 0;
4
4
  const OpenApiV3Downgrader_1 = require("./internal/OpenApiV3Downgrader");
5
5
  const OpenApiV3Upgrader_1 = require("./internal/OpenApiV3Upgrader");
6
+ const OpenApiV3_1Downgrader_1 = require("./internal/OpenApiV3_1Downgrader");
6
7
  const OpenApiV3_1Upgrader_1 = require("./internal/OpenApiV3_1Upgrader");
7
8
  const OpenApiV3_2Upgrader_1 = require("./internal/OpenApiV3_2Upgrader");
8
9
  const SwaggerV2Downgrader_1 = require("./internal/SwaggerV2Downgrader");
@@ -26,6 +27,7 @@ const SwaggerV2Upgrader_1 = require("./internal/SwaggerV2Upgrader");
26
27
  *
27
28
  * - Emended v3.2 → Swagger v2.0
28
29
  * - Emended v3.2 → OpenAPI v3.0
30
+ * - Emended v3.2 → OpenAPI v3.1
29
31
  *
30
32
  * The emended format normalizes ambiguous expressions: dereferences `$ref`,
31
33
  * merges `allOf`, converts `nullable` to union types, etc.
@@ -64,6 +66,8 @@ var OpenApiConverter;
64
66
  return SwaggerV2Downgrader_1.SwaggerV2Downgrader.downgrade(document);
65
67
  else if (version === "3.0")
66
68
  return OpenApiV3Downgrader_1.OpenApiV3Downgrader.downgrade(document);
69
+ else if (version === "3.1")
70
+ return OpenApiV3_1Downgrader_1.OpenApiV3_1Downgrader.downgrade(document);
67
71
  version;
68
72
  throw new Error("Invalid OpenAPI version");
69
73
  }
@@ -87,6 +91,8 @@ var OpenApiConverter;
87
91
  function downgradeComponents(input, version) {
88
92
  if (version === "2.0")
89
93
  return SwaggerV2Downgrader_1.SwaggerV2Downgrader.downgradeComponents(input).downgraded;
94
+ if (version === "3.1")
95
+ return OpenApiV3_1Downgrader_1.OpenApiV3_1Downgrader.downgradeComponents(input).downgraded;
90
96
  return OpenApiV3Downgrader_1.OpenApiV3Downgrader.downgradeComponents(input).downgraded;
91
97
  }
92
98
  OpenApiConverter.downgradeComponents = downgradeComponents;
@@ -104,6 +110,11 @@ var OpenApiConverter;
104
110
  original: props.components,
105
111
  downgraded: props.downgraded,
106
112
  })(props.schema);
113
+ if (props.version === "3.1")
114
+ return OpenApiV3_1Downgrader_1.OpenApiV3_1Downgrader.downgradeSchema({
115
+ original: props.components,
116
+ downgraded: props.downgraded,
117
+ })(props.schema);
107
118
  return OpenApiV3Downgrader_1.OpenApiV3Downgrader.downgradeSchema({
108
119
  original: props.components,
109
120
  downgraded: props.downgraded,
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiConverter.js","sourceRoot":"","sources":["../../src/converters/OpenApiConverter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenApiConverter.js","sourceRoot":"","sources":["../../src/converters/OpenApiConverter.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { OpenApiV3Downgrader } from './internal/OpenApiV3Downgrader.mjs';
2
2
  import { OpenApiV3Upgrader } from './internal/OpenApiV3Upgrader.mjs';
3
+ import { OpenApiV3_1Downgrader } from './internal/OpenApiV3_1Downgrader.mjs';
3
4
  import { OpenApiV3_1Upgrader } from './internal/OpenApiV3_1Upgrader.mjs';
4
5
  import { OpenApiV3_2Upgrader } from './internal/OpenApiV3_2Upgrader.mjs';
5
6
  import { SwaggerV2Downgrader } from './internal/SwaggerV2Downgrader.mjs';
@@ -24,6 +25,7 @@ import { SwaggerV2Upgrader } from './internal/SwaggerV2Upgrader.mjs';
24
25
  *
25
26
  * - Emended v3.2 → Swagger v2.0
26
27
  * - Emended v3.2 → OpenAPI v3.0
28
+ * - Emended v3.2 → OpenAPI v3.1
27
29
  *
28
30
  * The emended format normalizes ambiguous expressions: dereferences `$ref`,
29
31
  * merges `allOf`, converts `nullable` to union types, etc.
@@ -61,6 +63,8 @@ var OpenApiConverter;
61
63
  return SwaggerV2Downgrader.downgrade(document);
62
64
  else if (version === "3.0")
63
65
  return OpenApiV3Downgrader.downgrade(document);
66
+ else if (version === "3.1")
67
+ return OpenApiV3_1Downgrader.downgrade(document);
64
68
  throw new Error("Invalid OpenAPI version");
65
69
  }
66
70
  OpenApiConverter.downgradeDocument = downgradeDocument;
@@ -83,6 +87,8 @@ var OpenApiConverter;
83
87
  function downgradeComponents(input, version) {
84
88
  if (version === "2.0")
85
89
  return SwaggerV2Downgrader.downgradeComponents(input).downgraded;
90
+ if (version === "3.1")
91
+ return OpenApiV3_1Downgrader.downgradeComponents(input).downgraded;
86
92
  return OpenApiV3Downgrader.downgradeComponents(input).downgraded;
87
93
  }
88
94
  OpenApiConverter.downgradeComponents = downgradeComponents;
@@ -100,6 +106,11 @@ var OpenApiConverter;
100
106
  original: props.components,
101
107
  downgraded: props.downgraded,
102
108
  })(props.schema);
109
+ if (props.version === "3.1")
110
+ return OpenApiV3_1Downgrader.downgradeSchema({
111
+ original: props.components,
112
+ downgraded: props.downgraded,
113
+ })(props.schema);
103
114
  return OpenApiV3Downgrader.downgradeSchema({
104
115
  original: props.components,
105
116
  downgraded: props.downgraded,
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiConverter.mjs","sources":["../../src/converters/OpenApiConverter.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAeA;;;;;;;;;;;;;;;;;;;;;;;;AAwBG;AACG,IAAW;AAAjB,CAAA,UAAiB,gBAAgB,EAAA;AAC/B;;AAE8D;AAC9D;;;;;AAKG;IACH,SAAgB,eAAe,CAC7B,QAKqB,EAAA;QAErB,IAAI,UAAU,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,QAAQ;aACpC,IAAI,MAAM,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC;aAClE,IAAI,MAAM,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC;aAClE,IAAI,MAAM,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;aAChE,IAAI,MAAM,CAAC,QAAQ,CAAC;AAAE,YAAA,OAAO,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC;AAErE,QAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;IAC7C;AAfgB,IAAA,gBAAA,CAAA,eAAe,kBAe9B;;AA2BD,IAAA,SAAgB,iBAAiB,CAC/B,QAA2B,EAC3B,OAAsB,EAAA;QAEtB,IAAI,OAAO,KAAK,KAAK;AAAE,YAAA,OAAO,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC;aAChE,IAAI,OAAO,KAAK,KAAK;AAAE,YAAA,OAAO,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC;AAE1E,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;IAC5C;AARgB,IAAA,gBAAA,CAAA,iBAAiB,oBAQhC;AAED;;AAE8D;AAC9D;;;;;AAKG;IACH,SAAgB,iBAAiB,CAC/B,KAIuB,EAAA;QAEvB,IAAI,MAAM,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC;AACpE,QAAA,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,KAAY,CAAC;IAC5D;AATgB,IAAA,gBAAA,CAAA,iBAAiB,oBAShC;;AA2BD,IAAA,SAAgB,mBAAmB,CACjC,KAA0B,EAC1B,OAAsB,EAAA;QAEtB,IAAI,OAAO,KAAK,KAAK;YACnB,OAAO,mBAAmB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,UAAU;QAClE,OAAO,mBAAmB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,UAAU;IAClE;AAPgB,IAAA,gBAAA,CAAA,mBAAmB,sBAOlC;;IAsDD,SAAgB,aAAa,CAC3B,KAgBK,EAAA;QAEL,IAAI,aAAa,IAAI,KAAK;AACxB,YAAA,OAAO,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AACzE,QAAA,OAAO,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,UAAiB,CAAC,CAC/D,KAAK,CAAC,MAAa,CACpB;IACH;AAxBgB,IAAA,gBAAA,CAAA,aAAa,gBAwB5B;;IAmCD,SAAgB,eAAe,CAAgC,KAO9D,EAAA;AACC,QAAA,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;YACzB,OAAO,mBAAmB,CAAC,eAAe,CAAC;gBACzC,QAAQ,EAAE,KAAK,CAAC,UAAU;gBAC1B,UAAU,EAAE,KAAK,CAAC,UAAmD;AACtE,aAAA,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QAClB,OAAO,mBAAmB,CAAC,eAAe,CAAC;YACzC,QAAQ,EAAE,KAAK,CAAC,UAAU;YAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;AAC7B,SAAA,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;IAClB;AAjBgB,IAAA,gBAAA,CAAA,eAAe,kBAiB9B;AACH,CAAC,EArPgB,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;AAuPjC,MAAM,MAAM,GAAG,CAAC,KAAc,KAC5B,OAAO,KAAK,KAAK,QAAQ;AACzB,IAAA,KAAK,KAAK,IAAI;AACd,IAAA,SAAS,IAAI,KAAK;AAClB,IAAA,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;AACjC,IAAA,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;AAEjC,MAAM,MAAM,GAAG,CAAC,KAAc,KAC5B,OAAO,KAAK,KAAK,QAAQ;AACzB,IAAA,KAAK,KAAK,IAAI;AACd,IAAA,SAAS,IAAI,KAAK;AAClB,IAAA,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;AACjC,IAAA,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;AAEjC,MAAM,MAAM,GAAG,CAAC,KAAc,KAC5B,OAAO,KAAK,KAAK,QAAQ;AACzB,IAAA,KAAK,KAAK,IAAI;AACd,IAAA,SAAS,IAAI,KAAK;AAClB,IAAA,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;AACjC,IAAA,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;AAEjC,MAAM,MAAM,GAAG,CAAC,KAAc,KAC5B,OAAO,KAAK,KAAK,QAAQ;AACzB,IAAA,KAAK,KAAK,IAAI;AACd,IAAA,SAAS,IAAI,KAAK;AAClB,IAAA,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;AACjC,IAAA,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;AAEjC,MAAM,UAAU,GAAG,CAAC,KAAc,KAChC,OAAO,KAAK,KAAK,QAAQ;AACzB,IAAA,KAAK,KAAK,IAAI;AACd,IAAA,SAAS,IAAI,KAAK;AAClB,IAAA,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;AACjC,IAAA,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;AAC9B,IAAA,KAA2B,CAAC,qBAAqB,CAAC,KAAK,IAAI;;;;"}
1
+ {"version":3,"file":"OpenApiConverter.mjs","sources":["../../src/converters/OpenApiConverter.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { OpenApi, OpenApiV3_1 } from "@typia/interface";
2
+ export declare namespace OpenApiV3_1Downgrader {
3
+ interface IComponentsCollection {
4
+ original: OpenApi.IComponents;
5
+ downgraded: OpenApiV3_1.IComponents;
6
+ }
7
+ const downgrade: (input: OpenApi.IDocument) => OpenApiV3_1.IDocument;
8
+ const downgradeComponents: (input: OpenApi.IComponents) => IComponentsCollection;
9
+ const downgradeSchema: (collection: IComponentsCollection) => (input: OpenApi.IJsonSchema) => OpenApiV3_1.IJsonSchema;
10
+ }
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.OpenApiV3_1Downgrader = void 0;
15
+ const OpenApiTypeChecker_1 = require("../../validators/OpenApiTypeChecker");
16
+ var OpenApiV3_1Downgrader;
17
+ (function (OpenApiV3_1Downgrader) {
18
+ OpenApiV3_1Downgrader.downgrade = (input) => {
19
+ const collection = OpenApiV3_1Downgrader.downgradeComponents(input.components);
20
+ return {
21
+ openapi: "3.1.0",
22
+ servers: input.servers,
23
+ info: input.info,
24
+ components: collection.downgraded,
25
+ paths: input.paths
26
+ ? Object.fromEntries(Object.entries(input.paths)
27
+ .filter(([_, v]) => v !== undefined)
28
+ .map(([key, value]) => [key, downgradePathItem(collection)(value)]))
29
+ : undefined,
30
+ webhooks: input.webhooks
31
+ ? Object.fromEntries(Object.entries(input.webhooks)
32
+ .filter(([_, v]) => v !== undefined)
33
+ .map(([key, value]) => [key, downgradePathItem(collection)(value)]))
34
+ : undefined,
35
+ security: input.security,
36
+ tags: input.tags,
37
+ };
38
+ };
39
+ /* -----------------------------------------------------------
40
+ OPERATORS
41
+ ----------------------------------------------------------- */
42
+ const downgradePathItem = (collection) => (pathItem) => {
43
+ // Collect non-standard operations for x-additionalOperations
44
+ const xAdditionalOperations = {};
45
+ // query method goes to x-additionalOperations
46
+ if (pathItem.query) {
47
+ xAdditionalOperations["query"] = downgradeOperation(collection)(pathItem.query);
48
+ }
49
+ // additionalOperations also go to x-additionalOperations
50
+ if (pathItem.additionalOperations) {
51
+ for (const [key, value] of Object.entries(pathItem.additionalOperations)) {
52
+ if (value !== undefined) {
53
+ xAdditionalOperations[key] = downgradeOperation(collection)(value);
54
+ }
55
+ }
56
+ }
57
+ 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
58
+ ? { get: downgradeOperation(collection)(pathItem.get) }
59
+ : undefined)), (pathItem.put
60
+ ? { put: downgradeOperation(collection)(pathItem.put) }
61
+ : undefined)), (pathItem.post
62
+ ? { post: downgradeOperation(collection)(pathItem.post) }
63
+ : undefined)), (pathItem.delete
64
+ ? { delete: downgradeOperation(collection)(pathItem.delete) }
65
+ : undefined)), (pathItem.options
66
+ ? { options: downgradeOperation(collection)(pathItem.options) }
67
+ : undefined)), (pathItem.head
68
+ ? { head: downgradeOperation(collection)(pathItem.head) }
69
+ : undefined)), (pathItem.patch
70
+ ? { patch: downgradeOperation(collection)(pathItem.patch) }
71
+ : undefined)), (pathItem.trace
72
+ ? { trace: downgradeOperation(collection)(pathItem.trace) }
73
+ : undefined)), (Object.keys(xAdditionalOperations).length > 0
74
+ ? { "x-additionalOperations": xAdditionalOperations }
75
+ : undefined)), {
76
+ // Remove v3.2-only properties from spread
77
+ query: undefined, additionalOperations: undefined });
78
+ };
79
+ const downgradeOperation = (collection) => (input) => (Object.assign(Object.assign({}, input), { parameters: input.parameters
80
+ ? input.parameters.map(downgradeParameter(collection))
81
+ : undefined, requestBody: input.requestBody
82
+ ? downgradeRequestBody(collection)(input.requestBody)
83
+ : undefined, responses: input.responses
84
+ ? Object.fromEntries(Object.entries(input.responses)
85
+ .filter(([_, v]) => v !== undefined)
86
+ .map(([key, value]) => [
87
+ key,
88
+ downgradeResponse(collection)(value),
89
+ ]))
90
+ : undefined }));
91
+ const downgradeParameter = (collection) => (input) => (Object.assign(Object.assign({}, input), { in: input.in === "querystring" ? "query" : input.in, schema: OpenApiV3_1Downgrader.downgradeSchema(collection)(input.schema) }));
92
+ const downgradeRequestBody = (collection) => (input) => (Object.assign(Object.assign({}, input), { content: input.content
93
+ ? downgradeContent(collection)(input.content)
94
+ : undefined }));
95
+ const downgradeResponse = (collection) => (input) => (Object.assign(Object.assign({}, input), { content: input.content
96
+ ? downgradeContent(collection)(input.content)
97
+ : undefined, headers: input.headers
98
+ ? Object.fromEntries(Object.entries(input.headers)
99
+ .filter(([_, v]) => v !== undefined)
100
+ .map(([key, value]) => [
101
+ key,
102
+ Object.assign(Object.assign({}, value), { schema: OpenApiV3_1Downgrader.downgradeSchema(collection)(value.schema) }),
103
+ ]))
104
+ : undefined }));
105
+ const downgradeContent = (collection) => (record) => Object.fromEntries(Object.entries(record)
106
+ .filter(([_, v]) => v !== undefined)
107
+ .map(([key, value]) => [
108
+ key,
109
+ Object.assign(Object.assign({}, value), { schema: (value === null || value === void 0 ? void 0 : value.schema)
110
+ ? OpenApiV3_1Downgrader.downgradeSchema(collection)(value.schema)
111
+ : undefined,
112
+ // itemSchema is v3.2-only, remove it
113
+ itemSchema: undefined }),
114
+ ]));
115
+ /* -----------------------------------------------------------
116
+ DEFINITIONS
117
+ ----------------------------------------------------------- */
118
+ OpenApiV3_1Downgrader.downgradeComponents = (input) => {
119
+ const collection = {
120
+ original: input,
121
+ downgraded: {
122
+ securitySchemes: input.securitySchemes
123
+ ? downgradeSecuritySchemes(input.securitySchemes)
124
+ : undefined,
125
+ },
126
+ };
127
+ if (input.schemas) {
128
+ collection.downgraded.schemas = {};
129
+ for (const [key, value] of Object.entries(input.schemas))
130
+ if (value !== undefined)
131
+ collection.downgraded.schemas[key] =
132
+ OpenApiV3_1Downgrader.downgradeSchema(collection)(value);
133
+ }
134
+ return collection;
135
+ };
136
+ OpenApiV3_1Downgrader.downgradeSchema = (collection) => (input) => {
137
+ const union = [];
138
+ const attribute = Object.assign({ title: input.title, description: input.description, deprecated: input.deprecated, readOnly: input.readOnly, writeOnly: input.writeOnly, example: input.example, examples: input.examples }, Object.fromEntries(Object.entries(input).filter(([key, value]) => key.startsWith("x-") && value !== undefined)));
139
+ const visit = (schema) => {
140
+ if (OpenApiTypeChecker_1.OpenApiTypeChecker.isNull(schema))
141
+ union.push({ type: "null" });
142
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isConstant(schema))
143
+ union.push({ const: schema.const });
144
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isBoolean(schema) ||
145
+ OpenApiTypeChecker_1.OpenApiTypeChecker.isInteger(schema) ||
146
+ OpenApiTypeChecker_1.OpenApiTypeChecker.isNumber(schema) ||
147
+ OpenApiTypeChecker_1.OpenApiTypeChecker.isString(schema) ||
148
+ OpenApiTypeChecker_1.OpenApiTypeChecker.isReference(schema))
149
+ union.push(Object.assign({}, schema));
150
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isArray(schema))
151
+ union.push(Object.assign(Object.assign({}, schema), { items: OpenApiV3_1Downgrader.downgradeSchema(collection)(schema.items) }));
152
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isTuple(schema))
153
+ union.push(Object.assign(Object.assign({}, schema), { prefixItems: schema.prefixItems.map(OpenApiV3_1Downgrader.downgradeSchema(collection)), additionalItems: typeof schema.additionalItems === "object"
154
+ ? OpenApiV3_1Downgrader.downgradeSchema(collection)(schema.additionalItems)
155
+ : schema.additionalItems }));
156
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isObject(schema))
157
+ union.push(Object.assign(Object.assign({}, schema), { properties: schema.properties
158
+ ? Object.fromEntries(Object.entries(schema.properties)
159
+ .filter(([_, v]) => v !== undefined)
160
+ .map(([key, value]) => [
161
+ key,
162
+ OpenApiV3_1Downgrader.downgradeSchema(collection)(value),
163
+ ]))
164
+ : undefined, additionalProperties: typeof schema.additionalProperties === "object"
165
+ ? OpenApiV3_1Downgrader.downgradeSchema(collection)(schema.additionalProperties)
166
+ : schema.additionalProperties, required: schema.required }));
167
+ else if (OpenApiTypeChecker_1.OpenApiTypeChecker.isOneOf(schema))
168
+ schema.oneOf.forEach(visit);
169
+ };
170
+ visit(input);
171
+ return Object.assign(Object.assign({}, (union.length === 0
172
+ ? { type: undefined }
173
+ : union.length === 1
174
+ ? Object.assign({}, union[0]) : { oneOf: union })), attribute);
175
+ };
176
+ const downgradeSecuritySchemes = (input) => Object.fromEntries(Object.entries(input)
177
+ .filter(([_, v]) => v !== undefined)
178
+ .map(([key, value]) => [key, downgradeSecurityScheme(value)]));
179
+ const downgradeSecurityScheme = (input) => {
180
+ if (input.type === "oauth2") {
181
+ const _a = input.flows, { deviceAuthorization: _ } = _a, flows = __rest(_a, ["deviceAuthorization"]);
182
+ return {
183
+ type: "oauth2",
184
+ flows,
185
+ description: input.description,
186
+ };
187
+ }
188
+ return Object.assign({}, input);
189
+ };
190
+ })(OpenApiV3_1Downgrader || (exports.OpenApiV3_1Downgrader = OpenApiV3_1Downgrader = {}));
191
+ //# sourceMappingURL=OpenApiV3_1Downgrader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenApiV3_1Downgrader.js","sourceRoot":"","sources":["../../../src/converters/internal/OpenApiV3_1Downgrader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,239 @@
1
+ import { OpenApiTypeChecker } from '../../validators/OpenApiTypeChecker.mjs';
2
+
3
+ var OpenApiV3_1Downgrader;
4
+ (function (OpenApiV3_1Downgrader) {
5
+ OpenApiV3_1Downgrader.downgrade = (input) => {
6
+ const collection = OpenApiV3_1Downgrader.downgradeComponents(input.components);
7
+ return {
8
+ openapi: "3.1.0",
9
+ servers: input.servers,
10
+ info: input.info,
11
+ components: collection.downgraded,
12
+ paths: input.paths
13
+ ? Object.fromEntries(Object.entries(input.paths)
14
+ .filter(([_, v]) => v !== undefined)
15
+ .map(([key, value]) => [key, downgradePathItem(collection)(value)]))
16
+ : undefined,
17
+ webhooks: input.webhooks
18
+ ? Object.fromEntries(Object.entries(input.webhooks)
19
+ .filter(([_, v]) => v !== undefined)
20
+ .map(([key, value]) => [key, downgradePathItem(collection)(value)]))
21
+ : undefined,
22
+ security: input.security,
23
+ tags: input.tags,
24
+ };
25
+ };
26
+ /* -----------------------------------------------------------
27
+ OPERATORS
28
+ ----------------------------------------------------------- */
29
+ const downgradePathItem = (collection) => (pathItem) => {
30
+ // Collect non-standard operations for x-additionalOperations
31
+ const xAdditionalOperations = {};
32
+ // query method goes to x-additionalOperations
33
+ if (pathItem.query) {
34
+ xAdditionalOperations["query"] = downgradeOperation(collection)(pathItem.query);
35
+ }
36
+ // additionalOperations also go to x-additionalOperations
37
+ if (pathItem.additionalOperations) {
38
+ for (const [key, value] of Object.entries(pathItem.additionalOperations)) {
39
+ if (value !== undefined) {
40
+ xAdditionalOperations[key] = downgradeOperation(collection)(value);
41
+ }
42
+ }
43
+ }
44
+ return {
45
+ ...pathItem,
46
+ ...(pathItem.get
47
+ ? { get: downgradeOperation(collection)(pathItem.get) }
48
+ : undefined),
49
+ ...(pathItem.put
50
+ ? { put: downgradeOperation(collection)(pathItem.put) }
51
+ : undefined),
52
+ ...(pathItem.post
53
+ ? { post: downgradeOperation(collection)(pathItem.post) }
54
+ : undefined),
55
+ ...(pathItem.delete
56
+ ? { delete: downgradeOperation(collection)(pathItem.delete) }
57
+ : undefined),
58
+ ...(pathItem.options
59
+ ? { options: downgradeOperation(collection)(pathItem.options) }
60
+ : undefined),
61
+ ...(pathItem.head
62
+ ? { head: downgradeOperation(collection)(pathItem.head) }
63
+ : undefined),
64
+ ...(pathItem.patch
65
+ ? { patch: downgradeOperation(collection)(pathItem.patch) }
66
+ : undefined),
67
+ ...(pathItem.trace
68
+ ? { trace: downgradeOperation(collection)(pathItem.trace) }
69
+ : undefined),
70
+ ...(Object.keys(xAdditionalOperations).length > 0
71
+ ? { "x-additionalOperations": xAdditionalOperations }
72
+ : undefined),
73
+ // Remove v3.2-only properties from spread
74
+ query: undefined,
75
+ additionalOperations: undefined,
76
+ };
77
+ };
78
+ const downgradeOperation = (collection) => (input) => ({
79
+ ...input,
80
+ parameters: input.parameters
81
+ ? input.parameters.map(downgradeParameter(collection))
82
+ : undefined,
83
+ requestBody: input.requestBody
84
+ ? downgradeRequestBody(collection)(input.requestBody)
85
+ : undefined,
86
+ responses: input.responses
87
+ ? Object.fromEntries(Object.entries(input.responses)
88
+ .filter(([_, v]) => v !== undefined)
89
+ .map(([key, value]) => [
90
+ key,
91
+ downgradeResponse(collection)(value),
92
+ ]))
93
+ : undefined,
94
+ });
95
+ const downgradeParameter = (collection) => (input) => ({
96
+ ...input,
97
+ in: input.in === "querystring" ? "query" : input.in,
98
+ schema: OpenApiV3_1Downgrader.downgradeSchema(collection)(input.schema),
99
+ });
100
+ const downgradeRequestBody = (collection) => (input) => ({
101
+ ...input,
102
+ content: input.content
103
+ ? downgradeContent(collection)(input.content)
104
+ : undefined,
105
+ });
106
+ const downgradeResponse = (collection) => (input) => ({
107
+ ...input,
108
+ content: input.content
109
+ ? downgradeContent(collection)(input.content)
110
+ : undefined,
111
+ headers: input.headers
112
+ ? Object.fromEntries(Object.entries(input.headers)
113
+ .filter(([_, v]) => v !== undefined)
114
+ .map(([key, value]) => [
115
+ key,
116
+ {
117
+ ...value,
118
+ schema: OpenApiV3_1Downgrader.downgradeSchema(collection)(value.schema),
119
+ },
120
+ ]))
121
+ : undefined,
122
+ });
123
+ const downgradeContent = (collection) => (record) => Object.fromEntries(Object.entries(record)
124
+ .filter(([_, v]) => v !== undefined)
125
+ .map(([key, value]) => [
126
+ key,
127
+ {
128
+ ...value,
129
+ schema: value?.schema
130
+ ? OpenApiV3_1Downgrader.downgradeSchema(collection)(value.schema)
131
+ : undefined,
132
+ // itemSchema is v3.2-only, remove it
133
+ itemSchema: undefined,
134
+ },
135
+ ]));
136
+ /* -----------------------------------------------------------
137
+ DEFINITIONS
138
+ ----------------------------------------------------------- */
139
+ OpenApiV3_1Downgrader.downgradeComponents = (input) => {
140
+ const collection = {
141
+ original: input,
142
+ downgraded: {
143
+ securitySchemes: input.securitySchemes
144
+ ? downgradeSecuritySchemes(input.securitySchemes)
145
+ : undefined,
146
+ },
147
+ };
148
+ if (input.schemas) {
149
+ collection.downgraded.schemas = {};
150
+ for (const [key, value] of Object.entries(input.schemas))
151
+ if (value !== undefined)
152
+ collection.downgraded.schemas[key] =
153
+ OpenApiV3_1Downgrader.downgradeSchema(collection)(value);
154
+ }
155
+ return collection;
156
+ };
157
+ OpenApiV3_1Downgrader.downgradeSchema = (collection) => (input) => {
158
+ const union = [];
159
+ const attribute = {
160
+ title: input.title,
161
+ description: input.description,
162
+ deprecated: input.deprecated,
163
+ readOnly: input.readOnly,
164
+ writeOnly: input.writeOnly,
165
+ example: input.example,
166
+ examples: input.examples,
167
+ ...Object.fromEntries(Object.entries(input).filter(([key, value]) => key.startsWith("x-") && value !== undefined)),
168
+ };
169
+ const visit = (schema) => {
170
+ if (OpenApiTypeChecker.isNull(schema))
171
+ union.push({ type: "null" });
172
+ else if (OpenApiTypeChecker.isConstant(schema))
173
+ union.push({ const: schema.const });
174
+ else if (OpenApiTypeChecker.isBoolean(schema) ||
175
+ OpenApiTypeChecker.isInteger(schema) ||
176
+ OpenApiTypeChecker.isNumber(schema) ||
177
+ OpenApiTypeChecker.isString(schema) ||
178
+ OpenApiTypeChecker.isReference(schema))
179
+ union.push({ ...schema });
180
+ else if (OpenApiTypeChecker.isArray(schema))
181
+ union.push({
182
+ ...schema,
183
+ items: OpenApiV3_1Downgrader.downgradeSchema(collection)(schema.items),
184
+ });
185
+ else if (OpenApiTypeChecker.isTuple(schema))
186
+ union.push({
187
+ ...schema,
188
+ prefixItems: schema.prefixItems.map(OpenApiV3_1Downgrader.downgradeSchema(collection)),
189
+ additionalItems: typeof schema.additionalItems === "object"
190
+ ? OpenApiV3_1Downgrader.downgradeSchema(collection)(schema.additionalItems)
191
+ : schema.additionalItems,
192
+ });
193
+ else if (OpenApiTypeChecker.isObject(schema))
194
+ union.push({
195
+ ...schema,
196
+ properties: schema.properties
197
+ ? Object.fromEntries(Object.entries(schema.properties)
198
+ .filter(([_, v]) => v !== undefined)
199
+ .map(([key, value]) => [
200
+ key,
201
+ OpenApiV3_1Downgrader.downgradeSchema(collection)(value),
202
+ ]))
203
+ : undefined,
204
+ additionalProperties: typeof schema.additionalProperties === "object"
205
+ ? OpenApiV3_1Downgrader.downgradeSchema(collection)(schema.additionalProperties)
206
+ : schema.additionalProperties,
207
+ required: schema.required,
208
+ });
209
+ else if (OpenApiTypeChecker.isOneOf(schema))
210
+ schema.oneOf.forEach(visit);
211
+ };
212
+ visit(input);
213
+ return {
214
+ ...(union.length === 0
215
+ ? { type: undefined }
216
+ : union.length === 1
217
+ ? { ...union[0] }
218
+ : { oneOf: union }),
219
+ ...attribute,
220
+ };
221
+ };
222
+ const downgradeSecuritySchemes = (input) => Object.fromEntries(Object.entries(input)
223
+ .filter(([_, v]) => v !== undefined)
224
+ .map(([key, value]) => [key, downgradeSecurityScheme(value)]));
225
+ const downgradeSecurityScheme = (input) => {
226
+ if (input.type === "oauth2") {
227
+ const { deviceAuthorization: _, ...flows } = input.flows;
228
+ return {
229
+ type: "oauth2",
230
+ flows,
231
+ description: input.description,
232
+ };
233
+ }
234
+ return { ...input };
235
+ };
236
+ })(OpenApiV3_1Downgrader || (OpenApiV3_1Downgrader = {}));
237
+
238
+ export { OpenApiV3_1Downgrader };
239
+ //# sourceMappingURL=OpenApiV3_1Downgrader.mjs.map