- Outillage complet : pnpm workspaces (catalog), Biome, TypeScript (project references, CommonJS/Node10), Vitest, TypeDoc (validation bloquante en CI), Changesets. - Organisation des packages en catégories client/common/server. - Migration de @lightweight-sdk/web-component (packages/client/) depuis l'ancien repo lightweight-sdk-web-component : code source copié à l'identique, aucune modification. package.json/tsconfig.json/README.md adaptés autour. Exclu de la validation TypeDoc stricte et de quelques règles Biome (formatage, noShadowRestrictedNames) puisque le code ne peut pas être édité pour s'y conformer - détails dans spec/packages.md. - Workflows Forgejo Actions (.forgejo/workflows/) : ci.yml (lint, build, test, docs:check) et release.yml (publication sur le registre npm privé via Changesets). - Script pnpm create-package <client|common|server> <nom> pour scaffolder les futurs packages. - Documentation dans /spec (architecture, conventions, ci-cd, packages). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2.7 KiB
2.7 KiB
Registre des packages
| Package | Catégorie | Version | Statut |
|---|---|---|---|
@lightweight-sdk/web-component |
client | 0.0.2 | migré depuis lightweight-sdk-web-component, non modifié |
Ajouter un package
pnpm create-package <client|common|server> <nom-du-package>
Le script scaffolde package.json, tsconfig.json, src/index.ts + un test, un README.md, ajoute le package aux project references racine et met à jour ce tableau automatiquement. Reste à faire à la main : décrire le package, l'implémenter, et créer un changeset (pnpm changeset) quand il est prêt à être publié.
Champs package.json obligatoires pour tout package du monorepo
name(@lightweight-sdk/<nom>),version,descriptionmain(dist/index.js),types(dist/index.d.ts),files: ["dist"]engines.node >= 22publishConfig.registrypointant vers le registre npm privé (https://git.dev.kyuno.fr/api/packages/kyuno/npm/)typedocOptions.entryPoints(sauf exception documentée, voir ci-dessous)
Observations sur @lightweight-sdk/web-component (non traitées, laissées telles quelles)
Le code source de ce package a été migré strictement à l'identique depuis l'ancien repo lightweight-sdk-web-component, sans aucune édition (décision explicite de l'auteur). Quelques points relevés à la lecture, non corrigés, à traiter soi-même dans une PR dédiée si souhaité :
connectedCallback()/disconnectedCallback()(abstractComponent.ts), la constanteCUSTOM_COMPONENT_CONFIG(component.type.ts) etREQUEST_DOM_LINK_KEY(component.tools.ts) n'ont pas de TSDoc complet — c'est pourquoi ce package est exclu de la validationdocs:checkdanstypedoc.json(exclude: ["packages/client/web-component/**"]).- Deux usages de
any(ConstructorFunction.new(...args: any[]),parseModuleToHtml(mod: any)) — visibles comme avertissements Biome non bloquants (noExplicitAny). - Le paramètre
constructordanscomponent.tools.tsmasque un nom global restreint (noShadowRestrictedNames) — désactivé pour ce package via unoverridesdansbiome.json. - Le style de formatage d'origine (4 espaces, guillemets doubles) diffère de la config Biome du monorepo (tabulations, guillemets simples) — le formatter Biome est désactivé pour ce package via le même
overrides. REQUEST_DOM_LINK_KEYsemble ne plus être utilisé nulle part dans le code (le mécanisme actif est le tableau__linkedProperties) — potentiellement mort, mais pas supprimé.- Quelques typos mineures ("atatched", "attriute") et un commentaire en français dans
LinkToDomqui ne correspond plus exactement au comportement (throwau lieu d'un simple avertissement).