{"version":3,"file":"server-EhXPvc1P.mjs","names":["serverComponentRegistry: Record<string, ComponentSchema>","resistorSchema","capacitorSchema","groundSchema","switchSchema","batterySchema","voltageSourceSchema","diodeSchema","transistorNpnSchema","ledSchema","icSchema","schema: ComponentSchema","id: string","category: string"],"sources":["../../src/registry/server.ts"],"sourcesContent":["/**\n * Server-side registry module for component schemas\n * \n * This module provides server-side compatible registry functions\n * without any client-side dependencies or \"use client\" directives.\n * It's specifically designed for use in server-side environments\n * like API routes and LLM integrations.\n */\n\nimport { ComponentSchema } from '../schemas/componentSchema';\nimport { validateComponentSchema } from '../utils/zodValidation';\n\n// Import component schemas directly\nimport resistorSchema from './components/resistor.json';\nimport capacitorSchema from './components/capacitor.json';\nimport batterySchema from './components/battery.json';\nimport groundSchema from './components/ground.json';\nimport switchSchema from './components/switch.json';\nimport voltageSourceSchema from './components/voltage-source.json';\nimport diodeSchema from './components/diode.json';\nimport transistorNpnSchema from './components/transistor-npn.json';\nimport ledSchema from './components/led.json';\nimport icSchema from './components/ic.json';\n\n// Server-side registry storage\nconst serverComponentRegistry: Record<string, ComponentSchema> = {};\n\n/**\n * Initialize the server-side registry with built-in components\n */\nfunction initializeServerRegistry(): void {\n  // Only initialize once\n  if (Object.keys(serverComponentRegistry).length > 0) {\n    return;\n  }\n\n  // Register built-in components\n  const components = [\n    resistorSchema,\n    capacitorSchema,\n    groundSchema,\n    switchSchema,\n    batterySchema,\n    voltageSourceSchema,\n    diodeSchema,\n    transistorNpnSchema,\n    ledSchema,\n    icSchema\n  ];\n\n  for (const schema of components) {\n    try {\n      const validationResult = validateComponentSchema(schema as ComponentSchema);\n      if (validationResult.success) {\n        serverComponentRegistry[schema.id] = schema as ComponentSchema;\n      } else {\n        console.warn(`Failed to validate component schema ${schema.id}:`, validationResult.error);\n      }\n    } catch (error) {\n      console.warn(`Failed to register component ${schema.id}:`, error);\n    }\n  }\n}\n\n/**\n * Register a component schema in the server-side registry\n */\nexport function registerServerComponent(schema: ComponentSchema): void {\n  initializeServerRegistry();\n  \n  const validationResult = validateComponentSchema(schema);\n  if (!validationResult.success) {\n    throw new Error(`Invalid component schema: ${validationResult.error}`);\n  }\n\n  if (serverComponentRegistry[schema.id]) {\n    console.warn(`Component with ID ${schema.id} already exists in server registry. Overwriting.`);\n  }\n\n  serverComponentRegistry[schema.id] = schema;\n}\n\n/**\n * Get a component schema from the server-side registry by ID\n */\nexport function getServerComponentSchema(id: string): ComponentSchema | undefined {\n  initializeServerRegistry();\n  return serverComponentRegistry[id];\n}\n\n/**\n * Get all component schemas in the server-side registry\n */\nexport function getAllServerComponents(): ComponentSchema[] {\n  initializeServerRegistry();\n  return Object.values(serverComponentRegistry);\n}\n\n/**\n * Get component schemas by category from the server-side registry\n */\nexport function getServerComponentsByCategory(category: string): ComponentSchema[] {\n  initializeServerRegistry();\n  return Object.values(serverComponentRegistry)\n    .filter(schema => schema.category === category);\n}\n\n/**\n * Get all unique categories from the server-side registry\n */\nexport function getServerCategories(): string[] {\n  initializeServerRegistry();\n  const allComponents = getAllServerComponents();\n  const categories = [...new Set(allComponents.map(schema => schema.category))];\n  return categories.sort();\n}\n\nexport default serverComponentRegistry;\n"],"mappings":";;;;AAyBA,MAAMA,0BAA2D,CAAE;;;;AAKnE,SAAS,2BAAiC;AAExC,KAAI,OAAO,KAAK,wBAAwB,CAAC,SAAS,EAChD;CAIF,MAAM,aAAa;EACjBC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;CACD;AAED,MAAK,MAAM,UAAU,WACnB,KAAI;EACF,MAAM,mBAAmB,wBAAwB,OAA0B;AAC3E,MAAI,iBAAiB,QACnB,yBAAwB,OAAO,MAAM;MAErC,SAAQ,MAAM,sCAAsC,OAAO,GAAG,IAAI,iBAAiB,MAAM;CAE5F,SAAQ,OAAO;AACd,UAAQ,MAAM,+BAA+B,OAAO,GAAG,IAAI,MAAM;CAClE;AAEJ;;;;AAKD,SAAgB,wBAAwBC,QAA+B;AACrE,2BAA0B;CAE1B,MAAM,mBAAmB,wBAAwB,OAAO;AACxD,MAAK,iBAAiB,QACpB,OAAM,IAAI,OAAO,4BAA4B,iBAAiB,MAAM;AAGtE,KAAI,wBAAwB,OAAO,IACjC,SAAQ,MAAM,oBAAoB,OAAO,GAAG,kDAAkD;AAGhG,yBAAwB,OAAO,MAAM;AACtC;;;;AAKD,SAAgB,yBAAyBC,IAAyC;AAChF,2BAA0B;AAC1B,QAAO,wBAAwB;AAChC;;;;AAKD,SAAgB,yBAA4C;AAC1D,2BAA0B;AAC1B,QAAO,OAAO,OAAO,wBAAwB;AAC9C;;;;AAKD,SAAgB,8BAA8BC,UAAqC;AACjF,2BAA0B;AAC1B,QAAO,OAAO,OAAO,wBAAwB,CAC1C,OAAO,YAAU,OAAO,aAAa,SAAS;AAClD;;;;AAKD,SAAgB,sBAAgC;AAC9C,2BAA0B;CAC1B,MAAM,gBAAgB,wBAAwB;CAC9C,MAAM,aAAa,CAAC,GAAG,IAAI,IAAI,cAAc,IAAI,YAAU,OAAO,SAAS,CAAE;AAC7E,QAAO,WAAW,MAAM;AACzB;AAED,qBAAe"}