{
  "ml": {
    "v": "4",
    "fs": [
      {
        "id": 0,
        "prob": 0.2832695245742798,
        "class": 0
      }
    ],
    "prob": 0.28326952,
    "class": 0,
    "models": [
      {
        "m": "az",
        "prob": 0.28326952,
        "class": 0
      }
    ],
    "version": "v17.17",
    "thresholds": [
      0.999503,
      0.9998882
    ],
    "analyzed_at": "2026-05-26T05:27:57Z"
  },
  "path": "README.french.md",
  "raw": {
    "v": "5",
    "fs": [
      {
        "f": "O(C)Md",
        "x": 2,
        "ff": {
          "m": {
            "file": {
              "size": 193681.0,
              "entropy": 5.32,
              "size_bytes": 193681.0
            }
          },
          "s": [
            [
              4,
              "u8",
              "]: assets/images/checkbox-small-blue.png"
            ],
            [
              46,
              "u8",
              "# Bonnes pratiques Node.js"
            ],
            [
              74,
              "u8",
              "\u003ch1 align=\"center\"\u003e"
            ],
            [
              94,
              "u8",
              "\u003cimg src=\"assets/images/banner-2.jpg\" alt=\"Bonnes pratiques Node.js\"/\u003e"
            ],
            [
              167,
              "u8",
              "\u003c/h1\u003e"
            ],
            [
              174,
              "u8",
              "\u003cbr/\u003e"
            ],
            [
              181,
              "u8",
              "\u003cdiv align=\"center\"\u003e"
            ],
            [
              202,
              "u8",
              "\u003cimg src=\"https://img.shields.io/badge/"
            ],
            [
              246,
              "url",
              " Item count - 102 Best Practices-blue.svg\" alt=\"102 items\"/\u003e \u003cimg id=\"last-update-badge\" src=\"https://img.shields.io/badge/📅 "
            ],
            [
              459,
              "u8",
              "re mise"
            ],
            [
              469,
              "url",
              "jour : 14 Juillet 2021\" /\u003e \u003cimg src=\"https://img.shields.io/badge/ ✔ Updated For Version - Node 14.0.0-brightgreen.svg\" alt=\"M"
            ],
            [
              621,
              "u8",
              "jour pour Node 14.0.0\"/\u003e"
            ],
            [
              647,
              "u8",
              "\u003c/div\u003e"
            ],
            [
              662,
              "u8",
              "[![nodepractices](./assets/images/twitter-s.png)](https://twitter.com/nodepractices/) **Suivez nous sur Twitter"
            ],
            [
              775,
              "u8",
              "!** [**@nodepractices**](https://twitter.com/nodepractices/)"
            ],
            [
              844,
              "u8",
              "Lire dans une autre langue"
            ],
            [
              872,
              "u8",
              ": [![CN](./assets/flags/CN.png)**CN**](./README.chinese.md), [![FR](./assets/flags/FR.png)**FR**](./README.french.md), [![BR](./"
            ],
            [
              1454,
              "u8",
              "! )](#traductions)"
            ],
            [
              1481,
              "u8",
              "###### Construit et entretenu par notre [comit"
            ],
            [
              1529,
              "u8",
              "de pilotage](#comit"
            ],
            [
              1551,
              "u8",
              "-de-pilotage) et nos [collaborateurs](#collaborateurs)"
            ],
            [
              1607,
              "u8",
              "# Derni"
            ],
            [
              1616,
              "u8",
              "res bonnes pratiques et nouveaut"
            ],
            [
              1653,
              "u8",
              "- **![FR](./assets/flags/FR.png) Traduction fran"
            ],
            [
              1712,
              "u8",
              ":** La derni"
            ],
            [
              1726,
              "u8",
              "re traduction qui rejoint notre guide international est le fran"
            ],
            [
              1791,
              "u8",
              "ais. Bienvenue"
            ],
            [
              1819,
              "u8",
              "traduction japonaise"
            ],
            [
              1842,
              "u8",
              ":** Notre guide est d"
            ],
            [
              1865,
              "u8",
              "sormais"
            ],
            [
              1875,
              "u8",
              "galement traduit en japonais ! Avec l'aimable autorisation des extraordinaires [YukiOta](https://github.com/YukiOta) et [Yuta Az"
            ],
            [
              2063,
              "u8",
              ": Notre d"
            ],
            [
              2077,
              "u8",
              "t a re"
            ],
            [
              2085,
              "u8",
              "u la reconnaissance et la confiance de 60 100 d"
            ],
            [
              2134,
              "u8",
              "veloppeurs. Nous sommes sans voix."
            ],
            [
              2182,
              "u8",
              "# Bienvenue"
            ],
            [
              2208,
              "u8",
              "savoir avant tout"
            ],
            [
              2240,
              "u8",
              "tes en train de lire un regroupement des meilleurs articles sur Node.js. -** ce r"
            ],
            [
              2326,
              "u8",
              "rentiel est un r"
            ],
            [
              2349,
              "u8",
              "et il conserve le contenu le mieux class"
            ],
            [
              2392,
              "u8",
              "sur les bonnes pratiques Node.js, ainsi que du contenu"
            ],
            [
              2450,
              "u8",
              "crit ici par des collaborateurs"
            ],
            [
              2483,
              "u8",
              "**2. Il s'agit du plus grand assemblage d'articles et il s'agrandit chaque semaine -** actuellement, plus de 80 bonnes pratiques"
            ],
            [
              2670,
              "u8",
              "es. Nous serions ravis de vous voir contribuer ici, qu'il s'agisse de corriger des erreurs de code, d'aider aux traductions ou d"
            ],
            [
              2806,
              "u8",
              "rer de nouvelles id"
            ],
            [
              2827,
              "u8",
              "es brillantes. Consultez nos [recommandations d'"
            ],
            [
              2877,
              "u8",
              "criture](./.operations/writing-guidelines.french.md)"
            ],
            [
              2931,
              "u8",
              "**3. Les bonnes pratiques contiennent des informations suppl"
            ],
            [
              2993,
              "u8",
              "mentaires -** la plupart des points ont un lien **"
            ],
            [
              3047,
              "u8",
              "Plus d'infos** qui d"
            ],
            [
              3069,
              "u8",
              "veloppe la bonne pratique avec des exemples de code, des citations venant de pages s"
            ],
            [
              3155,
              "u8",
              "lectionn"
            ],
            [
              3165,
              "u8",
              "es et plus encore."
            ],
            [
              3197,
              "u8",
              "## Table des mati"
            ],
            [
              3221,
              "u8",
              "1. [Structure de projet (5)](#1-structure-de-projet)"
            ],
            [
              3274,
              "u8",
              "2. [Gestion des erreurs (12) ](#2-gestion-des-erreurs)"
            ],
            [
              3329,
              "u8",
              "3. [Style du code (12) ](#3-style-du-code)"
            ],
            [
              3372,
              "u8",
              "4. [Tests et pratiques g"
            ],
            [
              3401,
              "u8",
              "rales de qualit"
            ],
            [
              3418,
              "u8",
              "(13) ](#4-tests-et-pratiques-g"
            ],
            [
              3454,
              "u8",
              "rales-de-qualit"
            ],
            [
              3473,
              "u8",
              "5. [Pratiques de mise en production (19) ](#5-pratiques-de-mise-en-production)"
            ],
            [
              3559,
              "u8",
              "curit"
            ],
            [
              3566,
              "u8",
              "(25)](#6-bonnes-pratiques-de-s"
            ],
            [
              3608,
              "u8",
              "7. [Performance (2) (Travail en cours"
            ],
            [
              3652,
              "u8",
              ")](#7-brouillon-bonnes-pratiques-de-performance)"
            ],
            [
              3701,
              "u8",
              "8. [Pratiques de Docker (15)](#8-bonnes-pratiques-de-docker)"
            ],
            [
              3775,
              "u8",
              "# `1. Structure de projet`"
            ],
            [
              3811,
              "u8",
              "] 1.1 Organisez votre projet en composants"
            ],
            [
              3864,
              "u8",
              ":** Le pire obstacle des"
            ],
            [
              3891,
              "u8",
              "normes applications est la maintenance d'une base de code immense contenant des centaines de d"
            ],
            [
              3987,
              "u8",
              "pendances - un tel monolithe ralentit les d"
            ],
            [
              4032,
              "u8",
              "veloppeurs tentant d'ajouter de nouvelles fonctionnalit"
            ],
            [
              4089,
              "u8",
              "s. Pour"
            ],
            [
              4099,
              "u8",
              "viter cela, r"
            ],
            [
              4114,
              "u8",
              "partissez votre code en composants, chacun dans son dossier avec son code d"
            ],
            [
              4195,
              "u8",
              ", et assurez vous que chaque unit"
            ],
            [
              4230,
              "u8",
              "soit courte et simple. Visitez le lien"
            ],
            [
              4274,
              "u8",
              "Plus d'infos"
            ],
            [
              4290,
              "u8",
              "plus bas pour voir des exemples de structure de projet correcte."
            ],
            [
              4357,
              "u8",
              "**Autrement"
            ],
            [
              4370,
              "u8",
              ":** Lorsque les d"
            ],
            [
              4389,
              "u8",
              "veloppeurs qui codent de nouvelles fonctionnalit"
            ],
            [
              4439,
              "u8",
              "s ont du mal"
            ],
            [
              4458,
              "u8",
              "aliser l'impact de leur changement et craignent de casser d'autres composants d"
            ],
            [
              4539,
              "u8",
              "pendants - les d"
            ],
            [
              4557,
              "u8",
              "ploiements deviennent plus lents et plus risqu"
            ],
            [
              4605,
              "u8",
              "s. Il est aussi consid"
            ],
            [
              4632,
              "u8",
              "plus difficile d'"
            ],
            [
              4652,
              "u8",
              "largir un mod"
            ],
            [
              4667,
              "u8",
              "le d'application quand les unit"
            ],
            [
              4706,
              "u8",
              "rationnelles ne sont pas s"
            ],
            [
              4748,
              "u8",
              "[**Plus d'infos"
            ],
            [
              4766,
              "u8",
              ": organisez en composants**](./sections/projectstructre/breakintcomponents.french.md)"
            ],
            [
              4873,
              "u8",
              "] 1.2 Organisez vos composants en strates, gardez la couche web"
            ],
            [
              4947,
              "u8",
              "rieur de son p"
            ],
            [
              4982,
              "u8",
              ":** Chaque composant devrait contenir des"
            ],
            [
              5028,
              "u8",
              "strates"
            ],
            [
              5039,
              "u8",
              "- un objet d"
            ],
            [
              5058,
              "u8",
              "pour le web, un pour la logique et un pour le code d'acc"
            ],
            [
              5117,
              "u8",
              "s aux donn"
            ],
            [
              5129,
              "u8",
              "es. Cela permet non seulement de s"
            ],
            [
              5165,
              "u8",
              "parer clairement les responsabilit"
            ],
            [
              5201,
              "u8",
              "s mais permet aussi de simuler et de tester le syst"
            ],
            [
              5254,
              "u8",
              "me de mani"
            ],
            [
              5266,
              "u8",
              "re plus simple. Bien qu'il s'agisse d'un mod"
            ],
            [
              5312,
              "u8",
              "le tr"
            ],
            [
              5319,
              "u8",
              "s courant, les d"
            ],
            [
              5337,
              "u8",
              "veloppeurs d'API ont tendance"
            ],
            [
              5373,
              "u8",
              "langer les strates en passant l'objet d"
            ],
            [
              5418,
              "u8",
              "au web (Par exemple Express req, res)"
            ],
            [
              5459,
              "u8",
              "la logique op"
            ],
            [
              5475,
              "u8",
              "rationnelle et aux strates de donn"
            ],
            [
              5511,
              "u8",
              "es - cela rend l'application d"
            ],
            [
              5543,
              "u8",
              "pendante et accessible seulement par les frameworks web sp"
            ],
            [
              5603,
              "u8",
              "cifiques."
            ],
            [
              5664,
              "u8",
              "clencheurs des files d'attente de messages et etc ne peuvent pas acc"
            ],
            [
              5740,
              "u8",
              "une application qui m"
            ],
            [
              5764,
              "u8",
              "lange les objets web avec les autres strates."
            ],
            [
              5833,
              "u8",
              ": organisez en strates votre app**](./sections/projectstructre/createlayers.french.md)"
            ],
            [
              5941,
              "u8",
              "] 1.3 Externalisez les utilitaires communs en paquets NPM"
            ],
            [
              6009,
              "u8",
              ":** Dans une grande appli rassemblant de nombreuses lignes de codes, les utilitaires op"
            ],
            [
              6098,
              "u8",
              "rant sur toutes les strates comme un logger, l'encryption et autres, devraient"
            ],
            [
              6179,
              "u8",
              "tre inclus dans le code et expos"
            ],
            [
              6213,
              "u8",
              "s en tant que paquets NPM priv"
            ],
            [
              6245,
              "u8",
              "s. Cela permet leur partage au sein de plusieurs projets."
            ],
            [
              6317,
              "u8",
              ":** Vous devrez inventer votre propre roue de d"
            ],
            [
              6366,
              "u8",
              "ploiement et de d"
            ],
            [
              6385,
              "u8",
              "pendance"
            ],
            [
              6417,
              "u8",
              ": organisez par fonction**](./sections/projectstructre/wraputilities.french.md)"
            ],
            [
              6527,
              "u8",
              "parez Express 'app' et 'server'"
            ],
            [
              6569,
              "u8",
              ":** Evitez la sale habitude de d"
            ],
            [
              6603,
              "u8",
              "finir l'appli [Express](https://expressjs.com/) toute enti"
            ],
            [
              6663,
              "u8",
              "re dans un seul fichier immense - s"
            ],
            [
              6700,
              "u8",
              "parez la d"
            ],
            [
              6712,
              "u8",
              "finition de votre 'Express' en au moins deux fichiers : la d"
            ],
            [
              6774,
              "u8",
              "claration de l'API (app.js) et les responsabilit"
            ],
            [
              6824,
              "u8",
              "s de gestion de r"
            ],
            [
              6843,
              "u8",
              "seau (WWW). Pour une structure encore plus pouss"
            ],
            [
              6893,
              "u8",
              "e, localisez la d"
            ],
            [
              6912,
              "u8",
              "claration de l'API dans les composants."
            ],
            [
              6966,
              "u8",
              ":** Votre API sera seulement accessible aux tests par le biais d'appels HTTP (plus lent et plus difficile de g"
            ],
            [
              7081,
              "u8",
              "rer des rapports de couverture). Cela ne sera pas un r"
            ],
            [
              7137,
              "u8",
              "el plaisir de maintenir des centaines de lignes de code dans un fichier unique."
            ],
            [
              7245,
              "u8",
              "parez Express 'app' et 'server'**](./sections/projectstructre/separateexpress.french.md)"
            ],
            [
              7355,
              "u8",
              "] 1.5 Utilisez une configuration respectueuse de l'environnement, s"
            ],
            [
              7424,
              "u8",
              "curis"
            ],
            [
              7431,
              "u8",
              "e et hi"
            ],
            [
              7440,
              "u8",
              "rarchique"
            ],
            [
              7460,
              "u8",
              ":** La mise en place d'une configuration parfaite et sans faille doit garantir que (a) les cl"
            ],
            [
              7555,
              "u8",
              "s peuvent"
            ],
            [
              7567,
              "u8",
              "tre lues depuis un fichier ET"
            ],
            [
              7599,
              "u8",
              "partir de la variable d'environnement (b) les secrets sont conserv"
            ],
            [
              7668,
              "u8",
              "s hors du code source (c) la configuration est hi"
            ],
            [
              7719,
              "u8",
              "rarchique pour une recherche plus simple. Certains paquets peuvent g"
            ],
            [
              7789,
              "u8",
              "rer la plupart de ces points comme [rc](https://www.npmjs.com/package/rc), [nconf](https://www.npmjs.com/package/nconf), [config"
            ],
            [
              8024,
              "u8",
              ":** Ne pas se soucier de ces exigences de configuration ne fera que ralentir l'"
            ],
            [
              8105,
              "u8",
              "quipe de d"
            ],
            [
              8117,
              "u8",
              "veloppement ou l'"
            ],
            [
              8136,
              "u8",
              "quipe de DevOps. Probablement les deux."
            ],
            [
              8199,
              "u8",
              ": bonnes pratiques de configuration**](./sections/projectstructre/configguide.french.md)"
            ],
            [
              8289,
              "u8",
              "\u003cbr/\u003e\u003cbr/\u003e\u003cbr/\u003e"
            ],
            [
              8306,
              "u8",
              "\u003cp align=\"right\"\u003e\u003ca href=\"#table-des-mati"
            ],
            [
              8357,
              "u8",
              "Retourner en haut de la page\u003c/a\u003e\u003c/p\u003e"
            ],
            [
              8396,
              "u8",
              "# `2. Gestion des erreurs`"
            ],
            [
              8432,
              "u8",
              "] 2.1 Utilisez Async-Await ou les promesses pour le traitement des erreurs asynchrones"
            ],
            [
              8536,
              "u8",
              "rer les erreurs asynchrone avec le style fonction de rappel est probablement le chemin le plus rapide vers l'enfer (ou la [pyram"
            ],
            [
              8677,
              "url",
              "e](https://fr.wikipedia.org/wiki/Pyramide_condamnée)). Le meilleur cadeau que vous puissiez faire"
            ],
            [
              8782,
              "u8",
              "votre code est d'utiliser une biblioth"
            ],
            [
              8823,
              "u8",
              "que de promesses r"
            ],
            [
              8848,
              "u8",
              "e ou async-await"
            ],
            [
              8867,
              "u8",
              "la place, ceci permet une syntaxe de code beaucoup plus compacte et famili"
            ],
            [
              8944,
              "u8",
              "re comme try-catch."
            ],
            [
              8978,
              "u8",
              ":** Le style fonction de rappel de Node.js, function(err, response), constituent une autre mani"
            ],
            [
              9082,
              "u8",
              "obtenir une solution non maintenable m"
            ],
            [
              9122,
              "u8",
              "lant gestion de l"
            ],
            [
              9142,
              "u8",
              "erreur avec du code ordinaire, des imbrications excessives et une conception bancale."
            ],
            [
              9255,
              "u8",
              "vitez les fonctions de rappel**](./sections/errorhandling/asyncerrorhandling.french.md)"
            ],
            [
              9364,
              "u8",
              "] 2.2 Utilisez uniquement l'objet int"
            ],
            [
              9407,
              "u8",
              "Error"
            ],
            [
              9424,
              "u8",
              ":** Beaucoup l"
            ],
            [
              9440,
              "u8",
              "vent des erreurs sous forme de cha"
            ],
            [
              9476,
              "u8",
              "ne ou de type personnalis"
            ],
            [
              9503,
              "u8",
              "- cela complique la logique de gestion des erreurs et l'interop"
            ],
            [
              9569,
              "u8",
              "rabilit"
            ],
            [
              9578,
              "u8",
              "entre les modules. Que vous rejetiez une promesse, leviez une exception ou"
            ],
            [
              9656,
              "u8",
              "mettiez une erreur - l'utilisation uniquement de l'objet int"
            ],
            [
              9722,
              "u8",
              "Error (ou un objet qui"
            ],
            [
              9748,
              "u8",
              "tend l'objet Error) augmentera l'uniformit"
            ],
            [
              9792,
              "u8",
              "et emp"
            ],
            [
              9801,
              "u8",
              "chera la perte d'informations. Il existe une r"
            ],
            [
              9849,
              "u8",
              "gle ESLint `no-throw-literal` qui v"
            ],
            [
              9886,
              "u8",
              "rifie strictement cela (bien qu'elle ait quelques [limitations](https://eslint.org/docs/rules/no-throw-literal) qui peuvent"
            ],
            [
              10012,
              "u8",
              "tre r"
            ],
            [
              10019,
              "u8",
              "solues en utilisant TypeScript et en d"
            ],
            [
              10059,
              "u8",
              "finissant la r"
            ],
            [
              10075,
              "u8",
              "gle `@typescript-eslint/no-throw-literal`)."
            ],
            [
              10133,
              "u8",
              ":** Lorsque vous appelez un composant, le type d'erreurs en retour"
            ],
            [
              10202,
              "u8",
              "tant incertain - cela rend la gestion des erreurs beaucoup plus difficile. Pire encore, l'utilisation de types personnalis"
            ],
            [
              10326,
              "u8",
              "s pour d"
            ],
            [
              10336,
              "u8",
              "crire des erreurs peut entra"
            ],
            [
              10366,
              "u8",
              "ner la perte d'informations d'erreurs critiques comme la trace de la pile"
            ],
            [
              10466,
              "u8",
              ": utilisez uniquement l'objet int"
            ],
            [
              10505,
              "u8",
              "Error**](./sections/errorhandling/useonlythebuiltinerror.french.md)"
            ],
            [
              10595,
              "u8",
              "] 2.3 Distinguez les erreurs op"
            ],
            [
              10628,
              "u8",
              "rationnelles des erreurs de programmation"
            ],
            [
              10680,
              "u8",
              ":** Les erreurs op"
            ],
            [
              10700,
              "u8",
              "rationnelles (par exemple, l'API a re"
            ],
            [
              10739,
              "u8",
              "u une entr"
            ],
            [
              10751,
              "u8",
              "e non valide) se rapportent"
            ],
            [
              10781,
              "u8",
              "des cas connus o"
            ],
            [
              10800,
              "u8",
              "l'impact de l'erreur est enti"
            ],
            [
              10832,
              "u8",
              "rement compris et peut"
            ],
            [
              10857,
              "u8",
              "tre g"
            ],
            [
              10867,
              "u8",
              "de mani"
            ],
            [
              10887,
              "u8",
              "chie. D'autre part, une erreur de programmation (par exemple, essayer de lire une variable non d"
            ],
            [
              10985,
              "u8",
              "finie) fait r"
            ],
            [
              11003,
              "u8",
              "rence"
            ],
            [
              11018,
              "u8",
              "checs de code inconnus qui dictent de red"
            ],
            [
              11061,
              "u8",
              "marrer l'application en douceur."
            ],
            [
              11108,
              "u8",
              ":** Vous pouvez toujours red"
            ],
            [
              11138,
              "u8",
              "marrer l'application lorsqu'une erreur appara"
            ],
            [
              11185,
              "u8",
              "t, mais pourquoi l"
            ],
            [
              11205,
              "u8",
              "cher environ 5000 utilisateurs en ligne en raison d'une erreur op"
            ],
            [
              11272,
              "u8",
              "rationnelle mineure pr"
            ],
            [
              11301,
              "u8",
              "? L'inverse n'est pas non plus id"
            ],
            [
              11336,
              "u8",
              "al - laisser l'application en place lorsqu'un probl"
            ],
            [
              11389,
              "u8",
              "me inconnu (erreur de programmation) s'est produit peut conduire"
            ],
            [
              11456,
              "u8",
              "un comportement impr"
            ],
            [
              11479,
              "u8",
              "vu. Diff"
            ],
            [
              11489,
              "u8",
              "rencier les deux permet d'agir avec tact et d'appliquer une approche"
            ],
            [
              11560,
              "u8",
              "quilibr"
            ],
            [
              11569,
              "u8",
              "e en fonction du contexte donn"
            ],
            [
              11626,
              "u8",
              ": erreur op"
            ],
            [
              11639,
              "u8",
              "rationnelle vs erreur de programmation**](./sections/errorhandling/operationalvsprogrammererror.french.md)"
            ],
            [
              11776,
              "u8",
              "rez les erreurs de mani"
            ],
            [
              11801,
              "u8",
              "re centralis"
            ],
            [
              11815,
              "u8",
              "e, pas dans un middleware"
            ],
            [
              11851,
              "u8",
              ":** Les logiques de gestion des erreurs telles que le mail"
            ],
            [
              11912,
              "u8",
              "l'administrateur et la journalisation doivent"
            ],
            [
              11961,
              "u8",
              "tre encapsul"
            ],
            [
              11975,
              "u8",
              "es dans un objet d"
            ],
            [
              11999,
              "u8",
              "et centralis"
            ],
            [
              12014,
              "u8",
              ", pour que tous les points de terminaison (par exemple, middleware Express, t"
            ],
            [
              12093,
              "u8",
              "ches cron, tests unitaires) l'appellent lorsqu'une erreur survient."
            ],
            [
              12175,
              "u8",
              ":** Ne pas traiter les erreurs dans un seul endroit entra"
            ],
            [
              12234,
              "u8",
              "nera une duplication de code et probablement des erreurs mal g"
            ],
            [
              12327,
              "u8",
              ": gestion des erreurs dans un lieu centralis"
            ],
            [
              12373,
              "u8",
              "**](./sections/errorhandling/centralizedhandling.french.md)"
            ],
            [
              12454,
              "u8",
              "] 2.5 Documentez les erreurs de l'API"
            ],
            [
              12494,
              "u8",
              "l'aide de Swagger ou GraphQL"
            ],
            [
              12534,
              "u8",
              ":** Faites savoir"
            ],
            [
              12554,
              "u8",
              "vos appelants de l'API quelles erreurs peuvent survenir en retour afin de pouvoir les traiter de mani"
            ],
            [
              12668,
              "u8",
              "chie sans planter. Pour les API RESTful, cela se fait g"
            ],
            [
              12728,
              "u8",
              "ralement avec des frameworks de documentation comme Swagger. Si vous utilisez GraphQL, vous pouvez"
            ],
            [
              12829,
              "u8",
              "galement utiliser votre sch"
            ]
          ],
          "id": "markdown"
        },
        "id": 0,
        "sz": 193681,
        "ts": [
          {
            "c": 0.7200000286102295,
            "d": "LLM instruction context",
            "e": [
              "instruction"
            ],
            "i": "micro-behaviors/data/text/llm/override::llm-instruction-context",
            "l": 1
          },
          {
            "a": "T1071",
            "c": 0.6000000238418579,
            "d": "URL with .php endpoint",
            "e": [
              "https://www.owasp.org/index.php"
            ],
            "i": "objectives/command-and-control/infrastructure/domain/tld::php-endpoint-url",
            "l": 1
          },
          {
            "c": 0.7200000286102295,
            "d": "HTML comment marker",
            "e": [
              "\u003c!--"
            ],
            "i": "micro-behaviors/data/format/html::comment",
            "l": 1
          },
          {
            "a": "T1071",
            "c": 0.75,
            "d": ".cc domain (commonly abused)",
            "e": [
              "https://bushuai.cc\""
            ],
            "i": "objectives/command-and-control/infrastructure/domain/tld::tld-cc",
            "l": 3
          },
          {
            "c": 0.8399999737739563,
            "d": "Right string trimming",
            "e": [
              "right"
            ],
            "i": "micro-behaviors/process/create/shell/lang::right-string-call",
            "l": 2
          },
          {
            "c": 0.7200000286102295,
            "d": "LLM role context",
            "e": [
              "system"
            ],
            "i": "micro-behaviors/data/text/llm/override::llm-role-context",
            "l": 1
          },
          {
            "a": "T1027.003",
            "c": 0.8999999761581421,
            "d": "JavaScript function keyword in non-code file",
            "e": [
              "function someFunction("
            ],
            "i": "objectives/anti-static/obfuscation/payload/container::js-function-in-noncode",
            "l": 1,
            "m": "B0032"
          },
          {
            "c": 0.8999999761581421,
            "d": "Encoded payload detected: url",
            "e": [
              "e](https://fr.wikipedia.org/wiki/Pyramid \u003curl\u003e",
              "\u003cimg src=\"https://img.shields.io/badge/O \u003curl\u003e",
              "jour : 14 Juillet 2021\" /\u003e \u003cimg src=\"htt \u003curl\u003e"
            ],
            "i": "metadata/encoded-payload/url",
            "l": 3
          }
        ],
        "sha": "0834a6914afbff53f41bca5c095fa5eee2dc1297d24aa0d72751bce2c9cbce3d",
        "path": "README.french.md",
        "type": "markdown"
      }
    ],
    "tv": "60d49"
  }
}