'use strict'; var chunkLGWHUDLR_cjs = require('./chunk-LGWHUDLR.cjs'); var chunkG54X6VE6_cjs = require('./chunk-G54X6VE6.cjs'); // src/server/server-adapter/api-schema-manifest.ts function convertSchema(schema) { return schema ? chunkG54X6VE6_cjs.schemaToJsonSchema(schema) : void 0; } function asJsonSchema(value) { return value && typeof value === "object" && !Array.isArray(value) ? value : void 0; } function schemaType(schema) { const type = schema?.type; return Array.isArray(type) ? type.find(Boolean) : type; } function inferResponseShape(responseSchema) { if (!responseSchema) return { kind: "unknown" }; const type = schemaType(responseSchema); if (type === "array") return { kind: "array" }; if (type !== "object") return { kind: "single" }; const properties = responseSchema.properties && !Array.isArray(responseSchema.properties) ? responseSchema.properties : {}; const propertyNames = Object.keys(properties); const paginationProperty = "page" in properties ? "page" : "pagination" in properties ? "pagination" : void 0; const listProperty = Object.entries(properties).find( ([, property]) => schemaType(asJsonSchema(property)) === "array" )?.[0]; if (listProperty && (paginationProperty || propertyNames.length <= 2)) { return { kind: "object-property", listProperty, paginationProperty }; } if (responseSchema.additionalProperties && propertyNames.length === 0) return { kind: "record" }; return { kind: "single" }; } function isManifestRoute(route) { return route.responseType === "json" && !route.deprecated; } function buildApiSchemaManifest(routes = chunkLGWHUDLR_cjs.SERVER_ROUTES) { return { version: 1, routes: routes.filter(isManifestRoute).map((route) => { const responseSchema = convertSchema(route.responseSchema); return { method: route.method, path: route.path, responseType: route.responseType, pathParamSchema: convertSchema(route.pathParamSchema), queryParamSchema: convertSchema(route.queryParamSchema), bodySchema: convertSchema(route.bodySchema), responseSchema, responseShape: inferResponseShape(responseSchema) }; }) }; } exports.buildApiSchemaManifest = buildApiSchemaManifest; //# sourceMappingURL=api-schema-manifest-2YIXHU7U.cjs.map //# sourceMappingURL=api-schema-manifest-2YIXHU7U.cjs.map