{"version":3,"file":"read2.mjs","names":[],"sources":["../../src/core/read.ts"],"sourcesContent":["import type { ReadOptions, ReadResult } from './types.ts'\nimport { builtinProviders } from './providers.ts'\nimport { EmptyUrlError, ReadNotSupportedError } from './errors.ts'\nimport { create } from './registry.ts'\n\nexport const readProviderNames = ['jina'] as const\nexport type ReadProviderName = typeof readProviderNames[number]\n\nexport interface ReadUrlOptions extends ReadOptions {\n  provider?: ReadProviderName | (string & {})\n}\n\nconst DEFAULT_READ_PROVIDER: ReadProviderName = 'jina'\n\nexport async function readUrl(url: string, options?: ReadUrlOptions): Promise<ReadResult> {\n  const trimmedUrl = url.trim()\n  if (!trimmedUrl) {\n    throw new EmptyUrlError()\n  }\n\n  const { provider: requestedProvider, ...readOptions } = options ?? {}\n  const providerName = requestedProvider?.trim() || DEFAULT_READ_PROVIDER\n  if (isBuiltinProvider(providerName) && !isReadProviderName(providerName)) {\n    throw new ReadNotSupportedError(providerName)\n  }\n\n  const provider = create(providerName)\n  if (typeof provider.read !== 'function') {\n    throw new ReadNotSupportedError(providerName)\n  }\n\n  return provider.read(trimmedUrl, readOptions)\n}\n\nfunction isBuiltinProvider(name: string): boolean {\n  return (builtinProviders as readonly string[]).includes(name)\n}\n\nfunction isReadProviderName(name: string): name is ReadProviderName {\n  return (readProviderNames as readonly string[]).includes(name)\n}\n"],"mappings":";;;;AAKA,MAAa,oBAAoB,CAAC,OAAO;AAOzC,MAAM,wBAA0C;AAEhD,eAAsB,QAAQ,KAAa,SAA+C;CACxF,MAAM,aAAa,IAAI,MAAM;AAC7B,KAAI,CAAC,WACH,OAAM,IAAI,eAAe;CAG3B,MAAM,EAAE,UAAU,mBAAmB,GAAG,gBAAgB,WAAW,EAAE;CACrE,MAAM,eAAe,mBAAmB,MAAM,IAAI;AAClD,KAAI,kBAAkB,aAAa,IAAI,CAAC,mBAAmB,aAAa,CACtE,OAAM,IAAI,sBAAsB,aAAa;CAG/C,MAAM,WAAW,OAAO,aAAa;AACrC,KAAI,OAAO,SAAS,SAAS,WAC3B,OAAM,IAAI,sBAAsB,aAAa;AAG/C,QAAO,SAAS,KAAK,YAAY,YAAY;;AAG/C,SAAS,kBAAkB,MAAuB;AAChD,QAAQ,iBAAuC,SAAS,KAAK;;AAG/D,SAAS,mBAAmB,MAAwC;AAClE,QAAQ,kBAAwC,SAAS,KAAK"}