npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@futdevpro/fdp-e2e-helpers

v1.15.41

Published

Shared E2E test helpers for FDP-stack apps. First util: E2E_HardDelete_Util. Stateless utility-collection — NOT a framework.

Readme

@futdevpro/fdp-e2e-helpers

Shared E2E test helpers for FDP-stack apps. Stateless utility-collection — NOT a framework.

Scope

This package extracts cross-project E2E helper utilities that wire into existing @futdevpro/fdp-templates + @futdevpro/fdp-templates-nts server-side endpoints. The server-half (e.g. validateE2EKey, hardDeleteUserBySystem, hardDeleteUserDataCollection) is already shipped; this package fills the client-half so individual project e2e/ folders don't reinvent the wheel.

First util: E2E_HardDelete_Util

Calls the FDP auth-service cascading hard-delete endpoint:

import { E2E_HardDelete_Util } from '@futdevpro/fdp-e2e-helpers';

await E2E_HardDelete_Util.deleteAccount({
  authServiceUrl: 'http://localhost:48005',
  accountId: '<account-id>',
  e2eKey: process.env.E2E_HARD_DELETE_KEY!,
  timeoutMs: 30000, // optional, default 30s
});

The endpoint hit is DELETE /auth-api/auth-redirect/e2e/user/hard-delete — server-side this triggers cascading delete across all registered services (spec REQ-USER-004 in LIVE-projects/fdp-e2e-full/__specifications/sections/ user-management.md).

Production safety (defense-in-depth)

  • Client-side guard: hostnames containing production or word-bounded prod throw FDP-E2E-HD-PROD-GUARD BEFORE any HTTP call.
  • Server-side guard: the FDPNTS endpoint enforces env in {local, test} and validates the X-E2E-Key header against E2E_HARD_DELETE_KEY env.
  • Server env loader: global-env-settings.util.ts THROWS if E2E_HARD_DELETE_KEY is set on a production environment.

FDP_CWV_Collector_Util — Core Web Vitals diagnostics

Scripted, synthetic Core Web Vitals (LCP / INP / CLS + attribution) measurement on top of Playwright. The reusable Dynamo-level primitive behind the E2E "step-0" CWV diagnostic. Canonical guide: documentations/guidelines/development/cwv-diagnostics.md.

import { FDP_CWV_Collector_Util } from '@futdevpro/fdp-e2e-helpers';

// In an e2e spec (consumer supplies the web-vitals IIFE source as a string):
const result = await FDP_CWV_Collector_Util.collect(page, {
  routes: [{ path: '/main/home', label: 'Home', interact: async p => { /* real click for INP */ } }],
  webVitalsScript,                                   // see resolve note below
  componentPrefixes: ['s-', 'ad-', 'm1-', 'app-'],   // attribution target → component-level
  budgets: { lcpMs: 2500, inpMs: 200, cls: 0.1 },    // report-only (warn, not fail)
});
FDP_CWV_Collector_Util.writeResult(result, 'cwv-result.json');
// pipeline emits the [CDP_STEP_RESULT] marker AFTER playwright:
//   node -e "require('@futdevpro/fdp-e2e-helpers').FDP_CWV_Collector_Util.emitMarkerFromFile('cwv-result.json')"

API: collect / writeResult / emitMarkerFromFile / printStepResultMarker / buildSummaryLine + pure rate / evaluateBudgets / summarizeWorst / buildRouteResult.

Why the consumer supplies webVitalsScript as a string — this package deliberately does NOT import web-vitals (keeps it dependency-light + no require() in shipped code). The consuming e2e project reads the IIFE bundle and passes it in.

web-vitals v4 exports-map gotcha (KÖTELEZŐ olvasni): the v4 package has a STRICT exports map — it does NOT export ./dist/* subpaths NOR ./package.json, so require.resolve('web-vitals/dist/...') AND require.resolve('web-vitals/package.json') both throw ERR_PACKAGE_PATH_NOT_EXPORTED. Resolve an ALLOWED entry point instead and walk to its dist/:

const distDir = path.dirname(require.resolve('web-vitals/attribution'));
const src = fs.readFileSync(path.join(distDir, 'web-vitals.attribution.iife.js'), 'utf-8');

Playwright addInitScript + IIFE var gotcha: the web-vitals IIFE does var webVitals=..., but addInitScript wraps the script in a function scope, so the top-level var never reaches window. The collector handles this internally by appending ;self.webVitals=self.webVitals||webVitals; to the injected script.

INP note: synthetic/headless INP is best-effort (Event Timing API unreliable without real user input) → often undefined. Trustworthy INP comes from the RUM phase. LCP/CLS/FCP/TTFB are reliable.

@playwright/test is a peer dependency (the consuming e2e project already has it).

Why stateless *_Util (not singleton service)

  • Multi-worker parallel-test-safe — no shared instance state across Playwright workers.
  • Pure function call signature, no setup/teardown.
  • Singletons (e.g. E2E_UserManagerService) come later when stateful cleanup tracking is needed.

Status

| Layer | Status | |---|---| | E2E_HardDelete_Util (account cascade) | ✅ v01.15.0 | | FDP_CWV_Collector_Util (Core Web Vitals diag) | ✅ v01.15.14 — live-verified (organizer, 2026-06-01) | | E2E_UserManagerService lift-up | ⏳ next PR | | E2E_ConfigService lift-up | ⏳ later | | E2E_UiHelperService lift-up | ⏳ later (Playwright dep boundary TBD) |

See _specifications/BACKLOG.md for the full roadmap.