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

lshorter-api

v2.0.6

Published

Official TypeScript / JavaScript SDK for LShorter Edge URL Shortener & Analytics

Readme

LShorter — Official TypeScript / JavaScript SDK

LShorter est une plateforme moderne et ultra-rapide de raccourcissement de liens, de redirection intelligente à l'Edge (Cloudflare Workers) et de suivi avancé des conversions.

🌐 Site officiel : https://lsho.cc
👤 Créé par : KONVELBO Samuel


📌 À quoi sert l'API LShorter ?

L'API et le SDK LShorter permettent aux développeurs et aux entreprises d'intégrer facilement un moteur de liens courts performant directement dans leurs applications :

  • Redirections Edge ultra-rapides (< 15ms) propulsées par le réseau mondial Cloudflare.
  • 🎯 Ciblage & Routage intelligent : Redirigez vos utilisateurs selon leur pays (Géo-ciblage) ou leur appareil (iOS, Android, Windows, Mac).
  • 🔒 Sécurité & Liens Protégés : Protection de liens par mot de passe, expiration automatique et masquage d'URL (cloaking).
  • 📊 Analytics & Tracking de conversions : Mesurez le nombre de clics, les pays, les navigateurs et suivez le chiffre d'affaires / conversions générés par chaque lien.
  • 🏷️ Domaines Personnalisés : Connectez vos propres noms de domaine de marque facilement.

📦 Installation

Installez le SDK avec votre gestionnaire de paquets préféré :

# Avec pnpm (Recommandé)
pnpm add lshorter-api

# Avec npm
npm install lshorter-api

# Avec yarn
yarn add lshorter-api

# Avec bun
bun add lshorter-api

🚀 Démarrage Rapide

1. Initialiser le client

Obtenez votre clé API sur votre tableau de bord sur https://lsho.cc.

import { LShorter } from "lshorter-api";

const lsh = new LShorter({
  apiKey: "lsh_live_xxxxxxxxxxxxxxxxxxxxxxxxxx",
  // Optionnel : baseUrl par défaut sur https://lsho.cc
  baseUrl: "https://lsho.cc",
});

2. Créer un lien court

// Création d'un lien simple
const link = await lsh.links.create({
  targetUrl: "https://mon-site.com/produit-promo",
  slug: "promo-ete", // Optionnel : slug personnalisé (lsho.cc/promo-ete)
});

console.log("Lien court :", link.shortUrl);
console.log("QR Code :", link.qrCode);

3. Créer un lien avec ciblage intelligent (Plan PRO)

const smartLink = await lsh.links.create({
  targetUrl: "https://mon-site.com/default",
  slug: "app-download",
  // Rediriger les utilisateurs selon leur appareil
  deviceTargeting: {
    ios: "https://apps.apple.com/app/id123456789",
    android: "https://play.google.com/store/apps/details?id=com.app",
  },
  // Rediriger selon le pays
  geoTargeting: {
    FR: "https://mon-site.com/fr",
    US: "https://mon-site.com/en",
  },
});

4. Suivre une conversion & Attribution Financière (E-commerce / Inscription / Vente)

Attribuez vos ventes, vos inscriptions et vos montants financiers à vos liens raccourcis. L'API et le SDK acceptent les informations complètes du client (Avatar, Nom complet, Email) qui seront automatiquement affichées dans la sous-page d'analyse des revenus du dashboard :

await lsh.track.conversion({
  eventName: "purchase",
  amount: 49.99, // Montant réel en euros perçu lors du paiement
  currency: "EUR",
  linkId: link.id, // Ou slug du lien (ex: 'promo-ete')
  clickId: "clk_9921ab01", // Optionnel : ID du clic capturé lors de la visite
  customer: {
    id: "usr_123",
    email: "[email protected]",
    name: "Jean Dupont",
    fullName: "Jean Dupont",
    avatarUrl: "https://example.com/avatars/jean.jpg", // Photo de profil du client
  },
});

💡 Remarque : L'avatar fourni lors de la conversion est stocké dans la base de données Cloudflare D1 et s'affiche instantanément à l'extrême gauche de la liste des bénéficiaires sur la page d'analyse des revenus de LShorter.


5. Consulter les statistiques d'un lien

const stats = await lsh.analytics.get({
  linkId: link.id,
  period: "30d", // "1d" | "7d" | "30d" | "90d" | "365d"
});

console.log(`Total de clics : ${stats.totalClicks}`);
console.log("Top Pays :", stats.topCountries);
console.log("Top Appareils :", stats.topDevices);

6. Consulter et mettre à jour son profil utilisateur

Récupérez les informations de votre compte (email, nom complet, plan, quotas de clics et liens) :

const user = await lsh.users.me();

console.log("Email :", user.email);
console.log("Nom complet :", user.fullName || user.name);
console.log("Plan actuel :", user.plan);
console.log("Liens créés :", user.linksCount);
console.log("Clics ce mois-ci :", user.clicksThisMonth);

// Mettre à jour son nom ou sa langue
await lsh.users.update({
  name: "Samuel KONVELBO",
  language: "fr",
});

🛠️ Méthodes Disponibles dans le SDK

| Module | Méthode | Description | | :--- | :--- | :--- | | lsh.users | .me() | Obtenir le profil de l'utilisateur (email, nom, plan, quotas) | | lsh.users | .update(options) | Mettre à jour son nom complet, avatar, langue ou fuseau horaire | | lsh.links | .create(options) | Créer un nouveau lien court | | lsh.links | .list(options) | Lister ses liens avec pagination | | lsh.links | .get(id) | Récupérer les détails d'un lien | | lsh.links | .update(id, options) | Modifier l'URL cible, tags ou règles | | lsh.links | .delete(id) | Supprimer un lien et purger le cache Edge | | lsh.track | .conversion(event) | Enregistrer une conversion liée à un lien | | lsh.analytics | .dashboard(options) | Consulter le tableau de bord des métriques | | lsh.analytics | .top(options) | Top pays et top appareils | | lsh.domains | .list() | Lister ses domaines personnalisés | | lsh.domains | .create(options) | Ajouter un domaine personnalisé | | lsh.domains | .verify(id) | Vérifier la configuration DNS d'un domaine |


👨‍💻 Auteur & Support

  • Développé par : KONVELBO Samuel
  • Plateforme Officielle : https://lsho.cc
  • Licence : MIT