Bibliothèque personnelle de packages TypeScript (monorepo pnpm), publiée sur le registre npm privé Forgejo.
Find a file
Nicolas 509bd3a537 Ajouter @lightweight-sdk/service-discovery (packages/server)
Agregateur d'API reverse-proxy avec enregistrement et decouverte de
services au runtime, deux points d'entree separes partageant un meme
protocole :

- ./client (DiscoveryClient) : enregistre un service et maintient un
  heartbeat periodique (qui sert aussi de mecanisme de retry - un echec
  est journalise et laisse au tick suivant, pas de logique separee).
  stop() est best-effort et ne rejette jamais.
- ./aggregator (ServiceAggregator) : handlers Node natifs a monter dans
  Express/Fastify/http brut (exemples des trois dans le README), zero
  dependance framework. Routage par prefixe de nom de service, TTL avec
  balayage periodique, secret partage compare en temps constant, proxy
  HTTP fait main (node:http/https, streaming, filtrage hop-by-hop,
  distinction 502/504).

Limites documentees dans le README plutot que corrigees : pas de
matching :param (v1, match exact), pas de secret par service, risque
SSRF-like assume vu le threat model homelab.

Resolution des sous-chemins via des stubs package.json (client/,
aggregator/) puisque le repo cible moduleResolution: Node10, pas de
champ exports moderne - pattern documente dans spec/architecture.md
pour de futurs packages server/ multi-points d'entree.

Bug trouve et corrige en cours de route : req.on('close') se declenche
des que le corps de la requete entrante est lu (immediat pour un GET
sans body), pas a la deconnexion reelle du client - detruisait ma
propre requete sortante juste apres l'avoir envoyee. Le bon signal est
res.on('close').

Correction connexe : create-package.mjs inserait la nouvelle ligne en
fin de fichier de spec/packages.md au lieu de l'inserer dans le
tableau - corrige pour les deux packages precedents au passage.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 19:01:33 +02:00
.changeset Ajouter @lightweight-sdk/service-discovery (packages/server) 2026-09-18 19:01:33 +02:00
.forgejo/workflows Simplifier le trigger de ci.yml (pull_request uniquement) 2026-09-18 08:47:43 +02:00
packages Ajouter @lightweight-sdk/service-discovery (packages/server) 2026-09-18 19:01:33 +02:00
scripts Ajouter @lightweight-sdk/service-discovery (packages/server) 2026-09-18 19:01:33 +02:00
spec Ajouter @lightweight-sdk/service-discovery (packages/server) 2026-09-18 19:01:33 +02:00
.editorconfig Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
.gitattributes Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
.gitignore Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
.npmrc Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
biome.json Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
package.json Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
pnpm-lock.yaml Ajouter @lightweight-sdk/service-discovery (packages/server) 2026-09-18 19:01:33 +02:00
pnpm-workspace.yaml Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
README.md Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
tsconfig.base.json Ajouter @lightweight-sdk/service-registry (packages/common) 2026-09-18 13:59:58 +02:00
tsconfig.json Ajouter @lightweight-sdk/service-discovery (packages/server) 2026-09-18 19:01:33 +02:00
typedoc.json Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00
vitest.config.ts Bootstrap monorepo pnpm + migration de web-component 2026-09-18 07:10:13 +02:00

lightweight-sdk

Bibliothèque personnelle de packages TypeScript, organisée en monorepo pnpm et publiée sur le registre npm privé hébergé sur git.dev.kyuno.fr.

Structure

Les packages sont répartis en trois catégories sous packages/ :

  • client/ — packages destinés au navigateur (DOM, composants UI).
  • common/ — code isomorphe partagé entre client et server.
  • server/ — packages Node/backend, structurés en services modulaires autonomes.

Voir spec/architecture.md pour le détail des choix d'outillage, et spec/packages.md pour la liste des packages existants.

Démarrage

pnpm install
pnpm build
pnpm lint
pnpm test
pnpm docs:check

Créer un nouveau package

pnpm create-package <client|common|server> <nom-du-package>

Documentation