Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Puppeteer Puppeteer Versions Map

From Leeroopedia
Attribute Value
sources Puppeteer_Puppeteer|https://github.com/puppeteer/puppeteer
domains Version_Management, Browser_Compatibility
last_updated 2026-02-12 00:00 GMT

Overview

The versions.json file maintains a historical mapping of every Puppeteer release to the specific Chrome and Firefox browser versions it was tested and bundled with.

Description

This JSON data file serves as the authoritative version compatibility matrix for the Puppeteer project. It contains two top-level fields:

  • lastMaintainedChromeVersion -- The most recent Chrome version still under active maintenance (currently 142.0.7444.175).
  • versions -- An ordered array of tuples mapping Puppeteer release tags to their corresponding Chrome and Firefox versions. The array is ordered from newest (e.g., v24.37.1 with Chrome 145 and Firefox 147) to oldest (e.g., v1.12.2 with Chrome 73).

The file spans approximately 1,062 lines and covers the full release history from Puppeteer v1.12.2 through the latest release. Older entries list Firefox as "latest" since explicit Firefox version pinning was introduced in later releases.

Usage

This file is consumed by multiple internal tools:

  • tools/update_browser_revision.mjs -- Reads and writes this file when updating browser revisions for a new Puppeteer release.
  • tools/get_deprecated_version_range.mjs -- Reads the file to determine which Puppeteer versions to deprecate.
  • Herebyfile.mjs (root and packages/puppeteer-core) -- Reads the file during build tasks to embed the current browser version into the built package.

Code Reference

Source Location

File Purpose
versions.json Puppeteer-to-browser version mapping (1,062 lines)
tools/update_browser_revision.mjs Script that updates versions.json on new releases
tools/get_deprecated_version_range.mjs Script that reads versions.json for deprecation logic

I/O Contract

The file is a JSON document with the following structure:

{
  "lastMaintainedChromeVersion": "<chrome-version-string>",
  "versions": [
    [
      "<puppeteer-version-tag>",
      {
        "chrome": "<chrome-version-string>",
        "firefox": "<firefox-version-string>"
      }
    ],
    ...
  ]
}

Field details:

Field Type Description
lastMaintainedChromeVersion string Chrome version still receiving maintenance (e.g., "142.0.7444.175")
versions array of tuples Ordered list from newest to oldest Puppeteer release
versions[n][0] string Puppeteer version tag (e.g., "v24.37.1")
versions[n][1].chrome string Compatible Chrome version (e.g., "145.0.7632.46")
versions[n][1].firefox string Compatible Firefox version (e.g., "stable_147.0.3") or "latest" for older entries

Usage Examples

Importing in a Node.js ESM script:

import versionData from './versions.json' with {type: 'json'};

// Get the latest Puppeteer version and its browser versions
const [latestTag, browsers] = versionData.versions[0];
console.log(`${latestTag}: Chrome ${browsers.chrome}, Firefox ${browsers.firefox}`);
// "v24.37.1: Chrome 145.0.7632.46, Firefox stable_147.0.3"

Querying with jq from the command line:

# Find which Chrome version ships with a specific Puppeteer release
cat versions.json | jq '.versions[] | select(.[0] == "v24.31.0") | .[1].chrome'
# "142.0.7444.175"

# Get the last maintained Chrome version
cat versions.json | jq '.lastMaintainedChromeVersion'
# "142.0.7444.175"

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment