{"version":3,"file":"component.mjs","sources":["../../../../src/core-api/routes/validation/component.ts"],"sourcesContent":["import type { UID } from '@strapi/types';\n\n// eslint-disable-next-line import/no-cycle\nimport { createAttributesSchema } from './mappers';\nimport { AbstractCoreRouteValidator } from './common';\n\n/**\n * A component validator for core content-type routes.\n *\n * Provides validation schemas and utilities for handling component-specific validation in content-type routes.\n *\n * @example\n * ```ts\n * const strapi = // ... strapi instance\n * const uid = 'api::article.article'\n * const validator = new CoreComponentRouteValidator(strapi, uid);\n *\n * // Get validation schema for a component entry\n * const componentSchema = validator.component;\n * ```\n */\nexport class CoreComponentRouteValidator extends AbstractCoreRouteValidator<UID.Component> {\n  /**\n   * Generates a comprehensive validation schema for a single component entry.\n   *\n   * Combines scalar fields and populatable fields into a single schema.\n   *\n   * @returns A schema for validating complete entries\n   *\n   * @example\n   * ```ts\n   * const validator = new CoreComponentRouteValidator(strapi, uid);\n   * const entrySchema = validator.entry;\n   * ```\n   */\n  get entry() {\n    const { _scalarFields, _populatableFields } = this;\n\n    const entries = Object.entries({ ..._scalarFields, ..._populatableFields });\n\n    return createAttributesSchema(entries);\n  }\n}\n"],"names":["CoreComponentRouteValidator","AbstractCoreRouteValidator","entry","_scalarFields","_populatableFields","entries","Object","createAttributesSchema"],"mappings":";;;AAEA;AAIA;;;;;;;;;;;;;;IAeO,MAAMA,2BAAAA,SAAoCC,0BAAAA,CAAAA;AAC/C;;;;;;;;;;;;AAYC,MACD,IAAIC,KAAAA,GAAQ;AACV,QAAA,MAAM,EAAEC,aAAa,EAAEC,kBAAkB,EAAE,GAAG,IAAI;QAElD,MAAMC,OAAAA,GAAUC,MAAAA,CAAOD,OAAO,CAAC;AAAE,YAAA,GAAGF,aAAa;AAAE,YAAA,GAAGC;AAAmB,SAAA,CAAA;AAEzE,QAAA,OAAOG,sBAAAA,CAAuBF,OAAAA,CAAAA;AAChC,IAAA;AACF;;;;"}