{"version":3,"file":"component-writer.mjs","sources":["../../src/post-processor/component-writer.ts"],"sourcesContent":["import { OpenAPIV3_1 } from 'openapi-types';\nimport * as z from 'zod/v4';\nimport type { DocumentContext } from '../types';\nimport {\n  OPENAPI_SCHEMA_CONVERSION_OPTIONS,\n  liftZodSharedDefinitions,\n  toComponentsPath,\n} from '../utils/zod';\nimport type { PostProcessor } from './types';\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n  return typeof value === 'object' && value !== null && Array.isArray(value) === false;\n};\n\nexport class ComponentsWriter implements PostProcessor {\n  postProcess(context: DocumentContext): void {\n    const { output, strapi } = context;\n    const registry = z.registry<{ id: string }>();\n\n    for (const [id, schema] of strapi.contentAPISchemaRegistry.entries()) {\n      registry.add(schema, { id });\n    }\n\n    const { schemas } = z.toJSONSchema(registry, {\n      ...OPENAPI_SCHEMA_CONVERSION_OPTIONS,\n      uri: toComponentsPath,\n    });\n\n    const converted: Record<string, unknown> = isPlainObject(schemas) ? schemas : {};\n    liftZodSharedDefinitions(converted);\n\n    const existingComponents = output.data.components ?? {};\n    const extracted = context.registries.extractedComponentSchemas;\n\n    output.data.components = {\n      ...existingComponents,\n      schemas: {\n        ...extracted,\n        ...(converted as Record<string, OpenAPIV3_1.SchemaObject>),\n      },\n    };\n  }\n}\n"],"names":["isPlainObject","value","Array","isArray","ComponentsWriter","postProcess","context","output","strapi","registry","z","id","schema","contentAPISchemaRegistry","entries","add","schemas","toJSONSchema","OPENAPI_SCHEMA_CONVERSION_OPTIONS","uri","toComponentsPath","converted","liftZodSharedDefinitions","existingComponents","data","components","extracted","registries","extractedComponentSchemas"],"mappings":";;;AAUA,MAAMA,gBAAgB,CAACC,KAAAA,GAAAA;IACrB,OAAO,OAAOA,UAAU,QAAA,IAAYA,KAAAA,KAAU,QAAQC,KAAAA,CAAMC,OAAO,CAACF,KAAAA,CAAAA,KAAW,KAAA;AACjF,CAAA;AAEO,MAAMG,gBAAAA,CAAAA;AACXC,IAAAA,WAAAA,CAAYC,OAAwB,EAAQ;AAC1C,QAAA,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF,OAAAA;QAC3B,MAAMG,QAAAA,GAAWC,EAAED,QAAQ,EAAA;QAE3B,KAAK,MAAM,CAACE,EAAAA,EAAIC,MAAAA,CAAO,IAAIJ,MAAAA,CAAOK,wBAAwB,CAACC,OAAO,EAAA,CAAI;YACpEL,QAAAA,CAASM,GAAG,CAACH,MAAAA,EAAQ;AAAED,gBAAAA;AAAG,aAAA,CAAA;AAC5B,QAAA;AAEA,QAAA,MAAM,EAAEK,OAAO,EAAE,GAAGN,CAAAA,CAAEO,YAAY,CAACR,QAAAA,EAAU;AAC3C,YAAA,GAAGS,iCAAiC;YACpCC,GAAAA,EAAKC;AACP,SAAA,CAAA;AAEA,QAAA,MAAMC,SAAAA,GAAqCrB,aAAAA,CAAcgB,OAAAA,CAAAA,GAAWA,OAAAA,GAAU,EAAC;QAC/EM,wBAAAA,CAAyBD,SAAAA,CAAAA;AAEzB,QAAA,MAAME,qBAAqBhB,MAAAA,CAAOiB,IAAI,CAACC,UAAU,IAAI,EAAC;AACtD,QAAA,MAAMC,SAAAA,GAAYpB,OAAAA,CAAQqB,UAAU,CAACC,yBAAyB;QAE9DrB,MAAAA,CAAOiB,IAAI,CAACC,UAAU,GAAG;AACvB,YAAA,GAAGF,kBAAkB;YACrBP,OAAAA,EAAS;AACP,gBAAA,GAAGU,SAAS;AACZ,gBAAA,GAAIL;AACN;AACF,SAAA;AACF,IAAA;AACF;;;;"}