{"version":3,"file":"registry2.mjs","names":[],"sources":["../../src/core/registry.ts"],"sourcesContent":["import type { SearchProvider, ProviderConfig, ProviderFactory } from './types'\nimport { UnknownProviderError } from './errors'\n\nconst factories = new Map<string, ProviderFactory>()\nconst defaultURLs = new Map<string, string>()\n\n/**\n * Register a provider factory with the registry.\n * Called by providers on import to self-register.\n */\nexport function register(\n  name: string,\n  defaultURL: string,\n  factory: ProviderFactory\n): void {\n  factories.set(name, factory)\n  defaultURLs.set(name, defaultURL)\n}\n\n/**\n * Create a provider instance by name.\n * Resolves apiKey from config or environment variable (PROVIDER_NAME_API_KEY).\n */\nexport function create(name: string, config?: ProviderConfig): SearchProvider {\n  const factory = factories.get(name)\n  if (!factory) {\n    throw new UnknownProviderError(name)\n  }\n\n  const apiKey =\n    config?.apiKey ||\n    process.env[`${name.toUpperCase()}_API_KEY`]\n\n  const resolvedConfig: ProviderConfig = {\n    ...config,\n    apiKey,\n    baseURL: config?.baseURL || defaultURLs.get(name),\n  }\n\n  return factory(resolvedConfig)\n}\n\n/**\n * List all registered provider names.\n */\nexport function providers(): string[] {\n  return Array.from(factories.keys())\n}\n\n/**\n * Check if a provider is registered.\n */\nexport function has(name: string): boolean {\n  return factories.has(name)\n}\n"],"mappings":";;AAGA,MAAM,4BAAY,IAAI,KAA8B;AACpD,MAAM,8BAAc,IAAI,KAAqB;;;;;AAM7C,SAAgB,SACd,MACA,YACA,SACM;AACN,WAAU,IAAI,MAAM,QAAQ;AAC5B,aAAY,IAAI,MAAM,WAAW;;;;;;AAOnC,SAAgB,OAAO,MAAc,QAAyC;CAC5E,MAAM,UAAU,UAAU,IAAI,KAAK;AACnC,KAAI,CAAC,QACH,OAAM,IAAI,qBAAqB,KAAK;CAGtC,MAAM,SACJ,QAAQ,UACR,QAAQ,IAAI,GAAG,KAAK,aAAa,CAAC;AAQpC,QAAO,QANgC;EACrC,GAAG;EACH;EACA,SAAS,QAAQ,WAAW,YAAY,IAAI,KAAA;EAC7C,CAE6B;;;;;AAMhC,SAAgB,YAAsB;AACpC,QAAO,MAAM,KAAK,UAAU,MAAM,CAAC;;;;;AAMrC,SAAgB,IAAI,MAAuB;AACzC,QAAO,UAAU,IAAI,KAAK"}