@llml-browser/types
Version:
TypeScript types and schemas for the @llml-browser API
1 lines • 3.31 kB
Source Map (JSON)
{"version":3,"sources":["../src/routers/read/index.ts"],"sourcesContent":["import type { ScrapedData } from '@/services/cheerio';\nimport { MetadataOptionsSchema } from '@/services/metadata';\nimport z from 'zod';\n\nexport const readOptionsSchema = z.object({\n /**\n * The URL to scrape.\n * Must be a valid URL string.\n */\n url: z.string(),\n\n /**\n * Whether to extract metadata from the page.\n * Default: true\n */\n // default true if not set\n metadata: z.preprocess(\n (val) => val !== 'false' && val !== false,\n z.boolean().optional(),\n ),\n\n /**\n * Whether to extract markdown from the page.\n * Default: true\n */\n // default true if not set\n markdown: z.preprocess(\n (val) => val !== 'false' && val !== false,\n z.boolean().optional(),\n ),\n\n /**\n * Whether to return cleaned HTML.\n * Default: true\n */\n cleanedHtml: z.preprocess(\n (val) => val !== 'false' && val !== false,\n z.boolean().optional(),\n ),\n\n /**\n * Whether to fetch and parse robots.txt.\n * Default: false\n */\n robots: z.preprocess(\n (val) => val === 'true' || val === true,\n z.boolean().optional(),\n ),\n\n /**\n * Whether to return raw HTML.\n * Default: false\n */\n rawHtml: z.preprocess(\n (val) => val !== 'false' && val !== false,\n z.boolean().optional(),\n ),\n\n /**\n * Options for metadata extraction.\n * Controls how metadata like title, description, etc. are extracted.\n */\n metadataOptions: MetadataOptionsSchema.optional(),\n\n /** DEPRECATED: AS WE ARE NOT USING HTMLREWRITE FOR CLEANING THE HTML FOR NOW, MAY BE REUSED THIS IN THE FUTURE\n * Options for HTML cleaning.\n * Controls how HTML is sanitized and cleaned.\n */\n // cleanedHtmlOptions: HTMLCleaningOptionsSchema.optional(),\n});\n\nexport type ReadOptions = z.infer<typeof readOptionsSchema>;\n\nexport type ReadResponseBase = {\n success: boolean;\n targetUrl: string;\n};\n\nexport type ReadErrorResponse = ReadResponseBase & {\n success: false;\n error: string;\n};\n\nexport type ReadSuccessResponse = ReadResponseBase &\n Omit<ScrapedData, 'rawHtml'> & {\n success: true;\n markdown?: string;\n rawHtml?: string;\n metrics?: {\n readableDuration: string;\n duration: number;\n startTime: number;\n endTime: number;\n };\n };\n\nexport type ReadStringResponse = string;\n\nexport type ReadResponse =\n | ReadStringResponse\n | ReadSuccessResponse\n | ReadErrorResponse;\n"],"mappings":";;;;;AAEA,OAAO,OAAO;AAEP,IAAM,oBAAoB,EAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxC,KAAK,EAAE,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOd,UAAU,EAAE;AAAA,IACV,CAAC,QAAQ,QAAQ,WAAW,QAAQ;AAAA,IACpC,EAAE,QAAQ,EAAE,SAAS;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAU,EAAE;AAAA,IACV,CAAC,QAAQ,QAAQ,WAAW,QAAQ;AAAA,IACpC,EAAE,QAAQ,EAAE,SAAS;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAa,EAAE;AAAA,IACb,CAAC,QAAQ,QAAQ,WAAW,QAAQ;AAAA,IACpC,EAAE,QAAQ,EAAE,SAAS;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ,EAAE;AAAA,IACR,CAAC,QAAQ,QAAQ,UAAU,QAAQ;AAAA,IACnC,EAAE,QAAQ,EAAE,SAAS;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS,EAAE;AAAA,IACT,CAAC,QAAQ,QAAQ,WAAW,QAAQ;AAAA,IACpC,EAAE,QAAQ,EAAE,SAAS;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iBAAiB,sBAAsB,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAOlD,CAAC;","names":[]}