Browser automation helpers for TypeScript/JavaScript, built on Playwright. This package provides utilities for common automation tasks—AI-powered data extraction, navigation with retries, pagination handling, and more.
Installation
npm install @intuned/browser
When using Intuned, this package is pre-installed in every TypeScript project.
Quick example
import { Page, BrowserContext } from "playwright";
import { extractStructuredData, isPageLoaded } from "@intuned/browser/ai";
import { goToUrl } from "@intuned/browser";
interface Params {}
export default async function automation(
params: Params,
page: Page,
context: BrowserContext
) {
await goToUrl(page, "https://books.toscrape.com");
const loaded = await isPageLoaded({ source: page });
if (!loaded) {
throw new Error("Page is not loaded, cannot extract data");
}
// Extract all book listings from the page
const books = await extractStructuredData({
source: page,
dataSchema: {
type: "object",
properties: {
products: {
type: "array",
items: {
type: "object",
properties: {
title: { type: "string" },
price: { type: "string" },
},
},
},
},
},
prompt: "Extract all book listings with their titles and prices",
strategy: "HTML",
model: "claude-haiku-4-5-20251001",
});
return books;
}
AI module
AI-powered utilities for data extraction and page analysis. These functions use AI and incur costs.
| Function | Description |
|---|
extractStructuredData | Extract structured data from pages using AI with JSON Schema or Zod validation |
isPageLoaded | Detect when a page has finished loading |
AI functions support caching and matching to reduce costs.
Helpers module
| Function | Description |
|---|
goToUrl | Navigate with automatic retries and error handling |
withNetworkSettledWait | Wait for network requests to complete |
waitForDomSettled | Wait for DOM mutations to finish |
scrollToLoadContent | Load infinite-scroll content |
clickUntilExhausted | Click “Load More” buttons until all content loads |
extractMarkdown | Convert pages to markdown |
downloadFile | Download files with different triggers |
saveFileToS3 | Download and upload files to S3 |
uploadFileToS3 | Upload files with custom S3 configurations |
filterEmptyValues | Remove empty values from data |
validateDataUsingSchema | Validate data against schemas |
processDate | Parse and normalize dates |
sanitizeHtml | Clean and sanitize HTML |
resolveUrl | Resolve relative URLs to absolute paths |
Requirements
- Node.js 18+
- Playwright (
npm install playwright && npx playwright install)
- For AI functions: API key for your AI provider (set via environment variable or function parameter)