zod-nest 3.3.0 → 3.4.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.
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +103 -58
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +103 -58
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1037,6 +1037,101 @@ var ZodNestModule = class _ZodNestModule {
|
|
|
1037
1037
|
};
|
|
1038
1038
|
}
|
|
1039
1039
|
};
|
|
1040
|
+
|
|
1041
|
+
// src/document/http-methods.ts
|
|
1042
|
+
var OPENAPI_OPERATION_KEYS = [
|
|
1043
|
+
"get",
|
|
1044
|
+
"put",
|
|
1045
|
+
"post",
|
|
1046
|
+
"delete",
|
|
1047
|
+
"options",
|
|
1048
|
+
"head",
|
|
1049
|
+
"patch",
|
|
1050
|
+
"trace",
|
|
1051
|
+
"query"
|
|
1052
|
+
];
|
|
1053
|
+
var EXTENSION_OPERATION_KEYS = [
|
|
1054
|
+
"search",
|
|
1055
|
+
"propfind",
|
|
1056
|
+
"proppatch",
|
|
1057
|
+
"mkcol",
|
|
1058
|
+
"copy",
|
|
1059
|
+
"move",
|
|
1060
|
+
"lock",
|
|
1061
|
+
"unlock"
|
|
1062
|
+
];
|
|
1063
|
+
var HTTP_METHODS = [
|
|
1064
|
+
...OPENAPI_OPERATION_KEYS,
|
|
1065
|
+
...EXTENSION_OPERATION_KEYS
|
|
1066
|
+
];
|
|
1067
|
+
var ADDITIONAL_OPERATIONS_KEY = "additionalOperations";
|
|
1068
|
+
var isRecord = /* @__PURE__ */ __name((value) => value !== null && typeof value === "object", "isRecord");
|
|
1069
|
+
var operationsOfPathItem = /* @__PURE__ */ __name((pathItem) => {
|
|
1070
|
+
const operations = [];
|
|
1071
|
+
for (const method of HTTP_METHODS) {
|
|
1072
|
+
const operation = pathItem[method];
|
|
1073
|
+
if (isRecord(operation)) {
|
|
1074
|
+
operations.push(operation);
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
1077
|
+
const additional = pathItem[ADDITIONAL_OPERATIONS_KEY];
|
|
1078
|
+
if (isRecord(additional)) {
|
|
1079
|
+
for (const operation of Object.values(additional)) {
|
|
1080
|
+
if (isRecord(operation)) {
|
|
1081
|
+
operations.push(operation);
|
|
1082
|
+
}
|
|
1083
|
+
}
|
|
1084
|
+
}
|
|
1085
|
+
return operations;
|
|
1086
|
+
}, "operationsOfPathItem");
|
|
1087
|
+
var forEachOperation = /* @__PURE__ */ __name((doc, fn) => {
|
|
1088
|
+
const paths = doc.paths;
|
|
1089
|
+
if (!isRecord(paths)) {
|
|
1090
|
+
return;
|
|
1091
|
+
}
|
|
1092
|
+
for (const pathItem of Object.values(paths)) {
|
|
1093
|
+
if (!isRecord(pathItem)) {
|
|
1094
|
+
continue;
|
|
1095
|
+
}
|
|
1096
|
+
for (const operation of operationsOfPathItem(pathItem)) {
|
|
1097
|
+
fn(operation);
|
|
1098
|
+
}
|
|
1099
|
+
}
|
|
1100
|
+
}, "forEachOperation");
|
|
1101
|
+
|
|
1102
|
+
// src/document/additional-operations.ts
|
|
1103
|
+
var isRecord2 = /* @__PURE__ */ __name((value) => value !== null && typeof value === "object", "isRecord");
|
|
1104
|
+
var relocateExtensionOperations = /* @__PURE__ */ __name((doc) => {
|
|
1105
|
+
const paths = doc.paths;
|
|
1106
|
+
if (!isRecord2(paths)) {
|
|
1107
|
+
return;
|
|
1108
|
+
}
|
|
1109
|
+
for (const pathItem of Object.values(paths)) {
|
|
1110
|
+
if (!isRecord2(pathItem)) {
|
|
1111
|
+
continue;
|
|
1112
|
+
}
|
|
1113
|
+
relocateInPathItem(pathItem);
|
|
1114
|
+
}
|
|
1115
|
+
}, "relocateExtensionOperations");
|
|
1116
|
+
var relocateInPathItem = /* @__PURE__ */ __name((pathItem) => {
|
|
1117
|
+
const relocated = {};
|
|
1118
|
+
for (const method of EXTENSION_OPERATION_KEYS) {
|
|
1119
|
+
const operation = pathItem[method];
|
|
1120
|
+
if (!isRecord2(operation)) {
|
|
1121
|
+
continue;
|
|
1122
|
+
}
|
|
1123
|
+
relocated[method.toUpperCase()] = operation;
|
|
1124
|
+
delete pathItem[method];
|
|
1125
|
+
}
|
|
1126
|
+
if (Object.keys(relocated).length === 0) {
|
|
1127
|
+
return;
|
|
1128
|
+
}
|
|
1129
|
+
const existing = pathItem[ADDITIONAL_OPERATIONS_KEY];
|
|
1130
|
+
pathItem[ADDITIONAL_OPERATIONS_KEY] = isRecord2(existing) ? {
|
|
1131
|
+
...relocated,
|
|
1132
|
+
...existing
|
|
1133
|
+
} : relocated;
|
|
1134
|
+
}, "relocateInPathItem");
|
|
1040
1135
|
var URI = /* @__PURE__ */ __name((id) => `#/components/schemas/${id}`, "URI");
|
|
1041
1136
|
var bulkEmit = /* @__PURE__ */ __name((opts) => {
|
|
1042
1137
|
const knownIds = new Set(opts.registry.ids());
|
|
@@ -1076,46 +1171,6 @@ var runPass = /* @__PURE__ */ __name((opts, io, knownIds) => {
|
|
|
1076
1171
|
return filtered;
|
|
1077
1172
|
}, "runPass");
|
|
1078
1173
|
|
|
1079
|
-
// src/document/http-methods.ts
|
|
1080
|
-
var HTTP_METHODS = [
|
|
1081
|
-
"get",
|
|
1082
|
-
"put",
|
|
1083
|
-
"post",
|
|
1084
|
-
"delete",
|
|
1085
|
-
"options",
|
|
1086
|
-
"head",
|
|
1087
|
-
"patch",
|
|
1088
|
-
"trace",
|
|
1089
|
-
"query",
|
|
1090
|
-
"search",
|
|
1091
|
-
"propfind",
|
|
1092
|
-
"proppatch",
|
|
1093
|
-
"mkcol",
|
|
1094
|
-
"copy",
|
|
1095
|
-
"move",
|
|
1096
|
-
"lock",
|
|
1097
|
-
"unlock"
|
|
1098
|
-
];
|
|
1099
|
-
var forEachOperation = /* @__PURE__ */ __name((doc, fn) => {
|
|
1100
|
-
const paths = doc.paths;
|
|
1101
|
-
if (paths === null || typeof paths !== "object") {
|
|
1102
|
-
return;
|
|
1103
|
-
}
|
|
1104
|
-
for (const pathItem of Object.values(paths)) {
|
|
1105
|
-
if (pathItem === null || typeof pathItem !== "object") {
|
|
1106
|
-
continue;
|
|
1107
|
-
}
|
|
1108
|
-
const pathRecord = pathItem;
|
|
1109
|
-
for (const method of HTTP_METHODS) {
|
|
1110
|
-
const op = pathRecord[method];
|
|
1111
|
-
if (op === null || typeof op !== "object") {
|
|
1112
|
-
continue;
|
|
1113
|
-
}
|
|
1114
|
-
fn(op);
|
|
1115
|
-
}
|
|
1116
|
-
}
|
|
1117
|
-
}, "forEachOperation");
|
|
1118
|
-
|
|
1119
1174
|
// src/document/walk-refs.ts
|
|
1120
1175
|
var walkRefs = /* @__PURE__ */ __name((node, visit) => {
|
|
1121
1176
|
if (node === null || typeof node !== "object") {
|
|
@@ -1188,22 +1243,12 @@ var collectInputExposedIds = /* @__PURE__ */ __name((doc, classToDtoId, knownIds
|
|
|
1188
1243
|
if (!isPlainRecord2(pathItem)) {
|
|
1189
1244
|
continue;
|
|
1190
1245
|
}
|
|
1191
|
-
for (const operation of
|
|
1246
|
+
for (const operation of operationsOfPathItem(pathItem)) {
|
|
1192
1247
|
collectRefsFromOperation(operation, classToDtoId, knownIds, ids);
|
|
1193
1248
|
}
|
|
1194
1249
|
}
|
|
1195
1250
|
return ids;
|
|
1196
1251
|
}, "collectInputExposedIds");
|
|
1197
|
-
var operationsOf = /* @__PURE__ */ __name((pathItem) => {
|
|
1198
|
-
const out = [];
|
|
1199
|
-
for (const method of HTTP_METHODS) {
|
|
1200
|
-
const op = pathItem[method];
|
|
1201
|
-
if (isPlainRecord2(op)) {
|
|
1202
|
-
out.push(op);
|
|
1203
|
-
}
|
|
1204
|
-
}
|
|
1205
|
-
return out;
|
|
1206
|
-
}, "operationsOf");
|
|
1207
1252
|
var collectRefsFromOperation = /* @__PURE__ */ __name((operation, classToDtoId, knownIds, ids) => {
|
|
1208
1253
|
if (isPlainRecord2(operation.requestBody)) {
|
|
1209
1254
|
collectRefsFromContent(operation.requestBody.content, classToDtoId, knownIds, ids);
|
|
@@ -1265,7 +1310,7 @@ var collectOutputExposedIds = /* @__PURE__ */ __name((doc, classToDtoId, knownId
|
|
|
1265
1310
|
if (!isPlainRecord2(pathItem)) {
|
|
1266
1311
|
continue;
|
|
1267
1312
|
}
|
|
1268
|
-
for (const operation of
|
|
1313
|
+
for (const operation of operationsOfPathItem(pathItem)) {
|
|
1269
1314
|
collectRefsFromResponses(operation.responses, classToDtoId, knownIds, ids);
|
|
1270
1315
|
}
|
|
1271
1316
|
}
|
|
@@ -1812,11 +1857,7 @@ var rewriteRefs = /* @__PURE__ */ __name((params) => {
|
|
|
1812
1857
|
}
|
|
1813
1858
|
}, "rewriteRefs");
|
|
1814
1859
|
var rewriteResponseSubtree = /* @__PURE__ */ __name((pathItem, divergentOutputIds) => {
|
|
1815
|
-
for (const
|
|
1816
|
-
const op = pathItem[method];
|
|
1817
|
-
if (op === null || typeof op !== "object") {
|
|
1818
|
-
continue;
|
|
1819
|
-
}
|
|
1860
|
+
for (const op of operationsOfPathItem(pathItem)) {
|
|
1820
1861
|
const responses = op.responses;
|
|
1821
1862
|
if (responses === null || typeof responses !== "object") {
|
|
1822
1863
|
continue;
|
|
@@ -1935,7 +1976,11 @@ var applyZodNest = /* @__PURE__ */ __name((doc, opts = {}) => {
|
|
|
1935
1976
|
doc,
|
|
1936
1977
|
collected: extended
|
|
1937
1978
|
});
|
|
1938
|
-
|
|
1979
|
+
const openApiVersion = resolveOpenApiVersion(doc);
|
|
1980
|
+
if (openApiVersion.startsWith("3.2.")) {
|
|
1981
|
+
relocateExtensionOperations(doc);
|
|
1982
|
+
}
|
|
1983
|
+
doc.openapi = openApiVersion;
|
|
1939
1984
|
return doc;
|
|
1940
1985
|
}, "applyZodNest");
|
|
1941
1986
|
|