npm warn Unknown env config "http-proxy". This will stop working in the next major version of npm.

> atelier-outils@0.29.0 check
> node --check src/app.js && node --check src/core.js && node --check src/tickets.js && node --check src/tickets-core.js && node --check src/images.js && node --check src/navigation.js && node --check src/catalog.js && node --check src/image-core.js && node --check src/data.js && node --check src/data-core.js && node --check src/data-worker.js && node --check src/djvu.js && node --check src/djvu-core.js && node --check src/djvu-worker.js && node --check src/cbz.js && node --check src/cbz-core.js && node --check src/cbz-worker.js && node --check src/extra-pdf-core.js && node --check src/duplex.js && node --check src/subtitles.js && node --check src/subtitles-core.js && node --check src/result-ui.js && node --check src/guides.js && node --check scripts/build-content.mjs && node --check src/textdiff-core.js && node --check src/textdiff-worker.js && node --check src/textdiff.js && node --check src/textdiff-report.js && node --check scripts/check-browser.mjs && node --test && node scripts/build.mjs

✔ catalogue : recherche sans accents, catégories et résultats vides (3.422751ms)
✔ adresses : chaque outil se retrouve par son URL, y compris sous un préfixe (2.470782ms)
✔ redimensionnement : proportions, portrait, paysage et absence d’agrandissement par défaut (1.037218ms)
✔ redimensionnement : valeurs invalides et dépassement de mémoire refusés (0.42606ms)
✔ images exportées : noms uniques et compatibles Windows (0.760762ms)
✔ recherche : phrases usuelles, extensions, pluriels et synonymes (4.62043ms)
✔ CBZ parcours : import, déplacement, sélection et conversion dans l’ordre visible (9.772619ms)
✔ CBZ parcours : annulation et erreur conservent le résultat précédent (6.748296ms)
✔ CBZ : erreur de préparation du téléchargement, PDF précédent conservé (11.007323ms)
✔ CBZ : une erreur tardive de l’ancien worker ne détruit pas le nouveau (1.934947ms)
✔ classement : tous les outils ont une place valide, conversions et accès images sans doublons (3.92124ms)
✔ CBZ : archive réelle, tri naturel, métadonnées ignorées et lecture bornée (20.166551ms)
✔ CBZ : PDF réel avec sélection, ordre et dimensions conservées (26.883371ms)
✔ CBZ : tailles dangereuses, formats non pris en charge et images invalides refusés (5.696617ms)
✔ CBZ : exemple JPG/PNG, ordre personnalisé vérifié par les tailles des pages PDF (64.954119ms)
✔ planche-contact : contrôleur réel, PDF produit et reprise avec le bon nom (171.921587ms)
✔ explorateur : CSV et JSON séparés, annulation, erreurs et texte non interprété (28.54094ms)
✔ worker réel : décodage Windows-1252, UTF-8 invalide et taille limite (80.896522ms)
✔ données CSV : BOM, séparateur automatique, zéros initiaux et champs cités (3.951375ms)
✔ données CSV : tabulations, sans en-têtes et noms répétés (0.614843ms)
✔ données CSV : fichiers incohérents refusés sans résultat partiel (31.739344ms)
✔ données JSON : union des champs, absence, null, objets imbriqués et clés spéciales (0.530326ms)
✔ données JSONL : lignes vides et localisation des erreurs (0.627022ms)
✔ données : aperçu borné et comptage complet (0.684538ms)
✔ données : export CSV protège les formules sans changer le schéma (0.682966ms)
✔ DjVu session : erreur et annulation conservent le PDF précédent (18.793539ms)
✔ DjVu session : annulation pendant la lecture initiale empêche de démarrer le worker (3.936022ms)
✔ DjVu : une erreur tardive de l’ancien worker ne détruit pas le nouveau (2.135678ms)
✔ DjVu : un échec de transfert libère la requête et le worker (5.458278ms)
✔ DjVu : signature, sélection ordonnée et bornes (2.700386ms)
✔ DjVu : dimensions physiques, rotations et limite avant décodage (0.534012ms)
✔ DjVu : décodage réel du document de référence fourni avec les sources (455.128227ms)
✔ DjVu : conversion refuse une qualité non prévue avant de décoder (0.711379ms)
✔ recto-verso : alternance, inversion et dernier recto isolé (21.408877ms)
✔ planche-contact : pagination A4, grilles, accents et caractères non encodables (942.575611ms)
✔ extraction CBZ : ordre, noms sûrs et octets originaux préservés (13.60141ms)
✔ navigation : accueil, catalogue filtré, URL directe et retour sans rechargement (12.214456ms)
✔ navigation : démarrage sur un outil et refus pendant un traitement (8.189571ms)
✔ navigation : recherche vide dans une catégorie, élargissement et remise à zéro (3.932517ms)
✔ aide : le guide suit l’outil sans navigation ni ouverture imposée (3.264003ms)
✔ présentation : suit les liens directs, les changements d’outil et le retour accueil (2.825053ms)
✔ clavier : le raccourci reste dans la page et conserve la route active (5.73222ms)
✔ séparation et conservation des pages (27.580627ms)
✔ fusion respecte l’ordre choisi (17.140606ms)
✔ refuse les séparations hors limites ou non entières (1.122086ms)
✔ doubles pages recadrées, rotation 0 (5.431609ms)
✔ doubles pages recadrées, rotation 90 (2.657181ms)
✔ doubles pages recadrées, rotation 180 (3.208159ms)
✔ doubles pages recadrées, rotation 270 (1.474285ms)
✔ sélection : plages, ordre de saisie, doublons et toutes (0.466831ms)
✔ sélection : entrées invalides et hors limites refusées (0.303315ms)
✔ extraction : ordre personnalisé, contenu et original conservés (1.474655ms)
✔ suppression : pages restantes dans leur ordre original (1.460233ms)
✔ suppression totale et indices invalides refusés (1.760073ms)
✔ rotation relative : sélection, angles existants et original intact (3.912477ms)
✔ ZIP : fichiers numérotés, CRC valide et une page par PDF (21.954823ms)
✔ ZIP : document à une page (2.401667ms)
✔ organisation : ordre, rotation relative, retrait et original intact (1.715697ms)
✔ images vers PDF : pages A4, taille originale et erreurs (8.682662ms)
✔ découpe réglable : vertical, rotation 0, coupe 30 %, page non sélectionnée intacte (3.292145ms)
✔ découpe réglable : vertical, rotation 90, coupe 30 %, page non sélectionnée intacte (3.521469ms)
✔ découpe réglable : vertical, rotation 180, coupe 30 %, page non sélectionnée intacte (1.624069ms)
✔ découpe réglable : vertical, rotation 270, coupe 30 %, page non sélectionnée intacte (1.491611ms)
✔ découpe réglable : horizontal, rotation 0, coupe 30 %, page non sélectionnée intacte (1.376037ms)
✔ découpe réglable : horizontal, rotation 90, coupe 30 %, page non sélectionnée intacte (1.449587ms)
✔ découpe réglable : horizontal, rotation 180, coupe 30 %, page non sélectionnée intacte (3.611985ms)
✔ découpe réglable : horizontal, rotation 270, coupe 30 %, page non sélectionnée intacte (4.763885ms)
✔ découpe réglable : options et sélections invalides refusées (0.405058ms)
✔ ZIP : arrêt quand les PDF produits cumulés dépassent le budget (2.158222ms)
✔ publication : validation de l’adresse et absence de domaine inventé (1.959143ms)
✔ configuration : priorité de l’environnement et publication sans domaine refusée (19.343996ms)
Version de test avec consigne noindex · adresse publique à configurer avant publication
Adresse publique : https://atelier.example/ · sitemap : 34 pages
✔ génération : sitemap complet, pages renseignées et 404 sans dépendance JS (170.987674ms)
✔ navigation : adresse canonique et partage suivent l’outil puis le retour accueil (0.824388ms)
✔ téléchargements : tailles lisibles, petits fichiers et nom affiché comme texte (21.645744ms)
✔ guides : le rendu HTML échappe tout le texte y compris les exemples (0.583737ms)
✔ normalisation du chemin Windows et Unix (1.076136ms)
✔ serveur : accueil et ressources accessibles, chemins externes refusés (478.914516ms)
✔ sous-titres parcours : exemple, transcription, conversion et partage de source (10.684319ms)
✔ sous-titres import : Windows-1252 et fichier invalide préservant le précédent (5.098749ms)
✔ sous-titres : un téléchargement impossible conserve le résultat déjà préparé (6.817711ms)
✔ sous-titres : une source saisie sans export ne peut être effacée ou remplacée sans accord (1.627464ms)
✔ sous-titres : une ancienne copie asynchrone ne marque pas le nouveau résultat comme sauvegardé (2.001506ms)
✔ sous-titres : lecture SRT, BOM, accents, blocs et texte continu (1.828767ms)
✔ VTT : intervenants, métadonnées et horaires courts (1.210949ms)
✔ conversion : horaires et texte conservés dans les deux sens (0.698149ms)
✔ décalage : positif, négatif, décimales françaises et conservation VTT (0.993011ms)
✔ sous-titres : aucune perte silencieuse sur des blocs invalides (0.81891ms)
✔ transcription : HTML et entités restent du texte sans exécution (0.787203ms)
✔ rapport : vue filtrée, numéros d’origine, passages séparés et sources inchangées (12.740667ms)
✔ rapport : contenu malveillant traité comme texte, aucun script ni ressource externe (0.533832ms)
✔ rapport : égalité selon options clairement distinguée, résumé sans textes (0.371298ms)
✔ rapport : lignes vides et suppressions préservent leur sens (0.254282ms)
✔ comparaison parcours : exemple, mots repérés et navigation bornée (37.445576ms)
✔ comparaison : texte HTML affiché littéralement et aucun élément créé depuis le contenu (3.458405ms)
✔ comparaison : saisie et annulation neutralisent les réponses tardives (2.461417ms)
✔ comparaison import : encodage, refus et remplacement annulé préservent le texte (4.276914ms)
✔ comparaison import : une lecture lente ne remplace jamais une saisie plus récente (3.010673ms)
✔ comparaison : inverser, refuser de vider et préserver les sources après erreur (2.277861ms)
✔ vue courte : filtrer sans recalcul, conserver la position et exporter la vue choisie (7.526966ms)
✔ résumé : copie sans textes et solution de repli si le navigateur refuse (2.801297ms)
✔ rapport : échec d’export conserve la comparaison et le précédent lien (3.74125ms)
✔ textes : ajouts, suppressions, modifications et groupes séparés (5.936418ms)
✔ textes : vide, lignes blanches, dernière fin de ligne et CRLF (0.454303ms)
✔ textes : options explicites, espaces internes, accents et ponctuation (0.594944ms)
✔ textes : chaque côté se reconstruit sans perte, même avec répétitions (10.613813ms)
✔ textes : limites refusées sans troncature et longues lignes signalées (83.430368ms)
✔ catalogue : comparer des textes se trouve dans Texte avec sa propre adresse (1.603258ms)
✔ tickets : exporter uniquement les pages cochées, avec noms uniques (1.826423ms)
✔ tickets : bloquer les exports non préparés ou incohérents (0.762005ms)
✔ tickets : grilles de 1 à 12 cadres, bornes et dispositions (1.193562ms)
✔ tickets : recadrage ramené dans les limites de la page (0.903998ms)
✔ tickets : noms de fichiers sans chemins ni caractères Windows interdits (0.206681ms)
✔ pages directes : tous les outils affichés dans le HTML avant JavaScript (115.31497ms)
✔ fusion directe : sélection multiple, commandes et exemple cohérents (4.368321ms)
✔ catalogue couvert et accueil sans présentation parasite (0.237847ms)
✔ liens directs : les options correspondent au mode partagé demandé (28.425948ms)
✔ liens PDF : action attendue dès le HTML, aucun champ perdu (20.062575ms)
✔ clavier : les liens directs sans JavaScript visent leur propre contenu (54.595236ms)
✔ sécurité : accueil et outils limitent les scripts aux fichiers locaux (52.755122ms)
✔ pages de confiance : préparation honnête sans contact inventé (1.308836ms)
✔ pages de confiance : échappement des renseignements et refus de courriels injectés (0.88573ms)
✔ publication : coordonnées incomplètes ou non relues refusées, configuration conservée (9.967872ms)
✔ parcours : conserver les PDF, choisir le document actif et retrouver la fusion (179.923506ms)
✔ parcours : fusion puis suppression puis rotation sans recharger de fichier (261.364487ms)
✔ parcours : reprendre la seconde partie après changement d’outil et ouvrir Tickets dans la même page (117.811501ms)
✔ navigation Tickets : préserver résultats, réglages et boutons propres aux tickets (94.838523ms)
✔ organisation visuelle : déplacer, tourner, exporter et conserver entre outils (100.869463ms)
✔ PDF vers images : refuser une sélection dépassant cinquante pages (47.401835ms)
✔ découpe : sélection partielle, haut/bas et position réglable dans le parcours (83.611905ms)
✔ fiabilité : import invalide et dépassement de taille conservent le document et son résultat (91.130053ms)
✔ fiabilité : annuler un remplacement puis échouer un traitement laisse les résultats disponibles (117.136129ms)
✔ fiabilité : vider les PDF libère les références sans toucher aux autres panneaux (41.95236ms)
✔ navigation données : panneaux exclusifs et PDF conservé au retour (26.014011ms)
✔ navigation DjVu : outil intégré et PDF conservé au retour (39.573085ms)
✔ navigation CBZ : conversion intégrée, panneaux exclusifs et retour PDF (46.789008ms)
✔ navigation AO17 : recto-verso et planche-contact dans la même page (12.277729ms)
✔ navigation sous-titres : trois outils intégrés, PDF source conservé (26.89235ms)
✔ résultats : un échec de création du second téléchargement conserve le lot précédent (116.774031ms)
✔ navigation Texte : outil intégré, panneaux exclusifs et sources PDF conservées (29.891872ms)
✔ continuer : un refus de navigation ne remplace pas les PDF chargés (31.861517ms)
✔ résultats : dépasser le budget de sortie préserve les téléchargements précédents (119.955237ms)
ℹ tests 141
ℹ suites 0
ℹ pass 141
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 2385.289326
Version de test avec consigne noindex · adresse publique à configurer avant publication
Site statique prêt dans dist/ · 23 adresses d’outils
