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

ng-easycommerce-v18

v0.6.2-newsletter-honeypot.2

Published

- Formularios: `block-newsletter-ec` y `block-form-contact-ec` incorporan el honeypot `hp_email_verification` (prefijo `hp_`) y lo envían al backend para que pueda bloquear/bypassear solicitudes de bots. # Version 0.6.2 - Checkout: `dataform-ec` ahora tom

Readme

Version 0.6.2-newsletter-honeypot.2

  • Formularios: block-newsletter-ec y block-form-contact-ec incorporan el honeypot hp_email_verification (prefijo hp_) y lo envían al backend para que pueda bloquear/bypassear solicitudes de bots.

Version 0.6.2

  • Checkout: dataform-ec ahora toma checkoutRequiredFields.postalCode desde /shop-api/{canal}/countries para definir la visibilidad y obligatoriedad del campo postcode.
  • Si checkoutRequiredFields.postalCode viene en true, el campo código postal se muestra y se valida como obligatorio.
  • Si checkoutRequiredFields.postalCode viene en false, el campo se oculta y se eliminan sus validaciones del formulario.
  • Se mantiene compatibilidad con backends legacy: si checkoutRequiredFields.postalCode no viene en la respuesta, se conserva el comportamiento anterior basado en viewForms.postcode.
  • Se agregan tests unitarios para cubrir el override del backend nuevo y el fallback legacy.

Version 0.6.1

  • Checkout single: soporte estable de dirección de facturación independiente, con selección de dirección guardada o carga de una nueva, alineado al flujo legacy.
  • Facturación: visualización completa de la dirección seleccionada y compatibilidad con provincias y zonas de países no AR mediante provinceCode.
  • Envíos (single): payload completo en /shipping-option para compatibilidad con contrato y sucursal del flujo legacy.
  • Productos, filtros y collection: mejoras en sincronización de atributos dinámicos, rango de precios, navegación por categoría y estados de carga del listado.
  • Servicios base (ChannelService, OptionsService, ParametersService, ProductsService): mejoras de estabilidad para evitar requests duplicados, concurrencia innecesaria y estados bloqueados.
  • Precios y cantidades: unificación de visibilidad de precios y validación de configuraciones inválidas de múltiplos en producto.
  • Formularios y UX: prevención de doble submit en registro y reset de contraseña, mejoras en el buscador/header, scroll automático al listado y ajustes visuales en cart, order detail y block products.
  • Traducciones y validaciones: textos de ordenamiento unificados y validación ampliada de phoneNumber en registro mayorista.

Version 0.6.0

  • Se incorpora embla-carousel-ec como componente base reutilizable para carruseles (navegación, paginación, estado y autoplay).
  • Se migra el HTML de carrusel de block-products-ec, block-banner-full-ec y block-banner-box-ec a Embla.
  • Se mantiene compatibilidad legacy para frontends que heredan y aún usan lógica de Swiper en TS (hooks, swiperOptions y bridges de inicialización).
  • Se agregan utilidades compartidas para mapear configuración legacy (SwiperOptions) a Embla, incluyendo breakpoints y estilo responsive de slides.
  • Se exporta el nuevo módulo embla-carousel-ec desde ec-components/index.ts.
  • Se ajustan manifiestos de paquete para incluir dependencias de Embla y permitir su empaquetado en la librería.
  • block-products-ec, block-banner-full-ec y block-banner-box-ec ahora preservan overrides de frontend en Embla (emblaOptions, emblaPlugins, emblaSlideStyle) y evitan que el core los pise al recalcular configuración.
  • Se agregan referencias internas de valores por defecto y último estado core para diferenciar entre configuración base y personalizaciones aplicadas desde frontends heredados.
  • Se incorporan guards (hasFrontendEmblaOptionsOverride, hasFrontendEmblaPluginsOverride, hasFrontendEmblaSlideStyleOverride) para aplicar configuración de core sólo cuando no existe override externo.

Version 0.5.9

  • Se incorporan ProductImageZoomEcComponent, ProductMobileImageViewerEcComponent y ProductImageExperienceEcComponent.
  • widgets-ec/index.ts ahora exporta estos tres componentes para su uso desde la librería.
  • ProductImageExperienceEcComponent centraliza el flujo de imagen (zoom desktop con panel externo + visor mobile fullscreen) y sincroniza índice activo con activeIndexChange.
  • Se agrega Input de configuración por objetos: zoomConfig y mobileViewerConfig, manteniendo compatibilidad con inputs legacy.
  • ProductMobileImageViewerEcComponent suma attachToBody, activeIndex/activeIndexChange, cierre por historial/escape/backdrop y flechas desktop configurables.
  • product-detail-ec.component.ts mejora sanitizedHtml filtrando web-share en allow de iframes y agrega utilidades para control de swiper e interacciones hover.

Version 0.5.8

  • Checkout: al confirmar dirección (/headquarter y /address) se actualiza inmediatamente el resumen asociado para reflejar impuestos y totales sin esperar el paso de envío.
  • Legacy con envío y pago omitidos: se separa sincronización de dirección y finalización. Primer click sincroniza con backend y actualiza resumen; segundo click habilita/ejecuta finish-checkout.
  • En legacy de un solo paso, si cambian los totales tras sincronizar dirección, se fuerza scroll al inicio para que el usuario vea el resumen actualizado antes de finalizar.
  • ChannelService aplica la configuración completa del canal (incluye checkoutView) al recibir /channel.
  • Checkout: ajuste de checkoutView (sin persistencia) y sincronización con la config del canal.
  • Implementación del nuevo diseño del checkout single (UI/UX y lógica de flujo).
  • Envíos (single): payload incluye contrato/sucursal, y el precio se muestra tachado cuando el envío es gratis.
  • Se agregan tests unitarios para checkout y servicios relacionados.

Version 0.5.7

  • Al agregar nueva direccion de facturación se deja setteado el email para los usuarios ya autenticados.
  • En el checkout se agrega la posibilidad de usar una dirección de facturación ya creada o crearlas desde cero.
  • Se modifica la forma de enviar la info de direcciones en el endpoint para que backend reciba las dos opciones.

Version 0.5.6

  • fix(filters): improve selection handling and breadcrumb display for attributes

Version 0.5.5

  • decidirFormEc.html agrega guard para evitar doble submit (isSubmitting) y bloqueo de reintentos mientras se procesa el pago.
  • En éxito se mantiene el spinner para evitar reintentos hasta que se cierre la modal.
  • En error se libera el bloqueo y se oculta el spinner para permitir reintentar.

Version 0.5.4

  • block-newsletter-ec evita envíos duplicados del formulario de newsletter mientras la request está en curso (loading guard).
  • Se refactoriza sendForm a async/await con try/catch/finally para centralizar manejo de errores y asegurar el reset de loading.
  • Limpieza menor del componente: se elimina import no utilizado y se ajustan llamadas async con void.

Version 0.5.3

  • Se modifica servicio de producto y paginacion porque el collection lanza endpoint de pagina 2 pero no la muestra y el resto si.

Version 0.5.2

  • Se agrega descrption2 al observable Product para recibirlo del endpoint.
  • Se modifica la funcion para limpiar la descripcion sin html ni css.

Version 0.5.1

  • dataform-ec prioriza el email del cliente activo cuando hay impersonación de vendedor.
  • auth.interceptor agrega el header customer en requests autenticadas para sostener la selección de cliente en checkout (address-book).

Version 0.5.0

  • Se modifica servicio de productos ya que en el collection solo mostraba los primeros traidos en el endpoint y no los que cargaban con la paginación.
  • Se agrega funcion en servicio de product-detail para vaciar el observable y que al entrar a la vista no cargue el producto que vimos anteriormente durante 2 segundos.
  • Runtime levanta bien los entornos tomando la configuracion de kubernetes.

Version 0.4.10

  • Se agrega addAllToCart en CartService y bulkAddEnabled en CoreConstantsService para habilitar agregado masivo, con selección y sincronización en collection-ec y product-ec.
  • product-ec y cart-item-ec unifican validación y clamp de cantidades (stock, maximumItemsQuantity, mínimos, máximos y múltiplos), actualizan el input final y muestran toasts cuando se exceden límites.
  • CartService.validateQuantity valida sobre la nueva cantidad del ítem para actualizaciones.
  • collection-ec valida stock acumulado en agregado masivo y muestra un toast con productos afectados; se agrega i18n bulk-stock-insufficient (es/en).
  • ProductsService centraliza el append de productos y escucha nextProducts$ para paginación; PaginationService deja de reinyectar nextProducts$ desde getData para evitar duplicados en la collection.
  • auth.interceptor ahora maneja 401/403 con logout y redirección a /auth/login.

Version 0.4.9

  • Se agrega el header customer al interceptor de auth para sostener la impersonación en checkout.
  • Se evita la dependencia directa de AuthService en el interceptor para prevenir ciclos DI en SSR.
  • Se agrega el dashboard de vendedores con búsqueda, ordenamiento e impersonación de clientes.
  • Se endurece el ordenamiento de clientes para evitar errores con datos incompletos.
  • Se normaliza el uso de storage para CHANNELSELLER al cambiar de cliente.
  • Se agrega fuse.js como peer dependency.

Version 0.4.8

  • se cambio las variables platformId, de privadas a protected

Version 0.4.7

  • AddressingService ahora escucha el canal activo y ajusta modeSelectAddress según headquarterSelectionOnly.
  • DataformEcComponent expone modeSelectAddress vía getter para reflejar cambios de canal en el formulario.
  • Limpieza de código comentado en ChannelService tras mover la configuración del modo de selección.

Version 0.4.6

  • Primera direccion en checkout predeterminada por defecto

Version 0.4.2

  • Se añade platformID en contact para comprobacion ssr.

Version 0.4.1

  • Se agrega PriceVisibilityService para centralizar la visibilidad global de precios (canal + login + cuenta corriente).
  • Se refactorizan componentes para evitar condiciones largas de precios y reutilizar el gate global.
  • Se agrega CreditAccountBannerEcComponent (standalone) para mostrar créditos/límite con barra de progreso.
  • Se agregan keys de i18n para el banner: credit-account-banner.* (es/en/fr/pr/ct/gl).
  • Cuenta corriente: mejoras en validaciones de crédito y selección de método de pago (bloqueo cuando no corresponde y mensaje en success para balance_in_account).
  • Ajustes en CartService y ProductDetailService para validar stock/cantidad y créditos antes de agregar al carrito.

Version 0.4.0

  • Ajuste en verifyValidate: los métodos de pago manuales (transferencia/offline) vuelven a finalizar el checkout aunque no emitan evento, manteniendo el flujo de Mercado Pago sin cambios.
  • eliminar logs
  • Ajuste adicional en el flujo de Mercado Pago para móviles: se ejecutan los eventos de estado dentro de NgZone para asegurar la correcta detección de cambios y avanzar al siguiente paso del checkout.
  • Mejora en el flujo de pago con Mercado Pago en dispositivos móviles: se agrega fallback de redirección cuando window.close() es ignorado, asegurando que la pantalla de resultado no quede bloqueada en el catch.
  • Se modifica runtimeconfig ya que toma un canal por defecto.
  • Se mergea con la rama de deployment_ssr
  • Se añade en carrito sidebar product detail y producto las validaciones necesarias para que compruebe si hay un maximo , un minimo o multiplo.
  • Se optimizar y comenta codigo para que el runtime no sea un bucle y se haga antes de la primera carga
  • Se modifican servicios y componentes para que funcione el deploy SSR.
  • Se elimina uso de DOM ya que en SSR tira error.
  • Se agrega if platformID en mas archivos para que no de error al navegar elden.
  • Ya estaba contemplado isVisible en el componente menu-ec.component, pero se adapto para que devuelva solo las categorias, atributos y secciones visibles y no tener que filtrarlos en el frontend.
  • Se agrego el isVisible de las categorias a su interfaz

Version 0.3.22

  • Limpieza de importaciones innecesarias en header-ec.component para reducir peso y evitar dependencias sin uso.
  • Se reactiva la inicialización de herramientas de analytics (Facebook Pixel, Google Analytics, GTM, Metricool y Doppler) en el core Angular 18 a partir de los parámetros del endpoint /parameters.
  • Se respeta la nomenclatura de glosario facebook_<canal>_id, google_<canal>_id, gtm_<canal>_id, metricool_<canal>_id, doppler_<canal>_id, usando como fallback los códigos genéricos <servicio>_id cuando no exista el específico por canal.
  • Se agrega IS_PRODUCTION en ApiConstantsService y se limita la inicialización de analytics sólo a entornos productivos.

Version 0.3.20

  • Refactor completo de filtros, paginación y productos para soportar correctamente SSR (Server-Side Rendering).
  • Unificación del flujo de filtrado: ahora toda la lógica se basa en URL (params + queryParams) y se hidrata desde FiltersService.hydrateFromRoute().
  • Se optimiza el runtime inicial para evitar ciclos innecesarios y cargar filtros antes del primer render.
  • Se centraliza la sincronización de rangos de precio (filters ↔ pagination ↔ products).

Version 0.3.17

  • En el header-ec.component.ts se hacen public algunos injectores para poder usarlo en el header.component.ts de los frontends.

Version 0.3.16

  • Se añaden traducciones al core

Version 0.3.15

  • Refactor del flujo de pago con Mercado Pago (redirect/popup unificado).
  • Compatibilidad completa con mobile y desktop: cierre automático de pestaña o redirección según navegador.
  • Nuevo control de estado visual (idle / pagando / finalizando) para evitar repeticiones o confusión del usuario.
  • Simplificación de catch (RedsysCatchEcComponent) y limpieza de código legacy.

Version 0.3.13

  • Se hace estable 0.3.12-beta.1.
  • Se hace estable feature/pop-up-inicial.
  • Se hace estable feature/add-product-block.
  • Se hace estable feature/logged,showpassword,otros.

Version 0.3.12-beta.1

  • Se añade ruta por si falla MP redirija y de error.

Version 0.3.11

  • se añade funcionalidad para ocultar categorias en header footer y filtros

Version 0.3.10

  • se añade funcionalidades para excluir paises en el formulario del proceso de compra

Version 0.3.9

  • mejorar la función hasParams para buscar primero el parametro con codigo exacto, sino parcial.

Version 0.3.8

  • Se cambia construccion de etiquetas META

Version 0.3.7

  • Se cambia construccion de etiquetas META

Version 0.3.6

  • Se cambia construccion de etiquetas META

Version 0.3.5

  • Se cambia construccion de etiquetas META

Version 0.3.4

  • Se cambia construccion de etiquetas META

Version 0.3.3

  • Se cambia construccion de etiquetas META

Version 0.3.2

  • Se cambia construccion de etiquetas META

Version 0.3.1

  • Se cambia construccion de etiquetas META

Version 0.3.0

  • HideTaxes en carrito (ocultar impuestos)
  • se fuerza a numero en las funciones pluss y less (+/-) para evitar que se concatene el 1 al darle al mas
  • en cart.service y order-utility.service se cambia para que el subtotal se guarde correctamente
  • se cambia la funcion updateAsociatedData del checkout.service para mostrar impuestos en el checkout

Version 0.2.29

  • Cambios en dataform para que no se autoseleccione la provincia ya que daba error.

Version 0.2.28

  • product-detail-ec.component: se incorpora resetReviewModal() para resetear el estado del modal de reseñas al cambiar de producto.

Version 0.2.27

  • traducciones y hideprice en filters-ec para ocultar rango de precio.

Version 0.2.26

  • Se implementa la funcionalidad de repetir pedido

Version 0.2.25

  • Se implementa una funcion que me devuelove si el producto tiene stock o no

Version 0.2.24

  • Se implementa funcionalidades para el recargo de pagina al hacer click en algun producto relacionado

Version 0.2.23

  • Ajustes en funcionalidad filtro atributos y cambios en variantes y vista producto en carrito.

Version 0.2.22

  • Ajustes de estilos y funcionalidad.

Version 0.2.21

  • No se enviaba info de metodo de envio en endpoint shipping-contract

Version 0.2.20

  • No permitia agregar cosas al carrito despues de hacer pedido.
  • Checkout se quedaba con los datos guardados al hacer 2 pedidos seguidos.

Version 0.2.19

  • Campo notas que respete check de backoffice.
  • Se corrije que carrito lanzaba endpoint duplicado y al recargar se perdia.

Version 0.2.18

  • Se implementa el check de ocultar precios para usuarios no logueados en el filter para el rango de precio
  • Se implementa en el metodo de envio la clase .active para el que el metodo seleccionado quede diferenciado

Version 0.2.17

  • Se implementa pipe safe url.
  • Se comentan console.log

Version 0.2.16

  • Se modifica funcionamiento del carrito con login y logout

Version 0.2.15

  • Se implementa decidir

Version 0.2.14

  • Se agrega hidePrice en product y en price en html

Version 0.2.13

  • Se agrega en los metodos de envio la descripcion
  • check ocultar precios en usuarios no logueados
  • check ocultar precios (hidePrice)

Version 0.2.12

  • Se agrega logia al app-price para funcion de mostrar precios logeados o no

Version 0.2.11

  • se cambia el block-banner-full para personalizar las flechas

Version 0.2.10

  • Se modifica las constantes de apiURL para probar.

Version 0.2.5

  • Se prueba el apiURL

Version 0.2.4

  • Se cambia para que en environment no sea obligatorio el apiURL

Version 0.2.3

  • Actualiza el manejo de precios y tasas en el servicio de detalles del producto para soportar la nueva estructura del backend.