Skip to main content
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.
FunctionDescription
extractStructuredDataExtract structured data from pages using AI with JSON Schema or Zod validation
isPageLoadedDetect when a page has finished loading
AI functions support caching and matching to reduce costs.

Helpers module

FunctionDescription
goToUrlNavigate with automatic retries and error handling
withNetworkSettledWaitWait for network requests to complete
waitForDomSettledWait for DOM mutations to finish
scrollToLoadContentLoad infinite-scroll content
clickUntilExhaustedClick “Load More” buttons until all content loads
extractMarkdownConvert pages to markdown
downloadFileDownload files with different triggers
saveFileToS3Download and upload files to S3
uploadFileToS3Upload files with custom S3 configurations
filterEmptyValuesRemove empty values from data
validateDataUsingSchemaValidate data against schemas
processDateParse and normalize dates
sanitizeHtmlClean and sanitize HTML
resolveUrlResolve 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)