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

intelica-library-e2e

v1.0.2

Published

Herramental común de las suites E2E (Playwright) del stack de Intelica: config, sesión, discovery de selectores, helpers del shell y ticketing de Jira.

Readme

intelica-library-e2e

Herramental común de las suites E2E (Playwright) del stack de Intelica.

Antes, cada microfront copiaba ~136 KB de código idéntico en su proyecto de tests —el motor del discovery, los tres scripts de Jira, la sesión, los helpers del shell y el playwright.config.ts entero—. Cada copia envejecía por su cuenta y actualizarlas era ir repo por repo. Acá viven una sola vez y se actualizan con un bump de versión.

No es una librería Angular. No se compila con ng-packagr ni está declarada en angular.json: es Node plano, se compila con tsc y su consumidor es un proyecto de tests, no una aplicación.

Instalación

npm install intelica-library-e2e

Dependencia normal, no devDependency. El reusable que publica los tickets de Jira instala con npm i --omit=dev, que no trae devDependencies: como devDep, el binario intelica-e2e-jira-submit no existiría en ese job. Y la distinción no cuesta nada, porque el proyecto de tests es privado y nunca se publica.

@playwright/test es peer dependency: lo pone el proyecto de tests, que ya lo tiene. Por eso tenerlo en este repo no arrastra navegadores a nadie.

Qué expone

| Subpath | Qué da | | --- | --- | | intelica-library-e2e/config | defineE2EConfig({ baseURL }) — el playwright.config.ts completo | | intelica-library-e2e/auth | login, ensureAuth, isAuthEnabled, AUTH_STATE — la sesión | | intelica-library-e2e/shell | switchProfile — helpers de la UI compartida del portal | | intelica-library-e2e/discovery | runDiscovery({ baseUrl, pages }) — el motor del catálogo | | intelica-library-e2e/jira/reporter | el reporter que propone bugs; se referencia por nombre en el config | | intelica-e2e-jira-submit (bin) | el script que crea los tickets, tras la aprobación de QA |

Cómo se usa en un proyecto de tests

playwright.config.ts

import { defineE2EConfig } from "intelica-library-e2e/config";

export default defineE2EConfig({ baseURL: "https://<microfront>.qa.intelica.com" });

Los timeouts tienen los defaults del stack (test 60 s, aserción 10 s, acción 15 s, navegación 30 s) y se ajustan por proyecto sin tocar el resto:

export default defineE2EConfig({
    baseURL: "...",
    timeouts: { navigation: 60_000 },   // lo que no se pasa, queda con el default
});

Si te encontrás pasando el mismo override en varios proyectos, eso es señal de que el default del paquete tiene que cambiar — no cada repo.

discover.config.ts — lo único del microfront: su baseURL y su inventario de rutas.

import { runDiscovery, type PageSpec } from "intelica-library-e2e/discovery";
import type { Page } from "@playwright/test";

const BASE_URL = "https://<microfront>.qa.intelica.com";

const PAGES: PageSpec[] = [
    { path: "/login", auth: false },
    { path: "/dashboard", prepare: async (page: Page) => { /* abrir overlays */ } },
];

runDiscovery({ baseUrl: BASE_URL, pages: PAGES });

tests/auth.setup.ts — tiene que estar bajo testDir o Playwright no lo recolecta.

import { test as setup } from "@playwright/test";
import { ensureAuth } from "intelica-library-e2e/auth";

setup("authenticate", async ({ page }) => {
    await ensureAuth(page);
});

Variables de entorno

Las lee del .env del proyecto que llama, no del paquete. Todas las rutas que el paquete escribe (.auth/state.json, selectors/, jira-tickets.json) son relativas a ese proyecto.

| Variable | Para qué | | --- | --- | | QA_AUTH_LOGIN_URL | el interruptor: sin ella no se autentica nada y no se arma el proyecto setup | | QA_AUTH_USER / QA_AUTH_PASS | credenciales de QA | | QA_AUTH_TTL_MIN | minutos que se reutiliza la sesión guardada (default 30) | | JIRA_BASE_URL / JIRA_EMAIL / JIRA_API_TOKEN | solo las necesita el bin de submit; el reporter nunca habla con Jira |

Publicación

Igual que las librerías Angular de este repo: el workflow .github/workflows/publish-intelica-library-e2e.yml se dispara al mergear a main cambios bajo projects/intelica-library-e2e/**, compila con tsc y publica desde dist/intelica-library-e2e.