Objectif : éliminer les forks et dépendances custom pour réduire la dette technique et faciliter les montées de version.
- Type : Republication sous scope
@deepnotes/du package officielsimple-lru-cache. - Usage : Un seul endroit :
packages/@stdlib/data/src/data-abstraction.ts— import par défaut et utilisation de l’API{ cache, get, set, del, reset }avecnew simpleLRUCache({ maxSize }). - Upstream :
simple-lru-cache(Gabriel Eisbruch, https://github.com/geisbruch/node-simple-lru-cache), version 0.0.2. Même API :Cache.prototype.get(key, hit?),set(key, val, hit?),del(key),reset(), propriétécache. - Changelog upstream : Package stable, 2 versions (0.0.1, 0.0.2), pas d’évolution récente. Aucune divergence fonctionnelle identifiée entre
@deepnotes/simple-lru-cacheetsimple-lru-cache.
Décision : REMPLAÇABLE
- Le package officiel expose la même API (get/set/del/reset, option
hit, propriétécache). Aucun correctif ou comportement spécifique du scope@deepnotes/n’est utilisé. - Action : Remplacer
@deepnotes/simple-lru-cacheparsimple-lru-cache@^0.0.2danspackages/@stdlib/data/package.jsonet adapter l’import si besoin (export par défaut identique).
- Type : Package officiel
libsodium-wrappers-sumo@0.7.16avec un patch pnpm (pas un fork npm). - Patch :
patches/libsodium-wrappers-sumo@0.7.16.patch— modifie un seul fichier :dist/modules-sumo-esm/libsodium-wrappers.mjs(fichier ESM minifié). Le diff remplace l’intégralité du contenu de ce fichier (contenu minifié, analyse détaillée non faite). - Usage : Import
sodiumdepuislibsodium-wrappers-sumodans plusieurs modules (crypto, auth, key-rotation, etc.). Aucun usage d’une API ajoutée par le patch n’a été identifié dans le code source. - Changelog upstream : Versions 0.7.16 et 0.8.x existantes (libsodium.js). Sans analyse ligne à ligne du patch, on ne peut pas affirmer que le correctif est intégré en amont.
Décision : NON REMPLAÇABLE (temporaire)
- Le patch modifie le binaire ESM distribué. La raison exacte (correctif wasm, compatibilité bundler, etc.) n’est pas documentée et le diff est illisible en pratique (fichier minifié).
- Action : Conserver le patch. Pour une migration ultérieure : (1) reproduire le correctif à la main sur la source ou (2) tester la suppression du patch (build + tests + scénarios crypto) et documenter le résultat. Ne pas monter de version majeure (ex. 0.8.x) dans cette étape.
- Type : Pin de version dans
package.jsonracine (pnpm.overrides), pas un fork. - Valeurs :
prosemirror-model": "~1.18.3",prosemirror-view": "~1.29.2". - Rôle : Aligner les versions de Prosemirror dans le monorepo (Tiptap, y-prosemirror, etc.).
Décision : Hors scope
- Ce ne sont pas des forks, uniquement des contraintes de version. Aucune action de « retour à l’upstream » à faire ici.
| Dépendance | Décision | Action effectuée / à faire |
|---|---|---|
| @deepnotes/simple-lru-cache | REMPLAÇABLE | Remplacer par simple-lru-cache@^0.0.2 (voir § C) |
| libsodium-wrappers-sumo | NON REMPLAÇABLE | Conserver le patch, documenter pour plus tard |
| prosemirror-model/view | Hors scope | Aucune |
- Dans
packages/@stdlib/data/package.json, remplacer"@deepnotes/simple-lru-cache": "^0.0.2"par"simple-lru-cache": "^0.0.2". - Dans
packages/@stdlib/data/src/data-abstraction.ts, remplacer l’importimport simpleLRUCache from '@deepnotes/simple-lru-cache'parimport simpleLRUCache from 'simple-lru-cache'. - Vérifier que l’API utilisée (constructeur avec
{ maxSize },get,set,del,reset, propriétécachesi utilisée) est identique à l’upstream (confirmé : oui). - Exécuter
pnpm install,pnpm run repo:build, puispnpm run spa:devpour validation.
Aucun changement dans .syncpackrc.json : aucune exception liée à ces packages n’y est déclarée.
- pnpm install (--no-frozen-lockfile) : OK.
- pnpm run build : OK (17 tasks).
- pnpm run repo:build : OK.
- pnpm run spa:dev : OK (serveur SPA démarre, URL affichée).