{"version":3,"sources":["../src/components/schema/SchemaMarkup/SchemaMarkup.tsx","../src/lib/schema-registry/registry.ts","../src/components/schema/WebsiteSchema/WebsiteSchema.tsx","../src/components/schema/ProductSchema/ProductSchema.tsx","../src/components/schema/OrganizationSchema/OrganizationSchema.tsx","../src/components/schema/LocalBusinessSchema/LocalBusinessSchema.tsx","../src/components/schema/ArticleSchema/ArticleSchema.tsx"],"sourcesContent":["import Script from \"next/script\";\nimport {\n  getRegisteredSchemas,\n  getRegistryConfig,\n} from \"../../../lib/schema-registry\";\n\nexport const SchemaMarkup = () => {\n  const schemas = getRegisteredSchemas();\n  const options = getRegistryConfig();\n\n  if (!schemas) {\n    return null;\n  }\n\n  return (\n    <Script\n      id=\"schema-markup\"\n      type=\"application/ld+json\"\n      dangerouslySetInnerHTML={{\n        __html: JSON.stringify(schemas, null, options.indentation),\n      }}\n    />\n  );\n};\n","import { cache } from \"react\";\n\nexport interface SchemaRegistryOptions {\n  indentation?: number;\n}\n\ninterface SchemaRegistryStoreOptions {\n  initialSchemas?: Record<string, any>[];\n  initialConfig?: SchemaRegistryOptions;\n}\n\nclass SchemaRegistryStore {\n  private static instance: SchemaRegistryStore | null = null;\n  private readonly schemas: Record<string, any>[];\n  private config: SchemaRegistryOptions;\n\n  private constructor(options?: SchemaRegistryStoreOptions) {\n    this.schemas = options?.initialSchemas ?? [];\n    this.config = options?.initialConfig ?? {};\n  }\n\n  static getInstance(\n    options?: SchemaRegistryStoreOptions\n  ): SchemaRegistryStore {\n    if (!SchemaRegistryStore.instance) {\n      SchemaRegistryStore.instance = new SchemaRegistryStore(options);\n    }\n    return SchemaRegistryStore.instance;\n  }\n\n  addSchema(schema: Record<string, any>): void {\n    this.schemas.push({\n      \"@context\": \"https://schema.org\",\n      ...schema,\n    });\n  }\n\n  setConfig(config: SchemaRegistryOptions): void {\n    this.config = config;\n  }\n\n  getSchemas() {\n    if (this.schemas.length === 0) return null;\n\n    return {\n      \"@context\": \"https://schema.org\",\n      \"@graph\": this.schemas.map((schema) => {\n        const { \"@context\": _context, ...schemaData } = schema;\n        return schemaData;\n      }),\n    };\n  }\n\n  getConfig(): SchemaRegistryOptions {\n    return this.config;\n  }\n\n  reset(): void {\n    this.schemas.length = 0;\n    this.config = {};\n  }\n}\n\nconst registry = SchemaRegistryStore.getInstance();\n\nexport const registerSchema = cache((schema: Record<string, any>) => {\n  registry.addSchema(schema);\n});\n\nexport const configureRegistry = cache((config: SchemaRegistryOptions) => {\n  registry.setConfig(config);\n});\n\nexport const getRegisteredSchemas = cache(() => registry.getSchemas());\n\nexport const getRegistryConfig = cache(() => registry.getConfig());\n\nexport const resetRegistry = () => registry.reset();\n","import { WebsiteSchemaProps } from \"./types\";\nimport { registerSchema } from \"../../../lib/schema-registry\";\n\nexport const WebsiteSchema = ({ data }: WebsiteSchemaProps) => {\n  registerSchema({\n    \"@type\": \"WebSite\",\n    ...data,\n  });\n\n  return null;\n};\n","import { ProductSchemaProps } from \"./types\";\nimport { registerSchema } from \"../../../lib/schema-registry\";\n\nexport const ProductSchema = ({ data }: ProductSchemaProps) => {\n  registerSchema({\n    \"@type\": \"Product\",\n    ...data,\n  });\n\n  return null;\n};\n","import { registerSchema } from \"../../../lib/schema-registry\";\nimport { OrganizationSchemaProps } from \"./types\";\n\nexport const OrganizationSchema = ({ data }: OrganizationSchemaProps) => {\n  registerSchema({\n    \"@type\": \"Organization\",\n    ...data,\n  });\n\n  return null;\n};\n","import { LocalBusinessSchemaProps } from \"./types\";\nimport { registerSchema } from \"../../../lib/schema-registry\";\n\nexport const LocalBusinessSchema = ({ data }: LocalBusinessSchemaProps) => {\n  registerSchema({\n    \"@type\": data[\"@type\"] || \"LocalBusiness\",\n    ...data,\n  });\n\n  return null;\n};\n","import { registerSchema } from \"../../../lib/schema-registry\";\nimport { ArticleSchemaProps } from \"./types\";\n\nexport const ArticleSchema = ({ data }: ArticleSchemaProps) => {\n  registerSchema({\n    \"@type\": data[\"@type\"] || \"Article\",\n    ...data,\n  });\n\n  return null;\n};\n"],"mappings":"2fAAA,OAAOA,MAAY,cCAnB,OAAS,SAAAC,MAAa,QAWtB,IAAMC,EAAN,MAAMA,CAAoB,CAKhB,YAAYC,EAAsC,CAhB5D,IAAAC,EAAAC,EAiBI,KAAK,SAAUD,EAAAD,GAAA,YAAAA,EAAS,iBAAT,KAAAC,EAA2B,CAAC,EAC3C,KAAK,QAASC,EAAAF,GAAA,YAAAA,EAAS,gBAAT,KAAAE,EAA0B,CAAC,CAC3C,CAEA,OAAO,YACLF,EACqB,CACrB,OAAKD,EAAoB,WACvBA,EAAoB,SAAW,IAAIA,EAAoBC,CAAO,GAEzDD,EAAoB,QAC7B,CAEA,UAAUI,EAAmC,CAC3C,KAAK,QAAQ,KAAKC,EAAA,CAChB,WAAY,sBACTD,EACJ,CACH,CAEA,UAAUE,EAAqC,CAC7C,KAAK,OAASA,CAChB,CAEA,YAAa,CACX,OAAI,KAAK,QAAQ,SAAW,EAAU,KAE/B,CACL,WAAY,qBACZ,SAAU,KAAK,QAAQ,IAAKF,GAAW,CACrC,IAAgDF,EAAAE,EAAxC,YAAYG,CA/C5B,EA+CwDL,EAChD,OADiCM,EAAeN,EAAf,CAAzB,YAEV,CAAC,CACH,CACF,CAEA,WAAmC,CACjC,OAAO,KAAK,MACd,CAEA,OAAc,CACZ,KAAK,QAAQ,OAAS,EACtB,KAAK,OAAS,CAAC,CACjB,CACF,EAlDMF,EACW,SAAuC,KADxD,IAAMS,EAANT,EAoDMU,EAAWD,EAAoB,YAAY,EAEpCE,EAAiBC,EAAOR,GAAgC,CACnEM,EAAS,UAAUN,CAAM,CAC3B,CAAC,EAEYS,EAAoBD,EAAON,GAAkC,CACxEI,EAAS,UAAUJ,CAAM,CAC3B,CAAC,EAEYQ,EAAuBF,EAAM,IAAMF,EAAS,WAAW,CAAC,EAExDK,EAAoBH,EAAM,IAAMF,EAAS,UAAU,CAAC,ED5D7D,cAAAM,MAAA,oBATG,IAAMC,EAAe,IAAM,CAChC,IAAMC,EAAUC,EAAqB,EAC/BC,EAAUC,EAAkB,EAElC,OAAKH,EAKHF,EAACM,EAAA,CACC,GAAG,gBACH,KAAK,sBACL,wBAAyB,CACvB,OAAQ,KAAK,UAAUJ,EAAS,KAAME,EAAQ,WAAW,CAC3D,EACF,EAVO,IAYX,EEpBO,IAAMG,EAAgB,CAAC,CAAE,KAAAC,CAAK,KACnCC,EAAeC,EAAA,CACb,QAAS,WACNF,EACJ,EAEM,MCNF,IAAMG,EAAgB,CAAC,CAAE,KAAAC,CAAK,KACnCC,EAAeC,EAAA,CACb,QAAS,WACNF,EACJ,EAEM,MCNF,IAAMG,EAAqB,CAAC,CAAE,KAAAC,CAAK,KACxCC,EAAeC,EAAA,CACb,QAAS,gBACNF,EACJ,EAEM,MCNF,IAAMG,EAAsB,CAAC,CAAE,KAAAC,CAAK,KACzCC,EAAeC,EAAA,CACb,QAASF,EAAK,OAAO,GAAK,iBACvBA,EACJ,EAEM,MCNF,IAAMG,EAAgB,CAAC,CAAE,KAAAC,CAAK,KACnCC,EAAeC,EAAA,CACb,QAASF,EAAK,OAAO,GAAK,WACvBA,EACJ,EAEM","names":["Script","cache","_SchemaRegistryStore","options","_a","_b","schema","__spreadValues","config","_context","__objRest","SchemaRegistryStore","registry","registerSchema","cache","configureRegistry","getRegisteredSchemas","getRegistryConfig","jsx","SchemaMarkup","schemas","getRegisteredSchemas","options","getRegistryConfig","Script","WebsiteSchema","data","registerSchema","__spreadValues","ProductSchema","data","registerSchema","__spreadValues","OrganizationSchema","data","registerSchema","__spreadValues","LocalBusinessSchema","data","registerSchema","__spreadValues","ArticleSchema","data","registerSchema","__spreadValues"]}