diff --git a/apps/api/src/controllers/v1/map.ts b/apps/api/src/controllers/v1/map.ts index a1a6cec9..bcd3b50d 100644 --- a/apps/api/src/controllers/v1/map.ts +++ b/apps/api/src/controllers/v1/map.ts @@ -28,6 +28,7 @@ export async function mapController( req.body = mapRequestSchema.parse(req.body); + const limit = req.body.limit; const id = uuidv4(); let links: string[] = [req.body.url]; diff --git a/apps/api/src/controllers/v1/types.ts b/apps/api/src/controllers/v1/types.ts index 9b726a90..f1358baf 100644 --- a/apps/api/src/controllers/v1/types.ts +++ b/apps/api/src/controllers/v1/types.ts @@ -27,6 +27,7 @@ const url = z.preprocess( .string() .url() .regex(/^https?:\/\//, "URL uses unsupported protocol") + .regex(/\.[a-z]{2,}$/i, "URL must have a valid top-level domain") .refine( (x) => !isUrlBlocked(x), "Firecrawl currently does not support social media scraping due to policy restrictions. We're actively working on building support for it." @@ -121,7 +122,7 @@ export const mapRequestSchema = crawlerOptions.extend({ includeSubdomains: z.boolean().default(true), search: z.string().optional(), ignoreSitemap: z.boolean().default(false), - limit: z.number().min(1).max(50).default(5000), + limit: z.number().min(1).max(50).default(5000).optional(), }).strict(strictMessage); // export type MapRequest = {