
Security News
TC39 Advances Temporal to Stage 4 Alongside Several ECMAScript Proposals
TC39’s March 2026 meeting advanced eight ECMAScript proposals, including Temporal reaching Stage 4 and securing its place in the ECMAScript 2026 specification.
Browser automation library with a unified API over Playwright and Selenium WebDriver.
Promod provides a protractor-like lazy element interface — elements are not resolved until an action is performed on them.
npm install promod
Promod requires a browser engine as a peer dependency:
# For Playwright
npm install playwright
# For Selenium WebDriver
npm install selenium-webdriver chromedriver
const { chromium } = require('playwright');
const { playwrightWD } = require('promod');
const { browser, $, $$ } = playwrightWD;
async function main() {
const launched = await chromium.launch({ headless: false });
browser.setClient({ driver: launched });
await browser.get('https://example.com');
const heading = $('h1');
console.log(await heading.getText());
await browser.quitAll();
}
main();
const { Browser, Builder } = require('selenium-webdriver');
require('chromedriver');
const { seleniumWD } = require('promod');
const { browser, $, $$ } = seleniumWD;
async function main() {
const driver = await new Builder().forBrowser(Browser.CHROME).build();
browser.setClient({
driver,
lauchNewInstance: () => new Builder().forBrowser(Browser.CHROME).build(),
});
await browser.get('https://example.com');
const heading = $('h1');
console.log(await heading.getText());
await browser.quit();
}
main();
Promod ships dual builds. Bundlers and Node import will use ESM; require() will use CommonJS.
// ESM
import { playwrightWD, seleniumWD } from 'promod';
// CommonJS
const { playwrightWD, seleniumWD } = require('promod');
All examples work identically with both playwrightWD and seleniumWD.
// CSS (default)
const el = $('.my-class #id a[href*="link"]');
// XPath
const el = $('xpath=.//div[@data-test="id"]/span');
// JavaScript function
const el = $(() => document.querySelector('div > span'));
// Custom selector (query + text filter)
const el = $({ query: 'button', text: 'Submit' });
const el = $({ query: 'button', rg: 'Sub.*' }); // regex filter
| Topic | Link |
|---|---|
| Engine setup | docs/init.md |
| Browser (client) | docs/client.md |
Element ($) | docs/element.md |
Elements ($$) | docs/elements.md |
MIT
FAQs
Library for automation testing
The npm package promod receives a total of 322 weekly downloads. As such, promod popularity was classified as not popular.
We found that promod demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
TC39’s March 2026 meeting advanced eight ECMAScript proposals, including Temporal reaching Stage 4 and securing its place in the ECMAScript 2026 specification.

Research
/Security News
Since January 31, 2026, we identified at least 72 additional malicious Open VSX extensions, including transitive GlassWorm loader extensions targeting developers.

Research
Six malicious Packagist packages posing as OphimCMS themes contain trojanized jQuery that exfiltrates URLs, injects ads, and loads FUNNULL-linked redirects.