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

@inso_web/els-vue

v0.4.2

Published

Vue 3 plugin для Error Logs Service (ELS): глобальный errorHandler, composable useELS и автоматический репорт ошибок компонентов.

Readme

@inso_web/els-vue

npm version npm downloads TypeScript license MIT

Vue 3 plugin для Error Logs Service (ELS): глобальная регистрация клиента + composable useELS() + автоматический app.config.errorHandler для перехвата render-ошибок.

Что внутри

  • app.use(ELSPlugin, { client }) — регистрирует клиент глобально и навешивает app.config.errorHandler.
  • useELS() — composable для использования логгера в <script setup>.
  • Автоматический errorHandler Vue: render-ошибки → ELS со stack trace и информацией о компоненте.

UI: что вы получаете

ELS из коробки даёт админ-панель — все события из вашего Vue приложения попадают в неё.

Список логов с фильтрами

Список логов

Виртуальная таблица всех событий: trace ID, приложение, источник (client/server), уровень, сообщение, страница, IP. Левый сайдбар — фасеты по приложению, окружению, версии, источнику, уровню, браузеру, языку, IP, категории ошибки.

Детальная карточка с метаданными

Детальная карточка

Время сервера/клиента, IP с гео, окружение, версия приложения, fingerprint, session ID. Карточки повторений и корреляция событий справа.

AI-диагностика ошибок

AI диагностика

Stack trace с распарсенными фреймами + AI-анализ что именно сломалось и как чинить.

Аналитика и регрессии по версиям

Аналитика

Total / critical+errors / warnings / error rate. AI-обзор слева, timeline в центре, donut'ы по приложению/источнику/уровню. Виджет «Регрессии»: какие fingerprint'ы появились впервые в свежей версии и какие пропали.

Управление API-ключами

API ключи Действия с ключом

Scoped-ключи (write/read/read-any), live/test environments, ротация без даунтайма.

Избранные события

Избранные

Закладки на конкретные trace ID — для расследований, не теряются между сессиями.


Установка

npm install @inso_web/els-client @inso_web/els-vue

Quick Start

1. Подключите plugin

main.ts:

import { createApp } from 'vue';
import { ELSClient } from '@inso_web/els-client';
import { ELSPlugin } from '@inso_web/els-vue';
import App from './App.vue';

const client = new ELSClient({
  endpoint: import.meta.env.VITE_ELS_URL,
  apiKey: import.meta.env.VITE_ELS_API_KEY,
  appSlug: 'my-vue-app',
  serviceName: 'web',
  deploymentEnv: import.meta.env.PROD ? 'PRODUCTION' : 'DEV',
  appVersion: import.meta.env.VITE_BUILD_VERSION,
  minLevel: 'info',
});

const app = createApp(App);
app.use(ELSPlugin, { client, attachVueErrorHandler: true });
app.mount('#app');

attachVueErrorHandler: true — устанавливает app.config.errorHandler, render-ошибки автоматически шлют в ELS.

2. Логируйте через useELS()

<script setup lang="ts">
import { useELS } from '@inso_web/els-vue';

const log = useELS();

async function checkout() {
  log.info('Checkout started');
  try {
    await fetch('/api/checkout', { method: 'POST' });
  } catch (err) {
    log.error(err as Error, 'Checkout failed');
  }
}
</script>

<template>
  <button @click="checkout">Pay</button>
</template>

3. Глобальные обработчики (опционально)

window.addEventListener('error', (e) => client.error(e.error ?? e.message));
window.addEventListener('unhandledrejection', (e) => client.error(e.reason));

Версионирование

Vite инлайнит import.meta.env.VITE_* на этапе build. Прокидывайте через Dockerfile:

ARG VITE_BUILD_VERSION=dev
ENV VITE_BUILD_VERSION=$VITE_BUILD_VERSION
RUN npm run build
# .gitlab-ci.yml
- export BUILD_VERSION=$(date -u +%Y%m%d%H%M%S)
- docker build --build-arg VITE_BUILD_VERSION="$BUILD_VERSION" ...
new ELSClient({ ..., appVersion: import.meta.env.VITE_BUILD_VERSION });

ELS принимает любой формат до 128 символов: semver, CalVer, date-compact, git SHA, opaque.


API

const ELSPlugin: Plugin<{ client: ELSClient; attachVueErrorHandler?: boolean }>;

function useELS(): Logger;

FAQ

Совместимо с Nuxt 3? Да, регистрируйте plugin через defineNuxtPlugin:

// plugins/els.client.ts
export default defineNuxtPlugin((nuxtApp) => {
  const client = new ELSClient({ /* ... */ });
  nuxtApp.vueApp.use(ELSPlugin, { client });
});

А apiKey для клиентского bundle — это безопасно? Да, ELS-ключи scoped (только write для приложения), и они всё равно видны в bundle (как у Sentry public DSN).


License

MIT © INSOWEB