From c4de6fbe010d6e964bb9dc3676cf7e337b65811c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C3=ABl=20Bitard?= <bitard.michael@gmail.com>
Date: Wed, 8 Mar 2023 09:29:03 +0100
Subject: [PATCH] =?UTF-8?q?chore(prettier):=20ajoute=20des=20,=20=C3=A0=20?=
 =?UTF-8?q?la=20fin=20des=20tableaux=20+=20lignes=20plus=20longues=20(#434?=
 =?UTF-8?q?)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 packages/api/.ncurc.json                      |   14 +-
 packages/api/package.json                     |    5 +-
 packages/api/src/@types/geojson-rewind.d.ts   |    5 +-
 packages/api/src/@types/global.d.ts           |   10 +-
 packages/api/src/api/_format/_fields.ts       |    8 +-
 packages/api/src/api/_format/entreprises.ts   |    6 +-
 .../api/src/api/_format/etapes-types.test.ts  |   92 +-
 packages/api/src/api/_format/etapes-types.ts  |   72 +-
 .../api/src/api/_format/titres-activites.ts   |   23 +-
 .../api/src/api/_format/titres-demarches.ts   |    9 +-
 packages/api/src/api/_format/titres-etapes.ts |   37 +-
 .../api/src/api/_format/titres-sections.ts    |    2 +-
 packages/api/src/api/_format/titres.ts        |   31 +-
 .../administration.test.integration.ts        |   44 +-
 ...-permissions-demarches.test.integration.ts |  126 +-
 ...ons-permissions-etapes.test.integration.ts |  101 +-
 ...ons-permissions-titres.test.integration.ts |  166 +-
 .../api/graphql/documents.test.integration.ts |   76 +-
 .../graphql/entreprises.test.integration.ts   |  188 +-
 packages/api/src/api/graphql/resolvers.ts     |   78 +-
 .../api/graphql/resolvers/_fields-build.ts    |    3 +-
 .../api/graphql/resolvers/_ordre-update.ts    |   19 +-
 .../graphql/resolvers/_titre-activite.test.ts |   68 +-
 .../api/graphql/resolvers/_titre-activite.ts  |  129 +-
 .../api/graphql/resolvers/_titre-document.ts  |    5 +-
 .../resolvers/_titre-etape-email.test.ts      |   16 +-
 .../graphql/resolvers/_titre-etape-email.ts   |   64 +-
 .../src/api/graphql/resolvers/_titre-etape.ts |  193 +-
 .../api/graphql/resolvers/administrations.ts  |  135 +-
 .../src/api/graphql/resolvers/documents.ts    |  118 +-
 .../src/api/graphql/resolvers/entreprises.ts  |   61 +-
 .../api/src/api/graphql/resolvers/journaux.ts |   14 +-
 .../api/graphql/resolvers/metas-activites.ts  |   21 +-
 .../src/api/graphql/resolvers/metas-join.ts   |   36 +-
 .../src/api/graphql/resolvers/metas.test.ts   |  178 +-
 .../api/src/api/graphql/resolvers/metas.ts    |  159 +-
 .../api/src/api/graphql/resolvers/points.ts   |  159 +-
 .../src/api/graphql/resolvers/statistiques.ts |  140 +-
 .../api/graphql/resolvers/titre-demande.ts    |   79 +-
 .../api/graphql/resolvers/titres-activites.ts |  120 +-
 .../api/graphql/resolvers/titres-demarches.ts |  117 +-
 .../api/graphql/resolvers/titres-etapes.ts    |  464 +--
 .../api/src/api/graphql/resolvers/titres.ts   |   46 +-
 .../graphql/resolvers/utilisateurs-titres.ts  |   10 +-
 .../src/api/graphql/resolvers/utilisateurs.ts |   60 +-
 packages/api/src/api/graphql/schemas.ts       |    2 +-
 .../api/src/api/graphql/schemas/index.graphql |   75 +-
 .../titres-demarches.test.integration.ts      |  118 +-
 .../titres-etapes-creer.test.integration.ts   |  139 +-
 ...titres-etapes-modifier.test.integration.ts |  134 +-
 .../api/graphql/titres.test.integration.ts    |  223 +-
 .../graphql/utilisateurs.test.integration.ts  |   56 +-
 packages/api/src/api/rest/_convert.ts         |   14 +-
 .../api/rest/entreprises.test.integration.ts  |    7 +-
 packages/api/src/api/rest/entreprises.test.ts |   74 +-
 packages/api/src/api/rest/entreprises.ts      |  228 +-
 packages/api/src/api/rest/fichiers.ts         |   77 +-
 .../api/src/api/rest/format/entreprises.ts    |    2 +-
 .../src/api/rest/format/titres-activites.ts   |   59 +-
 .../src/api/rest/format/titres-demarches.ts   |   43 +-
 .../api/src/api/rest/format/titres.test.ts    |   13 +-
 packages/api/src/api/rest/format/titres.ts    |  150 +-
 .../api/src/api/rest/format/utilisateurs.ts   |    8 +-
 packages/api/src/api/rest/index.ts            |  111 +-
 packages/api/src/api/rest/keycloak.ts         |   19 +-
 .../api/src/api/rest/statistiques/dgtm.ts     |  163 +-
 .../api/rest/statistiques/evolution-titres.ts |   40 +-
 .../api/rest/statistiques/granulats-marins.ts |  187 +-
 .../api/src/api/rest/statistiques/guyane.ts   |  181 +-
 .../api/src/api/rest/statistiques/index.ts    |   27 +-
 .../api/rest/statistiques/metaux-metropole.ts |  360 +--
 .../api/src/api/rest/titre-contenu.test.ts    |   63 +-
 packages/api/src/api/rest/titre-contenu.ts    |   60 +-
 .../src/api/rest/titres.test.integration.ts   |   71 +-
 packages/api/src/api/rest/titres.ts           |  333 +-
 .../src/api/rest/upload.test.integration.ts   |   39 +-
 packages/api/src/api/rest/utilisateurs.ts     |   84 +-
 packages/api/src/business/_logs-update.ts     |   98 +-
 packages/api/src/business/daily.ts            |   22 +-
 .../api/src/business/entreprises-guyane.ts    |   51 +-
 packages/api/src/business/matrices.test.ts    |   60 +-
 packages/api/src/business/matrices.ts         |  462 +--
 .../processes/__mocks__/entreprises-update.ts |   56 +-
 .../__mocks__/titre-activite-props-update.ts  |   34 +-
 .../__mocks__/titre-fichiers-rename.ts        |   50 +-
 ...s-activites-statut-ids-update-activites.ts |    8 +-
 .../titres-activites-update-titres.ts         |   12 +-
 ...titres-demarches-ordre-update-demarches.ts |   36 +-
 ...itres-demarches-public-update-demarches.ts |   20 +-
 ...s-administrations-locales-update-etapes.ts |    8 +-
 .../__mocks__/titres-phases-update-titres.ts  |   77 +-
 .../__mocks__/titres-public-update-titres.ts  |   12 +-
 .../titres-statut-ids-update-titres.ts        |   24 +-
 .../processes/entreprises-update.test.ts      |   65 +-
 .../business/processes/entreprises-update.ts  |  121 +-
 .../titres-activites-props-update.test.ts     |   16 +-
 .../titres-activites-props-update.ts          |   60 +-
 .../titres-activites-relance-send.test.ts     |   26 +-
 .../titres-activites-relance-send.ts          |   39 +-
 ...titres-activites-statut-ids-update.test.ts |    7 +-
 .../titres-activites-statut-ids-update.ts     |   15 +-
 .../processes/titres-activites-update.test.ts |   39 +-
 .../processes/titres-activites-update.ts      |   68 +-
 .../titres-contenus-etapes-ids-update.test.ts |   63 +-
 .../titres-contenus-etapes-ids-update.ts      |   21 +-
 .../titres-coordonnees-update.test.ts         |   46 +-
 .../processes/titres-coordonnees-update.ts    |   19 +-
 .../processes/titres-dates-update.test.ts     |   12 +-
 .../business/processes/titres-dates-update.ts |    9 +-
 .../titres-demarches-depot-create.test.ts     |   26 +-
 .../titres-demarches-depot-create.ts          |   89 +-
 .../titres-demarches-ordre-update.test.ts     |    9 +-
 .../titres-demarches-ordre-update.ts          |   17 +-
 .../titres-demarches-public-update.test.ts    |    9 +-
 .../titres-demarches-public-update.ts         |   28 +-
 ...titres-demarches-statut-ids-update.test.ts |   28 +-
 .../titres-demarches-statut-ids-update.ts     |   16 +-
 ...pes-administrations-locales-update.test.ts |   48 +-
 ...s-etapes-administrations-locales-update.ts |  140 +-
 ...es-etapes-areas-update.test.integration.ts |  104 +-
 .../processes/titres-etapes-areas-update.ts   |  121 +-
 .../titres-etapes-heritage-contenu-update.ts  |   73 +-
 .../titres-etapes-heritage-props-update.ts    |   23 +-
 .../titres-etapes-ordre-update.test.ts        |   25 +-
 .../processes/titres-etapes-ordre-update.ts   |   35 +-
 .../processes/titres-phases-update.test.ts    |   37 +-
 .../processes/titres-phases-update.ts         |   68 +-
 .../titres-points-references-create.test.ts   |   11 +-
 .../titres-points-references-create.ts        |   14 +-
 .../titres-props-etapes-ids-update.test.ts    |   18 +-
 .../titres-props-etapes-ids-update.ts         |   36 +-
 .../processes/titres-public-update.test.ts    |    7 +-
 .../processes/titres-public-update.ts         |   15 +-
 .../processes/titres-slugs-update.test.ts     |   11 +-
 .../business/processes/titres-slugs-update.ts |    8 +-
 .../titres-statut-ids-update.test.ts          |    7 +-
 .../processes/titres-statut-ids-update.ts     |   11 +-
 .../business/rules-demarches/_utils.test.ts   |   90 +-
 .../rules-demarches/arm/oct.machine.test.ts   |  656 ++--
 .../rules-demarches/arm/oct.machine.ts        |  725 ++---
 .../rules-demarches/arm/ren-pro.test.ts       |    8 +-
 .../business/rules-demarches/arm/ren-pro.ts   |   29 +-
 .../business/rules-demarches/arm/ret.test.ts  |   85 +-
 .../src/business/rules-demarches/arm/ret.ts   |   26 +-
 .../rules-demarches/axm/oct.machine.test.ts   |  259 +-
 .../rules-demarches/axm/oct.machine.ts        |  627 ++--
 .../rules-demarches/definitions.test.ts       |   13 +-
 .../business/rules-demarches/definitions.ts   |   41 +-
 .../business/rules-demarches/etat-cycles.ts   |   32 +-
 .../rules-demarches/machine-common.test.ts    |   24 +-
 .../rules-demarches/machine-common.ts         |   46 +-
 .../rules-demarches/machine-helper.test.ts    |   78 +-
 .../rules-demarches/machine-helper.ts         |  126 +-
 .../rules-demarches/machine-test-helper.ts    |   53 +-
 .../business/rules-demarches/prm/oct.test.ts  |    8 +-
 .../src/business/rules-demarches/prm/oct.ts   |  170 +-
 .../rules-demarches/pxg/oct.machine.test.ts   |   76 +-
 .../rules-demarches/pxg/oct.machine.ts        |  501 ++-
 ...titre-activite-statut-id-find-activites.ts |    8 +-
 .../__mocks__/titre-activites-build-titres.ts |  105 +-
 .../titre-date-debut-find-demarches.ts        |   62 +-
 .../titre-date-demande-find-demarches.ts      |   26 +-
 .../titre-date-fin-find-demarches.ts          |   57 +-
 ...-demarche-date-fin-duree-find-demarches.ts |  196 +-
 .../__mocks__/titre-phases-find-demarches.ts  |   86 +-
 .../titre-prop-activites-count-activites.ts   |    2 +-
 .../titre-prop-etape-find-demarches.ts        |  226 +-
 .../__mocks__/titre-statut-id-find-titres.ts  |   62 +-
 .../titre-activite-statut-id-find.test.ts     |   26 +-
 .../rules/titre-activite-statut-id-find.ts    |   21 +-
 .../rules/titre-activites-build.test.ts       |  187 +-
 .../business/rules/titre-activites-build.ts   |  118 +-
 .../rules/titre-date-debut-find.test.ts       |   10 +-
 .../business/rules/titre-date-debut-find.ts   |   37 +-
 .../rules/titre-date-demande-find.test.ts     |    6 +-
 .../business/rules/titre-date-demande-find.ts |   12 +-
 .../rules/titre-date-fin-find.test.ts         |    7 +-
 .../src/business/rules/titre-date-fin-find.ts |    3 +-
 ...-demarche-annulation-date-fin-find.test.ts |   80 +-
 ...titre-demarche-annulation-date-fin-find.ts |   17 +-
 ...titre-demarche-date-fin-duree-find.test.ts |   92 +-
 .../titre-demarche-date-fin-duree-find.ts     |  128 +-
 .../titre-demarche-depot-demande-date-find.ts |    4 +-
 ...re-demarche-octroi-date-debut-find.test.ts |   32 +-
 .../titre-demarche-octroi-date-debut-find.ts  |   33 +-
 .../rules/titre-demarche-phase-check.test.ts  |   64 +-
 .../rules/titre-demarche-phase-check.ts       |   27 +-
 .../rules/titre-demarche-public-find.test.ts  |  522 +---
 .../rules/titre-demarche-public-find.ts       |   79 +-
 .../titre-demarche-statut-id-find.test.ts     |  346 +--
 .../rules/titre-demarche-statut-id-find.ts    |  155 +-
 .../rules/titre-etape-prop-find.test.ts       |   50 +-
 .../business/rules/titre-etape-prop-find.ts   |   19 +-
 .../rules/titre-etape-publication-check.ts    |   36 +-
 .../business/rules/titre-phases-find.test.ts  |  142 +-
 .../src/business/rules/titre-phases-find.ts   |  153 +-
 .../rules/titre-prop-etape-find.test.ts       |  202 +-
 .../business/rules/titre-prop-etape-find.ts   |  204 +-
 .../rules/titre-statut-id-find.test.ts        |   89 +-
 .../business/rules/titre-statut-id-find.ts    |   56 +-
 .../api/src/business/titre-demarche-update.ts |   30 +-
 .../api/src/business/titre-etape-update.ts    |   58 +-
 packages/api/src/business/titre-update.ts     |    2 +-
 .../__mocks__/titre-activite-type-check.ts    |   32 +-
 .../utils/__mocks__/titre-coordonnees-find.ts |    8 +-
 .../titre-demarches-asc-sort-demarches.ts     |  140 +-
 .../__mocks__/titre-valide-check-demarches.ts |    4 +-
 .../contenu-element-file-process.test.ts      |   63 +-
 .../utils/contenu-element-file-process.ts     |   76 +-
 .../api/src/business/utils/prop-value-find.ts |    5 +-
 .../utils/props-titre-etapes-ids-find.test.ts |    4 +-
 .../utils/props-titre-etapes-ids-find.ts      |   56 +-
 .../utils/titre-activite-type-check.test.ts   |   26 +-
 .../utils/titre-activite-type-check.ts        |   20 +-
 .../utils/titre-activite-valide-check.test.ts |   38 +-
 .../utils/titre-activite-valide-check.ts      |   10 +-
 .../utils/titre-coordonnees-find.test.ts      |    2 +-
 .../utils/titre-demarches-etapes-rebuild.ts   |   27 +-
 .../utils/titre-elements-sort-asc.test.ts     |   22 +-
 .../business/utils/titre-elements-sort-asc.ts |    5 +-
 ...tre-etape-demarche-etape-type-find.test.ts |   20 +-
 .../titre-etape-demarche-etape-type-find.ts   |   14 +-
 .../titre-etape-heritage-contenu-find.test.ts |  200 +-
 .../titre-etape-heritage-contenu-find.ts      |   63 +-
 .../titre-etape-heritage-props-find.test.ts   |  311 +-
 .../utils/titre-etape-heritage-props-find.ts  |  110 +-
 .../business/utils/titre-etapes-sort.test.ts  |  144 +-
 .../src/business/utils/titre-etapes-sort.ts   |   77 +-
 ...g-and-relations-update.test.integration.ts |   36 +-
 .../utils/titre-slug-and-relations-update.ts  |  161 +-
 .../business/utils/titre-valide-check.test.ts |   49 +-
 .../src/business/utils/titre-valide-check.ts  |   29 +-
 .../api/src/business/utils/urls-get.test.ts   |   30 +-
 packages/api/src/business/utils/urls-get.ts   |   20 +-
 .../__mocks__/contenu-dates-check-contenus.ts |   21 +-
 .../contenu-numbers-check-contenus.ts         |   12 +-
 .../__mocks__/titre-etape-numbers-validate.ts |   22 +-
 .../__mocks__/titre-etape-points-validate.ts  |    8 +-
 .../documents-types-validate.test.ts          |   20 +-
 .../validations/documents-types-validate.ts   |   14 +-
 .../titre-activite-complete-check.ts          |   14 +-
 .../titre-activite-deletion-validate.ts       |    4 +-
 .../titre-activite-input-validate.ts          |   15 +-
 .../titre-demarche-etat-validate.test.ts      |  100 +-
 .../titre-demarche-etat-validate.ts           |  103 +-
 .../titre-demarche-updation-validate.ts       |   14 +-
 .../titre-etape-etat-validate.test.ts         |   81 +-
 .../validations/titre-etape-etat-validate.ts  |  171 +-
 .../titre-etape-points-validate.test.ts       |   11 +-
 .../titre-etape-points-validate.ts            |   10 +-
 ...tre-etape-type-and-status-validate.test.ts |   31 +-
 .../titre-etape-type-and-status-validate.ts   |   21 +-
 .../titre-etape-updation-validate.test.ts     |  221 +-
 .../titre-etape-updation-validate.ts          |  162 +-
 .../validations/titre-links-validate.ts       |   11 +-
 .../utilisateur-updation-validate.test.ts     |  152 +-
 .../utilisateur-updation-validate.ts          |   68 +-
 .../utils/contenu-dates-check.test.ts         |   15 +-
 .../validations/utils/contenu-dates-check.ts  |    8 +-
 .../utils/contenu-numbers-check.test.ts       |   15 +-
 .../utils/contenu-numbers-check.ts            |   16 +-
 .../utils/heritage-contenu-validate.test.ts   |   75 +-
 .../utils/heritage-contenu-validate.ts        |   26 +-
 .../validations/utils/props-dates-check.ts    |    5 +-
 .../validations/utils/props-numbers-check.ts  |    4 +-
 packages/api/src/config/logger.test.ts        |    8 +-
 packages/api/src/config/logger.ts             |   35 +-
 packages/api/src/config/proj4.ts              |    7 +-
 packages/api/src/database/init.ts             |    8 +-
 .../src/database/models/_format/id-create.ts  |    3 +-
 .../models/_format/titre-etape-heritage.ts    |   12 +-
 .../activites-types--documents-types.ts       |    4 +-
 .../database/models/activites-types--pays.ts  |    4 +-
 .../models/activites-types--titres-types.ts   |    4 +-
 .../src/database/models/activites-types.ts    |   36 +-
 .../administrations-activites-types-emails.ts |    7 +-
 .../models/administrations-activites-types.ts |    4 +-
 ...ministrations-titres-types-etapes-types.ts |   36 +-
 ...nistrations-titres-types-titres-statuts.ts |   30 +-
 .../src/database/models/administrations.ts    |   30 +-
 packages/api/src/database/models/caches.ts    |    4 +-
 packages/api/src/database/models/communes.ts  |    4 +-
 .../src/database/models/demarches-types.ts    |   16 +-
 .../src/database/models/documents-types.ts    |   12 +-
 packages/api/src/database/models/documents.ts |   28 +-
 packages/api/src/database/models/domaines.ts  |   12 +-
 .../models/entreprises-etablissements.ts      |    6 +-
 .../api/src/database/models/entreprises.ts    |   34 +-
 .../etapes-types--justificatifs-types.ts      |    4 +-
 .../api/src/database/models/etapes-types.ts   |   20 +-
 packages/api/src/database/models/forets.ts    |    4 +-
 packages/api/src/database/models/journaux.ts  |   14 +-
 .../api/src/database/models/titres--titres.ts |    4 +-
 .../src/database/models/titres-activites.ts   |   47 +-
 .../src/database/models/titres-communes.ts    |    4 +-
 .../src/database/models/titres-demarches.ts   |   42 +-
 .../models/titres-etapes-justificatifs.ts     |   14 +-
 .../api/src/database/models/titres-etapes.ts  |   67 +-
 .../api/src/database/models/titres-forets.ts  |    4 +-
 .../database/models/titres-incertitudes.ts    |    4 +-
 .../api/src/database/models/titres-phases.ts  |    4 +-
 .../models/titres-points-references.ts        |   10 +-
 .../api/src/database/models/titres-points.ts  |   34 +-
 ...-types-etapes-types-justificatifs-types.ts |   24 +-
 ...res-types--demarches-types-etapes-types.ts |   31 +-
 .../src/database/models/titres-types-types.ts |   12 +-
 .../api/src/database/models/titres-types.ts   |   16 +-
 packages/api/src/database/models/titres.ts    |   65 +-
 .../database/models/utilisateurs--titres.ts   |   10 +-
 .../api/src/database/models/utilisateurs.ts   |   16 +-
 packages/api/src/database/queries/_options.ts |  110 +-
 .../src/database/queries/_titres-filters.ts   |  171 +-
 .../api/src/database/queries/_utils.test.ts   |   21 +-
 .../src/database/queries/administrations.ts   |  125 +-
 packages/api/src/database/queries/caches.ts   |    3 +-
 .../api/src/database/queries/documents.ts     |   46 +-
 .../queries/entreprises-etablissements.ts     |   29 +-
 .../api/src/database/queries/entreprises.ts   |   72 +-
 .../api/src/database/queries/graph/build.ts   |   16 +-
 .../src/database/queries/graph/fields-add.ts  |    9 +-
 .../database/queries/graph/fields-format.ts   |   30 +-
 packages/api/src/database/queries/journaux.ts |   75 +-
 .../src/database/queries/metas-activites.ts   |   10 +-
 packages/api/src/database/queries/metas.ts    |   72 +-
 .../administrations.test.integration.ts       |  100 +-
 .../queries/permissions/administrations.ts    |   94 +-
 .../permissions/documents.test.integration.ts |  164 +-
 .../database/queries/permissions/documents.ts |   87 +-
 .../queries/permissions/entreprises.ts        |   52 +-
 .../database/queries/permissions/journaux.ts  |   10 +-
 .../src/database/queries/permissions/metas.ts |   68 +-
 .../queries/permissions/titres-activites.ts   |  101 +-
 .../titres-demarches.test.integration.ts      |  213 +-
 .../queries/permissions/titres-demarches.ts   |   97 +-
 .../titres-etapes.test.integration.ts         |   12 +-
 .../queries/permissions/titres-etapes.ts      |  122 +-
 .../permissions/titres.test.integration.ts    |  363 +--
 .../database/queries/permissions/titres.ts    |  142 +-
 .../utilisateurs.test.integration.ts          |   27 +-
 .../queries/permissions/utilisateurs.ts       |   35 +-
 .../titres-activites.test.integration.ts      |   12 +-
 .../src/database/queries/titres-activites.ts  |   98 +-
 .../titres-demarches.test.integration.ts      |   10 +-
 .../src/database/queries/titres-demarches.ts  |   98 +-
 .../api/src/database/queries/titres-etapes.ts |   81 +-
 .../api/src/database/queries/titres-phases.ts |    8 +-
 .../api/src/database/queries/titres-points.ts |   24 +-
 .../api/src/database/queries/titres-titres.ts |    2 +-
 .../queries/titres.test.integration.ts        |   16 +-
 packages/api/src/database/queries/titres.ts   |   91 +-
 .../api/src/database/queries/utilisateurs.ts  |  117 +-
 packages/api/src/database/user-super.ts       |    2 +-
 .../utilisateurs-to-keycloak-format.ts        |   13 +-
 packages/api/src/index.ts                     |   23 +-
 packages/api/src/knex/config.ts               |   11 +-
 packages/api/src/knex/db-manager-config.ts    |    4 +-
 packages/api/src/knex/migrate.ts              |    8 +-
 ...211103110922_etapes_statuts_complet_add.ts |   32 +-
 ...135837_titres_etapes_incertitudes_clean.ts |   14 +-
 ...ches_statuts_travaux_finpolicemines_add.ts |    4 +-
 ...as_travaux_publi_recueil_acte_admin_add.ts |    2 +-
 ...ux_arrete_ouverture_travaux_miniers_add.ts |    8 +-
 ...211215100715_utilisateurs-camino-create.ts |    2 +-
 ..._etapes_travaux_porter_connaissance_add.ts |    8 +-
 ...0220119122515_document_type_jpa_migrate.ts |   27 +-
 .../20220127132757_etapes_types_clean.ts      |   56 +-
 ...45904_titres_activites_wrp_masse_delete.ts |    8 +-
 ...064929_titres_etapes_asl_heritage_clean.ts |    8 +-
 .../20220519123402_supprime-mid-rid.ts        |   12 +-
 .../20220609145836_fix-substances-ordre.ts    |   25 +-
 .../20220615122602_bureau-etudes-create.ts    |    5 +-
 .../20220704122231_remove-plg.ts              |    4 +-
 ...30330_demarches-types-fusion-concession.ts |    6 +-
 ...726122406_activites-fiscales-unites-fix.ts |   15 +-
 ...0220816140444_substances-ordre-required.ts |   26 +-
 ...220830145751_document-notice-impact-fix.ts |   20 +-
 ...sibilite-des-titres-stockage-souterrain.ts |    9 +-
 ...230207101630_domaine-indetermine-delete.ts |    8 +-
 .../20180521000001_domaines_types_statuts.ts  |   32 +-
 .../20180521000002_demarches_etapes.ts        |  125 +-
 .../20180521000003_unites.ts                  |    7 +-
 .../20180521000004_substances.ts              |   37 +-
 .../20180521000005_territoires.ts             |   13 +-
 .../20180521000006_calendrier.ts              |    5 +-
 .../20180521000007_metas_activites.ts         |   45 +-
 .../20180521000008_metas_travaux.ts           |   37 +-
 .../20180521000009_repertoire.ts              |  145 +-
 .../20180522000001_titres.ts                  |    7 +-
 .../20180522000002_titres_demarches_etapes.ts |   61 +-
 ...00003_titres_etapes_substances_emprises.ts |   12 +-
 ...titulaires_amodiataires_administrations.ts |   63 +-
 .../20180522000005_titres_etapes_points.ts    |   17 +-
 ...0180522000006_titres_etapes_territoires.ts |   21 +-
 .../20180522000009_titres_references.ts       |   12 +-
 .../20181106000002_titres_activites.ts        |   19 +-
 .../20181106000004_titres_travaux.ts          |   26 +-
 .../20181106000006_documents.ts               |   47 +-
 .../20210930103844_titres_administrations.ts  |   16 +-
 ...strations-activites-types-emails-create.ts |   28 +-
 .../20211027103109_logs_column_titreId_add.ts |    6 +-
 .../20211110153616_sdom-zones-create.ts       |   15 +-
 ...211123162004_utilisateurs-titres_create.ts |    9 +-
 ...609145846_fix-substances-ordre-required.ts |    8 +-
 ...604_utilisateurs-administrations-delete.ts |   13 +-
 .../20220816143105_substances-delete.ts       |   31 +-
 .../20220825083849_territoires-create.ts      |   24 +-
 ..._deplace-donnees-postgis-hors-objection.ts |   12 +-
 ...bstances-dune-etapes-ne-sont-jamais-nul.ts |   12 +-
 .../20220907070928_supprime-titres-statuts.ts |   24 +-
 .../20221004061444_references-delete.ts       |   17 +-
 .../20221012121906_add-facades-maritimes.ts   |   16 +-
 .../20221017122409_tde-static.ts              |    8 +-
 ...033_administrations-titres-types-delete.ts |    3 +-
 ...021121056_delete-titres-administrations.ts |    4 +-
 ...01154720_mot-de-passe-remove-constraint.ts |    4 +-
 packages/api/src/knex/seeding.ts              |   50 +-
 packages/api/src/knex/seeds/03-metas.ts       |    9 +-
 .../api/src/knex/seeds/08-autorisations.ts    |    2 +-
 packages/api/src/knex/user-add.ts             |    5 +-
 .../api/src/scripts/administrations-update.ts |   13 +-
 packages/api/src/scripts/daily.ts             |    6 +-
 .../api/src/scripts/entreprises-guyane.ts     |   11 +-
 packages/api/src/scripts/monthly.ts           |    6 +-
 packages/api/src/server/auth-basic.ts         |   20 +-
 packages/api/src/server/auth-jwt.ts           |    2 +-
 packages/api/src/server/connected-catcher.ts  |   11 +-
 packages/api/src/server/graphql.ts            |    4 +-
 packages/api/src/server/rest.ts               |  202 +-
 packages/api/src/server/upload.ts             |    8 +-
 packages/api/src/server/user-loader.ts        |   26 +-
 packages/api/src/tools/annees-build.test.ts   |    4 +-
 packages/api/src/tools/annees-build.ts        |    4 +-
 .../src/tools/api-administrations/index.ts    |   49 +-
 .../definitions/categories-juridiques.ts      |  522 ++--
 .../src/tools/api-insee/definitions/pays.ts   |  472 +--
 .../src/tools/api-insee/definitions/voies.ts  |   86 +-
 .../api/src/tools/api-insee/fetch.test.ts     |    4 +-
 packages/api/src/tools/api-insee/fetch.ts     |  127 +-
 packages/api/src/tools/api-insee/format.ts    |  119 +-
 packages/api/src/tools/api-insee/index.ts     |   12 +-
 packages/api/src/tools/api-insee/types.ts     |   10 +-
 packages/api/src/tools/api-mailjet/emails.ts  |   41 +-
 packages/api/src/tools/api-mailjet/index.ts   |    2 +-
 .../api/src/tools/api-mailjet/newsletter.ts   |   69 +-
 packages/api/src/tools/api-mailjet/types.ts   |    4 +-
 packages/api/src/tools/api-matomo/index.ts    |  100 +-
 packages/api/src/tools/api-openfisca/index.ts |   93 +-
 .../api/src/tools/database-to-json/tables.ts  |   25 +-
 .../src/tools/demarches/definitions-check.ts  |   70 +-
 .../src/tools/demarches/etape-statut-check.ts |   22 +-
 packages/api/src/tools/demarches/tde-check.ts |   21 +-
 .../api/src/tools/demarches/tests-creation.ts |   64 +-
 packages/api/src/tools/documents/_utils.ts    |    6 +-
 packages/api/src/tools/documents/clean.ts     |    5 +-
 .../src/tools/documents/document-path-find.ts |    8 +-
 .../documents/document-repertoire-find.ts     |    4 +-
 .../tools/documents/documents-files-check.ts  |   17 +-
 .../tools/documents/files-document-check.ts   |   70 +-
 .../tools/documents/files-index-build.test.ts |    2 +-
 .../src/tools/documents/files-index-build.ts  |    4 +-
 .../tools/documents/files-path-check.test.ts  |   12 +-
 .../src/tools/documents/files-path-check.ts   |   21 +-
 packages/api/src/tools/email-check.ts         |    3 +-
 packages/api/src/tools/file-create.test.ts    |    4 +-
 packages/api/src/tools/file-rename.test.ts    |    4 +-
 packages/api/src/tools/file-rename.ts         |    4 +-
 packages/api/src/tools/geo-convert.test.ts    |   15 +-
 packages/api/src/tools/geo-convert.ts         |   10 +-
 packages/api/src/tools/geojson.ts             |   96 +-
 packages/api/src/tools/index.test.ts          |   10 +-
 packages/api/src/tools/index.ts               |   11 +-
 packages/api/src/tools/matomo.ts              |   10 +-
 packages/api/src/tools/territoires-update.ts  |  108 +-
 packages/api/src/types.ts                     |   94 +-
 .../api/tests/__mocks__/fetch-insee-api.ts    |   41 +-
 .../_utils/administrations-permissions.ts     |  179 +-
 packages/api/tests/_utils/index.ts            |   37 +-
 packages/api/tests/db-manager.ts              |   17 +-
 ...ion-titre-type-etape-type-modifier.graphql |    8 +-
 ...n-titre-type-titre-statut-modifier.graphql |    8 +-
 .../api/tests/queries/utilisateurs.graphql    |   12 +-
 packages/api/tests/vitestSetup.ts             |    6 +-
 packages/api/vitest.integration.config.ts     |    4 +-
 packages/api/vitest.unit.config.ts            |    4 +-
 packages/common/package.json                  |    2 +-
 packages/common/src/date.test.ts              |   10 +-
 packages/common/src/fiscalite.test.ts         |    6 +-
 packages/common/src/number.ts                 |    2 +-
 .../common/src/permissions/activites.test.ts  |   22 +-
 .../src/permissions/administrations.test.ts   |   18 +-
 .../src/permissions/entreprises.test.ts       |   42 +-
 .../src/permissions/titres-demarches.test.ts  |    8 +-
 .../src/permissions/titres-etapes.test.ts     |   36 +-
 .../common/src/permissions/titres.test.ts     |    2 +-
 .../src/permissions/utilisateurs.test.ts      |    2 +-
 packages/common/src/rest.ts                   |    2 +-
 packages/common/src/roles.test.ts             |   14 +-
 .../common/src/static/activitesStatuts.ts     |   12 +-
 packages/common/src/static/activitesTypes.ts  |  626 ++--
 packages/common/src/static/administrations.ts |  282 +-
 .../src/static/administrationsTitresTypes.ts  |   36 +-
 .../administrationsTitresTypesEtapesTypes.ts  |   72 +-
 ...administrationsTitresTypesTitresStatuts.ts |   50 +-
 .../common/src/static/demarchesStatuts.ts     |   26 +-
 packages/common/src/static/demarchesTypes.ts  |   54 +-
 packages/common/src/static/departement.ts     |    4 +-
 packages/common/src/static/devise.ts          |    4 +-
 packages/common/src/static/documentsTypes.ts  |    4 +-
 packages/common/src/static/domaines.ts        |   20 +-
 packages/common/src/static/etapesStatuts.ts   |   40 +-
 packages/common/src/static/etapesTypes.ts     |  317 +-
 .../src/static/etapesTypesEtapesStatuts.ts    |  138 +-
 packages/common/src/static/facades.ts         |   12 +-
 packages/common/src/static/frequence.ts       |   10 +-
 packages/common/src/static/geoSystemes.ts     |   50 +-
 packages/common/src/static/pays.ts            |    4 +-
 packages/common/src/static/phasesStatuts.ts   |    8 +-
 packages/common/src/static/referencesTypes.ts |    4 +-
 packages/common/src/static/region.ts          |    4 +-
 packages/common/src/static/sdom.ts            |   12 +-
 .../common/src/static/substancesFiscales.ts   |  114 +-
 .../common/src/static/substancesLegales.ts    |  216 +-
 packages/common/src/static/titresStatuts.ts   |   16 +-
 packages/common/src/static/titresTypes.ts     |    4 +-
 .../src/static/titresTypesDemarchesTypes.ts   |   46 +-
 .../common/src/static/titresTypesTypes.ts     |   20 +-
 .../documents.ts                              |   66 +-
 .../index.ts                                  |  494 +--
 .../sections.ts                               |  371 +--
 .../static/titresTypes_titresStatuts.test.ts  |   18 +-
 .../src/static/titresTypes_titresStatuts.ts   |    6 +-
 packages/common/src/static/unites.ts          |    4 +-
 packages/common/src/statistiques.ts           |    2 +-
 packages/common/src/tests-utils.ts            |    2 +-
 packages/ui/package.json                      |    3 +-
 .../src/__snapshots__/storybook.spec.ts.snap  |   44 +-
 packages/ui/src/api/_client.js                |   31 +-
 packages/ui/src/api/_client.test.js           |    4 +-
 packages/ui/src/api/_upload.js                |    6 +-
 packages/ui/src/api/api-client.ts             |   28 +-
 packages/ui/src/api/client-rest.test.ts       |    4 +-
 packages/ui/src/api/client-rest.ts            |   50 +-
 packages/ui/src/api/entreprises.js            |   18 +-
 packages/ui/src/api/fragments/entreprises.js  |    7 +-
 packages/ui/src/api/fragments/geojson.js      |    7 +-
 .../ui/src/api/fragments/metas-activites.js   |    6 +-
 packages/ui/src/api/fragments/metas.js        |    2 +-
 packages/ui/src/api/fragments/titre.js        |   13 +-
 packages/ui/src/api/geojson.js                |   37 +-
 packages/ui/src/api/journaux.js               |   14 +-
 packages/ui/src/api/metas-activites.js        |   13 +-
 packages/ui/src/api/metas.js                  |    4 +-
 packages/ui/src/api/titres-activites.js       |    8 +-
 packages/ui/src/api/titres-etapes.js          |   29 +-
 packages/ui/src/api/titres.js                 |   20 +-
 packages/ui/src/api/utilisateurs.js           |   12 +-
 packages/ui/src/app.vue                       |   15 +-
 .../components/_charts/chart-with-export.tsx  |   11 +-
 .../components/_charts/configurable-chart.tsx |   24 +-
 packages/ui/src/components/_charts/utils.ts   |    2 +-
 .../components/_common/coordonnees-icone.vue  |    4 +-
 .../src/components/_common/depose-popup.vue   |    9 +-
 .../src/components/_common/domaine.stories.ts |   13 +-
 .../ui/src/components/_common/download.tsx    |    2 +-
 .../ui/src/components/_common/downloads.tsx   |    2 +-
 .../ui/src/components/_common/filtres.vue     |   30 +-
 .../_common/filtres/domaine.stories.tsx       |    2 +-
 .../_common/filtres/statuts.stories.tsx       |    9 +-
 .../components/_common/filtres/statuts.tsx    |    8 +-
 .../_common/filtres/types.stories.tsx         |   13 +-
 .../src/components/_common/filtres/types.tsx  |    6 +-
 packages/ui/src/components/_common/liste.vue  |   24 +-
 packages/ui/src/components/_common/map.tsx    |   50 +-
 .../_common/new-section-element.stories.tsx   |   22 +-
 .../_common/new-section-element.tsx           |   25 +-
 .../_common/new-section.stories.tsx           |   16 +-
 .../ui/src/components/_common/new-section.tsx |   24 +-
 packages/ui/src/components/_common/nom.vue    |    4 +-
 .../components/_common/perimetre.stories.tsx  |   53 +-
 .../ui/src/components/_common/perimetre.tsx   |   28 +-
 packages/ui/src/components/_common/pills.vue  |    4 +-
 .../components/_common/point-reference.vue    |   13 +-
 packages/ui/src/components/_common/points.vue |   70 +-
 .../_common/pure-downloads.stories.tsx        |   10 +-
 .../src/components/_common/pure-downloads.tsx |    2 +-
 .../_common/section-element-edit.vue          |   34 +-
 .../_common/section-element-file-edit.vue     |   29 +-
 .../_common/section-element-input-edit.vue    |  101 +-
 .../_common/section-element.stories.ts        |   16 +-
 .../components/_common/section-element.vue    |   28 +-
 .../ui/src/components/_common/section.vue     |   21 +-
 .../src/components/_common/sections-edit.vue  |   30 +-
 .../src/components/_common/statut.stories.ts  |    8 +-
 packages/ui/src/components/_common/statut.tsx |    6 +-
 .../ui/src/components/_common/titre-nom.vue   |    4 +-
 .../_common/titre-type-select.stories.ts      |   12 +-
 .../components/_common/titre-type-select.tsx  |   76 +-
 .../_common/titre-type-type-nom.vue           |    4 +-
 packages/ui/src/components/_map/index.tsx     |  152 +-
 packages/ui/src/components/_map/leaflet.ts    |   39 +-
 packages/ui/src/components/_map/pattern.tsx   |   32 +-
 packages/ui/src/components/_ui/accordion.vue  |   28 +-
 .../ui/src/components/_ui/chip.stories.ts     |   10 +-
 packages/ui/src/components/_ui/chip.tsx       |    5 +-
 .../ui/src/components/_ui/date.stories.ts     |    8 +-
 .../src/components/_ui/dropdown.stories.tsx   |   19 +-
 packages/ui/src/components/_ui/dropdown.tsx   |   15 +-
 .../src/components/_ui/filters-checkboxes.tsx |   62 +-
 .../filters-input-autocomplete.stories.tsx    |    8 +-
 .../_ui/filters-input-autocomplete.tsx        |   19 +-
 .../ui/src/components/_ui/filters-input.tsx   |    7 +-
 .../ui/src/components/_ui/filters-selects.tsx |   16 +-
 packages/ui/src/components/_ui/filters.vue    |   95 +-
 .../_ui/functional-loader.stories.tsx         |    7 +-
 .../src/components/_ui/functional-loader.tsx  |   17 +-
 .../_ui/functional-popup.stories.tsx          |   12 +-
 .../src/components/_ui/functional-popup.tsx   |   29 +-
 .../components/_ui/help-tooltip.stories.ts    |    9 +-
 .../ui/src/components/_ui/help-tooltip.tsx    |    5 +-
 .../ui/src/components/_ui/icon.stories.ts     |   13 +-
 packages/ui/src/components/_ui/iconSprite.tsx |   19 +-
 .../ui/src/components/_ui/iconSpriteType.ts   |    2 +-
 .../src/components/_ui/input-date.stories.tsx |    9 +-
 packages/ui/src/components/_ui/input-date.tsx |   53 +-
 packages/ui/src/components/_ui/input-file.vue |   13 +-
 .../ui/src/components/_ui/input-number.vue    |   12 +-
 packages/ui/src/components/_ui/list.vue       |    8 +-
 packages/ui/src/components/_ui/messages.tsx   |    2 +-
 .../ui/src/components/_ui/pill.stories.ts     |    8 +-
 packages/ui/src/components/_ui/pill.tsx       |    4 +-
 packages/ui/src/components/_ui/popup.vue      |    6 +-
 .../src/components/_ui/pure-loader.stories.ts |    4 +-
 .../ui/src/components/_ui/pure-loader.vue     |    9 +-
 .../src/components/_ui/table-auto.stories.tsx |   50 +-
 packages/ui/src/components/_ui/table-auto.tsx |   14 +-
 .../_ui/table-pagination.stories.tsx          |   49 +-
 .../src/components/_ui/table-pagination.tsx   |   76 +-
 .../ui/src/components/_ui/table.stories.tsx   |   48 +-
 packages/ui/src/components/_ui/table.tsx      |   57 +-
 .../ui/src/components/_ui/tag.stories.tsx     |    2 +-
 .../src/components/_ui/typeahead.stories.tsx  |   14 +-
 packages/ui/src/components/_ui/typeahead.tsx  |  101 +-
 .../ui/src/components/activite-edition.vue    |   89 +-
 packages/ui/src/components/activite.vue       |   21 +-
 .../ui/src/components/activite/button.vue     |   23 +-
 .../src/components/activite/depose-popup.vue  |    2 +-
 .../components/activite/preview.stories.ts    |   24 +-
 .../ui/src/components/activite/preview.vue    |   74 +-
 .../src/components/activite/remove-popup.vue  |   28 +-
 packages/ui/src/components/activites.vue      |   18 +-
 .../ui/src/components/activites/filtres.js    |   24 +-
 packages/ui/src/components/activites/list.vue |   16 +-
 packages/ui/src/components/activites/table.js |   26 +-
 .../src/components/administration.stories.tsx |   28 +-
 packages/ui/src/components/administration.tsx |   97 +-
 .../activites-types-emails.stories.tsx        |   60 +-
 .../administration/activites-types-emails.tsx |   94 +-
 .../administration-api-client.ts              |   36 +-
 .../administration/permissions.stories.tsx    |    8 +-
 .../administration/permissions.stub.ts        |   20 +-
 .../components/administration/permissions.tsx |  169 +-
 .../administration/titres-types.stories.tsx   |    8 +-
 .../administration/titres-types.tsx           |   32 +-
 .../components/administrations.stories.tsx    |    2 +-
 .../ui/src/components/administrations.tsx     |   64 +-
 packages/ui/src/components/content/about.vue  |  206 +-
 packages/ui/src/components/dashboard.tsx      |   41 +-
 .../dashboard/dgtm-stats-full.stories.tsx     |   20 +-
 .../components/dashboard/dgtm-stats-full.tsx  |   25 +-
 .../ui/src/components/dashboard/dgtm-stats.ts |  335 +-
 .../dashboard/pure-dgtm-stats.stories.tsx     |   20 +-
 .../components/dashboard/pure-dgtm-stats.tsx  |   25 +-
 .../pure-dreal-dashboard.stories.tsx          |   24 +-
 .../dashboard/pure-dreal-dashboard.tsx        |   91 +-
 .../pure-entreprise-dashboard.stories.tsx     |   48 +-
 .../dashboard/pure-entreprise-dashboard.tsx   |   67 +-
 .../dashboard/pure-onf-dashboard.stories.ts   |   49 +-
 .../dashboard/pure-onf-dashboard.tsx          |   82 +-
 .../dashboard/pure-ptmg-dashboard.stories.tsx |   52 +-
 .../dashboard/pure-ptmg-dashboard.tsx         |   61 +-
 .../ui/src/components/dashboard/testData.ts   |  214 +-
 packages/ui/src/components/demarches.vue      |    2 +-
 .../demarches/filtres-custom-etapes.vue       |   40 +-
 .../ui/src/components/demarches/filtres.js    |   28 +-
 packages/ui/src/components/demarches/page.vue |   33 +-
 packages/ui/src/components/demarches/table.js |   38 +-
 .../ui/src/components/document/button-add.vue |   12 +-
 .../ui/src/components/document/edit-popup.vue |   59 +-
 .../ui/src/components/document/multi-edit.vue |   25 +-
 .../src/components/document/remove-popup.vue  |   36 +-
 .../src/components/document/sections-edit.vue |  103 +-
 packages/ui/src/components/documents/list.vue |    6 +-
 packages/ui/src/components/documents/tr.vue   |   92 +-
 .../ui/src/components/entreprise.stories.tsx  |  104 +-
 packages/ui/src/components/entreprise.tsx     |  174 +-
 .../src/components/entreprise/add-popup.vue   |   36 +-
 .../src/components/entreprise/edit-popup.vue  |   41 +-
 .../pure-entreprise-fiscalite.stories.ts      |   24 +-
 .../entreprise/pure-entreprise-fiscalite.vue  |   70 +-
 packages/ui/src/components/entreprises.vue    |   40 +-
 .../ui/src/components/entreprises/filtres.js  |    4 +-
 .../ui/src/components/entreprises/table.js    |   12 +-
 packages/ui/src/components/error.stories.ts   |   24 +-
 packages/ui/src/components/etape-edition.vue  |  116 +-
 packages/ui/src/components/etape.vue          |   15 +-
 .../ui/src/components/etape/accordion.vue     |   14 +-
 .../etape/autocomplete-entreprise.stories.ts  |   27 +-
 .../etape/autocomplete-entreprise.vue         |   33 +-
 .../ui/src/components/etape/date-edit.tsx     |   17 +-
 .../etape/decisions-annexes-edit.vue          |    4 +-
 packages/ui/src/components/etape/edit.vue     |  114 +-
 .../etape/fondamentales-edit.stories.ts       |   78 +-
 .../components/etape/fondamentales-edit.vue   |  176 +-
 .../ui/src/components/etape/fondamentales.vue |   75 +-
 .../components/etape/heritage-edit.types.ts   |    5 +-
 .../ui/src/components/etape/heritage-edit.vue |   29 +-
 .../components/etape/justificatifs-edit.vue   |  122 +-
 .../ui/src/components/etape/perimetre.vue     |   32 +-
 .../ui/src/components/etape/points-edit.vue   |  209 +-
 .../etape/points-geo-systemes-edit.vue        |   47 +-
 .../components/etape/points-import-popup.vue  |   38 +-
 .../src/components/etape/points-lot-edit.vue  |   20 +-
 .../components/etape/points-point-edit.vue    |   14 +-
 .../etape/points-point-reference-edit.vue     |   30 +-
 packages/ui/src/components/etape/preview.vue  |   97 +-
 .../ui/src/components/etape/prop-duree.vue    |   12 +-
 .../etape/pure-form-save-btn.stories.ts       |   19 +-
 .../components/etape/pure-form-save-btn.vue   |   23 +-
 packages/ui/src/components/etape/remove.vue   |   39 +-
 .../components/etape/section-element-edit.vue |   22 +-
 .../etape/section-element-heritage-edit.vue   |   19 +-
 .../ui/src/components/etape/sections-edit.vue |   31 +-
 .../etape/substances-edit.stories.ts          |   28 +-
 .../src/components/etape/substances-edit.vue  |   60 +-
 .../components/etape/type-edit.stories.tsx    |   15 +-
 .../ui/src/components/etape/type-edit.tsx     |   64 +-
 packages/ui/src/components/journaux.vue       |    8 +-
 .../src/components/journaux/differences.vue   |    6 +-
 .../ui/src/components/journaux/journaux.vue   |   48 +-
 packages/ui/src/components/menu/button.tsx    |   16 +-
 packages/ui/src/components/menu/menu.tsx      |   75 +-
 packages/ui/src/components/meta-activite.vue  |   16 +-
 packages/ui/src/components/meta-demarche.vue  |   28 +-
 packages/ui/src/components/meta-etape.vue     |   34 +-
 packages/ui/src/components/meta-titre.vue     |   30 +-
 packages/ui/src/components/meta.vue           |   23 +-
 packages/ui/src/components/metas.vue          |   21 +-
 .../src/components/metas/definition-edit.vue  |  103 +-
 .../components/metas/meta-page-template.vue   |   10 +-
 packages/ui/src/components/metas/table.js     |    8 +-
 .../ui/src/components/page/footer.stories.tsx |   16 +-
 packages/ui/src/components/page/footer.tsx    |  128 +-
 .../page/footer/newsletter-form.stories.tsx   |   26 +-
 .../page/footer/newsletter-form.tsx           |   44 +-
 packages/ui/src/components/page/header.tsx    |   11 +-
 .../page/quick-access-titre.stories.tsx       |   18 +-
 .../components/page/quick-access-titre.tsx    |   37 +-
 packages/ui/src/components/statistiques.vue   |   19 +-
 .../statistiques/globales.stories.tsx         |   12 +-
 .../src/components/statistiques/globales.tsx  |  257 +-
 .../granulats-marins-activite.tsx             |   34 +-
 .../statistiques/granulats-marins.stories.tsx |   65 +-
 .../statistiques/granulats-marins.tsx         |  289 +-
 .../statistiques/guyane-activite.tsx          |   65 +-
 .../statistiques/guyane.stories.tsx           |  190 +-
 .../ui/src/components/statistiques/guyane.tsx |  275 +-
 .../mineraux-metaux-metropole.stories.tsx     |   94 +-
 .../mineraux-metaux-metropole.tsx             |  415 +--
 packages/ui/src/components/titre-creation.vue |   97 +-
 packages/ui/src/components/titre.vue          |   80 +-
 .../src/components/titre/administration.vue   |   45 +-
 .../components/titre/demarche-api-client.ts   |    6 +-
 .../titre/demarche-edit-popup.stories.tsx     |    6 +-
 .../components/titre/demarche-edit-popup.tsx  |   91 +-
 .../titre/demarche-remove-popup.stories.tsx   |    4 +-
 .../titre/demarche-remove-popup.tsx           |   59 +-
 packages/ui/src/components/titre/demarche.vue |   50 +-
 .../ui/src/components/titre/demarches.vue     |   50 +-
 .../ui/src/components/titre/edit-popup.vue    |   55 +-
 .../ui/src/components/titre/entreprise.vue    |   62 +-
 packages/ui/src/components/titre/header.vue   |   48 +-
 .../ui/src/components/titre/infos.stories.tsx |   47 +-
 packages/ui/src/components/titre/infos.tsx    |  110 +-
 .../titre/pure-titres-link-form-api-client.ts |   70 +-
 .../titre/pure-titres-link-form.stories.ts    |   52 +-
 .../titre/pure-titres-link-form.vue           |   77 +-
 .../titre/pure-titres-link.stories.ts         |   55 +-
 .../src/components/titre/pure-titres-link.vue |   43 +-
 .../ui/src/components/titre/remove-popup.vue  |   36 +-
 .../ui/src/components/titre/repertoire.vue    |   32 +-
 .../components/titre/territoires.stories.ts   |   21 +-
 .../ui/src/components/titre/territoires.tsx   |   33 +-
 .../src/components/titre/titre-api-client.ts  |    2 +-
 packages/ui/src/components/titres.tsx         |   50 +-
 packages/ui/src/components/titres/filtres.js  |   24 +-
 packages/ui/src/components/titres/filtres.vue |   31 +-
 packages/ui/src/components/titres/map.tsx     |  102 +-
 packages/ui/src/components/titres/mapUtil.ts  |  117 +-
 .../components/titres/table-pagination.tsx    |   23 +-
 .../ui/src/components/titres/table-utils.ts   |  140 +-
 packages/ui/src/components/titres/table.tsx   |   10 +-
 packages/ui/src/components/travaux.vue        |    2 +-
 packages/ui/src/components/user/add-popup.vue |   32 +-
 packages/ui/src/components/user/button.vue    |   17 +-
 .../components/user/pure-button.stories.ts    |   17 +-
 .../ui/src/components/user/pure-button.vue    |   17 +-
 .../ui/src/components/utilisateur.stories.tsx |   18 +-
 packages/ui/src/components/utilisateur.tsx    |  152 +-
 .../utilisateur/edit-popup.stories.tsx        |   32 +-
 .../src/components/utilisateur/edit-popup.tsx |  126 +-
 .../utilisateur/qgis-token.stories.tsx        |    7 +-
 .../src/components/utilisateur/qgis-token.tsx |   11 +-
 .../utilisateur/remove-popup.stories.tsx      |    2 +-
 .../components/utilisateur/remove-popup.tsx   |   17 +-
 .../utilisateur/utilisateur-api-client.ts     |   26 +-
 packages/ui/src/components/utilisateurs.vue   |   25 +-
 .../ui/src/components/utilisateurs/filtres.js |   12 +-
 .../ui/src/components/utilisateurs/table.ts   |   47 +-
 packages/ui/src/index.html                    |   20 +-
 packages/ui/src/index.ts                      |   25 +-
 packages/ui/src/router/index.ts               |   84 +-
 packages/ui/src/stats/bootstrap.js            |    4 +-
 packages/ui/src/stats/custom-variables.js     |    7 +-
 packages/ui/src/stats/index.js                |    7 +-
 .../ui/src/store/__mocks__/titre-etape.js     |   64 +-
 packages/ui/src/store/_liste-build.js         |   31 +-
 packages/ui/src/store/_liste-build.test.js    |   89 +-
 packages/ui/src/store/document.js             |   44 +-
 packages/ui/src/store/document.test.js        |   70 +-
 packages/ui/src/store/entreprise.js           |   36 +-
 packages/ui/src/store/entreprise.test.js      |   54 +-
 packages/ui/src/store/entreprises.js          |   14 +-
 packages/ui/src/store/index.js                |   34 +-
 packages/ui/src/store/index.test.js           |   52 +-
 packages/ui/src/store/journaux.js             |    6 +-
 packages/ui/src/store/meta.js                 |   18 +-
 packages/ui/src/store/metas-definitions.js    |  144 +-
 packages/ui/src/store/metas.js                |   16 +-
 .../ui/src/store/titre-activite-edition.js    |   27 +-
 .../src/store/titre-activite-edition.test.js  |   58 +-
 packages/ui/src/store/titre-activite.js       |   26 +-
 packages/ui/src/store/titre-activite.test.js  |   34 +-
 packages/ui/src/store/titre-creation.js       |   12 +-
 packages/ui/src/store/titre-etape-edition.js  |  124 +-
 .../ui/src/store/titre-etape-edition.test.js  |  102 +-
 packages/ui/src/store/titre-etape.js          |   20 +-
 packages/ui/src/store/titre-etape.test.js     |   20 +-
 packages/ui/src/store/titre.js                |   33 +-
 packages/ui/src/store/titre.test.js           |   32 +-
 packages/ui/src/store/titres-activites.js     |   31 +-
 .../ui/src/store/titres-activites.test.js     |    2 +-
 packages/ui/src/store/titres-demarches.js     |   43 +-
 .../ui/src/store/titres-demarches.test.js     |   20 +-
 packages/ui/src/store/titres.js               |   88 +-
 packages/ui/src/store/titres.test.js          |   84 +-
 packages/ui/src/store/user.js                 |   63 +-
 packages/ui/src/store/user.test.js            |   41 +-
 packages/ui/src/store/utilisateurs.js         |   44 +-
 packages/ui/src/store/utilisateurs.test.js    |   30 +-
 packages/ui/src/storybook.spec.ts             |   19 +-
 packages/ui/src/styles/buttons.css            |    3 +-
 packages/ui/src/styles/dsfr/dsfr.css          | 2698 ++++-------------
 packages/ui/src/styles/grids/grid-utils.css   |   11 +-
 packages/ui/src/styles/system/tools.css       |   13 +-
 packages/ui/src/styles/system/ui.css          |    6 +-
 packages/ui/src/utils/contenu.js              |   34 +-
 packages/ui/src/utils/documents.js            |   10 +-
 packages/ui/src/utils/documents.test.js       |   26 +-
 packages/ui/src/utils/entreprise.js           |    5 +-
 packages/ui/src/utils/geojson.js              |   12 +-
 packages/ui/src/utils/index.js                |   19 +-
 packages/ui/src/utils/index.test.js           |   47 +-
 packages/ui/src/utils/matomo-tracker.js       |    6 +-
 packages/ui/src/utils/number-format.ts        |    2 +-
 packages/ui/src/utils/titre-etape-edit.js     |   69 +-
 .../ui/src/utils/titre-etape-edit.test.js     |   64 +-
 .../src/utils/titre-etape-heritage-build.js   |   43 +-
 packages/ui/src/utils/titre-etape-save.js     |  113 +-
 .../ui/src/utils/titre-etape-save.test.js     |   78 +-
 packages/ui/src/utils/url.js                  |   17 +-
 packages/ui/src/utils/url.test.js             |    6 +-
 packages/ui/src/utils/vue-tsx-utils.ts        |   22 +-
 882 files changed, 15234 insertions(+), 33702 deletions(-)

diff --git a/packages/api/.ncurc.json b/packages/api/.ncurc.json
index 80817abe4..6d1e0ab3d 100644
--- a/packages/api/.ncurc.json
+++ b/packages/api/.ncurc.json
@@ -1,16 +1,4 @@
 {
   "upgrade": true,
-  "reject": [
-    "@sindresorhus/slugify",
-    "@types/node-fetch",
-    "chalk",
-    "crypto-random-string",
-    "email-regex",
-    "decamelize",
-    "dateformat",
-    "node-fetch",
-    "camelcase",
-    "graphql-upload",
-    "express-jwt"
-  ]
+  "reject": ["@sindresorhus/slugify", "@types/node-fetch", "chalk", "crypto-random-string", "email-regex", "decamelize", "dateformat", "node-fetch", "camelcase", "graphql-upload", "express-jwt"]
 }
diff --git a/packages/api/package.json b/packages/api/package.json
index 44e0066fc..40cf33377 100644
--- a/packages/api/package.json
+++ b/packages/api/package.json
@@ -127,8 +127,9 @@
   "prettier": {
     "semi": false,
     "singleQuote": true,
-    "trailingComma": "none",
-    "arrowParens": "avoid"
+    "arrowParens": "avoid",
+    "trailingComma": "es5",
+    "printWidth": 200
   },
   "eslintConfig": {
     "parser": "@typescript-eslint/parser",
diff --git a/packages/api/src/@types/geojson-rewind.d.ts b/packages/api/src/@types/geojson-rewind.d.ts
index 1573f33ae..41d3d2508 100644
--- a/packages/api/src/@types/geojson-rewind.d.ts
+++ b/packages/api/src/@types/geojson-rewind.d.ts
@@ -12,10 +12,7 @@ declare module 'geojson-rewind' {
     coordinates: number[] | number[][] | number[][][] | number[][][][]
   }
 
-  function rewind(
-    gj: IGeoJson | IGeometry,
-    outer?: boolean
-  ): IGeoJson | IGeometry
+  function rewind(gj: IGeoJson | IGeometry, outer?: boolean): IGeoJson | IGeometry
   namespace rewind {}
   export = rewind
 }
diff --git a/packages/api/src/@types/global.d.ts b/packages/api/src/@types/global.d.ts
index 22bee1db1..f4ef5db26 100644
--- a/packages/api/src/@types/global.d.ts
+++ b/packages/api/src/@types/global.d.ts
@@ -2,17 +2,11 @@ export {}
 
 declare global {
   interface ReadonlyArray<T> {
-    includes<U>(
-      _x: U & (T & U extends never ? never : unknown),
-      _fromIndex?: number
-    ): boolean
+    includes<U>(_x: U & (T & U extends never ? never : unknown), _fromIndex?: number): boolean
   }
 
   interface Array<T> {
-    includes<U>(
-      _searchElement: U & (T & U extends never ? never : unknown),
-      _fromIndex?: number
-    ): boolean
+    includes<U>(_searchElement: U & (T & U extends never ? never : unknown), _fromIndex?: number): boolean
   }
   namespace NodeJS {
     interface ProcessEnv {
diff --git a/packages/api/src/api/_format/_fields.ts b/packages/api/src/api/_format/_fields.ts
index 3705bf6b9..7f9008d54 100644
--- a/packages/api/src/api/_format/_fields.ts
+++ b/packages/api/src/api/_format/_fields.ts
@@ -3,11 +3,11 @@ import { IFields } from '../../types.js'
 export const titreEtapeFormatFields = {
   geojsonMultiPolygon: {},
   geojsonPoints: {},
-  sections: {}
+  sections: {},
 } as IFields
 
 export const titreDemarcheFormatFields = {
-  etapes: titreEtapeFormatFields
+  etapes: titreEtapeFormatFields,
 } as IFields
 
 export const titreFormatFields = {
@@ -16,9 +16,9 @@ export const titreFormatFields = {
   geojsonPoints: {},
   demarches: titreDemarcheFormatFields,
   activites: {
-    sections: {}
+    sections: {},
   },
-  administrations: {}
+  administrations: {},
 } as IFields
 
 titreDemarcheFormatFields.titre = titreFormatFields
diff --git a/packages/api/src/api/_format/entreprises.ts b/packages/api/src/api/_format/entreprises.ts
index 0653d56ca..4d4eb44fd 100644
--- a/packages/api/src/api/_format/entreprises.ts
+++ b/packages/api/src/api/_format/entreprises.ts
@@ -12,11 +12,9 @@ import { titresFormat } from './titres.js'
  */
 
 const entrepriseFormat = (entreprise: IEntreprise) => {
-  entreprise.titulaireTitres =
-    entreprise.titulaireTitres && titresFormat(entreprise.titulaireTitres)
+  entreprise.titulaireTitres = entreprise.titulaireTitres && titresFormat(entreprise.titulaireTitres)
 
-  entreprise.amodiataireTitres =
-    entreprise.amodiataireTitres && titresFormat(entreprise.amodiataireTitres)
+  entreprise.amodiataireTitres = entreprise.amodiataireTitres && titresFormat(entreprise.amodiataireTitres)
 
   return entreprise
 }
diff --git a/packages/api/src/api/_format/etapes-types.test.ts b/packages/api/src/api/_format/etapes-types.test.ts
index f2b64943b..a0778ca86 100644
--- a/packages/api/src/api/_format/etapes-types.test.ts
+++ b/packages/api/src/api/_format/etapes-types.test.ts
@@ -2,73 +2,43 @@ import { documentsTypesFormat } from './etapes-types.js'
 import { describe, test, expect } from 'vitest'
 import { DocumentType } from 'camino-common/src/static/documentsTypes.js'
 describe('teste etapes types format', () => {
-  test.each<
-    [
-      DocumentType[] | null | undefined,
-      DocumentType[] | null | undefined,
-      DocumentType[]
-    ]
-  >([
+  test.each<[DocumentType[] | null | undefined, DocumentType[] | null | undefined, DocumentType[]]>([
     [undefined, undefined, []],
     [[], undefined, []],
     [undefined, [], []],
-    [
-      [{ id: 'acr', nom: 'acr', optionnel: false }],
-      undefined,
-      [{ id: 'acr', nom: 'acr', optionnel: false }]
-    ],
-    [
-      undefined,
-      [{ id: 'acr', nom: 'acr', optionnel: false }],
-      [{ id: 'acr', nom: 'acr', optionnel: false }]
-    ],
-    [
-      [{ id: 'acr', nom: 'acr', optionnel: false }],
-      [{ id: 'acr', nom: 'acr', optionnel: true }],
-      [{ id: 'acr', nom: 'acr', optionnel: true }]
-    ],
-    [
-      [{ id: 'acr', nom: 'acr', optionnel: true }],
-      [{ id: 'acr', nom: 'acr', optionnel: false }],
-      [{ id: 'acr', nom: 'acr', optionnel: false }]
-    ]
-  ])(
-    'documentsTypesFormat',
-    (documentsTypes, documentsTypesSpecifiques, result) => {
-      expect(
-        documentsTypesFormat(documentsTypes, documentsTypesSpecifiques)
-      ).toEqual(result)
-    }
-  )
+    [[{ id: 'acr', nom: 'acr', optionnel: false }], undefined, [{ id: 'acr', nom: 'acr', optionnel: false }]],
+    [undefined, [{ id: 'acr', nom: 'acr', optionnel: false }], [{ id: 'acr', nom: 'acr', optionnel: false }]],
+    [[{ id: 'acr', nom: 'acr', optionnel: false }], [{ id: 'acr', nom: 'acr', optionnel: true }], [{ id: 'acr', nom: 'acr', optionnel: true }]],
+    [[{ id: 'acr', nom: 'acr', optionnel: true }], [{ id: 'acr', nom: 'acr', optionnel: false }], [{ id: 'acr', nom: 'acr', optionnel: false }]],
+  ])('documentsTypesFormat', (documentsTypes, documentsTypesSpecifiques, result) => {
+    expect(documentsTypesFormat(documentsTypes, documentsTypesSpecifiques)).toEqual(result)
+  })
 
   test.each([
     [undefined, undefined, undefined],
     ['des', undefined, 'des'],
     ['des', 'des2', 'des2'],
-    [undefined, 'des2', 'des2']
-  ])(
-    'test la déclaration de la description',
-    (description, dtSpecifiqueDescription, result) => {
-      expect(
-        documentsTypesFormat(
-          [
-            {
-              id: 'acr',
-              nom: 'test',
-              optionnel: false,
-              description
-            }
-          ],
-          [
-            {
-              id: 'acr',
-              nom: 'test',
-              optionnel: false,
-              description: dtSpecifiqueDescription
-            }
-          ]
-        )[0].description
-      ).toEqual(result)
-    }
-  )
+    [undefined, 'des2', 'des2'],
+  ])('test la déclaration de la description', (description, dtSpecifiqueDescription, result) => {
+    expect(
+      documentsTypesFormat(
+        [
+          {
+            id: 'acr',
+            nom: 'test',
+            optionnel: false,
+            description,
+          },
+        ],
+        [
+          {
+            id: 'acr',
+            nom: 'test',
+            optionnel: false,
+            description: dtSpecifiqueDescription,
+          },
+        ]
+      )[0].description
+    ).toEqual(result)
+  })
 })
diff --git a/packages/api/src/api/_format/etapes-types.ts b/packages/api/src/api/_format/etapes-types.ts
index 0c57762e9..426399029 100644
--- a/packages/api/src/api/_format/etapes-types.ts
+++ b/packages/api/src/api/_format/etapes-types.ts
@@ -1,11 +1,4 @@
-import {
-  DemarcheId,
-  IDemarcheType,
-  IEtapeType,
-  ISection,
-  ITitre,
-  ITitreEtape
-} from '../../types.js'
+import { DemarcheId, IDemarcheType, IEtapeType, ISection, ITitre, ITitreEtape } from '../../types.js'
 
 import { titreDemarcheUpdatedEtatValidate } from '../../business/validations/titre-demarche-etat-validate.js'
 import { titreDemarcheDepotDemandeDateFind } from '../../business/rules/titre-demarche-depot-demande-date-find.js'
@@ -20,10 +13,7 @@ import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
 import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
 import { CaminoDate } from 'camino-common/src/date.js'
 
-const etapeTypeSectionsFormat = (
-  sections: ISection[] | undefined | null,
-  sectionsSpecifiques: ISection[] | undefined | null
-) => {
+const etapeTypeSectionsFormat = (sections: ISection[] | undefined | null, sectionsSpecifiques: ISection[] | undefined | null) => {
   let result: ISection[] = []
 
   if (sectionsSpecifiques?.length) {
@@ -42,10 +32,7 @@ const etapeTypeSectionsFormat = (
   return titreSectionsFormat(result)
 }
 
-const documentsTypesFormat = (
-  documentsTypes: DocumentType[] | undefined | null,
-  documentsTypesSpecifiques: DocumentType[] | undefined | null
-): DocumentType[] => {
+const documentsTypesFormat = (documentsTypes: DocumentType[] | undefined | null, documentsTypesSpecifiques: DocumentType[] | undefined | null): DocumentType[] => {
   let result: DocumentType[] = []
 
   if (documentsTypes?.length) {
@@ -54,15 +41,12 @@ const documentsTypesFormat = (
 
   if (documentsTypesSpecifiques?.length) {
     documentsTypesSpecifiques.forEach(documentTypeSpecifique => {
-      const documentType = result.find(
-        ({ id }) => id === documentTypeSpecifique.id
-      )
+      const documentType = result.find(({ id }) => id === documentTypeSpecifique.id)
 
       // Si il est déjà présent, on override juste son attribut « optionnel » et sa description
       if (documentType) {
         documentType.optionnel = documentTypeSpecifique.optionnel
-        documentType.description =
-          documentTypeSpecifique.description || documentType.description
+        documentType.description = documentTypeSpecifique.description || documentType.description
       } else {
         result.push(documentTypeSpecifique)
       }
@@ -85,47 +69,28 @@ const etapeTypeFormat = (
 ) => {
   const etapeType = etape.type
   if (etapeType) {
-    etapeType.sections = etapeTypeSectionsFormat(
-      etapeType.sections,
-      sectionsSpecifiques
-    )
+    etapeType.sections = etapeTypeSectionsFormat(etapeType.sections, sectionsSpecifiques)
 
     if (documentTypeData === null) {
       const typeId = etape?.demarche?.titre?.typeId
       if (!typeId) {
-        throw new Error(
-          `le type du titre de l'étape ${etape.id} n'est pas chargé`
-        )
+        throw new Error(`le type du titre de l'étape ${etape.id} n'est pas chargé`)
       }
       const demarcheTypeId = etape?.demarche?.typeId
       const etapeTypeId = etape?.typeId
 
-      etapeType.documentsTypes = getDocuments(
-        typeId,
-        demarcheTypeId,
-        etapeTypeId
-      )
+      etapeType.documentsTypes = getDocuments(typeId, demarcheTypeId, etapeTypeId)
     } else {
-      etapeType.documentsTypes = getDocuments(
-        documentTypeData.titreTypeId,
-        documentTypeData.demarcheTypeId,
-        documentTypeData.etapeTypeId
-      )
+      etapeType.documentsTypes = getDocuments(documentTypeData.titreTypeId, documentTypeData.demarcheTypeId, documentTypeData.etapeTypeId)
     }
     // on ajoute les justificatifs spécifiques
-    etapeType.justificatifsTypes = documentsTypesFormat(
-      etapeType.justificatifsTypes,
-      justificatifsTypesSpecifiques
-    )
+    etapeType.justificatifsTypes = documentsTypesFormat(etapeType.justificatifsTypes, justificatifsTypesSpecifiques)
   }
 
   return etapeType
 }
 
-const etapeTypeDateFinCheck = (
-  etapeType: IEtapeType,
-  titreEtapes?: ITitreEtape[] | null
-) => {
+const etapeTypeDateFinCheck = (etapeType: IEtapeType, titreEtapes?: ITitreEtape[] | null) => {
   if (!etapeType.dateFin || !titreEtapes) return true
 
   const dateDemande = titreDemarcheDepotDemandeDateFind(titreEtapes)
@@ -159,18 +124,7 @@ const etapeTypeIsValidCheck = (
   titreEtape.typeId = etapeType.id
   titreEtape.date = date
 
-  return !titreDemarcheUpdatedEtatValidate(
-    demarcheType,
-    titre,
-    titreEtape,
-    demarcheId,
-    titreDemarcheEtapes
-  ).length
+  return !titreDemarcheUpdatedEtatValidate(demarcheType, titre, titreEtape, demarcheId, titreDemarcheEtapes).length
 }
 
-export {
-  etapeTypeIsValidCheck,
-  etapeTypeSectionsFormat,
-  etapeTypeFormat,
-  documentsTypesFormat
-}
+export { etapeTypeIsValidCheck, etapeTypeSectionsFormat, etapeTypeFormat, documentsTypesFormat }
diff --git a/packages/api/src/api/_format/titres-activites.ts b/packages/api/src/api/_format/titres-activites.ts
index 2fd312ed8..f5badd4e3 100644
--- a/packages/api/src/api/_format/titres-activites.ts
+++ b/packages/api/src/api/_format/titres-activites.ts
@@ -5,11 +5,7 @@ import { titreSectionsFormat } from './titres-sections.js'
 import { titreActiviteCompleteCheck } from '../../business/validations/titre-activite-complete-check.js'
 import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
 
-export const titreActiviteContenuFormat = (
-  sections: ISection[],
-  contenu: IContenu,
-  operation: 'read' | 'write'
-) => {
+export const titreActiviteContenuFormat = (sections: ISection[], contenu: IContenu, operation: 'read' | 'write') => {
   const section = sections.find(s => s.id === 'substancesFiscales')
 
   if (section?.elements?.length && contenu?.substancesFiscales) {
@@ -20,10 +16,7 @@ export const titreActiviteContenuFormat = (
       const ratio = element?.referenceUniteRatio
 
       if (ratio) {
-        contenu!.substancesFiscales[id] =
-          operation === 'read'
-            ? (contenu!.substancesFiscales[id] as number) / ratio
-            : (contenu!.substancesFiscales[id] as number) * ratio
+        contenu!.substancesFiscales[id] = operation === 'read' ? (contenu!.substancesFiscales[id] as number) / ratio : (contenu!.substancesFiscales[id] as number) * ratio
       }
     })
   }
@@ -41,16 +34,8 @@ export const titreActiviteFormat = (ta: ITitreActivite) => {
     ta.contenu = titreActiviteContenuFormat(ta.sections, ta.contenu, 'read')
   }
 
-  if (
-    ta.activiteStatutId === ACTIVITES_STATUTS_IDS.EN_CONSTRUCTION &&
-    ta.modification
-  ) {
-    ta.deposable = titreActiviteCompleteCheck(
-      ta.sections,
-      ta.contenu,
-      ta.documents,
-      ta.type!.documentsTypes
-    )
+  if (ta.activiteStatutId === ACTIVITES_STATUTS_IDS.EN_CONSTRUCTION && ta.modification) {
+    ta.deposable = titreActiviteCompleteCheck(ta.sections, ta.contenu, ta.documents, ta.type!.documentsTypes)
   }
 
   return ta
diff --git a/packages/api/src/api/_format/titres-demarches.ts b/packages/api/src/api/_format/titres-demarches.ts
index 7140a07da..095057ecc 100644
--- a/packages/api/src/api/_format/titres-demarches.ts
+++ b/packages/api/src/api/_format/titres-demarches.ts
@@ -4,10 +4,7 @@ import { titreEtapeFormat } from './titres-etapes.js'
 import { titreFormat } from './titres.js'
 import { titreDemarcheFormatFields } from './_fields.js'
 
-export const titreDemarcheFormat = (
-  titreDemarche: ITitreDemarche,
-  fields: IFields = titreDemarcheFormatFields
-) => {
+export const titreDemarcheFormat = (titreDemarche: ITitreDemarche, fields: IFields = titreDemarcheFormatFields) => {
   if (!fields) return titreDemarche
 
   if (fields.titre && titreDemarche.titre) {
@@ -15,9 +12,7 @@ export const titreDemarcheFormat = (
   }
 
   if (fields.etapes && titreDemarche.etapes && titreDemarche.etapes.length) {
-    titreDemarche.etapes = titreDemarche.etapes.map(te =>
-      titreEtapeFormat(te, fields.etapes)
-    )
+    titreDemarche.etapes = titreDemarche.etapes.map(te => titreEtapeFormat(te, fields.etapes))
   }
 
   return titreDemarche
diff --git a/packages/api/src/api/_format/titres-etapes.ts b/packages/api/src/api/_format/titres-etapes.ts
index 6a06cc4c4..6ca7c85e2 100644
--- a/packages/api/src/api/_format/titres-etapes.ts
+++ b/packages/api/src/api/_format/titres-etapes.ts
@@ -1,9 +1,6 @@
 import { ITitreEtape, IGeoJson } from '../../types.js'
 
-import {
-  geojsonFeatureMultiPolygon,
-  geojsonFeatureCollectionPoints
-} from '../../tools/geojson.js'
+import { geojsonFeatureMultiPolygon, geojsonFeatureCollectionPoints } from '../../tools/geojson.js'
 import { DocumentTypeData, etapeTypeFormat } from './etapes-types.js'
 import { entrepriseFormat } from './entreprises.js'
 import { titreEtapeFormatFields } from './_fields.js'
@@ -12,40 +9,24 @@ import { titreEtapeCompleteValidate } from '../../business/validations/titre-eta
 import { ETAPES_TYPES } from 'camino-common/src/static/etapesTypes.js'
 import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts.js'
 
-export const titreEtapeFormat = (
-  titreEtape: ITitreEtape,
-  fields = titreEtapeFormatFields,
-  documentTypeData: DocumentTypeData | null = null
-) => {
+export const titreEtapeFormat = (titreEtape: ITitreEtape, fields = titreEtapeFormatFields, documentTypeData: DocumentTypeData | null = null) => {
   if (titreEtape.demarche) {
-    titreEtape.demarche = titreDemarcheFormat(
-      titreEtape.demarche,
-      fields.demarche
-    )
+    titreEtape.demarche = titreDemarcheFormat(titreEtape.demarche, fields.demarche)
   }
 
   if (titreEtape.type) {
-    titreEtape.type = etapeTypeFormat(
-      titreEtape,
-      titreEtape.sectionsSpecifiques,
-      titreEtape.justificatifsTypesSpecifiques,
-      documentTypeData
-    )
+    titreEtape.type = etapeTypeFormat(titreEtape, titreEtape.sectionsSpecifiques, titreEtape.justificatifsTypesSpecifiques, documentTypeData)
   }
 
   if (!fields) return titreEtape
 
   if (titreEtape.points && titreEtape.points.length) {
     if (fields.geojsonMultiPolygon) {
-      titreEtape.geojsonMultiPolygon = geojsonFeatureMultiPolygon(
-        titreEtape.points
-      ) as IGeoJson
+      titreEtape.geojsonMultiPolygon = geojsonFeatureMultiPolygon(titreEtape.points) as IGeoJson
     }
 
     if (fields.geojsonPoints) {
-      titreEtape.geojsonPoints = geojsonFeatureCollectionPoints(
-        titreEtape.points
-      ) as unknown as IGeoJson
+      titreEtape.geojsonPoints = geojsonFeatureCollectionPoints(titreEtape.points) as unknown as IGeoJson
     }
   }
 
@@ -59,11 +40,7 @@ export const titreEtapeFormat = (
 
   titreEtape.amodiataires = titreEtape.amodiataires?.map(entrepriseFormat)
 
-  if (
-    titreEtape.typeId === ETAPES_TYPES.demande &&
-    titreEtape.statutId === ETAPES_STATUTS.EN_CONSTRUCTION &&
-    titreEtape.modification
-  ) {
+  if (titreEtape.typeId === ETAPES_TYPES.demande && titreEtape.statutId === ETAPES_STATUTS.EN_CONSTRUCTION && titreEtape.modification) {
     const errors = titreEtapeCompleteValidate(
       titreEtape,
       titreEtape.demarche!.titre!.typeId,
diff --git a/packages/api/src/api/_format/titres-sections.ts b/packages/api/src/api/_format/titres-sections.ts
index aebccece1..be113c015 100644
--- a/packages/api/src/api/_format/titres-sections.ts
+++ b/packages/api/src/api/_format/titres-sections.ts
@@ -37,7 +37,7 @@ export const titreSectionsFormat = (sections: ISection[]) =>
       sections.push({
         id,
         nom,
-        elements: newElements.map(titreSectionElementFormat)
+        elements: newElements.map(titreSectionElementFormat),
       })
     }
 
diff --git a/packages/api/src/api/_format/titres.ts b/packages/api/src/api/_format/titres.ts
index 40092363f..a8bff3ed7 100644
--- a/packages/api/src/api/_format/titres.ts
+++ b/packages/api/src/api/_format/titres.ts
@@ -1,19 +1,12 @@
 import { ITitre, IGeoJson, IFields } from '../../types.js'
 
-import {
-  geojsonFeatureMultiPolygon,
-  geojsonFeatureCollectionPoints
-} from '../../tools/geojson.js'
+import { geojsonFeatureMultiPolygon, geojsonFeatureCollectionPoints } from '../../tools/geojson.js'
 
 import { entrepriseFormat } from './entreprises.js'
 import { titreActiviteFormat } from './titres-activites.js'
 import { titreDemarcheFormat } from './titres-demarches.js'
 import { titreFormatFields } from './_fields.js'
-import {
-  AdministrationId,
-  Administrations,
-  ADMINISTRATION_TYPES
-} from 'camino-common/src/static/administrations.js'
+import { AdministrationId, Administrations, ADMINISTRATION_TYPES } from 'camino-common/src/static/administrations.js'
 import { onlyUnique } from 'camino-common/src/typescript-tools.js'
 import { getGestionnairesByTitreTypeId } from 'camino-common/src/static/administrationsTitresTypes.js'
 
@@ -30,7 +23,7 @@ export const titreFormat = (t: ITitre, fields: IFields = titreFormatFields) => {
       points: t.points,
       secteursMaritime: t.secteursMaritime,
       forets: t.forets,
-      communes: t.communes
+      communes: t.communes,
     } as ITitre
   }
 
@@ -41,9 +34,7 @@ export const titreFormat = (t: ITitre, fields: IFields = titreFormatFields) => {
   }
 
   if (fields.geojsonPoints && t.points?.length) {
-    t.geojsonPoints = geojsonFeatureCollectionPoints(
-      t.points
-    ) as unknown as IGeoJson
+    t.geojsonPoints = geojsonFeatureCollectionPoints(t.points) as unknown as IGeoJson
   }
 
   if (fields.geojsonCentre && t.coordonnees && t.propsTitreEtapesIds.points) {
@@ -51,16 +42,14 @@ export const titreFormat = (t: ITitre, fields: IFields = titreFormatFields) => {
       type: 'Feature',
       geometry: {
         type: 'Point',
-        coordinates: [t.coordonnees.x, t.coordonnees.y]
+        coordinates: [t.coordonnees.x, t.coordonnees.y],
       },
-      properties: { etapeId: t.propsTitreEtapesIds.points }
+      properties: { etapeId: t.propsTitreEtapesIds.points },
     }
   }
 
   if (fields.demarches && t.demarches?.length) {
-    t.demarches = t.demarches.map(td =>
-      titreDemarcheFormat(td, fields.demarches)
-    )
+    t.demarches = t.demarches.map(td => titreDemarcheFormat(td, fields.demarches))
   }
 
   if (fields.surface && t.surfaceEtape) {
@@ -98,11 +87,7 @@ export const titreAdministrationsGet = (titre: ITitre): AdministrationId[] => {
   return ids
     .filter(onlyUnique)
     .map(id => Administrations[id])
-    .sort(
-      (a, b) =>
-        ADMINISTRATION_TYPES[a.typeId].ordre -
-        ADMINISTRATION_TYPES[b.typeId].ordre
-    )
+    .sort((a, b) => ADMINISTRATION_TYPES[a.typeId].ordre - ADMINISTRATION_TYPES[b.typeId].ordre)
     .map(({ id }) => id)
 }
 
diff --git a/packages/api/src/api/graphql/administration.test.integration.ts b/packages/api/src/api/graphql/administration.test.integration.ts
index 657bf0be4..3fcb2bacb 100644
--- a/packages/api/src/api/graphql/administration.test.integration.ts
+++ b/packages/api/src/api/graphql/administration.test.integration.ts
@@ -16,9 +16,7 @@ afterAll(async () => {
 })
 
 describe('administrationTitreTypeTitreStatutModifier', () => {
-  const administrationTitreTypeTitreStatutModifierQuery = queryImport(
-    'administration-titre-type-titre-statut-modifier'
-  )
+  const administrationTitreTypeTitreStatutModifierQuery = queryImport('administration-titre-type-titre-statut-modifier')
 
   test("ne peut pas modifier les types de titre / statuts de titre d'une administration (anonyme)", async () => {
     const res = await graphQLCall(
@@ -30,8 +28,8 @@ describe('administrationTitreTypeTitreStatutModifier', () => {
           titreStatutId: 'val',
           titresModificationInterdit: true,
           demarchesModificationInterdit: true,
-          etapesModificationInterdit: true
-        }
+          etapesModificationInterdit: true,
+        },
       },
       undefined
     )
@@ -49,8 +47,8 @@ describe('administrationTitreTypeTitreStatutModifier', () => {
           titreStatutId: 'val',
           titresModificationInterdit: true,
           demarchesModificationInterdit: true,
-          etapesModificationInterdit: true
-        }
+          etapesModificationInterdit: true,
+        },
       },
       userSuper
     )
@@ -65,20 +63,18 @@ describe('administrationTitreTypeTitreStatutModifier', () => {
               titreStatutId: 'val',
               titresModificationInterdit: true,
               demarchesModificationInterdit: true,
-              etapesModificationInterdit: true
-            }
-          ]
-        }
-      }
+              etapesModificationInterdit: true,
+            },
+          ],
+        },
+      },
     })
     expect(res.body.errors).toBeUndefined()
   })
 })
 
 describe('administrationTitreTypeEtapeTypeModifier', () => {
-  const administrationTitreTypeEtapeTypeModifierQuery = queryImport(
-    'administration-titre-type-etape-type-modifier'
-  )
+  const administrationTitreTypeEtapeTypeModifierQuery = queryImport('administration-titre-type-etape-type-modifier')
 
   test("ne peut pas modifier les types de titre / types d'étape d'une administration (anonyme)", async () => {
     const res = await graphQLCall(
@@ -90,8 +86,8 @@ describe('administrationTitreTypeEtapeTypeModifier', () => {
           etapeTypeId: 'dex',
           lectureInterdit: true,
           modificationInterdit: true,
-          creationInterdit: true
-        }
+          creationInterdit: true,
+        },
       },
       undefined
     )
@@ -109,8 +105,8 @@ describe('administrationTitreTypeEtapeTypeModifier', () => {
           etapeTypeId: 'dex',
           lectureInterdit: true,
           modificationInterdit: true,
-          creationInterdit: true
-        }
+          creationInterdit: true,
+        },
       },
       userSuper
     )
@@ -125,11 +121,11 @@ describe('administrationTitreTypeEtapeTypeModifier', () => {
               etapeType: { id: 'dex' },
               lectureInterdit: true,
               modificationInterdit: true,
-              creationInterdit: true
-            }
-          ]
-        }
-      }
+              creationInterdit: true,
+            },
+          ],
+        },
+      },
     })
     expect(res.body.errors).toBeUndefined()
   })
diff --git a/packages/api/src/api/graphql/administrations-permissions-demarches.test.integration.ts b/packages/api/src/api/graphql/administrations-permissions-demarches.test.integration.ts
index 899d923bb..1da8a0715 100644
--- a/packages/api/src/api/graphql/administrations-permissions-demarches.test.integration.ts
+++ b/packages/api/src/api/graphql/administrations-permissions-demarches.test.integration.ts
@@ -1,9 +1,5 @@
 import { dbManager } from '../../../tests/db-manager.js'
-import {
-  visibleCheck,
-  creationCheck,
-  modificationCheck
-} from '../../../tests/_utils/administrations-permissions.js'
+import { visibleCheck, creationCheck, modificationCheck } from '../../../tests/_utils/administrations-permissions.js'
 import { beforeEach, beforeAll, afterAll, test, describe, vi } from 'vitest'
 import { AdministrationId } from 'camino-common/src/static/administrations.js'
 import Utilisateurs from '../../database/models/utilisateurs.js'
@@ -29,11 +25,9 @@ describe('Visibilité des démarches', () => {
     ['ope-onf-973-01', true],
     ['min-mtes-dgec-01', true],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', true]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut voir les démarches d'un titre ARM : $visible",
-    async (administrationId, visible) =>
-      visibleCheck(administrationId, visible, 'demarches', 'arm', false)
+    ['min-dajb-01', true],
+  ])("un utilisateur admin de l’administration $administrationId peut voir les démarches d'un titre ARM : $visible", async (administrationId, visible) =>
+    visibleCheck(administrationId, visible, 'demarches', 'arm', false)
   )
 
   test.each<[AdministrationId, boolean]>([
@@ -41,41 +35,33 @@ describe('Visibilité des démarches', () => {
     ['dea-guyane-01', true],
     ['min-mtes-dgec-01', true],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', true]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut voir les démarches d'un titre AXM : $visible",
-    async (administrationId, visible) =>
-      visibleCheck(administrationId, visible, 'demarches', 'axm', false)
+    ['min-dajb-01', true],
+  ])("un utilisateur admin de l’administration $administrationId peut voir les démarches d'un titre AXM : $visible", async (administrationId, visible) =>
+    visibleCheck(administrationId, visible, 'demarches', 'axm', false)
   )
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', true],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', true]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut voir les démarches d'un titre CXM : $visible",
-    async (administrationId, visible) =>
-      visibleCheck(administrationId, visible, 'demarches', 'cxm', false)
+    ['min-dajb-01', true],
+  ])("un utilisateur admin de l’administration $administrationId peut voir les démarches d'un titre CXM : $visible", async (administrationId, visible) =>
+    visibleCheck(administrationId, visible, 'demarches', 'cxm', false)
   )
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', true],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', true]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut voir les démarches d'un titre PRM : $visible",
-    async (administrationId, visible) =>
-      visibleCheck(administrationId, visible, 'demarches', 'prm', false)
+    ['min-dajb-01', true],
+  ])("un utilisateur admin de l’administration $administrationId peut voir les démarches d'un titre PRM : $visible", async (administrationId, visible) =>
+    visibleCheck(administrationId, visible, 'demarches', 'prm', false)
   )
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', true],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', true]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut voir les démarches d'un titre PXM : $visible",
-    async (administrationId, visible) =>
-      visibleCheck(administrationId, visible, 'demarches', 'pxm', false)
+    ['min-dajb-01', true],
+  ])("un utilisateur admin de l’administration $administrationId peut voir les démarches d'un titre PXM : $visible", async (administrationId, visible) =>
+    visibleCheck(administrationId, visible, 'demarches', 'pxm', false)
   )
 })
 
@@ -83,52 +69,42 @@ describe('Création des démarches', () => {
   test.each<[AdministrationId, boolean]>([
     ['ope-onf-973-01', true],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut créer des démarches d'un titre ARM : $creer",
-    async (administrationId, creer) =>
-      creationCheck(administrationId, creer, 'demarches', 'arm')
+    ['min-dajb-01', false],
+  ])("un utilisateur admin de l’administration $administrationId peut créer des démarches d'un titre ARM : $creer", async (administrationId, creer) =>
+    creationCheck(administrationId, creer, 'demarches', 'arm')
   )
 
   test.each<[AdministrationId, boolean]>([
     ['ope-onf-973-01', true],
     ['dea-guyane-01', true],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut créer des démarches d'un titre AXM : $creer",
-    async (administrationId, creer) =>
-      creationCheck(administrationId, creer, 'demarches', 'axm')
+    ['min-dajb-01', false],
+  ])("un utilisateur admin de l’administration $administrationId peut créer des démarches d'un titre AXM : $creer", async (administrationId, creer) =>
+    creationCheck(administrationId, creer, 'demarches', 'axm')
   )
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut créer des démarches d'un titre CXM : $creer",
-    async (administrationId, creer) =>
-      creationCheck(administrationId, creer, 'demarches', 'cxm')
+    ['min-dajb-01', false],
+  ])("un utilisateur admin de l’administration $administrationId peut créer des démarches d'un titre CXM : $creer", async (administrationId, creer) =>
+    creationCheck(administrationId, creer, 'demarches', 'cxm')
   )
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut créer des démarches d'un titre PRM : $creer",
-    async (administrationId, creer) =>
-      creationCheck(administrationId, creer, 'demarches', 'prm')
+    ['min-dajb-01', false],
+  ])("un utilisateur admin de l’administration $administrationId peut créer des démarches d'un titre PRM : $creer", async (administrationId, creer) =>
+    creationCheck(administrationId, creer, 'demarches', 'prm')
   )
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut créer des démarches d'un titre PXM : $creer",
-    async (administrationId, creer) =>
-      creationCheck(administrationId, creer, 'demarches', 'pxm')
+    ['min-dajb-01', false],
+  ])("un utilisateur admin de l’administration $administrationId peut créer des démarches d'un titre PXM : $creer", async (administrationId, creer) =>
+    creationCheck(administrationId, creer, 'demarches', 'pxm')
   )
 })
 
@@ -136,51 +112,41 @@ describe('Modification des démarches', () => {
   test.each<[AdministrationId, boolean]>([
     ['ope-onf-973-01', true],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre ARM : $modifier",
-    async (administrationId, modifier) =>
-      modificationCheck(administrationId, modifier, 'demarches', 'arm')
+    ['min-dajb-01', false],
+  ])("un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre ARM : $modifier", async (administrationId, modifier) =>
+    modificationCheck(administrationId, modifier, 'demarches', 'arm')
   )
 
   test.each<[AdministrationId, boolean]>([
     ['ope-onf-973-01', false],
     ['dea-guyane-01', true],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre AXM : $modifier",
-    async (administrationId, modifier) =>
-      modificationCheck(administrationId, modifier, 'demarches', 'axm')
+    ['min-dajb-01', false],
+  ])("un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre AXM : $modifier", async (administrationId, modifier) =>
+    modificationCheck(administrationId, modifier, 'demarches', 'axm')
   )
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre CXM : $modifier",
-    async (administrationId, modifier) =>
-      modificationCheck(administrationId, modifier, 'demarches', 'cxm')
+    ['min-dajb-01', false],
+  ])("un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre CXM : $modifier", async (administrationId, modifier) =>
+    modificationCheck(administrationId, modifier, 'demarches', 'cxm')
   )
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre PRM : $modifier",
-    async (administrationId, modifier) =>
-      modificationCheck(administrationId, modifier, 'demarches', 'prm')
+    ['min-dajb-01', false],
+  ])("un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre PRM : $modifier", async (administrationId, modifier) =>
+    modificationCheck(administrationId, modifier, 'demarches', 'prm')
   )
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre PXM : $modifier",
-    async (administrationId, modifier) =>
-      modificationCheck(administrationId, modifier, 'demarches', 'pxm')
+    ['min-dajb-01', false],
+  ])("un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre PXM : $modifier", async (administrationId, modifier) =>
+    modificationCheck(administrationId, modifier, 'demarches', 'pxm')
   )
 })
diff --git a/packages/api/src/api/graphql/administrations-permissions-etapes.test.integration.ts b/packages/api/src/api/graphql/administrations-permissions-etapes.test.integration.ts
index 96b51d285..7f61fb161 100644
--- a/packages/api/src/api/graphql/administrations-permissions-etapes.test.integration.ts
+++ b/packages/api/src/api/graphql/administrations-permissions-etapes.test.integration.ts
@@ -1,8 +1,5 @@
 import { dbManager } from '../../../tests/db-manager.js'
-import {
-  creationCheck,
-  visibleCheck
-} from '../../../tests/_utils/administrations-permissions.js'
+import { creationCheck, visibleCheck } from '../../../tests/_utils/administrations-permissions.js'
 import TitresTypesDemarchesTypesEtapesTypesJustificatifsTypes from '../../database/models/titres-types--demarches-types-etapes-types-justificatifs-types.js'
 import { afterAll, beforeEach, beforeAll, describe, test, vi } from 'vitest'
 import { AdministrationId } from 'camino-common/src/static/administrations.js'
@@ -10,16 +7,16 @@ import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
 import Utilisateurs from '../../database/models/utilisateurs'
 vi.mock('../../tools/dir-create', () => ({
   __esModule: true,
-  default: vi.fn()
+  default: vi.fn(),
 }))
 
 vi.mock('../../tools/file-stream-create', () => ({
   __esModule: true,
-  default: vi.fn()
+  default: vi.fn(),
 }))
 vi.mock('../../tools/file-delete', () => ({
   __esModule: true,
-  default: vi.fn()
+  default: vi.fn(),
 }))
 console.info = vi.fn()
 console.error = vi.fn()
@@ -40,99 +37,45 @@ afterAll(async () => {
 describe('Visibilité des étapes', () => {
   test.each<[AdministrationId, boolean, EtapeTypeId]>([
     ['ope-onf-973-01', true, 'mcr'],
-    ['min-mtes-dgaln-01', true, 'mcr']
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut voir l'étape $etapeTypeId d'un titre ARM : $visible",
-    async (administrationId, visible, etapeTypeId) =>
-      visibleCheck(
-        administrationId,
-        visible,
-        'etapes',
-        'arm',
-        false,
-        etapeTypeId
-      )
+    ['min-mtes-dgaln-01', true, 'mcr'],
+  ])("un utilisateur admin de l’administration $administrationId peut voir l'étape $etapeTypeId d'un titre ARM : $visible", async (administrationId, visible, etapeTypeId) =>
+    visibleCheck(administrationId, visible, 'etapes', 'arm', false, etapeTypeId)
   )
 
   test.each<[AdministrationId, boolean, EtapeTypeId]>([
     ['ope-onf-973-01', true, 'mcr'],
     ['dea-guyane-01', true, 'mcr'],
-    ['min-mtes-dgaln-01', true, 'mcr']
-  ])(
-    "un utilisateur admin de l’administration $administrationId peut voir l'étape $etapeTypeId d'un titre AXM : $visible",
-    async (administrationId, visible, etapeTypeId) =>
-      visibleCheck(
-        administrationId,
-        visible,
-        'etapes',
-        'axm',
-        false,
-        etapeTypeId
-      )
+    ['min-mtes-dgaln-01', true, 'mcr'],
+  ])("un utilisateur admin de l’administration $administrationId peut voir l'étape $etapeTypeId d'un titre AXM : $visible", async (administrationId, visible, etapeTypeId) =>
+    visibleCheck(administrationId, visible, 'etapes', 'axm', false, etapeTypeId)
   )
 
-  test.each<[AdministrationId, boolean, EtapeTypeId]>([
-    ['min-mtes-dgaln-01', true, 'mcr']
-  ])(
+  test.each<[AdministrationId, boolean, EtapeTypeId]>([['min-mtes-dgaln-01', true, 'mcr']])(
     "un utilisateur admin de l’administration $administrationId peut voir l'étape $etapeTypeId d'un titre CXM : $visible",
-    async (administrationId, visible, etapeTypeId) =>
-      visibleCheck(
-        administrationId,
-        visible,
-        'etapes',
-        'cxm',
-        false,
-        etapeTypeId
-      )
+    async (administrationId, visible, etapeTypeId) => visibleCheck(administrationId, visible, 'etapes', 'cxm', false, etapeTypeId)
   )
 
-  test.each<[AdministrationId, boolean, EtapeTypeId]>([
-    ['min-mtes-dgaln-01', true, 'mcr']
-  ])(
+  test.each<[AdministrationId, boolean, EtapeTypeId]>([['min-mtes-dgaln-01', true, 'mcr']])(
     "un utilisateur admin de l’administration $administrationId peut voir l'étape $etapeTypeId d'un titre PRM : $visible",
-    async (administrationId, visible, etapeTypeId) =>
-      visibleCheck(
-        administrationId,
-        visible,
-        'etapes',
-        'prm',
-        false,
-        etapeTypeId
-      )
+    async (administrationId, visible, etapeTypeId) => visibleCheck(administrationId, visible, 'etapes', 'prm', false, etapeTypeId)
   )
 
-  test.each<[AdministrationId, boolean, EtapeTypeId]>([
-    ['min-mtes-dgaln-01', true, 'mcr']
-  ])(
+  test.each<[AdministrationId, boolean, EtapeTypeId]>([['min-mtes-dgaln-01', true, 'mcr']])(
     "un utilisateur admin de l’administration $administrationId peut voir l'étape $etapeTypeId d'un titre PXM : $visible",
-    async (administrationId, visible, etapeTypeId) =>
-      visibleCheck(
-        administrationId,
-        visible,
-        'etapes',
-        'pxm',
-        false,
-        etapeTypeId
-      )
+    async (administrationId, visible, etapeTypeId) => visibleCheck(administrationId, visible, 'etapes', 'pxm', false, etapeTypeId)
   )
 })
 
 describe('Création des étapes', () => {
-  test.each<[AdministrationId]>([['min-mtes-dgaln-01']])(
-    'un utilisateur admin de l’administration $administrationId peut créer une étape $etapeTypeId sur un titre CXM',
-    async administrationId =>
-      creationCheck(administrationId, true, 'etapes', 'cxm')
+  test.each<[AdministrationId]>([['min-mtes-dgaln-01']])('un utilisateur admin de l’administration $administrationId peut créer une étape $etapeTypeId sur un titre CXM', async administrationId =>
+    creationCheck(administrationId, true, 'etapes', 'cxm')
   )
 
-  test.each<[AdministrationId]>([['min-mtes-dgaln-01']])(
-    'un utilisateur admin de l’administration $administrationId peut créer une étape mfr sur un titre PRM',
-    async administrationId =>
-      creationCheck(administrationId, true, 'etapes', 'prm')
+  test.each<[AdministrationId]>([['min-mtes-dgaln-01']])('un utilisateur admin de l’administration $administrationId peut créer une étape mfr sur un titre PRM', async administrationId =>
+    creationCheck(administrationId, true, 'etapes', 'prm')
   )
 
-  test.each<[AdministrationId]>([['min-mtes-dgaln-01']])(
-    'un utilisateur admin de l’administration $administrationId peut créer une étape mfr sur un titre PXM',
-    async administrationId =>
-      creationCheck(administrationId, true, 'etapes', 'pxm')
+  test.each<[AdministrationId]>([['min-mtes-dgaln-01']])('un utilisateur admin de l’administration $administrationId peut créer une étape mfr sur un titre PXM', async administrationId =>
+    creationCheck(administrationId, true, 'etapes', 'pxm')
   )
 })
diff --git a/packages/api/src/api/graphql/administrations-permissions-titres.test.integration.ts b/packages/api/src/api/graphql/administrations-permissions-titres.test.integration.ts
index cf47fe91c..15ac88a65 100644
--- a/packages/api/src/api/graphql/administrations-permissions-titres.test.integration.ts
+++ b/packages/api/src/api/graphql/administrations-permissions-titres.test.integration.ts
@@ -1,9 +1,5 @@
 import { dbManager } from '../../../tests/db-manager.js'
-import {
-  visibleCheck,
-  creationCheck,
-  modificationCheck
-} from '../../../tests/_utils/administrations-permissions.js'
+import { visibleCheck, creationCheck, modificationCheck } from '../../../tests/_utils/administrations-permissions.js'
 import Utilisateurs from '../../database/models/utilisateurs'
 
 import { afterAll, beforeEach, beforeAll, describe, test, vi } from 'vitest'
@@ -32,11 +28,9 @@ describe('Visibilité des titres par les administrations gestionnaires ou associ
     ['aut-mrae-guyane-01', true],
     ['min-mtes-dgec-01', true],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', true]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut voir un titre ARM : $visible',
-    async (administrationId, visible) =>
-      visibleCheck(administrationId, visible, 'titres', 'arm', false)
+    ['min-dajb-01', true],
+  ])('un utilisateur admin de l’administration $administrationId peut voir un titre ARM : $visible', async (administrationId, visible) =>
+    visibleCheck(administrationId, visible, 'titres', 'arm', false)
   )
 
   test.each<[AdministrationId, boolean]>([
@@ -47,11 +41,9 @@ describe('Visibilité des titres par les administrations gestionnaires ou associ
     ['aut-mrae-guyane-01', false],
     ['min-mtes-dgec-01', true],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', true]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut voir un titre AXM : $visible',
-    async (administrationId, visible) =>
-      visibleCheck(administrationId, visible, 'titres', 'axm', false)
+    ['min-dajb-01', true],
+  ])('un utilisateur admin de l’administration $administrationId peut voir un titre AXM : $visible', async (administrationId, visible) =>
+    visibleCheck(administrationId, visible, 'titres', 'axm', false)
   )
 
   test.each<[AdministrationId, boolean]>([
@@ -62,11 +54,9 @@ describe('Visibilité des titres par les administrations gestionnaires ou associ
     ['aut-mrae-guyane-01', false],
     ['min-mtes-dgec-01', true],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', true]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut voir un titre CXM : $visible',
-    async (administrationId, visible) =>
-      visibleCheck(administrationId, visible, 'titres', 'cxm', false)
+    ['min-dajb-01', true],
+  ])('un utilisateur admin de l’administration $administrationId peut voir un titre CXM : $visible', async (administrationId, visible) =>
+    visibleCheck(administrationId, visible, 'titres', 'cxm', false)
   )
 
   test.each<[AdministrationId, boolean]>([
@@ -77,11 +67,9 @@ describe('Visibilité des titres par les administrations gestionnaires ou associ
     ['aut-mrae-guyane-01', false],
     ['min-mtes-dgec-01', true],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', true]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut voir un titre PRM : $visible',
-    async (administrationId, visible) =>
-      visibleCheck(administrationId, visible, 'titres', 'prm', false)
+    ['min-dajb-01', true],
+  ])('un utilisateur admin de l’administration $administrationId peut voir un titre PRM : $visible', async (administrationId, visible) =>
+    visibleCheck(administrationId, visible, 'titres', 'prm', false)
   )
 
   test.each<[AdministrationId, boolean]>([
@@ -92,12 +80,8 @@ describe('Visibilité des titres par les administrations gestionnaires ou associ
     ['aut-mrae-guyane-01', false],
     ['min-mtes-dgec-01', true],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', true]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut voir un titre PXM : $voir',
-    async (administrationId, voir) =>
-      visibleCheck(administrationId, voir, 'titres', 'pxm', false)
-  )
+    ['min-dajb-01', true],
+  ])('un utilisateur admin de l’administration $administrationId peut voir un titre PXM : $voir', async (administrationId, voir) => visibleCheck(administrationId, voir, 'titres', 'pxm', false))
 })
 
 describe('Visibilité des titres par les administrations locales', () => {
@@ -106,60 +90,40 @@ describe('Visibilité des titres par les administrations locales', () => {
     ['dea-guyane-01', true],
     ['dre-grand-est-01', true],
     ['pre-97302-01', true],
-    ['aut-mrae-guyane-01', true]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut voir un titre ARM : $voir',
-    async (administrationId, voir) =>
-      visibleCheck(administrationId, voir, 'titres', 'arm', true)
-  )
+    ['aut-mrae-guyane-01', true],
+  ])('un utilisateur admin de l’administration $administrationId peut voir un titre ARM : $voir', async (administrationId, voir) => visibleCheck(administrationId, voir, 'titres', 'arm', true))
 
   test.each<[AdministrationId, boolean]>([
     ['ope-onf-973-01', true],
     ['dea-guyane-01', true],
     ['dre-grand-est-01', true],
     ['pre-97302-01', true],
-    ['aut-mrae-guyane-01', true]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut voir un titre AXM : $voir',
-    async (administrationId, voir) =>
-      visibleCheck(administrationId, voir, 'titres', 'axm', true)
-  )
+    ['aut-mrae-guyane-01', true],
+  ])('un utilisateur admin de l’administration $administrationId peut voir un titre AXM : $voir', async (administrationId, voir) => visibleCheck(administrationId, voir, 'titres', 'axm', true))
 
   test.each<[AdministrationId, boolean]>([
     ['ope-onf-973-01', true],
     ['dea-guyane-01', true],
     ['dre-grand-est-01', true],
     ['pre-97302-01', true],
-    ['aut-mrae-guyane-01', true]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut voir un titre CXM : $voir',
-    async (administrationId, voir) =>
-      visibleCheck(administrationId, voir, 'titres', 'cxm', true)
-  )
+    ['aut-mrae-guyane-01', true],
+  ])('un utilisateur admin de l’administration $administrationId peut voir un titre CXM : $voir', async (administrationId, voir) => visibleCheck(administrationId, voir, 'titres', 'cxm', true))
 
   test.each<[AdministrationId, boolean]>([
     ['ope-onf-973-01', true],
     ['dea-guyane-01', true],
     ['dre-grand-est-01', true],
     ['pre-97302-01', true],
-    ['aut-mrae-guyane-01', true]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut voir un titre PRM : $voir',
-    async (administrationId, voir) =>
-      visibleCheck(administrationId, voir, 'titres', 'prm', true)
-  )
+    ['aut-mrae-guyane-01', true],
+  ])('un utilisateur admin de l’administration $administrationId peut voir un titre PRM : $voir', async (administrationId, voir) => visibleCheck(administrationId, voir, 'titres', 'prm', true))
 
   test.each<[AdministrationId, boolean]>([
     ['ope-onf-973-01', true],
     ['dea-guyane-01', true],
     ['dre-grand-est-01', true],
     ['pre-97302-01', true],
-    ['aut-mrae-guyane-01', true]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut voir un titre PXM : $voir',
-    async (administrationId, voir) =>
-      visibleCheck(administrationId, voir, 'titres', 'pxm', true)
-  )
+    ['aut-mrae-guyane-01', true],
+  ])('un utilisateur admin de l’administration $administrationId peut voir un titre PXM : $voir', async (administrationId, voir) => visibleCheck(administrationId, voir, 'titres', 'pxm', true))
 })
 
 describe('Création des titres', () => {
@@ -167,54 +131,34 @@ describe('Création des titres', () => {
     ['ope-onf-973-01', true],
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut créer un titre ARM : $creer',
-    async (administrationId, creer) =>
-      creationCheck(administrationId, creer, 'titres', 'arm')
-  )
+    ['min-dajb-01', false],
+  ])('un utilisateur admin de l’administration $administrationId peut créer un titre ARM : $creer', async (administrationId, creer) => creationCheck(administrationId, creer, 'titres', 'arm'))
 
   test.each<[AdministrationId, boolean]>([
     ['ope-onf-973-01', true],
     ['dea-guyane-01', true],
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut créer un titre AXM : $creer',
-    async (administrationId, creer) =>
-      creationCheck(administrationId, creer, 'titres', 'axm')
-  )
+    ['min-dajb-01', false],
+  ])('un utilisateur admin de l’administration $administrationId peut créer un titre AXM : $creer', async (administrationId, creer) => creationCheck(administrationId, creer, 'titres', 'axm'))
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut créer un titre CXM : $creer',
-    async (administrationId, creer) =>
-      creationCheck(administrationId, creer, 'titres', 'cxm')
-  )
+    ['min-dajb-01', false],
+  ])('un utilisateur admin de l’administration $administrationId peut créer un titre CXM : $creer', async (administrationId, creer) => creationCheck(administrationId, creer, 'titres', 'cxm'))
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut créer un titre PRM : $creer',
-    async (administrationId, creer) =>
-      creationCheck(administrationId, creer, 'titres', 'prm')
-  )
+    ['min-dajb-01', false],
+  ])('un utilisateur admin de l’administration $administrationId peut créer un titre PRM : $creer', async (administrationId, creer) => creationCheck(administrationId, creer, 'titres', 'prm'))
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut créer un titre PXM : $creer',
-    async (administrationId, creer) =>
-      creationCheck(administrationId, creer, 'titres', 'pxm')
-  )
+    ['min-dajb-01', false],
+  ])('un utilisateur admin de l’administration $administrationId peut créer un titre PXM : $creer', async (administrationId, creer) => creationCheck(administrationId, creer, 'titres', 'pxm'))
 })
 
 describe('Modification des titres', () => {
@@ -222,11 +166,9 @@ describe('Modification des titres', () => {
     ['ope-onf-973-01', true],
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut modifier un titre ARM : $modifier',
-    async (administrationId, modifier) =>
-      modificationCheck(administrationId, modifier, 'titres', 'arm')
+    ['min-dajb-01', false],
+  ])('un utilisateur admin de l’administration $administrationId peut modifier un titre ARM : $modifier', async (administrationId, modifier) =>
+    modificationCheck(administrationId, modifier, 'titres', 'arm')
   )
 
   test.each<[AdministrationId, boolean]>([
@@ -234,40 +176,32 @@ describe('Modification des titres', () => {
     ['dea-guyane-01', true],
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut modifier un titre AXM : $modifier',
-    async (administrationId, modifier) =>
-      modificationCheck(administrationId, modifier, 'titres', 'axm')
+    ['min-dajb-01', false],
+  ])('un utilisateur admin de l’administration $administrationId peut modifier un titre AXM : $modifier', async (administrationId, modifier) =>
+    modificationCheck(administrationId, modifier, 'titres', 'axm')
   )
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut modifier un titre CXM : $modifier',
-    async (administrationId, modifier) =>
-      modificationCheck(administrationId, modifier, 'titres', 'cxm')
+    ['min-dajb-01', false],
+  ])('un utilisateur admin de l’administration $administrationId peut modifier un titre CXM : $modifier', async (administrationId, modifier) =>
+    modificationCheck(administrationId, modifier, 'titres', 'cxm')
   )
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut modifier un titre PRM : $modifier',
-    async (administrationId, modifier) =>
-      modificationCheck(administrationId, modifier, 'titres', 'prm')
+    ['min-dajb-01', false],
+  ])('un utilisateur admin de l’administration $administrationId peut modifier un titre PRM : $modifier', async (administrationId, modifier) =>
+    modificationCheck(administrationId, modifier, 'titres', 'prm')
   )
 
   test.each<[AdministrationId, boolean]>([
     ['min-mtes-dgec-01', false],
     ['min-mtes-dgaln-01', true],
-    ['min-dajb-01', false]
-  ])(
-    'un utilisateur admin de l’administration $administrationId peut modifier un titre PXM : $modifier',
-    async (administrationId, modifier) =>
-      modificationCheck(administrationId, modifier, 'titres', 'pxm')
+    ['min-dajb-01', false],
+  ])('un utilisateur admin de l’administration $administrationId peut modifier un titre PXM : $modifier', async (administrationId, modifier) =>
+    modificationCheck(administrationId, modifier, 'titres', 'pxm')
   )
 })
diff --git a/packages/api/src/api/graphql/documents.test.integration.ts b/packages/api/src/api/graphql/documents.test.integration.ts
index 1bc89d575..f703d2a67 100644
--- a/packages/api/src/api/graphql/documents.test.integration.ts
+++ b/packages/api/src/api/graphql/documents.test.integration.ts
@@ -1,30 +1,16 @@
 import { graphQLCall, queryImport } from '../../../tests/_utils/index.js'
 import { ITitreEtapeJustificatif } from '../../types.js'
-import {
-  documentCreate,
-  documentGet
-} from '../../database/queries/documents.js'
+import { documentCreate, documentGet } from '../../database/queries/documents.js'
 import { entrepriseUpsert } from '../../database/queries/entreprises.js'
 import { titreCreate } from '../../database/queries/titres.js'
-import {
-  titreEtapeCreate,
-  titresEtapesJustificatifsUpsert
-} from '../../database/queries/titres-etapes.js'
+import { titreEtapeCreate, titresEtapesJustificatifsUpsert } from '../../database/queries/titres-etapes.js'
 import { userSuper } from '../../database/user-super.js'
 import { dbManager } from '../../../tests/db-manager.js'
 import { titreDemarcheCreate } from '../../database/queries/titres-demarches.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 import { newEntrepriseId } from 'camino-common/src/entreprise.js'
 
-import {
-  afterAll,
-  afterEach,
-  beforeAll,
-  describe,
-  test,
-  expect,
-  vi
-} from 'vitest'
+import { afterAll, afterEach, beforeAll, describe, test, expect, vi } from 'vitest'
 
 console.info = vi.fn()
 console.error = vi.fn()
@@ -45,21 +31,13 @@ describe('documentSupprimer', () => {
   const documentSupprimerQuery = queryImport('documents-supprimer')
 
   test('ne peut pas supprimer un document (utilisateur anonyme)', async () => {
-    const res = await graphQLCall(
-      documentSupprimerQuery,
-      { id: 'toto' },
-      undefined
-    )
+    const res = await graphQLCall(documentSupprimerQuery, { id: 'toto' }, undefined)
 
     expect(res.body.errors[0].message).toBe('droits insuffisants')
   })
 
   test('ne peut pas supprimer un document inexistant (utilisateur super)', async () => {
-    const res = await graphQLCall(
-      documentSupprimerQuery,
-      { id: 'toto' },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(documentSupprimerQuery, { id: 'toto' }, { role: 'super' })
 
     expect(res.body.errors[0].message).toBe('aucun document avec cette id')
   })
@@ -73,14 +51,10 @@ describe('documentSupprimer', () => {
       id: documentId,
       typeId: 'fac',
       date: toCaminoDate('2023-01-12'),
-      entrepriseId
+      entrepriseId,
     })
 
-    const res = await graphQLCall(
-      documentSupprimerQuery,
-      { id: documentId },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(documentSupprimerQuery, { id: documentId }, { role: 'super' })
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body.data.documentSupprimer).toBeTruthy()
@@ -95,13 +69,13 @@ describe('documentSupprimer', () => {
       {
         nom: '',
         typeId: 'arm',
-        propsTitreEtapesIds: {}
+        propsTitreEtapesIds: {},
       },
       {}
     )
     const titreDemarche = await titreDemarcheCreate({
       titreId: titre.id,
-      typeId: 'oct'
+      typeId: 'oct',
     })
 
     const titreEtape = await titreEtapeCreate(
@@ -109,7 +83,7 @@ describe('documentSupprimer', () => {
         typeId: 'mfr',
         statutId: 'fai',
         titreDemarcheId: titreDemarche.id,
-        date: toCaminoDate('2022-01-01')
+        date: toCaminoDate('2022-01-01'),
       },
       userSuper,
       titre.id
@@ -120,25 +94,19 @@ describe('documentSupprimer', () => {
       id: documentId,
       typeId: 'fac',
       date: toCaminoDate('2023-01-12'),
-      entrepriseId
+      entrepriseId,
     })
 
     await titresEtapesJustificatifsUpsert([
       {
         documentId,
-        titreEtapeId: titreEtape.id
-      } as ITitreEtapeJustificatif
+        titreEtapeId: titreEtape.id,
+      } as ITitreEtapeJustificatif,
     ])
 
-    const res = await graphQLCall(
-      documentSupprimerQuery,
-      { id: documentId },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(documentSupprimerQuery, { id: documentId }, { role: 'super' })
 
-    expect(res.body.errors[0].message).toBe(
-      `impossible de supprimer ce document lié à l’étape ${titreEtape.id}`
-    )
+    expect(res.body.errors[0].message).toBe(`impossible de supprimer ce document lié à l’étape ${titreEtape.id}`)
   })
 
   test('peut supprimer un document d’étape (utilisateur super)', async () => {
@@ -149,14 +117,14 @@ describe('documentSupprimer', () => {
       {
         nom: '',
         typeId: 'arm',
-        propsTitreEtapesIds: {}
+        propsTitreEtapesIds: {},
       },
       {}
     )
 
     const titreDemarche = await titreDemarcheCreate({
       titreId: titre.id,
-      typeId: 'oct'
+      typeId: 'oct',
     })
 
     const titreEtape = await titreEtapeCreate(
@@ -164,7 +132,7 @@ describe('documentSupprimer', () => {
         typeId: 'mfr',
         statutId: 'aco',
         titreDemarcheId: titreDemarche.id,
-        date: toCaminoDate('2021-01-01')
+        date: toCaminoDate('2021-01-01'),
       },
       userSuper,
       titre.id
@@ -176,14 +144,10 @@ describe('documentSupprimer', () => {
       typeId: 'fac',
       date: toCaminoDate('2023-01-12'),
       entrepriseId,
-      titreEtapeId: titreEtape.id
+      titreEtapeId: titreEtape.id,
     })
 
-    const res = await graphQLCall(
-      documentSupprimerQuery,
-      { id: documentId },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(documentSupprimerQuery, { id: documentId }, { role: 'super' })
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body.data.documentSupprimer).toBeTruthy()
diff --git a/packages/api/src/api/graphql/entreprises.test.integration.ts b/packages/api/src/api/graphql/entreprises.test.integration.ts
index dd825c8de..096908394 100644
--- a/packages/api/src/api/graphql/entreprises.test.integration.ts
+++ b/packages/api/src/api/graphql/entreprises.test.integration.ts
@@ -1,36 +1,17 @@
 import { ITitreEtapeJustificatif } from '../../types.js'
 import { dbManager } from '../../../tests/db-manager.js'
 import { graphQLCall, queryImport } from '../../../tests/_utils/index.js'
-import {
-  entreprisesEtablissementsFetch,
-  entreprisesFetch,
-  tokenInitialize
-} from '../../tools/api-insee/fetch.js'
-import {
-  entreprise,
-  entrepriseAndEtablissements
-} from '../../../tests/__mocks__/fetch-insee-api.js'
+import { entreprisesEtablissementsFetch, entreprisesFetch, tokenInitialize } from '../../tools/api-insee/fetch.js'
+import { entreprise, entrepriseAndEtablissements } from '../../../tests/__mocks__/fetch-insee-api.js'
 import { entrepriseUpsert } from '../../database/queries/entreprises.js'
 import { titreCreate } from '../../database/queries/titres.js'
 import { documentCreate } from '../../database/queries/documents.js'
-import {
-  titreEtapeCreate,
-  titresEtapesJustificatifsUpsert
-} from '../../database/queries/titres-etapes.js'
+import { titreEtapeCreate, titresEtapesJustificatifsUpsert } from '../../database/queries/titres-etapes.js'
 import { titreDemarcheCreate } from '../../database/queries/titres-demarches.js'
 import { userSuper } from '../../database/user-super.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 import { newEntrepriseId } from 'camino-common/src/entreprise.js'
-import {
-  beforeAll,
-  beforeEach,
-  afterEach,
-  afterAll,
-  test,
-  expect,
-  describe,
-  vi
-} from 'vitest'
+import { beforeAll, beforeEach, afterEach, afterAll, test, expect, describe, vi } from 'vitest'
 console.info = vi.fn()
 console.error = vi.fn()
 
@@ -38,15 +19,12 @@ vi.mock('../../tools/api-insee/fetch', () => ({
   __esModule: true,
   tokenInitialize: vi.fn(),
   entreprisesFetch: vi.fn(),
-  entreprisesEtablissementsFetch: vi.fn()
+  entreprisesEtablissementsFetch: vi.fn(),
 }))
 
 const tokenInitializeMock = vi.mocked(tokenInitialize, true)
 const entrepriseFetchMock = vi.mocked(entreprisesFetch, true)
-const entreprisesEtablissementsFetchMock = vi.mocked(
-  entreprisesEtablissementsFetch,
-  true
-)
+const entreprisesEtablissementsFetchMock = vi.mocked(entreprisesEtablissementsFetch, true)
 beforeAll(async () => {
   await dbManager.populateDb()
 })
@@ -66,7 +44,7 @@ describe('entrepriseCreer', () => {
     const res = await graphQLCall(
       entrepriseCreerQuery,
       {
-        entreprise: { legalSiren: 'test', paysId: 'fr' }
+        entreprise: { legalSiren: 'test', paysId: 'fr' },
       },
       undefined
     )
@@ -77,90 +55,56 @@ describe('entrepriseCreer', () => {
   test("peut créer une entreprise (un utilisateur 'super')", async () => {
     tokenInitializeMock.mockResolvedValue('token')
     entrepriseFetchMock.mockResolvedValue([entreprise])
-    entreprisesEtablissementsFetchMock.mockResolvedValue([
-      entrepriseAndEtablissements
-    ])
+    entreprisesEtablissementsFetchMock.mockResolvedValue([entrepriseAndEtablissements])
 
-    const res = await graphQLCall(
-      entrepriseCreerQuery,
-      { entreprise: { legalSiren: '729800706', paysId: 'fr' } },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(entrepriseCreerQuery, { entreprise: { legalSiren: '729800706', paysId: 'fr' } }, { role: 'super' })
 
     expect(res.body).toMatchObject({
       data: {
         entrepriseCreer: {
-          legalSiren: '729800706'
-        }
-      }
+          legalSiren: '729800706',
+        },
+      },
     })
     expect(res.body.errors).toBeUndefined()
   })
 
   test("ne peut pas créer une entreprise déjà existante (un utilisateur 'super')", async () => {
-    await graphQLCall(
-      entrepriseCreerQuery,
-      { entreprise: { legalSiren: '729800706', paysId: 'fr' } },
-      { role: 'super' }
-    )
+    await graphQLCall(entrepriseCreerQuery, { entreprise: { legalSiren: '729800706', paysId: 'fr' } }, { role: 'super' })
 
-    const res = await graphQLCall(
-      entrepriseCreerQuery,
-      { entreprise: { legalSiren: '729800706', paysId: 'fr' } },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(entrepriseCreerQuery, { entreprise: { legalSiren: '729800706', paysId: 'fr' } }, { role: 'super' })
 
-    expect(res.body.errors[0].message).toBe(
-      "l'entreprise PLACOPLATRE existe déjà dans Camino"
-    )
+    expect(res.body.errors[0].message).toBe("l'entreprise PLACOPLATRE existe déjà dans Camino")
   })
 
   test("ne peut pas créer une entreprise avec un siren invalide (un utilisateur 'super')", async () => {
     tokenInitializeMock.mockResolvedValue('token')
     entrepriseFetchMock.mockResolvedValue([])
 
-    const res = await graphQLCall(
-      entrepriseCreerQuery,
-      { entreprise: { legalSiren: 'invalid', paysId: 'fr' } },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(entrepriseCreerQuery, { entreprise: { legalSiren: 'invalid', paysId: 'fr' } }, { role: 'super' })
 
-    expect(res.body.errors[0].message).toBe(
-      'numéro de siren non reconnu dans la base Insee'
-    )
+    expect(res.body.errors[0].message).toBe('numéro de siren non reconnu dans la base Insee')
   })
 
   test("ne peut pas créer une entreprise étrangère (un utilisateur 'super')", async () => {
-    const res = await graphQLCall(
-      entrepriseCreerQuery,
-      { entreprise: { legalSiren: '729800706', paysId: 'en' } },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(entrepriseCreerQuery, { entreprise: { legalSiren: '729800706', paysId: 'en' } }, { role: 'super' })
 
-    expect(res.body.errors[0].message).toBe(
-      'impossible de créer une entreprise étrangère'
-    )
+    expect(res.body.errors[0].message).toBe('impossible de créer une entreprise étrangère')
   })
 
   test('n’est pas archivée à la création par défaut (utilisateur super)', async () => {
     tokenInitializeMock.mockResolvedValue('token')
     entrepriseFetchMock.mockResolvedValue([entreprise])
-    entreprisesEtablissementsFetchMock.mockResolvedValue([
-      entrepriseAndEtablissements
-    ])
+    entreprisesEtablissementsFetchMock.mockResolvedValue([entrepriseAndEtablissements])
 
-    const res = await graphQLCall(
-      entrepriseCreerQuery,
-      { entreprise: { legalSiren: '729800706', paysId: 'fr' } },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(entrepriseCreerQuery, { entreprise: { legalSiren: '729800706', paysId: 'fr' } }, { role: 'super' })
 
     expect(res.body).toMatchObject({
       data: {
         entrepriseCreer: {
-          archive: false
-        }
-      }
+          archive: false,
+        },
+      },
     })
   })
 })
@@ -173,15 +117,9 @@ describe('entrepriseModifier', () => {
   beforeEach(async () => {
     tokenInitializeMock.mockResolvedValue('token')
     entrepriseFetchMock.mockResolvedValue([entreprise])
-    entreprisesEtablissementsFetchMock.mockResolvedValue([
-      entrepriseAndEtablissements
-    ])
+    entreprisesEtablissementsFetchMock.mockResolvedValue([entrepriseAndEtablissements])
 
-    const res = await graphQLCall(
-      queryImport('entreprise-creer'),
-      { entreprise: { legalSiren: '729800706', paysId: 'fr' } },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(queryImport('entreprise-creer'), { entreprise: { legalSiren: '729800706', paysId: 'fr' } }, { role: 'super' })
 
     entrepriseId = res.body.data.entrepriseCreer.id
   })
@@ -190,7 +128,7 @@ describe('entrepriseModifier', () => {
     const res = await graphQLCall(
       entrepriseModifierQuery,
       {
-        entreprise: { id: entrepriseId, email: 'toto@gmail.com' }
+        entreprise: { id: entrepriseId, email: 'toto@gmail.com' },
       },
       undefined
     )
@@ -199,51 +137,35 @@ describe('entrepriseModifier', () => {
   })
 
   test("peut modifier une entreprise (un utilisateur 'super')", async () => {
-    const res = await graphQLCall(
-      entrepriseModifierQuery,
-      { entreprise: { id: entrepriseId, email: 'toto@gmail.com' } },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(entrepriseModifierQuery, { entreprise: { id: entrepriseId, email: 'toto@gmail.com' } }, { role: 'super' })
 
     expect(res.body).toMatchObject({
       data: {
-        entrepriseModifier: { email: 'toto@gmail.com' }
-      }
+        entrepriseModifier: { email: 'toto@gmail.com' },
+      },
     })
     expect(res.body.errors).toBeUndefined()
   })
 
   test("ne peut pas modifier une entreprise avec un email invalide (un utilisateur 'super')", async () => {
-    const res = await graphQLCall(
-      entrepriseModifierQuery,
-      { entreprise: { id: entrepriseId, email: 'totogmail.com' } },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(entrepriseModifierQuery, { entreprise: { id: entrepriseId, email: 'totogmail.com' } }, { role: 'super' })
 
     expect(res.body.errors[0].message).toBe('adresse email invalide')
   })
 
   test("ne peut pas modifier une entreprise inexistante (un utilisateur 'super')", async () => {
-    const res = await graphQLCall(
-      entrepriseModifierQuery,
-      { entreprise: { id: 'id-inconnu' } },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(entrepriseModifierQuery, { entreprise: { id: 'id-inconnu' } }, { role: 'super' })
 
     expect(res.body.errors[0].message).toBe('entreprise inconnue')
   })
 
   test('peut archiver une entreprise (super)', async () => {
-    const res = await graphQLCall(
-      entrepriseModifierQuery,
-      { entreprise: { id: entrepriseId, archive: true } },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(entrepriseModifierQuery, { entreprise: { id: entrepriseId, archive: true } }, { role: 'super' })
 
     expect(res.body).toMatchObject({
       data: {
-        entrepriseModifier: { archive: true }
-      }
+        entrepriseModifier: { archive: true },
+      },
     })
     expect(res.body.errors).toBeUndefined()
   })
@@ -260,21 +182,21 @@ describe('entreprise', () => {
       {
         nom: '',
         typeId: 'arm',
-        propsTitreEtapesIds: {}
+        propsTitreEtapesIds: {},
       },
       {}
     )
 
     const titreDemarche = await titreDemarcheCreate({
       titreId: titre.id,
-      typeId: 'oct'
+      typeId: 'oct',
     })
     const titreEtape = await titreEtapeCreate(
       {
         typeId: 'mfr',
         statutId: 'fai',
         titreDemarcheId: titreDemarche.id,
-        date: toCaminoDate('2022-01-01')
+        date: toCaminoDate('2022-01-01'),
       },
       userSuper,
       titre.id
@@ -285,18 +207,12 @@ describe('entreprise', () => {
       id: documentId,
       typeId: 'fac',
       date: toCaminoDate('2023-01-12'),
-      entrepriseId
+      entrepriseId,
     })
 
-    await titresEtapesJustificatifsUpsert([
-      { documentId, titreEtapeId: titreEtape.id } as ITitreEtapeJustificatif
-    ])
+    await titresEtapesJustificatifsUpsert([{ documentId, titreEtapeId: titreEtape.id } as ITitreEtapeJustificatif])
 
-    const res = await graphQLCall(
-      entrepriseQuery,
-      { id: entrepriseId },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(entrepriseQuery, { id: entrepriseId }, { role: 'super' })
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body.data.entreprise.documents[0].modification).toBe(false)
@@ -312,14 +228,10 @@ describe('entreprise', () => {
       id: documentId,
       typeId: 'fac',
       date: toCaminoDate('2023-01-12'),
-      entrepriseId
+      entrepriseId,
     })
 
-    const res = await graphQLCall(
-      entrepriseQuery,
-      { id: entrepriseId },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(entrepriseQuery, { id: entrepriseId }, { role: 'super' })
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body.data.entreprise.documents[0].modification).toBe(true)
@@ -336,23 +248,15 @@ describe('entreprises', () => {
       await entrepriseUpsert({
         id: newEntrepriseId(`${entrepriseId}-${i}`),
         nom: `${entrepriseId}-${i}`,
-        archive: i > 3
+        archive: i > 3,
       })
     }
 
-    let res = await graphQLCall(
-      entreprisesQuery,
-      { archive: false },
-      { role: 'super' }
-    )
+    let res = await graphQLCall(entreprisesQuery, { archive: false }, { role: 'super' })
     expect(res.body.errors).toBeUndefined()
     expect(res.body.data.entreprises.elements).toHaveLength(4)
 
-    res = await graphQLCall(
-      entreprisesQuery,
-      { archive: true },
-      { role: 'super' }
-    )
+    res = await graphQLCall(entreprisesQuery, { archive: true }, { role: 'super' })
     expect(res.body.data.entreprises.elements).toHaveLength(6)
 
     res = await graphQLCall(entreprisesQuery, {}, { role: 'super' })
diff --git a/packages/api/src/api/graphql/resolvers.ts b/packages/api/src/api/graphql/resolvers.ts
index 8a83525e4..186a1732d 100644
--- a/packages/api/src/api/graphql/resolvers.ts
+++ b/packages/api/src/api/graphql/resolvers.ts
@@ -1,45 +1,15 @@
 import GraphQLJSON from 'graphql-type-json'
 import { GraphQLUpload } from 'graphql-upload'
 
-import {
-  titre,
-  titres,
-  titreCreer,
-  titreSupprimer,
-  titreModifier
-} from './resolvers/titres.js'
+import { titre, titres, titreCreer, titreSupprimer, titreModifier } from './resolvers/titres.js'
 
-import {
-  etape,
-  etapeHeritage,
-  etapeCreer,
-  etapeModifier,
-  etapeSupprimer,
-  etapeDeposer
-} from './resolvers/titres-etapes.js'
+import { etape, etapeHeritage, etapeCreer, etapeModifier, etapeSupprimer, etapeDeposer } from './resolvers/titres-etapes.js'
 
-import {
-  documents,
-  documentCreer,
-  documentModifier,
-  documentSupprimer
-} from './resolvers/documents.js'
+import { documents, documentCreer, documentModifier, documentSupprimer } from './resolvers/documents.js'
 
-import {
-  demarche,
-  demarches,
-  demarcheCreer,
-  demarcheModifier,
-  demarcheSupprimer
-} from './resolvers/titres-demarches.js'
+import { demarche, demarches, demarcheCreer, demarcheModifier, demarcheSupprimer } from './resolvers/titres-demarches.js'
 
-import {
-  utilisateur,
-  utilisateurs,
-  utilisateurModifier,
-  utilisateurSupprimer,
-  newsletterInscrire
-} from './resolvers/utilisateurs.js'
+import { utilisateur, utilisateurs, utilisateurModifier, utilisateurSupprimer, newsletterInscrire } from './resolvers/utilisateurs.js'
 
 import {
   devises,
@@ -59,16 +29,10 @@ import {
   administrationsTypes,
   regions,
   departements,
-  pays
+  pays,
 } from './resolvers/metas.js'
 
-import {
-  activitesTypes,
-  activitesStatuts,
-  activitesTypesTitresTypes,
-  activitesTypesDocumentsTypes,
-  activitesTypesPays
-} from './resolvers/metas-activites.js'
+import { activitesTypes, activitesStatuts, activitesTypesTitresTypes, activitesTypesDocumentsTypes, activitesTypesPays } from './resolvers/metas-activites.js'
 
 import {
   titresTypes,
@@ -76,18 +40,12 @@ import {
   titresTypesDemarchesTypesEtapesTypes,
   titresTypesDemarchesTypesEtapesTypesJustificatifsTypes,
   etapesTypesDocumentsTypes,
-  etapesTypesJustificatifsTypes
+  etapesTypesJustificatifsTypes,
 } from './resolvers/metas-join.js'
 
 import { substances } from './resolvers/substances.js'
 
-import {
-  entreprise,
-  entreprises,
-  entrepriseCreer,
-  entrepriseModifier,
-  entreprisesTitresCreation
-} from './resolvers/entreprises.js'
+import { entreprise, entreprises, entrepriseCreer, entrepriseModifier, entreprisesTitresCreation } from './resolvers/entreprises.js'
 import {
   administration,
   administrations,
@@ -96,23 +54,13 @@ import {
   administrationActiviteTypeModifier,
   administrationActiviteTypeEmailCreer,
   administrationActiviteTypeEmailSupprimer,
-  administrationActivitesTypesEmails
+  administrationActivitesTypesEmails,
 } from './resolvers/administrations.js'
-import {
-  activite,
-  activites,
-  activiteModifier,
-  activiteSupprimer,
-  activiteDeposer
-} from './resolvers/titres-activites.js'
+import { activite, activites, activiteModifier, activiteSupprimer, activiteDeposer } from './resolvers/titres-activites.js'
 import { statistiquesGlobales } from './resolvers/statistiques.js'
 
 import { titreDemandeCreer } from './resolvers/titre-demande.js'
-import {
-  pointsImporter,
-  perimetreInformations,
-  titreEtapePerimetreInformations
-} from './resolvers/points.js'
+import { pointsImporter, perimetreInformations, titreEtapePerimetreInformations } from './resolvers/points.js'
 import { journaux } from './resolvers/journaux.js'
 import { utilisateurTitreAbonner } from './resolvers/utilisateurs-titres.js'
 
@@ -203,5 +151,5 @@ export default {
   administrationActiviteTypeModifier,
   administrationActiviteTypeEmailCreer,
   administrationActiviteTypeEmailSupprimer,
-  titreDemandeCreer
+  titreDemandeCreer,
 }
diff --git a/packages/api/src/api/graphql/resolvers/_fields-build.ts b/packages/api/src/api/graphql/resolvers/_fields-build.ts
index bb5c8218f..cb55c682c 100644
--- a/packages/api/src/api/graphql/resolvers/_fields-build.ts
+++ b/packages/api/src/api/graphql/resolvers/_fields-build.ts
@@ -4,5 +4,4 @@ import { GraphQLResolveInfo } from 'graphql'
 
 // in: info: objet contenant les propriétés de la requête graphQl
 // out: ast avec les champs requis par le client GraphQl
-export const fieldsBuild = (info: GraphQLResolveInfo) =>
-  graphqlFields(info, {}, { excludedFields: ['__typename'] }) as IFields
+export const fieldsBuild = (info: GraphQLResolveInfo) => graphqlFields(info, {}, { excludedFields: ['__typename'] }) as IFields
diff --git a/packages/api/src/api/graphql/resolvers/_ordre-update.ts b/packages/api/src/api/graphql/resolvers/_ordre-update.ts
index 116f74d49..6a19983db 100644
--- a/packages/api/src/api/graphql/resolvers/_ordre-update.ts
+++ b/packages/api/src/api/graphql/resolvers/_ordre-update.ts
@@ -1,15 +1,9 @@
-const ordreUpdate = async <I extends { id: string; ordre: number }, O>(
-  element: I,
-  elements: I[],
-  update: (id: string, props: Partial<I>) => Promise<O>
-) => {
+const ordreUpdate = async <I extends { id: string; ordre: number }, O>(element: I, elements: I[], update: (id: string, props: Partial<I>) => Promise<O>) => {
   const elementOld = elements.find(d => d.id === element.id)
 
   // l'ordre augmente
   if (elementOld && element.ordre > elementOld.ordre) {
-    const elementsModified = elements.filter(
-      d => d.ordre > elementOld.ordre && d.ordre <= element.ordre!
-    )
+    const elementsModified = elements.filter(d => d.ordre > elementOld.ordre && d.ordre <= element.ordre!)
 
     for (const d of elementsModified) {
       await update(d.id!, { ordre: d.ordre - 1 } as Partial<I>)
@@ -17,9 +11,7 @@ const ordreUpdate = async <I extends { id: string; ordre: number }, O>(
   }
   // l'ordre diminue
   else if (elementOld && element.ordre < elementOld.ordre) {
-    const elementsModified = elements.filter(
-      d => d.ordre < elementOld.ordre && d.ordre >= element.ordre!
-    )
+    const elementsModified = elements.filter(d => d.ordre < elementOld.ordre && d.ordre >= element.ordre!)
 
     for (const d of elementsModified) {
       await update(d.id!, { ordre: d.ordre + 1 } as Partial<I>)
@@ -27,10 +19,7 @@ const ordreUpdate = async <I extends { id: string; ordre: number }, O>(
   }
 }
 
-const ordreFix = async <I extends { id: string; ordre: number }, O>(
-  elements: I[],
-  update: (id: string, props: Partial<I>) => Promise<O>
-) => {
+const ordreFix = async <I extends { id: string; ordre: number }, O>(elements: I[], update: (id: string, props: Partial<I>) => Promise<O>) => {
   for (let i = 0; i < elements.length; i++) {
     const element = elements[i]
 
diff --git a/packages/api/src/api/graphql/resolvers/_titre-activite.test.ts b/packages/api/src/api/graphql/resolvers/_titre-activite.test.ts
index 0efb1abff..fae7d1382 100644
--- a/packages/api/src/api/graphql/resolvers/_titre-activite.test.ts
+++ b/packages/api/src/api/graphql/resolvers/_titre-activite.test.ts
@@ -1,34 +1,24 @@
-import {
-  productionCheck,
-  titreActiviteAdministrationsEmailsGet
-} from './_titre-activite.js'
+import { productionCheck, titreActiviteAdministrationsEmailsGet } from './_titre-activite.js'
 import { IAdministrationActiviteTypeEmail, IContenu } from '../../../types.js'
-import {
-  AdministrationId,
-  ADMINISTRATION_IDS
-} from 'camino-common/src/static/administrations.js'
+import { AdministrationId, ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
 import { describe, expect, test } from 'vitest'
 
 describe('teste la construction des emails lors du dépôt d’une activité', () => {
   describe('teste le calcul des emails des administrations', () => {
-    test.each<
-      | null
-      | undefined
-      | Pick<IAdministrationActiviteTypeEmail, 'activiteTypeId' | 'email'>[]
-    >([
+    test.each<null | undefined | Pick<IAdministrationActiviteTypeEmail, 'activiteTypeId' | 'email'>[]>([
       null,
       undefined,
       [],
       [{ activiteTypeId: 'grx', email: '' }],
       [{ activiteTypeId: 'gra', email: 'toto@foo.bar' }],
-      [{ activiteTypeId: 'grx', email: 'toto@foo.bar' }]
+      [{ activiteTypeId: 'grx', email: 'toto@foo.bar' }],
     ])('qu’on envoie pas d’emails', administrationActiviteTypeEmail => {
       expect(
         titreActiviteAdministrationsEmailsGet(
           ['ope-onf-973-01'],
           administrationActiviteTypeEmail?.map(a => ({
             ...a,
-            administrationId: 'ope-onf-973-01'
+            administrationId: 'ope-onf-973-01',
           })),
           'grx',
           undefined
@@ -37,32 +27,15 @@ describe('teste la construction des emails lors du dépôt d’une activité', (
     })
 
     test.each<[AdministrationId, boolean]>([
-      [
-        ADMINISTRATION_IDS[
-          "DAJ - MINISTÈRE DE L'ECONOMIE, DES FINANCES ET DE LA RELANCE"
-        ],
-        true
-      ],
+      [ADMINISTRATION_IDS["DAJ - MINISTÈRE DE L'ECONOMIE, DES FINANCES ET DE LA RELANCE"], true],
       [ADMINISTRATION_IDS['DREAL - BRETAGNE'], true],
       [ADMINISTRATION_IDS['DEAL - LA RÉUNION'], true],
       [ADMINISTRATION_IDS['PRÉFECTURE - ALLIER'], false],
       [ADMINISTRATION_IDS['BRGM - PROJET ZERCOA'], false],
-      [ADMINISTRATION_IDS['GENDARMERIE NATIONALE - GUYANE'], false]
-    ])(
-      'si la production est nulle on envoie des emails que aux ministères et au DREAL',
-      (administrationId, envoie) => {
-        expect(
-          titreActiviteAdministrationsEmailsGet(
-            [administrationId],
-            [
-              { activiteTypeId: 'grx', email: 'toto@foo.bar', administrationId }
-            ],
-            'grx',
-            undefined
-          )
-        ).toHaveLength(envoie ? 1 : 0)
-      }
-    )
+      [ADMINISTRATION_IDS['GENDARMERIE NATIONALE - GUYANE'], false],
+    ])('si la production est nulle on envoie des emails que aux ministères et au DREAL', (administrationId, envoie) => {
+      expect(titreActiviteAdministrationsEmailsGet([administrationId], [{ activiteTypeId: 'grx', email: 'toto@foo.bar', administrationId }], 'grx', undefined)).toHaveLength(envoie ? 1 : 0)
+    })
   })
 
   describe('teste le calcul de la production', () => {
@@ -74,13 +47,10 @@ describe('teste la construction des emails lors du dépôt d’une activité', (
       ['grx', false],
       ['wrp', false],
       ['grp', false],
-      ['gra', false]
-    ])(
-      'la production est positive sur les type d’activités sans exploitation',
-      (typeId, positive) => {
-        expect(productionCheck(typeId, undefined)).toEqual(!!positive)
-      }
-    )
+      ['gra', false],
+    ])('la production est positive sur les type d’activités sans exploitation', (typeId, positive) => {
+      expect(productionCheck(typeId, undefined)).toEqual(!!positive)
+    })
 
     test.each<[IContenu | undefined, boolean]>([
       [undefined, false],
@@ -88,11 +58,9 @@ describe('teste la construction des emails lors du dépôt d’une activité', (
       [{ substancesFiscales: {} }, false],
       [{ substancesFiscales: { auru: 0 } }, false],
       [{ substancesFiscales: { auru: 10 } }, true],
-      [{ substancesFiscales: { iiii: 0, auru: 10 } }, true]
+      [{ substancesFiscales: { iiii: 0, auru: 10 } }, true],
     ])('teste la production des GRX et GRA', (contenu, positive) => {
-      ;['grx', 'gra'].forEach(typeId =>
-        expect(productionCheck(typeId, contenu)).toEqual(!!positive)
-      )
+      ;['grx', 'gra'].forEach(typeId => expect(productionCheck(typeId, contenu)).toEqual(!!positive))
     })
 
     test.each<[IContenu | undefined, boolean]>([
@@ -101,7 +69,7 @@ describe('teste la construction des emails lors du dépôt d’une activité', (
       [{ renseignements: {} }, false],
       [{ renseignements: { orExtrait: null } }, false],
       [{ renseignements: { orExtrait: 0 } }, false],
-      [{ renseignements: { orExtrait: 232 } }, true]
+      [{ renseignements: { orExtrait: 232 } }, true],
     ])('teste la production des GRP', (contenu, positive) => {
       expect(productionCheck('grp', contenu)).toEqual(!!positive)
     })
@@ -111,7 +79,7 @@ describe('teste la construction des emails lors du dépôt d’une activité', (
       [{}, false],
       [{ renseignementsProduction: {} }, false],
       [{ renseignementsProduction: { volumeGranulatsExtrait: 0 } }, false],
-      [{ renseignementsProduction: { volumeGranulatsExtrait: 232 } }, true]
+      [{ renseignementsProduction: { volumeGranulatsExtrait: 232 } }, true],
     ])('teste la production des WRP', (contenu, positive) => {
       expect(productionCheck('wrp', contenu)).toEqual(!!positive)
     })
diff --git a/packages/api/src/api/graphql/resolvers/_titre-activite.ts b/packages/api/src/api/graphql/resolvers/_titre-activite.ts
index b5fa4ddd0..46fd29362 100644
--- a/packages/api/src/api/graphql/resolvers/_titre-activite.ts
+++ b/packages/api/src/api/graphql/resolvers/_titre-activite.ts
@@ -1,33 +1,15 @@
-import {
-  IAdministrationActiviteTypeEmail,
-  IContenu,
-  IContenuValeur,
-  ISection,
-  ISectionElement,
-  ITitreActivite,
-  IUtilisateur
-} from '../../../types.js'
+import { IAdministrationActiviteTypeEmail, IContenu, IContenuValeur, ISection, ISectionElement, ITitreActivite, IUtilisateur } from '../../../types.js'
 
 import { emailsSend } from '../../../tools/api-mailjet/emails.js'
 import { titreUrlGet } from '../../../business/utils/urls-get.js'
 import { UserNotNull } from 'camino-common/src/roles.js'
 import { getPeriode } from 'camino-common/src/static/frequence.js'
-import {
-  AdministrationId,
-  Administrations
-} from 'camino-common/src/static/administrations.js'
+import { AdministrationId, Administrations } from 'camino-common/src/static/administrations.js'
 import { dateFormat } from 'camino-common/src/date.js'
 import AdministrationsActivitesTypesEmails from '../../../database/models/administrations-activites-types-emails.js'
 
-const elementHtmlBuild = (
-  sectionId: string,
-  element: ISectionElement,
-  contenu: IContenu
-) =>
-  contenu[sectionId] &&
-  ((contenu[sectionId][element.id] as IContenuValeur) ||
-    (contenu[sectionId][element.id] as IContenuValeur) === 0 ||
-    (contenu[sectionId][element.id] as IContenuValeur) === false)
+const elementHtmlBuild = (sectionId: string, element: ISectionElement, contenu: IContenu) =>
+  contenu[sectionId] && ((contenu[sectionId][element.id] as IContenuValeur) || (contenu[sectionId][element.id] as IContenuValeur) === 0 || (contenu[sectionId][element.id] as IContenuValeur) === false)
     ? `<li><strong>${element.nom ? element.nom + ' : ' : ''}</strong>${
         element.type === 'checkboxes'
           ? (contenu[sectionId][element.id] as string[])
@@ -45,11 +27,7 @@ const elementHtmlBuild = (
       } <br><small>${element.description}</small></li>`
     : `<li>–</li>`
 
-const elementsHtmlBuild = (
-  sectionId: string,
-  elements: ISectionElement[],
-  contenu: IContenu
-) =>
+const elementsHtmlBuild = (sectionId: string, elements: ISectionElement[], contenu: IContenu) =>
   elements
     ? elements.reduce(
         (html, element) => `
@@ -61,10 +39,7 @@ ${elementHtmlBuild(sectionId, element, contenu)}
       )
     : ''
 
-const sectionHtmlBuild = (
-  { id, nom, elements }: ISection,
-  contenu: IContenu
-) => {
+const sectionHtmlBuild = ({ id, nom, elements }: ISection, contenu: IContenu) => {
   const sectionNomHtml = nom ? `<h2>${nom}</h2>` : ''
 
   const listHtml = elements
@@ -79,11 +54,7 @@ ${listHtml}
     `
 }
 
-const titreActiviteEmailFormat = (
-  { contenu, titreId, dateSaisie, sections }: ITitreActivite,
-  emailTitle: string,
-  user: UserNotNull
-) => {
+const titreActiviteEmailFormat = ({ contenu, titreId, dateSaisie, sections }: ITitreActivite, emailTitle: string, user: UserNotNull) => {
   const titreUrl = titreUrlGet(titreId)
 
   const header = `
@@ -116,30 +87,17 @@ ${body}
 `
 }
 
-const titreActiviteEmailTitleFormat = (
-  activite: ITitreActivite,
-  titreNom: string
-) =>
-  `${titreNom} | ${activite.type!.nom}, ${getPeriode(
-    activite.type?.frequenceId,
-    activite.periodeId
-  )} ${activite.annee}`
-
-const titreActiviteUtilisateursEmailsGet = (
-  utilisateurs: IUtilisateur[] | undefined | null
-): string[] => {
+const titreActiviteEmailTitleFormat = (activite: ITitreActivite, titreNom: string) =>
+  `${titreNom} | ${activite.type!.nom}, ${getPeriode(activite.type?.frequenceId, activite.periodeId)} ${activite.annee}`
+
+const titreActiviteUtilisateursEmailsGet = (utilisateurs: IUtilisateur[] | undefined | null): string[] => {
   return utilisateurs?.filter(u => !!u.email).map(u => u.email!) || []
 }
 
-export const productionCheck = (
-  activiteTypeId: string,
-  contenu: IContenu | null | undefined
-) => {
+export const productionCheck = (activiteTypeId: string, contenu: IContenu | null | undefined) => {
   if (activiteTypeId === 'grx' || activiteTypeId === 'gra') {
     if (contenu?.substancesFiscales) {
-      return Object.keys(contenu.substancesFiscales).some(
-        key => !!contenu.substancesFiscales[key]
-      )
+      return Object.keys(contenu.substancesFiscales).some(key => !!contenu.substancesFiscales[key])
     }
 
     return false
@@ -156,10 +114,7 @@ export const productionCheck = (
 
 export const titreActiviteAdministrationsEmailsGet = (
   administrationIds: AdministrationId[],
-  administrationsActivitesTypesEmails:
-    | IAdministrationActiviteTypeEmail[]
-    | null
-    | undefined,
+  administrationsActivitesTypesEmails: IAdministrationActiviteTypeEmail[] | null | undefined,
   activiteTypeId: string,
   contenu: IContenu | null | undefined
 ): string[] => {
@@ -167,20 +122,15 @@ export const titreActiviteAdministrationsEmailsGet = (
     return []
   }
 
-  const activitesTypesEmailsByAdministrationId = (
-    administrationsActivitesTypesEmails ?? []
-  ).reduce<Record<AdministrationId, IAdministrationActiviteTypeEmail[]>>(
-    (acc, a) => {
-      if (!acc[a.administrationId]) {
-        acc[a.administrationId] = []
-      }
+  const activitesTypesEmailsByAdministrationId = (administrationsActivitesTypesEmails ?? []).reduce<Record<AdministrationId, IAdministrationActiviteTypeEmail[]>>((acc, a) => {
+    if (!acc[a.administrationId]) {
+      acc[a.administrationId] = []
+    }
 
-      acc[a.administrationId].push(a)
+    acc[a.administrationId].push(a)
 
-      return acc
-    },
-    {} as Record<AdministrationId, IAdministrationActiviteTypeEmail[]>
-  )
+    return acc
+  }, {} as Record<AdministrationId, IAdministrationActiviteTypeEmail[]>)
 
   // Si production > 0, envoyer à toutes les administrations liées au titre
   // sinon envoyer seulement aux minitères et aux DREAL
@@ -189,45 +139,20 @@ export const titreActiviteAdministrationsEmailsGet = (
   return (
     administrationIds
       .map(id => Administrations[id])
-      .filter(
-        administration =>
-          production || ['min', 'dre', 'dea'].includes(administration.typeId)
-      )
-      .flatMap(
-        administration =>
-          activitesTypesEmailsByAdministrationId[administration.id]
-      )
+      .filter(administration => production || ['min', 'dre', 'dea'].includes(administration.typeId))
+      .flatMap(administration => activitesTypesEmailsByAdministrationId[administration.id])
       .filter(activiteTypeEmail => !!activiteTypeEmail)
-      .filter(
-        activiteTypeEmail => activiteTypeEmail.activiteTypeId === activiteTypeId
-      )
+      .filter(activiteTypeEmail => activiteTypeEmail.activiteTypeId === activiteTypeId)
       .filter(activiteTypeEmail => activiteTypeEmail.email)
       .map(activiteTypeEmail => activiteTypeEmail.email) || []
   )
 }
 
-const titreActiviteEmailsSend = async (
-  activite: ITitreActivite,
-  titreNom: string,
-  user: UserNotNull,
-  utilisateurs: IUtilisateur[] | undefined | null,
-  administrationIds: AdministrationId[]
-) => {
+const titreActiviteEmailsSend = async (activite: ITitreActivite, titreNom: string, user: UserNotNull, utilisateurs: IUtilisateur[] | undefined | null, administrationIds: AdministrationId[]) => {
   const emails = titreActiviteUtilisateursEmailsGet(utilisateurs)
 
-  const administrationsActivitesTypesEmails =
-    await AdministrationsActivitesTypesEmails.query().whereIn(
-      'administrationId',
-      administrationIds
-    )
-  emails.push(
-    ...titreActiviteAdministrationsEmailsGet(
-      administrationIds,
-      administrationsActivitesTypesEmails,
-      activite.typeId,
-      activite.contenu
-    )
-  )
+  const administrationsActivitesTypesEmails = await AdministrationsActivitesTypesEmails.query().whereIn('administrationId', administrationIds)
+  emails.push(...titreActiviteAdministrationsEmailsGet(administrationIds, administrationsActivitesTypesEmails, activite.typeId, activite.contenu))
   if (!emails.length) {
     return
   }
diff --git a/packages/api/src/api/graphql/resolvers/_titre-document.ts b/packages/api/src/api/graphql/resolvers/_titre-document.ts
index 05f8502b0..2417acc7e 100644
--- a/packages/api/src/api/graphql/resolvers/_titre-document.ts
+++ b/packages/api/src/api/graphql/resolvers/_titre-document.ts
@@ -4,10 +4,7 @@ import { IDocumentRepertoire } from '../../../types.js'
 
 import { dirDelete } from '../../../tools/dir-delete.js'
 
-const fichiersRepertoireDelete = async (
-  id: string,
-  repertoire: IDocumentRepertoire
-) => {
+const fichiersRepertoireDelete = async (id: string, repertoire: IDocumentRepertoire) => {
   const repertoirePath = `files/${repertoire}/${id}`
   try {
     await dirDelete(join(process.cwd(), repertoirePath))
diff --git a/packages/api/src/api/graphql/resolvers/_titre-etape-email.test.ts b/packages/api/src/api/graphql/resolvers/_titre-etape-email.test.ts
index 2e9236650..4dd872237 100644
--- a/packages/api/src/api/graphql/resolvers/_titre-etape-email.test.ts
+++ b/packages/api/src/api/graphql/resolvers/_titre-etape-email.test.ts
@@ -4,15 +4,7 @@ import { expect, test } from 'vitest'
 import { UserNotNull } from 'camino-common/src/roles.js'
 
 test('envoie un email sur une étape non existante', () => {
-  const actual = emailsForAdministrationsGet(
-    undefined,
-    undefined,
-    '',
-    '',
-    '',
-    userSuper,
-    undefined
-  )
+  const actual = emailsForAdministrationsGet(undefined, undefined, '', '', '', userSuper, undefined)
 
   expect(actual).toBe(null)
 })
@@ -22,14 +14,14 @@ const user: UserNotNull = {
   email: 'camino@beta.gouv.fr',
   nom: 'Camino',
   prenom: '',
-  role: 'super'
+  role: 'super',
 }
 
 test("envoie un email sur un octroi d'AEX", () => {
   const actual = emailsForAdministrationsGet(
     {
       typeId: 'mfr',
-      statutId: 'fai'
+      statutId: 'fai',
     },
     { nom: 'demande' },
     'oct',
@@ -46,7 +38,7 @@ test("envoie un email sur un octroi d'ARM", () => {
   const actual = emailsForAdministrationsGet(
     {
       typeId: 'mdp',
-      statutId: 'fai'
+      statutId: 'fai',
     },
     { nom: 'dépôt de la demande' },
     'oct',
diff --git a/packages/api/src/api/graphql/resolvers/_titre-etape-email.ts b/packages/api/src/api/graphql/resolvers/_titre-etape-email.ts
index afd12f09e..480c65753 100644
--- a/packages/api/src/api/graphql/resolvers/_titre-etape-email.ts
+++ b/packages/api/src/api/graphql/resolvers/_titre-etape-email.ts
@@ -7,18 +7,11 @@ import { titreUrlGet } from '../../../business/utils/urls-get.js'
 import { EmailAdministration } from '../../../tools/api-mailjet/types.js'
 import { UserNotNull } from 'camino-common/src/roles.js'
 
-const emailForAdministrationContentFormat = (
-  titreTypeId: string,
-  etapeNom: string,
-  titreId: string,
-  user: UserNotNull
-) => {
+const emailForAdministrationContentFormat = (titreTypeId: string, etapeNom: string, titreId: string, user: UserNotNull) => {
   const titreUrl = titreUrlGet(titreId)
 
   return `
-  <h3>L’étape « ${etapeNom} » d’une demande d’${
-    titreTypeId === 'arm' ? 'ARM' : 'AEX'
-  } vient d’être réalisée.</h3>
+  <h3>L’étape « ${etapeNom} » d’une demande d’${titreTypeId === 'arm' ? 'ARM' : 'AEX'} vient d’être réalisée.</h3>
   
   <hr>
   
@@ -28,15 +21,8 @@ const emailForAdministrationContentFormat = (
   `
 }
 
-const etapeStatusUpdated = (
-  etape: Pick<ITitreEtape, 'typeId' | 'statutId'>,
-  typeId: string,
-  statusId: string,
-  oldEtape?: Pick<ITitreEtape, 'statutId'>
-) =>
-  etape.typeId === typeId &&
-  (!oldEtape || oldEtape.statutId !== statusId) &&
-  etape.statutId === statusId
+const etapeStatusUpdated = (etape: Pick<ITitreEtape, 'typeId' | 'statutId'>, typeId: string, statusId: string, oldEtape?: Pick<ITitreEtape, 'statutId'>) =>
+  etape.typeId === typeId && (!oldEtape || oldEtape.statutId !== statusId) && etape.statutId === statusId
 
 // VisibleForTesting
 export const emailsForAdministrationsGet = (
@@ -91,12 +77,7 @@ export const emailsForAdministrationsGet = (
   }
 
   const subject = `${etapeType?.nom} | ${title}`
-  const content = emailForAdministrationContentFormat(
-    titreTypeId,
-    etapeType?.nom ?? '',
-    titreId,
-    user
-  )
+  const content = emailForAdministrationContentFormat(titreTypeId, etapeType?.nom ?? '', titreId, user)
 
   return { subject, content, emails }
 }
@@ -110,50 +91,27 @@ const titreEtapeAdministrationsEmailsSend = async (
   user: UserNotNull,
   oldEtape?: ITitreEtape
 ) => {
-  const emailsForAdministrations = emailsForAdministrationsGet(
-    etape,
-    etapeType,
-    demarcheTypeId,
-    titreId,
-    titreTypeId,
-    user,
-    oldEtape
-  )
+  const emailsForAdministrations = emailsForAdministrationsGet(etape, etapeType, demarcheTypeId, titreId, titreTypeId, user, oldEtape)
 
   if (emailsForAdministrations) {
-    await emailsSend(
-      emailsForAdministrations.emails,
-      emailsForAdministrations.subject,
-      emailsForAdministrations.content
-    )
+    await emailsSend(emailsForAdministrations.emails, emailsForAdministrations.subject, emailsForAdministrations.content)
   }
 }
 
-const titreEtapeUtilisateursEmailsSend = async (
-  etape: ITitreEtape,
-  etapeType: IEtapeType,
-  demarcheTypeId: string,
-  titreId: string
-) => {
+const titreEtapeUtilisateursEmailsSend = async (etape: ITitreEtape, etapeType: IEtapeType, demarcheTypeId: string, titreId: string) => {
   const utilisateursEmails = [] as string[]
 
   const utilisateursTitres = await utilisateursTitresGet(titreId, {
-    fields: { utilisateur: { id: {}, entreprises: { id: {} } } }
+    fields: { utilisateur: { id: {}, entreprises: { id: {} } } },
   })
 
-  const utilisateurs = utilisateursTitres
-    ?.map(utilisateurTitre => utilisateurTitre.utilisateur)
-    .filter(utilisateur => !!utilisateur && !!utilisateur.email)
+  const utilisateurs = utilisateursTitres?.map(utilisateurTitre => utilisateurTitre.utilisateur).filter(utilisateur => !!utilisateur && !!utilisateur.email)
 
   for (const utilisateur of utilisateurs) {
     if (utilisateur) {
       const user = formatUser(utilisateur)
       // On vérifie que l’utilisateur puisse voir l’étape
-      const titreEtape = await titreEtapeGet(
-        etape.id,
-        { fields: { id: {} } },
-        user
-      )
+      const titreEtape = await titreEtapeGet(etape.id, { fields: { id: {} } }, user)
       if (titreEtape) {
         utilisateursEmails.push(user.email)
       }
diff --git a/packages/api/src/api/graphql/resolvers/_titre-etape.ts b/packages/api/src/api/graphql/resolvers/_titre-etape.ts
index 69c197355..377ea8771 100644
--- a/packages/api/src/api/graphql/resolvers/_titre-etape.ts
+++ b/packages/api/src/api/graphql/resolvers/_titre-etape.ts
@@ -1,51 +1,23 @@
-import {
-  ICoordonnees,
-  IEtapeType,
-  IHeritageContenu,
-  IHeritageProps,
-  ISection,
-  ITitreDemarche,
-  ITitreEtape,
-  ITitrePointReference
-} from '../../../types.js'
+import { ICoordonnees, IEtapeType, IHeritageContenu, IHeritageProps, ISection, ITitreDemarche, ITitreEtape, ITitrePointReference } from '../../../types.js'
 
 import { geoConvert } from '../../../tools/geo-convert.js'
 
-import {
-  titreEtapeHeritagePropsFind,
-  titreEtapePropsIds
-} from '../../../business/utils/titre-etape-heritage-props-find.js'
+import { titreEtapeHeritagePropsFind, titreEtapePropsIds } from '../../../business/utils/titre-etape-heritage-props-find.js'
 import { titreEtapeHeritageContenuFind } from '../../../business/utils/titre-etape-heritage-contenu-find.js'
 import { etapeTypeSectionsFormat } from '../../_format/etapes-types.js'
-import {
-  titreEtapesSortAscByOrdre,
-  titreEtapesSortDescByOrdre
-} from '../../../business/utils/titre-etapes-sort.js'
+import { titreEtapesSortAscByOrdre, titreEtapesSortDescByOrdre } from '../../../business/utils/titre-etapes-sort.js'
 import { GeoSystemes } from 'camino-common/src/static/geoSystemes.js'
 import { geojsonIntersectsSDOM, GeoJsonResult } from '../../../tools/geojson.js'
 import { Feature } from 'geojson'
 import { SDOMZoneIds, SDOMZoneId } from 'camino-common/src/static/sdom.js'
-import {
-  DocumentTypeId,
-  DocumentType,
-  DOCUMENTS_TYPES_IDS
-} from 'camino-common/src/static/documentsTypes.js'
+import { DocumentTypeId, DocumentType, DOCUMENTS_TYPES_IDS } from 'camino-common/src/static/documentsTypes.js'
 import { ETAPES_TYPES } from 'camino-common/src/static/etapesTypes.js'
-import {
-  DEMARCHES_TYPES_IDS,
-  DemarcheTypeId
-} from 'camino-common/src/static/demarchesTypes.js'
+import { DEMARCHES_TYPES_IDS, DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
 import { TITRES_TYPES_TYPES_IDS } from 'camino-common/src/static/titresTypesTypes.js'
 import { DOMAINES_IDS } from 'camino-common/src/static/domaines.js'
-import {
-  TitreTypeId,
-  toTitreTypeId
-} from 'camino-common/src/static/titresTypes.js'
+import { TitreTypeId, toTitreTypeId } from 'camino-common/src/static/titresTypes.js'
 import { DeepReadonly } from 'camino-common/src/typescript-tools.js'
-import {
-  getSections,
-  Section
-} from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
+import { getSections, Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
 
 export const titreEtapePointsCalc = <
   T extends {
@@ -58,12 +30,11 @@ export const titreEtapePointsCalc = <
   const uniteRatio = uniteRatioFind(pointReferenceFind(titrePoints))
 
   return titrePoints.map(point => {
-    const reference =
-      point.references.find(r => r.opposable) || point.references[0]
+    const reference = point.references.find(r => r.opposable) || point.references[0]
 
     point.coordonnees = geoConvert(reference.geoSystemeId, {
       x: reference.coordonnees.x * uniteRatio,
-      y: reference.coordonnees.y * uniteRatio
+      y: reference.coordonnees.y * uniteRatio,
     })
 
     return point
@@ -74,11 +45,7 @@ const pointReferenceFind = (
   points: {
     references: ITitrePointReference[]
   }[]
-) =>
-  points.length &&
-  points[0].references &&
-  points[0].references.length &&
-  (points[0].references.find(r => r.opposable) || points[0].references[0])
+) => points.length && points[0].references && points[0].references.length && (points[0].references.find(r => r.opposable) || points[0].references[0])
 
 const uniteRatioFind = (pointReference: ITitrePointReference | 0) => {
   if (!pointReference || !pointReference.geoSystemeId) return 1
@@ -88,13 +55,8 @@ const uniteRatioFind = (pointReference: ITitrePointReference | 0) => {
   return geoSysteme.uniteId === 'gon' ? 0.9 : 1
 }
 
-const titreEtapeHeritagePropsBuild = (
-  date: string,
-  titreEtapes?: ITitreEtape[] | null
-) => {
-  const titreEtapesFiltered = titreEtapesSortAscByOrdre(
-    titreEtapes?.filter(e => e.type?.fondamentale && e.date < date) ?? []
-  )
+const titreEtapeHeritagePropsBuild = (date: string, titreEtapes?: ITitreEtape[] | null) => {
+  const titreEtapesFiltered = titreEtapesSortAscByOrdre(titreEtapes?.filter(e => e.type?.fondamentale && e.date < date) ?? [])
 
   const heritageProps = titreEtapePropsIds.reduce((acc: IHeritageProps, id) => {
     acc[id] = { actif: !!titreEtapesFiltered.length }
@@ -107,8 +69,7 @@ const titreEtapeHeritagePropsBuild = (
   titreEtapesFiltered.push(titreEtape)
 
   titreEtapesFiltered.forEach((te: ITitreEtape, index: number) => {
-    const titreEtapePrecedente =
-      index > 0 ? titreEtapesFiltered[index - 1] : null
+    const titreEtapePrecedente = index > 0 ? titreEtapesFiltered[index - 1] : null
 
     const { titreEtape } = titreEtapeHeritagePropsFind(te, titreEtapePrecedente)
 
@@ -119,13 +80,10 @@ const titreEtapeHeritagePropsBuild = (
 
   if (newTitreEtape.heritageProps) {
     Object.keys(newTitreEtape.heritageProps).forEach(id => {
-      const etapeId =
-        newTitreEtape.heritageProps && newTitreEtape.heritageProps[id].etapeId
+      const etapeId = newTitreEtape.heritageProps && newTitreEtape.heritageProps[id].etapeId
 
       if (etapeId) {
-        newTitreEtape.heritageProps![id].etape = titreEtapesFiltered.find(
-          ({ id }) => id === etapeId
-        )
+        newTitreEtape.heritageProps![id].etape = titreEtapesFiltered.find(({ id }) => id === etapeId)
       }
     })
   }
@@ -133,14 +91,7 @@ const titreEtapeHeritagePropsBuild = (
   return newTitreEtape
 }
 
-const titreEtapeHeritageContenuBuild = (
-  date: string,
-  etapeType: IEtapeType,
-  sections: ISection[],
-  titreTypeId: TitreTypeId,
-  demarcheTypeId: DemarcheTypeId,
-  titreEtapes?: ITitreEtape[] | null
-) => {
+const titreEtapeHeritageContenuBuild = (date: string, etapeType: IEtapeType, sections: ISection[], titreTypeId: TitreTypeId, demarcheTypeId: DemarcheTypeId, titreEtapes?: ITitreEtape[] | null) => {
   if (!titreEtapes) {
     titreEtapes = []
   }
@@ -149,12 +100,10 @@ const titreEtapeHeritageContenuBuild = (
     date,
     type: etapeType,
     typeId: etapeType.id,
-    sectionsSpecifiques: sections
+    sectionsSpecifiques: sections,
   } as ITitreEtape
 
-  let titreEtapesFiltered = titreEtapesSortDescByOrdre(
-    titreEtapes.filter(te => te.date < date)
-  )
+  let titreEtapesFiltered = titreEtapesSortDescByOrdre(titreEtapes.filter(te => te.date < date))
 
   titreEtapesFiltered.splice(0, 0, titreEtape)
 
@@ -166,56 +115,33 @@ const titreEtapeHeritageContenuBuild = (
     return acc
   }, {})
 
-  titreEtape.heritageContenu = sections.reduce(
-    (heritageContenu: IHeritageContenu, section) => {
-      if (!section.elements?.length) return heritageContenu
-
-      heritageContenu[section.id] = section.elements?.reduce(
-        (acc: IHeritageProps, element) => {
-          acc[element.id] = {
-            actif: !!titreEtapesFiltered.find(
-              e =>
-                e.id !== titreEtape.id &&
-                etapeSectionsDictionary[e.id] &&
-                etapeSectionsDictionary[e.id].find(
-                  s =>
-                    s.id === section.id &&
-                    s.elements?.find(el => el.id === element.id)
-                )
-            )
-          }
-
-          return acc
-        },
-        {}
-      )
-
-      return heritageContenu
-    },
-    {}
-  )
-
-  titreEtapesFiltered = titreEtapesFiltered.filter(
-    e => etapeSectionsDictionary[e.id]
-  )
-
-  const { contenu, heritageContenu } = titreEtapeHeritageContenuFind(
-    titreEtapesFiltered,
-    titreEtape,
-    etapeSectionsDictionary
-  )
+  titreEtape.heritageContenu = sections.reduce((heritageContenu: IHeritageContenu, section) => {
+    if (!section.elements?.length) return heritageContenu
+
+    heritageContenu[section.id] = section.elements?.reduce((acc: IHeritageProps, element) => {
+      acc[element.id] = {
+        actif: !!titreEtapesFiltered.find(
+          e => e.id !== titreEtape.id && etapeSectionsDictionary[e.id] && etapeSectionsDictionary[e.id].find(s => s.id === section.id && s.elements?.find(el => el.id === element.id))
+        ),
+      }
+
+      return acc
+    }, {})
+
+    return heritageContenu
+  }, {})
+
+  titreEtapesFiltered = titreEtapesFiltered.filter(e => etapeSectionsDictionary[e.id])
+
+  const { contenu, heritageContenu } = titreEtapeHeritageContenuFind(titreEtapesFiltered, titreEtape, etapeSectionsDictionary)
 
   if (heritageContenu) {
     Object.keys(heritageContenu).forEach(sectionId => {
       Object.keys(heritageContenu![sectionId]).forEach(elementId => {
-        const etapeId =
-          heritageContenu &&
-          heritageContenu[sectionId] &&
-          heritageContenu[sectionId][elementId].etapeId
+        const etapeId = heritageContenu && heritageContenu[sectionId] && heritageContenu[sectionId][elementId].etapeId
 
         if (etapeId) {
-          heritageContenu![sectionId][elementId].etape =
-            titreEtapesFiltered.find(({ id }) => id === etapeId)
+          heritageContenu![sectionId][elementId].etape = titreEtapesFiltered.find(({ id }) => id === etapeId)
         }
       })
     })
@@ -241,19 +167,9 @@ export const titreEtapeHeritageBuild = (
 
   titreEtape.modification = true
 
-  const sections = etapeTypeSectionsFormat(
-    etapeType.sections,
-    sectionsSpecifiques
-  )
+  const sections = etapeTypeSectionsFormat(etapeType.sections, sectionsSpecifiques)
   if (sections?.length) {
-    const { contenu, heritageContenu } = titreEtapeHeritageContenuBuild(
-      date,
-      etapeType,
-      sectionsSpecifiques,
-      titreTypeId,
-      demarcheTypeId,
-      titreDemarche.etapes
-    )
+    const { contenu, heritageContenu } = titreEtapeHeritageContenuBuild(date, etapeType, sectionsSpecifiques, titreTypeId, demarcheTypeId, titreDemarche.etapes)
 
     titreEtape.contenu = contenu
     titreEtape.heritageContenu = heritageContenu
@@ -267,41 +183,24 @@ export const titreEtapeHeritageBuild = (
   return titreEtape
 }
 
-export const titreEtapeSdomZonesGet = async (
-  geoJson: Feature<any>
-): Promise<GeoJsonResult<SDOMZoneId[]>> => {
+export const titreEtapeSdomZonesGet = async (geoJson: Feature<any>): Promise<GeoJsonResult<SDOMZoneId[]>> => {
   const sdomZoneIds = await geojsonIntersectsSDOM(geoJson)
 
   return {
     fallback: sdomZoneIds.fallback,
-    data: sdomZoneIds.data
+    data: sdomZoneIds.data,
   }
 }
 
-export const documentTypeIdsBySdomZonesGet = (
-  sdomZones: SDOMZoneId[] | null | undefined,
-  titreTypeId: string,
-  demarcheTypeId: string,
-  etapeTypeId: string
-) => {
+export const documentTypeIdsBySdomZonesGet = (sdomZones: SDOMZoneId[] | null | undefined, titreTypeId: string, demarcheTypeId: string, etapeTypeId: string) => {
   const documentTypeIds: DocumentTypeId[] = []
 
   // Pour les demandes d’octroi d’AXM
-  if (
-    etapeTypeId === ETAPES_TYPES.demande &&
-    demarcheTypeId === DEMARCHES_TYPES_IDS.Octroi &&
-    titreTypeId ===
-      toTitreTypeId(
-        TITRES_TYPES_TYPES_IDS.AUTORISATION_D_EXPLOITATION,
-        DOMAINES_IDS.METAUX
-      )
-  ) {
+  if (etapeTypeId === ETAPES_TYPES.demande && demarcheTypeId === DEMARCHES_TYPES_IDS.Octroi && titreTypeId === toTitreTypeId(TITRES_TYPES_TYPES_IDS.AUTORISATION_D_EXPLOITATION, DOMAINES_IDS.METAUX)) {
     if (sdomZones?.find(id => id === SDOMZoneIds.Zone2)) {
       // dans la zone 2 du SDOM les documents suivants sont obligatoires:
       documentTypeIds.push(DOCUMENTS_TYPES_IDS.noticeDImpactRenforcee)
-      documentTypeIds.push(
-        DOCUMENTS_TYPES_IDS.justificationDExistenceDuGisement
-      )
+      documentTypeIds.push(DOCUMENTS_TYPES_IDS.justificationDExistenceDuGisement)
     } else {
       documentTypeIds.push(DOCUMENTS_TYPES_IDS.noticeDImpact)
     }
diff --git a/packages/api/src/api/graphql/resolvers/administrations.ts b/packages/api/src/api/graphql/resolvers/administrations.ts
index 996e7e733..e0ace0d5e 100644
--- a/packages/api/src/api/graphql/resolvers/administrations.ts
+++ b/packages/api/src/api/graphql/resolvers/administrations.ts
@@ -1,12 +1,6 @@
 import { GraphQLResolveInfo } from 'graphql'
 
-import {
-  IAdministrationActiviteType,
-  IAdministrationTitreTypeEtapeType,
-  IAdministrationTitreTypeTitreStatut,
-  IAdministrationActiviteTypeEmail,
-  Context
-} from '../../../types.js'
+import { IAdministrationActiviteType, IAdministrationTitreTypeEtapeType, IAdministrationTitreTypeTitreStatut, IAdministrationActiviteTypeEmail, Context } from '../../../types.js'
 
 import {
   administrationGet,
@@ -18,7 +12,7 @@ import {
   administrationActiviteTypeDelete,
   administrationActiviteTypeUpsert,
   administrationActiviteTypeEmailCreate,
-  administrationActiviteTypeEmailDelete
+  administrationActiviteTypeEmailDelete,
 } from '../../../database/queries/administrations.js'
 
 import { fieldsBuild } from './_fields-build.js'
@@ -26,19 +20,11 @@ import { fieldsBuild } from './_fields-build.js'
 import { administrationFormat } from '../../_format/administrations.js'
 import { emailCheck } from '../../../tools/email-check.js'
 import { isSuper } from 'camino-common/src/roles.js'
-import {
-  canReadActivitesTypesEmails,
-  canReadAdministrations,
-  canEditEmails
-} from 'camino-common/src/permissions/administrations.js'
+import { canReadActivitesTypesEmails, canReadAdministrations, canEditEmails } from 'camino-common/src/permissions/administrations.js'
 import administrationsActivitesTypesEmails from '../../../database/models/administrations-activites-types-emails.js'
 import { isAdministrationId } from 'camino-common/src/static/administrations.js'
 
-const administration = async (
-  { id }: { id: string },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const administration = async ({ id }: { id: string }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     if (!canReadAdministrations(user)) {
       return null
@@ -59,19 +45,14 @@ const administration = async (
   }
 }
 
-export const administrationActivitesTypesEmails = async (
-  { id }: { id: string },
-  { user }: Context
-): Promise<IAdministrationActiviteTypeEmail[]> => {
+export const administrationActivitesTypesEmails = async ({ id }: { id: string }, { user }: Context): Promise<IAdministrationActiviteTypeEmail[]> => {
   try {
     if (isAdministrationId(id)) {
       if (!canReadActivitesTypesEmails(user, id)) {
         throw new Error('droit insuffisant')
       }
 
-      return administrationsActivitesTypesEmails
-        .query()
-        .where('administrationId', id)
+      return administrationsActivitesTypesEmails.query().where('administrationId', id)
     } else {
       throw new Error('l’identifiant est inconnu')
     }
@@ -82,11 +63,7 @@ export const administrationActivitesTypesEmails = async (
   }
 }
 
-const administrations = async (
-  _: unknown,
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const administrations = async (_: unknown, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     if (!canReadAdministrations(user)) {
       return []
@@ -107,7 +84,7 @@ const administrations = async (
 
 const administrationTitreTypeTitreStatutModifier = async (
   {
-    administrationTitreTypeTitreStatut
+    administrationTitreTypeTitreStatut,
   }: {
     administrationTitreTypeTitreStatut: IAdministrationTitreTypeTitreStatut
   },
@@ -132,16 +109,10 @@ const administrationTitreTypeTitreStatutModifier = async (
         administrationTitreTypeTitreStatut.titreStatutId
       )
     } else {
-      await administrationTitreTypeTitreStatutUpsert(
-        administrationTitreTypeTitreStatut
-      )
+      await administrationTitreTypeTitreStatutUpsert(administrationTitreTypeTitreStatut)
     }
 
-    return await administrationGet(
-      administrationTitreTypeTitreStatut.administrationId,
-      { fields },
-      user
-    )
+    return await administrationGet(administrationTitreTypeTitreStatut.administrationId, { fields }, user)
   } catch (e) {
     console.error(e)
 
@@ -151,7 +122,7 @@ const administrationTitreTypeTitreStatutModifier = async (
 
 const administrationTitreTypeEtapeTypeModifier = async (
   {
-    administrationTitreTypeEtapeType
+    administrationTitreTypeEtapeType,
   }: {
     administrationTitreTypeEtapeType: IAdministrationTitreTypeEtapeType
   },
@@ -165,27 +136,13 @@ const administrationTitreTypeEtapeTypeModifier = async (
 
     const fields = fieldsBuild(info)
 
-    if (
-      !administrationTitreTypeEtapeType.lectureInterdit &&
-      !administrationTitreTypeEtapeType.modificationInterdit &&
-      !administrationTitreTypeEtapeType.creationInterdit
-    ) {
-      await administrationTitreTypeEtapeTypeDelete(
-        administrationTitreTypeEtapeType.administrationId,
-        administrationTitreTypeEtapeType.titreTypeId,
-        administrationTitreTypeEtapeType.etapeTypeId
-      )
+    if (!administrationTitreTypeEtapeType.lectureInterdit && !administrationTitreTypeEtapeType.modificationInterdit && !administrationTitreTypeEtapeType.creationInterdit) {
+      await administrationTitreTypeEtapeTypeDelete(administrationTitreTypeEtapeType.administrationId, administrationTitreTypeEtapeType.titreTypeId, administrationTitreTypeEtapeType.etapeTypeId)
     } else {
-      await administrationTitreTypeEtapeTypeUpsert(
-        administrationTitreTypeEtapeType
-      )
+      await administrationTitreTypeEtapeTypeUpsert(administrationTitreTypeEtapeType)
     }
 
-    return await administrationGet(
-      administrationTitreTypeEtapeType.administrationId,
-      { fields },
-      user
-    )
+    return await administrationGet(administrationTitreTypeEtapeType.administrationId, { fields }, user)
   } catch (e) {
     console.error(e)
 
@@ -193,13 +150,7 @@ const administrationTitreTypeEtapeTypeModifier = async (
   }
 }
 
-const administrationActiviteTypeModifier = async (
-  {
-    administrationActiviteType
-  }: { administrationActiviteType: IAdministrationActiviteType },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const administrationActiviteTypeModifier = async ({ administrationActiviteType }: { administrationActiviteType: IAdministrationActiviteType }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     if (!isSuper(user)) {
       throw new Error('droits insuffisants')
@@ -207,23 +158,13 @@ const administrationActiviteTypeModifier = async (
 
     const fields = fieldsBuild(info)
 
-    if (
-      !administrationActiviteType.lectureInterdit &&
-      !administrationActiviteType.modificationInterdit
-    ) {
-      await administrationActiviteTypeDelete(
-        administrationActiviteType.administrationId,
-        administrationActiviteType.activiteTypeId
-      )
+    if (!administrationActiviteType.lectureInterdit && !administrationActiviteType.modificationInterdit) {
+      await administrationActiviteTypeDelete(administrationActiviteType.administrationId, administrationActiviteType.activiteTypeId)
     } else {
       await administrationActiviteTypeUpsert(administrationActiviteType)
     }
 
-    return await administrationGet(
-      administrationActiviteType.administrationId,
-      { fields },
-      user
-    )
+    return await administrationGet(administrationActiviteType.administrationId, { fields }, user)
   } catch (e) {
     console.error(e)
 
@@ -232,18 +173,12 @@ const administrationActiviteTypeModifier = async (
 }
 
 const administrationActiviteTypeEmailCreer = async (
-  {
-    administrationActiviteTypeEmail
-  }: { administrationActiviteTypeEmail: IAdministrationActiviteTypeEmail },
+  { administrationActiviteTypeEmail }: { administrationActiviteTypeEmail: IAdministrationActiviteTypeEmail },
   { user }: Context,
   info: GraphQLResolveInfo
 ) => {
   try {
-    const administration = await administrationGet(
-      administrationActiviteTypeEmail.administrationId,
-      { fields: { id: {} } },
-      user
-    )
+    const administration = await administrationGet(administrationActiviteTypeEmail.administrationId, { fields: { id: {} } }, user)
 
     if (!administration || !canEditEmails(user, administration.id)) {
       throw new Error('droits insuffisants')
@@ -255,14 +190,10 @@ const administrationActiviteTypeEmailCreer = async (
 
     await administrationActiviteTypeEmailCreate({
       ...administrationActiviteTypeEmail,
-      email
+      email,
     })
 
-    return await administrationGet(
-      administrationActiviteTypeEmail.administrationId,
-      { fields },
-      user
-    )
+    return await administrationGet(administrationActiviteTypeEmail.administrationId, { fields }, user)
   } catch (e) {
     console.error(e)
 
@@ -276,18 +207,12 @@ const administrationActiviteTypeEmailCreer = async (
 }
 
 const administrationActiviteTypeEmailSupprimer = async (
-  {
-    administrationActiviteTypeEmail
-  }: { administrationActiviteTypeEmail: IAdministrationActiviteTypeEmail },
+  { administrationActiviteTypeEmail }: { administrationActiviteTypeEmail: IAdministrationActiviteTypeEmail },
   { user }: Context,
   info: GraphQLResolveInfo
 ) => {
   try {
-    const administration = await administrationGet(
-      administrationActiviteTypeEmail.administrationId,
-      { fields: { id: {} } },
-      user
-    )
+    const administration = await administrationGet(administrationActiviteTypeEmail.administrationId, { fields: { id: {} } }, user)
 
     if (!administration || !canEditEmails(user, administration.id)) {
       throw new Error('droits insuffisants')
@@ -299,14 +224,10 @@ const administrationActiviteTypeEmailSupprimer = async (
 
     await administrationActiviteTypeEmailDelete({
       ...administrationActiviteTypeEmail,
-      email
+      email,
     })
 
-    return await administrationGet(
-      administrationActiviteTypeEmail.administrationId,
-      { fields },
-      user
-    )
+    return await administrationGet(administrationActiviteTypeEmail.administrationId, { fields }, user)
   } catch (e) {
     console.error(e)
 
@@ -321,5 +242,5 @@ export {
   administrationTitreTypeEtapeTypeModifier,
   administrationActiviteTypeModifier,
   administrationActiviteTypeEmailCreer,
-  administrationActiviteTypeEmailSupprimer
+  administrationActiviteTypeEmailSupprimer,
 }
diff --git a/packages/api/src/api/graphql/resolvers/documents.ts b/packages/api/src/api/graphql/resolvers/documents.ts
index 3153172f1..bae16e03c 100644
--- a/packages/api/src/api/graphql/resolvers/documents.ts
+++ b/packages/api/src/api/graphql/resolvers/documents.ts
@@ -8,13 +8,7 @@ import { Context, IDocument, ITitreEtape } from '../../../types.js'
 import fileDelete from '../../../tools/file-delete.js'
 import fileStreamCreate from '../../../tools/file-stream-create.js'
 
-import {
-  documentsGet,
-  documentGet,
-  documentCreate,
-  documentUpdate,
-  documentDelete
-} from '../../../database/queries/documents.js'
+import { documentsGet, documentGet, documentCreate, documentUpdate, documentDelete } from '../../../database/queries/documents.js'
 
 import { documentTypeGet } from '../../../database/queries/metas.js'
 
@@ -32,32 +26,17 @@ import { isBureauDEtudes, isEntreprise, User } from 'camino-common/src/roles.js'
 import { canEditEntreprise } from 'camino-common/src/permissions/entreprises.js'
 import { canCreateOrEditEtape } from 'camino-common/src/permissions/titres-etapes.js'
 
-const errorEtapesAssocieesUpdate = (
-  etapesAssociees: ITitreEtape[],
-  action: 'supprimer' | 'modifier'
-) =>
-  `impossible de ${action} ce document lié ${
-    etapesAssociees.length > 1 ? 'aux étapes' : 'à l’étape'
-  } ${etapesAssociees.map(e => e.id).join(', ')}`
-
-const documentFileCreate = async (
-  document: IDocument,
-  fileUpload: FileUpload
-) => {
+const errorEtapesAssocieesUpdate = (etapesAssociees: ITitreEtape[], action: 'supprimer' | 'modifier') =>
+  `impossible de ${action} ce document lié ${etapesAssociees.length > 1 ? 'aux étapes' : 'à l’étape'} ${etapesAssociees.map(e => e.id).join(', ')}`
+
+const documentFileCreate = async (document: IDocument, fileUpload: FileUpload) => {
   const documentFilePath = await documentFilePathFind(document, true)
   const { createReadStream } = await fileUpload
 
-  await fileStreamCreate(
-    createReadStream(),
-    join(process.cwd(), documentFilePath)
-  )
+  await fileStreamCreate(createReadStream(), join(process.cwd(), documentFilePath))
 }
 
-const documents = async (
-  { entreprisesIds }: { entreprisesIds?: string[] },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const documents = async ({ entreprisesIds }: { entreprisesIds?: string[] }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     const fields = fieldsBuild(info)
     const documents = await documentsGet({ entreprisesIds }, { fields }, user)
@@ -79,8 +58,8 @@ const documentPermissionsCheck = async (document: IDocument, user: User) => {
       {
         fields: {
           titulaires: { id: {} },
-          demarche: { titre: { pointsEtape: { id: {} } } }
-        }
+          demarche: { titre: { pointsEtape: { id: {} } } },
+        },
       },
       user
     )
@@ -90,12 +69,7 @@ const documentPermissionsCheck = async (document: IDocument, user: User) => {
     if (!titreEtape.titulaires) {
       throw new Error('Les titulaires de l’étape ne sont pas chargés')
     }
-    if (
-      !titreEtape.demarche ||
-      !titreEtape.demarche.titre ||
-      !titreEtape.demarche.titre.administrationsLocales ||
-      !titreEtape.demarche.titre.titreStatutId
-    ) {
+    if (!titreEtape.demarche || !titreEtape.demarche.titre || !titreEtape.demarche.titre.administrationsLocales || !titreEtape.demarche.titre.titreStatutId) {
       throw new Error('la démarche n’est pas chargée complètement')
     }
 
@@ -109,7 +83,7 @@ const documentPermissionsCheck = async (document: IDocument, user: User) => {
         titreEtape.demarche.typeId,
         {
           typeId: titreEtape.demarche.titre.typeId,
-          titreStatutId: titreEtape.demarche.titre.titreStatutId
+          titreStatutId: titreEtape.demarche.titre.titreStatutId,
         },
         'modification'
       )
@@ -117,24 +91,15 @@ const documentPermissionsCheck = async (document: IDocument, user: User) => {
       throw new Error('droits insuffisants')
     }
   } else if (document.entrepriseId) {
-    const entreprise = await entrepriseGet(
-      document.entrepriseId,
-      { fields: {} },
-      user
-    )
+    const entreprise = await entrepriseGet(document.entrepriseId, { fields: {} }, user)
 
     if (!entreprise) throw new Error("l'entreprise n'existe pas")
 
-    if (!canEditEntreprise(user, entreprise.id))
-      throw new Error('droits insuffisants')
+    if (!canEditEntreprise(user, entreprise.id)) throw new Error('droits insuffisants')
   } else if (document.titreActiviteId) {
     // si l'activité est récupérée depuis la base
     // alors on a le droit de la visualiser, donc de l'éditer
-    const activite = await titreActiviteGet(
-      document.titreActiviteId,
-      { fields: { type: { titresTypes: { id: {} } }, titre: { id: {} } } },
-      user
-    )
+    const activite = await titreActiviteGet(document.titreActiviteId, { fields: { type: { titresTypes: { id: {} } }, titre: { id: {} } } }, user)
 
     if (!activite) throw new Error("l'activité n'existe pas")
 
@@ -142,11 +107,7 @@ const documentPermissionsCheck = async (document: IDocument, user: User) => {
   }
 }
 
-const documentCreer = async (
-  { document }: { document: IDocument },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const documentCreer = async ({ document }: { document: IDocument }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     const fields = fieldsBuild(info)
 
@@ -202,11 +163,7 @@ const documentCreer = async (
   }
 }
 
-const documentModifier = async (
-  { document }: { document: IDocument },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const documentModifier = async ({ document }: { document: IDocument }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     const fields = fieldsBuild(info)
 
@@ -220,9 +177,7 @@ const documentModifier = async (
     await documentPermissionsCheck(document, user)
 
     if (documentOld.etapesAssociees && documentOld.etapesAssociees.length > 0) {
-      throw new Error(
-        errorEtapesAssocieesUpdate(documentOld.etapesAssociees, 'modifier')
-      )
+      throw new Error(errorEtapesAssocieesUpdate(documentOld.etapesAssociees, 'modifier'))
     }
 
     const errors = await documentInputValidate(document)
@@ -244,18 +199,13 @@ const documentModifier = async (
     const documentUpdated = await documentUpdate(document.id, document)
 
     // supprime de l'ancien fichier
-    if (
-      (documentFichierNouveau || !documentUpdated.fichier) &&
-      documentOld.fichier
-    ) {
+    if ((documentFichierNouveau || !documentUpdated.fichier) && documentOld.fichier) {
       const documentOldFilePath = await documentFilePathFind(documentOld)
 
       try {
         await fileDelete(join(process.cwd(), documentOldFilePath))
       } catch (e) {
-        console.info(
-          `impossible de supprimer le fichier: ${documentOldFilePath}`
-        )
+        console.info(`impossible de supprimer le fichier: ${documentOldFilePath}`)
       }
     }
 
@@ -290,10 +240,10 @@ const documentSupprimer = async ({ id }: { id: string }, { user }: Context) => {
       {
         fields: {
           type: {
-            activitesTypes: { id: {} }
+            activitesTypes: { id: {} },
           },
-          etapesAssociees: { id: {} }
-        }
+          etapesAssociees: { id: {} },
+        },
       },
       user
     )
@@ -303,9 +253,7 @@ const documentSupprimer = async ({ id }: { id: string }, { user }: Context) => {
     }
 
     if (documentOld.etapesAssociees && documentOld.etapesAssociees.length > 0) {
-      throw new Error(
-        errorEtapesAssocieesUpdate(documentOld.etapesAssociees, 'supprimer')
-      )
+      throw new Error(errorEtapesAssocieesUpdate(documentOld.etapesAssociees, 'supprimer'))
     }
 
     if (!documentOld.suppression) {
@@ -320,9 +268,7 @@ const documentSupprimer = async ({ id }: { id: string }, { user }: Context) => {
       try {
         await fileDelete(join(process.cwd(), documentOldFilePath))
       } catch (e) {
-        console.info(
-          `impossible de supprimer le fichier: ${documentOldFilePath}`
-        )
+        console.info(`impossible de supprimer le fichier: ${documentOldFilePath}`)
       }
     }
 
@@ -336,13 +282,7 @@ const documentSupprimer = async ({ id }: { id: string }, { user }: Context) => {
   }
 }
 
-const documentsLier = async (
-  { user }: Context,
-  documentIds: string[],
-  parentId: string,
-  propParentId: 'titreActiviteId' | 'titreEtapeId',
-  oldParent?: { documents?: IDocument[] | null }
-) => {
+const documentsLier = async ({ user }: Context, documentIds: string[], parentId: string, propParentId: 'titreActiviteId' | 'titreEtapeId', oldParent?: { documents?: IDocument[] | null }) => {
   if (oldParent?.documents?.length) {
     // supprime les anciens documents ou ceux qui n'ont pas de fichier
     const oldDocumentsIds = oldParent.documents.map(d => d.id)
@@ -374,10 +314,4 @@ const documentsLier = async (
   }
 }
 
-export {
-  documents,
-  documentCreer,
-  documentModifier,
-  documentSupprimer,
-  documentsLier
-}
+export { documents, documentCreer, documentModifier, documentSupprimer, documentsLier }
diff --git a/packages/api/src/api/graphql/resolvers/entreprises.ts b/packages/api/src/api/graphql/resolvers/entreprises.ts
index e7c6a2f91..9c8f2638b 100644
--- a/packages/api/src/api/graphql/resolvers/entreprises.ts
+++ b/packages/api/src/api/graphql/resolvers/entreprises.ts
@@ -1,13 +1,7 @@
 import { Context, IEntreprise, IEntrepriseColonneId } from '../../../types.js'
 import { GraphQLResolveInfo } from 'graphql'
 
-import {
-  entrepriseGet,
-  entreprisesCount,
-  entreprisesGet,
-  entrepriseUpsert,
-  titreDemandeEntreprisesGet
-} from '../../../database/queries/entreprises.js'
+import { entrepriseGet, entreprisesCount, entreprisesGet, entrepriseUpsert, titreDemandeEntreprisesGet } from '../../../database/queries/entreprises.js'
 import { titreEtapeGet } from '../../../database/queries/titres-etapes.js'
 
 import { fieldsBuild } from './_fields-build.js'
@@ -19,11 +13,7 @@ import { EntrepriseId } from 'camino-common/src/entreprise.js'
 import { canCreateEntreprise } from 'camino-common/src/permissions/utilisateurs.js'
 import { canEditEntreprise } from 'camino-common/src/permissions/entreprises.js'
 
-const entreprise = async (
-  { id }: { id: string },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const entreprise = async ({ id }: { id: string }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     const fields = fieldsBuild(info)
 
@@ -39,11 +29,7 @@ const entreprise = async (
   }
 }
 
-const entreprisesTitresCreation = async (
-  _: never,
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const entreprisesTitresCreation = async (_: never, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     const fields = fieldsBuild(info)
 
@@ -66,7 +52,7 @@ const entreprises = async (
     colonne,
     noms,
     archive,
-    etapeUniquement
+    etapeUniquement,
   }: {
     etapeId?: string | null
     page?: number | null
@@ -95,12 +81,12 @@ const entreprises = async (
             ordre,
             colonne,
             noms,
-            archive
+            archive,
           },
           { fields: fields.elements },
           user
         ),
-        entreprisesCount({ noms, archive }, { fields: {} }, user)
+        entreprisesCount({ noms, archive }, { fields: {} }, user),
       ])
     }
 
@@ -108,7 +94,7 @@ const entreprises = async (
       const titreEtape = await titreEtapeGet(
         etapeId,
         {
-          fields: { titulaires: fields.elements, amodiataires: fields.elements }
+          fields: { titulaires: fields.elements, amodiataires: fields.elements },
         },
         user
       )
@@ -140,7 +126,7 @@ const entreprises = async (
       intervalle,
       ordre,
       colonne,
-      total
+      total,
     }
   } catch (e) {
     console.error(e)
@@ -149,11 +135,7 @@ const entreprises = async (
   }
 }
 
-const entrepriseCreer = async (
-  { entreprise }: { entreprise: { legalSiren: string; paysId: string } },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const entrepriseCreer = async ({ entreprise }: { entreprise: { legalSiren: string; paysId: string } }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     if (!canCreateEntreprise(user)) throw new Error('droits insuffisants')
 
@@ -165,11 +147,7 @@ const entrepriseCreer = async (
 
     const fields = fieldsBuild(info)
 
-    const entrepriseOld = await entrepriseGet(
-      `${entreprise.paysId}-${entreprise.legalSiren}`,
-      { fields },
-      user
-    )
+    const entrepriseOld = await entrepriseGet(`${entreprise.paysId}-${entreprise.legalSiren}`, { fields }, user)
 
     if (entrepriseOld) {
       errors.push(`l'entreprise ${entrepriseOld.nom} existe déjà dans Camino`)
@@ -179,9 +157,7 @@ const entrepriseCreer = async (
       throw new Error(errors.join(', '))
     }
 
-    const entrepriseInsee = await apiInseeEntrepriseAndEtablissementsGet(
-      entreprise.legalSiren!
-    )
+    const entrepriseInsee = await apiInseeEntrepriseAndEtablissementsGet(entreprise.legalSiren!)
 
     if (!entrepriseInsee) {
       throw new Error('numéro de siren non reconnu dans la base Insee')
@@ -199,7 +175,7 @@ const entrepriseCreer = async (
 
 const entrepriseModifier = async (
   {
-    entreprise
+    entreprise,
   }: {
     entreprise: {
       id: EntrepriseId
@@ -212,8 +188,7 @@ const entrepriseModifier = async (
   info: GraphQLResolveInfo
 ) => {
   try {
-    if (!canEditEntreprise(user, entreprise.id))
-      throw new Error('droits insuffisants')
+    if (!canEditEntreprise(user, entreprise.id)) throw new Error('droits insuffisants')
 
     const errors = []
 
@@ -233,7 +208,7 @@ const entrepriseModifier = async (
 
     const entrepriseUpserted = await entrepriseUpsert({
       ...entrepriseOld,
-      ...entreprise
+      ...entreprise,
     })
 
     return entrepriseGet(entrepriseUpserted.id, { fields }, user)
@@ -244,10 +219,4 @@ const entrepriseModifier = async (
   }
 }
 
-export {
-  entreprise,
-  entreprises,
-  entrepriseCreer,
-  entrepriseModifier,
-  entreprisesTitresCreation
-}
+export { entreprise, entreprises, entrepriseCreer, entrepriseModifier, entreprisesTitresCreation }
diff --git a/packages/api/src/api/graphql/resolvers/journaux.ts b/packages/api/src/api/graphql/resolvers/journaux.ts
index ebd7ec46c..15ecb2680 100644
--- a/packages/api/src/api/graphql/resolvers/journaux.ts
+++ b/packages/api/src/api/graphql/resolvers/journaux.ts
@@ -11,22 +11,14 @@ export interface IJournauxQueryParams {
   titreId: string
 }
 
-export const journaux = async (
-  params: IJournauxQueryParams,
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+export const journaux = async (params: IJournauxQueryParams, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     if (!canReadJournaux(user)) {
       return []
     }
     const fields = fieldsBuild(info)
 
-    const { results, total } = await journauxGet(
-      params,
-      { fields: fields.elements },
-      user
-    )
+    const { results, total } = await journauxGet(params, { fields: fields.elements }, user)
 
     if (!results.length) return { elements: [], total: 0 }
 
@@ -34,7 +26,7 @@ export const journaux = async (
       elements: results,
       page: params.page,
       intervalle: params.intervalle,
-      total
+      total,
     }
   } catch (e) {
     console.error(e)
diff --git a/packages/api/src/api/graphql/resolvers/metas-activites.ts b/packages/api/src/api/graphql/resolvers/metas-activites.ts
index 5b5cc53f6..d3792afd7 100644
--- a/packages/api/src/api/graphql/resolvers/metas-activites.ts
+++ b/packages/api/src/api/graphql/resolvers/metas-activites.ts
@@ -2,20 +2,11 @@ import { GraphQLResolveInfo } from 'graphql'
 import { Context } from '../../../types.js'
 
 import { fieldsBuild } from './_fields-build.js'
-import {
-  activitesTypesDocumentsTypesGet,
-  activitesTypesGet,
-  activitesTypesPaysGet,
-  activitesTypesTitresTypesGet
-} from '../../../database/queries/metas-activites.js'
+import { activitesTypesDocumentsTypesGet, activitesTypesGet, activitesTypesPaysGet, activitesTypesTitresTypesGet } from '../../../database/queries/metas-activites.js'
 import { isSuper } from 'camino-common/src/roles.js'
 import { activitesStatuts as activitesStatutsList } from 'camino-common/src/static/activitesStatuts.js'
 
-const activitesTypes = async (
-  _: never,
-  _context: Context,
-  info: GraphQLResolveInfo
-) => {
+const activitesTypes = async (_: never, _context: Context, info: GraphQLResolveInfo) => {
   try {
     const fields = fieldsBuild(info)
 
@@ -77,10 +68,4 @@ const activitesTypesPays = async (_: never, { user }: Context) => {
   }
 }
 
-export {
-  activitesTypes,
-  activitesStatuts,
-  activitesTypesTitresTypes,
-  activitesTypesDocumentsTypes,
-  activitesTypesPays
-}
+export { activitesTypes, activitesStatuts, activitesTypesTitresTypes, activitesTypesDocumentsTypes, activitesTypesPays }
diff --git a/packages/api/src/api/graphql/resolvers/metas-join.ts b/packages/api/src/api/graphql/resolvers/metas-join.ts
index a34d8bac5..be26dec26 100644
--- a/packages/api/src/api/graphql/resolvers/metas-join.ts
+++ b/packages/api/src/api/graphql/resolvers/metas-join.ts
@@ -5,18 +5,14 @@ import {
   titresTypesDemarchesTypesEtapesTypesGet,
   etapesTypesDocumentsTypesGet,
   etapesTypesJustificatifsTypesGet,
-  titresTypesDemarchesTypesEtapesTypesJustificatifsTypesGet
+  titresTypesDemarchesTypesEtapesTypesJustificatifsTypesGet,
 } from '../../../database/queries/metas.js'
 import { GraphQLResolveInfo } from 'graphql'
 import { fieldsBuild } from './_fields-build.js'
 import { isSuper } from 'camino-common/src/roles.js'
 import { titreTypesStatutsTitresPublicLecture } from 'camino-common/src/static/titresTypes_titresStatuts.js'
 
-const titresTypes = async (
-  _: never,
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const titresTypes = async (_: never, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     if (!isSuper(user)) {
       throw new Error('droits insuffisants')
@@ -42,17 +38,13 @@ const titresTypesTitresStatuts = (_: never) => {
 
 //
 
-const titresTypesDemarchesTypesEtapesTypes = async (
-  _: never,
-  { user }: Context
-) => {
+const titresTypesDemarchesTypesEtapesTypes = async (_: never, { user }: Context) => {
   try {
     if (!isSuper(user)) {
       throw new Error('droits insuffisants')
     }
 
-    const titresTypesDemarchesTypesEtapesTypes =
-      await titresTypesDemarchesTypesEtapesTypesGet()
+    const titresTypesDemarchesTypesEtapesTypes = await titresTypesDemarchesTypesEtapesTypesGet()
 
     return titresTypesDemarchesTypesEtapesTypes
   } catch (e) {
@@ -63,17 +55,13 @@ const titresTypesDemarchesTypesEtapesTypes = async (
 }
 //
 
-const titresTypesDemarchesTypesEtapesTypesJustificatifsTypes = async (
-  _: never,
-  { user }: Context
-) => {
+const titresTypesDemarchesTypesEtapesTypesJustificatifsTypes = async (_: never, { user }: Context) => {
   try {
     if (!isSuper(user)) {
       throw new Error('droits insuffisants')
     }
 
-    const titresTypesDemarchesTypesEtapesTypesJustificatifsTypes =
-      await titresTypesDemarchesTypesEtapesTypesJustificatifsTypesGet()
+    const titresTypesDemarchesTypesEtapesTypesJustificatifsTypes = await titresTypesDemarchesTypesEtapesTypesJustificatifsTypesGet()
 
     return titresTypesDemarchesTypesEtapesTypesJustificatifsTypes
   } catch (e) {
@@ -105,8 +93,7 @@ const etapesTypesJustificatifsTypes = async (_: never, { user }: Context) => {
       throw new Error('droits insuffisants')
     }
 
-    const etapesTypesJustificatifsTypes =
-      await etapesTypesJustificatifsTypesGet()
+    const etapesTypesJustificatifsTypes = await etapesTypesJustificatifsTypesGet()
 
     return etapesTypesJustificatifsTypes
   } catch (e) {
@@ -116,11 +103,4 @@ const etapesTypesJustificatifsTypes = async (_: never, { user }: Context) => {
   }
 }
 
-export {
-  titresTypes,
-  titresTypesTitresStatuts,
-  titresTypesDemarchesTypesEtapesTypes,
-  titresTypesDemarchesTypesEtapesTypesJustificatifsTypes,
-  etapesTypesDocumentsTypes,
-  etapesTypesJustificatifsTypes
-}
+export { titresTypes, titresTypesTitresStatuts, titresTypesDemarchesTypesEtapesTypes, titresTypesDemarchesTypesEtapesTypesJustificatifsTypes, etapesTypesDocumentsTypes, etapesTypesJustificatifsTypes }
diff --git a/packages/api/src/api/graphql/resolvers/metas.test.ts b/packages/api/src/api/graphql/resolvers/metas.test.ts
index e10c86463..9d3bb815e 100644
--- a/packages/api/src/api/graphql/resolvers/metas.test.ts
+++ b/packages/api/src/api/graphql/resolvers/metas.test.ts
@@ -1,7 +1,4 @@
-import {
-  etapesTypesPossibleACetteDateOuALaPlaceDeLEtape,
-  TitreEtapeForMachine
-} from './metas.js'
+import { etapesTypesPossibleACetteDateOuALaPlaceDeLEtape, TitreEtapeForMachine } from './metas.js'
 import { ArmOctMachine } from '../../../business/rules-demarches/arm/oct.machine.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 import { describe, expect, test, vi } from 'vitest'
@@ -14,7 +11,7 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () {
       statutId: 'fai',
       ordre: 16,
       date: toCaminoDate('2020-08-17'),
-      contenu: { arm: { mecanise: true } }
+      contenu: { arm: { mecanise: true } },
     },
     {
       id: 'etapeId1',
@@ -22,70 +19,70 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () {
       statutId: 'fai',
       ordre: 1,
       date: toCaminoDate('2019-09-19'),
-      contenu: { arm: { mecanise: true, franchissements: 19 } }
+      contenu: { arm: { mecanise: true, franchissements: 19 } },
     },
     {
       id: 'etapeId5',
       typeId: 'mcp',
       statutId: 'com',
       ordre: 5,
-      date: toCaminoDate('2019-11-27')
+      date: toCaminoDate('2019-11-27'),
     },
     {
       id: 'etapeId10',
       typeId: 'aof',
       statutId: 'fav',
       ordre: 10,
-      date: toCaminoDate('2019-12-04')
+      date: toCaminoDate('2019-12-04'),
     },
     {
       id: 'etapeId9',
       typeId: 'eof',
       statutId: 'fai',
       ordre: 9,
-      date: toCaminoDate('2019-12-04')
+      date: toCaminoDate('2019-12-04'),
     },
     {
       id: 'etapeId14',
       typeId: 'pfc',
       statutId: 'fai',
       ordre: 14,
-      date: toCaminoDate('2020-05-22')
+      date: toCaminoDate('2020-05-22'),
     },
     {
       id: 'etapeId8',
       typeId: 'mcr',
       statutId: 'fav',
       ordre: 8,
-      date: toCaminoDate('2019-12-04')
+      date: toCaminoDate('2019-12-04'),
     },
     {
       id: 'etapeId4',
       typeId: 'pfd',
       statutId: 'fai',
       ordre: 4,
-      date: toCaminoDate('2019-11-20')
+      date: toCaminoDate('2019-11-20'),
     },
     {
       id: 'etapeId15',
       typeId: 'vfc',
       statutId: 'fai',
       ordre: 15,
-      date: toCaminoDate('2020-05-22')
+      date: toCaminoDate('2020-05-22'),
     },
     {
       id: 'etapeId13',
       typeId: 'mnb',
       statutId: 'fai',
       ordre: 13,
-      date: toCaminoDate('2020-05-18')
+      date: toCaminoDate('2020-05-18'),
     },
     {
       id: 'etapeId12',
       typeId: 'aca',
       statutId: 'fav',
       ordre: 12,
-      date: toCaminoDate('2020-05-13')
+      date: toCaminoDate('2020-05-13'),
     },
     {
       id: 'etapeId6',
@@ -93,72 +90,57 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () {
       statutId: 'fav',
       ordre: 6,
       date: toCaminoDate('2019-12-04'),
-      contenu: { arm: { franchissements: 19 } }
+      contenu: { arm: { franchissements: 19 } },
     },
     {
       id: 'etapeId2',
       typeId: 'mdp',
       statutId: 'fai',
       ordre: 2,
-      date: toCaminoDate('2019-09-20')
+      date: toCaminoDate('2019-09-20'),
     },
     {
       id: 'etapeId7',
       typeId: 'vfd',
       statutId: 'fai',
       ordre: 7,
-      date: toCaminoDate('2019-12-04')
+      date: toCaminoDate('2019-12-04'),
     },
     {
       id: 'etapeId11',
       typeId: 'sca',
       statutId: 'fai',
       ordre: 11,
-      date: toCaminoDate('2020-05-04')
+      date: toCaminoDate('2020-05-04'),
     },
     {
       id: 'etapeId3',
       typeId: 'dae',
       statutId: 'exe',
       ordre: 3,
-      date: toCaminoDate('2019-10-11')
+      date: toCaminoDate('2019-10-11'),
     },
     {
       id: 'etapeId17',
       typeId: 'aco',
       statutId: 'fai',
       ordre: 17,
-      date: toCaminoDate('2022-05-05')
-    }
+      date: toCaminoDate('2022-05-05'),
+    },
   ]
 
   const machine = new ArmOctMachine()
   test('modifie une étape existante', () => {
-    const tested = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(
-      machine,
-      etapes,
-      'etapeId3',
-      toCaminoDate('2019-10-11')
-    )
+    const tested = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(machine, etapes, 'etapeId3', toCaminoDate('2019-10-11'))
     expect(tested).toHaveLength(1)
     expect(tested).toStrictEqual(['dae'])
   })
 
   test('modifie une étape existante à la même date devrait permettre de recréer la même étape', () => {
     for (const etape of etapes ?? []) {
-      const etapesTypesPossibles =
-        etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(
-          machine,
-          etapes,
-          etape.id,
-          etape.date
-        )
+      const etapesTypesPossibles = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(machine, etapes, etape.id, etape.date)
       if (etapesTypesPossibles.length === 0) {
-        console.error(
-          `pas d'étapes possibles à l'étape ${JSON.stringify(
-            etape
-          )}. Devrait contenir AU MOINS la même étape`
-        )
+        console.error(`pas d'étapes possibles à l'étape ${JSON.stringify(etape)}. Devrait contenir AU MOINS la même étape`)
       }
       expect(etapesTypesPossibles.length).toBeGreaterThan(0)
       expect(etapesTypesPossibles).toContain(etape.typeId)
@@ -166,23 +148,13 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () {
   })
 
   test('ajoute une nouvelle étape à la fin', () => {
-    const tested = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(
-      machine,
-      etapes,
-      undefined,
-      toCaminoDate('2022-05-06')
-    )
+    const tested = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(machine, etapes, undefined, toCaminoDate('2022-05-06'))
     expect(tested).toHaveLength(1)
     expect(tested[0]).toBe('mnv')
   })
 
   test('ajoute une nouvelle étape en plein milieu', () => {
-    const tested = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(
-      machine,
-      etapes,
-      undefined,
-      toCaminoDate('2019-12-04')
-    )
+    const tested = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(machine, etapes, undefined, toCaminoDate('2019-12-04'))
     expect(tested).toStrictEqual(['mod'])
   })
 
@@ -194,23 +166,18 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () {
         typeId: 'mfr',
         statutId: 'fai',
         date: toCaminoDate('2022-05-16'),
-        contenu: { arm: { mecanise: true, franchissements: 2 } }
+        contenu: { arm: { mecanise: true, franchissements: 2 } },
       },
       {
         id: 'idMdp',
 
         typeId: 'mdp',
         statutId: 'fai',
-        date: toCaminoDate('2022-05-17')
-      }
+        date: toCaminoDate('2022-05-17'),
+      },
     ]
 
-    const tested = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(
-      machine,
-      etapes,
-      undefined,
-      toCaminoDate('2019-12-04')
-    )
+    const tested = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(machine, etapes, undefined, toCaminoDate('2019-12-04'))
     expect(tested).toStrictEqual(['rde', 'pfd', 'dae'])
   })
 
@@ -221,22 +188,17 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () {
         typeId: 'mfr',
         statutId: 'fai',
         date: toCaminoDate('2022-05-16'),
-        contenu: { arm: { mecanise: false } }
+        contenu: { arm: { mecanise: false } },
       },
       {
         id: 'idMdp',
         typeId: 'mdp',
         statutId: 'fai',
-        date: toCaminoDate('2022-05-17')
-      }
+        date: toCaminoDate('2022-05-17'),
+      },
     ]
 
-    const tested = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(
-      machine,
-      etapes,
-      undefined,
-      toCaminoDate('2019-12-04')
-    )
+    const tested = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(machine, etapes, undefined, toCaminoDate('2019-12-04'))
     expect(tested).toStrictEqual(['pfd'])
   })
 
@@ -251,10 +213,10 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () {
         contenu: {
           arm: {
             mecanise: true,
-            franchissements: 9
-          }
+            franchissements: 9,
+          },
         },
-        ordre: 3
+        ordre: 3,
       },
       {
         id: 'idrcm',
@@ -264,31 +226,31 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () {
         contenu: {
           arm: {
             mecanise: true,
-            franchissements: 9
-          }
+            franchissements: 9,
+          },
         },
-        ordre: 7
+        ordre: 7,
       },
       {
         id: 'idMcp',
         date: toCaminoDate('2021-11-05'),
         typeId: 'mcp',
         statutId: 'inc',
-        ordre: 5
+        ordre: 5,
       },
       {
         id: 'idmcp',
         date: toCaminoDate('2021-11-17'),
         typeId: 'mcp',
         statutId: 'com',
-        ordre: 8
+        ordre: 8,
       },
       {
         id: 'ideof',
         date: toCaminoDate('2021-11-22'),
         typeId: 'eof',
         statutId: 'fai',
-        ordre: 11
+        ordre: 11,
       },
       {
         id: 'iddae',
@@ -296,7 +258,7 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () {
         typeId: 'dae',
         statutId: 'exe',
 
-        ordre: 1
+        ordre: 1,
       },
       {
         id: 'idmcr',
@@ -304,7 +266,7 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () {
         typeId: 'mcr',
         statutId: 'fav',
         contenu: null,
-        ordre: 10
+        ordre: 10,
       },
       {
         id: 'idmcb',
@@ -312,62 +274,47 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () {
         typeId: 'mcb',
         statutId: 'fai',
 
-        ordre: 13
+        ordre: 13,
       },
       {
         id: 'idedm',
         date: toCaminoDate('2021-11-30'),
         typeId: 'edm',
         statutId: 'fav',
-        ordre: 12
+        ordre: 12,
       },
       {
         id: 'idvfd',
         date: toCaminoDate('2021-11-19'),
         typeId: 'vfd',
         statutId: 'fai',
-        ordre: 9
+        ordre: 9,
       },
       {
         id: 'idpfd',
         date: toCaminoDate('2021-10-26'),
         typeId: 'pfd',
         statutId: 'fai',
-        ordre: 2
+        ordre: 2,
       },
       {
         id: 'idmdp',
         date: toCaminoDate('2021-11-02'),
         typeId: 'mdp',
         statutId: 'fai',
-        ordre: 4
+        ordre: 4,
       },
       {
         id: 'idmcm',
         date: toCaminoDate('2021-11-05'),
         typeId: 'mcm',
         statutId: 'fai',
-        ordre: 6
-      }
+        ordre: 6,
+      },
     ]
 
-    const tested = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(
-      machine,
-      etapes,
-      undefined,
-      toCaminoDate('2022-07-01')
-    )
-    expect(tested).toStrictEqual([
-      'rcb',
-      'rde',
-      'mcb',
-      'mod',
-      'des',
-      'css',
-      'aof',
-      'mia',
-      'ede'
-    ])
+    const tested = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(machine, etapes, undefined, toCaminoDate('2022-07-01'))
+    expect(tested).toStrictEqual(['rcb', 'rde', 'mcb', 'mod', 'des', 'css', 'aof', 'mia', 'ede'])
     vi.resetAllMocks()
   })
   test('peut faire une completude (mcp) le même jour que le dépôt (mdp) de la demande', () => {
@@ -380,17 +327,17 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () {
         contenu: {
           arm: {
             mecanise: true,
-            franchissements: 4
-          }
+            franchissements: 4,
+          },
         },
-        ordre: 3
+        ordre: 3,
       },
       {
         id: 'id1',
         typeId: 'dae',
         statutId: 'exe',
         date: toCaminoDate('2021-06-22'),
-        ordre: 1
+        ordre: 1,
       },
       {
         id: 'id4',
@@ -398,7 +345,7 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () {
         typeId: 'mdp',
         statutId: 'fai',
         date: toCaminoDate('2022-07-01'),
-        ordre: 4
+        ordre: 4,
       },
       {
         id: 'id2',
@@ -406,16 +353,11 @@ describe('etapesTypesPossibleACetteDateOuALaPlaceDeLEtape', function () {
         typeId: 'pfd',
         statutId: 'fai',
         date: toCaminoDate('2021-07-05'),
-        ordre: 2
-      }
+        ordre: 2,
+      },
     ]
 
-    const tested = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(
-      machine,
-      etapes,
-      undefined,
-      toCaminoDate('2022-07-01')
-    )
+    const tested = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(machine, etapes, undefined, toCaminoDate('2022-07-01'))
     expect(tested).toStrictEqual(['mcp', 'mod', 'des', 'css', 'rde', 'mcb'])
   })
 })
diff --git a/packages/api/src/api/graphql/resolvers/metas.ts b/packages/api/src/api/graphql/resolvers/metas.ts
index 8194f16e8..4433cf4a7 100644
--- a/packages/api/src/api/graphql/resolvers/metas.ts
+++ b/packages/api/src/api/graphql/resolvers/metas.ts
@@ -1,29 +1,13 @@
 import { GraphQLResolveInfo } from 'graphql'
-import {
-  Context,
-  IDocumentRepertoire,
-  IEtapeType,
-  IFields,
-  ITitreEtape
-} from '../../../types.js'
-
-import {
-  demarchesStatutsGet,
-  devisesGet,
-  documentsTypesGet,
-  domainesGet,
-  etapesTypesGet,
-  titresTypesTypesGet
-} from '../../../database/queries/metas.js'
+import { Context, IDocumentRepertoire, IEtapeType, IFields, ITitreEtape } from '../../../types.js'
+
+import { demarchesStatutsGet, devisesGet, documentsTypesGet, domainesGet, etapesTypesGet, titresTypesTypesGet } from '../../../database/queries/metas.js'
 
 import { fieldsBuild } from './_fields-build.js'
 import { etapeTypeIsValidCheck } from '../../_format/etapes-types.js'
 import { titreDemarcheGet } from '../../../database/queries/titres-demarches.js'
 import { titreEtapeGet } from '../../../database/queries/titres-etapes.js'
-import {
-  demarcheDefinitionFind,
-  isDemarcheDefinitionMachine
-} from '../../../business/rules-demarches/definitions.js'
+import { demarcheDefinitionFind, isDemarcheDefinitionMachine } from '../../../business/rules-demarches/definitions.js'
 import { userSuper } from '../../../database/user-super.js'
 import { sortedAdministrationTypes } from 'camino-common/src/static/administrations.js'
 import { sortedGeoSystemes } from 'camino-common/src/static/geoSystemes.js'
@@ -31,20 +15,11 @@ import { User } from 'camino-common/src/roles'
 import { UNITES } from 'camino-common/src/static/unites.js'
 import { titreEtapesSortAscByOrdre } from '../../../business/utils/titre-etapes-sort.js'
 import { Pays, PaysList } from 'camino-common/src/static/pays.js'
-import {
-  Departement,
-  Departements
-} from 'camino-common/src/static/departement.js'
+import { Departement, Departements } from 'camino-common/src/static/departement.js'
 import { Region, Regions } from 'camino-common/src/static/region.js'
 import { EtapesStatuts } from 'camino-common/src/static/etapesStatuts.js'
-import {
-  sortedTitresStatuts,
-  TitresStatutIds
-} from 'camino-common/src/static/titresStatuts.js'
-import {
-  Etape,
-  toMachineEtapes
-} from '../../../business/rules-demarches/machine-common.js'
+import { sortedTitresStatuts, TitresStatutIds } from 'camino-common/src/static/titresStatuts.js'
+import { Etape, toMachineEtapes } from '../../../business/rules-demarches/machine-common.js'
 import { CaminoMachines } from '../../../business/rules-demarches/machines.js'
 import { phasesStatuts as staticPhasesStatuts } from 'camino-common/src/static/phasesStatuts.js'
 import { sortedReferencesTypes } from 'camino-common/src/static/referencesTypes.js'
@@ -63,13 +38,7 @@ export const geoSystemes = () => sortedGeoSystemes
 
 export const unites = () => UNITES
 
-export const documentsTypes = async ({
-  repertoire,
-  typeId
-}: {
-  repertoire: IDocumentRepertoire
-  typeId?: string
-}) => {
+export const documentsTypes = async ({ repertoire, typeId }: { repertoire: IDocumentRepertoire; typeId?: string }) => {
   try {
     return await documentsTypesGet({ repertoire, typeId })
   } catch (e) {
@@ -81,11 +50,7 @@ export const documentsTypes = async ({
 
 export const referencesTypes = () => sortedReferencesTypes
 
-export const domaines = async (
-  _: never,
-  _context: Context,
-  info: GraphQLResolveInfo
-) => {
+export const domaines = async (_: never, _context: Context, info: GraphQLResolveInfo) => {
   try {
     const fields = fieldsBuild(info)
 
@@ -121,17 +86,9 @@ export const demarchesStatuts = async () => {
   }
 }
 
-export type TitreEtapeForMachine = Pick<
-  ITitreEtape,
-  'ordre' | 'id' | 'typeId' | 'statutId' | 'date' | 'contenu'
->
+export type TitreEtapeForMachine = Pick<ITitreEtape, 'ordre' | 'id' | 'typeId' | 'statutId' | 'date' | 'contenu'>
 // VISIBLE_FOR_TESTING
-export const etapesTypesPossibleACetteDateOuALaPlaceDeLEtape = (
-  machine: CaminoMachines,
-  etapes: TitreEtapeForMachine[],
-  titreEtapeId: string | undefined,
-  date: CaminoDate
-): EtapeTypeId[] => {
+export const etapesTypesPossibleACetteDateOuALaPlaceDeLEtape = (machine: CaminoMachines, etapes: TitreEtapeForMachine[], titreEtapeId: string | undefined, date: CaminoDate): EtapeTypeId[] => {
   const sortedEtapes = titreEtapesSortAscByOrdre(etapes)
   const etapesAvant: Etape[] = []
   const etapesApres: Etape[] = []
@@ -142,9 +99,7 @@ export const etapesTypesPossibleACetteDateOuALaPlaceDeLEtape = (
   } else {
     // TODO 2022-07-12: Il faudrait mieux gérer les étapes à la même date que l'étape qu'on veut rajouter
     // elles ne sont ni avant, ni après, mais potentiellement au milieu de toutes ces étapes
-    etapesAvant.push(
-      ...toMachineEtapes(sortedEtapes.filter(etape => etape.date <= date))
-    )
+    etapesAvant.push(...toMachineEtapes(sortedEtapes.filter(etape => etape.date <= date)))
     etapesApres.push(...toMachineEtapes(sortedEtapes.slice(etapesAvant.length)))
   }
 
@@ -158,20 +113,10 @@ export const etapesTypesPossibleACetteDateOuALaPlaceDeLEtape = (
     return machine.isEtapesOk(newEtapes)
   })
 
-  return etapesPossibles
-    .map(({ etapeTypeId }) => etapeTypeId)
-    .filter(onlyUnique)
+  return etapesPossibles.map(({ etapeTypeId }) => etapeTypeId).filter(onlyUnique)
 }
 
-const demarcheEtapesTypesGet = async (
-  {
-    titreDemarcheId,
-    titreEtapeId,
-    date
-  }: { titreDemarcheId: string; date: CaminoDate; titreEtapeId?: string },
-  { fields }: { fields: IFields },
-  user: User
-) => {
+const demarcheEtapesTypesGet = async ({ titreDemarcheId, titreEtapeId, date }: { titreDemarcheId: string; date: CaminoDate; titreEtapeId?: string }, { fields }: { fields: IFields }, user: User) => {
   const titreDemarche = await titreDemarcheGet(
     titreDemarcheId,
     {
@@ -181,10 +126,10 @@ const demarcheEtapesTypesGet = async (
           type: { id: {} },
           demarches: { etapes: { id: {} } },
           pointsEtape: { id: {} },
-          titulaires: { id: {} }
+          titulaires: { id: {} },
         },
-        etapes: { type: { id: {} } }
-      }
+        etapes: { type: { id: {} } },
+      },
     },
     userSuper
   )
@@ -193,9 +138,7 @@ const demarcheEtapesTypesGet = async (
 
   const titre = titreDemarche.titre!
 
-  const titreEtape = titreEtapeId
-    ? await titreEtapeGet(titreEtapeId, {}, user)
-    : undefined
+  const titreEtape = titreEtapeId ? await titreEtapeGet(titreEtapeId, {}, user) : undefined
 
   if (titreEtapeId && !titreEtape) throw new Error("l'étape n'existe pas")
 
@@ -203,65 +146,29 @@ const demarcheEtapesTypesGet = async (
   // si on modifie une étape
   // vérifie que son type est possible sur la démarche
   if (titreEtape) {
-    const etapeType = demarcheTypeEtapesTypes.find(
-      et => et.id === titreEtape.typeId
-    )
+    const etapeType = demarcheTypeEtapesTypes.find(et => et.id === titreEtape.typeId)
 
     if (!etapeType) {
-      throw new Error(
-        `étape ${titreEtape.type!.nom} inexistante pour une démarche ${
-          titreDemarche.type!.nom
-        } pour un titre ${titre.typeId}.`
-      )
+      throw new Error(`étape ${titreEtape.type!.nom} inexistante pour une démarche ${titreDemarche.type!.nom} pour un titre ${titre.typeId}.`)
     }
   }
 
   // si il existe un arbre d’instructions pour cette démarche,
   // on laisse l’arbre traiter l’unicité des étapes
-  const demarcheDefinition = demarcheDefinitionFind(
-    titre.typeId,
-    titreDemarche.typeId,
-    titreDemarche.etapes,
-    titreDemarche.id
-  )
+  const demarcheDefinition = demarcheDefinitionFind(titre.typeId, titreDemarche.typeId, titreDemarche.etapes, titreDemarche.id)
 
   const etapesTypes: IEtapeType[] = []
   if (isDemarcheDefinitionMachine(demarcheDefinition)) {
-    if (!titreDemarche.etapes)
-      throw new Error('les étapes ne sont pas chargées')
-    const etapes = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(
-      demarcheDefinition.machine,
-      titreDemarche.etapes,
-      titreEtapeId,
-      date
-    )
+    if (!titreDemarche.etapes) throw new Error('les étapes ne sont pas chargées')
+    const etapes = etapesTypesPossibleACetteDateOuALaPlaceDeLEtape(demarcheDefinition.machine, titreDemarche.etapes, titreEtapeId, date)
     const graph = fields ? graphBuild(fields, 'etapesTypes', fieldsFormat) : []
 
-    etapesTypes.push(
-      ...(await EtapesTypes.query()
-        .whereIn('id', etapes)
-        .orderBy('ordre')
-        .withGraphFetched(graph))
-    )
+    etapesTypes.push(...(await EtapesTypes.query().whereIn('id', etapes).orderBy('ordre').withGraphFetched(graph)))
   } else {
     // dans un premier temps on récupère toutes les étapes possibles pour cette démarche
     etapesTypes.push(
-      ...(
-        await etapesTypesGet(
-          { titreDemarcheId, titreEtapeId },
-          { fields, uniqueCheck: !demarcheDefinition },
-          user
-        )
-      ).filter(etapeType =>
-        etapeTypeIsValidCheck(
-          etapeType,
-          date,
-          titre,
-          titreDemarche.type!,
-          titreDemarche.id,
-          titreDemarche.etapes,
-          titreEtape
-        )
+      ...(await etapesTypesGet({ titreDemarcheId, titreEtapeId }, { fields, uniqueCheck: !demarcheDefinition }, user)).filter(etapeType =>
+        etapeTypeIsValidCheck(etapeType, date, titre, titreDemarche.type!, titreDemarche.id, titreDemarche.etapes, titreEtape)
       )
     )
   }
@@ -270,15 +177,13 @@ const demarcheEtapesTypesGet = async (
     canCreateOrEditEtape(
       user,
       etapeType.id,
-      titreEtapeId && etapeType.id === titreEtape?.typeId
-        ? titreEtape?.statutId ?? null
-        : null,
+      titreEtapeId && etapeType.id === titreEtape?.typeId ? titreEtape?.statutId ?? null : null,
       titre.titulaires ?? [],
       titre.administrationsLocales ?? [],
       titreDemarche.typeId,
       {
         typeId: titre.typeId,
-        titreStatutId: titre.titreStatutId ?? TitresStatutIds.Indetermine
+        titreStatutId: titre.titreStatutId ?? TitresStatutIds.Indetermine,
       },
       'creation'
     )
@@ -290,7 +195,7 @@ export const etapesTypes = async (
     titreDemarcheId,
     titreEtapeId,
     date,
-    travaux
+    travaux,
   }: {
     titreDemarcheId?: string
     titreEtapeId?: string
@@ -310,11 +215,7 @@ export const etapesTypes = async (
         throw new Error(`date manquante`)
       }
 
-      return demarcheEtapesTypesGet(
-        { titreDemarcheId, date, titreEtapeId },
-        { fields },
-        user
-      )
+      return demarcheEtapesTypesGet({ titreDemarcheId, date, titreEtapeId }, { fields }, user)
     }
 
     // sinon (p.e.: édition des métas ou des permissions d'administration)
diff --git a/packages/api/src/api/graphql/resolvers/points.ts b/packages/api/src/api/graphql/resolvers/points.ts
index 756eb073e..b49fb9910 100644
--- a/packages/api/src/api/graphql/resolvers/points.ts
+++ b/packages/api/src/api/graphql/resolvers/points.ts
@@ -3,46 +3,20 @@ import { ITitrePoint, Context } from '../../../types.js'
 import { FileUpload } from 'graphql-upload'
 import { Stream } from 'stream'
 import shpjs from 'shpjs'
-import {
-  FeatureCollection,
-  MultiPolygon,
-  Polygon,
-  Position,
-  Feature
-} from 'geojson'
-import {
-  documentTypeIdsBySdomZonesGet,
-  titreEtapePointsCalc,
-  titreEtapeSdomZonesGet
-} from './_titre-etape.js'
-import {
-  geojsonFeatureMultiPolygon,
-  geojsonSurface
-} from '../../../tools/geojson.js'
+import { FeatureCollection, MultiPolygon, Polygon, Position, Feature } from 'geojson'
+import { documentTypeIdsBySdomZonesGet, titreEtapePointsCalc, titreEtapeSdomZonesGet } from './_titre-etape.js'
+import { geojsonFeatureMultiPolygon, geojsonSurface } from '../../../tools/geojson.js'
 import { titreEtapeGet } from '../../../database/queries/titres-etapes.js'
 import { etapeTypeGet } from '../../../database/queries/metas.js'
 import { titreGet, titresGet } from '../../../database/queries/titres.js'
 import { userSuper } from '../../../database/user-super.js'
 import intersect from '@turf/intersect'
-import {
-  assertGeoSystemeId,
-  GeoSystemes
-} from 'camino-common/src/static/geoSystemes.js'
-import {
-  isSuper,
-  isAdministrationAdmin,
-  isAdministrationEditeur,
-  User
-} from 'camino-common/src/roles.js'
+import { assertGeoSystemeId, GeoSystemes } from 'camino-common/src/static/geoSystemes.js'
+import { isSuper, isAdministrationAdmin, isAdministrationEditeur, User } from 'camino-common/src/roles.js'
 import { titreDemarcheGet } from '../../../database/queries/titres-demarches.js'
 import { TitresStatuts } from 'camino-common/src/static/titresStatuts.js'
 import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
-import {
-  SDOMZone,
-  SDOMZoneId,
-  SDOMZoneIds,
-  SDOMZones
-} from 'camino-common/src/static/sdom.js'
+import { SDOMZone, SDOMZoneId, SDOMZoneIds, SDOMZones } from 'camino-common/src/static/sdom.js'
 
 const stream2buffer = async (stream: Stream): Promise<Buffer> => {
   return new Promise<Buffer>((resolve, reject) => {
@@ -50,9 +24,7 @@ const stream2buffer = async (stream: Stream): Promise<Buffer> => {
 
     stream.on('data', chunk => _buf.push(chunk))
     stream.on('end', () => resolve(Buffer.concat(_buf)))
-    stream.on('error', err =>
-      reject(new Error(`error converting stream - ${err}`))
-    )
+    stream.on('error', err => reject(new Error(`error converting stream - ${err}`)))
   })
 }
 
@@ -73,7 +45,7 @@ export const pointsImporter = async (
     fileUpload,
     geoSystemeId,
     demarcheId,
-    etapeTypeId
+    etapeTypeId,
   }: {
     fileUpload: { file: FileUpload }
     geoSystemeId: string
@@ -93,10 +65,7 @@ export const pointsImporter = async (
       throw new Error('fichier vide')
     }
 
-    if (
-      !file.filename.endsWith('.geojson') &&
-      !file.filename.endsWith('.shp')
-    ) {
+    if (!file.filename.endsWith('.geojson') && !file.filename.endsWith('.shp')) {
       throw new Error('seul les fichiers geojson ou shape sont acceptés')
     }
 
@@ -109,14 +78,10 @@ export const pointsImporter = async (
 
     let geojson: Position[][][]
     if (file.filename.endsWith('.geojson')) {
-      const features = JSON.parse(
-        buffer.toString()
-      ) as FeatureCollection<MultiPolygon>
+      const features = JSON.parse(buffer.toString()) as FeatureCollection<MultiPolygon>
       geojson = (features.features[0].geometry as MultiPolygon).coordinates
     } else {
-      geojson = ((await shpjs.parseShp(buffer, 'EPSG:4326')) as Polygon[]).map(
-        p => p.coordinates
-      )
+      geojson = ((await shpjs.parseShp(buffer, 'EPSG:4326')) as Polygon[]).map(p => p.coordinates)
     }
 
     const points = [] as Omit<ITitrePoint, 'id' | 'titreEtapeId'>[]
@@ -125,13 +90,7 @@ export const pointsImporter = async (
       groupe.forEach((contour, contourIndex) => {
         contour.forEach((point, pointIndex) => {
           // Si le point n’a pas déjà été ajouté. Souvent le dernier point est le même que le premier.
-          if (
-            !points.some(
-              p =>
-                p.references[0].coordonnees.x === point[0] &&
-                p.references[0].coordonnees.y === point[1]
-            )
-          ) {
+          if (!points.some(p => p.references[0].coordonnees.x === point[0] && p.references[0].coordonnees.y === point[1])) {
             points.push({
               groupe: groupeIndex + 1,
               contour: contourIndex + 1,
@@ -142,9 +101,9 @@ export const pointsImporter = async (
                   id: '',
                   titrePointId: '',
                   coordonnees: { x: point[0], y: point[1] },
-                  geoSystemeId: geoSysteme.id
-                }
-              ]
+                  geoSystemeId: geoSysteme.id,
+                },
+              ],
             })
           }
         })
@@ -155,7 +114,7 @@ export const pointsImporter = async (
       {
         points: points as ITitrePoint[],
         demarcheId,
-        etapeTypeId
+        etapeTypeId,
       },
       context
     )
@@ -186,56 +145,27 @@ const sdomZonesInformationsGet = async (
 
   // si c’est une demande d’AXM, on doit afficher une alerte si on est en zone 0 ou 1 du Sdom
   if (titreTypeId === 'axm' && ['mfr', 'mcr'].includes(etapeTypeId)) {
-    const zoneId = zones.find(id =>
-      [
-        SDOMZoneIds.Zone0,
-        SDOMZoneIds.Zone0Potentielle,
-        SDOMZoneIds.Zone1
-      ].includes(id)
-    )
+    const zoneId = zones.find(id => [SDOMZoneIds.Zone0, SDOMZoneIds.Zone0Potentielle, SDOMZoneIds.Zone1].includes(id))
     if (zoneId) {
       alertes.push({
-        message: `Le périmètre renseigné est dans une zone du Sdom interdite à l’exploitation minière : ${SDOMZones[zoneId].nom}`
+        message: `Le périmètre renseigné est dans une zone du Sdom interdite à l’exploitation minière : ${SDOMZones[zoneId].nom}`,
       })
     }
 
-    if (
-      (isSuper(user) ||
-        isAdministrationAdmin(user) ||
-        isAdministrationEditeur(user)) &&
-      points?.length > 2
-    ) {
+    if ((isSuper(user) || isAdministrationAdmin(user) || isAdministrationEditeur(user)) && points?.length > 2) {
       // vérifie qu’il n’existe pas de demandes de titres en cours sur ce périmètre
-      const titres = await titresGet(
-        { statutsIds: ['val', 'mod', 'dmi'], domainesIds: ['m'] },
-        { fields: { points: { id: {} } } },
-        userSuper
-      )
-      const geojsonFeatures = geojsonFeatureMultiPolygon(
-        points as ITitrePoint[]
-      )
+      const titres = await titresGet({ statutsIds: ['val', 'mod', 'dmi'], domainesIds: ['m'] }, { fields: { points: { id: {} } } }, userSuper)
+      const geojsonFeatures = geojsonFeatureMultiPolygon(points as ITitrePoint[])
 
       // TODO 2022-08-30 utiliser postgis au lieu de turf/intersect
       titres
         ?.filter(t => t.id !== titreId)
         ?.filter(t => t.points && t.points.length > 2)
-        .filter(
-          t =>
-            !!intersect(
-              geojsonFeatures as Feature<Polygon>,
-              geojsonFeatureMultiPolygon(
-                t.points as ITitrePoint[]
-              ) as Feature<Polygon>
-            )
-        )
+        .filter(t => !!intersect(geojsonFeatures as Feature<Polygon>, geojsonFeatureMultiPolygon(t.points as ITitrePoint[]) as Feature<Polygon>))
         .forEach(t =>
           alertes.push({
-            message: `Le titre ${t.nom} au statut « ${
-              isNotNullNorUndefined(t.titreStatutId)
-                ? TitresStatuts[t.titreStatutId].nom
-                : ''
-            } » est superposé à ce titre`,
-            url: `/titres/${t.slug}`
+            message: `Le titre ${t.nom} au statut « ${isNotNullNorUndefined(t.titreStatutId) ? TitresStatuts[t.titreStatutId].nom : ''} » est superposé à ce titre`,
+            url: `/titres/${t.slug}`,
           })
         )
     }
@@ -248,12 +178,7 @@ const sdomZonesInformationsGet = async (
 
   const surface = await geojsonSurface(geojsonFeatures as Feature)
 
-  const documentTypeIds = documentTypeIdsBySdomZonesGet(
-    etapeSdomZones,
-    titreTypeId,
-    demarcheTypeId,
-    etapeTypeId
-  )
+  const documentTypeIds = documentTypeIdsBySdomZonesGet(etapeSdomZones, titreTypeId, demarcheTypeId, etapeTypeId)
 
   return { surface, documentTypeIds, alertes }
 }
@@ -262,7 +187,7 @@ export const perimetreInformations = async (
   {
     points,
     demarcheId,
-    etapeTypeId
+    etapeTypeId,
   }: {
     points: ITitrePoint[] | undefined | null
     demarcheId: string
@@ -280,9 +205,7 @@ export const perimetreInformations = async (
     if (points && points.length > 2) {
       titreEtapePoints = titreEtapePointsCalc(points)
 
-      const geojsonFeatures = geojsonFeatureMultiPolygon(
-        titreEtapePoints
-      ) as Feature
+      const geojsonFeatures = geojsonFeatureMultiPolygon(titreEtapePoints) as Feature
 
       const result = await titreEtapeSdomZonesGet(geojsonFeatures)
       if (result.fallback) {
@@ -291,11 +214,7 @@ export const perimetreInformations = async (
       sdomZones.push(...result.data)
     }
 
-    const demarche = await titreDemarcheGet(
-      demarcheId,
-      { fields: { id: {} } },
-      userSuper
-    )
+    const demarche = await titreDemarcheGet(demarcheId, { fields: { id: {} } }, userSuper)
 
     if (!demarche) {
       throw new Error('droits insuffisants')
@@ -304,27 +223,17 @@ export const perimetreInformations = async (
     const titre = await titreGet(
       demarche.titreId,
       {
-        fields: { points: { id: {} } }
+        fields: { points: { id: {} } },
       },
       userSuper
     )
 
-    const informations = await sdomZonesInformationsGet(
-      titreEtapePoints,
-      sdomZones,
-      titre!.typeId,
-      demarche.typeId,
-      etapeTypeId,
-      titre!.points || [],
-      titre?.sdomZones ?? [],
-      titre!.id,
-      user
-    )
+    const informations = await sdomZonesInformationsGet(titreEtapePoints, sdomZones, titre!.typeId, demarche.typeId, etapeTypeId, titre!.points || [], titre?.sdomZones ?? [], titre!.id, user)
 
     return {
       ...informations,
       sdomZones: sdomZones.map(id => SDOMZones[id]),
-      points: titreEtapePoints
+      points: titreEtapePoints,
     }
   } catch (e) {
     console.error(e)
@@ -335,7 +244,7 @@ export const perimetreInformations = async (
 
 export const titreEtapePerimetreInformations = async (
   {
-    titreEtapeId
+    titreEtapeId,
   }: {
     titreEtapeId: string
   },
@@ -350,8 +259,8 @@ export const titreEtapePerimetreInformations = async (
       titreEtapeId,
       {
         fields: {
-          demarche: { titre: { points: { id: {} } } }
-        }
+          demarche: { titre: { points: { id: {} } } },
+        },
       },
       user
     )
diff --git a/packages/api/src/api/graphql/resolvers/statistiques.ts b/packages/api/src/api/graphql/resolvers/statistiques.ts
index 19535a1e7..57f6a2715 100644
--- a/packages/api/src/api/graphql/resolvers/statistiques.ts
+++ b/packages/api/src/api/graphql/resolvers/statistiques.ts
@@ -5,15 +5,9 @@ import { titreValideCheck } from '../../../business/utils/titre-valide-check.js'
 import { titresActivitesGet } from '../../../database/queries/titres-activites.js'
 import { userSuper } from '../../../database/user-super.js'
 import { matomoData } from '../../../tools/api-matomo/index.js'
-import {
-  Statistiques,
-  StatistiquesUtilisateurs
-} from 'camino-common/src/statistiques.js'
+import { Statistiques, StatistiquesUtilisateurs } from 'camino-common/src/statistiques.js'
 import Utilisateurs from '../../../database/models/utilisateurs.js'
-import {
-  isAdministration,
-  isEntrepriseOrBureauDetudeRole
-} from 'camino-common/src/roles.js'
+import { isAdministration, isEntrepriseOrBureauDetudeRole } from 'camino-common/src/roles.js'
 import { Administrations } from 'camino-common/src/static/administrations.js'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
 import { DEMARCHES_TYPES_IDS } from 'camino-common/src/static/demarchesTypes.js'
@@ -25,77 +19,51 @@ const statistiquesGlobales = async (): Promise<Statistiques> => {
   try {
     const titresActivites = await titresActivitesGet({}, {}, userSuper)
 
-    const titresActivitesDepose = titresActivites.filter(
-      titreActivite =>
-        titreActivite.annee >= ACTIVITE_ANNEE_DEBUT &&
-        titreActivite.activiteStatutId === ACTIVITES_STATUTS_IDS.DEPOSE
-    ).length
+    const titresActivitesDepose = titresActivites.filter(titreActivite => titreActivite.annee >= ACTIVITE_ANNEE_DEBUT && titreActivite.activiteStatutId === ACTIVITES_STATUTS_IDS.DEPOSE).length
 
-    const titresActivitesBeneficesEntreprise = Math.round(
-      (titresActivitesDepose * 2) / 7
-    )
+    const titresActivitesBeneficesEntreprise = Math.round((titresActivitesDepose * 2) / 7)
 
-    const titresActivitesBeneficesAdministration = Math.round(
-      (titresActivitesDepose * 1) / 7
-    )
+    const titresActivitesBeneficesAdministration = Math.round((titresActivitesDepose * 1) / 7)
 
-    const {
-      recherches,
-      titresModifies,
-      actions,
-      sessionDuree,
-      telechargements,
-      signalements,
-      reutilisations
-    } = await matomoData()
+    const { recherches, titresModifies, actions, sessionDuree, telechargements, signalements, reutilisations } = await matomoData()
 
     const demarches = titresActivites.filter(titreActivite => {
       const dateSaisie = titreActivite.dateSaisie
 
-      return (
-        dateSaisie &&
-        dateSaisie.slice(0, 4) === new Date().getFullYear().toString()
-      )
+      return dateSaisie && dateSaisie.slice(0, 4) === new Date().getFullYear().toString()
     }).length
     // TODO 2022-05-11 serait plus performant avec plusieurs petites requêtes sql ?
-    const utilisateursInDb = await Utilisateurs.query()
-      .whereNot('role', 'super')
-      .whereNotNull('email')
-      .withGraphFetched({
-        entreprises: {}
-      })
-
-    const utilisateurs: StatistiquesUtilisateurs = utilisateursInDb
-      .map(formatUser)
-      .reduce<StatistiquesUtilisateurs>(
-        (previousValue, user) => {
-          if (user.email) {
-            if (isAdministration(user)) {
-              previousValue.rattachesAUnTypeDAdministration[
-                Administrations[user.administrationId].typeId
-              ]++
-            } else if (isEntrepriseOrBureauDetudeRole(user.role)) {
-              previousValue.rattachesAUneEntreprise++
-            } else {
-              previousValue.visiteursAuthentifies++
-            }
+    const utilisateursInDb = await Utilisateurs.query().whereNot('role', 'super').whereNotNull('email').withGraphFetched({
+      entreprises: {},
+    })
+
+    const utilisateurs: StatistiquesUtilisateurs = utilisateursInDb.map(formatUser).reduce<StatistiquesUtilisateurs>(
+      (previousValue, user) => {
+        if (user.email) {
+          if (isAdministration(user)) {
+            previousValue.rattachesAUnTypeDAdministration[Administrations[user.administrationId].typeId]++
+          } else if (isEntrepriseOrBureauDetudeRole(user.role)) {
+            previousValue.rattachesAUneEntreprise++
+          } else {
+            previousValue.visiteursAuthentifies++
           }
+        }
 
-          return previousValue
+        return previousValue
+      },
+      {
+        rattachesAUnTypeDAdministration: {
+          aut: 0,
+          dea: 0,
+          dre: 0,
+          min: 0,
+          ope: 0,
+          pre: 0,
         },
-        {
-          rattachesAUnTypeDAdministration: {
-            aut: 0,
-            dea: 0,
-            dre: 0,
-            min: 0,
-            ope: 0,
-            pre: 0
-          },
-          rattachesAUneEntreprise: 0,
-          visiteursAuthentifies: 0
-        }
-      )
+        rattachesAUneEntreprise: 0,
+        visiteursAuthentifies: 0,
+      }
+    )
 
     return {
       utilisateurs,
@@ -108,7 +76,7 @@ const statistiquesGlobales = async (): Promise<Statistiques> => {
       telechargements,
       demarches,
       signalements,
-      reutilisations
+      reutilisations,
     }
   } catch (e) {
     console.error(e)
@@ -135,26 +103,17 @@ const titresSurfaceIndexBuild = (titres: ITitre[], annee: number) =>
     ) => {
       // titres dont le dernier octroi valide avec une phase valide débute cette année
       const titreDemarcheOctroiValide = titre.demarches?.find(
-        demarche =>
-          demarche.typeId === DEMARCHES_TYPES_IDS.Octroi &&
-          demarche.phase &&
-          demarche.phase.dateDebut &&
-          demarche.phase.dateDebut.substr(0, 4) === annee.toString()
+        demarche => demarche.typeId === DEMARCHES_TYPES_IDS.Octroi && demarche.phase && demarche.phase.dateDebut && demarche.phase.dateDebut.substr(0, 4) === annee.toString()
       )
 
       if (!titreDemarcheOctroiValide) return acc
 
-      const surface = titreEtapePropFind(
-        'surface',
-        titreDemarcheOctroiValide.phase!.dateDebut,
-        [titreDemarcheOctroiValide],
-        titre.typeId
-      ) as number | null
+      const surface = titreEtapePropFind('surface', titreDemarcheOctroiValide.phase!.dateDebut, [titreDemarcheOctroiValide], titre.typeId) as number | null
 
       acc.push({
         id: titre.id,
         typeId: titre.typeId,
-        surface: surface ? surface * 100 : 0 // conversion 1 km² = 100 ha
+        surface: surface ? surface * 100 : 0, // conversion 1 km² = 100 ha
       })
 
       return acc
@@ -164,22 +123,11 @@ const titresSurfaceIndexBuild = (titres: ITitre[], annee: number) =>
 
 const concessionsValidesBuild = (titres: ITitre[], annee: number) => {
   return titres
-    .filter(
-      titre =>
-        titre.typeId === 'cxw' &&
-        titreValideCheck(
-          titre.demarches!,
-          `${annee}-01-01`,
-          `${annee}-12-31`,
-          titre.typeId
-        )
-    )
+    .filter(titre => titre.typeId === 'cxw' && titreValideCheck(titre.demarches!, `${annee}-01-01`, `${annee}-12-31`, titre.typeId))
     .reduce(
       (acc: { quantite: number; surface: number }, concession) => {
         acc.quantite++
-        acc.surface += concession.surfaceEtape?.surface
-          ? concession.surfaceEtape.surface * 100
-          : 0
+        acc.surface += concession.surfaceEtape?.surface ? concession.surfaceEtape.surface * 100 : 0
 
         return acc
       },
@@ -187,8 +135,4 @@ const concessionsValidesBuild = (titres: ITitre[], annee: number) => {
     )
 }
 
-export {
-  statistiquesGlobales,
-  titresSurfaceIndexBuild,
-  concessionsValidesBuild
-}
+export { statistiquesGlobales, titresSurfaceIndexBuild, concessionsValidesBuild }
diff --git a/packages/api/src/api/graphql/resolvers/titre-demande.ts b/packages/api/src/api/graphql/resolvers/titre-demande.ts
index d61ea117e..0b590aa68 100644
--- a/packages/api/src/api/graphql/resolvers/titre-demande.ts
+++ b/packages/api/src/api/graphql/resolvers/titre-demande.ts
@@ -1,17 +1,6 @@
-import {
-  ITitreDemande,
-  ITitreEtape,
-  ISection,
-  ITitreEntreprise,
-  Context,
-  ISectionElement
-} from '../../../types.js'
+import { ITitreDemande, ITitreEtape, ISection, ITitreEntreprise, Context, ISectionElement } from '../../../types.js'
 import { etapeTypeGet } from '../../../database/queries/metas.js'
-import {
-  titreCreate,
-  titreGet,
-  titresGet
-} from '../../../database/queries/titres.js'
+import { titreCreate, titreGet, titresGet } from '../../../database/queries/titres.js'
 import { titreDemarcheCreate } from '../../../database/queries/titres-demarches.js'
 import { titreEtapeUpsert } from '../../../database/queries/titres-etapes.js'
 
@@ -21,10 +10,7 @@ import titreEtapeUpdateTask from '../../../business/titre-etape-update.js'
 import { userSuper } from '../../../database/user-super.js'
 import { isBureauDEtudes, isEntreprise } from 'camino-common/src/roles.js'
 import { linkTitres } from '../../../database/queries/titres-titres.js'
-import {
-  getLinkConfig,
-  assertsCanCreateTitre
-} from 'camino-common/src/permissions/titres.js'
+import { getLinkConfig, assertsCanCreateTitre } from 'camino-common/src/permissions/titres.js'
 import { checkTitreLinks } from '../../../business/validations/titre-links-validate.js'
 import { getEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
 import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
@@ -32,12 +18,7 @@ import { utilisateurTitreCreate } from '../../../database/queries/utilisateurs.j
 import { getDocuments } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 
-export const titreDemandeCreer = async (
-  {
-    titreDemande
-  }: { titreDemande: ITitreDemande & { titreFromIds?: string[] } },
-  { user }: Context
-) => {
+export const titreDemandeCreer = async ({ titreDemande }: { titreDemande: ITitreDemande & { titreFromIds?: string[] } }, { user }: Context) => {
   try {
     assertsCanCreateTitre(user, titreDemande.typeId)
 
@@ -53,7 +34,7 @@ export const titreDemandeCreer = async (
         nom: titreDemande.nom,
         typeId: titreDemande.typeId,
         references: titreDemande.references,
-        propsTitreEtapesIds: {}
+        propsTitreEtapesIds: {},
       },
       { fields: {} }
     )
@@ -62,23 +43,17 @@ export const titreDemandeCreer = async (
 
     const linkConfig = getLinkConfig(titreDemande.typeId, [])
     if (linkConfig && titreDemande.titreFromIds === undefined) {
-      throw new Error(
-        'Le champ titreFromIds est obligatoire pour ce type de titre'
-      )
+      throw new Error('Le champ titreFromIds est obligatoire pour ce type de titre')
     }
 
     if (titreDemande.titreFromIds !== undefined) {
-      const titresFrom = await titresGet(
-        { ids: titreDemande.titreFromIds },
-        { fields: { id: {} } },
-        user
-      )
+      const titresFrom = await titresGet({ ids: titreDemande.titreFromIds }, { fields: { id: {} } }, user)
 
       checkTitreLinks(titreDemande, titreDemande.titreFromIds, titresFrom, [])
 
       await linkTitres({
         linkTo: titre.id,
-        linkFrom: titreDemande.titreFromIds
+        linkFrom: titreDemande.titreFromIds,
       })
       delete titreDemande.titreFromIds
     }
@@ -86,16 +61,12 @@ export const titreDemandeCreer = async (
 
     const titreDemarche = await titreDemarcheCreate({
       titreId,
-      typeId: 'oct'
+      typeId: 'oct',
     })
 
     await titreDemarcheUpdateTask(titreDemarche.id, titreDemarche.titreId)
 
-    const updatedTitre = await titreGet(
-      titreId,
-      { fields: { demarches: { id: {} } } },
-      userSuper
-    )
+    const updatedTitre = await titreGet(titreId, { fields: { demarches: { id: {} } } }, userSuper)
 
     if (!updatedTitre) {
       throw new Error('recupération du titre nouvellement créé impossible')
@@ -111,7 +82,7 @@ export const titreDemandeCreer = async (
       statutId: 'aco',
       date,
       duree: titreDemande.typeId === 'arm' ? 4 : undefined,
-      titulaires: [titulaire]
+      titulaires: [titulaire],
     }
 
     if (isBureauDEtudes(user) || isEntreprise(user)) {
@@ -127,7 +98,7 @@ export const titreDemandeCreer = async (
 
         for (const etapeTypeId of decisionsAnnexesEtapeTypeIds) {
           const etapeType = await etapeTypeGet(etapeTypeId, {
-            fields: { id: {} }
+            fields: { id: {} },
           })
 
           const etapesStatuts = getEtapesStatuts(etapeTypeId)
@@ -148,7 +119,7 @@ export const titreDemandeCreer = async (
               {
                 id: 'date',
                 nom: 'Date',
-                type: 'date'
+                type: 'date',
               },
               {
                 id: 'statutId',
@@ -156,18 +127,14 @@ export const titreDemandeCreer = async (
                 type: 'select',
                 valeurs: etapesStatuts.map(statut => ({
                   id: statut.id,
-                  nom: statut.nom
-                }))
+                  nom: statut.nom,
+                })),
               },
-              ...elements
-            ]
+              ...elements,
+            ],
           }
 
-          const documents = getDocuments(
-            titreDemande.typeId,
-            titreDemarche.typeId,
-            etapeTypeId
-          )
+          const documents = getDocuments(titreDemande.typeId, titreDemarche.typeId, etapeTypeId)
 
           documents
             ?.filter(dt => !dt.optionnel)
@@ -175,7 +142,7 @@ export const titreDemandeCreer = async (
               decisionAnnexeSections.elements!.push({
                 id: dt.id,
                 nom: dt.nom!,
-                type: 'file'
+                type: 'file',
               })
             })
 
@@ -184,11 +151,7 @@ export const titreDemandeCreer = async (
       }
     }
     const updatedTitreEtape = await titreEtapeUpsert(titreEtape, user, titreId)
-    await titreEtapeUpdateTask(
-      updatedTitreEtape.id,
-      titreEtape.titreDemarcheId,
-      user
-    )
+    await titreEtapeUpdateTask(updatedTitreEtape.id, titreEtape.titreDemarcheId, user)
 
     const titreEtapeId = updatedTitreEtape.id
 
@@ -197,7 +160,7 @@ export const titreDemandeCreer = async (
 
     return {
       titreId,
-      titreEtapeId
+      titreEtapeId,
     }
   } catch (e) {
     console.error(e)
diff --git a/packages/api/src/api/graphql/resolvers/titres-activites.ts b/packages/api/src/api/graphql/resolvers/titres-activites.ts
index 3626b3fd0..5e6230fba 100644
--- a/packages/api/src/api/graphql/resolvers/titres-activites.ts
+++ b/packages/api/src/api/graphql/resolvers/titres-activites.ts
@@ -1,29 +1,14 @@
 import { GraphQLResolveInfo } from 'graphql'
 
-import {
-  Context,
-  ITitre,
-  ITitreActivite,
-  ITitreActiviteColonneId,
-  IUtilisateur
-} from '../../../types.js'
+import { Context, ITitre, ITitreActivite, ITitreActiviteColonneId, IUtilisateur } from '../../../types.js'
 import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
 
 import { titreActiviteEmailsSend } from './_titre-activite.js'
-import {
-  titreActiviteContenuFormat,
-  titreActiviteFormat
-} from '../../_format/titres-activites.js'
+import { titreActiviteContenuFormat, titreActiviteFormat } from '../../_format/titres-activites.js'
 
 import { fieldsBuild } from './_fields-build.js'
 
-import {
-  titreActiviteDelete,
-  titreActiviteGet,
-  titreActiviteUpdate as titreActiviteUpdateQuery,
-  titresActivitesCount,
-  titresActivitesGet
-} from '../../../database/queries/titres-activites.js'
+import { titreActiviteDelete, titreActiviteGet, titreActiviteUpdate as titreActiviteUpdateQuery, titresActivitesCount, titresActivitesGet } from '../../../database/queries/titres-activites.js'
 import { utilisateursGet } from '../../../database/queries/utilisateurs.js'
 
 import { titreActiviteInputValidate } from '../../../business/validations/titre-activite-input-validate.js'
@@ -49,11 +34,7 @@ import { canReadActivites } from 'camino-common/src/permissions/activites.js'
  *
  */
 
-const activite = async (
-  { id }: { id: string },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const activite = async ({ id }: { id: string }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     if (!canReadActivites(user)) {
       return null
@@ -112,7 +93,7 @@ const activites = async (
     titresTerritoires,
     titresTypesIds,
     titresDomainesIds,
-    titresStatutsIds
+    titresStatutsIds,
   }: {
     page?: number | null
     intervalle?: number | null
@@ -165,7 +146,7 @@ const activites = async (
           statutsIds,
           titresTypesIds,
           titresDomainesIds,
-          titresStatutsIds
+          titresStatutsIds,
         },
         { fields: fields.elements },
         user
@@ -182,11 +163,11 @@ const activites = async (
           statutsIds,
           titresTypesIds,
           titresDomainesIds,
-          titresStatutsIds
+          titresStatutsIds,
         },
         { fields: {} },
         user
-      )
+      ),
     ])
 
     if (!titresActivites.length) return { elements: [], total: 0 }
@@ -197,7 +178,7 @@ const activites = async (
       intervalle,
       ordre,
       colonne,
-      total
+      total,
     }
   } catch (e) {
     console.error(e)
@@ -206,11 +187,7 @@ const activites = async (
   }
 }
 
-const activiteDeposer = async (
-  { id }: { id: string },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const activiteDeposer = async ({ id }: { id: string }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     if (!user) throw new Error('droits insuffisants')
 
@@ -219,21 +196,20 @@ const activiteDeposer = async (
       {
         fields: {
           documents: { id: {} },
-          type: { documentsTypes: { id: {} } }
-        }
+          type: { documentsTypes: { id: {} } },
+        },
       },
       user
     )
 
     if (!activite) throw new Error("l'activité n'existe pas")
 
-    if (!titreActiviteFormat(activite).deposable)
-      throw new Error('droits insuffisants')
+    if (!titreActiviteFormat(activite).deposable) throw new Error('droits insuffisants')
 
     await titreActiviteUpdateQuery(activite.id, {
       activiteStatutId: ACTIVITES_STATUTS_IDS.DEPOSE,
       utilisateurId: user.id,
-      dateSaisie: getCurrent()
+      dateSaisie: getCurrent(),
     })
     const fields = fieldsBuild(info)
     const activiteRes = await titreActiviteGet(activite.id, { fields }, user)
@@ -247,50 +223,35 @@ const activiteDeposer = async (
         fields: {
           titulaires: { id: {} },
           amodiataires: { id: {} },
-          pointsEtape: { id: {} }
-        }
+          pointsEtape: { id: {} },
+        },
       },
       userSuper
     )) as ITitre
 
-    const userEntreprisesId =
-      isEntreprise(user) || isBureauDEtudes(user)
-        ? user.entreprises.map(e => e.id)
-        : []
-    const isAmodiataire = titre.amodiataires?.some(t =>
-      userEntreprisesId.some(id => id === t.id)
-    )
+    const userEntreprisesId = isEntreprise(user) || isBureauDEtudes(user) ? user.entreprises.map(e => e.id) : []
+    const isAmodiataire = titre.amodiataires?.some(t => userEntreprisesId.some(id => id === t.id))
 
-    const entrepriseIds = isAmodiataire
-      ? titre.amodiataires?.map(t => t.id)
-      : titre.titulaires?.map(t => t.id)
+    const entrepriseIds = isAmodiataire ? titre.amodiataires?.map(t => t.id) : titre.titulaires?.map(t => t.id)
 
     let utilisateurs: IUtilisateur[] = []
     if (entrepriseIds?.length) {
       utilisateurs = await utilisateursGet(
         {
-          entrepriseIds
+          entrepriseIds,
         },
         { fields: {} },
         userSuper
       )
     }
 
-    const administrations: AdministrationId[] = getGestionnairesByTitreTypeId(
-      titre.typeId
-    ).map(({ administrationId }) => administrationId)
+    const administrations: AdministrationId[] = getGestionnairesByTitreTypeId(titre.typeId).map(({ administrationId }) => administrationId)
 
     if (titre.administrationsLocales?.length) {
       administrations.push(...titre.administrationsLocales)
     }
 
-    await titreActiviteEmailsSend(
-      activiteFormated,
-      activiteFormated.titre!.nom,
-      user,
-      utilisateurs,
-      administrations.filter(onlyUnique)
-    )
+    await titreActiviteEmailsSend(activiteFormated, activiteFormated.titre!.nom, user, utilisateurs, administrations.filter(onlyUnique))
 
     return activiteFormated
   } catch (e) {
@@ -300,11 +261,7 @@ const activiteDeposer = async (
   }
 }
 
-const activiteModifier = async (
-  { activite }: { activite: ITitreActivite & { documentIds?: string[] } },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const activiteModifier = async ({ activite }: { activite: ITitreActivite & { documentIds?: string[] } }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     if (!user) throw new Error('droits insuffisants')
 
@@ -313,8 +270,8 @@ const activiteModifier = async (
       {
         fields: {
           documents: { id: {} },
-          type: { documentsTypes: { id: {} } }
-        }
+          type: { documentsTypes: { id: {} } },
+        },
       },
       user
     )
@@ -323,10 +280,7 @@ const activiteModifier = async (
 
     if (!oldTitreActivite.modification) throw new Error('droits insuffisants')
 
-    const inputErrors = titreActiviteInputValidate(
-      activite,
-      oldTitreActivite.sections
-    )
+    const inputErrors = titreActiviteInputValidate(activite, oldTitreActivite.sections)
 
     if (inputErrors.length) {
       throw new Error(inputErrors.join(', '))
@@ -337,23 +291,13 @@ const activiteModifier = async (
     activite.activiteStatutId = ACTIVITES_STATUTS_IDS.EN_CONSTRUCTION
 
     if (activite.contenu) {
-      activite.contenu = titreActiviteContenuFormat(
-        oldTitreActivite.sections,
-        activite.contenu,
-        'write'
-      )
+      activite.contenu = titreActiviteContenuFormat(oldTitreActivite.sections, activite.contenu, 'write')
     }
 
     const fields = fieldsBuild(info)
 
     const documentIds = activite.documentIds || []
-    await documentsLier(
-      { user },
-      documentIds,
-      activite.id,
-      'titreActiviteId',
-      oldTitreActivite
-    )
+    await documentsLier({ user }, documentIds, activite.id, 'titreActiviteId', oldTitreActivite)
     delete activite.documentIds
 
     await titreActiviteUpdateQuery(activite.id, activite)
@@ -395,10 +339,4 @@ const activiteSupprimer = async ({ id }: { id: string }, { user }: Context) => {
   }
 }
 
-export {
-  activite,
-  activites,
-  activiteModifier,
-  activiteSupprimer,
-  activiteDeposer
-}
+export { activite, activites, activiteModifier, activiteSupprimer, activiteDeposer }
diff --git a/packages/api/src/api/graphql/resolvers/titres-demarches.ts b/packages/api/src/api/graphql/resolvers/titres-demarches.ts
index 42b570020..8021fc3a0 100644
--- a/packages/api/src/api/graphql/resolvers/titres-demarches.ts
+++ b/packages/api/src/api/graphql/resolvers/titres-demarches.ts
@@ -1,11 +1,6 @@
 import { GraphQLResolveInfo } from 'graphql'
 
-import {
-  ITitreDemarche,
-  ITitreEtapeFiltre,
-  ITitreDemarcheColonneId,
-  Context
-} from '../../../types.js'
+import { ITitreDemarche, ITitreEtapeFiltre, ITitreDemarcheColonneId, Context } from '../../../types.js'
 
 import { fieldsBuild } from './_fields-build.js'
 
@@ -13,33 +8,16 @@ import { titreFormat } from '../../_format/titres.js'
 
 import { titreDemarcheFormat } from '../../_format/titres-demarches.js'
 
-import {
-  titreDemarcheGet,
-  titresDemarchesCount,
-  titresDemarchesGet,
-  titreDemarcheCreate,
-  titreDemarcheUpdate,
-  titreDemarcheArchive
-} from '../../../database/queries/titres-demarches.js'
+import { titreDemarcheGet, titresDemarchesCount, titresDemarchesGet, titreDemarcheCreate, titreDemarcheUpdate, titreDemarcheArchive } from '../../../database/queries/titres-demarches.js'
 
 import { titreGet } from '../../../database/queries/titres.js'
 
 import titreDemarcheUpdateTask from '../../../business/titre-demarche-update.js'
 import { titreDemarcheUpdationValidate } from '../../../business/validations/titre-demarche-updation-validate.js'
-import {
-  isDemarcheTypeId,
-  isTravaux
-} from 'camino-common/src/static/demarchesTypes.js'
-import {
-  canCreateTravaux,
-  canCreateDemarche
-} from 'camino-common/src/permissions/titres-demarches.js'
-
-const demarche = async (
-  { id }: { id: string },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+import { isDemarcheTypeId, isTravaux } from 'camino-common/src/static/demarchesTypes.js'
+import { canCreateTravaux, canCreateDemarche } from 'camino-common/src/permissions/titres-demarches.js'
+
+const demarche = async ({ id }: { id: string }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     const fields = fieldsBuild(info)
 
@@ -75,7 +53,7 @@ const demarches = async (
     titresSubstancesIds,
     titresReferences,
     titresTerritoires,
-    travaux
+    travaux,
   }: {
     page?: number | null
     intervalle?: number | null
@@ -128,7 +106,7 @@ const demarches = async (
           titresSubstancesIds,
           titresReferences,
           titresTerritoires,
-          travaux
+          travaux,
         },
         { fields: fields.elements },
         user
@@ -147,16 +125,14 @@ const demarches = async (
           titresSubstancesIds,
           titresReferences,
           titresTerritoires,
-          travaux
+          travaux,
         },
         { fields: {} },
         user
-      )
+      ),
     ])
 
-    const demarchesFormatted = titresDemarches.map(titreDemarche =>
-      titreDemarcheFormat(titreDemarche, fields.elements)
-    )
+    const demarchesFormatted = titresDemarches.map(titreDemarche => titreDemarcheFormat(titreDemarche, fields.elements))
 
     return {
       elements: demarchesFormatted,
@@ -164,7 +140,7 @@ const demarches = async (
       intervalle,
       ordre,
       colonne,
-      total
+      total,
     }
   } catch (e) {
     console.error(e)
@@ -173,17 +149,9 @@ const demarches = async (
   }
 }
 
-const demarcheCreer = async (
-  { demarche }: { demarche: ITitreDemarche },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const demarcheCreer = async ({ demarche }: { demarche: ITitreDemarche }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
-    const titre = await titreGet(
-      demarche.titreId,
-      { fields: { pointsEtape: { id: {} } } },
-      user
-    )
+    const titre = await titreGet(demarche.titreId, { fields: { pointsEtape: { id: {} } } }, user)
 
     if (!titre) throw new Error("le titre n'existe pas")
 
@@ -197,21 +165,10 @@ const demarcheCreer = async (
       throw new Error('le statut du titre est obligatoire')
     }
 
-    if (
-      isTravaux(demarche.typeId) &&
-      !canCreateTravaux(user, titre.typeId, titre.administrationsLocales ?? [])
-    ) {
+    if (isTravaux(demarche.typeId) && !canCreateTravaux(user, titre.typeId, titre.administrationsLocales ?? [])) {
       throw new Error('droits insuffisants')
     }
-    if (
-      !isTravaux(demarche.typeId) &&
-      !canCreateDemarche(
-        user,
-        titre.typeId,
-        titre.titreStatutId,
-        titre.administrationsLocales ?? []
-      )
-    ) {
+    if (!isTravaux(demarche.typeId) && !canCreateDemarche(user, titre.typeId, titre.titreStatutId, titre.administrationsLocales ?? [])) {
       throw new Error('droits insuffisants')
     }
 
@@ -221,11 +178,7 @@ const demarcheCreer = async (
 
     const fields = fieldsBuild(info)
 
-    const titreUpdated = await titreGet(
-      demarcheCreated.titreId,
-      { fields },
-      user
-    )
+    const titreUpdated = await titreGet(demarcheCreated.titreId, { fields }, user)
 
     return titreUpdated && titreFormat(titreUpdated)
   } catch (e) {
@@ -235,18 +188,14 @@ const demarcheCreer = async (
   }
 }
 
-const demarcheModifier = async (
-  { demarche }: { demarche: ITitreDemarche },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const demarcheModifier = async ({ demarche }: { demarche: ITitreDemarche }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     if (!user) throw new Error('droits insuffisants')
 
     const demarcheOld = await titreDemarcheGet(
       demarche.id,
       {
-        fields: { etapes: { id: {} } }
+        fields: { etapes: { id: {} } },
       },
       user
     )
@@ -257,13 +206,9 @@ const demarcheModifier = async (
 
     if (!demarcheOld.modification) throw new Error('droits insuffisants')
 
-    if (demarcheOld.titreId !== demarche.titreId)
-      throw new Error('le titre n’existe pas')
+    if (demarcheOld.titreId !== demarche.titreId) throw new Error('le titre n’existe pas')
 
-    const rulesErrors = await titreDemarcheUpdationValidate(
-      demarche,
-      demarcheOld
-    )
+    const rulesErrors = await titreDemarcheUpdationValidate(demarche, demarcheOld)
 
     if (rulesErrors.length) {
       throw new Error(rulesErrors.join(', '))
@@ -285,17 +230,9 @@ const demarcheModifier = async (
   }
 }
 
-const demarcheSupprimer = async (
-  { id }: { id: string },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const demarcheSupprimer = async ({ id }: { id: string }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
-    const demarcheOld = await titreDemarcheGet(
-      id,
-      { fields: { etapes: { id: {} } } },
-      user
-    )
+    const demarcheOld = await titreDemarcheGet(id, { fields: { etapes: { id: {} } } }, user)
 
     if (!demarcheOld) throw new Error("la démarche n'existe pas")
 
@@ -317,10 +254,4 @@ const demarcheSupprimer = async (
   }
 }
 
-export {
-  demarche,
-  demarches,
-  demarcheCreer,
-  demarcheModifier,
-  demarcheSupprimer
-}
+export { demarche, demarches, demarcheCreer, demarcheModifier, demarcheSupprimer }
diff --git a/packages/api/src/api/graphql/resolvers/titres-etapes.ts b/packages/api/src/api/graphql/resolvers/titres-etapes.ts
index 2d4a29514..384643621 100644
--- a/packages/api/src/api/graphql/resolvers/titres-etapes.ts
+++ b/packages/api/src/api/graphql/resolvers/titres-etapes.ts
@@ -1,62 +1,27 @@
 import { GraphQLResolveInfo } from 'graphql'
 
-import {
-  Context,
-  IContenu,
-  IDecisionAnnexeContenu,
-  IDocument,
-  IEtapeType,
-  ISectionElement,
-  ITitreEtape,
-  ITitrePoint
-} from '../../../types.js'
+import { Context, IContenu, IDecisionAnnexeContenu, IDocument, IEtapeType, ISectionElement, ITitreEtape, ITitrePoint } from '../../../types.js'
 
 import { titreFormat } from '../../_format/titres.js'
 
-import {
-  titreEtapeCreate,
-  titreEtapeGet,
-  titreEtapeUpdate,
-  titreEtapeUpsert
-} from '../../../database/queries/titres-etapes.js'
+import { titreEtapeCreate, titreEtapeGet, titreEtapeUpdate, titreEtapeUpsert } from '../../../database/queries/titres-etapes.js'
 import { titreDemarcheGet } from '../../../database/queries/titres-demarches.js'
 import { titreGet } from '../../../database/queries/titres.js'
 
 import titreEtapeUpdateTask from '../../../business/titre-etape-update.js'
-import {
-  titreEtapeHeritageBuild,
-  titreEtapePointsCalc,
-  titreEtapeSdomZonesGet
-} from './_titre-etape.js'
+import { titreEtapeHeritageBuild, titreEtapePointsCalc, titreEtapeSdomZonesGet } from './_titre-etape.js'
 import { titreEtapeUpdationValidate } from '../../../business/validations/titre-etape-updation-validate.js'
 
 import { fieldsBuild } from './_fields-build.js'
 import { titreDemarcheUpdatedEtatValidate } from '../../../business/validations/titre-demarche-etat-validate.js'
 import { titreEtapeFormat } from '../../_format/titres-etapes.js'
-import {
-  etapeTypeGet,
-  titreTypeDemarcheTypeEtapeTypeGet
-} from '../../../database/queries/metas.js'
+import { etapeTypeGet, titreTypeDemarcheTypeEtapeTypeGet } from '../../../database/queries/metas.js'
 import { userSuper } from '../../../database/user-super.js'
 import { documentsLier } from './documents.js'
-import {
-  documentsTypesFormat,
-  etapeTypeSectionsFormat
-} from '../../_format/etapes-types.js'
-import {
-  contenuElementFilesCreate,
-  contenuElementFilesDelete,
-  contenuFilesPathGet,
-  sectionsContenuAndFilesGet
-} from '../../../business/utils/contenu-element-file-process.js'
-import {
-  documentCreate,
-  documentsGet
-} from '../../../database/queries/documents.js'
-import {
-  titreEtapeAdministrationsEmailsSend,
-  titreEtapeUtilisateursEmailsSend
-} from './_titre-etape-email.js'
+import { documentsTypesFormat, etapeTypeSectionsFormat } from '../../_format/etapes-types.js'
+import { contenuElementFilesCreate, contenuElementFilesDelete, contenuFilesPathGet, sectionsContenuAndFilesGet } from '../../../business/utils/contenu-element-file-process.js'
+import { documentCreate, documentsGet } from '../../../database/queries/documents.js'
+import { titreEtapeAdministrationsEmailsSend, titreEtapeUtilisateursEmailsSend } from './_titre-etape-email.js'
 import { objectClone } from '../../../tools/index.js'
 import { geojsonFeatureMultiPolygon } from '../../../tools/geojson.js'
 import { idGenerate } from '../../../database/models/_format/id-create.js'
@@ -74,11 +39,7 @@ import { titreEtapeFormatFields } from '../../_format/_fields.js'
 import { canCreateOrEditEtape } from 'camino-common/src/permissions/titres-etapes.js'
 import { TitresStatutIds } from 'camino-common/src/static/titresStatuts.js'
 
-const statutIdAndDateGet = (
-  etape: ITitreEtape,
-  user: User,
-  depose = false
-): { date: CaminoDate; statutId: EtapeStatutId } => {
+const statutIdAndDateGet = (etape: ITitreEtape, user: User, depose = false): { date: CaminoDate; statutId: EtapeStatutId } => {
   const result = { date: etape.date, statutId: etape.statutId }
 
   if (depose) {
@@ -97,11 +58,7 @@ const statutIdAndDateGet = (
   return result
 }
 
-const etape = async (
-  { id }: { id: string },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const etape = async ({ id }: { id: string }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     const fields = fieldsBuild(info)
 
@@ -109,11 +66,7 @@ const etape = async (
       fields.type = { id: {} }
     }
 
-    const titreEtape = await titreEtapeGet(
-      id,
-      { fields, fetchHeritage: true },
-      user
-    )
+    const titreEtape = await titreEtapeGet(id, { fields, fetchHeritage: true }, user)
 
     if (!titreEtape) {
       throw new Error("l'étape n'existe pas")
@@ -123,8 +76,8 @@ const etape = async (
       titreEtape.titreDemarcheId,
       {
         fields: {
-          id: {}
-        }
+          id: {},
+        },
       },
       user
     )
@@ -139,20 +92,9 @@ const etape = async (
   }
 }
 
-const etapeHeritage = async (
-  {
-    date,
-    titreDemarcheId,
-    typeId
-  }: { date: string; titreDemarcheId: string; typeId: string },
-  { user }: Context
-) => {
+const etapeHeritage = async ({ date, titreDemarcheId, typeId }: { date: string; titreDemarcheId: string; typeId: string }, { user }: Context) => {
   try {
-    let titreDemarche = await titreDemarcheGet(
-      titreDemarcheId,
-      { fields: {} },
-      user
-    )
+    let titreDemarche = await titreDemarcheGet(titreDemarcheId, { fields: {} }, user)
 
     if (!titreDemarche) throw new Error("la démarche n'existe pas")
 
@@ -165,43 +107,29 @@ const etapeHeritage = async (
             type: { id: {} },
             titulaires: { id: {} },
             amodiataires: { id: {} },
-            points: { references: { id: {} } }
-          }
-        }
+            points: { references: { id: {} } },
+          },
+        },
       },
       userSuper
     )
 
     const etapeType = await etapeTypeGet(typeId, {
-      fields: { justificatifsTypes: { id: {} } }
+      fields: { justificatifsTypes: { id: {} } },
     })
 
-    const { sections, justificatifsTypes } = await specifiquesGet(
-      titreDemarche!.titre!.typeId,
-      titreDemarche!.typeId,
-      etapeType!
-    )
+    const { sections, justificatifsTypes } = await specifiquesGet(titreDemarche!.titre!.typeId, titreDemarche!.typeId, etapeType!)
 
-    const titreEtape = titreEtapeHeritageBuild(
-      date,
-      etapeType!,
-      titreDemarche!,
-      sections,
-      justificatifsTypes,
-      titreDemarche!.titre!.typeId,
-      titreDemarche!.typeId
-    )
+    const titreEtape = titreEtapeHeritageBuild(date, etapeType!, titreDemarche!, sections, justificatifsTypes, titreDemarche!.titre!.typeId, titreDemarche!.typeId)
     const titreTypeId = titreDemarche?.titre?.typeId
     if (!titreTypeId) {
-      throw new Error(
-        `le type du titre de l'étape ${titreEtape.id} n'est pas chargé`
-      )
+      throw new Error(`le type du titre de l'étape ${titreEtape.id} n'est pas chargé`)
     }
 
     return titreEtapeFormat(titreEtape, titreEtapeFormatFields, {
       titreTypeId,
       demarcheTypeId: titreDemarche!.typeId,
-      etapeTypeId: etapeType!.id
+      etapeTypeId: etapeType!.id,
     })
   } catch (e) {
     console.error(e)
@@ -210,45 +138,30 @@ const etapeHeritage = async (
   }
 }
 
-const specifiquesGet = async (
-  titreTypeId: string,
-  titreDemarcheTypeId: string,
-  etapeType: IEtapeType
-) => {
+const specifiquesGet = async (titreTypeId: string, titreDemarcheTypeId: string, etapeType: IEtapeType) => {
   const tde = await titreTypeDemarcheTypeEtapeTypeGet(
     {
       titreTypeId,
       demarcheTypeId: titreDemarcheTypeId,
-      etapeTypeId: etapeType.id
+      etapeTypeId: etapeType.id,
     },
     { fields: { justificatifsTypes: { id: {} } } }
   )
 
   const sections = etapeTypeSectionsFormat(etapeType.sections, tde?.sections)
 
-  const justificatifsTypes = documentsTypesFormat(
-    etapeType.justificatifsTypes,
-    tde?.justificatifsTypes
-  )
+  const justificatifsTypes = documentsTypesFormat(etapeType.justificatifsTypes, tde?.justificatifsTypes)
 
   return { sections, justificatifsTypes }
 }
 
-const etapeCreer = async (
-  { etape }: { etape: ITitreEtape },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const etapeCreer = async ({ etape }: { etape: ITitreEtape }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     if (!user) {
       throw new Error("la démarche n'existe pas")
     }
 
-    let titreDemarche = await titreDemarcheGet(
-      etape.titreDemarcheId,
-      { fields: {} },
-      user
-    )
+    let titreDemarche = await titreDemarcheGet(etape.titreDemarcheId, { fields: {} }, user)
 
     if (!titreDemarche) throw new Error("la démarche n'existe pas")
 
@@ -258,19 +171,18 @@ const etapeCreer = async (
         fields: {
           type: { etapesTypes: { id: {} } },
           titre: {
-            demarches: { etapes: { id: {} } }
+            demarches: { etapes: { id: {} } },
           },
-          etapes: { type: { id: {} } }
-        }
+          etapes: { type: { id: {} } },
+        },
       },
       userSuper
     )
 
-    if (!titreDemarche || !titreDemarche.titre)
-      throw new Error("le titre n'existe pas")
+    if (!titreDemarche || !titreDemarche.titre) throw new Error("le titre n'existe pas")
 
     const etapeType = await etapeTypeGet(etape.typeId, {
-      fields: { justificatifsTypes: { id: {} } }
+      fields: { justificatifsTypes: { id: {} } },
     })
 
     if (!etapeType) {
@@ -281,39 +193,21 @@ const etapeCreer = async (
     etape.statutId = statutId
     etape.date = date
 
-    const { sections, justificatifsTypes } = await specifiquesGet(
-      titreDemarche.titre!.typeId,
-      titreDemarche.typeId,
-      etapeType
-    )
+    const { sections, justificatifsTypes } = await specifiquesGet(titreDemarche.titre!.typeId, titreDemarche.typeId, etapeType)
 
-    const justificatifs = etape.justificatifIds?.length
-      ? await documentsGet(
-          { ids: etape.justificatifIds },
-          { fields: { type: { id: {} } } },
-          userSuper
-        )
-      : null
+    const justificatifs = etape.justificatifIds?.length ? await documentsGet({ ids: etape.justificatifIds }, { fields: { type: { id: {} } } }, userSuper) : null
     delete etape.justificatifIds
     etape.justificatifs = justificatifs
 
     const documentIds = etape.documentIds || []
-    const documents = documentIds.length
-      ? await documentsGet(
-          { ids: documentIds },
-          { fields: { type: { id: {} } } },
-          userSuper
-        )
-      : null
+    const documents = documentIds.length ? await documentsGet({ ids: documentIds }, { fields: { type: { id: {} } } }, userSuper) : null
     delete etape.documentIds
 
     const sdomZones: SDOMZoneId[] = []
     let titreEtapePoints = null
     if (etape.points?.length) {
       titreEtapePoints = titreEtapePointsCalc(etape.points)
-      const geojsonFeatures = geojsonFeatureMultiPolygon(
-        titreEtapePoints as ITitrePoint[]
-      ) as Feature
+      const geojsonFeatures = geojsonFeatureMultiPolygon(titreEtapePoints as ITitrePoint[]) as Feature
 
       const geoJsonResult = await titreEtapeSdomZonesGet(geojsonFeatures)
       if (geoJsonResult.fallback) {
@@ -324,9 +218,7 @@ const etapeCreer = async (
 
     const typeId = titreDemarche?.titre?.typeId
     if (!typeId) {
-      throw new Error(
-        `le type du titre de la ${titreDemarche.id} n'est pas chargé`
-      )
+      throw new Error(`le type du titre de la ${titreDemarche.id} n'est pas chargé`)
     }
     const rulesErrors = titreEtapeUpdationValidate(
       etape,
@@ -353,8 +245,7 @@ const etapeCreer = async (
         titreDemarche.typeId,
         {
           typeId: titreDemarche.titre.typeId,
-          titreStatutId:
-            titreDemarche.titre.titreStatutId ?? TitresStatutIds.Indetermine
+          titreStatutId: titreDemarche.titre.titreStatutId ?? TitresStatutIds.Indetermine,
         },
         'creation'
       )
@@ -365,46 +256,23 @@ const etapeCreer = async (
     if (titreEtapePoints) {
       etape.points = titreEtapePoints
     }
-    const { contenu, newFiles } = sectionsContenuAndFilesGet(
-      etape.contenu,
-      sections
-    )
+    const { contenu, newFiles } = sectionsContenuAndFilesGet(etape.contenu, sections)
     etape.contenu = contenu
 
-    let etapeUpdated: ITitreEtape = await titreEtapeUpsert(
-      etape,
-      user!,
-      titreDemarche.titreId
-    )
+    let etapeUpdated: ITitreEtape = await titreEtapeUpsert(etape, user!, titreDemarche.titreId)
 
     await contenuElementFilesCreate(newFiles, 'demarches', etapeUpdated.id)
 
     await documentsLier({ user }, documentIds, etapeUpdated.id, 'titreEtapeId')
 
     try {
-      await titreEtapeUpdateTask(
-        etapeUpdated.id,
-        etapeUpdated.titreDemarcheId,
-        user
-      )
+      await titreEtapeUpdateTask(etapeUpdated.id, etapeUpdated.titreDemarcheId, user)
     } catch (e) {
       console.error('une erreur est survenue lors des tâches annexes', e)
     }
 
-    await titreEtapeAdministrationsEmailsSend(
-      etapeUpdated,
-      etapeType,
-      titreDemarche.typeId,
-      titreDemarche.titreId,
-      titreDemarche.titre.typeId,
-      user
-    )
-    await titreEtapeUtilisateursEmailsSend(
-      etapeUpdated,
-      etapeType,
-      titreDemarche.typeId,
-      titreDemarche.titreId
-    )
+    await titreEtapeAdministrationsEmailsSend(etapeUpdated, etapeType, titreDemarche.typeId, titreDemarche.titreId, titreDemarche.titre.typeId, user)
+    await titreEtapeUtilisateursEmailsSend(etapeUpdated, etapeType, titreDemarche.typeId, titreDemarche.titreId)
     const fields = fieldsBuild(info)
 
     etapeUpdated = await titreEtapeGet(etapeUpdated.id, { fields }, user)
@@ -417,11 +285,7 @@ const etapeCreer = async (
   }
 }
 
-const etapeModifier = async (
-  { etape }: { etape: ITitreEtape },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const etapeModifier = async ({ etape }: { etape: ITitreEtape }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     if (!user) {
       throw new Error("l'étape n'existe pas")
@@ -434,8 +298,8 @@ const etapeModifier = async (
           documents: { id: {} },
           titulaires: { id: {} },
           amodiataires: { id: {} },
-          demarche: { titre: { pointsEtape: { id: {} } } }
-        }
+          demarche: { titre: { pointsEtape: { id: {} } } },
+        },
       },
       user
     )
@@ -444,12 +308,7 @@ const etapeModifier = async (
     if (!titreEtapeOld.titulaires) {
       throw new Error('Les titulaires de l’étape ne sont pas chargés')
     }
-    if (
-      !titreEtapeOld.demarche ||
-      !titreEtapeOld.demarche.titre ||
-      !titreEtapeOld.demarche.titre.administrationsLocales ||
-      !titreEtapeOld.demarche.titre.titreStatutId
-    ) {
+    if (!titreEtapeOld.demarche || !titreEtapeOld.demarche.titre || !titreEtapeOld.demarche.titre.administrationsLocales || !titreEtapeOld.demarche.titre.titreStatutId) {
       throw new Error('la démarche n’est pas chargée complètement')
     }
 
@@ -463,15 +322,14 @@ const etapeModifier = async (
         titreEtapeOld.demarche.typeId,
         {
           typeId: titreEtapeOld.demarche.titre.typeId,
-          titreStatutId: titreEtapeOld.demarche.titre.titreStatutId
+          titreStatutId: titreEtapeOld.demarche.titre.titreStatutId,
         },
         'modification'
       )
     )
       throw new Error('droits insuffisants')
 
-    if (titreEtapeOld.titreDemarcheId !== etape.titreDemarcheId)
-      throw new Error("la démarche n'existe pas")
+    if (titreEtapeOld.titreDemarcheId !== etape.titreDemarcheId) throw new Error("la démarche n'existe pas")
 
     const titreDemarche = await titreDemarcheGet(
       etape.titreDemarcheId,
@@ -479,19 +337,18 @@ const etapeModifier = async (
         fields: {
           type: { etapesTypes: { id: {} } },
           titre: {
-            demarches: { etapes: { id: {} } }
+            demarches: { etapes: { id: {} } },
           },
-          etapes: { type: { id: {} } }
-        }
+          etapes: { type: { id: {} } },
+        },
       },
       userSuper
     )
 
-    if (!titreDemarche || !titreDemarche.titre)
-      throw new Error("le titre n'existe pas")
+    if (!titreDemarche || !titreDemarche.titre) throw new Error("le titre n'existe pas")
 
     const etapeType = await etapeTypeGet(etape.typeId, {
-      fields: { justificatifsTypes: { id: {} } }
+      fields: { justificatifsTypes: { id: {} } },
     })
     if (!etapeType) {
       throw new Error(`le type d'étape "${etape.typeId}" n'existe pas`)
@@ -501,39 +358,21 @@ const etapeModifier = async (
     etape.statutId = statutId
     etape.date = date
 
-    const { sections, justificatifsTypes } = await specifiquesGet(
-      titreDemarche.titre!.typeId,
-      titreDemarche.typeId,
-      etapeType
-    )
+    const { sections, justificatifsTypes } = await specifiquesGet(titreDemarche.titre!.typeId, titreDemarche.typeId, etapeType)
 
-    const justificatifs = etape.justificatifIds?.length
-      ? await documentsGet(
-          { ids: etape.justificatifIds },
-          { fields: { type: { id: {} } } },
-          userSuper
-        )
-      : null
+    const justificatifs = etape.justificatifIds?.length ? await documentsGet({ ids: etape.justificatifIds }, { fields: { type: { id: {} } } }, userSuper) : null
     delete etape.justificatifIds
     etape.justificatifs = justificatifs
 
     const documentIds = etape.documentIds || []
-    const documents = documentIds.length
-      ? await documentsGet(
-          { ids: documentIds },
-          { fields: { type: { id: {} } } },
-          userSuper
-        )
-      : null
+    const documents = documentIds.length ? await documentsGet({ ids: documentIds }, { fields: { type: { id: {} } } }, userSuper) : null
     delete etape.documentIds
 
     const sdomZones: SDOMZoneId[] = []
     let titreEtapePoints = null
     if (etape.points?.length) {
       titreEtapePoints = titreEtapePointsCalc(etape.points)
-      const geojsonFeatures = geojsonFeatureMultiPolygon(
-        titreEtapePoints as ITitrePoint[]
-      ) as Feature
+      const geojsonFeatures = geojsonFeatureMultiPolygon(titreEtapePoints as ITitrePoint[]) as Feature
 
       const geoJsonResult = await titreEtapeSdomZonesGet(geojsonFeatures)
       if (geoJsonResult.fallback) {
@@ -545,9 +384,7 @@ const etapeModifier = async (
 
     const typeId = titreDemarche?.titre?.typeId
     if (!typeId) {
-      throw new Error(
-        `le type du titre de la ${titreDemarche.id} n'est pas chargé`
-      )
+      throw new Error(`le type du titre de la ${titreDemarche.id} n'est pas chargé`)
     }
     const rulesErrors = titreEtapeUpdationValidate(
       etape,
@@ -570,60 +407,25 @@ const etapeModifier = async (
     if (titreEtapePoints) {
       etape.points = titreEtapePoints
     }
-    await documentsLier(
-      { user },
-      documentIds,
-      etape.id,
-      'titreEtapeId',
-      titreEtapeOld
-    )
+    await documentsLier({ user }, documentIds, etape.id, 'titreEtapeId', titreEtapeOld)
 
-    const { contenu, newFiles } = sectionsContenuAndFilesGet(
-      etape.contenu,
-      sections
-    )
+    const { contenu, newFiles } = sectionsContenuAndFilesGet(etape.contenu, sections)
     etape.contenu = contenu
 
     if (titreEtapeOld.decisionsAnnexesSections) {
-      const {
-        contenu: decisionsAnnexesContenu,
-        newFiles: decisionsAnnexesNewFiles
-      } = sectionsContenuAndFilesGet(
-        etape.decisionsAnnexesContenu,
-        titreEtapeOld.decisionsAnnexesSections
-      )
-      etape.decisionsAnnexesContenu =
-        decisionsAnnexesContenu as IDecisionAnnexeContenu
-      await contenuElementFilesCreate(
-        decisionsAnnexesNewFiles,
-        'demarches',
-        etape.id
-      )
+      const { contenu: decisionsAnnexesContenu, newFiles: decisionsAnnexesNewFiles } = sectionsContenuAndFilesGet(etape.decisionsAnnexesContenu, titreEtapeOld.decisionsAnnexesSections)
+      etape.decisionsAnnexesContenu = decisionsAnnexesContenu as IDecisionAnnexeContenu
+      await contenuElementFilesCreate(decisionsAnnexesNewFiles, 'demarches', etape.id)
     }
 
-    let etapeUpdated: ITitreEtape = await titreEtapeUpsert(
-      etape,
-      user!,
-      titreDemarche.titreId
-    )
+    let etapeUpdated: ITitreEtape = await titreEtapeUpsert(etape, user!, titreDemarche.titreId)
 
     await contenuElementFilesCreate(newFiles, 'demarches', etapeUpdated.id)
 
     // après le recalcule de l’héritage, on recharge toutes les étapes de la démarche pour pouvoir récuperer
     // tous les fichiers tjrs présents dans le contenu de chaque étape
-    const demarche = await titreDemarcheGet(
-      etapeUpdated.titreDemarcheId,
-      { fields: { etapes: { id: {} } } },
-      userSuper
-    )
-    await contenuElementFilesDelete(
-      'demarches',
-      etapeUpdated.id,
-      sections,
-      etape => etape.contenu,
-      demarche!.etapes,
-      titreEtapeOld.contenu
-    )
+    const demarche = await titreDemarcheGet(etapeUpdated.titreDemarcheId, { fields: { etapes: { id: {} } } }, userSuper)
+    await contenuElementFilesDelete('demarches', etapeUpdated.id, sections, etape => etape.contenu, demarche!.etapes, titreEtapeOld.contenu)
 
     if (titreEtapeOld.decisionsAnnexesSections) {
       await contenuElementFilesDelete(
@@ -636,21 +438,9 @@ const etapeModifier = async (
       )
     }
 
-    await titreEtapeUpdateTask(
-      etapeUpdated.id,
-      etapeUpdated.titreDemarcheId,
-      user
-    )
+    await titreEtapeUpdateTask(etapeUpdated.id, etapeUpdated.titreDemarcheId, user)
 
-    await titreEtapeAdministrationsEmailsSend(
-      etape,
-      etapeType,
-      titreDemarche.typeId,
-      titreDemarche.titreId,
-      titreDemarche.titre.typeId,
-      user,
-      titreEtapeOld
-    )
+    await titreEtapeAdministrationsEmailsSend(etape, etapeType, titreDemarche.typeId, titreDemarche.titreId, titreDemarche.titre.typeId, user, titreEtapeOld)
 
     const fields = fieldsBuild(info)
     etapeUpdated = await titreEtapeGet(etapeUpdated.id, { fields }, user)
@@ -663,21 +453,13 @@ const etapeModifier = async (
   }
 }
 
-const etapeDeposer = async (
-  { id }: { id: string },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const etapeDeposer = async ({ id }: { id: string }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     if (!user) {
       throw new Error("l'étape n'existe pas")
     }
 
-    let titreEtape = await titreEtapeGet(
-      id,
-      { fields: { type: { id: {} } } },
-      user
-    )
+    let titreEtape = await titreEtapeGet(id, { fields: { type: { id: {} } } }, user)
 
     if (!titreEtape) throw new Error("l'étape n'existe pas")
     const titreEtapeOld = objectClone(titreEtape)
@@ -686,24 +468,20 @@ const etapeDeposer = async (
       titreEtape.titreDemarcheId,
       {
         fields: {
-          titre: { id: {} }
-        }
+          titre: { id: {} },
+        },
       },
       userSuper
     )
 
     titreEtape = titreEtapeFormat(titreEtape)
 
-    if (!titreEtape.deposable || !titreDemarche)
-      throw new Error('droits insuffisants')
+    if (!titreEtape.deposable || !titreDemarche) throw new Error('droits insuffisants')
 
     const statutIdAndDate = statutIdAndDateGet(titreEtape, user, true)
 
     let decisionsAnnexesContenu: IDecisionAnnexeContenu | null = null
-    if (
-      titreEtape.decisionsAnnexesSections &&
-      titreEtape.decisionsAnnexesContenu
-    ) {
+    if (titreEtape.decisionsAnnexesSections && titreEtape.decisionsAnnexesContenu) {
       decisionsAnnexesContenu = titreEtape.decisionsAnnexesContenu
     }
 
@@ -712,7 +490,7 @@ const etapeDeposer = async (
       {
         ...statutIdAndDate,
         decisionsAnnexesSections: null,
-        decisionsAnnexesContenu: null
+        decisionsAnnexesContenu: null,
       },
       user,
       titreDemarche.titreId
@@ -720,7 +498,7 @@ const etapeDeposer = async (
     const etapeUpdated = await titreEtapeGet(
       titreEtape.id,
       {
-        fields: { id: {} }
+        fields: { id: {} },
       },
       user
     )
@@ -742,14 +520,10 @@ const etapeDeposer = async (
           typeId: etapeTypeId,
           titreDemarcheId: titreDemarche.id,
           date: toCaminoDate(decisionContenu.date),
-          statutId: decisionContenu.statutId
+          statutId: decisionContenu.statutId,
         }
 
-        const contenu =
-          decisionAnnexesElements.filter(
-            (element): element is Required<ISectionElement> =>
-              element.type !== 'file' && !!element.sectionId
-          ) ?? []
+        const contenu = decisionAnnexesElements.filter((element): element is Required<ISectionElement> => element.type !== 'file' && !!element.sectionId) ?? []
 
         if (contenu) {
           etapeDecisionAnnexe.contenu = contenu.reduce<IContenu>((acc, e) => {
@@ -762,16 +536,9 @@ const etapeDeposer = async (
           }, {})
         }
 
-        etapeDecisionAnnexe = await titreEtapeCreate(
-          etapeDecisionAnnexe as ITitreEtape,
-          userSuper,
-          titreDemarche.titreId
-        )
+        etapeDecisionAnnexe = await titreEtapeCreate(etapeDecisionAnnexe as ITitreEtape, userSuper, titreDemarche.titreId)
 
-        const documentTypeIds =
-          decisionAnnexesElements
-            .filter(({ type }) => type === 'file')
-            .map(({ id }) => id) ?? []
+        const documentTypeIds = decisionAnnexesElements.filter(({ type }) => type === 'file').map(({ id }) => id) ?? []
         for (const documentTypeId of documentTypeIds) {
           const fileName = decisionContenu[documentTypeId]
 
@@ -783,13 +550,10 @@ const etapeDeposer = async (
             fichier: true,
             entreprisesLecture: true,
             titreEtapeId: etapeDecisionAnnexe.id,
-            fichierTypeId: 'pdf'
+            fichierTypeId: 'pdf',
           }
 
-          const filePath = `${contenuFilesPathGet(
-            'demarches',
-            titreEtape.id
-          )}/${fileName}`
+          const filePath = `${contenuFilesPathGet('demarches', titreEtape.id)}/${fileName}`
 
           const newDocumentPath = await documentFilePathFind(document, true)
 
@@ -800,21 +564,9 @@ const etapeDeposer = async (
       }
     }
 
-    await titreEtapeUpdateTask(
-      etapeUpdated.id,
-      etapeUpdated.titreDemarcheId,
-      user
-    )
+    await titreEtapeUpdateTask(etapeUpdated.id, etapeUpdated.titreDemarcheId, user)
 
-    await titreEtapeAdministrationsEmailsSend(
-      etapeUpdated,
-      titreEtape.type!,
-      titreDemarche.typeId,
-      titreDemarche.titreId,
-      titreDemarche.titre!.typeId,
-      user!,
-      titreEtapeOld
-    )
+    await titreEtapeAdministrationsEmailsSend(etapeUpdated, titreEtape.type!, titreDemarche.typeId, titreDemarche.titreId, titreDemarche.titre!.typeId, user!, titreEtapeOld)
 
     const fields = fieldsBuild(info)
     const titreUpdated = await titreGet(titreDemarche.titreId, { fields }, user)
@@ -827,11 +579,7 @@ const etapeDeposer = async (
   }
 }
 
-const etapeSupprimer = async (
-  { id }: { id: string },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const etapeSupprimer = async ({ id }: { id: string }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     const fields = fieldsBuild(info)
 
@@ -844,8 +592,8 @@ const etapeSupprimer = async (
       {
         fields: {
           titulaires: { id: {} },
-          demarche: { titre: { pointsEtape: { id: {} } } }
-        }
+          demarche: { titre: { pointsEtape: { id: {} } } },
+        },
       },
       user
     )
@@ -854,12 +602,7 @@ const etapeSupprimer = async (
     if (!titreEtape.titulaires) {
       throw new Error('Les titulaires de l’étape ne sont pas chargés')
     }
-    if (
-      !titreEtape.demarche ||
-      !titreEtape.demarche.titre ||
-      !titreEtape.demarche.titre.administrationsLocales ||
-      !titreEtape.demarche.titre.titreStatutId
-    ) {
+    if (!titreEtape.demarche || !titreEtape.demarche.titre || !titreEtape.demarche.titre.administrationsLocales || !titreEtape.demarche.titre.titreStatutId) {
       throw new Error('la démarche n’est pas chargée complètement')
     }
 
@@ -873,7 +616,7 @@ const etapeSupprimer = async (
         titreEtape.demarche.typeId,
         {
           typeId: titreEtape.demarche.titre.typeId,
-          titreStatutId: titreEtape.demarche.titre.titreStatutId
+          titreStatutId: titreEtape.demarche.titre.titreStatutId,
         },
         'modification'
       )
@@ -886,10 +629,10 @@ const etapeSupprimer = async (
         fields: {
           type: { etapesTypes: { id: {} } },
           titre: {
-            demarches: { etapes: { id: {} } }
+            demarches: { etapes: { id: {} } },
           },
-          etapes: { type: { id: {} } }
-        }
+          etapes: { type: { id: {} } },
+        },
       },
       userSuper
     )
@@ -898,14 +641,7 @@ const etapeSupprimer = async (
 
     if (!titreDemarche.titre) throw new Error("le titre n'existe pas")
 
-    const rulesErrors = titreDemarcheUpdatedEtatValidate(
-      titreDemarche.type!,
-      titreDemarche.titre,
-      titreEtape,
-      titreDemarche.id,
-      titreDemarche.etapes!,
-      true
-    )
+    const rulesErrors = titreDemarcheUpdatedEtatValidate(titreDemarche.type!, titreDemarche.titre, titreEtape, titreDemarche.id, titreDemarche.etapes!, true)
 
     if (rulesErrors.length) {
       throw new Error(rulesErrors.join(', '))
@@ -924,12 +660,4 @@ const etapeSupprimer = async (
   }
 }
 
-export {
-  etape,
-  etapeHeritage,
-  etapeCreer,
-  etapeModifier,
-  etapeSupprimer,
-  etapeDeposer,
-  specifiquesGet
-}
+export { etape, etapeHeritage, etapeCreer, etapeModifier, etapeSupprimer, etapeDeposer, specifiquesGet }
diff --git a/packages/api/src/api/graphql/resolvers/titres.ts b/packages/api/src/api/graphql/resolvers/titres.ts
index a4f1f7573..0c840860b 100644
--- a/packages/api/src/api/graphql/resolvers/titres.ts
+++ b/packages/api/src/api/graphql/resolvers/titres.ts
@@ -6,29 +6,15 @@ import { titreFormat, titresFormat } from '../../_format/titres.js'
 
 import { fieldsBuild } from './_fields-build.js'
 
-import {
-  titreArchive,
-  titreCreate,
-  titreGet,
-  titresCount,
-  titresGet,
-  titreUpsert
-} from '../../../database/queries/titres.js'
+import { titreArchive, titreCreate, titreGet, titresCount, titresGet, titreUpsert } from '../../../database/queries/titres.js'
 
 import titreUpdateTask from '../../../business/titre-update.js'
-import {
-  assertsCanCreateTitre,
-  canDeleteTitre
-} from 'camino-common/src/permissions/titres.js'
+import { assertsCanCreateTitre, canDeleteTitre } from 'camino-common/src/permissions/titres.js'
 import { DepartementId } from 'camino-common/src/static/departement.js'
 import { RegionId } from 'camino-common/src/static/region.js'
 import { FacadesMaritimes } from 'camino-common/src/static/facades.js'
 
-const titre = async (
-  { id }: { id: string },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const titre = async ({ id }: { id: string }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     const fields = fieldsBuild(info)
 
@@ -65,7 +51,7 @@ const titres = async (
     departements,
     regions,
     facadesMaritimes,
-    demandeEnCours
+    demandeEnCours,
   }: {
     intervalle?: number | null
     page?: number | null
@@ -117,7 +103,7 @@ const titres = async (
           departements,
           regions,
           facadesMaritimes,
-          demandeEnCours
+          demandeEnCours,
         },
         { fields },
         user
@@ -138,11 +124,11 @@ const titres = async (
           departements,
           regions,
           facadesMaritimes,
-          demandeEnCours
+          demandeEnCours,
         },
         { fields: {} },
         user
-      )
+      ),
     ])
 
     const titresFormatted = titres && titresFormat(titres, fields)
@@ -153,7 +139,7 @@ const titres = async (
       intervalle,
       ordre,
       colonne,
-      total
+      total,
     }
   } catch (e) {
     console.error(e)
@@ -166,11 +152,7 @@ const titres = async (
  * TODO 2022-07-12 enlever cette fonction et nettoyer l'ui
  * @deprecated Not used by frontend, titreDemandeCreer is used instead
  */
-const titreCreer = async (
-  { titre }: { titre: ITitre },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const titreCreer = async ({ titre }: { titre: ITitre }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     assertsCanCreateTitre(user, titre.typeId)
 
@@ -191,11 +173,7 @@ const titreCreer = async (
   }
 }
 
-const titreModifier = async (
-  { titre }: { titre: ITitre },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+const titreModifier = async ({ titre }: { titre: ITitre }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     const titreOld = await titreGet(titre.id, { fields: {} }, user)
 
@@ -227,8 +205,8 @@ const titreSupprimer = async ({ id }: { id: string }, { user }: Context) => {
     {
       fields: {
         demarches: { etapes: { id: {} } },
-        activites: { id: {} }
-      }
+        activites: { id: {} },
+      },
     },
     user
   )
diff --git a/packages/api/src/api/graphql/resolvers/utilisateurs-titres.ts b/packages/api/src/api/graphql/resolvers/utilisateurs-titres.ts
index adcad1032..eef9bf2de 100644
--- a/packages/api/src/api/graphql/resolvers/utilisateurs-titres.ts
+++ b/packages/api/src/api/graphql/resolvers/utilisateurs-titres.ts
@@ -1,15 +1,9 @@
-import {
-  utilisateurTitreCreate,
-  utilisateurTitreDelete
-} from '../../../database/queries/utilisateurs.js'
+import { utilisateurTitreCreate, utilisateurTitreDelete } from '../../../database/queries/utilisateurs.js'
 
 import { titreGet } from '../../../database/queries/titres.js'
 import { Context } from '../../../types.js'
 
-const utilisateurTitreAbonner = async (
-  { titreId, abonner }: { titreId: string; abonner: boolean },
-  { user }: Context
-) => {
+const utilisateurTitreAbonner = async ({ titreId, abonner }: { titreId: string; abonner: boolean }, { user }: Context) => {
   try {
     if (!user) {
       throw new Error('droits insuffisants')
diff --git a/packages/api/src/api/graphql/resolvers/utilisateurs.ts b/packages/api/src/api/graphql/resolvers/utilisateurs.ts
index 70ba68b80..81e0d97df 100644
--- a/packages/api/src/api/graphql/resolvers/utilisateurs.ts
+++ b/packages/api/src/api/graphql/resolvers/utilisateurs.ts
@@ -1,35 +1,16 @@
 import { GraphQLResolveInfo } from 'graphql'
 import cryptoRandomString from 'crypto-random-string'
 
-import {
-  Context,
-  formatUser,
-  IUtilisateur,
-  IUtilisateursColonneId
-} from '../../../types.js'
+import { Context, formatUser, IUtilisateur, IUtilisateursColonneId } from '../../../types.js'
 
 import { fieldsBuild } from './_fields-build.js'
 
-import {
-  userGet,
-  utilisateurGet,
-  utilisateursCount,
-  utilisateursGet,
-  utilisateurUpsert
-} from '../../../database/queries/utilisateurs.js'
+import { userGet, utilisateurGet, utilisateursCount, utilisateursGet, utilisateurUpsert } from '../../../database/queries/utilisateurs.js'
 
 import { utilisateurUpdationValidate } from '../../../business/validations/utilisateur-updation-validate.js'
 import { newsletterSubscriberUpdate } from '../../../tools/api-mailjet/newsletter.js'
-import {
-  isAdministrationRole,
-  isEntrepriseOrBureauDetudeRole,
-  Role
-} from 'camino-common/src/roles.js'
-import {
-  canReadUtilisateurs,
-  canReadUtilisateur,
-  canEditUtilisateur
-} from 'camino-common/src/permissions/utilisateurs.js'
+import { isAdministrationRole, isEntrepriseOrBureauDetudeRole, Role } from 'camino-common/src/roles.js'
+import { canReadUtilisateurs, canReadUtilisateur, canEditUtilisateur } from 'camino-common/src/permissions/utilisateurs.js'
 
 export const userIdGenerate = async (): Promise<string> => {
   const id = cryptoRandomString({ length: 6 })
@@ -41,11 +22,7 @@ export const userIdGenerate = async (): Promise<string> => {
   return id
 }
 
-export const utilisateur = async (
-  { id }: { id: string },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+export const utilisateur = async ({ id }: { id: string }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     if (!canReadUtilisateur(user, id)) {
       return null
@@ -70,7 +47,7 @@ export const utilisateurs = async (
     administrationIds,
     roles,
     noms,
-    emails
+    emails,
   }: {
     intervalle?: number | null
     page?: number | null
@@ -102,7 +79,7 @@ export const utilisateurs = async (
           administrationIds,
           roles,
           noms,
-          emails
+          emails,
         },
         { fields: fields.elements },
         user
@@ -113,11 +90,11 @@ export const utilisateurs = async (
           administrationIds,
           roles,
           noms,
-          emails
+          emails,
         },
         { fields: {} },
         user
-      )
+      ),
     ])
 
     return {
@@ -126,7 +103,7 @@ export const utilisateurs = async (
       intervalle,
       ordre,
       colonne,
-      total
+      total,
     }
   } catch (e) {
     console.error(e)
@@ -135,11 +112,7 @@ export const utilisateurs = async (
   }
 }
 
-export const utilisateurModifier = async (
-  { utilisateur }: { utilisateur: IUtilisateur },
-  { user }: Context,
-  info: GraphQLResolveInfo
-) => {
+export const utilisateurModifier = async ({ utilisateur }: { utilisateur: IUtilisateur }, { user }: Context, info: GraphQLResolveInfo) => {
   try {
     const utilisateurOld = await userGet(utilisateur.id)
 
@@ -165,20 +138,13 @@ export const utilisateurModifier = async (
   }
 }
 
-export const utilisateurSupprimer = async (
-  { id }: { id: string },
-  { user }: Context
-) => {
+export const utilisateurSupprimer = async ({ id }: { id: string }, { user }: Context) => {
   try {
     if (!user) {
       throw new Error('droits insuffisants')
     }
 
-    const utilisateur = await utilisateurGet(
-      id,
-      { fields: { entreprises: { id: {} } } },
-      user
-    )
+    const utilisateur = await utilisateurGet(id, { fields: { entreprises: { id: {} } } }, user)
 
     if (!utilisateur) {
       throw new Error('aucun utilisateur avec cet id')
diff --git a/packages/api/src/api/graphql/schemas.ts b/packages/api/src/api/graphql/schemas.ts
index 7d0178f03..c9ab22c5c 100644
--- a/packages/api/src/api/graphql/schemas.ts
+++ b/packages/api/src/api/graphql/schemas.ts
@@ -4,7 +4,7 @@ import path, { join } from 'node:path'
 import { fileURLToPath } from 'url'
 const __dirname = path.dirname(fileURLToPath(import.meta.url))
 const schema = loadSchemaSync(join(__dirname, './schemas/index.graphql'), {
-  loaders: [new GraphQLFileLoader()]
+  loaders: [new GraphQLFileLoader()],
 })
 
 export default schema
diff --git a/packages/api/src/api/graphql/schemas/index.graphql b/packages/api/src/api/graphql/schemas/index.graphql
index 46debec81..fd9f2f00d 100644
--- a/packages/api/src/api/graphql/schemas/index.graphql
+++ b/packages/api/src/api/graphql/schemas/index.graphql
@@ -126,12 +126,7 @@ type Query {
   demarchesStatuts: [DemarcheStatut]
 
   "Types d'étapes"
-  etapesTypes(
-    titreDemarcheId: ID
-    titreEtapeId: ID
-    date: String
-    travaux: Boolean
-  ): [EtapeType]
+  etapesTypes(titreDemarcheId: ID, titreEtapeId: ID, date: String, travaux: Boolean): [EtapeType]
 
   "Status d'étapes"
   etapesStatuts: [EtapeStatut]
@@ -140,17 +135,7 @@ type Query {
   utilisateur(id: ID!): Utilisateur
 
   "Liste d'utilisateurs en fonction d'arguments (optionnels)"
-  utilisateurs(
-    intervalle: Int
-    page: Int
-    colonne: String
-    ordre: String
-    entrepriseIds: [ID]
-    administrationIds: [ID]
-    roles: [ID]
-    noms: String
-    emails: String
-  ): Utilisateurs
+  utilisateurs(intervalle: Int, page: Int, colonne: String, ordre: String, entrepriseIds: [ID], administrationIds: [ID], roles: [ID], noms: String, emails: String): Utilisateurs
 
   "Liste des substances"
   substances: [Substance]
@@ -185,16 +170,7 @@ type Query {
   entreprise(id: ID!): Entreprise
 
   "Liste des entreprises"
-  entreprises(
-    intervalle: Int
-    page: Int
-    colonne: String
-    ordre: String
-    noms: String
-    etapeId: ID
-    archive: Boolean
-    etapeUniquement: Boolean
-  ): Entreprises
+  entreprises(intervalle: Int, page: Int, colonne: String, ordre: String, noms: String, etapeId: ID, archive: Boolean, etapeUniquement: Boolean): Entreprises
 
   entreprisesTitresCreation: [Entreprise]
 
@@ -217,29 +193,15 @@ type Query {
   pays: [Pays]
 
   "Retourne des points et les informations du périmètre à partir d’un fichier GeoJson ou Shape"
-  pointsImporter(
-    fileUpload: FileUpload!
-    geoSystemeId: String!
-    demarcheId: String!
-    etapeTypeId: String!
-  ): PointsImport
+  pointsImporter(fileUpload: FileUpload!, geoSystemeId: String!, demarcheId: String!, etapeTypeId: String!): PointsImport
 
   "Calcule les informations relatives au périmètre d’une nouvelle étape"
-  perimetreInformations(
-    points: [InputPoint]!
-    demarcheId: String!
-    etapeTypeId: String!
-  ): PerimetreInformations
+  perimetreInformations(points: [InputPoint]!, demarcheId: String!, etapeTypeId: String!): PerimetreInformations
 
   "Calcule les informations relatives au périmètre d’une étape existante"
   titreEtapePerimetreInformations(titreEtapeId: String!): PerimetreInformations
 
-  journaux(
-    intervalle: Int!
-    page: Int!
-    recherche: String
-    titreId: String
-  ): Journaux
+  journaux(intervalle: Int!, page: Int!, recherche: String, titreId: String): Journaux
 }
 
 """
@@ -303,10 +265,7 @@ type Mutation {
   documentSupprimer(id: ID!): Boolean
 
   "Crée ou modifie une activité"
-  activiteModifier(
-    activite: InputActiviteModification!
-    depose: Boolean
-  ): Activite
+  activiteModifier(activite: InputActiviteModification!, depose: Boolean): Activite
 
   "Dépose une activité"
   activiteDeposer(id: ID!): Activite
@@ -320,25 +279,15 @@ type Mutation {
   "Modifie une entreprise"
   entrepriseModifier(entreprise: InputEntrepriseModification!): Entreprise
 
-  administrationActiviteTypeEmailCreer(
-    administrationActiviteTypeEmail: InputAdministrationActiviteTypeEmail!
-  ): Administration
+  administrationActiviteTypeEmailCreer(administrationActiviteTypeEmail: InputAdministrationActiviteTypeEmail!): Administration
 
-  administrationActiviteTypeEmailSupprimer(
-    administrationActiviteTypeEmail: InputAdministrationActiviteTypeEmail!
-  ): Administration
+  administrationActiviteTypeEmailSupprimer(administrationActiviteTypeEmail: InputAdministrationActiviteTypeEmail!): Administration
 
-  administrationTitreTypeTitreStatutModifier(
-    administrationTitreTypeTitreStatut: InputAdministrationTitreTypeTitreStatut!
-  ): Administration
+  administrationTitreTypeTitreStatutModifier(administrationTitreTypeTitreStatut: InputAdministrationTitreTypeTitreStatut!): Administration
 
-  administrationTitreTypeEtapeTypeModifier(
-    administrationTitreTypeEtapeType: InputAdministrationTitreTypeEtapeType!
-  ): Administration
+  administrationTitreTypeEtapeTypeModifier(administrationTitreTypeEtapeType: InputAdministrationTitreTypeEtapeType!): Administration
 
-  administrationActiviteTypeModifier(
-    administrationActiviteType: InputAdministrationActiviteType!
-  ): Administration
+  administrationActiviteTypeModifier(administrationActiviteType: InputAdministrationActiviteType!): Administration
 
   titreDemandeCreer(titreDemande: InputTitreDemande): TitreDemandeIds
 }
diff --git a/packages/api/src/api/graphql/titres-demarches.test.integration.ts b/packages/api/src/api/graphql/titres-demarches.test.integration.ts
index 0f17ea904..7e8031515 100644
--- a/packages/api/src/api/graphql/titres-demarches.test.integration.ts
+++ b/packages/api/src/api/graphql/titres-demarches.test.integration.ts
@@ -6,15 +6,7 @@ import { userSuper } from '../../database/user-super.js'
 import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 
-import {
-  afterAll,
-  beforeAll,
-  afterEach,
-  describe,
-  test,
-  expect,
-  vi
-} from 'vitest'
+import { afterAll, beforeAll, afterEach, describe, test, expect, vi } from 'vitest'
 
 console.info = vi.fn()
 console.error = vi.fn()
@@ -39,7 +31,7 @@ describe('demarcheCreer', () => {
         nom: 'mon titre',
         typeId: 'arm',
         propsTitreEtapesIds: {},
-        publicLecture: true
+        publicLecture: true,
       },
       {}
     )
@@ -47,7 +39,7 @@ describe('demarcheCreer', () => {
     const res = await graphQLCall(
       demarcheCreerQuery,
       {
-        demarche: { titreId: titre.id, typeId: 'dpu' }
+        demarche: { titreId: titre.id, typeId: 'dpu' },
       },
       undefined
     )
@@ -61,7 +53,7 @@ describe('demarcheCreer', () => {
         nom: 'mon titre',
         typeId: 'arm',
         propsTitreEtapesIds: {},
-        publicLecture: true
+        publicLecture: true,
       },
       {}
     )
@@ -71,7 +63,7 @@ describe('demarcheCreer', () => {
       { demarche: { titreId: titre.id, typeId: 'dpu' } },
       {
         role: 'editeur',
-        administrationId: 'ope-onf-973-01'
+        administrationId: 'ope-onf-973-01',
       }
     )
 
@@ -79,19 +71,11 @@ describe('demarcheCreer', () => {
   })
 
   test('peut créer une démarche (utilisateur super)', async () => {
-    const resTitreCreer = await graphQLCall(
-      queryImport('titre-creer'),
-      { titre: { nom: 'titre', typeId: 'arm' } },
-      userSuper
-    )
+    const resTitreCreer = await graphQLCall(queryImport('titre-creer'), { titre: { nom: 'titre', typeId: 'arm' } }, userSuper)
 
     const titreId = resTitreCreer.body.data.titreCreer.id
 
-    const res = await graphQLCall(
-      demarcheCreerQuery,
-      { demarche: { titreId, typeId: 'oct' } },
-      userSuper
-    )
+    const res = await graphQLCall(demarcheCreerQuery, { demarche: { titreId, typeId: 'oct' } }, userSuper)
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body).toMatchObject({ data: { demarcheCreer: {} } })
@@ -103,7 +87,7 @@ describe('demarcheCreer', () => {
       { demarche: { titreId: 'unknown', typeId: 'oct' } },
       {
         role: 'admin',
-        administrationId: 'ope-onf-973-01'
+        administrationId: 'ope-onf-973-01',
       }
     )
 
@@ -111,11 +95,7 @@ describe('demarcheCreer', () => {
   })
 
   test('peut créer une démarche (utilisateur admin)', async () => {
-    const resTitreCreer = await graphQLCall(
-      queryImport('titre-creer'),
-      { titre: { nom: 'titre', typeId: 'arm' } },
-      userSuper
-    )
+    const resTitreCreer = await graphQLCall(queryImport('titre-creer'), { titre: { nom: 'titre', typeId: 'arm' } }, userSuper)
 
     const titreId = resTitreCreer.body.data.titreCreer.id
 
@@ -124,7 +104,7 @@ describe('demarcheCreer', () => {
       { demarche: { titreId, typeId: 'oct' } },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
       }
     )
 
@@ -138,7 +118,7 @@ describe('demarcheCreer', () => {
         nom: 'mon titre échu',
         typeId: 'arm',
         titreStatutId: 'ech',
-        propsTitreEtapesIds: {}
+        propsTitreEtapesIds: {},
       },
       {}
     )
@@ -148,7 +128,7 @@ describe('demarcheCreer', () => {
       { demarche: { titreId: titre.id, typeId: 'oct' } },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
       }
     )
 
@@ -163,7 +143,7 @@ describe('demarcheModifier', () => {
     const res = await graphQLCall(
       demarcheModifierQuery,
       {
-        demarche: { id: 'toto', titreId: '', typeId: '' }
+        demarche: { id: 'toto', titreId: '', typeId: '' },
       },
       undefined
     )
@@ -172,11 +152,7 @@ describe('demarcheModifier', () => {
   })
 
   test('ne peut pas modifier une démarche (utilisateur editeur)', async () => {
-    const res = await graphQLCall(
-      demarcheModifierQuery,
-      { demarche: { id: 'toto', titreId: '', typeId: '' } },
-      { role: 'editeur', administrationId: 'ope-onf-973-01' }
-    )
+    const res = await graphQLCall(demarcheModifierQuery, { demarche: { id: 'toto', titreId: '', typeId: '' } }, { role: 'editeur', administrationId: 'ope-onf-973-01' })
 
     expect(res.body.errors[0].message).toBe('la démarche n’existe pas')
   })
@@ -184,22 +160,14 @@ describe('demarcheModifier', () => {
   test('peut modifier une démarche (utilisateur super)', async () => {
     const { demarcheId, titreId } = await demarcheCreate()
 
-    const res = await graphQLCall(
-      demarcheModifierQuery,
-      { demarche: { id: demarcheId, titreId, typeId: 'pro' } },
-      userSuper
-    )
+    const res = await graphQLCall(demarcheModifierQuery, { demarche: { id: demarcheId, titreId, typeId: 'pro' } }, userSuper)
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body.data.demarcheModifier.demarches[0].type.id).toBe('pro')
   })
 
   test('ne peut pas modifier une démarche avec un titre inexistant (utilisateur super)', async () => {
-    const res = await graphQLCall(
-      demarcheModifierQuery,
-      { demarche: { id: 'toto', titreId: '', typeId: '' } },
-      userSuper
-    )
+    const res = await graphQLCall(demarcheModifierQuery, { demarche: { id: 'toto', titreId: '', typeId: '' } }, userSuper)
 
     expect(res.body.errors[0].message).toBe('la démarche n’existe pas')
   })
@@ -212,7 +180,7 @@ describe('demarcheModifier', () => {
       { demarche: { id: demarcheId, titreId, typeId: 'pro' } },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
       }
     )
 
@@ -223,11 +191,7 @@ describe('demarcheModifier', () => {
   test('ne peut pas modifier une démarche d’un titre ARM en DEA (utilisateur admin)', async () => {
     const { demarcheId, titreId } = await demarcheCreate()
 
-    const res = await graphQLCall(
-      demarcheModifierQuery,
-      { demarche: { id: demarcheId, titreId, typeId: 'pro' } },
-      { role: 'admin', administrationId: ADMINISTRATION_IDS['DGTM - GUYANE'] }
-    )
+    const res = await graphQLCall(demarcheModifierQuery, { demarche: { id: demarcheId, titreId, typeId: 'pro' } }, { role: 'admin', administrationId: ADMINISTRATION_IDS['DGTM - GUYANE'] })
 
     expect(res.body.errors[0].message).toBe('droits insuffisants')
   })
@@ -235,11 +199,7 @@ describe('demarcheModifier', () => {
   test('ne peut modifier une démarche inexistante', async () => {
     const { titreId } = await demarcheCreate()
 
-    const res = await graphQLCall(
-      demarcheModifierQuery,
-      { demarche: { id: 'wrongId', titreId, typeId: 'pro' } },
-      userSuper
-    )
+    const res = await graphQLCall(demarcheModifierQuery, { demarche: { id: 'wrongId', titreId, typeId: 'pro' } }, userSuper)
 
     expect(res.body.errors).toHaveLength(1)
     expect(res.body.errors[0].message).toBe('la démarche n’existe pas')
@@ -254,7 +214,7 @@ describe('demarcheModifier', () => {
         typeId: 'mno',
         titreDemarcheId: demarcheId,
         statutId: 'acc',
-        date: toCaminoDate('2020-01-01')
+        date: toCaminoDate('2020-01-01'),
       },
       userSuper,
       titreId
@@ -266,16 +226,14 @@ describe('demarcheModifier', () => {
         demarche: {
           id: demarcheId,
           titreId,
-          typeId: 'pro'
-        }
+          typeId: 'pro',
+        },
       },
       userSuper
     )
 
     expect(res.body.errors).toHaveLength(1)
-    expect(res.body.errors[0].message).toBe(
-      'impossible de modifier le type d’une démarche si celle-ci a déjà une ou plusieurs étapes'
-    )
+    expect(res.body.errors[0].message).toBe('impossible de modifier le type d’une démarche si celle-ci a déjà une ou plusieurs étapes')
   })
 })
 
@@ -286,7 +244,7 @@ describe('demarcheSupprimer', () => {
     const res = await graphQLCall(
       demarcheSupprimerQuery,
       {
-        id: 'toto'
+        id: 'toto',
       },
       userSuper
     )
@@ -294,32 +252,20 @@ describe('demarcheSupprimer', () => {
   })
 
   test('ne peut pas supprimer une démarche (utilisateur admin)', async () => {
-    const res = await graphQLCall(
-      demarcheSupprimerQuery,
-      { id: 'toto' },
-      { role: 'admin', administrationId: 'ope-onf-973-01' }
-    )
+    const res = await graphQLCall(demarcheSupprimerQuery, { id: 'toto' }, { role: 'admin', administrationId: 'ope-onf-973-01' })
 
     expect(res.body.errors[0].message).toBe("la démarche n'existe pas")
   })
 
   test('ne peut pas supprimer une démarche inexistante (utilisateur super)', async () => {
-    const res = await graphQLCall(
-      demarcheSupprimerQuery,
-      { id: 'toto' },
-      userSuper
-    )
+    const res = await graphQLCall(demarcheSupprimerQuery, { id: 'toto' }, userSuper)
 
     expect(res.body.errors[0].message).toBe("la démarche n'existe pas")
   })
 
   test('peut supprimer une démarche (utilisateur super)', async () => {
     const { demarcheId } = await demarcheCreate()
-    const res = await graphQLCall(
-      demarcheSupprimerQuery,
-      { id: demarcheId },
-      userSuper
-    )
+    const res = await graphQLCall(demarcheSupprimerQuery, { id: demarcheId }, userSuper)
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body.data.demarcheSupprimer.demarches.length).toBe(0)
@@ -331,21 +277,17 @@ const demarcheCreate = async () => {
     {
       nom: 'mon titre',
       typeId: 'arm',
-      propsTitreEtapesIds: {}
+      propsTitreEtapesIds: {},
     },
     {}
   )
 
-  const resDemarchesCreer = await graphQLCall(
-    queryImport('titre-demarche-creer'),
-    { demarche: { titreId: titre.id, typeId: 'oct' } },
-    userSuper
-  )
+  const resDemarchesCreer = await graphQLCall(queryImport('titre-demarche-creer'), { demarche: { titreId: titre.id, typeId: 'oct' } }, userSuper)
 
   expect(resDemarchesCreer.body.errors).toBeUndefined()
 
   return {
     titreId: resDemarchesCreer.body.data.demarcheCreer.id,
-    demarcheId: resDemarchesCreer.body.data.demarcheCreer.demarches[0].id
+    demarcheId: resDemarchesCreer.body.data.demarcheCreer.demarches[0].id,
   }
 }
diff --git a/packages/api/src/api/graphql/titres-etapes-creer.test.integration.ts b/packages/api/src/api/graphql/titres-etapes-creer.test.integration.ts
index 8a67562ef..748e65816 100644
--- a/packages/api/src/api/graphql/titres-etapes-creer.test.integration.ts
+++ b/packages/api/src/api/graphql/titres-etapes-creer.test.integration.ts
@@ -11,28 +11,20 @@ import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
 import { isAdministrationRole, Role } from 'camino-common/src/roles.js'
 import { userSuper } from '../../database/user-super'
 
-import {
-  afterAll,
-  beforeEach,
-  beforeAll,
-  describe,
-  test,
-  expect,
-  vi
-} from 'vitest'
+import { afterAll, beforeEach, beforeAll, describe, test, expect, vi } from 'vitest'
 import { toCaminoDate } from 'camino-common/src/date.js'
 
 vi.mock('../../tools/dir-create', () => ({
   __esModule: true,
-  default: vi.fn()
+  default: vi.fn(),
 }))
 vi.mock('../../tools/file-stream-create', () => ({
   __esModule: true,
-  default: vi.fn()
+  default: vi.fn(),
 }))
 vi.mock('../../tools/file-delete', () => ({
   __esModule: true,
-  default: vi.fn()
+  default: vi.fn(),
 }))
 console.info = vi.fn()
 console.error = vi.fn()
@@ -46,9 +38,7 @@ beforeAll(async () => {
     .andWhere('demarcheTypeId', 'oct')
     .andWhere('etapeTypeId', 'mfr')
     .first()) as TitresTypesDemarchesTypesEtapesTypes
-  mfrTDE!
-    .sections!.find(s => s.id === 'arm')!
-    .elements!.find(e => e.id === 'franchissements')!.optionnel = false
+  mfrTDE!.sections!.find(s => s.id === 'arm')!.elements!.find(e => e.id === 'franchissements')!.optionnel = false
   await TitresTypesDemarchesTypesEtapesTypes.query().upsertGraph(mfrTDE)
 })
 
@@ -65,14 +55,14 @@ const demarcheCreate = async () => {
     {
       nom: 'mon titre',
       typeId: 'arm',
-      propsTitreEtapesIds: {}
+      propsTitreEtapesIds: {},
     },
     {}
   )
 
   const titreDemarche = await titreDemarcheCreate({
     titreId: titre.id,
-    typeId: 'oct'
+    typeId: 'oct',
   })
 
   return titreDemarche.id
@@ -81,31 +71,22 @@ const demarcheCreate = async () => {
 describe('etapeCreer', () => {
   const etapeCreerQuery = queryImport('titre-etape-creer')
 
-  test.each([undefined, 'editeur' as Role])(
-    'ne peut pas créer une étape (utilisateur %s)',
-    async (role: Role | undefined) => {
-      const res = await graphQLCall(
-        etapeCreerQuery,
-        { etape: { typeId: '', statutId: '', titreDemarcheId: '', date: '' } },
-        role && isAdministrationRole(role)
-          ? { role, administrationId: 'ope-onf-973-01' }
-          : undefined
-      )
-
-      expect(res.body.errors[0].message).toBe("la démarche n'existe pas")
-    }
-  )
-
-  test('ne peut pas créer une étape sur une démarche inexistante (utilisateur admin)', async () => {
+  test.each([undefined, 'editeur' as Role])('ne peut pas créer une étape (utilisateur %s)', async (role: Role | undefined) => {
     const res = await graphQLCall(
       etapeCreerQuery,
       { etape: { typeId: '', statutId: '', titreDemarcheId: '', date: '' } },
-      { role: 'admin', administrationId: 'ope-onf-973-01' }
+      role && isAdministrationRole(role) ? { role, administrationId: 'ope-onf-973-01' } : undefined
     )
 
     expect(res.body.errors[0].message).toBe("la démarche n'existe pas")
   })
 
+  test('ne peut pas créer une étape sur une démarche inexistante (utilisateur admin)', async () => {
+    const res = await graphQLCall(etapeCreerQuery, { etape: { typeId: '', statutId: '', titreDemarcheId: '', date: '' } }, { role: 'admin', administrationId: 'ope-onf-973-01' })
+
+    expect(res.body.errors[0].message).toBe("la démarche n'existe pas")
+  })
+
   test('ne peut pas créer une étape de mia faite avec le ptmg', async () => {
     const titreDemarcheId = await demarcheCreate()
 
@@ -116,18 +97,16 @@ describe('etapeCreer', () => {
           typeId: 'mia',
           statutId: 'fai',
           titreDemarcheId,
-          date: '2018-01-01'
-        }
+          date: '2018-01-01',
+        },
       },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
       }
     )
 
-    expect(res.body.errors[0].message).toBe(
-      'droits insuffisants pour créer cette étape'
-    )
+    expect(res.body.errors[0].message).toBe('droits insuffisants pour créer cette étape')
   })
   test('ne peut pas créer une étape incohérente (mia avec statut fav) (utilisateur admin)', async () => {
     const titreDemarcheId = await demarcheCreate()
@@ -139,18 +118,16 @@ describe('etapeCreer', () => {
           typeId: 'mia',
           statutId: 'fav',
           titreDemarcheId,
-          date: '2018-01-01'
-        }
+          date: '2018-01-01',
+        },
       },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
       }
     )
 
-    expect(res.body.errors[0].message).toBe(
-      'statut de l\'étape "fav" invalide pour une type d\'étape mia pour une démarche de type octroi'
-    )
+    expect(res.body.errors[0].message).toBe('statut de l\'étape "fav" invalide pour une type d\'étape mia pour une démarche de type octroi')
   })
 
   test('peut créer une étape mia avec un statut fai (utilisateur super)', async () => {
@@ -163,8 +140,8 @@ describe('etapeCreer', () => {
           typeId: 'mia',
           statutId: 'fai',
           titreDemarcheId,
-          date: '2018-01-01'
-        }
+          date: '2018-01-01',
+        },
       },
       userSuper
     )
@@ -181,12 +158,12 @@ describe('etapeCreer', () => {
           typeId: 'men',
           statutId: 'fai',
           titreDemarcheId,
-          date: '2018-01-01'
-        }
+          date: '2018-01-01',
+        },
       },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
       }
     )
 
@@ -205,22 +182,20 @@ describe('etapeCreer', () => {
           titreDemarcheId,
           date: '2018-01-01',
           heritageContenu: {
-            deal: { motifs: { actif: false }, agent: { actif: false } }
+            deal: { motifs: { actif: false }, agent: { actif: false } },
           },
           contenu: {
-            deal: { motifs: 'motif', agent: 'agent' }
-          }
-        }
+            deal: { motifs: 'motif', agent: 'agent' },
+          },
+        },
       },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
       }
     )
 
-    expect(res.body.errors[0].message).toBe(
-      'statut de l\'étape "fai" invalide pour une type d\'étape ede pour une démarche de type octroi'
-    )
+    expect(res.body.errors[0].message).toBe('statut de l\'étape "fai" invalide pour une type d\'étape ede pour une démarche de type octroi')
   })
 
   test('ne peut pas créer une étape mfr avec un statut fai avec un champ obligatoire manquant (utilisateur super)', async () => {
@@ -229,25 +204,25 @@ describe('etapeCreer', () => {
       id: 'dom',
       typeId: 'dom',
       date: toCaminoDate('2020-01-01'),
-      uri: 'https://camino.beta.gouv.fr'
+      uri: 'https://camino.beta.gouv.fr',
     })
     await documentCreate({
       id: 'for',
       typeId: 'for',
       date: toCaminoDate('2020-01-01'),
-      uri: 'https://camino.beta.gouv.fr'
+      uri: 'https://camino.beta.gouv.fr',
     })
     await documentCreate({
       id: 'jpa',
       typeId: 'jpa',
       date: toCaminoDate('2020-01-01'),
-      uri: 'https://camino.beta.gouv.fr'
+      uri: 'https://camino.beta.gouv.fr',
     })
     await documentCreate({
       id: 'car',
       typeId: 'car',
       date: toCaminoDate('2020-01-01'),
-      uri: 'https://camino.beta.gouv.fr'
+      uri: 'https://camino.beta.gouv.fr',
     })
     const res = await graphQLCall(
       etapeCreerQuery,
@@ -271,8 +246,8 @@ describe('etapeCreer', () => {
           heritageContenu: {
             arm: {
               mecanise: { actif: true },
-              franchissements: { actif: true }
-            }
+              franchissements: { actif: true },
+            },
           },
           substances: ['auru'],
           documentIds: ['dom', 'for', 'jpa', 'car'],
@@ -281,43 +256,33 @@ describe('etapeCreer', () => {
               groupe: 1,
               contour: 1,
               point: 1,
-              references: [
-                { geoSystemeId: '4326', coordonnees: { x: 1, y: 2 } }
-              ]
+              references: [{ geoSystemeId: '4326', coordonnees: { x: 1, y: 2 } }],
             },
             {
               groupe: 1,
               contour: 1,
               point: 2,
-              references: [
-                { geoSystemeId: '4326', coordonnees: { x: 2, y: 2 } }
-              ]
+              references: [{ geoSystemeId: '4326', coordonnees: { x: 2, y: 2 } }],
             },
             {
               groupe: 1,
               contour: 1,
               point: 3,
-              references: [
-                { geoSystemeId: '4326', coordonnees: { x: 2, y: 1 } }
-              ]
+              references: [{ geoSystemeId: '4326', coordonnees: { x: 2, y: 1 } }],
             },
             {
               groupe: 1,
               contour: 1,
               point: 4,
-              references: [
-                { geoSystemeId: '4326', coordonnees: { x: 1, y: 1 } }
-              ]
-            }
-          ]
-        }
+              references: [{ geoSystemeId: '4326', coordonnees: { x: 1, y: 1 } }],
+            },
+          ],
+        },
       },
       userSuper
     )
 
-    expect(res.body.errors[0].message).toMatchInlineSnapshot(
-      `"impossible d’éditer la durée, l’élément \\"Franchissements de cours d'eau\\" de la section \\"Caractéristiques ARM\\" est obligatoire"`
-    )
+    expect(res.body.errors[0].message).toMatchInlineSnapshot(`"impossible d’éditer la durée, l’élément \\"Franchissements de cours d'eau\\" de la section \\"Caractéristiques ARM\\" est obligatoire"`)
   })
 
   test('peut créer une étape mfr avec un statut aco avec un champ obligatoire manquant (utilisateur super)', async () => {
@@ -343,10 +308,10 @@ describe('etapeCreer', () => {
           heritageContenu: {
             arm: {
               mecanise: { actif: true },
-              franchissements: { actif: true }
-            }
-          }
-        }
+              franchissements: { actif: true },
+            },
+          },
+        },
       },
       userSuper
     )
diff --git a/packages/api/src/api/graphql/titres-etapes-modifier.test.integration.ts b/packages/api/src/api/graphql/titres-etapes-modifier.test.integration.ts
index 0f1dfa882..efa4c5f96 100644
--- a/packages/api/src/api/graphql/titres-etapes-modifier.test.integration.ts
+++ b/packages/api/src/api/graphql/titres-etapes-modifier.test.integration.ts
@@ -10,29 +10,21 @@ import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
 import { isAdministrationRole, Role } from 'camino-common/src/roles.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 
-import {
-  afterAll,
-  beforeEach,
-  beforeAll,
-  describe,
-  test,
-  expect,
-  vi
-} from 'vitest'
+import { afterAll, beforeEach, beforeAll, describe, test, expect, vi } from 'vitest'
 
 vi.mock('../../tools/dir-create', () => ({
   __esModule: true,
-  default: vi.fn()
+  default: vi.fn(),
 }))
 
 vi.mock('../../tools/file-stream-create', () => ({
   __esModule: true,
-  default: vi.fn()
+  default: vi.fn(),
 }))
 
 vi.mock('../../tools/file-delete', () => ({
   __esModule: true,
-  default: vi.fn()
+  default: vi.fn(),
 }))
 
 console.info = vi.fn()
@@ -54,13 +46,13 @@ async function etapeCreate() {
     {
       nom: 'mon titre',
       typeId: 'arm',
-      propsTitreEtapesIds: {}
+      propsTitreEtapesIds: {},
     },
     {}
   )
   const titreDemarche = await titreDemarcheCreate({
     titreId: titre.id,
-    typeId: 'oct'
+    typeId: 'oct',
   })
 
   const titreEtape = await titreEtapeCreate(
@@ -68,7 +60,7 @@ async function etapeCreate() {
       typeId: 'mfr',
       statutId: 'fai',
       titreDemarcheId: titreDemarche.id,
-      date: toCaminoDate('2018-01-01')
+      date: toCaminoDate('2018-01-01'),
     },
     userSuper,
     titre.id
@@ -80,28 +72,23 @@ async function etapeCreate() {
 describe('etapeModifier', () => {
   const etapeModifierQuery = queryImport('titre-etape-modifier')
 
-  test.each([undefined, 'editeur' as Role])(
-    'ne peut pas modifier une étape (utilisateur %s)',
-    async (role: Role | undefined) => {
-      const res = await graphQLCall(
-        etapeModifierQuery,
-        {
-          etape: {
-            id: '',
-            typeId: '',
-            statutId: '',
-            titreDemarcheId: '',
-            date: ''
-          }
+  test.each([undefined, 'editeur' as Role])('ne peut pas modifier une étape (utilisateur %s)', async (role: Role | undefined) => {
+    const res = await graphQLCall(
+      etapeModifierQuery,
+      {
+        etape: {
+          id: '',
+          typeId: '',
+          statutId: '',
+          titreDemarcheId: '',
+          date: '',
         },
-        role && isAdministrationRole(role)
-          ? { role, administrationId: 'ope-onf-973-01' }
-          : undefined
-      )
+      },
+      role && isAdministrationRole(role) ? { role, administrationId: 'ope-onf-973-01' } : undefined
+    )
 
-      expect(res.body.errors[0].message).toBe("l'étape n'existe pas")
-    }
-  )
+    expect(res.body.errors[0].message).toBe("l'étape n'existe pas")
+  })
 
   test('ne peut pas modifier une étape sur une démarche inexistante (utilisateur super)', async () => {
     const res = await graphQLCall(
@@ -112,8 +99,8 @@ describe('etapeModifier', () => {
           typeId: '',
           statutId: '',
           titreDemarcheId: '',
-          date: ''
-        }
+          date: '',
+        },
       },
       userSuper
     )
@@ -145,13 +132,13 @@ describe('etapeModifier', () => {
           heritageContenu: {
             arm: {
               mecanise: { actif: false },
-              franchissements: { actif: false }
-            }
+              franchissements: { actif: false },
+            },
           },
           contenu: {
-            arm: { mecanise: true, franchissements: 3 }
-          }
-        }
+            arm: { mecanise: true, franchissements: 3 },
+          },
+        },
       },
       userSuper
     )
@@ -170,8 +157,8 @@ describe('etapeModifier', () => {
           typeId: 'mia',
           statutId: 'fai',
           titreDemarcheId,
-          date: '2018-01-01'
-        }
+          date: '2018-01-01',
+        },
       },
       userSuper
     )
@@ -190,18 +177,16 @@ describe('etapeModifier', () => {
           typeId: 'mia',
           statutId: 'fav',
           titreDemarcheId,
-          date: '2018-01-01'
-        }
+          date: '2018-01-01',
+        },
       },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
       }
     )
 
-    expect(res.body.errors[0].message).toBe(
-      'statut de l\'étape "fav" invalide pour une type d\'étape mia pour une démarche de type octroi'
-    )
+    expect(res.body.errors[0].message).toBe('statut de l\'étape "fav" invalide pour une type d\'étape mia pour une démarche de type octroi')
   })
 
   test('peut modifier une étape MEN sur un titre ARM en tant que PTMG (utilisateur admin)', async () => {
@@ -214,12 +199,12 @@ describe('etapeModifier', () => {
           typeId: 'men',
           statutId: 'fai',
           titreDemarcheId,
-          date: '2018-01-01'
-        }
+          date: '2018-01-01',
+        },
       },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
       }
     )
 
@@ -239,58 +224,39 @@ describe('etapeModifier', () => {
           titreDemarcheId,
           date: '2018-01-01',
           heritageContenu: {
-            deal: { motifs: { actif: false }, agent: { actif: false } }
+            deal: { motifs: { actif: false }, agent: { actif: false } },
           },
-          contenu: { deal: { motifs: 'motif', agent: 'agent' } }
-        }
+          contenu: { deal: { motifs: 'motif', agent: 'agent' } },
+        },
       },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
       }
     )
 
-    expect(res.body.errors[0].message).toBe(
-      'statut de l\'étape "fai" invalide pour une type d\'étape ede pour une démarche de type octroi'
-    )
+    expect(res.body.errors[0].message).toBe('statut de l\'étape "fai" invalide pour une type d\'étape ede pour une démarche de type octroi')
   })
 })
 
 describe('etapeSupprimer', () => {
   const etapeSupprimerQuery = queryImport('titre-etape-supprimer')
 
-  test.each([undefined, 'admin' as Role])(
-    'ne peut pas supprimer une étape (utilisateur %s)',
-    async (role: Role | undefined) => {
-      const res = await graphQLCall(
-        etapeSupprimerQuery,
-        { id: '' },
-        role && isAdministrationRole(role)
-          ? { role, administrationId: 'ope-onf-973-01' }
-          : undefined
-      )
-
-      expect(res.body.errors[0].message).toBe("l'étape n'existe pas")
-    }
-  )
+  test.each([undefined, 'admin' as Role])('ne peut pas supprimer une étape (utilisateur %s)', async (role: Role | undefined) => {
+    const res = await graphQLCall(etapeSupprimerQuery, { id: '' }, role && isAdministrationRole(role) ? { role, administrationId: 'ope-onf-973-01' } : undefined)
+
+    expect(res.body.errors[0].message).toBe("l'étape n'existe pas")
+  })
 
   test('ne peut pas supprimer une étape inexistante (utilisateur super)', async () => {
-    const res = await graphQLCall(
-      etapeSupprimerQuery,
-      { id: 'toto' },
-      userSuper
-    )
+    const res = await graphQLCall(etapeSupprimerQuery, { id: 'toto' }, userSuper)
 
     expect(res.body.errors[0].message).toBe("l'étape n'existe pas")
   })
 
   test('peut supprimer une étape (utilisateur super)', async () => {
     const { titreEtapeId } = await etapeCreate()
-    const res = await graphQLCall(
-      etapeSupprimerQuery,
-      { id: titreEtapeId },
-      userSuper
-    )
+    const res = await graphQLCall(etapeSupprimerQuery, { id: titreEtapeId }, userSuper)
 
     expect(res.body.errors).toBeUndefined()
   })
diff --git a/packages/api/src/api/graphql/titres.test.integration.ts b/packages/api/src/api/graphql/titres.test.integration.ts
index 7acc5c84c..a87c5d47c 100644
--- a/packages/api/src/api/graphql/titres.test.integration.ts
+++ b/packages/api/src/api/graphql/titres.test.integration.ts
@@ -8,16 +8,7 @@ import { newDemarcheId } from '../../database/models/_format/id-create.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
 
-import {
-  vi,
-  afterEach,
-  beforeEach,
-  afterAll,
-  beforeAll,
-  describe,
-  test,
-  expect
-} from 'vitest'
+import { vi, afterEach, beforeEach, afterAll, beforeAll, describe, test, expect } from 'vitest'
 
 console.info = vi.fn()
 console.error = vi.fn()
@@ -38,7 +29,7 @@ const titrePublicLectureFalse: ITitre = {
   nom: 'mon titre',
   typeId: 'arm',
   publicLecture: false,
-  propsTitreEtapesIds: {}
+  propsTitreEtapesIds: {},
 }
 
 const titreDemarchesPubliques: ITitre = {
@@ -52,15 +43,15 @@ const titreDemarchesPubliques: ITitre = {
       id: newDemarcheId('titre-id-demarche-oct'),
       titreId: 'titre-id',
       typeId: 'oct',
-      publicLecture: true
+      publicLecture: true,
     },
     {
       id: newDemarcheId('titre-id-demarche-pro'),
       titreId: 'titre-id',
       typeId: 'pro',
-      publicLecture: false
-    }
-  ]
+      publicLecture: false,
+    },
+  ],
 }
 const titreEtapesPubliques: ITitre = {
   id: 'titre-id',
@@ -82,7 +73,7 @@ const titreEtapesPubliques: ITitre = {
           ordre: 8,
           titreDemarcheId: newDemarcheId('titre-id-demarche-id'),
           statutId: 'acc',
-          date: toCaminoDate('2020-02-02')
+          date: toCaminoDate('2020-02-02'),
         },
         {
           id: 'titre-id-demarche-id-eof',
@@ -90,7 +81,7 @@ const titreEtapesPubliques: ITitre = {
           ordre: 7,
           titreDemarcheId: newDemarcheId('titre-id-demarche-id'),
           statutId: 'acc',
-          date: toCaminoDate('2020-02-02')
+          date: toCaminoDate('2020-02-02'),
         },
         {
           id: 'titre-id-demarche-id-edm',
@@ -98,7 +89,7 @@ const titreEtapesPubliques: ITitre = {
           ordre: 6,
           titreDemarcheId: newDemarcheId('titre-id-demarche-id'),
           statutId: 'acc',
-          date: toCaminoDate('2020-02-02')
+          date: toCaminoDate('2020-02-02'),
         },
         {
           id: 'titre-id-demarche-id-ede',
@@ -106,7 +97,7 @@ const titreEtapesPubliques: ITitre = {
           ordre: 5,
           titreDemarcheId: newDemarcheId('titre-id-demarche-id'),
           statutId: 'acc',
-          date: toCaminoDate('2020-02-02')
+          date: toCaminoDate('2020-02-02'),
         },
         {
           id: 'titre-id-demarche-id-pfd',
@@ -114,7 +105,7 @@ const titreEtapesPubliques: ITitre = {
           ordre: 4,
           titreDemarcheId: newDemarcheId('titre-id-demarche-id'),
           statutId: 'acc',
-          date: toCaminoDate('2020-02-02')
+          date: toCaminoDate('2020-02-02'),
         },
         {
           id: 'titre-id-demarche-id-pfc',
@@ -122,7 +113,7 @@ const titreEtapesPubliques: ITitre = {
           ordre: 3,
           titreDemarcheId: newDemarcheId('titre-id-demarche-id'),
           statutId: 'acc',
-          date: toCaminoDate('2020-02-02')
+          date: toCaminoDate('2020-02-02'),
         },
         {
           id: 'titre-id-demarche-id-vfd',
@@ -130,7 +121,7 @@ const titreEtapesPubliques: ITitre = {
           ordre: 2,
           titreDemarcheId: newDemarcheId('titre-id-demarche-id'),
           statutId: 'acc',
-          date: toCaminoDate('2020-02-02')
+          date: toCaminoDate('2020-02-02'),
         },
         {
           id: 'titre-id-demarche-id-vfc',
@@ -138,7 +129,7 @@ const titreEtapesPubliques: ITitre = {
           ordre: 1,
           titreDemarcheId: newDemarcheId('titre-id-demarche-id'),
           statutId: 'acc',
-          date: toCaminoDate('2020-02-02')
+          date: toCaminoDate('2020-02-02'),
         },
         {
           id: 'titre-id-demarche-id-dpu',
@@ -147,11 +138,11 @@ const titreEtapesPubliques: ITitre = {
           titreDemarcheId: newDemarcheId('titre-id-demarche-id'),
           statutId: 'acc',
           date: toCaminoDate('2020-02-02'),
-          administrationsLocales: ['dea-guyane-01']
-        }
-      ]
-    }
-  ]
+          administrationsLocales: ['dea-guyane-01'],
+        },
+      ],
+    },
+  ],
 }
 
 const titreWithActiviteGrp: ITitre = {
@@ -178,18 +169,18 @@ const titreWithActiviteGrp: ITitre = {
               id: 'orBrut',
               nom: 'Or brut extrait (g)',
               type: 'number',
-              description: 'Masse d’or brut'
+              description: 'Masse d’or brut',
             },
             {
               id: 'orExtrait',
               nom: 'Or extrait (g)',
               type: 'number',
-              description: "Masse d'or brut extrait au cours du trimestre."
-            }
-          ]
-        }
-      ]
-    }
+              description: "Masse d'or brut extrait au cours du trimestre.",
+            },
+          ],
+        },
+      ],
+    },
   ],
   demarches: [
     {
@@ -205,11 +196,11 @@ const titreWithActiviteGrp: ITitre = {
           titreDemarcheId: newDemarcheId('titre-id-demarche-id'),
           statutId: 'acc',
           date: toCaminoDate('2020-02-02'),
-          administrationsLocales: ['dea-guyane-01']
-        }
-      ]
-    }
-  ]
+          administrationsLocales: ['dea-guyane-01'],
+        },
+      ],
+    },
+  ],
 }
 
 const titreActivites: ITitre = {
@@ -236,17 +227,17 @@ const titreActivites: ITitre = {
               nom: 'Or brut extrait (g)',
               type: 'number',
               dateDebut: '2018-01-01',
-              description: 'Masse d’or brut'
+              description: 'Masse d’or brut',
             },
             {
               id: 'orExtrait',
               nom: 'Or extrait (g)',
               type: 'number',
-              description: "Masse d'or brut extrait au cours du trimestre."
-            }
-          ]
-        }
-      ]
+              description: "Masse d'or brut extrait au cours du trimestre.",
+            },
+          ],
+        },
+      ],
     },
     {
       id: 'titre-id-activites-pro',
@@ -264,19 +255,19 @@ const titreActivites: ITitre = {
               id: 'orBrut',
               nom: 'Or brut extrait (g)',
               type: 'number',
-              description: 'Masse d’or brut'
+              description: 'Masse d’or brut',
             },
             {
               id: 'orExtrait',
               nom: 'Or extrait (g)',
               type: 'number',
-              description: "Masse d'or brut extrait au cours du trimestre."
-            }
-          ]
-        }
-      ]
-    }
-  ]
+              description: "Masse d'or brut extrait au cours du trimestre.",
+            },
+          ],
+        },
+      ],
+    },
+  ],
 }
 describe('titre', () => {
   const titreQuery = queryImport('titre')
@@ -287,14 +278,14 @@ describe('titre', () => {
       nom: 'mon titre',
       typeId: 'arm',
       publicLecture: true,
-      propsTitreEtapesIds: {}
+      propsTitreEtapesIds: {},
     }
     await titreCreate(titrePublicLecture, {})
     const res = await graphQLCall(titreQuery, { id: 'titre-id' }, undefined)
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body.data).toMatchObject({
-      titre: { id: 'titre-id' }
+      titre: { id: 'titre-id' },
     })
   })
 
@@ -314,8 +305,8 @@ describe('titre', () => {
     expect(res.body.data).toMatchObject({
       titre: {
         id: 'titre-id',
-        demarches: [{ id: 'titre-id-demarche-oct' }]
-      }
+        demarches: [{ id: 'titre-id-demarche-oct' }],
+      },
     })
 
     expect(res.body.data.titre.demarches.length).toEqual(1)
@@ -328,8 +319,8 @@ describe('titre', () => {
     expect(res.body.errors).toBeUndefined()
     expect(res.body.data).toMatchObject({
       titre: {
-        id: 'titre-id'
-      }
+        id: 'titre-id',
+      },
     })
 
     expect(res.body.data.titre.activites.length).toEqual(0)
@@ -346,27 +337,23 @@ describe('titre', () => {
         demarches: [
           {
             id: 'titre-id-demarche-id',
-            etapes: [{ id: 'titre-id-demarche-id-dpu' }]
-          }
-        ]
-      }
+            etapes: [{ id: 'titre-id-demarche-id-dpu' }],
+          },
+        ],
+      },
     })
     expect(res.body.data.titre.demarches[0].etapes.length).toEqual(1)
   })
 
   test('ne peut pas voir certaines étapes (utilisateur DGTM)', async () => {
     await titreCreate(titreEtapesPubliques, {})
-    const res = await graphQLCall(
-      titreQuery,
-      { id: 'titre-id' },
-      { role: 'admin', administrationId: ADMINISTRATION_IDS['DGTM - GUYANE'] }
-    )
+    const res = await graphQLCall(titreQuery, { id: 'titre-id' }, { role: 'admin', administrationId: ADMINISTRATION_IDS['DGTM - GUYANE'] })
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body.data.titre.demarches[0].etapes).toHaveLength(8)
     expect(
       res.body.data.titre.demarches[0].etapes.map(({ id }: { id: string }) => ({
-        id
+        id,
       }))
     ).toEqual(
       expect.arrayContaining([
@@ -377,7 +364,7 @@ describe('titre', () => {
         { id: 'titre-id-demarche-id-pfc' },
         { id: 'titre-id-demarche-id-pfd' },
         { id: 'titre-id-demarche-id-vfc' },
-        { id: 'titre-id-demarche-id-vfd' }
+        { id: 'titre-id-demarche-id-vfd' },
       ])
     )
   })
@@ -389,7 +376,7 @@ describe('titre', () => {
       { id: 'titre-id' },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+        administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
       }
     )
 
@@ -397,7 +384,7 @@ describe('titre', () => {
     expect(res.body.data.titre.demarches[0].etapes.length).toEqual(9)
     expect(
       res.body.data.titre.demarches[0].etapes.map(({ id }: { id: string }) => ({
-        id
+        id,
       }))
     ).toEqual(
       expect.arrayContaining([
@@ -409,36 +396,28 @@ describe('titre', () => {
         { id: 'titre-id-demarche-id-vfc' },
         { id: 'titre-id-demarche-id-vfd' },
         { id: 'titre-id-demarche-id-ede' },
-        { id: 'titre-id-demarche-id-dpu' }
+        { id: 'titre-id-demarche-id-dpu' },
       ])
     )
   })
 
   test('peut modifier les activités GRP (utilisateur DEAL Guyane)', async () => {
     await titreCreate(titreWithActiviteGrp, {})
-    const res = await graphQLCall(
-      titreQuery,
-      { id: 'titre-id' },
-      { role: 'admin', administrationId: ADMINISTRATION_IDS['DGTM - GUYANE'] }
-    )
+    const res = await graphQLCall(titreQuery, { id: 'titre-id' }, { role: 'admin', administrationId: ADMINISTRATION_IDS['DGTM - GUYANE'] })
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body.data).toMatchObject({
-      titre: { activites: [{ modification: true }] }
+      titre: { activites: [{ modification: true }] },
     })
   })
 
   test('ne peut pas voir les activités GRP (utilisateur CACEM)', async () => {
     await titreCreate(titreWithActiviteGrp, {})
-    const res = await graphQLCall(
-      titreQuery,
-      { id: 'titre-id' },
-      { role: 'admin', administrationId: ADMINISTRATION_IDS.CACEM }
-    )
+    const res = await graphQLCall(titreQuery, { id: 'titre-id' }, { role: 'admin', administrationId: ADMINISTRATION_IDS.CACEM })
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body.data).toMatchObject({
-      titre: { activites: [] }
+      titre: { activites: [] },
     })
   })
 })
@@ -450,7 +429,7 @@ describe('titreCreer', () => {
     const res = await graphQLCall(
       titreCreerQuery,
       {
-        titre: { nom: 'titre', typeId: 'arm' }
+        titre: { nom: 'titre', typeId: 'arm' },
       },
       undefined
     )
@@ -459,25 +438,17 @@ describe('titreCreer', () => {
   })
 
   test("ne peut pas créer un titre prm (un utilisateur 'entreprise')", async () => {
-    const res = await graphQLCall(
-      titreCreerQuery,
-      { titre: { nom: 'titre', typeId: 'prm' } },
-      { role: 'entreprise', entreprises: [] }
-    )
+    const res = await graphQLCall(titreCreerQuery, { titre: { nom: 'titre', typeId: 'prm' } }, { role: 'entreprise', entreprises: [] })
 
     expect(res.body.errors[0].message).toBe('permissions insuffisantes')
   })
 
   test("crée un titre (un utilisateur 'super')", async () => {
-    const res = await graphQLCall(
-      titreCreerQuery,
-      { titre: { nom: 'titre', typeId: 'arm' } },
-      userSuper
-    )
+    const res = await graphQLCall(titreCreerQuery, { titre: { nom: 'titre', typeId: 'arm' } }, userSuper)
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body).toMatchObject({
-      data: { titreCreer: { slug: 'm-ar-titre-0000', nom: 'titre' } }
+      data: { titreCreer: { slug: 'm-ar-titre-0000', nom: 'titre' } },
     })
   })
 
@@ -487,7 +458,7 @@ describe('titreCreer', () => {
       { titre: { nom: 'titre', typeId: 'axm' } },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
       }
     )
 
@@ -495,11 +466,7 @@ describe('titreCreer', () => {
   })
 
   test("ne peut pas créer un titre ARM (un utilisateur 'admin' Déal Guyane)", async () => {
-    const res = await graphQLCall(
-      titreCreerQuery,
-      { titre: { nom: 'titre', typeId: 'arm' } },
-      { role: 'admin', administrationId: ADMINISTRATION_IDS['DGTM - GUYANE'] }
-    )
+    const res = await graphQLCall(titreCreerQuery, { titre: { nom: 'titre', typeId: 'arm' } }, { role: 'admin', administrationId: ADMINISTRATION_IDS['DGTM - GUYANE'] })
 
     expect(res.body.errors[0].message).toBe('permissions insuffisantes')
   })
@@ -510,13 +477,13 @@ describe('titreCreer', () => {
       { titre: { nom: 'titre', typeId: 'arm' } },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
       }
     )
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body).toMatchObject({
-      data: { titreCreer: { slug: 'm-ar-titre-0000', nom: 'titre' } }
+      data: { titreCreer: { slug: 'm-ar-titre-0000', nom: 'titre' } },
     })
   })
 })
@@ -531,7 +498,7 @@ describe('titreModifier', () => {
       {
         nom: 'mon titre',
         typeId: 'arm',
-        propsTitreEtapesIds: {}
+        propsTitreEtapesIds: {},
       },
       {}
     )
@@ -542,7 +509,7 @@ describe('titreModifier', () => {
     const res = await graphQLCall(
       titreModifierQuery,
       {
-        titre: { id, nom: 'mon titre modifié' }
+        titre: { id, nom: 'mon titre modifié' },
       },
       undefined
     )
@@ -554,7 +521,7 @@ describe('titreModifier', () => {
     const res = await graphQLCall(
       titreModifierQuery,
       {
-        titre: { id, nom: 'mon titre modifié' }
+        titre: { id, nom: 'mon titre modifié' },
       },
       { role: 'entreprise', entreprises: [] }
     )
@@ -566,7 +533,7 @@ describe('titreModifier', () => {
     const res = await graphQLCall(
       titreModifierQuery,
       {
-        titre: { id, nom: 'mon titre modifié' }
+        titre: { id, nom: 'mon titre modifié' },
       },
       userSuper
     )
@@ -575,9 +542,9 @@ describe('titreModifier', () => {
       data: {
         titreModifier: {
           slug: 'm-ar-mon-titre-modifie-0000',
-          nom: 'mon titre modifié'
-        }
-      }
+          nom: 'mon titre modifié',
+        },
+      },
     })
   })
 
@@ -585,11 +552,11 @@ describe('titreModifier', () => {
     const res = await graphQLCall(
       titreModifierQuery,
       {
-        titre: { id, nom: 'mon titre modifié' }
+        titre: { id, nom: 'mon titre modifié' },
       },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
       }
     )
 
@@ -598,9 +565,9 @@ describe('titreModifier', () => {
         titreModifier: {
           id,
           slug: 'm-ar-mon-titre-modifie-0000',
-          nom: 'mon titre modifié'
-        }
-      }
+          nom: 'mon titre modifié',
+        },
+      },
     })
   })
 
@@ -610,7 +577,7 @@ describe('titreModifier', () => {
         nom: 'mon titre échu',
         typeId: 'arm',
         titreStatutId: 'ech',
-        propsTitreEtapesIds: {}
+        propsTitreEtapesIds: {},
       },
       {}
     )
@@ -620,12 +587,12 @@ describe('titreModifier', () => {
       {
         titre: {
           id: titre.id,
-          nom: 'mon titre échu modifié'
-        }
+          nom: 'mon titre échu modifié',
+        },
       },
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+        administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
       }
     )
 
@@ -636,7 +603,7 @@ describe('titreModifier', () => {
     const res = await graphQLCall(
       titreModifierQuery,
       {
-        titre: { id, nom: 'mon titre modifié' }
+        titre: { id, nom: 'mon titre modifié' },
       },
       { role: 'admin', administrationId: ADMINISTRATION_IDS['DGTM - GUYANE'] }
     )
@@ -655,7 +622,7 @@ describe('titreSupprimer', () => {
       {
         nom: 'mon titre',
         typeId: 'arm',
-        propsTitreEtapesIds: {}
+        propsTitreEtapesIds: {},
       },
       {}
     )
@@ -671,16 +638,12 @@ describe('titreSupprimer', () => {
     const res = await graphQLCall(titreSupprimerQuery, { id }, userSuper)
 
     expect(res.body).toMatchObject({
-      data: { titreSupprimer: expect.any(String) }
+      data: { titreSupprimer: expect.any(String) },
     })
   })
 
   test('ne peut pas supprimer un titre inexistant (utilisateur super)', async () => {
-    const res = await graphQLCall(
-      titreSupprimerQuery,
-      { id: 'toto' },
-      userSuper
-    )
+    const res = await graphQLCall(titreSupprimerQuery, { id: 'toto' }, userSuper)
 
     expect(res.body.errors[0].message).toMatch(/le titre n'existe pas/)
   })
diff --git a/packages/api/src/api/graphql/utilisateurs.test.integration.ts b/packages/api/src/api/graphql/utilisateurs.test.integration.ts
index d700df89f..2c64290b4 100644
--- a/packages/api/src/api/graphql/utilisateurs.test.integration.ts
+++ b/packages/api/src/api/graphql/utilisateurs.test.integration.ts
@@ -1,20 +1,8 @@
-import {
-  graphQLCall,
-  queryImport,
-  userGenerate
-} from '../../../tests/_utils/index.js'
+import { graphQLCall, queryImport, userGenerate } from '../../../tests/_utils/index.js'
 import { userAdd } from '../../knex/user-add.js'
 import { dbManager } from '../../../tests/db-manager.js'
 import { Knex } from 'knex'
-import {
-  expect,
-  test,
-  describe,
-  afterAll,
-  afterEach,
-  beforeAll,
-  vi
-} from 'vitest'
+import { expect, test, describe, afterAll, afterEach, beforeAll, vi } from 'vitest'
 
 console.info = vi.fn()
 console.error = vi.fn()
@@ -44,15 +32,13 @@ describe('utilisateurModifier', () => {
           nom: 'test-updated',
           email: 'test@camino.local',
           role: 'defaut',
-          entreprises: []
-        }
+          entreprises: [],
+        },
       },
       undefined
     )
 
-    expect(res.body.errors[0].message).toMatchInlineSnapshot(
-      '"l\'utilisateur n\'existe pas"'
-    )
+    expect(res.body.errors[0].message).toMatchInlineSnapshot('"l\'utilisateur n\'existe pas"')
   })
 
   test('peut modifier son compte utilisateur', async () => {
@@ -66,17 +52,17 @@ describe('utilisateurModifier', () => {
           nom: 'test-updated',
           email: user.email,
           role: 'defaut',
-          entreprises: []
-        }
+          entreprises: [],
+        },
       },
       {
-        role: 'defaut'
+        role: 'defaut',
       }
     )
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body).toMatchObject({
-      data: { utilisateurModifier: { id: user.id } }
+      data: { utilisateurModifier: { id: user.id } },
     })
   })
 })
@@ -85,11 +71,7 @@ describe('utilisateurSupprimer', () => {
   const utilisateurSupprimerQuery = queryImport('utilisateur-supprimer')
 
   test('ne peut pas supprimer un compte (utilisateur anonyme)', async () => {
-    const res = await graphQLCall(
-      utilisateurSupprimerQuery,
-      { id: 'test' },
-      undefined
-    )
+    const res = await graphQLCall(utilisateurSupprimerQuery, { id: 'test' }, undefined)
 
     expect(res.body.errors[0].message).toMatch(/droits insuffisants/)
   })
@@ -100,13 +82,13 @@ describe('utilisateurSupprimer', () => {
       utilisateurSupprimerQuery,
       { id: user.id },
       {
-        role: 'defaut'
+        role: 'defaut',
       }
     )
 
     expect(res.body.errors).toBeUndefined()
     expect(res.body).toMatchObject({
-      data: { utilisateurSupprimer: { id: user.id } }
+      data: { utilisateurSupprimer: { id: user.id } },
     })
   })
 
@@ -118,24 +100,16 @@ describe('utilisateurSupprimer', () => {
       nom: 'test',
       email: 'user-to-delete@camino.local',
       role: 'defaut',
-      dateCreation: '2022-05-12'
+      dateCreation: '2022-05-12',
     })
 
-    const res = await graphQLCall(
-      utilisateurSupprimerQuery,
-      { id },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(utilisateurSupprimerQuery, { id }, { role: 'super' })
 
     expect(res.body).toMatchObject({ data: { utilisateurSupprimer: { id } } })
   })
 
   test('ne peut pas supprimer un utilisateur inexistant (utilisateur super)', async () => {
-    const res = await graphQLCall(
-      utilisateurSupprimerQuery,
-      { id: 'toto' },
-      { role: 'super' }
-    )
+    const res = await graphQLCall(utilisateurSupprimerQuery, { id: 'toto' }, { role: 'super' })
 
     expect(res.body.errors[0].message).toMatch(/aucun utilisateur avec cet id/)
   })
diff --git a/packages/api/src/api/rest/_convert.ts b/packages/api/src/api/rest/_convert.ts
index 9d704c175..30bd592bd 100644
--- a/packages/api/src/api/rest/_convert.ts
+++ b/packages/api/src/api/rest/_convert.ts
@@ -2,16 +2,7 @@ import xlsx from 'xlsx'
 
 import { IFormat, Index } from '../../types.js'
 
-const tableConvert = (
-  section:
-    | 'titres'
-    | 'demarches'
-    | 'activites'
-    | 'utilisateurs'
-    | 'entreprises',
-  elements: Index<any>[],
-  format: IFormat
-) => {
+const tableConvert = (section: 'titres' | 'demarches' | 'activites' | 'utilisateurs' | 'entreprises', elements: Index<any>[], format: IFormat) => {
   let contenu = ''
 
   const sheet = xlsx.utils.json_to_sheet(elements as Index<any>[])
@@ -20,8 +11,7 @@ const tableConvert = (
     const cells = Object.keys(sheet)
     for (const cell of cells) {
       if (typeof sheet[cell].v === 'string' && sheet[cell].v.length > 32767) {
-        sheet[cell].v =
-          'la cellule est trop grosse pour le format xlsx, veuillez télécharger le document en ods si vous voulez y accéder'
+        sheet[cell].v = 'la cellule est trop grosse pour le format xlsx, veuillez télécharger le document en ods si vous voulez y accéder'
       }
     }
   }
diff --git a/packages/api/src/api/rest/entreprises.test.integration.ts b/packages/api/src/api/rest/entreprises.test.integration.ts
index fecb8669c..7db4e39a1 100644
--- a/packages/api/src/api/rest/entreprises.test.integration.ts
+++ b/packages/api/src/api/rest/entreprises.test.integration.ts
@@ -16,12 +16,9 @@ describe('fiscalite', () => {
   test('un utilisateur defaut n’a pas les droits', async () => {
     const entreprise = await entrepriseUpsert({
       id: newEntrepriseId('plop'),
-      nom: 'Mon Entreprise'
+      nom: 'Mon Entreprise',
     })
-    const tested = await restCall(
-      `/entreprises/${entreprise.id}/fiscalite/2022`,
-      { role: 'defaut' }
-    )
+    const tested = await restCall(`/entreprises/${entreprise.id}/fiscalite/2022`, { role: 'defaut' })
 
     expect(tested.statusCode).toBe(403)
   })
diff --git a/packages/api/src/api/rest/entreprises.test.ts b/packages/api/src/api/rest/entreprises.test.ts
index 332e00fd7..bb576cbcd 100644
--- a/packages/api/src/api/rest/entreprises.test.ts
+++ b/packages/api/src/api/rest/entreprises.test.ts
@@ -7,12 +7,12 @@ import { newEntrepriseId } from 'camino-common/src/entreprise.js'
 const entreprise = {
   id: newEntrepriseId('entrepriseId'),
   categorie: 'PME',
-  nom: 'ma companie'
+  nom: 'ma companie',
 }
 const entreprise2 = {
   id: newEntrepriseId('entrepriseId2'),
   categorie: 'PME',
-  nom: 'une compagnie non concernée'
+  nom: 'une compagnie non concernée',
 }
 
 describe("extrait la réponse venant d'openFisca", () => {
@@ -24,16 +24,16 @@ describe("extrait la réponse venant d'openFisca", () => {
             'titre2-auru-97310': {
               redevance_communale_des_mines_aurifere_kg: { '2022': 6604.6 },
               redevance_departementale_des_mines_aurifere_kg: {
-                '2022': 1318.54
-              }
-            }
-          }
+                '2022': 1318.54,
+              },
+            },
+          },
         },
         2022
       )
     ).toStrictEqual({
       redevanceCommunale: 6604.6,
-      redevanceDepartementale: 1318.54
+      redevanceDepartementale: 1318.54,
     })
   })
 })
@@ -43,7 +43,7 @@ describe('construit le corps de la requête pour openFisca', () => {
     expect(bodyBuilder([], [], [], 2022, [entreprise])).toEqual({
       articles: {},
       communes: {},
-      titres: {}
+      titres: {},
     })
   })
 
@@ -53,22 +53,19 @@ describe('construit le corps de la requête pour openFisca', () => {
       { titreId: 'titre3', contenu: { substancesFiscales: { auru: 0 } } },
       { titreId: 'titre1', contenu: { substancesFiscales: { auru: 0 } } },
       { titreId: 'titre4', contenu: { substancesFiscales: { auru: 0 } } },
-      { titreId: 'titre5', contenu: { substancesFiscales: { auru: 8.91 } } }
+      { titreId: 'titre5', contenu: { substancesFiscales: { auru: 8.91 } } },
     ]
     const activitesTrimestrielles = [
       {
         titreId: 'titre2',
-        contenu: { renseignements: { environnement: 7300 } }
+        contenu: { renseignements: { environnement: 7300 } },
       },
       {
         titreId: 'titre3',
-        contenu: { renseignements: { environnement: 1000 } }
-      }
+        contenu: { renseignements: { environnement: 1000 } },
+      },
     ]
-    const titres: Pick<
-      Titres,
-      'titulaires' | 'amodiataires' | 'substances' | 'communes' | 'id'
-    >[] = [
+    const titres: Pick<Titres, 'titulaires' | 'amodiataires' | 'substances' | 'communes' | 'id'>[] = [
       {
         substances: ['auru'],
         titulaires: [entreprise2],
@@ -78,10 +75,10 @@ describe('construit le corps de la requête pour openFisca', () => {
             id: '97310',
             nom: 'Roura',
             departementId: DEPARTEMENT_IDS.Guyane,
-            surface: 1006827
-          }
+            surface: 1006827,
+          },
         ],
-        id: 'titreSansActivite'
+        id: 'titreSansActivite',
       },
       {
         substances: ['auru', 'scoc'],
@@ -90,12 +87,12 @@ describe('construit le corps de la requête pour openFisca', () => {
             id: '97310',
             nom: 'Roura',
             departementId: DEPARTEMENT_IDS.Guyane,
-            surface: 6036587
-          }
+            surface: 6036587,
+          },
         ],
         titulaires: [entreprise2],
         amodiataires: [],
-        id: 'titre1'
+        id: 'titre1',
       },
       {
         substances: ['auru', 'scoc'],
@@ -106,10 +103,10 @@ describe('construit le corps de la requête pour openFisca', () => {
             id: '97310',
             nom: 'Roura',
             departementId: DEPARTEMENT_IDS.Guyane,
-            surface: 19805494
-          }
+            surface: 19805494,
+          },
         ],
-        id: 'titre2'
+        id: 'titre2',
       },
       {
         substances: ['auru', 'scoc'],
@@ -120,10 +117,10 @@ describe('construit le corps de la requête pour openFisca', () => {
             id: '97310',
             nom: 'Roura',
             departementId: DEPARTEMENT_IDS.Guyane,
-            surface: 5143845
-          }
+            surface: 5143845,
+          },
         ],
-        id: 'titre3'
+        id: 'titre3',
       },
       {
         substances: ['auru', 'scoc'],
@@ -134,10 +131,10 @@ describe('construit le corps de la requête pour openFisca', () => {
             id: '97310',
             nom: 'Roura',
             departementId: DEPARTEMENT_IDS.Guyane,
-            surface: 7676552
-          }
+            surface: 7676552,
+          },
         ],
-        id: 'titre4'
+        id: 'titre4',
       },
       {
         substances: ['auru', 'scoc'],
@@ -148,18 +145,13 @@ describe('construit le corps de la requête pour openFisca', () => {
             id: '97311',
             nom: 'Saint-Laurent-du-Maroni',
             departementId: DEPARTEMENT_IDS.Guyane,
-            surface: 35604009
-          }
+            surface: 35604009,
+          },
         ],
-        id: 'titre5'
-      }
+        id: 'titre5',
+      },
     ]
 
-    expect(
-      bodyBuilder(activitesAnnuelles, activitesTrimestrielles, titres, 2022, [
-        entreprise,
-        entreprise2
-      ])
-    ).toMatchSnapshot()
+    expect(bodyBuilder(activitesAnnuelles, activitesTrimestrielles, titres, 2022, [entreprise, entreprise2])).toMatchSnapshot()
   })
 })
diff --git a/packages/api/src/api/rest/entreprises.ts b/packages/api/src/api/rest/entreprises.ts
index 9b38ce592..66d9853c9 100644
--- a/packages/api/src/api/rest/entreprises.ts
+++ b/packages/api/src/api/rest/entreprises.ts
@@ -1,11 +1,5 @@
 import express from 'express'
-import {
-  Fiscalite,
-  FiscaliteFrance,
-  FiscaliteGuyane,
-  fiscaliteVisible,
-  isFiscaliteGuyane
-} from 'camino-common/src/fiscalite.js'
+import { Fiscalite, FiscaliteFrance, FiscaliteGuyane, fiscaliteVisible, isFiscaliteGuyane } from 'camino-common/src/fiscalite.js'
 import { ICommune, IContenuValeur, IEntreprise } from '../../types'
 import { constants } from 'http2'
 import {
@@ -15,7 +9,7 @@ import {
   redevanceCommunale,
   redevanceDepartementale,
   substanceFiscaleToInput,
-  openfiscaSubstanceFiscaleUnite
+  openfiscaSubstanceFiscaleUnite,
 } from '../../tools/api-openfisca/index.js'
 import { titresGet } from '../../database/queries/titres.js'
 import { titresActivitesGet } from '../../database/queries/titres-activites.js'
@@ -23,10 +17,7 @@ import { entrepriseGet } from '../../database/queries/entreprises.js'
 import TitresActivites from '../../database/models/titres-activites.js'
 import Titres from '../../database/models/titres.js'
 import { CustomResponse } from './express-type.js'
-import {
-  SubstanceFiscale,
-  substancesFiscalesBySubstanceLegale
-} from 'camino-common/src/static/substancesFiscales.js'
+import { SubstanceFiscale, substancesFiscalesBySubstanceLegale } from 'camino-common/src/static/substancesFiscales.js'
 import { Departements } from 'camino-common/src/static/departement.js'
 import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
 import { Regions } from 'camino-common/src/static/region.js'
@@ -34,10 +25,7 @@ import { CaminoAnnee, isAnnee } from 'camino-common/src/date.js'
 import { EntrepriseId } from 'camino-common/src/entreprise.js'
 import { User } from 'camino-common/src/roles'
 
-const conversion = (
-  substanceFiscale: SubstanceFiscale,
-  quantite: IContenuValeur
-): number => {
+const conversion = (substanceFiscale: SubstanceFiscale, quantite: IContenuValeur): number => {
   if (typeof quantite !== 'number') {
     return 0
   }
@@ -50,10 +38,7 @@ const conversion = (
 export const bodyBuilder = (
   activitesAnnuelles: Pick<TitresActivites, 'titreId' | 'contenu'>[],
   activitesTrimestrielles: Pick<TitresActivites, 'titreId' | 'contenu'>[],
-  titres: Pick<
-    Titres,
-    'titulaires' | 'amodiataires' | 'substances' | 'communes' | 'id'
-  >[],
+  titres: Pick<Titres, 'titulaires' | 'amodiataires' | 'substances' | 'communes' | 'id'>[],
   annee: number,
   entreprises: Pick<IEntreprise, 'id' | 'categorie' | 'nom'>[]
 ) => {
@@ -61,33 +46,25 @@ export const bodyBuilder = (
   const body: OpenfiscaRequest = {
     articles: {},
     titres: {},
-    communes: {}
+    communes: {},
   }
 
   for (const activite of activitesAnnuelles) {
     const titre = titres.find(({ id }) => id === activite.titreId)
-    const activiteTrimestresTitre = activitesTrimestrielles.filter(
-      ({ titreId }) => titreId === activite.titreId
-    )
+    const activiteTrimestresTitre = activitesTrimestrielles.filter(({ titreId }) => titreId === activite.titreId)
 
     if (!titre) {
       throw new Error(`le titre ${activite.titreId} n’est pas chargé`)
     }
 
     if (!titre.communes?.length) {
-      throw new Error(
-        `les communes du titre ${activite.titreId} ne sont pas chargées`
-      )
+      throw new Error(`les communes du titre ${activite.titreId} ne sont pas chargées`)
     }
     if (!titre.titulaires?.length) {
-      throw new Error(
-        `les titulaires du titre ${activite.titreId} ne sont pas chargées`
-      )
+      throw new Error(`les titulaires du titre ${activite.titreId} ne sont pas chargées`)
     }
     if (!titre.amodiataires) {
-      throw new Error(
-        `les amodiataires du titre ${activite.titreId} ne sont pas chargés`
-      )
+      throw new Error(`les amodiataires du titre ${activite.titreId} ne sont pas chargés`)
     }
 
     // si N titulaires et UN amodiataire le titre appartient fiscalement à l'amodiataire
@@ -100,21 +77,15 @@ export const bodyBuilder = (
     } else if (titre.titulaires.length === 1) {
       entrepriseId = titre.titulaires[0].id
     } else {
-      throw new Error(
-        `plusieurs entreprises liées au titre ${activite.titreId}, cas non géré`
-      )
+      throw new Error(`plusieurs entreprises liées au titre ${activite.titreId}, cas non géré`)
     }
 
     const entreprise = entreprises.find(({ id }) => id === entrepriseId)
 
     if (!entreprise && !amodiataire) {
-      throw new Error(
-        `pas d'entreprise trouvée pour le titre ${activite.titreId}`
-      )
+      throw new Error(`pas d'entreprise trouvée pour le titre ${activite.titreId}`)
     } else if (!entreprise && amodiataire) {
-      console.warn(
-        `le titre ${activite.titreId} appartient à l'entreprise amodiataire et n'est pas dans la liste des entreprises à analyser`
-      )
+      console.warn(`le titre ${activite.titreId} appartient à l'entreprise amodiataire et n'est pas dans la liste des entreprises à analyser`)
     } else if (entreprise) {
       const titreGuyannais = titre.communes
         .map(({ departementId }) => departementId)
@@ -124,64 +95,40 @@ export const bodyBuilder = (
         })
 
       if (!titre.substances) {
-        throw new Error(
-          `les substances du titre ${activite.titreId} ne sont pas chargées`
-        )
+        throw new Error(`les substances du titre ${activite.titreId} ne sont pas chargées`)
       }
 
       if (titre.substances.length > 0 && activite.contenu) {
-        const substanceLegalesWithFiscales = titre.substances
-          .filter(isNotNullNorUndefined)
-          .filter(
-            substanceId =>
-              substancesFiscalesBySubstanceLegale(substanceId).length
-          )
+        const substanceLegalesWithFiscales = titre.substances.filter(isNotNullNorUndefined).filter(substanceId => substancesFiscalesBySubstanceLegale(substanceId).length)
 
         if (substanceLegalesWithFiscales.length > 1) {
           // TODO 2022-07-25 on fait quoi ? On calcule quand même ?
-          console.error(
-            'BOOM, titre avec plusieurs substances légales possédant plusieurs substances fiscales ',
-            titre.id
-          )
+          console.error('BOOM, titre avec plusieurs substances légales possédant plusieurs substances fiscales ', titre.id)
         }
 
-        const substancesFiscales = substanceLegalesWithFiscales.flatMap(
-          substanceId => substancesFiscalesBySubstanceLegale(substanceId)
-        )
+        const substancesFiscales = substanceLegalesWithFiscales.flatMap(substanceId => substancesFiscalesBySubstanceLegale(substanceId))
 
         for (const substancesFiscale of substancesFiscales) {
-          const production = conversion(
-            substancesFiscale,
-            activite.contenu.substancesFiscales[substancesFiscale.id]
-          )
+          const production = conversion(substancesFiscale, activite.contenu.substancesFiscales[substancesFiscale.id])
 
           if (production > 0) {
             if (!titre.communes) {
-              throw new Error(
-                `les communes du titre ${titre.id} ne sont pas chargées`
-              )
+              throw new Error(`les communes du titre ${titre.id} ne sont pas chargées`)
             }
 
-            const surfaceTotale = titre.communes.reduce(
-              (value, commune) => value + (commune.surface ?? 0),
-              0
-            )
+            const surfaceTotale = titre.communes.reduce((value, commune) => value + (commune.surface ?? 0), 0)
 
             let communePrincipale: ICommune | null = null
             const communes: ICommune[] = titre.communes
             for (const commune of communes) {
               if (communePrincipale === null) {
                 communePrincipale = commune
-              } else if (
-                (communePrincipale?.surface ?? 0) < (commune?.surface ?? 0)
-              ) {
+              } else if ((communePrincipale?.surface ?? 0) < (commune?.surface ?? 0)) {
                 communePrincipale = commune
               }
             }
             if (communePrincipale === null) {
-              throw new Error(
-                `Impossible de trouver une commune principale pour le titre ${titre.id}`
-              )
+              throw new Error(`Impossible de trouver une commune principale pour le titre ${titre.id}`)
             }
             for (const commune of communes) {
               const articleId = `${titre.id}-${substancesFiscale.id}-${commune.id}`
@@ -190,66 +137,54 @@ export const bodyBuilder = (
                 surface_communale: { [anneePrecedente]: commune.surface ?? 0 },
                 surface_communale_proportionnee: { [anneePrecedente]: null },
                 [substanceFiscaleToInput(substancesFiscale)]: {
-                  [anneePrecedente]: production
+                  [anneePrecedente]: production,
                 },
                 [redevanceCommunale(substancesFiscale)]: {
-                  [annee]: null
+                  [annee]: null,
                 },
                 [redevanceDepartementale(substancesFiscale)]: {
-                  [annee]: null
-                }
+                  [annee]: null,
+                },
               }
 
               if (substancesFiscale.id === 'auru' && titreGuyannais) {
                 body.articles[articleId].taxe_guyane_brute = { [annee]: null }
                 body.articles[articleId].taxe_guyane_deduction = {
-                  [annee]: null
+                  [annee]: null,
                 }
                 body.articles[articleId].taxe_guyane = { [annee]: null }
               }
 
-              if (
-                !Object.prototype.hasOwnProperty.call(body.titres, titre.id)
-              ) {
-                const investissement = activiteTrimestresTitre.reduce(
-                  (investissement, activite) => {
-                    let newInvestissement = 0
-                    if (
-                      typeof activite?.contenu?.renseignements
-                        ?.environnement === 'number'
-                    ) {
-                      newInvestissement =
-                        activite?.contenu?.renseignements?.environnement
-                    }
-
-                    return investissement + newInvestissement
-                  },
-                  0
-                )
+              if (!Object.prototype.hasOwnProperty.call(body.titres, titre.id)) {
+                const investissement = activiteTrimestresTitre.reduce((investissement, activite) => {
+                  let newInvestissement = 0
+                  if (typeof activite?.contenu?.renseignements?.environnement === 'number') {
+                    newInvestissement = activite?.contenu?.renseignements?.environnement
+                  }
+
+                  return investissement + newInvestissement
+                }, 0)
                 body.titres[titre.id] = {
                   commune_principale_exploitation: {
-                    [anneePrecedente]: communePrincipale.id
+                    [anneePrecedente]: communePrincipale.id,
                   },
                   surface_totale: { [anneePrecedente]: surfaceTotale },
                   operateur: {
-                    [anneePrecedente]: entreprise.nom ?? ''
+                    [anneePrecedente]: entreprise.nom ?? '',
                   },
                   investissement: {
-                    [anneePrecedente]: investissement.toString(10)
+                    [anneePrecedente]: investissement.toString(10),
                   },
                   categorie: {
-                    [anneePrecedente]:
-                      entreprise.categorie === 'PME' ? 'pme' : 'autre'
+                    [anneePrecedente]: entreprise.categorie === 'PME' ? 'pme' : 'autre',
                   },
-                  articles: [articleId]
+                  articles: [articleId],
                 }
               } else {
                 body.titres[titre.id].articles.push(articleId)
               }
 
-              if (
-                !Object.prototype.hasOwnProperty.call(body.communes, commune.id)
-              ) {
+              if (!Object.prototype.hasOwnProperty.call(body.communes, commune.id)) {
                 body.communes[commune.id] = { articles: [articleId] }
               } else {
                 body.communes[commune.id].articles.push(articleId)
@@ -264,22 +199,14 @@ export const bodyBuilder = (
   return body
 }
 
-export const toFiscalite = (
-  result: Pick<OpenfiscaResponse, 'articles'>,
-  articleId: string,
-  annee: number
-): Fiscalite => {
+export const toFiscalite = (result: Pick<OpenfiscaResponse, 'articles'>, articleId: string, annee: number): Fiscalite => {
   const article = result.articles[articleId]
   const fiscalite: Fiscalite = {
     redevanceCommunale: 0,
-    redevanceDepartementale: 0
+    redevanceDepartementale: 0,
   }
-  const communes = Object.keys(article).filter(key =>
-    key.startsWith('redevance_communale')
-  )
-  const departements = Object.keys(article).filter(key =>
-    key.startsWith('redevance_departementale')
-  )
+  const communes = Object.keys(article).filter(key => key.startsWith('redevance_communale'))
+  const departements = Object.keys(article).filter(key => key.startsWith('redevance_departementale'))
   for (const commune of communes) {
     fiscalite.redevanceCommunale += article[commune]?.[annee] ?? 0
   }
@@ -293,29 +220,23 @@ export const toFiscalite = (
       guyane: {
         taxeAurifereBrute: article.taxe_guyane_brute?.[annee] ?? 0,
         taxeAurifere: article.taxe_guyane?.[annee] ?? 0,
-        totalInvestissementsDeduits: article.taxe_guyane_deduction?.[annee] ?? 0
-      }
+        totalInvestissementsDeduits: article.taxe_guyane_deduction?.[annee] ?? 0,
+      },
     }
   }
 
   return fiscalite
 }
 
-type Reduced =
-  | { guyane: true; fiscalite: FiscaliteGuyane }
-  | { guyane: false; fiscalite: FiscaliteFrance }
+type Reduced = { guyane: true; fiscalite: FiscaliteGuyane } | { guyane: false; fiscalite: FiscaliteFrance }
 // VisibleForTesting
-export const responseExtractor = (
-  result: Pick<OpenfiscaResponse, 'articles'>,
-  annee: number
-): Fiscalite => {
+export const responseExtractor = (result: Pick<OpenfiscaResponse, 'articles'>, annee: number): Fiscalite => {
   const redevances: Reduced = Object.keys(result.articles)
     .map(articleId => toFiscalite(result, articleId, annee))
     .reduce<Reduced>(
       (acc, fiscalite) => {
         acc.fiscalite.redevanceCommunale += fiscalite.redevanceCommunale
-        acc.fiscalite.redevanceDepartementale +=
-          fiscalite.redevanceDepartementale
+        acc.fiscalite.redevanceDepartementale += fiscalite.redevanceDepartementale
 
         if (!acc.guyane && isFiscaliteGuyane(fiscalite)) {
           acc = {
@@ -325,16 +246,14 @@ export const responseExtractor = (
               guyane: {
                 taxeAurifereBrute: 0,
                 taxeAurifere: 0,
-                totalInvestissementsDeduits: 0
-              }
-            }
+                totalInvestissementsDeduits: 0,
+              },
+            },
           }
         }
         if (acc.guyane && isFiscaliteGuyane(fiscalite)) {
-          acc.fiscalite.guyane.taxeAurifereBrute +=
-            fiscalite.guyane.taxeAurifereBrute
-          acc.fiscalite.guyane.totalInvestissementsDeduits +=
-            fiscalite.guyane.totalInvestissementsDeduits
+          acc.fiscalite.guyane.taxeAurifereBrute += fiscalite.guyane.taxeAurifereBrute
+          acc.fiscalite.guyane.totalInvestissementsDeduits += fiscalite.guyane.totalInvestissementsDeduits
           acc.fiscalite.guyane.taxeAurifere += fiscalite.guyane.taxeAurifere
         }
 
@@ -342,17 +261,14 @@ export const responseExtractor = (
       },
       {
         guyane: false,
-        fiscalite: { redevanceCommunale: 0, redevanceDepartementale: 0 }
+        fiscalite: { redevanceCommunale: 0, redevanceDepartementale: 0 },
       }
     )
 
   return redevances.fiscalite
 }
 
-export const fiscalite = async (
-  req: express.Request<{ entrepriseId?: EntrepriseId; annee?: CaminoAnnee }>,
-  res: CustomResponse<Fiscalite>
-) => {
+export const fiscalite = async (req: express.Request<{ entrepriseId?: EntrepriseId; annee?: CaminoAnnee }>, res: CustomResponse<Fiscalite>) => {
   const user = req.user as User
   if (!user) {
     res.sendStatus(constants.HTTP_STATUS_FORBIDDEN)
@@ -367,11 +283,7 @@ export const fiscalite = async (
       console.warn(`l'année ${caminoAnnee} n'est pas correcte`)
       res.sendStatus(constants.HTTP_STATUS_BAD_REQUEST)
     } else {
-      const entreprise = await entrepriseGet(
-        entrepriseId,
-        { fields: { id: {} } },
-        user
-      )
+      const entreprise = await entrepriseGet(entrepriseId, { fields: { id: {} } }, user)
       if (!entreprise) {
         throw new Error(`l’entreprise ${entrepriseId} est inconnue`)
       }
@@ -386,17 +298,15 @@ export const fiscalite = async (
             titulaires: { id: {} },
             amodiataires: { id: {} },
             substancesEtape: { id: {} },
-            communes: { id: {} }
-          }
+            communes: { id: {} },
+          },
         },
         user
       )
 
       // TODO 2022-09-26 feature https://trello.com/c/VnlFB6Z1/294-featfiscalit%C3%A9-masquer-la-section-fiscalit%C3%A9-de-la-fiche-entreprise-pour-les-autres-domaines-que-m
       if (!fiscaliteVisible(user, entrepriseId, titres)) {
-        console.warn(
-          `la fiscalité n'est pas visible pour l'utilisateur ${user} et l'entreprise ${entrepriseId}`
-        )
+        console.warn(`la fiscalité n'est pas visible pour l'utilisateur ${user} et l'entreprise ${entrepriseId}`)
         res.sendStatus(constants.HTTP_STATUS_FORBIDDEN)
       } else {
         const activites = await titresActivitesGet(
@@ -406,7 +316,7 @@ export const fiscalite = async (
             // TODO 2022-07-25 Laure, que les déposées ? Pas les « en construction » ?
             statutsIds: ['dep'],
             annees: [anneePrecedente],
-            titresIds: titres.map(({ id }) => id)
+            titresIds: titres.map(({ id }) => id),
           },
           { fields: { id: {} } },
           user
@@ -416,19 +326,13 @@ export const fiscalite = async (
             typesIds: ['grp'],
             statutsIds: ['dep'],
             annees: [anneePrecedente],
-            titresIds: titres.map(({ id }) => id)
+            titresIds: titres.map(({ id }) => id),
           },
           { fields: { id: {} } },
           user
         )
 
-        const body = bodyBuilder(
-          activites,
-          activitesTrimestrielles,
-          titres,
-          annee,
-          [entreprise]
-        )
+        const body = bodyBuilder(activites, activitesTrimestrielles, titres, annee, [entreprise])
         console.info('body', JSON.stringify(body))
         if (Object.keys(body.articles).length > 0) {
           const result = await apiOpenfiscaCalculate(body)
@@ -440,7 +344,7 @@ export const fiscalite = async (
         } else {
           res.json({
             redevanceCommunale: 0,
-            redevanceDepartementale: 0
+            redevanceDepartementale: 0,
           })
         }
       }
diff --git a/packages/api/src/api/rest/fichiers.ts b/packages/api/src/api/rest/fichiers.ts
index 9927d082c..ece74290f 100644
--- a/packages/api/src/api/rest/fichiers.ts
+++ b/packages/api/src/api/rest/fichiers.ts
@@ -1,10 +1,4 @@
-import {
-  IContenuElement,
-  IContenuValeur,
-  IDocument,
-  IDocumentRepertoire,
-  IFormat
-} from '../../types.js'
+import { IContenuElement, IContenuValeur, IDocument, IDocumentRepertoire, IFormat } from '../../types.js'
 
 import { documentGet } from '../../database/queries/documents.js'
 import { titreEtapeGet } from '../../database/queries/titres-etapes.js'
@@ -15,10 +9,7 @@ import JSZip from 'jszip'
 import { statSync, readFileSync } from 'fs'
 import { User } from 'camino-common/src/roles'
 
-export const etapeTelecharger = async (
-  { params: { etapeId } }: { params: { etapeId?: string } },
-  user: User
-) => {
+export const etapeTelecharger = async ({ params: { etapeId } }: { params: { etapeId?: string } }, user: User) => {
   if (!etapeId) {
     throw new Error("id d'étape absent")
   }
@@ -27,12 +18,12 @@ export const etapeTelecharger = async (
     {
       fields: {
         documents: {
-          id: {}
+          id: {},
         },
         justificatifs: {
-          id: {}
-        }
-      }
+          id: {},
+        },
+      },
     },
     user
   )
@@ -41,10 +32,7 @@ export const etapeTelecharger = async (
 
   const documents = titreEtape!.documents
   const justificatifs = titreEtape!.justificatifs
-  if (
-    (!documents || !documents.length) &&
-    (!justificatifs || !justificatifs.length)
-  ) {
+  if ((!documents || !documents.length) && (!justificatifs || !justificatifs.length)) {
     throw new Error("aucun document n'a été trouvé pour cette demande")
   }
 
@@ -71,7 +59,7 @@ export const etapeTelecharger = async (
     return {
       nom,
       format: 'zip' as IFormat,
-      buffer: Buffer.from(base64Data, 'base64')
+      buffer: Buffer.from(base64Data, 'base64'),
     }
   } catch (e) {
     console.error(e)
@@ -80,10 +68,7 @@ export const etapeTelecharger = async (
   }
 }
 
-export const fichier = async (
-  { params: { documentId } }: { params: { documentId?: string } },
-  user: User
-) => {
+export const fichier = async ({ params: { documentId } }: { params: { documentId?: string } }, user: User) => {
   if (!documentId) {
     throw new Error('id du document absent')
   }
@@ -95,8 +80,8 @@ export const fichier = async (
         type: { id: {} },
         etape: { id: {} },
         activite: { id: {} },
-        entreprise: { id: {} }
-      }
+        entreprise: { id: {} },
+      },
     },
     user
   )
@@ -119,38 +104,24 @@ export const fichier = async (
     dossier = document.entreprise!.id
   }
 
-  const nom = `${document.date}-${dossier ? dossier + '-' : ''}${
-    document.typeId
-  }.${format}`
+  const nom = `${document.date}-${dossier ? dossier + '-' : ''}${document.typeId}.${format}`
 
-  const filePath = `${repertoire}/${dossier ? dossier + '/' : ''}${
-    document.id
-  }.${document.fichierTypeId}`
+  const filePath = `${repertoire}/${dossier ? dossier + '/' : ''}${document.id}.${document.fichierTypeId}`
 
   return {
     nom,
     format,
-    filePath
+    filePath,
   }
 }
 
-const etapeIdPathGet = (
-  etapeId: string,
-  fichierNom: string,
-  contenu: IContenuValeur,
-  heritageContenu: { actif: boolean; etapeId?: string | null }
-): null | string => {
+const etapeIdPathGet = (etapeId: string, fichierNom: string, contenu: IContenuValeur, heritageContenu: { actif: boolean; etapeId?: string | null }): null | string => {
   if (Array.isArray(contenu)) {
     const contenuArray = contenu as IContenuElement[]
     for (let i = 0; i < contenuArray.length; i++) {
       const contenuElement = contenuArray[i]
       for (const contenuElementAttr of Object.keys(contenuElement)) {
-        const etapeIdFound = etapeIdPathGet(
-          etapeId,
-          fichierNom,
-          contenuElement[contenuElementAttr],
-          heritageContenu
-        )
+        const etapeIdFound = etapeIdPathGet(etapeId, fichierNom, contenuElement[contenuElementAttr], heritageContenu)
         if (etapeIdFound) {
           return etapeIdFound
         }
@@ -167,12 +138,7 @@ const etapeIdPathGet = (
   return null
 }
 
-export const etapeFichier = async (
-  {
-    params: { etapeId, fichierNom }
-  }: { params: { etapeId?: string; fichierNom?: string } },
-  user: User
-) => {
+export const etapeFichier = async ({ params: { etapeId, fichierNom } }: { params: { etapeId?: string; fichierNom?: string } }, user: User) => {
   if (!etapeId) {
     throw new Error('id de l’étape absent')
   }
@@ -192,12 +158,7 @@ export const etapeFichier = async (
     // recherche dans quel élément de quelle section est stocké ce fichier, pour savoir si l’héritage est activé
     for (const sectionId of Object.keys(etape.contenu)) {
       for (const elementId of Object.keys(etape.contenu[sectionId])) {
-        etapeIdPath = etapeIdPathGet(
-          etape.id,
-          fichierNom,
-          etape.contenu[sectionId][elementId],
-          etape.heritageContenu![sectionId][elementId]
-        )
+        etapeIdPath = etapeIdPathGet(etape.id, fichierNom, etape.contenu[sectionId][elementId], etape.heritageContenu![sectionId][elementId])
       }
     }
   }
@@ -216,6 +177,6 @@ export const etapeFichier = async (
   return {
     nom: fichierNom.slice(5),
     format: 'pdf' as IFormat,
-    filePath
+    filePath,
   }
 }
diff --git a/packages/api/src/api/rest/format/entreprises.ts b/packages/api/src/api/rest/format/entreprises.ts
index 0b966e08d..602a2928c 100644
--- a/packages/api/src/api/rest/format/entreprises.ts
+++ b/packages/api/src/api/rest/format/entreprises.ts
@@ -4,7 +4,7 @@ const entreprisesFormatTable = (entreprises: IEntreprise[]) =>
   entreprises.map(entreprise => {
     const entrepriseNew = {
       nom: entreprise.nom,
-      siren: entreprise.legalSiren
+      siren: entreprise.legalSiren,
     }
 
     return entrepriseNew
diff --git a/packages/api/src/api/rest/format/titres-activites.ts b/packages/api/src/api/rest/format/titres-activites.ts
index 13b13c229..ad81f1df8 100644
--- a/packages/api/src/api/rest/format/titres-activites.ts
+++ b/packages/api/src/api/rest/format/titres-activites.ts
@@ -1,58 +1,37 @@
-import {
-  IContenu,
-  IContenuValeur,
-  Index,
-  ISection,
-  ITitreActivite
-} from '../../../types.js'
-import {
-  isSubstanceFiscale,
-  SubstancesFiscale
-} from 'camino-common/src/static/substancesFiscales.js'
+import { IContenu, IContenuValeur, Index, ISection, ITitreActivite } from '../../../types.js'
+import { isSubstanceFiscale, SubstancesFiscale } from 'camino-common/src/static/substancesFiscales.js'
 import { UniteId, Unites } from 'camino-common/src/static/unites.js'
 import { getPeriode } from 'camino-common/src/static/frequence.js'
 import { ActivitesStatuts } from 'camino-common/src/static/activitesStatuts.js'
 
 const titreActiviteContenuFormat = (contenu: IContenu, sections: ISection[]) =>
   sections.reduce((resSections: Index<IContenuValeur>, section) => {
-    const r = section.elements!.reduce(
-      (resElements: Index<IContenuValeur>, element) => {
-        let key = `${section.id}_${element.id}`
+    const r = section.elements!.reduce((resElements: Index<IContenuValeur>, element) => {
+      let key = `${section.id}_${element.id}`
 
-        if (section.id === 'substancesFiscales') {
-          if (isSubstanceFiscale(element.id)) {
-            const uniteId: UniteId = SubstancesFiscale[element.id].uniteId
-            key += ` (${Unites[uniteId].nom})`
-          }
+      if (section.id === 'substancesFiscales') {
+        if (isSubstanceFiscale(element.id)) {
+          const uniteId: UniteId = SubstancesFiscale[element.id].uniteId
+          key += ` (${Unites[uniteId].nom})`
         }
-        const value = contenu[section.id]
-          ? contenu[section.id][element.id]
-          : undefined
+      }
+      const value = contenu[section.id] ? contenu[section.id][element.id] : undefined
 
-        if (value === undefined) {
-          resElements[key] = ['number', 'integer'].includes(element.type)
-            ? 0
-            : ''
-        } else {
-          resElements[key] = Array.isArray(value)
-            ? (value as string[]).join(';')
-            : value
-        }
+      if (value === undefined) {
+        resElements[key] = ['number', 'integer'].includes(element.type) ? 0 : ''
+      } else {
+        resElements[key] = Array.isArray(value) ? (value as string[]).join(';') : value
+      }
 
-        return resElements
-      },
-      {}
-    )
+      return resElements
+    }, {})
 
     return Object.assign(resSections, r)
   }, {})
 
 export const titresActivitesFormatTable = (activites: ITitreActivite[]) =>
   activites.map(activite => {
-    const contenu =
-      activite.contenu && activite.sections?.length
-        ? titreActiviteContenuFormat(activite.contenu, activite.sections)
-        : {}
+    const contenu = activite.contenu && activite.sections?.length ? titreActiviteContenuFormat(activite.contenu, activite.sections) : {}
 
     return {
       id: activite.slug,
@@ -64,6 +43,6 @@ export const titresActivitesFormatTable = (activites: ITitreActivite[]) =>
       annee: activite.annee,
       periode: getPeriode(activite.type?.frequenceId, activite.periodeId),
       periode_id: activite.periodeId,
-      ...contenu
+      ...contenu,
     }
   })
diff --git a/packages/api/src/api/rest/format/titres-demarches.ts b/packages/api/src/api/rest/format/titres-demarches.ts
index 94e418bc7..d5fc9241a 100644
--- a/packages/api/src/api/rest/format/titres-demarches.ts
+++ b/packages/api/src/api/rest/format/titres-demarches.ts
@@ -6,10 +6,7 @@ import { DemarchesStatuts } from 'camino-common/src/static/demarchesStatuts.js'
 import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
 import { TitresStatuts } from 'camino-common/src/static/titresStatuts.js'
 import { ReferencesTypes } from 'camino-common/src/static/referencesTypes.js'
-import {
-  getDomaineId,
-  getTitreTypeType
-} from 'camino-common/src/static/titresTypes.js'
+import { getDomaineId, getTitreTypeType } from 'camino-common/src/static/titresTypes.js'
 import { TitresTypesTypes } from 'camino-common/src/static/titresTypesTypes.js'
 import { Domaines } from 'camino-common/src/static/domaines.js'
 
@@ -48,11 +45,7 @@ export const titresDemarchesFormatTable = (titresDemarches: ITitreDemarche[]) =>
 
     const etapesTypesStatuts = etapesDatesStatutsBuild(titreDemarche)
 
-    const etapeWithPoints = titreDemarche.etapes
-      ? titreEtapesSortDescByOrdre(titreDemarche.etapes).find(
-          etape => etape.points?.length
-        )
-      : undefined
+    const etapeWithPoints = titreDemarche.etapes ? titreEtapesSortDescByOrdre(titreDemarche.etapes).find(etape => etape.points?.length) : undefined
 
     const titreDemarcheNew = {
       titre_id: titre.slug,
@@ -60,36 +53,20 @@ export const titresDemarchesFormatTable = (titresDemarches: ITitreDemarche[]) =>
 
       titre_domaine: Domaines[getDomaineId(titre.typeId)].nom,
       titre_type: TitresTypesTypes[getTitreTypeType(titre.typeId)].nom,
-      titre_statut: isNotNullNorUndefined(titre.titreStatutId)
-        ? TitresStatuts[titre.titreStatutId].nom
-        : '',
+      titre_statut: isNotNullNorUndefined(titre.titreStatutId) ? TitresStatuts[titre.titreStatutId].nom : '',
       type: titreDemarche.type!.nom,
       statut: DemarchesStatuts[titreDemarche.statutId!].nom,
       description: titreDemarche.description,
-      titre_references: titre.references
-        ?.map(r => `${ReferencesTypes[r.referenceTypeId].nom} : ${r.nom}`)
-        .join(';'),
+      titre_references: titre.references?.map(r => `${ReferencesTypes[r.referenceTypeId].nom} : ${r.nom}`).join(';'),
       titulaires_noms: titre.titulaires!.map(e => e.nom).join(';'),
-      titulaires_adresses: titre
-        .titulaires!.map(e => `${e.adresse} ${e.codePostal} ${e.commune}`)
-        .join(';'),
-      titulaires_legal: titre
-        .titulaires!.map(e => e.legalEtranger || e.legalSiren)
-        .join(';'),
+      titulaires_adresses: titre.titulaires!.map(e => `${e.adresse} ${e.codePostal} ${e.commune}`).join(';'),
+      titulaires_legal: titre.titulaires!.map(e => e.legalEtranger || e.legalSiren).join(';'),
       amodiataires_noms: titre.amodiataires!.map(e => e.nom).join(';'),
-      amodiataires_adresses: titre
-        .amodiataires!.map(e => `${e.adresse} ${e.codePostal} ${e.commune}`)
-        .join(';'),
-      amodiataires_legal: titre
-        .amodiataires!.map(e => e.legalEtranger || e.legalSiren)
-        .join(';'),
+      amodiataires_adresses: titre.amodiataires!.map(e => `${e.adresse} ${e.codePostal} ${e.commune}`).join(';'),
+      amodiataires_legal: titre.amodiataires!.map(e => e.legalEtranger || e.legalSiren).join(';'),
       ...etapesTypesStatuts,
-      forets: etapeWithPoints
-        ? etapeWithPoints.forets?.map(f => f.nom).join(';')
-        : '',
-      communes: etapeWithPoints
-        ? etapeWithPoints.communes?.map(f => f.nom).join(';')
-        : ''
+      forets: etapeWithPoints ? etapeWithPoints.forets?.map(f => f.nom).join(';') : '',
+      communes: etapeWithPoints ? etapeWithPoints.communes?.map(f => f.nom).join(';') : '',
     }
 
     return titreDemarcheNew
diff --git a/packages/api/src/api/rest/format/titres.test.ts b/packages/api/src/api/rest/format/titres.test.ts
index 16cd858ca..b14c611ef 100644
--- a/packages/api/src/api/rest/format/titres.test.ts
+++ b/packages/api/src/api/rest/format/titres.test.ts
@@ -9,14 +9,14 @@ describe('titreTerritoiresFind', () => {
         {
           nom: 'Montval-sur-loir',
           surface: 105020,
-          departementId: DEPARTEMENT_IDS.Sarthe
+          departementId: DEPARTEMENT_IDS.Sarthe,
         },
 
         {
           nom: 'Tours',
           surface: 99999,
-          departementId: DEPARTEMENT_IDS['Indre-et-Loire']
-        }
+          departementId: DEPARTEMENT_IDS['Indre-et-Loire'],
+        },
       ])
     ).toMatchInlineSnapshot(`
       {
@@ -37,8 +37,7 @@ describe('titreTerritoiresFind', () => {
     `)
   })
   test('titreTerritoiresFind uniquement des secteurs maritimes', () => {
-    expect(titreTerritoiresFind(null, ['Baie de Seine']))
-      .toMatchInlineSnapshot(`
+    expect(titreTerritoiresFind(null, ['Baie de Seine'])).toMatchInlineSnapshot(`
         {
           "communes": [],
           "departements": [
@@ -59,8 +58,8 @@ describe('titreTerritoiresFind', () => {
           {
             nom: 'Tours',
             surface: 99999,
-            departementId: DEPARTEMENT_IDS['Indre-et-Loire']
-          }
+            departementId: DEPARTEMENT_IDS['Indre-et-Loire'],
+          },
         ],
 
         ['Baie de Seine']
diff --git a/packages/api/src/api/rest/format/titres.ts b/packages/api/src/api/rest/format/titres.ts
index d282cbc43..bde90ef6e 100644
--- a/packages/api/src/api/rest/format/titres.ts
+++ b/packages/api/src/api/rest/format/titres.ts
@@ -2,31 +2,18 @@ import { ITitre, Index, ICommune } from '../../../types.js'
 import { Departements } from 'camino-common/src/static/departement.js'
 import { Regions } from 'camino-common/src/static/region.js'
 import { SubstancesLegale } from 'camino-common/src/static/substancesLegales.js'
-import {
-  isNotNullNorUndefined,
-  onlyUnique
-} from 'camino-common/src/typescript-tools.js'
+import { isNotNullNorUndefined, onlyUnique } from 'camino-common/src/typescript-tools.js'
 import { TitresStatuts } from 'camino-common/src/static/titresStatuts.js'
 import { ReferencesTypes } from 'camino-common/src/static/referencesTypes.js'
-import {
-  getDomaineId,
-  getTitreTypeType
-} from 'camino-common/src/static/titresTypes.js'
+import { getDomaineId, getTitreTypeType } from 'camino-common/src/static/titresTypes.js'
 import { TitresTypesTypes } from 'camino-common/src/static/titresTypesTypes.js'
 import { Domaines } from 'camino-common/src/static/domaines.js'
-import {
-  getDepartementsBySecteurs,
-  getFacadesComputed,
-  SecteursMaritimes
-} from 'camino-common/src/static/facades.js'
+import { getDepartementsBySecteurs, getFacadesComputed, SecteursMaritimes } from 'camino-common/src/static/facades.js'
 import { Administrations } from 'camino-common/src/static/administrations.js'
 import { valeurFind } from 'camino-common/src/titres.js'
 import { titreSectionsGet } from '../titre-contenu.js'
 
-const getFacadesMaritimeCell = (
-  secteursMaritime: SecteursMaritimes[],
-  separator: string
-): string =>
+const getFacadesMaritimeCell = (secteursMaritime: SecteursMaritimes[], separator: string): string =>
   getFacadesComputed(secteursMaritime)
     .map(({ facade, secteurs }) => `${facade} (${secteurs.join(', ')})`)
     .join(separator)
@@ -35,14 +22,11 @@ const titreContenuTableFormat = (titre: ITitre): Record<string, string> => {
   const sections = titreSectionsGet(titre)
 
   return sections.reduce((result, section) => {
-    const subResult = section.elements.reduce<Record<string, string>>(
-      (acc, element) => {
-        acc[element.nom ?? element.id] = valeurFind(element)
+    const subResult = section.elements.reduce<Record<string, string>>((acc, element) => {
+      acc[element.nom ?? element.id] = valeurFind(element)
 
-        return acc
-      },
-      {}
-    )
+      return acc
+    }, {})
 
     return { ...result, ...subResult }
   }, {})
@@ -53,16 +37,11 @@ export const titresTableFormat = (titres: ITitre[]) =>
     if (!titre.secteursMaritime) {
       throw new Error('les secteurs maritimes ne sont pas chargés')
     }
-    const { communes, departements, regions } = titreTerritoiresFind(
-      titre.communes,
-      titre.secteursMaritime
-    )
+    const { communes, departements, regions } = titreTerritoiresFind(titre.communes, titre.secteursMaritime)
 
     const titreReferences = titre.references
       ? titre.references.reduce((titreReferences: Index<string>, reference) => {
-          titreReferences[
-            `reference_${ReferencesTypes[reference.referenceTypeId].nom}`
-          ] = reference.nom
+          titreReferences[`reference_${ReferencesTypes[reference.referenceTypeId].nom}`] = reference.nom
 
           return titreReferences
         }, {})
@@ -78,47 +57,26 @@ export const titresTableFormat = (titres: ITitre[]) =>
       date_debut: titre.dateDebut,
       date_fin: titre.dateFin,
       date_demande: titre.dateDemande,
-      statut: isNotNullNorUndefined(titre.titreStatutId)
-        ? TitresStatuts[titre.titreStatutId].nom
-        : '',
-      substances: titre.substances
-        ?.map(substanceId => SubstancesLegale[substanceId].nom)
-        ?.join(separator),
+      statut: isNotNullNorUndefined(titre.titreStatutId) ? TitresStatuts[titre.titreStatutId].nom : '',
+      substances: titre.substances?.map(substanceId => SubstancesLegale[substanceId].nom)?.join(separator),
       'surface renseignee km2': titre.surface,
       'communes (surface calculee km2)': communes.join(separator),
       forets: titre.forets?.map(f => f.nom).join(separator),
-      facades_maritimes: getFacadesMaritimeCell(
-        titre.secteursMaritime,
-        separator
-      ),
+      facades_maritimes: getFacadesMaritimeCell(titre.secteursMaritime, separator),
       departements: departements.join(separator),
       regions: regions.join(separator),
-      administrations_noms: titre
-        .administrations!.map(id => Administrations[id].nom)
-        .join(separator),
+      administrations_noms: titre.administrations!.map(id => Administrations[id].nom).join(separator),
       titulaires_noms: titre.titulaires!.map(e => e.nom).join(separator),
-      titulaires_adresses: titre
-        .titulaires!.map(e => `${e.adresse} ${e.codePostal} ${e.commune}`)
-        .join(separator),
-      titulaires_legal: titre
-        .titulaires!.map(e => e.legalEtranger || e.legalSiren)
-        .join(separator),
-      titulaires_categorie: titre
-        .titulaires!.map(e => e.categorie)
-        .join(separator),
+      titulaires_adresses: titre.titulaires!.map(e => `${e.adresse} ${e.codePostal} ${e.commune}`).join(separator),
+      titulaires_legal: titre.titulaires!.map(e => e.legalEtranger || e.legalSiren).join(separator),
+      titulaires_categorie: titre.titulaires!.map(e => e.categorie).join(separator),
       amodiataires_noms: titre.amodiataires!.map(e => e.nom).join(separator),
-      amodiataires_adresses: titre
-        .amodiataires!.map(e => `${e.adresse} ${e.codePostal} ${e.commune}`)
-        .join(separator),
-      amodiataires_legal: titre
-        .amodiataires!.map(e => e.legalEtranger || e.legalSiren)
-        .join(separator),
-      amodiataires_categorie: titre
-        .amodiataires!.map(e => e.categorie)
-        .join(separator),
+      amodiataires_adresses: titre.amodiataires!.map(e => `${e.adresse} ${e.codePostal} ${e.commune}`).join(separator),
+      amodiataires_legal: titre.amodiataires!.map(e => e.legalEtranger || e.legalSiren).join(separator),
+      amodiataires_categorie: titre.amodiataires!.map(e => e.categorie).join(separator),
       geojson: JSON.stringify(titre.geojsonMultiPolygon),
       ...titreReferences,
-      ...titreContenuTableFormat(titre)
+      ...titreContenuTableFormat(titre),
     }
 
     return titreNew
@@ -129,10 +87,7 @@ const titreGeojsonPropertiesFormat = (titre: ITitre) => {
     throw new Error('les secteurs maritimes ne sont pas chargés')
   }
 
-  const { communes, departements, regions } = titreTerritoiresFind(
-    titre.communes,
-    titre.secteursMaritime
-  )
+  const { communes, departements, regions } = titreTerritoiresFind(titre.communes, titre.secteursMaritime)
 
   const separator = ', '
 
@@ -144,56 +99,28 @@ const titreGeojsonPropertiesFormat = (titre: ITitre) => {
     date_debut: titre.dateDebut,
     date_fin: titre.dateFin,
     date_demande: titre.dateDemande,
-    statut: isNotNullNorUndefined(titre.titreStatutId)
-      ? TitresStatuts[titre.titreStatutId].nom
-      : '',
-    substances:
-      titre.substances
-        ?.map(substanceId => SubstancesLegale[substanceId].nom)
-        ?.join(separator) || null,
+    statut: isNotNullNorUndefined(titre.titreStatutId) ? TitresStatuts[titre.titreStatutId].nom : '',
+    substances: titre.substances?.map(substanceId => SubstancesLegale[substanceId].nom)?.join(separator) || null,
     'surface renseignee km2': titre.surface,
     'communes (surface calculee km2)': communes.join(separator),
     forets: titre.forets?.map(f => f.nom).join(separator),
-    facades_maritimes: getFacadesMaritimeCell(
-      titre.secteursMaritime,
-      separator
-    ),
+    facades_maritimes: getFacadesMaritimeCell(titre.secteursMaritime, separator),
     departements: departements.join(separator),
     regions: regions.join(separator),
-    administrations_noms: titre.administrations!.map(
-      id => Administrations[id].nom
-    ),
+    administrations_noms: titre.administrations!.map(id => Administrations[id].nom),
     titulaires_noms: titre.titulaires?.map(e => e.nom).join(separator) || null,
-    titulaires_legal:
-      titre.titulaires
-        ?.map(e => e.legalEtranger || e.legalSiren)
-        .join(separator) || null,
-    amodiataires_noms:
-      titre.amodiataires?.map(e => e.nom).join(separator) || null,
-    amodiataires_legal:
-      titre.amodiataires
-        ?.map(e => e.legalEtranger || e.legalSiren)
-        .join(separator) || null,
-    references:
-      titre.references &&
-      titre.references
-        .map(
-          reference =>
-            `${ReferencesTypes[reference.referenceTypeId].nom}: ${
-              reference.nom
-            }`
-        )
-        .join(separator),
-    ...titreContenuTableFormat(titre)
+    titulaires_legal: titre.titulaires?.map(e => e.legalEtranger || e.legalSiren).join(separator) || null,
+    amodiataires_noms: titre.amodiataires?.map(e => e.nom).join(separator) || null,
+    amodiataires_legal: titre.amodiataires?.map(e => e.legalEtranger || e.legalSiren).join(separator) || null,
+    references: titre.references && titre.references.map(reference => `${ReferencesTypes[reference.referenceTypeId].nom}: ${reference.nom}`).join(separator),
+    ...titreContenuTableFormat(titre),
   }
 }
 
 export const titreGeojsonFormat = (titre: ITitre) => ({
   type: 'FeatureCollection',
   properties: titreGeojsonPropertiesFormat(titre),
-  features: titre.geojsonPoints
-    ? [titre.geojsonMultiPolygon].concat(titre.geojsonPoints.features)
-    : titre.geojsonMultiPolygon
+  features: titre.geojsonPoints ? [titre.geojsonMultiPolygon].concat(titre.geojsonPoints.features) : titre.geojsonMultiPolygon,
 })
 
 export const titresGeojsonFormat = (titres: ITitre[]) => ({
@@ -201,16 +128,13 @@ export const titresGeojsonFormat = (titres: ITitre[]) => ({
   features: titres.map(titre => ({
     type: 'Feature',
     geometry: titre.geojsonMultiPolygon?.geometry,
-    properties: titreGeojsonPropertiesFormat(titre)
-  }))
+    properties: titreGeojsonPropertiesFormat(titre),
+  })),
 })
 
 // FOR TESTING
 export const titreTerritoiresFind = (
-  communes?:
-    | Pick<ICommune, 'nom' | 'departementId' | 'surface'>[]
-    | null
-    | undefined,
+  communes?: Pick<ICommune, 'nom' | 'departementId' | 'surface'>[] | null | undefined,
   secteursMaritime?: SecteursMaritimes[] | null | undefined
 ): { communes: string[]; departements: string[]; regions: string[] } => {
   const result: {
@@ -233,9 +157,7 @@ export const titreTerritoiresFind = (
       }
     })
   ;(communes ?? []).forEach(commune => {
-    result.communes.push(
-      `${commune.nom} (${Math.round(commune.surface! / 100) / 10000})`
-    )
+    result.communes.push(`${commune.nom} (${Math.round(commune.surface! / 100) / 10000})`)
 
     const departement = Departements[commune.departementId!]
 
diff --git a/packages/api/src/api/rest/format/utilisateurs.ts b/packages/api/src/api/rest/format/utilisateurs.ts
index 90c9d66d9..e24691fc4 100644
--- a/packages/api/src/api/rest/format/utilisateurs.ts
+++ b/packages/api/src/api/rest/format/utilisateurs.ts
@@ -5,17 +5,13 @@ import { Administrations } from 'camino-common/src/static/administrations.js'
 export const utilisateursFormatTable = (utilisateurs: IUtilisateur[]) =>
   utilisateurs.map(utilisateur => {
     const user = formatUser(utilisateur)
-    const lien = isAdministration(user)
-      ? [Administrations[user.administrationId].nom]
-      : utilisateur.entreprises?.length
-      ? utilisateur.entreprises.map(a => a.nom)
-      : []
+    const lien = isAdministration(user) ? [Administrations[user.administrationId].nom] : utilisateur.entreprises?.length ? utilisateur.entreprises.map(a => a.nom) : []
 
     return {
       nom: utilisateur.nom,
       prenom: utilisateur.prenom,
       email: utilisateur.email,
       role: utilisateur.role,
-      lien: lien.join(',')
+      lien: lien.join(','),
     }
   })
diff --git a/packages/api/src/api/rest/index.ts b/packages/api/src/api/rest/index.ts
index fb4cda94b..80430b6ae 100644
--- a/packages/api/src/api/rest/index.ts
+++ b/packages/api/src/api/rest/index.ts
@@ -1,10 +1,4 @@
-import {
-  IFormat,
-  ITitreColonneId,
-  ITitreDemarcheColonneId,
-  IUtilisateursColonneId,
-  ITitreActiviteColonneId
-} from '../../types.js'
+import { IFormat, ITitreColonneId, ITitreDemarcheColonneId, IUtilisateursColonneId, ITitreActiviteColonneId } from '../../types.js'
 
 import { titreGet, titresGet } from '../../database/queries/titres.js'
 import { titresDemarchesGet } from '../../database/queries/titres-demarches.js'
@@ -20,11 +14,7 @@ import { entrepriseFormat } from '../_format/entreprises.js'
 import { tableConvert } from './_convert.js'
 import { fileNameCreate } from '../../tools/file-name-create.js'
 
-import {
-  titresGeojsonFormat,
-  titreGeojsonFormat,
-  titresTableFormat
-} from './format/titres.js'
+import { titresGeojsonFormat, titreGeojsonFormat, titresTableFormat } from './format/titres.js'
 import { titresDemarchesFormatTable } from './format/titres-demarches.js'
 import { titresActivitesFormatTable } from './format/titres-activites.js'
 import { entreprisesFormatTable } from './format/entreprises.js'
@@ -56,9 +46,9 @@ const titreFields = {
   demarches: {
     type: { etapesTypes: { id: {} } },
     etapes: {
-      type: { id: {} }
-    }
-  }
+      type: { id: {} },
+    },
+  },
 }
 
 interface ITitreInput {
@@ -66,10 +56,7 @@ interface ITitreInput {
   params: { id?: string | null }
 }
 
-export const titre = async (
-  { query: { format = 'json' }, params: { id } }: ITitreInput,
-  user: User
-) => {
+export const titre = async ({ query: { format = 'json' }, params: { id } }: ITitreInput, user: User) => {
   formatCheck(['geojson', 'json'], format)
 
   const titre = await titreGet(id!, { fields: titreFields }, user)
@@ -92,7 +79,7 @@ export const titre = async (
   return {
     nom: fileNameCreate(titre.id, format),
     format,
-    contenu
+    contenu,
   }
 }
 
@@ -133,8 +120,8 @@ export const titres = async (
       departements,
       regions,
       facadesMaritimes,
-      perimetre
-    }
+      perimetre,
+    },
   }: { query: ITitresQueryInput },
   user: User
 ) => {
@@ -157,7 +144,7 @@ export const titres = async (
       regions: regions?.split(',').filter(isRegionId),
       facadesMaritimes: facadesMaritimes?.split(',').filter(isFacade),
       perimetre,
-      demandeEnCours: true
+      demandeEnCours: true,
     },
     { fields: titreFields },
     user
@@ -191,7 +178,7 @@ export const titres = async (
       titresIds,
       entreprisesIds,
       references,
-      territoires
+      territoires,
     })
       .filter(param => param[1] !== undefined)
       .map(param => param.join('='))
@@ -200,7 +187,7 @@ export const titres = async (
     matomo.track({
       url: `${process.env.API_MATOMO_URL}/matomo.php?${url}`,
       e_c: 'camino-api',
-      e_a: `titres-flux-${format}`
+      e_a: `titres-flux-${format}`,
     })
   }
 
@@ -208,7 +195,7 @@ export const titres = async (
     ? {
         nom: fileNameCreate(`titres-${titres.length}`, format),
         format,
-        contenu
+        contenu,
       }
     : null
 }
@@ -250,8 +237,8 @@ export const demarches = async (
       titresSubstancesIds,
       titresReferences,
       titresTerritoires,
-      travaux
-    }
+      travaux,
+    },
   }: { query: ITitresDemarchesQueryInput },
   user: User
 ) => {
@@ -273,7 +260,7 @@ export const demarches = async (
       titresSubstancesIds: titresSubstancesIds?.split(','),
       titresReferences,
       titresTerritoires,
-      travaux: travaux ? travaux === 'true' : undefined
+      travaux: travaux ? travaux === 'true' : undefined,
     },
     {
       fields: {
@@ -281,24 +268,22 @@ export const demarches = async (
         titre: {
           id: {},
           titulaires: { id: {} },
-          amodiataires: { id: {} }
+          amodiataires: { id: {} },
         },
         etapes: {
           forets: { id: {} },
           communes: { id: {} },
           points: { id: {} },
           type: {
-            id: {}
-          }
-        }
-      }
+            id: {},
+          },
+        },
+      },
     },
     user
   )
 
-  const demarchesFormatted = titresDemarches.map(titreDemarche =>
-    titreDemarcheFormat(titreDemarche)
-  )
+  const demarchesFormatted = titresDemarches.map(titreDemarche => titreDemarcheFormat(titreDemarche))
 
   let contenu
 
@@ -312,14 +297,9 @@ export const demarches = async (
 
   return contenu
     ? {
-        nom: fileNameCreate(
-          `${travaux === 'true' ? 'travaux' : 'demarches'}-${
-            titresDemarches.length
-          }`,
-          format
-        ),
+        nom: fileNameCreate(`${travaux === 'true' ? 'travaux' : 'demarches'}-${titresDemarches.length}`, format),
         format,
-        contenu
+        contenu,
       }
     : null
 }
@@ -357,8 +337,8 @@ export const activites = async (
       titresTerritoires,
       titresTypesIds,
       titresDomainesIds,
-      titresStatutsIds
-    }
+      titresStatutsIds,
+    },
   }: { query: ITitresActivitesQueryInput },
   user: User
 ) => {
@@ -378,20 +358,18 @@ export const activites = async (
       titresTerritoires,
       titresTypesIds: titresTypesIds?.split(','),
       titresDomainesIds: titresDomainesIds?.split(','),
-      titresStatutsIds: titresStatutsIds?.split(',')
+      titresStatutsIds: titresStatutsIds?.split(','),
     },
     {
       fields: {
         type: { id: {} },
-        titre: { communes: { id: {} } }
-      }
+        titre: { communes: { id: {} } },
+      },
     },
     user
   )
 
-  const titresActivitesFormatted = titresActivites.map(a =>
-    titreActiviteFormat(a)
-  )
+  const titresActivitesFormatted = titresActivites.map(a => titreActiviteFormat(a))
 
   let contenu
 
@@ -407,7 +385,7 @@ export const activites = async (
     ? {
         nom: fileNameCreate(`activites-${titresActivites.length}`, format),
         format,
-        contenu
+        contenu,
       }
     : null
 }
@@ -424,21 +402,7 @@ interface IUtilisateursQueryInput {
   emails?: string | null
 }
 
-export const utilisateurs = async (
-  {
-    query: {
-      format = 'json',
-      colonne,
-      ordre,
-      entrepriseIds,
-      administrationIds,
-      roles,
-      noms,
-      emails
-    }
-  }: { query: IUtilisateursQueryInput },
-  user: User
-) => {
+export const utilisateurs = async ({ query: { format = 'json', colonne, ordre, entrepriseIds, administrationIds, roles, noms, emails } }: { query: IUtilisateursQueryInput }, user: User) => {
   formatCheck(['json', 'csv', 'ods', 'xlsx'], format)
 
   const utilisateurs = await utilisateursGet(
@@ -449,7 +413,7 @@ export const utilisateurs = async (
       administrationIds: administrationIds?.split(','),
       roles: roles?.split(',').filter(isRole) ?? [],
       noms,
-      emails
+      emails,
     },
     {},
     user
@@ -469,7 +433,7 @@ export const utilisateurs = async (
     ? {
         nom: fileNameCreate(`utilisateurs-${utilisateurs.length}`, format),
         format,
-        contenu
+        contenu,
       }
     : null
 }
@@ -479,10 +443,7 @@ interface IEntreprisesQueryInput {
   noms?: string | null
 }
 
-export const entreprises = async (
-  { query: { format = 'json', noms } }: { query: IEntreprisesQueryInput },
-  user: User
-) => {
+export const entreprises = async ({ query: { format = 'json', noms } }: { query: IEntreprisesQueryInput }, user: User) => {
   formatCheck(['json', 'csv', 'xlsx', 'ods'], format)
 
   const entreprises = await entreprisesGet({ noms }, {}, user)
@@ -503,7 +464,7 @@ export const entreprises = async (
     ? {
         nom: fileNameCreate(`entreprises-${entreprises.length}`, format),
         format,
-        contenu
+        contenu,
       }
     : null
 }
diff --git a/packages/api/src/api/rest/keycloak.ts b/packages/api/src/api/rest/keycloak.ts
index f5ac2035a..b12a0af7d 100644
--- a/packages/api/src/api/rest/keycloak.ts
+++ b/packages/api/src/api/rest/keycloak.ts
@@ -1,10 +1,7 @@
 import express from 'express'
 import { CustomResponse } from './express-type'
 
-export const logout = async (
-  req: express.Request,
-  res: CustomResponse<string>
-) => {
+export const logout = async (req: express.Request, res: CustomResponse<string>) => {
   const authorizationToken = req.header('authorization')
   if (!authorizationToken) {
     res.status(403)
@@ -22,24 +19,16 @@ export const logout = async (
     res.redirect(oauthLogoutUrl.href)
   }
 }
-export const resetPassword = async (
-  req: express.Request,
-  res: CustomResponse<string>
-) => {
+export const resetPassword = async (req: express.Request, res: CustomResponse<string>) => {
   const authorizationToken = req.header('authorization')
   if (!authorizationToken) {
     res.status(403)
   } else {
     const uiUrl = process.env.OAUTH_URL ?? ''
 
-    const resetPasswordUrl = new URL(
-      process.env.KEYCLOAK_RESET_PASSWORD_URL ?? ''
-    )
+    const resetPasswordUrl = new URL(process.env.KEYCLOAK_RESET_PASSWORD_URL ?? '')
     resetPasswordUrl.searchParams.append('response_type', 'code')
-    resetPasswordUrl.searchParams.append(
-      'client_id',
-      process.env.KEYCLOAK_CLIENT_ID ?? ''
-    )
+    resetPasswordUrl.searchParams.append('client_id', process.env.KEYCLOAK_CLIENT_ID ?? '')
     resetPasswordUrl.searchParams.append('kc_action', 'UPDATE_PASSWORD')
     resetPasswordUrl.searchParams.append('redirect_uri', uiUrl)
 
diff --git a/packages/api/src/api/rest/statistiques/dgtm.ts b/packages/api/src/api/rest/statistiques/dgtm.ts
index db91d24c4..99dc1e928 100644
--- a/packages/api/src/api/rest/statistiques/dgtm.ts
+++ b/packages/api/src/api/rest/statistiques/dgtm.ts
@@ -1,43 +1,28 @@
 import { AdministrationId } from 'camino-common/src/static/administrations.js'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
 import { getTitreTypeIdsByAdministration } from 'camino-common/src/static/administrationsTitresTypes.js'
-import {
-  StatistiquesDGTM,
-  TitreTypeIdDelai,
-  titreTypeIdDelais
-} from 'camino-common/src/statistiques.js'
-import {
-  CaminoAnnee,
-  CaminoDate,
-  getAnnee,
-  daysBetween
-} from 'camino-common/src/date.js'
+import { StatistiquesDGTM, TitreTypeIdDelai, titreTypeIdDelais } from 'camino-common/src/statistiques.js'
+import { CaminoAnnee, CaminoDate, getAnnee, daysBetween } from 'camino-common/src/date.js'
 import { knex } from '../../../knex.js'
 import { SDOMZoneId, SDOMZoneIds } from 'camino-common/src/static/sdom.js'
-import {
-  ETAPES_TYPES,
-  EtapeTypeId
-} from 'camino-common/src/static/etapesTypes.js'
+import { ETAPES_TYPES, EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
 import { SUBSTANCES_FISCALES_IDS } from 'camino-common/src/static/substancesFiscales.js'
 import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts.js'
 
 const anneeDepartStats = 2015
 
-export const getDGTMStatsInside = async (
-  administrationId: AdministrationId
-): Promise<StatistiquesDGTM> => {
+export const getDGTMStatsInside = async (administrationId: AdministrationId): Promise<StatistiquesDGTM> => {
   const result: StatistiquesDGTM = {
     depotEtInstructions: {},
     sdom: {},
     delais: {},
     producteursOr: {},
-    avisAXM: {}
+    avisAXM: {},
   }
 
-  const gestionnaireTitreTypeIds: TitreTypeId[] =
-    getTitreTypeIdsByAdministration(administrationId)
-      .filter(({ gestionnaire, associee }) => gestionnaire || associee)
-      .map(({ titreTypeId }) => titreTypeId)
+  const gestionnaireTitreTypeIds: TitreTypeId[] = getTitreTypeIdsByAdministration(administrationId)
+    .filter(({ gestionnaire, associee }) => gestionnaire || associee)
+    .map(({ titreTypeId }) => titreTypeId)
 
   const phaseOctrois: {
     id: string
@@ -45,29 +30,18 @@ export const getDGTMStatsInside = async (
     typeId: TitreTypeId
     sdomZoneIds: SDOMZoneId[] | null
   }[] = await knex
-    .select(
-      'titresPhases.dateDebut',
-      'titres.typeId',
-      'titres_etapes.sdom_zones as sdomZoneIds'
-    )
+    .select('titresPhases.dateDebut', 'titres.typeId', 'titres_etapes.sdom_zones as sdomZoneIds')
     .distinct('titres.id')
     .from('titresPhases')
     .leftJoin('titresDemarches', 'titreDemarcheId', 'titresDemarches.id')
     .leftJoin('titres', 'titresDemarches.titreId', 'titres.id')
-    .joinRaw(
-      "left join titres_etapes on titres_etapes.id = titres.props_titre_etapes_ids ->> 'points'"
-    )
+    .joinRaw("left join titres_etapes on titres_etapes.id = titres.props_titre_etapes_ids ->> 'points'")
     .where('titresDemarches.typeId', 'oct')
     .andWhere('titresPhases.dateDebut', '>=', `${anneeDepartStats}-01-01`)
     .andWhere(builder => {
-      builder.whereRaw(
-        `titres_etapes.administrations_locales @> '"${administrationId}"'::jsonb`
-      )
+      builder.whereRaw(`titres_etapes.administrations_locales @> '"${administrationId}"'::jsonb`)
       if (gestionnaireTitreTypeIds.length) {
-        builder.orWhereRaw(
-          `?? in (${gestionnaireTitreTypeIds.map(t => `'${t}'`).join(',')})`,
-          [`titres.typeId`]
-        )
+        builder.orWhereRaw(`?? in (${gestionnaireTitreTypeIds.map(t => `'${t}'`).join(',')})`, [`titres.typeId`])
       }
     })
 
@@ -79,7 +53,7 @@ export const getDGTMStatsInside = async (
         totalAXMDeposees: 0,
         totalAXMOctroyees: 0,
         totalTitresDeposes: 0,
-        totalTitresOctroyes: 0
+        totalTitresOctroyes: 0,
       }
     }
     if (!result.sdom[annee]) {
@@ -88,7 +62,7 @@ export const getDGTMStatsInside = async (
         [SDOMZoneIds.Zone0Potentielle]: { depose: 0, octroye: 0 },
         [SDOMZoneIds.Zone1]: { depose: 0, octroye: 0 },
         [SDOMZoneIds.Zone2]: { depose: 0, octroye: 0 },
-        3: { depose: 0, octroye: 0 }
+        3: { depose: 0, octroye: 0 },
       }
     }
 
@@ -108,31 +82,20 @@ export const getDGTMStatsInside = async (
     typeId: TitreTypeId
     sdomZoneIds: SDOMZoneId[] | null
   }[] = await knex
-    .select(
-      'titresEtapes.date',
-      'titres.typeId',
-      'titre_etape_point.sdom_zones as sdomZoneIds'
-    )
+    .select('titresEtapes.date', 'titres.typeId', 'titre_etape_point.sdom_zones as sdomZoneIds')
     .distinct('titres.id')
     .from('titresEtapes')
     .leftJoin('titresDemarches', 'titreDemarcheId', 'titresDemarches.id')
     .leftJoin('titres', 'titresDemarches.titreId', 'titres.id')
-    .joinRaw(
-      "left join titres_etapes titre_etape_point on titre_etape_point.id = titres.props_titre_etapes_ids ->> 'points'"
-    )
+    .joinRaw("left join titres_etapes titre_etape_point on titre_etape_point.id = titres.props_titre_etapes_ids ->> 'points'")
     .where('titresEtapes.archive', false)
     .where('titresEtapes.typeId', 'mdp')
     .andWhere('titresDemarches.typeId', 'oct')
     .andWhere('titresEtapes.date', '>=', `${anneeDepartStats}-01-01`)
     .andWhere(builder => {
-      builder.whereRaw(
-        `titre_etape_point.administrations_locales @> '"${administrationId}"'::jsonb`
-      )
+      builder.whereRaw(`titre_etape_point.administrations_locales @> '"${administrationId}"'::jsonb`)
       if (gestionnaireTitreTypeIds.length) {
-        builder.orWhereRaw(
-          `?? in (${gestionnaireTitreTypeIds.map(t => `'${t}'`).join(',')})`,
-          [`titres.typeId`]
-        )
+        builder.orWhereRaw(`?? in (${gestionnaireTitreTypeIds.map(t => `'${t}'`).join(',')})`, [`titres.typeId`])
       }
     })
 
@@ -144,7 +107,7 @@ export const getDGTMStatsInside = async (
         totalAXMDeposees: 0,
         totalAXMOctroyees: 0,
         totalTitresDeposes: 0,
-        totalTitresOctroyes: 0
+        totalTitresOctroyes: 0,
       }
     }
 
@@ -154,7 +117,7 @@ export const getDGTMStatsInside = async (
         [SDOMZoneIds.Zone0Potentielle]: { depose: 0, octroye: 0 },
         [SDOMZoneIds.Zone1]: { depose: 0, octroye: 0 },
         [SDOMZoneIds.Zone2]: { depose: 0, octroye: 0 },
-        3: { depose: 0, octroye: 0 }
+        3: { depose: 0, octroye: 0 },
       }
     }
 
@@ -182,39 +145,26 @@ export const getDGTMStatsInside = async (
       titretypeid: 'titres.type_id',
       depotdelademandedate: 'depot_de_la_demande.date',
       apo: 'APO.date',
-      decisionadministration: 'decision_administration.date'
+      decisionadministration: 'decision_administration.date',
     })
     .distinct('titresDemarches.id')
     .from({
-      titresDemarches: 'titresDemarches'
+      titresDemarches: 'titresDemarches',
     })
     .leftJoin('titres', 'titresDemarches.titreId', 'titres.id')
-    .joinRaw(
-      "left join titres_etapes on titres_etapes.id = titres.props_titre_etapes_ids ->> 'points'"
-    )
-    .joinRaw(
-      `left join titres_etapes depot_de_la_demande on (depot_de_la_demande.titre_demarche_id = "titres_demarches"."id" and depot_de_la_demande.type_id = '${ETAPES_TYPES.depotDeLaDemande}')`
-    )
-    .joinRaw(
-      `left join titres_etapes APO on (APO.titre_demarche_id = "titres_demarches"."id" and APO.type_id = '${ETAPES_TYPES.avisDeLaCommissionDepartementaleDesMines_CDM_}')`
-    )
+    .joinRaw("left join titres_etapes on titres_etapes.id = titres.props_titre_etapes_ids ->> 'points'")
+    .joinRaw(`left join titres_etapes depot_de_la_demande on (depot_de_la_demande.titre_demarche_id = "titres_demarches"."id" and depot_de_la_demande.type_id = '${ETAPES_TYPES.depotDeLaDemande}')`)
+    .joinRaw(`left join titres_etapes APO on (APO.titre_demarche_id = "titres_demarches"."id" and APO.type_id = '${ETAPES_TYPES.avisDeLaCommissionDepartementaleDesMines_CDM_}')`)
     .joinRaw(
       `left join titres_etapes decision_administration on (decision_administration.titre_demarche_id = "titres_demarches"."id" and decision_administration.type_id = '${ETAPES_TYPES.decisionDeLadministration}')`
     )
     .where('titresDemarches.typeId', 'oct')
-    .whereRaw(
-      `titres.type_id in (${titreTypeIdDelais.map(t => `'${t}'`).join(',')})`
-    )
+    .whereRaw(`titres.type_id in (${titreTypeIdDelais.map(t => `'${t}'`).join(',')})`)
     .andWhere('depot_de_la_demande.date', '>=', `${anneeDepartStats}-01-01`)
     .andWhere(builder => {
-      builder.whereRaw(
-        `titres_etapes.administrations_locales @> '"${administrationId}"'::jsonb`
-      )
+      builder.whereRaw(`titres_etapes.administrations_locales @> '"${administrationId}"'::jsonb`)
       if (gestionnaireTitreTypeIds.length) {
-        builder.orWhereRaw(
-          `?? in (${gestionnaireTitreTypeIds.map(t => `'${t}'`).join(',')})`,
-          [`titres.typeId`]
-        )
+        builder.orWhereRaw(`?? in (${gestionnaireTitreTypeIds.map(t => `'${t}'`).join(',')})`, [`titres.typeId`])
       }
     })
 
@@ -225,32 +175,27 @@ export const getDGTMStatsInside = async (
         axm: {
           delaiInstructionEnJours: [],
           delaiCommissionDepartementaleEnJours: [],
-          delaiDecisionPrefetEnJours: []
+          delaiDecisionPrefetEnJours: [],
         },
         prm: {
           delaiInstructionEnJours: [],
           delaiCommissionDepartementaleEnJours: [],
-          delaiDecisionPrefetEnJours: []
+          delaiDecisionPrefetEnJours: [],
         },
         cxm: {
           delaiInstructionEnJours: [],
           delaiCommissionDepartementaleEnJours: [],
-          delaiDecisionPrefetEnJours: []
-        }
+          delaiDecisionPrefetEnJours: [],
+        },
       }
     }
     if (instruction.decisionadministration) {
-      let days = daysBetween(
-        instruction.depotdelademandedate,
-        instruction.decisionadministration
-      )
+      let days = daysBetween(instruction.depotdelademandedate, instruction.decisionadministration)
       if (days < 0) {
         console.warn('cette demarche a une dex AVANT le depot', instruction.id)
         days = Math.abs(days)
       }
-      result.delais[annee][
-        instruction.titretypeid
-      ].delaiInstructionEnJours.push(days)
+      result.delais[annee][instruction.titretypeid].delaiInstructionEnJours.push(days)
     }
     if (instruction.apo) {
       let days = daysBetween(instruction.depotdelademandedate, instruction.apo)
@@ -258,28 +203,20 @@ export const getDGTMStatsInside = async (
         console.warn('cette demarche a une apo AVANT le depot', instruction.id)
         days = Math.abs(days)
       }
-      result.delais[annee][
-        instruction.titretypeid
-      ].delaiCommissionDepartementaleEnJours.push(days)
+      result.delais[annee][instruction.titretypeid].delaiCommissionDepartementaleEnJours.push(days)
       if (instruction.decisionadministration) {
         days = daysBetween(instruction.apo, instruction.decisionadministration)
         if (days < 0) {
-          console.warn(
-            'cette demarche a une decisionadministration AVANT la commission départementale des mines',
-            instruction.id
-          )
+          console.warn('cette demarche a une decisionadministration AVANT la commission départementale des mines', instruction.id)
           days = Math.abs(days)
         }
-        result.delais[annee][
-          instruction.titretypeid
-        ].delaiDecisionPrefetEnJours.push(days)
+        result.delais[annee][instruction.titretypeid].delaiDecisionPrefetEnJours.push(days)
       }
     }
   })
 
   // On peut récupérer le nombre de producteurs d’or que à partir de l’année 2018. L’année à laquelle nous avons commencé à récolter les productions dans Camino
-  const producteursOr: { rows: { annee: CaminoAnnee; count: string }[] } =
-    await knex.raw(`select distinct ta.annee, count ( distinct tt.entreprise_id)
+  const producteursOr: { rows: { annee: CaminoAnnee; count: string }[] } = await knex.raw(`select distinct ta.annee, count ( distinct tt.entreprise_id)
   from titres_activites ta
       left join titres t on ta.titre_id = t.id
       left join titres_titulaires tt  on tt.titre_etape_id = t.props_titre_etapes_ids->>'titulaires'
@@ -288,9 +225,7 @@ export const getDGTMStatsInside = async (
   group by ta.annee;`)
 
   if (producteursOr && producteursOr.rows?.length) {
-    result.producteursOr = producteursOr.rows.reduce<
-      Record<CaminoAnnee, number>
-    >((acc, r) => {
+    result.producteursOr = producteursOr.rows.reduce<Record<CaminoAnnee, number>>((acc, r) => {
       acc[r.annee] = parseInt(r.count, 10)
 
       return acc
@@ -304,8 +239,7 @@ export const getDGTMStatsInside = async (
       statut_id: Extract<EtapeStatutId, 'dre' | 'fav' | 'fre' | 'def' | 'ajo'>
       count: string
     }[]
-  } =
-    await knex.raw(`select substring(te.date, 0, 5) as annee, te.type_id, te.statut_id, count(*)
+  } = await knex.raw(`select substring(te.date, 0, 5) as annee, te.type_id, te.statut_id, count(*)
   from titres_etapes te
   left join titres_demarches td on te.titre_demarche_id = td.id
   left join titres t on td.titre_id = t.id
@@ -316,17 +250,14 @@ export const getDGTMStatsInside = async (
   group by (substring(te.date, 0, 5), te.type_id, te.statut_id)`)
 
   if (avisAXM?.rows?.length) {
-    result.avisAXM = avisAXM.rows.reduce<StatistiquesDGTM['avisAXM']>(
-      (acc, r) => {
-        ;(acc[r.annee] ??= {
-          apd: { fav: 0, def: 0, dre: 0, fre: 0, ajo: 0 },
-          apo: { fav: 0, def: 0, dre: 0, fre: 0, ajo: 0 }
-        })[r.type_id][r.statut_id] = parseInt(r.count)
+    result.avisAXM = avisAXM.rows.reduce<StatistiquesDGTM['avisAXM']>((acc, r) => {
+      ;(acc[r.annee] ??= {
+        apd: { fav: 0, def: 0, dre: 0, fre: 0, ajo: 0 },
+        apo: { fav: 0, def: 0, dre: 0, fre: 0, ajo: 0 },
+      })[r.type_id][r.statut_id] = parseInt(r.count)
 
-        return acc
-      },
-      {}
-    )
+      return acc
+    }, {})
   }
 
   return result
diff --git a/packages/api/src/api/rest/statistiques/evolution-titres.ts b/packages/api/src/api/rest/statistiques/evolution-titres.ts
index b782b9a08..7f61a57c9 100644
--- a/packages/api/src/api/rest/statistiques/evolution-titres.ts
+++ b/packages/api/src/api/rest/statistiques/evolution-titres.ts
@@ -10,23 +10,14 @@ import { TitreTypeTypeId } from 'camino-common/src/static/titresTypesTypes.js'
 import { EvolutionTitres } from 'camino-common/src/statistiques.js'
 import { knex } from '../../../knex.js'
 
-export const evolutionTitres = async (
-  titreTypeTypeId: TitreTypeTypeId,
-  departements: DepartementId[],
-  anneeDepart = 2017
-): Promise<EvolutionTitres> => {
+export const evolutionTitres = async (titreTypeTypeId: TitreTypeTypeId, departements: DepartementId[], anneeDepart = 2017): Promise<EvolutionTitres> => {
   let currentYear = new Date().getFullYear()
   const annee: Record<CaminoAnnee, number> = {}
   while (currentYear >= anneeDepart) {
     annee[toCaminoAnnee(currentYear)] = 0
     currentYear--
   }
-  const demarcheOctroiTypeIds = [
-    DEMARCHES_TYPES_IDS.Octroi,
-    DEMARCHES_TYPES_IDS.Prolongation,
-    DEMARCHES_TYPES_IDS.Prolongation1,
-    DEMARCHES_TYPES_IDS.Prolongation2
-  ]
+  const demarcheOctroiTypeIds = [DEMARCHES_TYPES_IDS.Octroi, DEMARCHES_TYPES_IDS.Prolongation, DEMARCHES_TYPES_IDS.Prolongation1, DEMARCHES_TYPES_IDS.Prolongation2]
   const titreTypeId = toTitreTypeId(titreTypeTypeId, DOMAINES_IDS.METAUX)
   const depot: {
     rows: { annee: CaminoAnnee; count: string }[]
@@ -60,11 +51,7 @@ export const evolutionTitres = async (
           group by substring(tp."date_debut", 0, 5)
         `)
 
-  const etapesTypesDecisionRefus = [
-    ETAPES_TYPES.decisionImplicite,
-    ETAPES_TYPES.decisionDeLadministration,
-    ETAPES_TYPES.decisionDuJugeAdministratif
-  ]
+  const etapesTypesDecisionRefus = [ETAPES_TYPES.decisionImplicite, ETAPES_TYPES.decisionDeLadministration, ETAPES_TYPES.decisionDuJugeAdministratif]
   const refus: {
     rows: { annee: CaminoAnnee; count: string }[]
   } = await knex.raw(`
@@ -72,20 +59,13 @@ export const evolutionTitres = async (
            join titres_demarches td on td.id  = et.titre_demarche_id 
            join titres t on t.id = td.titre_id 
            where 
-           ((et.type_id in (${toJoinSQL(
-             etapesTypesDecisionRefus
-           )}) and et.statut_id = '${
-    ETAPES_STATUTS.REJETE
-  }') or (et.type_id = '${
-    ETAPES_TYPES.classementSansSuite
-  }' and et.statut_id = '${ETAPES_STATUTS.FAIT}'))
+           ((et.type_id in (${toJoinSQL(etapesTypesDecisionRefus)}) and et.statut_id = '${ETAPES_STATUTS.REJETE}') or (et.type_id = '${ETAPES_TYPES.classementSansSuite}' and et.statut_id = '${
+    ETAPES_STATUTS.FAIT
+  }'))
            and et.archive is false
            and td.type_id in (${toJoinSQL(demarcheOctroiTypeIds)})
            and t.type_id = '${titreTypeId}'
-           and td.statut_id in (${toJoinSQL([
-             DemarchesStatutsIds.Rejete,
-             DemarchesStatutsIds.ClasseSansSuite
-           ])})
+           and td.statut_id in (${toJoinSQL([DemarchesStatutsIds.Rejete, DemarchesStatutsIds.ClasseSansSuite])})
            and substring(et."date", 0, 5)::int >= ${anneeDepart}
            and exists (select * from titres_communes tc join communes c on c.id = tc.commune_id where tc.titre_etape_id = t.props_titre_etapes_ids ->> 'points' and c.departement_id::text in (${toJoinSQL(
              departements
@@ -114,7 +94,7 @@ export const evolutionTitres = async (
     depot: { ...annee, ...toRecord(depot.rows) },
     octroiEtProlongation: { ...annee, ...toRecord(octroi.rows) },
     refusees: { ...annee, ...toRecord(refus.rows) },
-    surface: { ...annee, ...toRecord(surface.rows) }
+    surface: { ...annee, ...toRecord(surface.rows) },
   }
 }
 
@@ -122,9 +102,7 @@ const toJoinSQL = (values: any[]): string => {
   return values.map(v => `'${v}'`).join(',')
 }
 
-const toRecord = (
-  values: { annee: CaminoAnnee; count: string }[]
-): Record<CaminoAnnee, number> => {
+const toRecord = (values: { annee: CaminoAnnee; count: string }[]): Record<CaminoAnnee, number> => {
   return values.reduce<Record<CaminoAnnee, number>>((acc, { annee, count }) => {
     acc[annee] = Number(count)
 
diff --git a/packages/api/src/api/rest/statistiques/granulats-marins.ts b/packages/api/src/api/rest/statistiques/granulats-marins.ts
index a4fda355d..c70244a40 100644
--- a/packages/api/src/api/rest/statistiques/granulats-marins.ts
+++ b/packages/api/src/api/rest/statistiques/granulats-marins.ts
@@ -5,33 +5,19 @@ import { ITitre, ITitreActivite } from '../../../types.js'
 import { titresGet } from '../../../database/queries/titres.js'
 import { titresActivitesGet } from '../../../database/queries/titres-activites.js'
 import { userSuper } from '../../../database/user-super.js'
-import {
-  concessionsValidesBuild,
-  titresSurfaceIndexBuild
-} from '../../graphql/resolvers/statistiques.js'
+import { concessionsValidesBuild, titresSurfaceIndexBuild } from '../../graphql/resolvers/statistiques.js'
 import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
-import {
-  StatistiqueGranulatsMarinsStatAnnee,
-  StatistiquesGranulatsMarins
-} from 'camino-common/src/statistiques.js'
-
-const statistiquesGranulatsMarinsActivitesFind = (
-  titresActivites: ITitreActivite[],
-  props: string[]
-) =>
+import { StatistiqueGranulatsMarinsStatAnnee, StatistiquesGranulatsMarins } from 'camino-common/src/statistiques.js'
+
+const statistiquesGranulatsMarinsActivitesFind = (titresActivites: ITitreActivite[], props: string[]) =>
   titresActivites.reduce(
     (acc: { [key: string]: number }, ta) => {
       acc.rapportProductionCount++
 
-      if (ta.activiteStatutId === ACTIVITES_STATUTS_IDS.DEPOSE)
-        acc.activitesDeposesQuantiteCount++
+      if (ta.activiteStatutId === ACTIVITES_STATUTS_IDS.DEPOSE) acc.activitesDeposesQuantiteCount++
 
       props.forEach(prop => {
-        if (
-          ta.contenu &&
-          ta.contenu.renseignementsProduction &&
-          ta.contenu.renseignementsProduction[prop]
-        ) {
+        if (ta.contenu && ta.contenu.renseignementsProduction && ta.contenu.renseignementsProduction[prop]) {
           const value = ta.contenu!.renseignementsProduction[prop]
           acc[prop] += Math.abs(Number(value))
         }
@@ -42,29 +28,18 @@ const statistiquesGranulatsMarinsActivitesFind = (
     {
       rapportProductionCount: 0,
       activitesDeposesQuantiteCount: 0,
-      volumeGranulatsExtrait: 0
+      volumeGranulatsExtrait: 0,
     }
   )
 
-type IStatsGranulatsMarinsTitresTypesHistorique =
-  | 'titresPrw'
-  | 'titresPxw'
-  | 'titresCxw'
+type IStatsGranulatsMarinsTitresTypesHistorique = 'titresPrw' | 'titresPxw' | 'titresCxw'
 
-type IStatsGranulatsMarinsTitresTypesInstant =
-  | 'titresInstructionExploration'
-  | 'titresValPrw'
-  | 'titresInstructionExploitation'
-  | 'titresValCxw'
+type IStatsGranulatsMarinsTitresTypesInstant = 'titresInstructionExploration' | 'titresValPrw' | 'titresInstructionExploitation' | 'titresValCxw'
 
-const statistiquesGranulatsMarinsTitresGet = (
-  titres: { id: string; typeId: string; surface: number }[]
-) =>
+const statistiquesGranulatsMarinsTitresGet = (titres: { id: string; typeId: string; surface: number }[]) =>
   titres.reduce(
     (acc, titre) => {
-      const id = camelcase(
-        `titres-${titre.typeId}`
-      ) as IStatsGranulatsMarinsTitresTypesHistorique
+      const id = camelcase(`titres-${titre.typeId}`) as IStatsGranulatsMarinsTitresTypesHistorique
 
       acc[id].quantite++
       acc[id].surface += titre.surface
@@ -74,21 +49,14 @@ const statistiquesGranulatsMarinsTitresGet = (
     {
       titresPrw: { quantite: 0, surface: 0 },
       titresPxw: { quantite: 0, surface: 0 },
-      titresCxw: { quantite: 0, surface: 0 }
+      titresCxw: { quantite: 0, surface: 0 },
     }
   )
 
-const statistiquesGranulatsMarinsInstantBuild = (
-  titres: ITitre[]
-): Omit<StatistiquesGranulatsMarins, 'annees'> => {
+const statistiquesGranulatsMarinsInstantBuild = (titres: ITitre[]): Omit<StatistiquesGranulatsMarins, 'annees'> => {
   const statsInstant = titres.reduce(
     (acc, titre) => {
-      if (
-        titre.titreStatutId &&
-        ['val', 'mod', 'dmi'].includes(titre.titreStatutId) &&
-        titre.surfaceEtape &&
-        titre.surfaceEtape.surface
-      ) {
+      if (titre.titreStatutId && ['val', 'mod', 'dmi'].includes(titre.titreStatutId) && titre.surfaceEtape && titre.surfaceEtape.surface) {
         if (['arw', 'apw', 'prw'].includes(titre.typeId!)) {
           acc.surfaceExploration += titre.surfaceEtape.surface
           if (['mod', 'dmi'].includes(titre.titreStatutId!)) {
@@ -102,9 +70,7 @@ const statistiquesGranulatsMarinsInstantBuild = (
             acc.titresInstructionExploitation++
           }
         }
-        const id = camelcase(
-          `titres-${titre.titreStatutId!}-${titre.typeId!}`
-        ) as IStatsGranulatsMarinsTitresTypesInstant
+        const id = camelcase(`titres-${titre.titreStatutId!}-${titre.typeId!}`) as IStatsGranulatsMarinsTitresTypesInstant
 
         acc[id]++
       }
@@ -117,45 +83,28 @@ const statistiquesGranulatsMarinsInstantBuild = (
       titresInstructionExploration: 0,
       titresValPrw: 0,
       titresInstructionExploitation: 0,
-      titresValCxw: 0
+      titresValCxw: 0,
     }
   )
 
-  statsInstant.surfaceExploration = Math.floor(
-    statsInstant.surfaceExploration * 100
-  ) // conversion 1 km² = 100 ha
-  statsInstant.surfaceExploitation = Math.floor(
-    statsInstant.surfaceExploitation * 100
-  ) // conversion 1 km² = 100 ha
+  statsInstant.surfaceExploration = Math.floor(statsInstant.surfaceExploration * 100) // conversion 1 km² = 100 ha
+  statsInstant.surfaceExploitation = Math.floor(statsInstant.surfaceExploitation * 100) // conversion 1 km² = 100 ha
 
   return statsInstant
 }
 
-const statistiquesGranulatsMarinsAnneeBuild = (
-  titres: ITitre[],
-  titresActivites: ITitreActivite[],
-  annee: number
-): StatistiqueGranulatsMarinsStatAnnee => {
+const statistiquesGranulatsMarinsAnneeBuild = (titres: ITitre[], titresActivites: ITitreActivite[], annee: number): StatistiqueGranulatsMarinsStatAnnee => {
   // les titres créés dans l'année et leur surface lors de l'octroi
   const titresFiltered = titresSurfaceIndexBuild(titres, annee)
 
-  const { titresPrw, titresPxw, titresCxw } =
-    statistiquesGranulatsMarinsTitresGet(titresFiltered)
+  const { titresPrw, titresPxw, titresCxw } = statistiquesGranulatsMarinsTitresGet(titresFiltered)
 
   // les activités de l'année
-  const titresActivitesAnneeFiltered = titresActivites.filter(
-    ta => ta.annee === annee
-  )
-  const statistiquesActivites = statistiquesGranulatsMarinsActivitesFind(
-    titresActivitesAnneeFiltered,
-    ['volumeGranulatsExtrait']
-  )
+  const titresActivitesAnneeFiltered = titresActivites.filter(ta => ta.annee === annee)
+  const statistiquesActivites = statistiquesGranulatsMarinsActivitesFind(titresActivitesAnneeFiltered, ['volumeGranulatsExtrait'])
 
   const activitesDeposesRatio = statistiquesActivites.rapportProductionCount
-    ? Math.round(
-        (statistiquesActivites.activitesDeposesQuantiteCount * 100) /
-          statistiquesActivites.rapportProductionCount
-      )
+    ? Math.round((statistiquesActivites.activitesDeposesQuantiteCount * 100) / statistiquesActivites.rapportProductionCount)
     : 0
 
   const concessionsValides = concessionsValidesBuild(titres, annee)
@@ -167,59 +116,55 @@ const statistiquesGranulatsMarinsAnneeBuild = (
     titresCxw,
     volume: Math.floor(statistiquesActivites.volumeGranulatsExtrait),
     masse: Math.floor(statistiquesActivites.volumeGranulatsExtrait * 1.5),
-    activitesDeposesQuantite:
-      statistiquesActivites.activitesDeposesQuantiteCount,
+    activitesDeposesQuantite: statistiquesActivites.activitesDeposesQuantiteCount,
     activitesDeposesRatio,
-    concessionsValides
+    concessionsValides,
   }
 }
 
-export const statistiquesGranulatsMarins =
-  async (): Promise<StatistiquesGranulatsMarins> => {
-    try {
-      const anneeCurrent = new Date().getFullYear()
-      // un tableau avec les années depuis 2006
-      const annees = Array.from(Array(anneeCurrent - 2006 + 1).keys())
-        .map(e => anneeCurrent - e)
-        .reverse()
-
-      const titres = await titresGet(
-        {
-          domainesIds: ['w'],
-          typesIds: ['ar', 'ap', 'pr', 'ax', 'px', 'cx']
+export const statistiquesGranulatsMarins = async (): Promise<StatistiquesGranulatsMarins> => {
+  try {
+    const anneeCurrent = new Date().getFullYear()
+    // un tableau avec les années depuis 2006
+    const annees = Array.from(Array(anneeCurrent - 2006 + 1).keys())
+      .map(e => anneeCurrent - e)
+      .reverse()
+
+    const titres = await titresGet(
+      {
+        domainesIds: ['w'],
+        typesIds: ['ar', 'ap', 'pr', 'ax', 'px', 'cx'],
+      },
+      {
+        fields: {
+          surfaceEtape: { id: {} },
+          demarches: {
+            phase: { id: {} },
+            etapes: { id: {} },
+            type: { id: {} },
+          },
         },
-        {
-          fields: {
-            surfaceEtape: { id: {} },
-            demarches: {
-              phase: { id: {} },
-              etapes: { id: {} },
-              type: { id: {} }
-            }
-          }
+      },
+      userSuper
+    )
+
+    const titresActivites = await titresActivitesGet(
+      { annees, typesIds: ['wrp'] },
+      {
+        fields: {
+          titre: { id: {} },
         },
-        userSuper
-      )
-
-      const titresActivites = await titresActivitesGet(
-        { annees, typesIds: ['wrp'] },
-        {
-          fields: {
-            titre: { id: {} }
-          }
-        },
-        userSuper
-      )
-
-      return {
-        annees: annees.map(annee =>
-          statistiquesGranulatsMarinsAnneeBuild(titres, titresActivites, annee)
-        ),
-        ...statistiquesGranulatsMarinsInstantBuild(titres)
-      }
-    } catch (e) {
-      console.error(e)
+      },
+      userSuper
+    )
 
-      throw e
+    return {
+      annees: annees.map(annee => statistiquesGranulatsMarinsAnneeBuild(titres, titresActivites, annee)),
+      ...statistiquesGranulatsMarinsInstantBuild(titres),
     }
+  } catch (e) {
+    console.error(e)
+
+    throw e
   }
+}
diff --git a/packages/api/src/api/rest/statistiques/guyane.ts b/packages/api/src/api/rest/statistiques/guyane.ts
index 39006b89f..c44be2804 100644
--- a/packages/api/src/api/rest/statistiques/guyane.ts
+++ b/packages/api/src/api/rest/statistiques/guyane.ts
@@ -12,19 +12,10 @@ import { titresActivitesGet } from '../../../database/queries/titres-activites.j
 import { userSuper } from '../../../database/user-super.js'
 import { titresSurfaceIndexBuild } from '../../graphql/resolvers/statistiques.js'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import {
-  anneePrecedente,
-  CaminoAnnee,
-  getCurrentAnnee,
-  toCaminoAnnee
-} from 'camino-common/src/date.js'
+import { anneePrecedente, CaminoAnnee, getCurrentAnnee, toCaminoAnnee } from 'camino-common/src/date.js'
 import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
 
-const statistiquesGuyaneActivitesBuild = (
-  sectionId: string,
-  titresActivites: ITitreActivite[],
-  init: { [key: string]: number }
-) =>
+const statistiquesGuyaneActivitesBuild = (sectionId: string, titresActivites: ITitreActivite[], init: { [key: string]: number }) =>
   titresActivites.reduce((acc: { [key: string]: number }, ta) => {
     acc.rapportProductionOrCount++
 
@@ -33,15 +24,7 @@ const statistiquesGuyaneActivitesBuild = (
     }
 
     Object.keys(acc).forEach(prop => {
-      if (
-        ta.contenu &&
-        ta.contenu[sectionId] &&
-        ta.contenu[sectionId][prop] &&
-        (prop !== 'effectifs' ||
-          ta.titre!.typeId === 'axm' ||
-          ta.titre!.typeId === 'pxm' ||
-          ta.titre!.typeId === 'cxm')
-      ) {
+      if (ta.contenu && ta.contenu[sectionId] && ta.contenu[sectionId][prop] && (prop !== 'effectifs' || ta.titre!.typeId === 'axm' || ta.titre!.typeId === 'pxm' || ta.titre!.typeId === 'cxm')) {
         const value = ta.contenu![sectionId][prop]
 
         acc[prop] += Number(value)
@@ -51,15 +34,9 @@ const statistiquesGuyaneActivitesBuild = (
     return acc
   }, init)
 
-type IStatsGuyaneTitresTypes =
-  | 'titresArm'
-  | 'titresPrm'
-  | 'titresAxm'
-  | 'titresCxm'
+type IStatsGuyaneTitresTypes = 'titresArm' | 'titresPrm' | 'titresAxm' | 'titresCxm'
 
-const statistiquesGuyaneTitresBuild = (
-  titres: { id: string; typeId: TitreTypeId; surface: number }[]
-): Record<string, { quantite: number; surface: number }> =>
+const statistiquesGuyaneTitresBuild = (titres: { id: string; typeId: TitreTypeId; surface: number }[]): Record<string, { quantite: number; surface: number }> =>
   titres.reduce(
     (acc, titre) => {
       const id = camelcase(`titres-${titre.typeId}`) as IStatsGuyaneTitresTypes
@@ -73,7 +50,7 @@ const statistiquesGuyaneTitresBuild = (
       titresArm: { quantite: 0, surface: 0 },
       titresPrm: { quantite: 0, surface: 0 },
       titresAxm: { quantite: 0, surface: 0 },
-      titresCxm: { quantite: 0, surface: 0 }
+      titresCxm: { quantite: 0, surface: 0 },
     }
   )
 
@@ -86,9 +63,7 @@ const statistiquesGuyaneInstantBuild = (titres: ITitre[]) => {
         } else {
           acc.surfaceExploitation += titre.surfaceEtape?.surface ?? 0
         }
-        const id = camelcase(
-          `titres-${titre.typeId}`
-        ) as IStatsGuyaneTitresTypes
+        const id = camelcase(`titres-${titre.typeId}`) as IStatsGuyaneTitresTypes
 
         acc[id]++
       }
@@ -101,60 +76,39 @@ const statistiquesGuyaneInstantBuild = (titres: ITitre[]) => {
       titresArm: 0,
       titresPrm: 0,
       titresAxm: 0,
-      titresCxm: 0
+      titresCxm: 0,
     }
   )
 
-  statsInstant.surfaceExploration = Math.floor(
-    statsInstant.surfaceExploration * 100
-  ) // conversion 1 km² = 100 ha
-  statsInstant.surfaceExploitation = Math.floor(
-    statsInstant.surfaceExploitation * 100
-  ) // conversion 1 km² = 100 ha
+  statsInstant.surfaceExploration = Math.floor(statsInstant.surfaceExploration * 100) // conversion 1 km² = 100 ha
+  statsInstant.surfaceExploitation = Math.floor(statsInstant.surfaceExploitation * 100) // conversion 1 km² = 100 ha
 
   return statsInstant
 }
 
-const statistiquesGuyaneAnneeBuild = (
-  titres: ITitre[],
-  titresActivites: ITitreActivite[],
-  annee: CaminoAnnee
-) => {
+const statistiquesGuyaneAnneeBuild = (titres: ITitre[], titresActivites: ITitreActivite[], annee: CaminoAnnee) => {
   const titresFiltered = titresSurfaceIndexBuild(titres, +annee)
 
-  const { titresArm, titresPrm, titresAxm, titresCxm } =
-    statistiquesGuyaneTitresBuild(titresFiltered)
+  const { titresArm, titresPrm, titresAxm, titresCxm } = statistiquesGuyaneTitresBuild(titresFiltered)
 
   // les activités de type grp de l'année
-  const titresActivitesGrpFiltered = titresActivites.filter(
-    ta => ta.annee === +annee && ta.typeId === 'grp'
-  )
-  const statistiquesActivitesGrp = statistiquesGuyaneActivitesBuild(
-    'renseignements',
-    titresActivitesGrpFiltered,
-    {
-      carburantConventionnel: 0,
-      carburantDetaxe: 0,
-      mercure: 0,
-      environnement: 0,
-      effectifs: 0,
-      activitesDeposesQuantiteCount: 0,
-      rapportProductionOrCount: 0
-    }
-  )
+  const titresActivitesGrpFiltered = titresActivites.filter(ta => ta.annee === +annee && ta.typeId === 'grp')
+  const statistiquesActivitesGrp = statistiquesGuyaneActivitesBuild('renseignements', titresActivitesGrpFiltered, {
+    carburantConventionnel: 0,
+    carburantDetaxe: 0,
+    mercure: 0,
+    environnement: 0,
+    effectifs: 0,
+    activitesDeposesQuantiteCount: 0,
+    rapportProductionOrCount: 0,
+  })
   // les activités de type gra et grx de l'année
-  const titresActivitesGraFiltered = titresActivites.filter(
-    ta => ta.annee === +annee && (ta.typeId === 'gra' || ta.typeId === 'grx')
-  )
-  const statistiquesActivitesGra = statistiquesGuyaneActivitesBuild(
-    'substancesFiscales',
-    titresActivitesGraFiltered,
-    {
-      auru: 0,
-      activitesDeposesQuantiteCount: 0,
-      rapportProductionOrCount: 0
-    }
-  )
+  const titresActivitesGraFiltered = titresActivites.filter(ta => ta.annee === +annee && (ta.typeId === 'gra' || ta.typeId === 'grx'))
+  const statistiquesActivitesGra = statistiquesGuyaneActivitesBuild('substancesFiscales', titresActivitesGraFiltered, {
+    auru: 0,
+    activitesDeposesQuantiteCount: 0,
+    rapportProductionOrCount: 0,
+  })
 
   // Pour les années 2017 et 2018, on affiche les chiffres "DRFIP" soit : pour 2017 : 1 485 kg  et pour 2018 : 1320 kg.
   if (annee === toCaminoAnnee(2017)) {
@@ -166,14 +120,10 @@ const statistiquesGuyaneAnneeBuild = (
   }
 
   const activitesDeposesRatio =
-    statistiquesActivitesGrp.rapportProductionOrCount +
-    statistiquesActivitesGra.rapportProductionOrCount
+    statistiquesActivitesGrp.rapportProductionOrCount + statistiquesActivitesGra.rapportProductionOrCount
       ? Math.round(
-          ((statistiquesActivitesGrp.activitesDeposesQuantiteCount +
-            statistiquesActivitesGra.activitesDeposesQuantiteCount) *
-            100) /
-            (statistiquesActivitesGrp.rapportProductionOrCount +
-              statistiquesActivitesGra.rapportProductionOrCount)
+          ((statistiquesActivitesGrp.activitesDeposesQuantiteCount + statistiquesActivitesGra.activitesDeposesQuantiteCount) * 100) /
+            (statistiquesActivitesGrp.rapportProductionOrCount + statistiquesActivitesGra.rapportProductionOrCount)
         )
       : 0
 
@@ -184,19 +134,13 @@ const statistiquesGuyaneAnneeBuild = (
     titresAxm,
     titresCxm,
     orNet: Math.floor(statistiquesActivitesGra.auru),
-    carburantConventionnel: Math.floor(
-      statistiquesActivitesGrp.carburantConventionnel / 1000
-    ), // milliers de litres
-    carburantDetaxe: Math.floor(
-      statistiquesActivitesGrp.carburantDetaxe / 1000
-    ), // milliers de litres
+    carburantConventionnel: Math.floor(statistiquesActivitesGrp.carburantConventionnel / 1000), // milliers de litres
+    carburantDetaxe: Math.floor(statistiquesActivitesGrp.carburantDetaxe / 1000), // milliers de litres
     mercure: Math.floor(statistiquesActivitesGrp.mercure),
     environnementCout: Math.floor(statistiquesActivitesGrp.environnement),
     effectifs: Math.round(statistiquesActivitesGrp.effectifs / 4), // somme des effectifs sur 4 trimestre
-    activitesDeposesQuantite:
-      statistiquesActivitesGrp.activitesDeposesQuantiteCount +
-      statistiquesActivitesGra.activitesDeposesQuantiteCount,
-    activitesDeposesRatio
+    activitesDeposesQuantite: statistiquesActivitesGrp.activitesDeposesQuantiteCount + statistiquesActivitesGra.activitesDeposesQuantiteCount,
+    activitesDeposesRatio,
   }
 }
 
@@ -217,13 +161,13 @@ export const statistiquesGuyane = async () => {
       {
         domainesIds: ['m'],
         typesIds: ['ar', 'pr', 'ax', 'px', 'cx'],
-        territoires: 'guyane'
+        territoires: 'guyane',
       },
       {
         fields: {
           surfaceEtape: { id: {} },
-          demarches: { phase: { id: {} }, etapes: { id: {} }, type: { id: {} } }
-        }
+          demarches: { phase: { id: {} }, etapes: { id: {} }, type: { id: {} } },
+        },
       },
       userSuper
     )
@@ -232,17 +176,15 @@ export const statistiquesGuyane = async () => {
       {
         titresTerritoires: 'guyane',
         annees: annees.map(annee => +annee),
-        typesIds: ['grp', 'gra', 'grx']
+        typesIds: ['grp', 'gra', 'grx'],
       },
       { fields: { titre: { id: {} } } },
       userSuper
     )
 
     return {
-      annees: annees.map(annee =>
-        statistiquesGuyaneAnneeBuild(titres, titresActivites, annee)
-      ),
-      ...statistiquesGuyaneInstantBuild(titres)
+      annees: annees.map(annee => statistiquesGuyaneAnneeBuild(titres, titresActivites, annee)),
+      ...statistiquesGuyaneInstantBuild(titres),
     }
   } catch (e) {
     console.error(e)
@@ -251,33 +193,20 @@ export const statistiquesGuyane = async () => {
   }
 }
 
-export const getGuyaneStatsInside =
-  async (): Promise<StatistiquesGuyaneData> => {
-    const guyane = [DEPARTEMENT_IDS.Guyane]
-    const armData = await evolutionTitres(
-      TITRES_TYPES_TYPES_IDS.AUTORISATION_DE_RECHERCHE,
-      guyane
-    )
-    const prmData = await evolutionTitres(
-      TITRES_TYPES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES,
-      guyane
-    )
-    const axmData = await evolutionTitres(
-      TITRES_TYPES_TYPES_IDS.AUTORISATION_D_EXPLOITATION,
-      guyane
-    )
-    const cxmData = await evolutionTitres(
-      TITRES_TYPES_TYPES_IDS.CONCESSION,
-      guyane
-    )
+export const getGuyaneStatsInside = async (): Promise<StatistiquesGuyaneData> => {
+  const guyane = [DEPARTEMENT_IDS.Guyane]
+  const armData = await evolutionTitres(TITRES_TYPES_TYPES_IDS.AUTORISATION_DE_RECHERCHE, guyane)
+  const prmData = await evolutionTitres(TITRES_TYPES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES, guyane)
+  const axmData = await evolutionTitres(TITRES_TYPES_TYPES_IDS.AUTORISATION_D_EXPLOITATION, guyane)
+  const cxmData = await evolutionTitres(TITRES_TYPES_TYPES_IDS.CONCESSION, guyane)
 
-    const fromObjection = await statistiquesGuyane()
+  const fromObjection = await statistiquesGuyane()
 
-    return {
-      arm: armData,
-      prm: prmData,
-      axm: axmData,
-      cxm: cxmData,
-      ...fromObjection
-    }
+  return {
+    arm: armData,
+    prm: prmData,
+    axm: axmData,
+    cxm: cxmData,
+    ...fromObjection,
   }
+}
diff --git a/packages/api/src/api/rest/statistiques/index.ts b/packages/api/src/api/rest/statistiques/index.ts
index 36dbe1952..1f45ba4a5 100644
--- a/packages/api/src/api/rest/statistiques/index.ts
+++ b/packages/api/src/api/rest/statistiques/index.ts
@@ -1,11 +1,6 @@
 import { CustomResponse } from '../express-type.js'
 import express from 'express'
-import {
-  StatistiquesMinerauxMetauxMetropole,
-  StatistiquesDGTM,
-  StatistiquesGuyaneData,
-  StatistiquesGranulatsMarins
-} from 'camino-common/src/statistiques.js'
+import { StatistiquesMinerauxMetauxMetropole, StatistiquesDGTM, StatistiquesGuyaneData, StatistiquesGranulatsMarins } from 'camino-common/src/statistiques.js'
 import { getMinerauxMetauxMetropolesStatsInside } from './metaux-metropole.js'
 
 import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
@@ -15,10 +10,7 @@ import { getGuyaneStatsInside } from './guyane.js'
 import { isAdministration, User } from 'camino-common/src/roles.js'
 import { statistiquesGranulatsMarins } from './granulats-marins.js'
 
-export const getDGTMStats = async (
-  req: express.Request,
-  res: CustomResponse<StatistiquesDGTM>
-) => {
+export const getDGTMStats = async (req: express.Request, res: CustomResponse<StatistiquesDGTM>) => {
   const user = req.user as User
 
   const administrationId = ADMINISTRATION_IDS['DGTM - GUYANE']
@@ -32,10 +24,7 @@ export const getDGTMStats = async (
   }
 }
 
-export const getMinerauxMetauxMetropolesStats = async (
-  _req: express.Request,
-  res: CustomResponse<StatistiquesMinerauxMetauxMetropole>
-): Promise<void> => {
+export const getMinerauxMetauxMetropolesStats = async (_req: express.Request, res: CustomResponse<StatistiquesMinerauxMetauxMetropole>): Promise<void> => {
   try {
     res.json(await getMinerauxMetauxMetropolesStatsInside())
   } catch (e) {
@@ -45,10 +34,7 @@ export const getMinerauxMetauxMetropolesStats = async (
   }
 }
 
-export const getGuyaneStats = async (
-  _req: express.Request,
-  res: CustomResponse<StatistiquesGuyaneData>
-): Promise<void> => {
+export const getGuyaneStats = async (_req: express.Request, res: CustomResponse<StatistiquesGuyaneData>): Promise<void> => {
   try {
     res.json(await getGuyaneStatsInside())
   } catch (e) {
@@ -58,10 +44,7 @@ export const getGuyaneStats = async (
   }
 }
 
-export const getGranulatsMarinsStats = async (
-  _req: express.Request,
-  res: CustomResponse<StatistiquesGranulatsMarins>
-): Promise<void> => {
+export const getGranulatsMarinsStats = async (_req: express.Request, res: CustomResponse<StatistiquesGranulatsMarins>): Promise<void> => {
   try {
     res.json(await statistiquesGranulatsMarins())
   } catch (e) {
diff --git a/packages/api/src/api/rest/statistiques/metaux-metropole.ts b/packages/api/src/api/rest/statistiques/metaux-metropole.ts
index 15ead5c5a..929773ffe 100644
--- a/packages/api/src/api/rest/statistiques/metaux-metropole.ts
+++ b/packages/api/src/api/rest/statistiques/metaux-metropole.ts
@@ -1,186 +1,126 @@
-import {
-  FiscaliteParSubstanceParAnnee,
-  StatistiquesMinerauxMetauxMetropole,
-  StatistiquesMinerauxMetauxMetropoleSels,
-  substancesFiscalesStats
-} from 'camino-common/src/statistiques.js'
-import {
-  CaminoAnnee,
-  anneeSuivante,
-  toCaminoAnnee
-} from 'camino-common/src/date.js'
+import { FiscaliteParSubstanceParAnnee, StatistiquesMinerauxMetauxMetropole, StatistiquesMinerauxMetauxMetropoleSels, substancesFiscalesStats } from 'camino-common/src/statistiques.js'
+import { CaminoAnnee, anneeSuivante, toCaminoAnnee } from 'camino-common/src/date.js'
 import { fromUniteFiscaleToUnite } from 'camino-common/src/static/unites.js'
 import { knex } from '../../../knex.js'
 import { userSuper } from '../../../database/user-super.js'
 import { titresGet } from '../../../database/queries/titres.js'
 import { TitresStatutIds } from 'camino-common/src/static/titresStatuts.js'
-import {
-  SubstanceFiscaleId,
-  SubstancesFiscale,
-  SUBSTANCES_FISCALES_IDS
-} from 'camino-common/src/static/substancesFiscales.js'
-import {
-  CodePostal,
-  Departements,
-  departementsMetropole,
-  toDepartementId
-} from 'camino-common/src/static/departement.js'
+import { SubstanceFiscaleId, SubstancesFiscale, SUBSTANCES_FISCALES_IDS } from 'camino-common/src/static/substancesFiscales.js'
+import { CodePostal, Departements, departementsMetropole, toDepartementId } from 'camino-common/src/static/departement.js'
 import { REGION_IDS } from 'camino-common/src/static/region.js'
-import {
-  apiOpenfiscaCalculate,
-  OpenfiscaRequest,
-  redevanceCommunale,
-  redevanceDepartementale,
-  substanceFiscaleToInput
-} from '../../../tools/api-openfisca/index.js'
+import { apiOpenfiscaCalculate, OpenfiscaRequest, redevanceCommunale, redevanceDepartementale, substanceFiscaleToInput } from '../../../tools/api-openfisca/index.js'
 import { onlyUnique } from 'camino-common/src/typescript-tools.js'
 import { TITRES_TYPES_TYPES_IDS } from 'camino-common/src/static/titresTypesTypes.js'
 import { evolutionTitres } from './evolution-titres.js'
 
-export const getMinerauxMetauxMetropolesStatsInside =
-  async (): Promise<StatistiquesMinerauxMetauxMetropole> => {
-    const result = await statistiquesMinerauxMetauxMetropoleInstantBuild()
-    const substances = await buildSubstances()
-    const fiscaliteParSubstanceParAnnee = await fiscaliteDetail()
-    const prmData = await evolutionTitres(
-      TITRES_TYPES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES,
-      departementsMetropole
-    )
-    const cxmData = await evolutionTitres(
-      TITRES_TYPES_TYPES_IDS.CONCESSION,
-      departementsMetropole
-    )
+export const getMinerauxMetauxMetropolesStatsInside = async (): Promise<StatistiquesMinerauxMetauxMetropole> => {
+  const result = await statistiquesMinerauxMetauxMetropoleInstantBuild()
+  const substances = await buildSubstances()
+  const fiscaliteParSubstanceParAnnee = await fiscaliteDetail()
+  const prmData = await evolutionTitres(TITRES_TYPES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES, departementsMetropole)
+  const cxmData = await evolutionTitres(TITRES_TYPES_TYPES_IDS.CONCESSION, departementsMetropole)
 
-    return {
-      ...result,
-      ...substances,
-      fiscaliteParSubstanceParAnnee,
-      prm: prmData,
-      cxm: cxmData
-    }
+  return {
+    ...result,
+    ...substances,
+    fiscaliteParSubstanceParAnnee,
+    prm: prmData,
+    cxm: cxmData,
   }
+}
 
 const sels = [
   SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodiumContenu_,
   SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitEnDissolutionParSondage,
-  SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitParAbattage
+  SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitParAbattage,
 ] as const
 type Sels = (typeof sels)[number]
 
-type StatistiquesMinerauxMetauxMetropoleInstantBuild = Pick<
-  StatistiquesMinerauxMetauxMetropole,
-  'surfaceExploration' | 'surfaceExploitation' | 'titres'
->
-const statistiquesMinerauxMetauxMetropoleInstantBuild =
-  async (): Promise<StatistiquesMinerauxMetauxMetropoleInstantBuild> => {
-    const titres = await titresGet(
-      {
-        domainesIds: ['m'],
-        typesIds: ['ar', 'ap', 'pr', 'ax', 'px', 'cx'],
-        territoires: 'FR'
+type StatistiquesMinerauxMetauxMetropoleInstantBuild = Pick<StatistiquesMinerauxMetauxMetropole, 'surfaceExploration' | 'surfaceExploitation' | 'titres'>
+const statistiquesMinerauxMetauxMetropoleInstantBuild = async (): Promise<StatistiquesMinerauxMetauxMetropoleInstantBuild> => {
+  const titres = await titresGet(
+    {
+      domainesIds: ['m'],
+      typesIds: ['ar', 'ap', 'pr', 'ax', 'px', 'cx'],
+      territoires: 'FR',
+    },
+    {
+      fields: {
+        surfaceEtape: { id: {} },
+        demarches: {
+          phase: { id: {} },
+          etapes: { id: {} },
+          type: { id: {} },
+        },
+        communes: { id: {} },
       },
-      {
-        fields: {
-          surfaceEtape: { id: {} },
-          demarches: {
-            phase: { id: {} },
-            etapes: { id: {} },
-            type: { id: {} }
-          },
-          communes: { id: {} }
+    },
+    userSuper
+  )
+  const statsInstant: StatistiquesMinerauxMetauxMetropoleInstantBuild = titres.reduce(
+    (acc, titre) => {
+      if (titre.titreStatutId && ['val', 'mod', 'dmi'].includes(titre.titreStatutId)) {
+        if (!titre.surfaceEtape) {
+          console.warn(`ce titre ${titre.slug} n'a pas de surface`)
         }
-      },
-      userSuper
-    )
-    const statsInstant: StatistiquesMinerauxMetauxMetropoleInstantBuild =
-      titres.reduce(
-        (acc, titre) => {
-          if (
-            titre.titreStatutId &&
-            ['val', 'mod', 'dmi'].includes(titre.titreStatutId)
-          ) {
-            if (!titre.surfaceEtape) {
-              console.warn(`ce titre ${titre.slug} n'a pas de surface`)
-            }
-            if (['arm', 'apm', 'prm'].includes(titre.typeId!)) {
-              acc.surfaceExploration += titre.surfaceEtape?.surface ?? 0
-              if (['mod', 'dmi'].includes(titre.titreStatutId!)) {
-                acc.titres.instructionExploration++
-              }
-            } else {
-              if (['val', 'mod'].includes(titre.titreStatutId)) {
-                acc.surfaceExploitation += titre.surfaceEtape?.surface ?? 0
-              }
-              if (['mod', 'dmi'].includes(titre.titreStatutId!)) {
-                acc.titres.instructionExploitation++
-              }
-            }
-            if (TitresStatutIds.Valide === titre.titreStatutId) {
-              if (titre.typeId === 'prm') {
-                acc.titres.valPrm++
-              }
-              if (titre.typeId === 'cxm') {
-                acc.titres.valCxm++
-              }
-            }
+        if (['arm', 'apm', 'prm'].includes(titre.typeId!)) {
+          acc.surfaceExploration += titre.surfaceEtape?.surface ?? 0
+          if (['mod', 'dmi'].includes(titre.titreStatutId!)) {
+            acc.titres.instructionExploration++
           }
-
-          return acc
-        },
-        {
-          surfaceExploration: 0,
-          surfaceExploitation: 0,
-          titres: {
-            instructionExploration: 0,
-            valPrm: 0,
-            instructionExploitation: 0,
-            valCxm: 0
+        } else {
+          if (['val', 'mod'].includes(titre.titreStatutId)) {
+            acc.surfaceExploitation += titre.surfaceEtape?.surface ?? 0
+          }
+          if (['mod', 'dmi'].includes(titre.titreStatutId!)) {
+            acc.titres.instructionExploitation++
+          }
+        }
+        if (TitresStatutIds.Valide === titre.titreStatutId) {
+          if (titre.typeId === 'prm') {
+            acc.titres.valPrm++
+          }
+          if (titre.typeId === 'cxm') {
+            acc.titres.valCxm++
           }
         }
-      )
-
-    statsInstant.surfaceExploration = Math.floor(
-      statsInstant.surfaceExploration * 100
-    ) // conversion 1 km² = 100 ha
-    statsInstant.surfaceExploitation = Math.floor(
-      statsInstant.surfaceExploitation * 100
-    ) // conversion 1 km² = 100 ha
-
-    return statsInstant
-  }
-const buildSubstances = async (): Promise<
-  Pick<StatistiquesMinerauxMetauxMetropole, 'substances'>
-> => {
-  const bauxite = SUBSTANCES_FISCALES_IDS.bauxite
-  const resultSubstances: { annee: CaminoAnnee; substance: number }[] =
-    await knex
-      .select(
-        'annee',
-        knex.raw(
-          "titres_activites.contenu->'substancesFiscales'-> ?  as substance",
-          bauxite
-        )
-      )
-      .from('titres_activites')
-      .whereRaw(
-        `titres_activites.contenu -> 'substancesFiscales' \\? '${bauxite}'`
-      )
-
-  const bauxiteResult = resultSubstances.reduce<Record<CaminoAnnee, number>>(
-    (acc, dateSubstance) => {
-      const annee = dateSubstance.annee
-      if (!acc[annee]) {
-        acc[annee] = 0
       }
-      acc[annee] += fromUniteFiscaleToUnite(
-        SubstancesFiscale[bauxite].uniteId,
-        dateSubstance.substance
-      )
 
       return acc
     },
-    {}
+    {
+      surfaceExploration: 0,
+      surfaceExploitation: 0,
+      titres: {
+        instructionExploration: 0,
+        valPrm: 0,
+        instructionExploitation: 0,
+        valCxm: 0,
+      },
+    }
   )
+
+  statsInstant.surfaceExploration = Math.floor(statsInstant.surfaceExploration * 100) // conversion 1 km² = 100 ha
+  statsInstant.surfaceExploitation = Math.floor(statsInstant.surfaceExploitation * 100) // conversion 1 km² = 100 ha
+
+  return statsInstant
+}
+const buildSubstances = async (): Promise<Pick<StatistiquesMinerauxMetauxMetropole, 'substances'>> => {
+  const bauxite = SUBSTANCES_FISCALES_IDS.bauxite
+  const resultSubstances: { annee: CaminoAnnee; substance: number }[] = await knex
+    .select('annee', knex.raw("titres_activites.contenu->'substancesFiscales'-> ?  as substance", bauxite))
+    .from('titres_activites')
+    .whereRaw(`titres_activites.contenu -> 'substancesFiscales' \\? '${bauxite}'`)
+
+  const bauxiteResult = resultSubstances.reduce<Record<CaminoAnnee, number>>((acc, dateSubstance) => {
+    const annee = dateSubstance.annee
+    if (!acc[annee]) {
+      acc[annee] = 0
+    }
+    acc[annee] += fromUniteFiscaleToUnite(SubstancesFiscale[bauxite].uniteId, dateSubstance.substance)
+
+    return acc
+  }, {})
   // 2022-09-30 Valeurs fournies par Laure dans mattermost : https://mattermost.incubateur.net/camino/pl/3n4y958n6idwbrr4me5rkma1oy
   bauxiteResult[toCaminoAnnee('2009')] = 178.7
   bauxiteResult[toCaminoAnnee('2010')] = 132.302
@@ -205,20 +145,14 @@ const buildSubstances = async (): Promise<
     .select(
       'titres_activites.annee',
       'tc.commune_id',
-      knex.raw(
-        "titres_activites.contenu->'substancesFiscales'->'nacc' as nacc"
-      ),
-      knex.raw(
-        "titres_activites.contenu->'substancesFiscales'->'naca' as naca"
-      ),
+      knex.raw("titres_activites.contenu->'substancesFiscales'->'nacc' as nacc"),
+      knex.raw("titres_activites.contenu->'substancesFiscales'->'naca' as naca"),
       knex.raw("titres_activites.contenu->'substancesFiscales'->'nacb' as nacb")
     )
     .distinctOn('titres.slug', 'titres_activites.annee')
     .from('titres_activites')
     .leftJoin('titres', 'titres.id', 'titres_activites.titre_id')
-    .joinRaw(
-      "left join titres_communes tc on tc.titre_etape_id  = titres.props_titre_etapes_ids ->> 'points'"
-    )
+    .joinRaw("left join titres_communes tc on tc.titre_etape_id  = titres.props_titre_etapes_ids ->> 'points'")
     .whereRaw("titres_activites.contenu -> 'substancesFiscales' \\? 'nacc'")
     .orWhereRaw("titres_activites.contenu -> 'substancesFiscales' \\? 'nacb'")
     .orWhereRaw("titres_activites.contenu -> 'substancesFiscales' \\? 'naca'")
@@ -239,21 +173,16 @@ const buildSubstances = async (): Promise<
         if (!acc[substance][annee]) {
           acc[substance][annee] = {}
         }
-        const valeur = fromUniteFiscaleToUnite(
-          SubstancesFiscale[substance].uniteId,
-          parseInt(stat[substance], 10)
-        )
-        acc[substance][annee][regionId] =
-          valeur + (acc[substance][annee][regionId] ?? 0)
+        const valeur = fromUniteFiscaleToUnite(SubstancesFiscale[substance].uniteId, parseInt(stat[substance], 10))
+        acc[substance][annee][regionId] = valeur + (acc[substance][annee][regionId] ?? 0)
       }
 
       return acc
     },
     {
       [SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodiumContenu_]: {},
-      [SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitEnDissolutionParSondage]:
-        {},
-      [SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitParAbattage]: {}
+      [SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitEnDissolutionParSondage]: {},
+      [SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitParAbattage]: {},
     }
   )
 
@@ -264,7 +193,7 @@ const buildSubstances = async (): Promise<
     [REGION_IDS['Grand Est']]: 2692.7,
     [REGION_IDS['Nouvelle-Aquitaine']]: 48.724,
     [REGION_IDS["Provence-Alpes-Côte d'Azur"]]: 274.732,
-    [REGION_IDS.Occitanie]: 867.001
+    [REGION_IDS.Occitanie]: 867.001,
   }
   selsStats.naca[toCaminoAnnee(2010)] = {
     [REGION_IDS['Auvergne-Rhône-Alpes']]: 579.385,
@@ -272,7 +201,7 @@ const buildSubstances = async (): Promise<
     [REGION_IDS['Grand Est']]: 2995.599,
     [REGION_IDS['Nouvelle-Aquitaine']]: 37.23,
     [REGION_IDS["Provence-Alpes-Côte d'Azur"]]: 500.564,
-    [REGION_IDS.Occitanie]: 990.091
+    [REGION_IDS.Occitanie]: 990.091,
   }
   selsStats.naca[toCaminoAnnee(2011)] = {
     [REGION_IDS['Auvergne-Rhône-Alpes']]: 959.442,
@@ -280,7 +209,7 @@ const buildSubstances = async (): Promise<
     [REGION_IDS['Grand Est']]: 2959.7,
     [REGION_IDS['Nouvelle-Aquitaine']]: 32.425,
     [REGION_IDS["Provence-Alpes-Côte d'Azur"]]: 421.48,
-    [REGION_IDS.Occitanie]: 958.849
+    [REGION_IDS.Occitanie]: 958.849,
   }
   selsStats.naca[toCaminoAnnee(2012)] = {
     [REGION_IDS['Auvergne-Rhône-Alpes']]: 936.78,
@@ -288,7 +217,7 @@ const buildSubstances = async (): Promise<
     [REGION_IDS['Grand Est']]: 2426.62,
     [REGION_IDS['Nouvelle-Aquitaine']]: 35.97,
     [REGION_IDS["Provence-Alpes-Côte d'Azur"]]: 1042.67,
-    [REGION_IDS.Occitanie]: 797.099
+    [REGION_IDS.Occitanie]: 797.099,
   }
   selsStats.naca[toCaminoAnnee(2013)] = {
     [REGION_IDS['Auvergne-Rhône-Alpes']]: 907.994,
@@ -296,7 +225,7 @@ const buildSubstances = async (): Promise<
     [REGION_IDS['Grand Est']]: 2703.049,
     [REGION_IDS['Nouvelle-Aquitaine']]: 37.79,
     [REGION_IDS["Provence-Alpes-Côte d'Azur"]]: 1300.854,
-    [REGION_IDS.Occitanie]: 1010.892
+    [REGION_IDS.Occitanie]: 1010.892,
   }
   selsStats.naca[toCaminoAnnee(2014)] = {
     [REGION_IDS['Auvergne-Rhône-Alpes']]: 763.55,
@@ -304,7 +233,7 @@ const buildSubstances = async (): Promise<
     [REGION_IDS['Grand Est']]: 1552.197,
     [REGION_IDS['Nouvelle-Aquitaine']]: 34.285,
     [REGION_IDS["Provence-Alpes-Côte d'Azur"]]: 843.83,
-    [REGION_IDS.Occitanie]: 1062.216
+    [REGION_IDS.Occitanie]: 1062.216,
   }
   selsStats.naca[toCaminoAnnee(2015)] = {
     [REGION_IDS['Auvergne-Rhône-Alpes']]: 799.949,
@@ -312,7 +241,7 @@ const buildSubstances = async (): Promise<
     [REGION_IDS['Grand Est']]: 2444.74,
     [REGION_IDS['Nouvelle-Aquitaine']]: 37.303,
     [REGION_IDS["Provence-Alpes-Côte d'Azur"]]: 135.02,
-    [REGION_IDS.Occitanie]: 1007.542
+    [REGION_IDS.Occitanie]: 1007.542,
   }
   selsStats.naca[toCaminoAnnee(2016)] = {
     [REGION_IDS['Auvergne-Rhône-Alpes']]: 830.577,
@@ -320,7 +249,7 @@ const buildSubstances = async (): Promise<
     [REGION_IDS['Grand Est']]: 2377.175,
     [REGION_IDS['Nouvelle-Aquitaine']]: 35.841,
     [REGION_IDS["Provence-Alpes-Côte d'Azur"]]: 95.859,
-    [REGION_IDS.Occitanie]: 926.388
+    [REGION_IDS.Occitanie]: 926.388,
   }
   selsStats.naca[toCaminoAnnee(2017)] = {
     [REGION_IDS['Auvergne-Rhône-Alpes']]: 869.676,
@@ -328,7 +257,7 @@ const buildSubstances = async (): Promise<
     [REGION_IDS['Grand Est']]: 2585.934,
     [REGION_IDS['Nouvelle-Aquitaine']]: 34.219,
     [REGION_IDS["Provence-Alpes-Côte d'Azur"]]: 91.718,
-    [REGION_IDS.Occitanie]: 1082.021
+    [REGION_IDS.Occitanie]: 1082.021,
   }
   selsStats.naca[toCaminoAnnee(2018)] = {
     [REGION_IDS['Auvergne-Rhône-Alpes']]: 870.718,
@@ -336,7 +265,7 @@ const buildSubstances = async (): Promise<
     [REGION_IDS['Grand Est']]: 2481.271,
     [REGION_IDS['Nouvelle-Aquitaine']]: 31.71,
     [REGION_IDS["Provence-Alpes-Côte d'Azur"]]: 150.524,
-    [REGION_IDS.Occitanie]: 997.862
+    [REGION_IDS.Occitanie]: 997.862,
   }
   selsStats.naca[toCaminoAnnee(2019)] = {
     [REGION_IDS['Auvergne-Rhône-Alpes']]: 792.394,
@@ -344,7 +273,7 @@ const buildSubstances = async (): Promise<
     [REGION_IDS['Grand Est']]: 2537.412,
     [REGION_IDS['Nouvelle-Aquitaine']]: 36.357,
     [REGION_IDS["Provence-Alpes-Côte d'Azur"]]: 196.828,
-    [REGION_IDS.Occitanie]: 997.862
+    [REGION_IDS.Occitanie]: 997.862,
   }
 
   return { substances: { aloh: bauxiteResult, ...selsStats } }
@@ -355,42 +284,35 @@ const fiscaliteDetail = async (): Promise<FiscaliteParSubstanceParAnnee> => {
   const body: OpenfiscaRequest = {
     articles: {
       pme: {
-        surface_communale: {}
+        surface_communale: {},
       },
       autre: {
-        surface_communale: {}
-      }
+        surface_communale: {},
+      },
     },
     titres: {
       pme: {
         commune_principale_exploitation: {},
         surface_totale: {},
         categorie: {},
-        articles: ['pme']
+        articles: ['pme'],
       },
       autre: {
         commune_principale_exploitation: {},
         surface_totale: {},
         categorie: {},
-        articles: ['autre']
-      }
+        articles: ['autre'],
+      },
     },
     communes: {
       [fakeCommune]: {
-        articles: ['pme', 'autre']
-      }
-    }
+        articles: ['pme', 'autre'],
+      },
+    },
   }
 
-  const sumSubstances = substancesFiscalesStats
-    .map(
-      substance =>
-        `sum((ta.contenu->'substancesFiscales'->'${substance}')::int) as ${substance}`
-    )
-    .join(',')
-  const whereSubstances = substancesFiscalesStats
-    .map(substance => `ta.contenu->'substancesFiscales' \\? '${substance}'`)
-    .join('or \n')
+  const sumSubstances = substancesFiscalesStats.map(substance => `sum((ta.contenu->'substancesFiscales'->'${substance}')::int) as ${substance}`).join(',')
+  const whereSubstances = substancesFiscalesStats.map(substance => `ta.contenu->'substancesFiscales' \\? '${substance}'`).join('or \n')
   const result: {
     rows: ({
       categorie: 'pme' | 'autre'
@@ -417,16 +339,9 @@ const fiscaliteDetail = async (): Promise<FiscaliteParSubstanceParAnnee> => {
 
     substancesFiscalesStats.forEach((substance: SubstanceFiscaleId) => {
       const substanceFiscale = SubstancesFiscale[substance]
-      ;(body.articles[categorie][redevanceCommunale(substanceFiscale)] ??= {})[
-        anneeFiscale
-      ] = null
-      ;(body.articles[categorie][redevanceDepartementale(substanceFiscale)] ??=
-        {})[anneeFiscale] = null
-      ;(body.articles[categorie][substanceFiscaleToInput(substanceFiscale)] ??=
-        {})[annee] = fromUniteFiscaleToUnite(
-        substanceFiscale.uniteId,
-        row[substance]
-      )
+      ;(body.articles[categorie][redevanceCommunale(substanceFiscale)] ??= {})[anneeFiscale] = null
+      ;(body.articles[categorie][redevanceDepartementale(substanceFiscale)] ??= {})[anneeFiscale] = null
+      ;(body.articles[categorie][substanceFiscaleToInput(substanceFiscale)] ??= {})[annee] = fromUniteFiscaleToUnite(substanceFiscale.uniteId, row[substance])
     })
 
     if (!body.titres[categorie]) {
@@ -434,11 +349,10 @@ const fiscaliteDetail = async (): Promise<FiscaliteParSubstanceParAnnee> => {
         commune_principale_exploitation: {},
         surface_totale: {},
         categorie: {},
-        articles: [categorie]
+        articles: [categorie],
       }
     }
-    ;(body.titres[categorie].commune_principale_exploitation ??= {})[annee] =
-      fakeCommune
+    ;(body.titres[categorie].commune_principale_exploitation ??= {})[annee] = fakeCommune
     ;(body.titres[categorie].surface_totale ??= {})[annee] = 1
     body.titres[categorie].categorie[annee] = categorie
   })
@@ -448,7 +362,7 @@ const fiscaliteDetail = async (): Promise<FiscaliteParSubstanceParAnnee> => {
     aloh: {},
     naca: {},
     nacb: {},
-    nacc: {}
+    nacc: {},
   }
   annees.filter(onlyUnique).forEach(annee => {
     const anneeFiscale = anneeSuivante(annee)
@@ -457,20 +371,12 @@ const fiscaliteDetail = async (): Promise<FiscaliteParSubstanceParAnnee> => {
       const substanceFiscale = SubstancesFiscale[substance]
 
       const pme =
-        (fiscaliteResult.articles.pme?.[
-          redevanceDepartementale(substanceFiscale)
-        ]?.[anneeFiscaleNumber] ?? 0) +
-        (fiscaliteResult.articles.pme?.[redevanceCommunale(substanceFiscale)]?.[
-          anneeFiscaleNumber
-        ] ?? 0)
+        (fiscaliteResult.articles.pme?.[redevanceDepartementale(substanceFiscale)]?.[anneeFiscaleNumber] ?? 0) +
+        (fiscaliteResult.articles.pme?.[redevanceCommunale(substanceFiscale)]?.[anneeFiscaleNumber] ?? 0)
 
       const autre =
-        (fiscaliteResult.articles.autre?.[
-          redevanceDepartementale(substanceFiscale)
-        ]?.[anneeFiscaleNumber] ?? 0) +
-        (fiscaliteResult.articles.autre?.[
-          redevanceCommunale(substanceFiscale)
-        ]?.[anneeFiscaleNumber] ?? 0)
+        (fiscaliteResult.articles.autre?.[redevanceDepartementale(substanceFiscale)]?.[anneeFiscaleNumber] ?? 0) +
+        (fiscaliteResult.articles.autre?.[redevanceCommunale(substanceFiscale)]?.[anneeFiscaleNumber] ?? 0)
 
       const sum = pme + autre
       if (substance in substances) {
diff --git a/packages/api/src/api/rest/titre-contenu.test.ts b/packages/api/src/api/rest/titre-contenu.test.ts
index fe492c3a7..ccf88599c 100644
--- a/packages/api/src/api/rest/titre-contenu.test.ts
+++ b/packages/api/src/api/rest/titre-contenu.test.ts
@@ -1,15 +1,12 @@
 import { contenuFormat, titreSectionsGet } from './titre-contenu.js'
 import { describe, test, expect } from 'vitest'
-import {
-  ETAPES_TYPES,
-  EtapesTypes
-} from 'camino-common/src/static/etapesTypes.js'
+import { ETAPES_TYPES, EtapesTypes } from 'camino-common/src/static/etapesTypes.js'
 describe('formatage du contenu', () => {
   test("formate le contenu d'un titre", () => {
     expect(
       contenuFormat({
         contenusTitreEtapesIds: {
-          section: { prop1: 'etape-id', prop2: 'etape-id' }
+          section: { prop1: 'etape-id', prop2: 'etape-id' },
         },
         demarches: [
           {
@@ -19,13 +16,13 @@ describe('formatage du contenu', () => {
                 contenu: {
                   section: {
                     prop1: 'valeur 1',
-                    prop2: 'valeur 2'
-                  }
-                }
-              }
-            ]
-          }
-        ]
+                    prop2: 'valeur 2',
+                  },
+                },
+              },
+            ],
+          },
+        ],
       })
     ).toMatchObject({ section: { prop1: 'valeur 1', prop2: 'valeur 2' } })
   })
@@ -35,10 +32,10 @@ describe('formatage du contenu', () => {
       contenuFormat({
         contenusTitreEtapesIds: {
           section: {
-            prop: 'etape-id'
-          }
+            prop: 'etape-id',
+          },
         },
-        demarches: []
+        demarches: [],
       })
     ).toMatchObject({})
 
@@ -46,10 +43,10 @@ describe('formatage du contenu', () => {
       contenuFormat({
         contenusTitreEtapesIds: {
           section: {
-            prop: 'etape-id'
-          }
+            prop: 'etape-id',
+          },
         },
-        demarches: [{ etapes: null }]
+        demarches: [{ etapes: null }],
       })
     ).toMatchObject({})
 
@@ -57,10 +54,10 @@ describe('formatage du contenu', () => {
       contenuFormat({
         contenusTitreEtapesIds: {
           section: {
-            prop: 'etape-id'
-          }
+            prop: 'etape-id',
+          },
         },
-        demarches: [{ etapes: [] }]
+        demarches: [{ etapes: [] }],
       })
     ).toMatchObject({})
   })
@@ -71,7 +68,7 @@ describe('titreSectionsGet', () => {
     expect(
       titreSectionsGet({
         contenusTitreEtapesIds: {
-          section: { prop1: 'etape-id', prop2: 'etape-id' }
+          section: { prop1: 'etape-id', prop2: 'etape-id' },
         },
         demarches: [
           {
@@ -86,21 +83,21 @@ describe('titreSectionsGet', () => {
                       id: 'section',
                       elements: [
                         { id: 'prop1', nom: 'Prop 1', type: 'text' },
-                        { id: 'prop2', nom: 'Prop 2', type: 'number' }
-                      ]
-                    }
-                  ]
+                        { id: 'prop2', nom: 'Prop 2', type: 'number' },
+                      ],
+                    },
+                  ],
                 },
                 contenu: {
                   section: {
                     prop1: 'valeur 1',
-                    prop2: 2
-                  }
-                }
-              }
-            ]
-          }
-        ]
+                    prop2: 2,
+                  },
+                },
+              },
+            ],
+          },
+        ],
       })
     ).toMatchInlineSnapshot(`
       [
diff --git a/packages/api/src/api/rest/titre-contenu.ts b/packages/api/src/api/rest/titre-contenu.ts
index 12b08b979..389f6aa87 100644
--- a/packages/api/src/api/rest/titre-contenu.ts
+++ b/packages/api/src/api/rest/titre-contenu.ts
@@ -11,14 +11,12 @@ import { User } from 'camino-common/src/roles.js'
  */
 export const contenuFormat = ({
   demarches,
-  contenusTitreEtapesIds
+  contenusTitreEtapesIds,
 }: {
   demarches: {
     etapes?: Pick<ITitreEtape, 'id' | 'contenu'>[] | undefined | null
   }[]
-  contenusTitreEtapesIds: NonNullable<
-    Required<ITitre['contenusTitreEtapesIds']>
-  >
+  contenusTitreEtapesIds: NonNullable<Required<ITitre['contenusTitreEtapesIds']>>
 }): IContenu => {
   if (!demarches?.length) return {}
 
@@ -40,11 +38,7 @@ export const contenuFormat = ({
 
       const etape = etapesIndex[etapeId]
 
-      if (
-        etape?.contenu &&
-        etape.contenu[sectionId] &&
-        etape.contenu[sectionId][propId] !== undefined
-      ) {
+      if (etape?.contenu && etape.contenu[sectionId] && etape.contenu[sectionId][propId] !== undefined) {
         if (!contenu[sectionId]) {
           contenu[sectionId] = {}
         }
@@ -58,17 +52,11 @@ export const contenuFormat = ({
 }
 export const titreSectionsGet = ({
   demarches,
-  contenusTitreEtapesIds
+  contenusTitreEtapesIds,
 }: {
   demarches?:
     | {
-        etapes?:
-          | Pick<
-              ITitreEtape,
-              'id' | 'contenu' | 'type' | 'sectionsSpecifiques'
-            >[]
-          | undefined
-          | null
+        etapes?: Pick<ITitreEtape, 'id' | 'contenu' | 'type' | 'sectionsSpecifiques'>[] | undefined | null
       }[]
     | null
     | undefined
@@ -120,26 +108,15 @@ export const titreSectionsGet = ({
                 // sinon, si l'étape correspond à l'id de `contenusTitreEtapesIds`
                 // et que l'étape n'a ni contenu ni section ni l'élément qui nous intéresse
                 // on ne cherche pas plus loin
-                if (
-                  etape.contenu &&
-                  etape.contenu[sectionId] &&
-                  etape.contenu[sectionId][elementId] !== undefined &&
-                  etape.type?.sections
-                ) {
-                  const etapeSection = etape.type.sections.find(
-                    s => s.id === sectionId
-                  )
+                if (etape.contenu && etape.contenu[sectionId] && etape.contenu[sectionId][elementId] !== undefined && etape.type?.sections) {
+                  const etapeSection = etape.type.sections.find(s => s.id === sectionId)
 
                   if (etapeSection && etapeSection.elements) {
-                    const etapeElement = etapeSection.elements.find(
-                      e => e.id === elementId
-                    )
+                    const etapeElement = etapeSection.elements.find(e => e.id === elementId)
 
                     if (etapeElement) {
                       // ajoute la section dans le titre si elle n'existe pas encore
-                      let titreTypeSection = sections.find(
-                        s => s.id === sectionId
-                      )
+                      let titreTypeSection = sections.find(s => s.id === sectionId)
 
                       if (!titreTypeSection) {
                         titreTypeSection = { ...etapeSection, elements: [] }
@@ -152,9 +129,7 @@ export const titreSectionsGet = ({
                       }
 
                       // ajoute l'élément dans les sections du titre s'il n'existe pas encore
-                      const titreElement = titreTypeSection.elements.find(
-                        e => e.id === elementId
-                      )
+                      const titreElement = titreTypeSection.elements.find(e => e.id === elementId)
                       const value = etape.contenu[sectionId][elementId]
                       if (value !== null) {
                         if (!titreElement) {
@@ -162,7 +137,7 @@ export const titreSectionsGet = ({
                             ...etapeElement,
                             // eslint-disable-next-line @typescript-eslint/ban-ts-comment
                             // @ts-ignore
-                            value
+                            value,
                           })
                         }
                       }
@@ -180,10 +155,7 @@ export const titreSectionsGet = ({
   return sections
 }
 
-export const getTitresSections = async (
-  req: express.Request,
-  res: CustomResponse<Section[]>
-): Promise<void> => {
+export const getTitresSections = async (req: express.Request, res: CustomResponse<Section[]>): Promise<void> => {
   try {
     const titreId: string | undefined = req.params.titreId
     if (!titreId) {
@@ -200,10 +172,10 @@ export const getTitresSections = async (
           demarches: {
             type: { etapesTypes: { id: {} } },
             etapes: {
-              type: { id: {} }
-            }
-          }
-        }
+              type: { id: {} },
+            },
+          },
+        },
       },
       user
     )
diff --git a/packages/api/src/api/rest/titres.test.integration.ts b/packages/api/src/api/rest/titres.test.integration.ts
index 6963ab68c..31b0d90d0 100644
--- a/packages/api/src/api/rest/titres.test.integration.ts
+++ b/packages/api/src/api/rest/titres.test.integration.ts
@@ -16,15 +16,13 @@ let knex: Knex<any, unknown[]>
 beforeAll(async () => {
   knex = await dbManager.populateDb()
 
-  const entreprises = await entreprisesUpsert([
-    { id: newEntrepriseId('plop'), nom: 'Mon Entreprise' }
-  ])
+  const entreprises = await entreprisesUpsert([{ id: newEntrepriseId('plop'), nom: 'Mon Entreprise' }])
   await titreCreate(
     {
       nom: 'mon titre simple',
       typeId: 'arm',
       titreStatutId: 'val',
-      propsTitreEtapesIds: {}
+      propsTitreEtapesIds: {},
     },
     {}
   )
@@ -36,26 +34,26 @@ beforeAll(async () => {
         typeId: 'mfr',
         statutId: 'fai',
         date: toCaminoDate('2022-01-01'),
-        ordre: 0
+        ordre: 0,
       },
       {
         typeId: 'mdp',
         statutId: 'fai',
         date: toCaminoDate('2022-02-01'),
-        ordre: 1
+        ordre: 1,
       },
       {
         typeId: 'pfd',
         statutId: 'fai',
         date: toCaminoDate('2022-02-10'),
-        ordre: 2
+        ordre: 2,
       },
       {
         typeId: 'mcp',
         statutId: 'com',
         date: toCaminoDate('2022-03-10'),
-        ordre: 3
-      }
+        ordre: 3,
+      },
     ],
     entreprises
   )
@@ -66,20 +64,20 @@ beforeAll(async () => {
         typeId: 'mfr',
         statutId: 'fai',
         date: toCaminoDate('2022-01-01'),
-        ordre: 0
+        ordre: 0,
       },
       {
         typeId: 'mdp',
         statutId: 'fai',
         date: toCaminoDate('2022-02-01'),
-        ordre: 1
+        ordre: 1,
       },
       {
         typeId: 'pfd',
         statutId: 'fai',
         date: toCaminoDate('2022-02-10'),
-        ordre: 2
-      }
+        ordre: 2,
+      },
     ],
     entreprises
   )
@@ -89,17 +87,14 @@ afterAll(async () => {
   await dbManager.closeKnex()
 })
 
-const titreEtapesCreate = async (
-  demarche: ITitreDemarche,
-  etapes: Omit<ITitreEtape, 'id' | 'titreDemarcheId'>[]
-) => {
+const titreEtapesCreate = async (demarche: ITitreDemarche, etapes: Omit<ITitreEtape, 'id' | 'titreDemarcheId'>[]) => {
   const etapesCrees = []
   for (const etape of etapes) {
     etapesCrees.push(
       await titreEtapeCreate(
         {
           ...etape,
-          titreDemarcheId: demarche.id
+          titreDemarcheId: demarche.id,
         },
         userSuper,
         demarche.titreId
@@ -110,11 +105,7 @@ const titreEtapesCreate = async (
   return etapesCrees
 }
 
-async function createTitreWithEtapes(
-  nomTitre: string,
-  etapes: Omit<ITitreEtape, 'id' | 'titreDemarcheId'>[],
-  entreprises: any
-) {
+async function createTitreWithEtapes(nomTitre: string, etapes: Omit<ITitreEtape, 'id' | 'titreDemarcheId'>[], entreprises: any) {
   const titre = await titreCreate(
     {
       nom: nomTitre,
@@ -124,22 +115,22 @@ async function createTitreWithEtapes(
       references: [
         {
           referenceTypeId: 'onf',
-          nom: 'ONF'
-        }
-      ]
+          nom: 'ONF',
+        },
+      ],
     },
     {}
   )
 
   const titreDemarche = await titreDemarcheCreate({
     titreId: titre.id,
-    typeId: 'oct'
+    typeId: 'oct',
   })
   const etapesCrees = await titreEtapesCreate(titreDemarche, etapes)
 
   await knex('titresTitulaires').insert({
     titreEtapeId: etapesCrees[0].id,
-    entrepriseId: entreprises[0].id
+    entrepriseId: entreprises[0].id,
   })
 
   await knex('titres')
@@ -151,18 +142,18 @@ describe('titresONF', () => {
   test("teste la récupération des données pour l'ONF", async () => {
     const tested = await restCall('/titresONF', {
       role: 'admin',
-      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
     })
 
     expect(tested.statusCode).toBe(200)
     expect(tested.body).toHaveLength(2)
     expect(tested.body[0]).toMatchSnapshot({
       id: expect.any(String),
-      slug: expect.any(String)
+      slug: expect.any(String),
     })
     expect(tested.body[1]).toMatchSnapshot({
       id: expect.any(String),
-      slug: expect.any(String)
+      slug: expect.any(String),
     })
   })
 })
@@ -171,18 +162,18 @@ describe('titresPTMG', () => {
   test('teste la récupération des données pour le PTMG', async () => {
     const tested = await restCall('/titresPTMG', {
       role: 'admin',
-      administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+      administrationId: ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE'],
     })
 
     expect(tested.statusCode).toBe(200)
     expect(tested.body).toHaveLength(2)
     expect(tested.body[0]).toMatchSnapshot({
       id: expect.any(String),
-      slug: expect.any(String)
+      slug: expect.any(String),
     })
     expect(tested.body[1]).toMatchSnapshot({
       id: expect.any(String),
-      slug: expect.any(String)
+      slug: expect.any(String),
     })
   })
 })
@@ -190,7 +181,7 @@ describe('titresLiaisons', () => {
   test('peut lier deux titres', async () => {
     const getTitres = await restCall('/titresONF', {
       role: 'admin',
-      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
     })
     const titreId = getTitres.body[0].id
 
@@ -199,7 +190,7 @@ describe('titresLiaisons', () => {
         nom: 'mon axm simple',
         typeId: 'axm',
         titreStatutId: 'val',
-        propsTitreEtapesIds: {}
+        propsTitreEtapesIds: {},
       },
       {}
     )
@@ -208,7 +199,7 @@ describe('titresLiaisons', () => {
       `/titres/${axm.id}/titreLiaisons`,
       {
         role: 'admin',
-        administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+        administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
       },
       [titreId]
     )
@@ -218,12 +209,12 @@ describe('titresLiaisons', () => {
     expect(tested.body.aval).toHaveLength(0)
     expect(tested.body.amont[0]).toStrictEqual({
       id: titreId,
-      nom: getTitres.body[0].nom
+      nom: getTitres.body[0].nom,
     })
 
     const avalTested = await restCall(`/titres/${titreId}/titreLiaisons`, {
       role: 'admin',
-      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
     })
 
     expect(avalTested.statusCode).toBe(200)
@@ -231,7 +222,7 @@ describe('titresLiaisons', () => {
     expect(avalTested.body.aval).toHaveLength(1)
     expect(avalTested.body.aval[0]).toStrictEqual({
       id: axm.id,
-      nom: axm.nom
+      nom: axm.nom,
     })
   })
 })
diff --git a/packages/api/src/api/rest/titres.ts b/packages/api/src/api/rest/titres.ts
index aa7251b7a..8aafa5e3c 100644
--- a/packages/api/src/api/rest/titres.ts
+++ b/packages/api/src/api/rest/titres.ts
@@ -1,33 +1,16 @@
 import { titreGet, titresGet } from '../../database/queries/titres.js'
 
-import {
-  ADMINISTRATION_IDS,
-  ADMINISTRATION_TYPE_IDS,
-  AdministrationId,
-  Administrations
-} from 'camino-common/src/static/administrations.js'
+import { ADMINISTRATION_IDS, ADMINISTRATION_TYPE_IDS, AdministrationId, Administrations } from 'camino-common/src/static/administrations.js'
 import express from 'express'
 import { constants } from 'http2'
 import { DOMAINES_IDS } from 'camino-common/src/static/domaines.js'
 import { TITRES_TYPES_TYPES_IDS } from 'camino-common/src/static/titresTypesTypes.js'
 import { ITitre, ITitreDemarche } from '../../types.js'
-import {
-  CommonTitreDREAL,
-  CommonTitreONF,
-  CommonTitrePTMG,
-  TitreLink,
-  TitreLinks
-} from 'camino-common/src/titres.js'
-import {
-  demarcheDefinitionFind,
-  isDemarcheDefinitionMachine
-} from '../../business/rules-demarches/definitions.js'
+import { CommonTitreDREAL, CommonTitreONF, CommonTitrePTMG, TitreLink, TitreLinks } from 'camino-common/src/titres.js'
+import { demarcheDefinitionFind, isDemarcheDefinitionMachine } from '../../business/rules-demarches/definitions.js'
 import { CustomResponse } from './express-type.js'
 import { userSuper } from '../../database/user-super.js'
-import {
-  NotNullableKeys,
-  onlyUnique
-} from 'camino-common/src/typescript-tools.js'
+import { NotNullableKeys, onlyUnique } from 'camino-common/src/typescript-tools.js'
 import TitresTitres from '../../database/models/titres--titres.js'
 import { titreAdministrationsGet } from '../_format/titres.js'
 import { canLinkTitres } from 'camino-common/src/permissions/titres.js'
@@ -36,29 +19,20 @@ import { checkTitreLinks } from '../../business/validations/titre-links-validate
 import { toMachineEtapes } from '../../business/rules-demarches/machine-common.js'
 import { TitreReference } from 'camino-common/src/titres-references.js'
 import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts.js'
-import {
-  ETAPES_TYPES,
-  EtapeTypeId
-} from 'camino-common/src/static/etapesTypes.js'
+import { ETAPES_TYPES, EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
 import { CaminoDate } from 'camino-common/src/date.js'
 import { isAdministration, User } from 'camino-common/src/roles.js'
-import {
-  canCreateDemarche,
-  canCreateTravaux
-} from 'camino-common/src/permissions/titres-demarches.js'
+import { canCreateDemarche, canCreateTravaux } from 'camino-common/src/permissions/titres-demarches.js'
 
 const etapesAMasquer = [
   ETAPES_TYPES.classementSansSuite,
   ETAPES_TYPES.desistementDuDemandeur,
   ETAPES_TYPES.noteInterneSignalee,
   ETAPES_TYPES.decisionImplicite,
-  ETAPES_TYPES.demandeDeComplements_RecevabiliteDeLaDemande_
+  ETAPES_TYPES.demandeDeComplements_RecevabiliteDeLaDemande_,
 ]
 
-export const titresONF = async (
-  req: express.Request,
-  res: CustomResponse<CommonTitreONF[]>
-) => {
+export const titresONF = async (req: express.Request, res: CustomResponse<CommonTitreONF[]>) => {
   const user = req.user as User
 
   if (!user) {
@@ -71,46 +45,36 @@ export const titresONF = async (
     } else {
       const titresAvecOctroiArm = await titresArmAvecOctroi(user, onf)
       res.json(
-        titresAvecOctroiArm.map(
-          ({ titre, references, octARM, blockedByMe }) => {
-            const dateCompletudePTMG =
-              octARM.etapes.find(etape => etape.typeId === 'mcp')?.date || ''
-
-            const dateReceptionONF =
-              octARM.etapes.find(etape => etape.typeId === 'mcr')?.date || ''
-
-            const dateCARM =
-              octARM.etapes.find(etape => etape.typeId === 'sca')?.date || ''
-
-            return {
-              id: titre.id,
-              slug: titre.slug,
-              nom: titre.nom,
-              titreStatutId: titre.titreStatutId,
-              typeId: titre.typeId,
-              references,
-              titulaires: titre.titulaires.map(entreprise => ({
-                nom: entreprise.nom ?? ''
-              })),
-              dateCompletudePTMG,
-              dateReceptionONF,
-              dateCARM,
-              enAttenteDeONF: blockedByMe
-            }
+        titresAvecOctroiArm.map(({ titre, references, octARM, blockedByMe }) => {
+          const dateCompletudePTMG = octARM.etapes.find(etape => etape.typeId === 'mcp')?.date || ''
+
+          const dateReceptionONF = octARM.etapes.find(etape => etape.typeId === 'mcr')?.date || ''
+
+          const dateCARM = octARM.etapes.find(etape => etape.typeId === 'sca')?.date || ''
+
+          return {
+            id: titre.id,
+            slug: titre.slug,
+            nom: titre.nom,
+            titreStatutId: titre.titreStatutId,
+            typeId: titre.typeId,
+            references,
+            titulaires: titre.titulaires.map(entreprise => ({
+              nom: entreprise.nom ?? '',
+            })),
+            dateCompletudePTMG,
+            dateReceptionONF,
+            dateCARM,
+            enAttenteDeONF: blockedByMe,
           }
-        )
+        })
       )
     }
   }
 }
 
-type TitreSanitize = NotNullableKeys<
-  Required<Pick<ITitre, 'slug' | 'titulaires' | 'titreStatutId' | 'typeId'>>
-> &
-  Pick<ITitre, 'id' | 'nom'>
-type TitreDemarcheSanitize = NotNullableKeys<
-  Required<Pick<ITitreDemarche, 'etapes' | 'typeId'>>
->
+type TitreSanitize = NotNullableKeys<Required<Pick<ITitre, 'slug' | 'titulaires' | 'titreStatutId' | 'typeId'>>> & Pick<ITitre, 'id' | 'nom'>
+type TitreDemarcheSanitize = NotNullableKeys<Required<Pick<ITitreDemarche, 'etapes' | 'typeId'>>>
 
 type TitreArmAvecOctroi = {
   titre: TitreSanitize
@@ -119,19 +83,16 @@ type TitreArmAvecOctroi = {
   blockedByMe: boolean
 }
 
-async function titresArmAvecOctroi(
-  user: User,
-  administrationId: AdministrationId
-) {
+async function titresArmAvecOctroi(user: User, administrationId: AdministrationId) {
   const filters = {
     domainesIds: [DOMAINES_IDS.METAUX],
     typesIds: [TITRES_TYPES_TYPES_IDS.AUTORISATION_DE_RECHERCHE],
-    statutsIds: ['dmi', 'mod', 'val']
+    statutsIds: ['dmi', 'mod', 'val'],
   }
   const titresAutorises = await titresGet(
     filters,
     {
-      fields: { id: {} }
+      fields: { id: {} },
     },
     user
   )
@@ -141,8 +102,8 @@ async function titresArmAvecOctroi(
     {
       fields: {
         titulaires: { id: {} },
-        demarches: { etapes: { id: {} } }
-      }
+        demarches: { etapes: { id: {} } },
+      },
     },
     userSuper
   )
@@ -179,53 +140,35 @@ async function titresArmAvecOctroi(
         return null
       }
 
-      const dd = demarcheDefinitionFind(
-        titre.typeId,
-        octARM.typeId,
-        octARM.etapes,
-        octARM.id
-      )
+      const dd = demarcheDefinitionFind(titre.typeId, octARM.typeId, octARM.etapes, octARM.id)
       const hasMachine = isDemarcheDefinitionMachine(dd)
-      const blockedByMe: boolean =
-        hasMachine &&
-        dd.machine
-          .whoIsBlocking(toMachineEtapes(octARM.etapes))
-          .includes(administrationId)
+      const blockedByMe: boolean = hasMachine && dd.machine.whoIsBlocking(toMachineEtapes(octARM.etapes)).includes(administrationId)
 
       // TODO 2022-06-08 wait for typescript to get better at type interpolation
       return {
         titre: titre as TitreSanitize,
         references,
         octARM: octARM as TitreDemarcheSanitize,
-        blockedByMe
+        blockedByMe,
       }
     })
-    .filter(
-      (titre: TitreArmAvecOctroi | null): titre is TitreArmAvecOctroi =>
-        titre !== null
-    )
+    .filter((titre: TitreArmAvecOctroi | null): titre is TitreArmAvecOctroi => titre !== null)
 
   return titresAvecOctroiArm
 }
 
-export const titresPTMG = async (
-  req: express.Request,
-  res: CustomResponse<CommonTitrePTMG[]>
-) => {
+export const titresPTMG = async (req: express.Request, res: CustomResponse<CommonTitrePTMG[]>) => {
   const user = req.user as User
 
   if (!user) {
     res.sendStatus(constants.HTTP_STATUS_FORBIDDEN)
   } else {
-    const administrationId =
-      ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
+    const administrationId = ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
 
     if (!isAdministration(user) || user.administrationId !== administrationId) {
       res.sendStatus(constants.HTTP_STATUS_FORBIDDEN)
     } else {
-      const titresFormated: CommonTitrePTMG[] = (
-        await titresArmAvecOctroi(user, administrationId)
-      ).map(({ titre, references, blockedByMe }) => {
+      const titresFormated: CommonTitrePTMG[] = (await titresArmAvecOctroi(user, administrationId)).map(({ titre, references, blockedByMe }) => {
         return {
           id: titre.id,
           slug: titre.slug,
@@ -234,9 +177,9 @@ export const titresPTMG = async (
           titreStatutId: titre.titreStatutId,
           references,
           titulaires: titre.titulaires.map(entreprise => ({
-            nom: entreprise.nom ?? ''
+            nom: entreprise.nom ?? '',
           })),
-          enAttenteDePTMG: blockedByMe
+          enAttenteDePTMG: blockedByMe,
         }
       })
 
@@ -245,44 +188,28 @@ export const titresPTMG = async (
   }
 }
 
-type DrealTitreSanitize = NotNullableKeys<
-  Required<Pick<ITitre, 'slug' | 'titulaires' | 'titreStatutId' | 'type'>>
-> &
-  Pick<
-    ITitre,
-    'typeId' | 'id' | 'nom' | 'activitesEnConstruction' | 'activitesAbsentes'
-  >
+type DrealTitreSanitize = NotNullableKeys<Required<Pick<ITitre, 'slug' | 'titulaires' | 'titreStatutId' | 'type'>>> &
+  Pick<ITitre, 'typeId' | 'id' | 'nom' | 'activitesEnConstruction' | 'activitesAbsentes'>
 
 type TitreDrealAvecReferences = {
   titre: DrealTitreSanitize
   references: TitreReference[]
-} & Pick<
-  CommonTitreDREAL,
-  'prochainesEtapes' | 'derniereEtape' | 'enAttenteDeDREAL'
->
-export const titresDREAL = async (
-  req: express.Request,
-  res: CustomResponse<CommonTitreDREAL[]>
-) => {
+} & Pick<CommonTitreDREAL, 'prochainesEtapes' | 'derniereEtape' | 'enAttenteDeDREAL'>
+export const titresDREAL = async (req: express.Request, res: CustomResponse<CommonTitreDREAL[]>) => {
   const user = req.user as User
 
   if (!user) {
     res.sendStatus(constants.HTTP_STATUS_FORBIDDEN)
   } else {
-    if (
-      isAdministration(user) &&
-      [ADMINISTRATION_TYPE_IDS.DEAL, ADMINISTRATION_TYPE_IDS.DREAL].includes(
-        Administrations[user.administrationId].typeId
-      )
-    ) {
+    if (isAdministration(user) && [ADMINISTRATION_TYPE_IDS.DEAL, ADMINISTRATION_TYPE_IDS.DREAL].includes(Administrations[user.administrationId].typeId)) {
       const filters = {
-        statutsIds: ['dmi', 'mod']
+        statutsIds: ['dmi', 'mod'],
       }
 
       const titresAutorises = await titresGet(
         filters,
         {
-          fields: { pointsEtape: { id: {} } }
+          fields: { pointsEtape: { id: {} } },
         },
         user
       )
@@ -298,17 +225,8 @@ export const titresDREAL = async (
 
           return (
             (titre.modification ?? false) ||
-            canCreateDemarche(
-              user,
-              titre.typeId,
-              titre.titreStatutId,
-              titre.administrationsLocales ?? []
-            ) ||
-            canCreateTravaux(
-              user,
-              titre.typeId,
-              titre.administrationsLocales ?? []
-            )
+            canCreateDemarche(user, titre.typeId, titre.titreStatutId, titre.administrationsLocales ?? []) ||
+            canCreateTravaux(user, titre.typeId, titre.administrationsLocales ?? [])
           )
         })
         .map(({ id }) => id)
@@ -319,8 +237,8 @@ export const titresDREAL = async (
             type: { id: {} },
             titulaires: { id: {} },
             activites: { id: {} },
-            demarches: { etapes: { id: {} } }
-          }
+            demarches: { etapes: { id: {} } },
+          },
         },
         userSuper
       )
@@ -353,10 +271,7 @@ export const titresDREAL = async (
             throw new Error('les démarches ne sont pas chargées')
           }
 
-          const demarcheLaPlusRecente = titre.demarches.sort(
-            ({ ordre: ordreA }, { ordre: ordreB }) =>
-              (ordreA ?? 0) - (ordreB ?? 0)
-          )[titre.demarches?.length - 1]
+          const demarcheLaPlusRecente = titre.demarches.sort(({ ordre: ordreA }, { ordre: ordreB }) => (ordreA ?? 0) - (ordreB ?? 0))[titre.demarches?.length - 1]
           let enAttenteDeDREAL = false
           const prochainesEtapes: EtapeTypeId[] = []
           let derniereEtape: {
@@ -367,31 +282,16 @@ export const titresDREAL = async (
             if (!demarcheLaPlusRecente.etapes) {
               throw new Error('les étapes ne sont pas chargées')
             }
-            if (
-              demarcheLaPlusRecente.statutId ===
-              DemarchesStatutsIds.EnConstruction
-            ) {
+            if (demarcheLaPlusRecente.statutId === DemarchesStatutsIds.EnConstruction) {
               return null
             } else {
-              const etapesDerniereDemarche = toMachineEtapes(
-                demarcheLaPlusRecente.etapes
-              )
-              derniereEtape =
-                etapesDerniereDemarche[etapesDerniereDemarche.length - 1]
-              const dd = demarcheDefinitionFind(
-                titre.typeId,
-                demarcheLaPlusRecente.typeId,
-                demarcheLaPlusRecente.etapes,
-                demarcheLaPlusRecente.id
-              )
+              const etapesDerniereDemarche = toMachineEtapes(demarcheLaPlusRecente.etapes)
+              derniereEtape = etapesDerniereDemarche[etapesDerniereDemarche.length - 1]
+              const dd = demarcheDefinitionFind(titre.typeId, demarcheLaPlusRecente.typeId, demarcheLaPlusRecente.etapes, demarcheLaPlusRecente.id)
               if (isDemarcheDefinitionMachine(dd)) {
                 try {
-                  enAttenteDeDREAL = dd.machine
-                    .whoIsBlocking(etapesDerniereDemarche)
-                    .includes(user.administrationId)
-                  const nextEtapes = dd.machine.possibleNextEtapes(
-                    etapesDerniereDemarche
-                  )
+                  enAttenteDeDREAL = dd.machine.whoIsBlocking(etapesDerniereDemarche).includes(user.administrationId)
+                  const nextEtapes = dd.machine.possibleNextEtapes(etapesDerniereDemarche)
                   prochainesEtapes.push(
                     ...nextEtapes
                       .map(etape => etape.etapeTypeId)
@@ -399,10 +299,7 @@ export const titresDREAL = async (
                       .filter(etape => !etapesAMasquer.includes(etape))
                   )
                 } catch (e) {
-                  console.error(
-                    `Impossible de traiter le titre ${titre.id} car la démarche ${demarcheLaPlusRecente.typeId} n'est pas valide`,
-                    e
-                  )
+                  console.error(`Impossible de traiter le titre ${titre.id} car la démarche ${demarcheLaPlusRecente.typeId} n'est pas valide`, e)
                 }
               }
             }
@@ -413,45 +310,27 @@ export const titresDREAL = async (
             references,
             enAttenteDeDREAL,
             derniereEtape,
-            prochainesEtapes
+            prochainesEtapes,
           }
         })
-        .filter(
-          (
-            titre: TitreDrealAvecReferences | null
-          ): titre is TitreDrealAvecReferences => titre !== null
-        )
-        .map(
-          ({
-            titre,
+        .filter((titre: TitreDrealAvecReferences | null): titre is TitreDrealAvecReferences => titre !== null)
+        .map(({ titre, references, enAttenteDeDREAL, derniereEtape, prochainesEtapes }) => {
+          return {
+            id: titre.id,
+            slug: titre.slug,
+            nom: titre.nom,
+            titreStatutId: titre.titreStatutId,
+            typeId: titre.typeId,
             references,
+            titulaires: titre.titulaires,
+            // pour une raison inconnue les chiffres sortent parfois en tant que string...., par exemple pour les titres
+            activitesEnConstruction: typeof titre.activitesEnConstruction === 'string' ? parseInt(titre.activitesEnConstruction, 10) : titre.activitesEnConstruction ?? 0,
+            activitesAbsentes: typeof titre.activitesAbsentes === 'string' ? parseInt(titre.activitesAbsentes, 10) : titre.activitesAbsentes ?? 0,
             enAttenteDeDREAL,
             derniereEtape,
-            prochainesEtapes
-          }) => {
-            return {
-              id: titre.id,
-              slug: titre.slug,
-              nom: titre.nom,
-              titreStatutId: titre.titreStatutId,
-              typeId: titre.typeId,
-              references,
-              titulaires: titre.titulaires,
-              // pour une raison inconnue les chiffres sortent parfois en tant que string...., par exemple pour les titres
-              activitesEnConstruction:
-                typeof titre.activitesEnConstruction === 'string'
-                  ? parseInt(titre.activitesEnConstruction, 10)
-                  : titre.activitesEnConstruction ?? 0,
-              activitesAbsentes:
-                typeof titre.activitesAbsentes === 'string'
-                  ? parseInt(titre.activitesAbsentes, 10)
-                  : titre.activitesAbsentes ?? 0,
-              enAttenteDeDREAL,
-              derniereEtape,
-              prochainesEtapes
-            }
+            prochainesEtapes,
           }
-        )
+        })
 
       res.json(titresFormated)
     } else {
@@ -460,23 +339,16 @@ export const titresDREAL = async (
   }
 }
 const isStringArray = (stuff: any): stuff is string[] => {
-  return (
-    stuff instanceof Array && stuff.every(value => typeof value === 'string')
-  )
+  return stuff instanceof Array && stuff.every(value => typeof value === 'string')
 }
-export const postTitreLiaisons = async (
-  req: express.Request<{ id?: string }>,
-  res: CustomResponse<TitreLinks>
-) => {
+export const postTitreLiaisons = async (req: express.Request<{ id?: string }>, res: CustomResponse<TitreLinks>) => {
   const user = req.user as User
 
   const titreId: string | undefined = req.params.id
   const titreFromIds = req.body
 
   if (!isStringArray(titreFromIds)) {
-    throw new Error(
-      `un tableau est attendu en corps de message : '${titreFromIds}'`
-    )
+    throw new Error(`un tableau est attendu en corps de message : '${titreFromIds}'`)
   }
 
   if (!titreId) {
@@ -488,8 +360,8 @@ export const postTitreLiaisons = async (
     {
       fields: {
         pointsEtape: { id: {} },
-        demarches: { id: {} }
-      }
+        demarches: { id: {} },
+      },
     },
     user
   )
@@ -497,18 +369,13 @@ export const postTitreLiaisons = async (
   if (!titre) throw new Error("le titre n'existe pas")
 
   const administrations = titreAdministrationsGet(titre)
-  if (!canLinkTitres(user, administrations))
-    throw new Error('droits insuffisants')
+  if (!canLinkTitres(user, administrations)) throw new Error('droits insuffisants')
 
   if (!titre.demarches) {
     throw new Error('les démarches ne sont pas chargées')
   }
 
-  const titresFrom = await titresGet(
-    { ids: titreFromIds },
-    { fields: { id: {} } },
-    user
-  )
+  const titresFrom = await titresGet({ ids: titreFromIds }, { fields: { id: {} } }, user)
 
   checkTitreLinks(titre, titreFromIds, titresFrom, titre.demarches)
 
@@ -516,13 +383,10 @@ export const postTitreLiaisons = async (
 
   res.json({
     amont: await titreLinksGet(titreId, 'titreFromId', user),
-    aval: await titreLinksGet(titreId, 'titreToId', user)
+    aval: await titreLinksGet(titreId, 'titreToId', user),
   })
 }
-export const getTitreLiaisons = async (
-  req: express.Request<{ id?: string }>,
-  res: CustomResponse<TitreLinks>
-) => {
+export const getTitreLiaisons = async (req: express.Request<{ id?: string }>, res: CustomResponse<TitreLinks>) => {
   const user = req.user as User
 
   const titreId: string | undefined = req.params.id
@@ -536,28 +400,17 @@ export const getTitreLiaisons = async (
     } else {
       res.json({
         amont: await titreLinksGet(titreId, 'titreFromId', user),
-        aval: await titreLinksGet(titreId, 'titreToId', user)
+        aval: await titreLinksGet(titreId, 'titreToId', user),
       })
     }
   }
 }
 
-const titreLinksGet = async (
-  titreId: string,
-  link: 'titreToId' | 'titreFromId',
-  user: User
-): Promise<TitreLink[]> => {
-  const titresTitres = await TitresTitres.query().where(
-    link === 'titreToId' ? 'titreFromId' : 'titreToId',
-    titreId
-  )
+const titreLinksGet = async (titreId: string, link: 'titreToId' | 'titreFromId', user: User): Promise<TitreLink[]> => {
+  const titresTitres = await TitresTitres.query().where(link === 'titreToId' ? 'titreFromId' : 'titreToId', titreId)
   const titreIds = titresTitres.map(r => r[link])
 
-  const titres = await titresGet(
-    { ids: titreIds },
-    { fields: { id: {} } },
-    user
-  )
+  const titres = await titresGet({ ids: titreIds }, { fields: { id: {} } }, user)
 
   return titres.map(({ id, nom }) => ({ id, nom }))
 }
diff --git a/packages/api/src/api/rest/upload.test.integration.ts b/packages/api/src/api/rest/upload.test.integration.ts
index 91e58815d..765fdc4ad 100644
--- a/packages/api/src/api/rest/upload.test.integration.ts
+++ b/packages/api/src/api/rest/upload.test.integration.ts
@@ -20,41 +20,38 @@ describe('téléversement de fichier par rest (tus)', () => {
       [
         {
           role: 'admin',
-          administrationId: ADMINISTRATION_IDS['DGTM - GUYANE']
+          administrationId: ADMINISTRATION_IDS['DGTM - GUYANE'],
         },
-        200
+        200,
       ],
       [{ role: 'super' }, 200],
       [
         {
           role: 'editeur',
-          administrationId: ADMINISTRATION_IDS['DGTM - GUYANE']
+          administrationId: ADMINISTRATION_IDS['DGTM - GUYANE'],
         },
-        200
+        200,
       ],
       [
         {
           role: 'lecteur',
-          administrationId: ADMINISTRATION_IDS['DGTM - GUYANE']
+          administrationId: ADMINISTRATION_IDS['DGTM - GUYANE'],
         },
-        200
+        200,
       ],
       [{ role: 'entreprise', entreprises: [] }, 200],
-      [{ role: 'defaut' }, 403]
-    ])(
-      'retourne le code $code pour un utilisateur "$user"',
-      async (user, code) => {
-        vi.resetAllMocks()
-        const req = { user } as unknown as Request
-        const res = { sendStatus: vi.fn() } as unknown as Response
-        const next = vi.fn()
-        await uploadAllowedMiddleware(req, res, next)
-        if (code !== 200) {
-          expect(res.sendStatus).toBeCalledWith(code)
-        } else {
-          expect(next).toBeCalled()
-        }
+      [{ role: 'defaut' }, 403],
+    ])('retourne le code $code pour un utilisateur "$user"', async (user, code) => {
+      vi.resetAllMocks()
+      const req = { user } as unknown as Request
+      const res = { sendStatus: vi.fn() } as unknown as Response
+      const next = vi.fn()
+      await uploadAllowedMiddleware(req, res, next)
+      if (code !== 200) {
+        expect(res.sendStatus).toBeCalledWith(code)
+      } else {
+        expect(next).toBeCalled()
       }
-    )
+    })
   })
 })
diff --git a/packages/api/src/api/rest/utilisateurs.ts b/packages/api/src/api/rest/utilisateurs.ts
index 894b164f6..a08327a31 100644
--- a/packages/api/src/api/rest/utilisateurs.ts
+++ b/packages/api/src/api/rest/utilisateurs.ts
@@ -1,15 +1,9 @@
-import {
-  utilisateurGet,
-  utilisateursGet
-} from '../../database/queries/utilisateurs.js'
+import { utilisateurGet, utilisateursGet } from '../../database/queries/utilisateurs.js'
 import express from 'express'
 import { CustomResponse } from './express-type.js'
 import { formatUser, IFormat, IUtilisateursColonneId } from '../../types.js'
 import { constants } from 'http2'
-import {
-  isSubscribedToNewsLetter,
-  newsletterSubscriberUpdate
-} from '../../tools/api-mailjet/newsletter.js'
+import { isSubscribedToNewsLetter, newsletterSubscriberUpdate } from '../../tools/api-mailjet/newsletter.js'
 import { isRole, User } from 'camino-common/src/roles.js'
 import { utilisateursFormatTable } from './format/utilisateurs.js'
 import { tableConvert } from './_convert.js'
@@ -19,20 +13,13 @@ import { knex } from '../../knex.js'
 import { idGenerate } from '../../database/models/_format/id-create.js'
 import bcrypt from 'bcryptjs'
 
-export const isSubscribedToNewsletter = async (
-  req: express.Request<{ id?: string }>,
-  res: CustomResponse<boolean>
-) => {
+export const isSubscribedToNewsletter = async (req: express.Request<{ id?: string }>, res: CustomResponse<boolean>) => {
   const user = req.user as User
 
   if (!req.params.id) {
     res.sendStatus(constants.HTTP_STATUS_FORBIDDEN)
   } else {
-    const utilisateur = await utilisateurGet(
-      req.params.id,
-      { fields: { id: {} } },
-      user
-    )
+    const utilisateur = await utilisateurGet(req.params.id, { fields: { id: {} } }, user)
 
     if (!user || !utilisateur) {
       res.sendStatus(constants.HTTP_STATUS_FORBIDDEN)
@@ -43,25 +30,15 @@ export const isSubscribedToNewsletter = async (
   }
 }
 
-export const moi = async (
-  req: express.Request<{ id?: string }>,
-  res: CustomResponse<User>
-) => {
+export const moi = async (req: express.Request<{ id?: string }>, res: CustomResponse<User>) => {
   res.clearCookie('shouldBeConnected')
   const user = req.user as User
   if (!user) {
     res.sendStatus(constants.HTTP_STATUS_NO_CONTENT)
   } else {
     try {
-      const utilisateur = await utilisateurGet(
-        user.id,
-        { fields: { entreprises: { id: {} } } },
-        user
-      )
-      res.cookie(
-        'shouldBeConnected',
-        'anyValueIsGood, We just check the presence of this cookie'
-      )
+      const utilisateur = await utilisateurGet(user.id, { fields: { entreprises: { id: {} } } }, user)
+      res.cookie('shouldBeConnected', 'anyValueIsGood, We just check the presence of this cookie')
       res.json(formatUser(utilisateur!))
     } catch (e) {
       console.error(e)
@@ -71,47 +48,30 @@ export const moi = async (
   }
 }
 
-export const manageNewsletterSubscription = async (
-  req: express.Request<{ id?: string }>,
-  res: CustomResponse<boolean>
-) => {
+export const manageNewsletterSubscription = async (req: express.Request<{ id?: string }>, res: CustomResponse<boolean>) => {
   const user = req.user as User
 
   if (!req.params.id) {
     res.sendStatus(constants.HTTP_STATUS_FORBIDDEN)
   } else {
-    const utilisateur = await utilisateurGet(
-      req.params.id,
-      { fields: { id: {} } },
-      user
-    )
+    const utilisateur = await utilisateurGet(req.params.id, { fields: { id: {} } }, user)
 
     if (!user || !utilisateur) {
       res.sendStatus(constants.HTTP_STATUS_FORBIDDEN)
     } else {
       const subscription = req.body
 
-      if (
-        typeof subscription !== 'object' &&
-        !('newsletter' in subscription) &&
-        typeof subscription.newsletter !== 'boolean'
-      ) {
+      if (typeof subscription !== 'object' && !('newsletter' in subscription) && typeof subscription.newsletter !== 'boolean') {
         res.sendStatus(constants.HTTP_STATUS_BAD_REQUEST)
       } else {
-        await newsletterSubscriberUpdate(
-          utilisateur.email,
-          subscription.newsletter
-        )
+        await newsletterSubscriberUpdate(utilisateur.email, subscription.newsletter)
         res.sendStatus(constants.HTTP_STATUS_NO_CONTENT)
       }
     }
   }
 }
 
-export const generateQgisToken = async (
-  req: express.Request,
-  res: CustomResponse<QGISToken>
-) => {
+export const generateQgisToken = async (req: express.Request, res: CustomResponse<QGISToken>) => {
   const user = req.user as User
 
   if (!user) {
@@ -137,21 +97,7 @@ interface IUtilisateursQueryInput {
   emails?: string | null
 }
 
-export const utilisateurs = async (
-  {
-    query: {
-      format = 'json',
-      colonne,
-      ordre,
-      entrepriseIds,
-      administrationIds,
-      roles,
-      noms,
-      emails
-    }
-  }: { query: IUtilisateursQueryInput },
-  user: User
-) => {
+export const utilisateurs = async ({ query: { format = 'json', colonne, ordre, entrepriseIds, administrationIds, roles, noms, emails } }: { query: IUtilisateursQueryInput }, user: User) => {
   const utilisateurs = await utilisateursGet(
     {
       colonne,
@@ -160,7 +106,7 @@ export const utilisateurs = async (
       administrationIds: administrationIds?.split(','),
       roles: roles?.split(',').filter(isRole),
       noms,
-      emails
+      emails,
     },
     {},
     user
@@ -180,7 +126,7 @@ export const utilisateurs = async (
     ? {
         nom: fileNameCreate(`utilisateurs-${utilisateurs.length}`, format),
         format,
-        contenu
+        contenu,
       }
     : null
 }
diff --git a/packages/api/src/business/_logs-update.ts b/packages/api/src/business/_logs-update.ts
index 8bf745254..68afe2100 100644
--- a/packages/api/src/business/_logs-update.ts
+++ b/packages/api/src/business/_logs-update.ts
@@ -24,7 +24,7 @@ export const logsUpdate = ({
   titresUpdatedIndex,
   entreprisesUpdated,
   etablissementsUpdated,
-  etablissementsDeleted
+  etablissementsDeleted,
 }: {
   titresEtapesOrdreUpdated?: string[]
   titresEtapesHeritagePropsUpdated?: string[]
@@ -56,146 +56,98 @@ export const logsUpdate = ({
   console.info('tâches exécutées:')
 
   if (titresEtapesOrdreUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresEtapesOrdreUpdated.length} étape(s) (ordre)`
-    )
+    console.info(`mise à jour: ${titresEtapesOrdreUpdated.length} étape(s) (ordre)`)
   }
 
   if (titresEtapesHeritagePropsUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresEtapesHeritagePropsUpdated.length} étape(s) (héritage des propriétés)`
-    )
+    console.info(`mise à jour: ${titresEtapesHeritagePropsUpdated.length} étape(s) (héritage des propriétés)`)
   }
 
   if (titresEtapesHeritageContenuUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresEtapesHeritageContenuUpdated.length} étape(s) (héritage du contenu)`
-    )
+    console.info(`mise à jour: ${titresEtapesHeritageContenuUpdated.length} étape(s) (héritage du contenu)`)
   }
 
   if (titresDemarchesStatutUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresDemarchesStatutUpdated.length} démarche(s) (statut)`
-    )
+    console.info(`mise à jour: ${titresDemarchesStatutUpdated.length} démarche(s) (statut)`)
   }
 
   if (titresDemarchesPublicUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresDemarchesPublicUpdated.length} démarche(s) (publicité)`
-    )
+    console.info(`mise à jour: ${titresDemarchesPublicUpdated.length} démarche(s) (publicité)`)
   }
 
   if (titresDemarchesOrdreUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresDemarchesOrdreUpdated.length} démarche(s) (ordre)`
-    )
+    console.info(`mise à jour: ${titresDemarchesOrdreUpdated.length} démarche(s) (ordre)`)
   }
 
   if (titresStatutIdUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresStatutIdUpdated.length} titre(s) (statuts)`
-    )
+    console.info(`mise à jour: ${titresStatutIdUpdated.length} titre(s) (statuts)`)
   }
 
   if (titresPublicUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresPublicUpdated.length} titre(s) (publicité)`
-    )
+    console.info(`mise à jour: ${titresPublicUpdated.length} titre(s) (publicité)`)
   }
 
   if (titresPhasesUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresPhasesUpdated.length} titre(s) (phases mises à jour)`
-    )
+    console.info(`mise à jour: ${titresPhasesUpdated.length} titre(s) (phases mises à jour)`)
   }
 
   if (titresPhasesDeleted?.length) {
-    console.info(
-      `mise à jour: ${titresPhasesDeleted.length} titre(s) (phases supprimées)`
-    )
+    console.info(`mise à jour: ${titresPhasesDeleted.length} titre(s) (phases supprimées)`)
   }
 
   if (titresDatesUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresDatesUpdated.length} titre(s) (propriétés-dates)`
-    )
+    console.info(`mise à jour: ${titresDatesUpdated.length} titre(s) (propriétés-dates)`)
   }
 
   if (pointsReferencesCreated?.length) {
-    console.info(
-      `création: ${pointsReferencesCreated.length} référence(s) de points`
-    )
+    console.info(`création: ${pointsReferencesCreated.length} référence(s) de points`)
   }
 
   if (titresEtapesAdministrationsLocalesUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresEtapesAdministrationsLocalesUpdated.length} administration(s) locale(s) modifiée(s) dans des étapes`
-    )
+    console.info(`mise à jour: ${titresEtapesAdministrationsLocalesUpdated.length} administration(s) locale(s) modifiée(s) dans des étapes`)
   }
 
   if (titresPropsEtapesIdsUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresPropsEtapesIdsUpdated.length} titres(s) (propriétés-étapes)`
-    )
+    console.info(`mise à jour: ${titresPropsEtapesIdsUpdated.length} titres(s) (propriétés-étapes)`)
   }
 
   if (titresContenusEtapesIdsUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresContenusEtapesIdsUpdated.length} titres(s) (contenu)`
-    )
+    console.info(`mise à jour: ${titresContenusEtapesIdsUpdated.length} titres(s) (contenu)`)
   }
 
   if (titresCoordonneesUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresCoordonneesUpdated.length} titres(s) (coordonnées)`
-    )
+    console.info(`mise à jour: ${titresCoordonneesUpdated.length} titres(s) (coordonnées)`)
   }
 
   if (titresActivitesCreated?.length) {
-    console.info(
-      `mise à jour: ${titresActivitesCreated.length} activité(s) créée(s)`
-    )
+    console.info(`mise à jour: ${titresActivitesCreated.length} activité(s) créée(s)`)
   }
 
   if (titresActivitesRelanceSent?.length) {
-    console.info(
-      `mise à jour: ${titresActivitesRelanceSent.length} activité(s) relancée(s)`
-    )
+    console.info(`mise à jour: ${titresActivitesRelanceSent.length} activité(s) relancée(s)`)
   }
 
   if (titresActivitesStatutIdsUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresActivitesStatutIdsUpdated.length} activité(s) fermée(s)`
-    )
+    console.info(`mise à jour: ${titresActivitesStatutIdsUpdated.length} activité(s) fermée(s)`)
   }
 
   if (titresActivitesPropsUpdated?.length) {
-    console.info(
-      `mise à jour: ${titresActivitesPropsUpdated.length} activité(s) (propriété suppression)`
-    )
+    console.info(`mise à jour: ${titresActivitesPropsUpdated.length} activité(s) (propriété suppression)`)
   }
 
   if (titresUpdatedIndex && Object.keys(titresUpdatedIndex).length) {
-    console.info(
-      `mise à jour: ${Object.keys(titresUpdatedIndex).length} titre(s) (slugs)`
-    )
+    console.info(`mise à jour: ${Object.keys(titresUpdatedIndex).length} titre(s) (slugs)`)
   }
 
   if (entreprisesUpdated?.length) {
-    console.info(
-      `mise à jour: ${entreprisesUpdated.length} adresse(s) d'entreprise(s)`
-    )
+    console.info(`mise à jour: ${entreprisesUpdated.length} adresse(s) d'entreprise(s)`)
   }
 
   if (etablissementsUpdated?.length) {
-    console.info(
-      `mise à jour: ${etablissementsUpdated.length} établissement(s) d'entreprise(s)`
-    )
+    console.info(`mise à jour: ${etablissementsUpdated.length} établissement(s) d'entreprise(s)`)
   }
 
   if (etablissementsDeleted?.length) {
-    console.info(
-      `suppression: ${etablissementsDeleted.length} établissement(s) d'entreprise(s)`
-    )
+    console.info(`suppression: ${etablissementsDeleted.length} établissement(s) d'entreprise(s)`)
   }
 }
diff --git a/packages/api/src/business/daily.ts b/packages/api/src/business/daily.ts
index d2e3b669d..28c6ba534 100644
--- a/packages/api/src/business/daily.ts
+++ b/packages/api/src/business/daily.ts
@@ -28,29 +28,24 @@ export const daily = async () => {
     console.info('mise à jour quotidienne')
 
     const titresEtapesOrdreUpdated = await titresEtapesOrdreUpdate(userSuper)
-    const titresEtapesHeritagePropsUpdated =
-      await titresEtapesHeritagePropsUpdate(userSuper)
-    const titresEtapesHeritageContenuUpdated =
-      await titresEtapesHeritageContenuUpdate(userSuper)
+    const titresEtapesHeritagePropsUpdated = await titresEtapesHeritagePropsUpdate(userSuper)
+    const titresEtapesHeritageContenuUpdated = await titresEtapesHeritageContenuUpdate(userSuper)
     const titresDemarchesStatutUpdated = await titresDemarchesStatutIdUpdate()
     const titresDemarchesPublicUpdated = await titresDemarchesPublicUpdate()
     const titresDemarchesOrdreUpdated = await titresDemarchesOrdreUpdate()
     const titresStatutIdUpdated = await titresStatutIdsUpdate()
     const titresPublicUpdated = await titresPublicUpdate()
-    const [titresPhasesUpdated = [], titresPhasesDeleted = []] =
-      await titresPhasesUpdate()
+    const [titresPhasesUpdated = [], titresPhasesDeleted = []] = await titresPhasesUpdate()
     const titresDatesUpdated = await titresDatesUpdate()
     const pointsReferencesCreated = await titresPointsReferencesCreate()
-    const { titresEtapesAdministrationsLocalesUpdated } =
-      await titresEtapesAdministrationsLocalesUpdate()
+    const { titresEtapesAdministrationsLocalesUpdated } = await titresEtapesAdministrationsLocalesUpdate()
     const titresPropsEtapesIdsUpdated = await titresPropsEtapesIdsUpdate()
     const titresContenusEtapesIdsUpdated = await titresContenusEtapesIdsUpdate()
 
     const titresCoordonneesUpdated = await titresCoordonneesUpdate()
     const titresActivitesCreated = await titresActivitesUpdate()
     const titresActivitesRelanceSent = await titresActivitesRelanceSend()
-    const titresActivitesStatutIdsUpdated =
-      await titresActivitesStatutIdsUpdate()
+    const titresActivitesStatutIdsUpdated = await titresActivitesStatutIdsUpdate()
     const titresActivitesPropsUpdated = await titresActivitesPropsUpdate()
     const titresUpdatedIndex = await titresSlugsUpdate()
 
@@ -67,10 +62,7 @@ export const daily = async () => {
       titresPhasesDeleted,
       titresDatesUpdated,
       pointsReferencesCreated,
-      titresEtapesAdministrationsLocalesUpdated:
-        titresEtapesAdministrationsLocalesUpdated.map(
-          ({ titreEtapeId }) => titreEtapeId
-        ),
+      titresEtapesAdministrationsLocalesUpdated: titresEtapesAdministrationsLocalesUpdated.map(({ titreEtapeId }) => titreEtapeId),
       titresPropsEtapesIdsUpdated,
       titresContenusEtapesIdsUpdated,
       titresCoordonneesUpdated,
@@ -78,7 +70,7 @@ export const daily = async () => {
       titresActivitesRelanceSent,
       titresActivitesStatutIdsUpdated,
       titresActivitesPropsUpdated,
-      titresUpdatedIndex
+      titresUpdatedIndex,
     })
   } catch (e) {
     console.info('erreur:', e)
diff --git a/packages/api/src/business/entreprises-guyane.ts b/packages/api/src/business/entreprises-guyane.ts
index b2a6cf8d8..575065e88 100644
--- a/packages/api/src/business/entreprises-guyane.ts
+++ b/packages/api/src/business/entreprises-guyane.ts
@@ -1,8 +1,4 @@
-import {
-  toDepartementId,
-  Departements,
-  CodePostal
-} from 'camino-common/src/static/departement.js'
+import { toDepartementId, Departements, CodePostal } from 'camino-common/src/static/departement.js'
 import { PAYS_IDS } from 'camino-common/src/static/pays.js'
 import { Regions } from 'camino-common/src/static/region.js'
 import { knex } from '../knex.js'
@@ -22,43 +18,18 @@ type ResultAggregated = {
   entreprises: string[]
 } & Omit<Result, 'id' | 'nomEntreprise' | 'codePostal'>
 
-export const subscribeUsersToGuyaneExploitants = async (): Promise<
-  ResultAggregated[]
-> => {
-  console.info(
-    `inscription des utilisateurs d'entreprise de Guyane à la liste de diffusion`
-  )
+export const subscribeUsersToGuyaneExploitants = async (): Promise<ResultAggregated[]> => {
+  console.info(`inscription des utilisateurs d'entreprise de Guyane à la liste de diffusion`)
 
   const result: Result[] = await knex
-    .select(
-      'utilisateurs.id',
-      'utilisateurs.email',
-      { nomUtilisateur: 'utilisateurs.nom' },
-      'prenom',
-      'role',
-      { nomEntreprise: 'entreprises.nom' },
-      'codePostal'
-    )
+    .select('utilisateurs.id', 'utilisateurs.email', { nomUtilisateur: 'utilisateurs.nom' }, 'prenom', 'role', { nomEntreprise: 'entreprises.nom' }, 'codePostal')
     .from('utilisateurs')
-    .leftJoin(
-      'utilisateurs__entreprises',
-      'id',
-      'utilisateurs__entreprises.utilisateur_id'
-    )
-    .leftJoin(
-      'entreprises',
-      'utilisateurs__entreprises.entreprise_id',
-      'entreprises.id'
-    )
+    .leftJoin('utilisateurs__entreprises', 'id', 'utilisateurs__entreprises.utilisateur_id')
+    .leftJoin('entreprises', 'utilisateurs__entreprises.entreprise_id', 'entreprises.id')
     .whereIn('role', ['entreprise', 'bureau d’études'])
     .andWhereNot('utilisateurs.email', null)
   const reduced = result
-    .filter(
-      ({ codePostal }) =>
-        codePostal !== null &&
-        Regions[Departements[toDepartementId(codePostal)].regionId].paysId ===
-          PAYS_IDS['Département de la Guyane']
-    )
+    .filter(({ codePostal }) => codePostal !== null && Regions[Departements[toDepartementId(codePostal)].regionId].paysId === PAYS_IDS['Département de la Guyane'])
     .reduce<Record<string, ResultAggregated>>((acc, user) => {
       if (!acc[user.id]) {
         acc[user.id] = {
@@ -66,7 +37,7 @@ export const subscribeUsersToGuyaneExploitants = async (): Promise<
           entreprises: [user.nomEntreprise],
           nomUtilisateur: user.nomUtilisateur,
           prenom: user.prenom,
-          role: user.role
+          role: user.role,
         }
       } else {
         acc[user.id].entreprises.push(user.nomEntreprise)
@@ -74,13 +45,11 @@ export const subscribeUsersToGuyaneExploitants = async (): Promise<
 
       return acc
     }, {})
-  const users = Object.values(reduced).sort((a, b) =>
-    a.email.localeCompare(b.email)
-  )
+  const users = Object.values(reduced).sort((a, b) => a.email.localeCompare(b.email))
   await exploitantsGuyaneSubscriberUpdate(
     users.map(user => ({
       email: user.email,
-      nom: `${user.nomUtilisateur} ${user.prenom}`
+      nom: `${user.nomUtilisateur} ${user.prenom}`,
     }))
   )
 
diff --git a/packages/api/src/business/matrices.test.ts b/packages/api/src/business/matrices.test.ts
index 4bde3b8d0..1f328a8f4 100644
--- a/packages/api/src/business/matrices.test.ts
+++ b/packages/api/src/business/matrices.test.ts
@@ -15,7 +15,7 @@ describe('matrices', () => {
           redevance_departementale_des_mines_aurifere_kg: { '2021': 56.27 },
           taxe_guyane_brute: { '2021': 852.29 },
           taxe_guyane_deduction: { '2021': 200 },
-          taxe_guyane: { '2021': 652.29 }
+          taxe_guyane: { '2021': 652.29 },
         },
         'titre2-auru-97358': {
           surface_communale: { '2020': 323907 },
@@ -25,7 +25,7 @@ describe('matrices', () => {
           redevance_departementale_des_mines_aurifere_kg: { '2021': 33.47 },
           taxe_guyane_brute: { '2021': 502.08 },
           taxe_guyane_deduction: { '2021': 0 },
-          taxe_guyane: { '2021': 502.08 }
+          taxe_guyane: { '2021': 502.08 },
         },
         'titre2-auru-97312': {
           surface_communale: { '2020': 691155 },
@@ -35,7 +35,7 @@ describe('matrices', () => {
           redevance_departementale_des_mines_aurifere_kg: { '2021': 71.41 },
           taxe_guyane_brute: { '2021': 1071.34 },
           taxe_guyane_deduction: { '2021': 0 },
-          taxe_guyane: { '2021': 1071.34 }
+          taxe_guyane: { '2021': 1071.34 },
         },
         'titre3-auru-97311': {
           surface_communale: { '2020': 1005053 },
@@ -45,8 +45,8 @@ describe('matrices', () => {
           redevance_departementale_des_mines_aurifere_kg: { '2021': 186.13 },
           taxe_guyane_brute: { '2021': 17950.27 },
           taxe_guyane_deduction: { '2021': 5000 },
-          taxe_guyane: { '2021': 12950.27 }
-        }
+          taxe_guyane: { '2021': 12950.27 },
+        },
       },
       titres: {
         titre1: {
@@ -55,7 +55,7 @@ describe('matrices', () => {
           operateur: { '2020': 'titulaire1' },
           investissement: { '2020': '131535' },
           categorie: { '2020': 'pme' },
-          articles: ['titre1-auru-97310']
+          articles: ['titre1-auru-97310'],
         },
         titre2: {
           commune_principale_exploitation: { '2020': '97312' },
@@ -63,7 +63,7 @@ describe('matrices', () => {
           operateur: { '2020': 'titulaire2' },
           investissement: { '2020': '0' },
           categorie: { '2020': 'pme' },
-          articles: ['titre2-auru-97358', 'titre2-auru-97312']
+          articles: ['titre2-auru-97358', 'titre2-auru-97312'],
         },
         titre3: {
           commune_principale_exploitation: { '2020': '97311' },
@@ -71,15 +71,15 @@ describe('matrices', () => {
           operateur: { '2020': 'titulaire3' },
           investissement: { '2020': '28000' },
           categorie: { '2020': 'pme' },
-          articles: ['titre3-auru-97311']
-        }
+          articles: ['titre3-auru-97311'],
+        },
       },
       communes: {
         '97310': { articles: ['titre1-auru-97310'] },
         '97311': { articles: ['titre3-auru-97311'] },
         '97312': { articles: ['titre2-auru-97312'] },
-        '97358': { articles: ['titre2-auru-97358'] }
-      }
+        '97358': { articles: ['titre2-auru-97358'] },
+      },
     }
     const titres: Pick<ITitre, 'id' | 'slug' | 'titulaires' | 'communes'>[] = [
       {
@@ -89,17 +89,17 @@ describe('matrices', () => {
             id: newEntrepriseId(''),
             nom: 'titulaire1',
             adresse: 'ladresse1',
-            legalSiren: 'legalSiren1'
-          }
+            legalSiren: 'legalSiren1',
+          },
         ],
         slug: 'slug-titre-1',
         communes: [
           {
             id: '97310',
             nom: 'Roura',
-            departementId: '973'
-          }
-        ]
+            departementId: '973',
+          },
+        ],
       },
       {
         id: 'titre2',
@@ -108,22 +108,22 @@ describe('matrices', () => {
             id: newEntrepriseId(''),
             nom: 'titulaire2',
             adresse: 'ladresse2',
-            legalSiren: 'legalSiren2'
-          }
+            legalSiren: 'legalSiren2',
+          },
         ],
         slug: 'slug-titre-2',
         communes: [
           {
             id: '97358',
             nom: 'Saint-Élie',
-            departementId: '973'
+            departementId: '973',
           },
           {
             id: '97312',
             nom: 'Sinnamary',
-            departementId: '973'
-          }
-        ]
+            departementId: '973',
+          },
+        ],
       },
       {
         id: 'titre3',
@@ -134,18 +134,18 @@ describe('matrices', () => {
             adresse: 'ladresse3',
             codePostal: checkCodePostal('97311'),
             commune: 'Saint-Laurent-du-Maroni',
-            legalSiren: 'legalSiren3'
-          }
+            legalSiren: 'legalSiren3',
+          },
         ],
         slug: 'slug-titre-3',
         communes: [
           {
             id: '97311',
             nom: 'Saint-Laurent-du-Maroni',
-            departementId: '973'
-          }
-        ]
-      }
+            departementId: '973',
+          },
+        ],
+      },
     ]
 
     expect(
@@ -183,10 +183,10 @@ describe('matrices', () => {
           souf: { tarifCommunal: 3.1, tarifDepartemental: 1.7 },
           uran: { tarifCommunal: 323.7, tarifDepartemental: 64.3 },
           wolf: { tarifCommunal: 148.7, tarifDepartemental: 29.1 },
-          zinc: { tarifCommunal: 545.3, tarifDepartemental: 111.4 }
+          zinc: { tarifCommunal: 545.3, tarifDepartemental: 111.4 },
         },
         tarifTaxeMinierePME: 498.06,
-        tarifTaxeMiniereAutre: 123.97
+        tarifTaxeMiniereAutre: 123.97,
       })
     ).toMatchSnapshot()
   })
diff --git a/packages/api/src/business/matrices.ts b/packages/api/src/business/matrices.ts
index c9855715a..e80b54f0c 100644
--- a/packages/api/src/business/matrices.ts
+++ b/packages/api/src/business/matrices.ts
@@ -1,29 +1,18 @@
 import '../init.js'
 import { titresGet } from '../database/queries/titres.js'
 import { titresActivitesGet } from '../database/queries/titres-activites.js'
-import {
-  apiOpenfiscaCalculate,
-  apiOpenfiscaConstantsFetch,
-  OpenfiscaConstants,
-  OpenfiscaResponse,
-  OpenfiscaTarifs
-} from '../tools/api-openfisca/index.js'
+import { apiOpenfiscaCalculate, apiOpenfiscaConstantsFetch, OpenfiscaConstants, OpenfiscaResponse, OpenfiscaTarifs } from '../tools/api-openfisca/index.js'
 import { bodyBuilder, toFiscalite } from '../api/rest/entreprises.js'
 import { userSuper } from '../database/user-super.js'
 import { entreprisesGet } from '../database/queries/entreprises.js'
-import {
-  Fiscalite,
-  fraisGestion,
-  isFiscaliteGuyane
-} from 'camino-common/src/fiscalite.js'
+import { Fiscalite, fraisGestion, isFiscaliteGuyane } from 'camino-common/src/fiscalite.js'
 import xlsx from 'xlsx'
 import { ICommune, ITitre } from '../types.js'
 import { Departements } from 'camino-common/src/static/departement.js'
 import fs from 'fs'
 import carbone from 'carbone'
 
-const pleaseRound = (value: number): number =>
-  Number.parseFloat(value.toFixed(2))
+const pleaseRound = (value: number): number => Number.parseFloat(value.toFixed(2))
 
 const sips = {
   cayenne: {
@@ -37,8 +26,8 @@ const sips = {
       '97309', // Remire-Montjoly
       '97310', // Roura
       '97308', // Saint-Georges
-      '97307' // Matoury
-    ]
+      '97307', // Matoury
+    ],
   },
   kourou: {
     nom: 'SIP de Kourou',
@@ -47,8 +36,8 @@ const sips = {
       '97305', // Macouria
       '97303', // Iracoubo
       '97312', // Sinnamary
-      '97358' // Saint-Élie
-    ]
+      '97358', // Saint-Élie
+    ],
   },
   saintLaurentDuMaroni: {
     nom: 'SIP de Saint-Laurent du Maroni',
@@ -60,13 +49,12 @@ const sips = {
       '97306', //  Mana
       '97352', //  Saül
       '97353', //  Maripasoula
-      '97311' //  Saint-Laurent-du-Maroni
-    ]
-  }
+      '97311', //  Saint-Laurent-du-Maroni
+    ],
+  },
 } as const
 type Sips = keyof typeof sips
-const isSip = (value: string): value is Sips =>
-  Object.keys(sips).includes(value)
+const isSip = (value: string): value is Sips => Object.keys(sips).includes(value)
 type Matrice1403 = {
   circonscriptionDe: string
   redevanceDepartementale: number
@@ -150,9 +138,7 @@ type Matrice1122 = {
   'Désignation des concessionnaires': string
   'Désignation des concessions': string | undefined
   'Départements sur le territoire desquels fonctionnent les exploitations': string
-  'Communes sur le territoire desquels fonctionnent les exploitations':
-    | string
-    | undefined
+  'Communes sur le territoire desquels fonctionnent les exploitations': string | undefined
   "Tonnages extraits ou cours de l'année précédente | par département": any
   "Tonnages extraits ou cours de l'année précédente | par commune": any
   Observations: string
@@ -184,13 +170,8 @@ export const buildMatrices = (
   const rawLines: Matrices[] = titres
     .filter(titre => !!result.titres[titre.id])
     .flatMap(titre => {
-      const communePrincipaleId =
-        result.titres[titre.id]?.commune_principale_exploitation?.[
-          anneePrecedente
-        ]
-      const communePrincipale = titre.communes?.find(
-        ({ id }) => id === communePrincipaleId
-      )
+      const communePrincipaleId = result.titres[titre.id]?.commune_principale_exploitation?.[anneePrecedente]
+      const communePrincipale = titre.communes?.find(({ id }) => id === communePrincipaleId)
 
       if (!communePrincipale) {
         throw new Error(`commune principale ${communePrincipaleId} introuvable`)
@@ -206,24 +187,15 @@ export const buildMatrices = (
           throw new Error(`commune de l’article ${articleKey} introuvable`)
         }
 
-        const surfaceCommunaleProportionnee =
-          result.articles[articleKey]?.surface_communale_proportionnee?.[
-            anneePrecedente
-          ] ?? 1
-        const surfaceCommunale =
-          result.articles[articleKey]?.surface_communale?.[anneePrecedente] ?? 0
-        const quantiteOrExtrait =
-          (result.articles[articleKey]?.quantite_aurifere_kg?.[
-            anneePrecedente
-          ] ?? 0) * surfaceCommunaleProportionnee
+        const surfaceCommunaleProportionnee = result.articles[articleKey]?.surface_communale_proportionnee?.[anneePrecedente] ?? 1
+        const surfaceCommunale = result.articles[articleKey]?.surface_communale?.[anneePrecedente] ?? 0
+        const quantiteOrExtrait = (result.articles[articleKey]?.quantite_aurifere_kg?.[anneePrecedente] ?? 0) * surfaceCommunaleProportionnee
 
         const fiscalite = toFiscalite(result, articleKey, annee)
 
         const titreLabel = titre.slug ?? ''
 
-        const departement = commune.departementId
-          ? Departements[commune.departementId].nom
-          : ''
+        const departement = commune.departementId ? Departements[commune.departementId].nom : ''
 
         let sip: Sips = 'saintLaurentDuMaroni'
         if (sips.saintLaurentDuMaroni.communes.includes(commune.id)) {
@@ -235,9 +207,7 @@ export const buildMatrices = (
         }
 
         if (titre.titulaires?.length !== 1) {
-          throw new Error(
-            `Un seul titulaire doit être présent sur le titre ${titre.id}`
-          )
+          throw new Error(`Un seul titulaire doit être présent sur le titre ${titre.id}`)
         }
         const titulaireTitre = titre.titulaires[0]
 
@@ -253,12 +223,12 @@ export const buildMatrices = (
             rue: titulaireTitre.adresse ?? '',
             codepostal: titulaireTitre.codePostal ?? '',
             commune: titulaireTitre.commune ?? '',
-            siren: titulaireTitre.legalSiren ?? ''
+            siren: titulaireTitre.legalSiren ?? '',
           },
           titreLabel,
           departementLabel: departement,
           surfaceCommunaleProportionnee,
-          surfaceCommunale
+          surfaceCommunale,
         }
       })
     })
@@ -269,35 +239,22 @@ export const buildMatrices = (
     return {
       "Numéro d'ordre de la matrice": line.index,
       "Commune du lieu principal d'exploitation": line.communePrincipale.nom,
-      'Désignation et adresse des concessionnaires, titulaires de permis d’exploitation ou exploitants':
-        titulaireToString(line.titulaire),
+      'Désignation et adresse des concessionnaires, titulaires de permis d’exploitation ou exploitants': titulaireToString(line.titulaire),
       'Nature des substances extraites': 'Minerais aurifères',
       'Base des redevances | Nature': "Kilogramme d'or contenu",
       'Base des redevances | Quantités': line.quantiteOrExtrait,
-      'Redevance départementale | Tarifs':
-        openfiscaConstants.substances.auru.tarifDepartemental,
-      'Redevance départementale | Montant net':
-        fiscalite.redevanceDepartementale,
-      'Redevance communale | Tarifs':
-        openfiscaConstants.substances.auru.tarifCommunal,
-      'Redevance communale | Montant net redevance des mines':
-        fiscalite.redevanceCommunale,
-      'Total redevance des mines':
-        fiscalite.redevanceCommunale + fiscalite.redevanceDepartementale,
-      "Taxe minière sur l'or de Guyane | Tarifs par kg extrait pour les PME":
-        openfiscaConstants.tarifTaxeMinierePME,
+      'Redevance départementale | Tarifs': openfiscaConstants.substances.auru.tarifDepartemental,
+      'Redevance départementale | Montant net': fiscalite.redevanceDepartementale,
+      'Redevance communale | Tarifs': openfiscaConstants.substances.auru.tarifCommunal,
+      'Redevance communale | Montant net redevance des mines': fiscalite.redevanceCommunale,
+      'Total redevance des mines': fiscalite.redevanceCommunale + fiscalite.redevanceDepartementale,
+      "Taxe minière sur l'or de Guyane | Tarifs par kg extrait pour les PME": openfiscaConstants.tarifTaxeMinierePME,
       "Taxe minière sur l'or de Guyane | Tarifs par kg extrait pour les autres entreprises": 0,
-      "Taxe minière sur l'or de Guyane | Montant des investissements déduits":
-        isFiscaliteGuyane(fiscalite)
-          ? fiscalite.guyane.totalInvestissementsDeduits
-          : 0,
-      "Taxe minière sur l'or de Guyane | Montant net de taxe minière sur l'or de Guyane":
-        isFiscaliteGuyane(fiscalite) ? fiscalite.guyane.taxeAurifere : 0,
-      'Frais de gestion de la fiscalité directe locale':
-        fraisGestion(fiscalite),
-      'Service de la Direction générale des Finances publiques en charge du recouvrement':
-        'Direction régionale des finances publiques (DRFIP) - Guyane',
-      "Numéro de l'article du rôle": line.titreLabel
+      "Taxe minière sur l'or de Guyane | Montant des investissements déduits": isFiscaliteGuyane(fiscalite) ? fiscalite.guyane.totalInvestissementsDeduits : 0,
+      "Taxe minière sur l'or de Guyane | Montant net de taxe minière sur l'or de Guyane": isFiscaliteGuyane(fiscalite) ? fiscalite.guyane.taxeAurifere : 0,
+      'Frais de gestion de la fiscalité directe locale': fraisGestion(fiscalite),
+      'Service de la Direction générale des Finances publiques en charge du recouvrement': 'Direction régionale des finances publiques (DRFIP) - Guyane',
+      "Numéro de l'article du rôle": line.titreLabel,
     }
   })
 
@@ -306,16 +263,11 @@ export const buildMatrices = (
       "Numéro d'ordre de la matrice": line.index,
       'Désignation des concessionnaires': titulaireToString(line.titulaire),
       'Désignation des concessions': line.titreLabel,
-      'Départements sur le territoire desquels fonctionnent les exploitations':
-        line.departementLabel,
-      'Communes sur le territoire desquels fonctionnent les exploitations': `${
-        line.commune?.nom
-      } (${line.surfaceCommunale / 1_000_000} km²)`,
-      "Tonnages extraits ou cours de l'année précédente | par département":
-        line.quantiteOrExtrait,
-      "Tonnages extraits ou cours de l'année précédente | par commune":
-        line.quantiteOrExtrait,
-      Observations: "production en kilogramme d'or"
+      'Départements sur le territoire desquels fonctionnent les exploitations': line.departementLabel,
+      'Communes sur le territoire desquels fonctionnent les exploitations': `${line.commune?.nom} (${line.surfaceCommunale / 1_000_000} km²)`,
+      "Tonnages extraits ou cours de l'année précédente | par département": line.quantiteOrExtrait,
+      "Tonnages extraits ou cours de l'année précédente | par commune": line.quantiteOrExtrait,
+      Observations: "production en kilogramme d'or",
     }
   })
 
@@ -325,45 +277,18 @@ export const buildMatrices = (
         const toAdd = acc[line.sip]
 
         if (toAdd === null) {
-          throw new Error(
-            `la commune ${line.commune.id} n'appartient à aucun SIP`
-          )
+          throw new Error(`la commune ${line.commune.id} n'appartient à aucun SIP`)
         } else {
-          const taxeMiniereSurLOrDeGuyane = isFiscaliteGuyane(line.fiscalite)
-            ? line.fiscalite.guyane.taxeAurifere
-            : 0
-          toAdd.redevanceDepartementale = pleaseRound(
-            line.fiscalite.redevanceDepartementale +
-              toAdd.redevanceDepartementale
-          )
-          toAdd.redevanceCommunale = pleaseRound(
-            line.fiscalite.redevanceCommunale + toAdd.redevanceCommunale
-          )
-          toAdd.taxeMiniereSurLOrDeGuyane = pleaseRound(
-            taxeMiniereSurLOrDeGuyane + toAdd.taxeMiniereSurLOrDeGuyane
-          )
-          toAdd.sommesRevenantALaRegionDeGuyane = pleaseRound(
-            taxeMiniereSurLOrDeGuyane + toAdd.sommesRevenantALaRegionDeGuyane
-          )
-          toAdd.sommesRevenantAuConservatoireDeBioDiversite = pleaseRound(
-            0 + toAdd.sommesRevenantAuConservatoireDeBioDiversite
-          )
-          toAdd.sommesRevenantALEtatFraisAssietteEtRecouvrement = pleaseRound(
-            fraisGestion(line.fiscalite) +
-              toAdd.sommesRevenantALEtatFraisAssietteEtRecouvrement
-          )
-          toAdd.sommesRevenantALEtatDegrevementsEtNonValeurs = pleaseRound(
-            0 + toAdd.sommesRevenantALEtatDegrevementsEtNonValeurs
-          )
-          toAdd.sommesRevenantALEtatTotal = pleaseRound(
-            fraisGestion(line.fiscalite) + toAdd.sommesRevenantALEtatTotal
-          )
-          toAdd.totalColonnes = pleaseRound(
-            toAdd.redevanceDepartementale +
-              toAdd.redevanceCommunale +
-              toAdd.taxeMiniereSurLOrDeGuyane +
-              toAdd.sommesRevenantALEtatTotal
-          )
+          const taxeMiniereSurLOrDeGuyane = isFiscaliteGuyane(line.fiscalite) ? line.fiscalite.guyane.taxeAurifere : 0
+          toAdd.redevanceDepartementale = pleaseRound(line.fiscalite.redevanceDepartementale + toAdd.redevanceDepartementale)
+          toAdd.redevanceCommunale = pleaseRound(line.fiscalite.redevanceCommunale + toAdd.redevanceCommunale)
+          toAdd.taxeMiniereSurLOrDeGuyane = pleaseRound(taxeMiniereSurLOrDeGuyane + toAdd.taxeMiniereSurLOrDeGuyane)
+          toAdd.sommesRevenantALaRegionDeGuyane = pleaseRound(taxeMiniereSurLOrDeGuyane + toAdd.sommesRevenantALaRegionDeGuyane)
+          toAdd.sommesRevenantAuConservatoireDeBioDiversite = pleaseRound(0 + toAdd.sommesRevenantAuConservatoireDeBioDiversite)
+          toAdd.sommesRevenantALEtatFraisAssietteEtRecouvrement = pleaseRound(fraisGestion(line.fiscalite) + toAdd.sommesRevenantALEtatFraisAssietteEtRecouvrement)
+          toAdd.sommesRevenantALEtatDegrevementsEtNonValeurs = pleaseRound(0 + toAdd.sommesRevenantALEtatDegrevementsEtNonValeurs)
+          toAdd.sommesRevenantALEtatTotal = pleaseRound(fraisGestion(line.fiscalite) + toAdd.sommesRevenantALEtatTotal)
+          toAdd.totalColonnes = pleaseRound(toAdd.redevanceDepartementale + toAdd.redevanceCommunale + toAdd.taxeMiniereSurLOrDeGuyane + toAdd.sommesRevenantALEtatTotal)
           toAdd.nombreDArticlesDesRoles++
         }
 
@@ -381,7 +306,7 @@ export const buildMatrices = (
           sommesRevenantALEtatDegrevementsEtNonValeurs: 0,
           sommesRevenantALEtatTotal: 0,
           totalColonnes: 0,
-          nombreDArticlesDesRoles: 0
+          nombreDArticlesDesRoles: 0,
         },
         kourou: {
           circonscriptionDe: sips.kourou.nom,
@@ -394,7 +319,7 @@ export const buildMatrices = (
           sommesRevenantALEtatDegrevementsEtNonValeurs: 0,
           sommesRevenantALEtatTotal: 0,
           totalColonnes: 0,
-          nombreDArticlesDesRoles: 0
+          nombreDArticlesDesRoles: 0,
         },
         saintLaurentDuMaroni: {
           circonscriptionDe: sips.saintLaurentDuMaroni.nom,
@@ -407,8 +332,8 @@ export const buildMatrices = (
           sommesRevenantALEtatDegrevementsEtNonValeurs: 0,
           sommesRevenantALEtatTotal: 0,
           totalColonnes: 0,
-          nombreDArticlesDesRoles: 0
-        }
+          nombreDArticlesDesRoles: 0,
+        },
       }
     )
   )
@@ -419,16 +344,10 @@ export const buildMatrices = (
       const sip = sips[line.sip]
 
       if (toAdd === null) {
-        throw new Error(
-          `la commune ${line.commune.id} n'appartient à aucun SIP`
-        )
+        throw new Error(`la commune ${line.commune.id} n'appartient à aucun SIP`)
       } else {
-        const redevanceCommunalePremiereFraction = pleaseRound(
-          line.fiscalite.redevanceCommunale * 0.35
-        )
-        const redevanceCommunaleDeuxiemeFraction = pleaseRound(
-          line.fiscalite.redevanceCommunale * 0.1
-        )
+        const redevanceCommunalePremiereFraction = pleaseRound(line.fiscalite.redevanceCommunale * 0.35)
+        const redevanceCommunaleDeuxiemeFraction = pleaseRound(line.fiscalite.redevanceCommunale * 0.1)
         toAdd.push({
           circonscriptionDe: sip?.nom ?? '',
           articlesDeRoles: line.index,
@@ -439,37 +358,18 @@ export const buildMatrices = (
           communes: line.communePrincipale.nom,
           elementsDeBase_revenusImposablesALaTFPB: 0,
           elementsDeBase_tonnagesExtraits: line.quantiteOrExtrait,
-          redevanceDepartementale_produitNetDeLaRedevance:
-            line.fiscalite.redevanceDepartementale,
-          redevanceDepartementale_sommesRevenantAuxDepartements:
-            line.fiscalite.redevanceDepartementale,
-          redevanceCommunale_produitNetDeLaRedevance:
-            line.fiscalite.redevanceCommunale,
-          redevanceCommunale_repartition_1ereFraction:
-            redevanceCommunalePremiereFraction,
-          redevanceCommunale_repartition_2emeFraction:
-            redevanceCommunaleDeuxiemeFraction,
-          redevanceCommunale_repartition_3emeFraction: pleaseRound(
-            line.fiscalite.redevanceCommunale * 0.55
-          ),
-          redevanceCommunale_revenantAuxCommunes_1ereFraction:
-            redevanceCommunalePremiereFraction,
-          redevanceCommunale_revenantAuxCommunes_2emeFraction:
-            redevanceCommunaleDeuxiemeFraction,
-          redevanceCommunale_revenantAuxCommunes_total: pleaseRound(
-            redevanceCommunalePremiereFraction +
-              redevanceCommunaleDeuxiemeFraction
-          ),
-          taxeMiniereSurLOrDeGuyane_produitNet: isFiscaliteGuyane(
-            line.fiscalite
-          )
-            ? line.fiscalite.guyane.taxeAurifere
-            : 0,
-          taxeMiniereSurLOrDeGuyane_repartition_regionDeGuyane:
-            isFiscaliteGuyane(line.fiscalite)
-              ? line.fiscalite.guyane.taxeAurifere
-              : 0,
-          taxeMiniereSurLOrDeGuyane_repartition_conservatoire: 0
+          redevanceDepartementale_produitNetDeLaRedevance: line.fiscalite.redevanceDepartementale,
+          redevanceDepartementale_sommesRevenantAuxDepartements: line.fiscalite.redevanceDepartementale,
+          redevanceCommunale_produitNetDeLaRedevance: line.fiscalite.redevanceCommunale,
+          redevanceCommunale_repartition_1ereFraction: redevanceCommunalePremiereFraction,
+          redevanceCommunale_repartition_2emeFraction: redevanceCommunaleDeuxiemeFraction,
+          redevanceCommunale_repartition_3emeFraction: pleaseRound(line.fiscalite.redevanceCommunale * 0.55),
+          redevanceCommunale_revenantAuxCommunes_1ereFraction: redevanceCommunalePremiereFraction,
+          redevanceCommunale_revenantAuxCommunes_2emeFraction: redevanceCommunaleDeuxiemeFraction,
+          redevanceCommunale_revenantAuxCommunes_total: pleaseRound(redevanceCommunalePremiereFraction + redevanceCommunaleDeuxiemeFraction),
+          taxeMiniereSurLOrDeGuyane_produitNet: isFiscaliteGuyane(line.fiscalite) ? line.fiscalite.guyane.taxeAurifere : 0,
+          taxeMiniereSurLOrDeGuyane_repartition_regionDeGuyane: isFiscaliteGuyane(line.fiscalite) ? line.fiscalite.guyane.taxeAurifere : 0,
+          taxeMiniereSurLOrDeGuyane_repartition_conservatoire: 0,
         })
       }
 
@@ -478,7 +378,7 @@ export const buildMatrices = (
     {
       cayenne: [],
       kourou: [],
-      saintLaurentDuMaroni: []
+      saintLaurentDuMaroni: [],
     }
   )
 
@@ -490,7 +390,7 @@ export const matrices = async (annee: number) => {
 
   const titres = await titresGet(
     {
-      territoires: 'guyane'
+      territoires: 'guyane',
     },
     {
       fields: {
@@ -498,8 +398,8 @@ export const matrices = async (annee: number) => {
         communes: { id: {} },
         titulaires: { id: {} },
         amodiataires: { id: {} },
-        activites: { id: {} }
-      }
+        activites: { id: {} },
+      },
     },
     userSuper
   )
@@ -514,14 +414,8 @@ export const matrices = async (annee: number) => {
     if (!titre.activites) {
       throw new Error('activites non chargées')
     }
-    if (
-      titre.amodiataires.length + titre.titulaires.length > 1 &&
-      titre.activites.length > 0
-    ) {
-      console.info(
-        'titre avec plusieurs titulaires/amodiataires',
-        `https://camino.beta.gouv.fr/titres/${titre.slug}`
-      )
+    if (titre.amodiataires.length + titre.titulaires.length > 1 && titre.activites.length > 0) {
+      console.info('titre avec plusieurs titulaires/amodiataires', `https://camino.beta.gouv.fr/titres/${titre.slug}`)
     }
   })
 
@@ -530,7 +424,7 @@ export const matrices = async (annee: number) => {
       typesIds: ['grx', 'gra', 'wrp'],
       statutsIds: ['dep'],
       annees: [anneePrecedente],
-      titresIds: titres.map(({ id }) => id)
+      titresIds: titres.map(({ id }) => id),
     },
     { fields: { id: {} } },
     userSuper
@@ -540,32 +434,21 @@ export const matrices = async (annee: number) => {
       typesIds: ['grp'],
       statutsIds: ['dep'],
       annees: [anneePrecedente],
-      titresIds: titres.map(({ id }) => id)
+      titresIds: titres.map(({ id }) => id),
     },
     { fields: { id: {} } },
     userSuper
   )
 
-  const entreprises = await entreprisesGet(
-    {},
-    { fields: { id: {} } },
-    userSuper
-  )
+  const entreprises = await entreprisesGet({}, { fields: { id: {} } }, userSuper)
 
-  const body = bodyBuilder(
-    activites,
-    activitesTrimestrielles,
-    titres,
-    annee,
-    entreprises
-  )
+  const body = bodyBuilder(activites, activitesTrimestrielles, titres, annee, entreprises)
   if (Object.keys(body.articles).length > 0) {
     const result = await apiOpenfiscaCalculate(body)
 
     const openfiscaConstants = await apiOpenfiscaConstantsFetch(annee)
 
-    const { matrice1121, matrice1122, matrice1403, matrice1404, rawLines } =
-      buildMatrices(result, titres, annee, openfiscaConstants)
+    const { matrice1121, matrice1122, matrice1403, matrice1404, rawLines } = buildMatrices(result, titres, annee, openfiscaConstants)
 
     const worksheet1121 = xlsx.utils.json_to_sheet(matrice1121)
     const csv1121 = xlsx.utils.sheet_to_csv(worksheet1121)
@@ -577,38 +460,16 @@ export const matrices = async (annee: number) => {
 
     const total = matrice1403.reduce(
       (acc, cur) => {
-        acc.redevanceDepartementale = pleaseRound(
-          acc.redevanceDepartementale + cur.redevanceDepartementale
-        )
-        acc.redevanceCommunale = pleaseRound(
-          acc.redevanceCommunale + cur.redevanceCommunale
-        )
-        acc.taxeMiniereSurLOrDeGuyane = pleaseRound(
-          acc.taxeMiniereSurLOrDeGuyane + cur.taxeMiniereSurLOrDeGuyane
-        )
-        acc.sommesRevenantALaRegionDeGuyane = pleaseRound(
-          acc.sommesRevenantALaRegionDeGuyane +
-            cur.sommesRevenantALaRegionDeGuyane
-        )
-        acc.sommesRevenantAuConservatoireDeBioDiversite = pleaseRound(
-          acc.sommesRevenantAuConservatoireDeBioDiversite +
-            cur.sommesRevenantAuConservatoireDeBioDiversite
-        )
-        acc.sommesRevenantALEtatFraisAssietteEtRecouvrement = pleaseRound(
-          acc.sommesRevenantALEtatFraisAssietteEtRecouvrement +
-            cur.sommesRevenantALEtatFraisAssietteEtRecouvrement
-        )
-        acc.sommesRevenantALEtatDegrevementsEtNonValeurs = pleaseRound(
-          acc.sommesRevenantALEtatDegrevementsEtNonValeurs +
-            cur.sommesRevenantALEtatDegrevementsEtNonValeurs
-        )
-        acc.sommesRevenantALEtatTotal = pleaseRound(
-          acc.sommesRevenantALEtatTotal + cur.sommesRevenantALEtatTotal
-        )
+        acc.redevanceDepartementale = pleaseRound(acc.redevanceDepartementale + cur.redevanceDepartementale)
+        acc.redevanceCommunale = pleaseRound(acc.redevanceCommunale + cur.redevanceCommunale)
+        acc.taxeMiniereSurLOrDeGuyane = pleaseRound(acc.taxeMiniereSurLOrDeGuyane + cur.taxeMiniereSurLOrDeGuyane)
+        acc.sommesRevenantALaRegionDeGuyane = pleaseRound(acc.sommesRevenantALaRegionDeGuyane + cur.sommesRevenantALaRegionDeGuyane)
+        acc.sommesRevenantAuConservatoireDeBioDiversite = pleaseRound(acc.sommesRevenantAuConservatoireDeBioDiversite + cur.sommesRevenantAuConservatoireDeBioDiversite)
+        acc.sommesRevenantALEtatFraisAssietteEtRecouvrement = pleaseRound(acc.sommesRevenantALEtatFraisAssietteEtRecouvrement + cur.sommesRevenantALEtatFraisAssietteEtRecouvrement)
+        acc.sommesRevenantALEtatDegrevementsEtNonValeurs = pleaseRound(acc.sommesRevenantALEtatDegrevementsEtNonValeurs + cur.sommesRevenantALEtatDegrevementsEtNonValeurs)
+        acc.sommesRevenantALEtatTotal = pleaseRound(acc.sommesRevenantALEtatTotal + cur.sommesRevenantALEtatTotal)
         acc.totalColonnes = pleaseRound(acc.totalColonnes + cur.totalColonnes)
-        acc.nombreDArticlesDesRoles = pleaseRound(
-          acc.nombreDArticlesDesRoles + cur.nombreDArticlesDesRoles
-        )
+        acc.nombreDArticlesDesRoles = pleaseRound(acc.nombreDArticlesDesRoles + cur.nombreDArticlesDesRoles)
 
         return acc
       },
@@ -622,7 +483,7 @@ export const matrices = async (annee: number) => {
         sommesRevenantALEtatDegrevementsEtNonValeurs: 0,
         sommesRevenantALEtatTotal: 0,
         totalColonnes: 0,
-        nombreDArticlesDesRoles: 0
+        nombreDArticlesDesRoles: 0,
       }
     )
     await new Promise<void>(resolve => {
@@ -631,7 +492,7 @@ export const matrices = async (annee: number) => {
         {
           '1403': matrice1403,
           total,
-          annee
+          annee,
         },
         function (err, result) {
           if (err) {
@@ -649,65 +510,29 @@ export const matrices = async (annee: number) => {
         (acc, sip) => {
           acc[sip] = matrice1404[sip].reduce(
             (accLine, line) => {
-              accLine.elementsDeBase_tonnagesExtraits = pleaseRound(
-                accLine.elementsDeBase_tonnagesExtraits +
-                  Number.parseFloat(line.elementsDeBase_tonnagesExtraits)
+              accLine.elementsDeBase_tonnagesExtraits = pleaseRound(accLine.elementsDeBase_tonnagesExtraits + Number.parseFloat(line.elementsDeBase_tonnagesExtraits))
+              accLine.redevanceDepartementale_produitNetDeLaRedevance = pleaseRound(accLine.redevanceDepartementale_produitNetDeLaRedevance + line.redevanceDepartementale_produitNetDeLaRedevance)
+              accLine.redevanceDepartementale_sommesRevenantAuxDepartements = pleaseRound(
+                accLine.redevanceDepartementale_sommesRevenantAuxDepartements + line.redevanceDepartementale_sommesRevenantAuxDepartements
               )
-              accLine.redevanceDepartementale_produitNetDeLaRedevance =
-                pleaseRound(
-                  accLine.redevanceDepartementale_produitNetDeLaRedevance +
-                    line.redevanceDepartementale_produitNetDeLaRedevance
-                )
-              accLine.redevanceDepartementale_sommesRevenantAuxDepartements =
-                pleaseRound(
-                  accLine.redevanceDepartementale_sommesRevenantAuxDepartements +
-                    line.redevanceDepartementale_sommesRevenantAuxDepartements
-                )
-              accLine.redevanceCommunale_produitNetDeLaRedevance = pleaseRound(
-                accLine.redevanceCommunale_produitNetDeLaRedevance +
-                  line.redevanceCommunale_produitNetDeLaRedevance
+              accLine.redevanceCommunale_produitNetDeLaRedevance = pleaseRound(accLine.redevanceCommunale_produitNetDeLaRedevance + line.redevanceCommunale_produitNetDeLaRedevance)
+              accLine.redevanceCommunale_repartition_1ereFraction = pleaseRound(accLine.redevanceCommunale_repartition_1ereFraction + line.redevanceCommunale_repartition_1ereFraction)
+              accLine.redevanceCommunale_repartition_2emeFraction = pleaseRound(accLine.redevanceCommunale_repartition_2emeFraction + line.redevanceCommunale_repartition_2emeFraction)
+              accLine.redevanceCommunale_repartition_3emeFraction = pleaseRound(accLine.redevanceCommunale_repartition_3emeFraction + line.redevanceCommunale_repartition_3emeFraction)
+              accLine.redevanceCommunale_revenantAuxCommunes_1ereFraction = pleaseRound(
+                accLine.redevanceCommunale_revenantAuxCommunes_1ereFraction + line.redevanceCommunale_revenantAuxCommunes_1ereFraction
               )
-              accLine.redevanceCommunale_repartition_1ereFraction = pleaseRound(
-                accLine.redevanceCommunale_repartition_1ereFraction +
-                  line.redevanceCommunale_repartition_1ereFraction
+              accLine.redevanceCommunale_revenantAuxCommunes_2emeFraction = pleaseRound(
+                accLine.redevanceCommunale_revenantAuxCommunes_2emeFraction + line.redevanceCommunale_revenantAuxCommunes_2emeFraction
               )
-              accLine.redevanceCommunale_repartition_2emeFraction = pleaseRound(
-                accLine.redevanceCommunale_repartition_2emeFraction +
-                  line.redevanceCommunale_repartition_2emeFraction
+              accLine.redevanceCommunale_revenantAuxCommunes_total = pleaseRound(accLine.redevanceCommunale_revenantAuxCommunes_total + line.redevanceCommunale_revenantAuxCommunes_total)
+              accLine.taxeMiniereSurLOrDeGuyane_produitNet = pleaseRound(accLine.taxeMiniereSurLOrDeGuyane_produitNet + line.taxeMiniereSurLOrDeGuyane_produitNet)
+              accLine.taxeMiniereSurLOrDeGuyane_repartition_regionDeGuyane = pleaseRound(
+                accLine.taxeMiniereSurLOrDeGuyane_repartition_regionDeGuyane + line.taxeMiniereSurLOrDeGuyane_repartition_regionDeGuyane
               )
-              accLine.redevanceCommunale_repartition_3emeFraction = pleaseRound(
-                accLine.redevanceCommunale_repartition_3emeFraction +
-                  line.redevanceCommunale_repartition_3emeFraction
+              accLine.taxeMiniereSurLOrDeGuyane_repartition_conservatoire = pleaseRound(
+                accLine.taxeMiniereSurLOrDeGuyane_repartition_conservatoire + line.taxeMiniereSurLOrDeGuyane_repartition_conservatoire
               )
-              accLine.redevanceCommunale_revenantAuxCommunes_1ereFraction =
-                pleaseRound(
-                  accLine.redevanceCommunale_revenantAuxCommunes_1ereFraction +
-                    line.redevanceCommunale_revenantAuxCommunes_1ereFraction
-                )
-              accLine.redevanceCommunale_revenantAuxCommunes_2emeFraction =
-                pleaseRound(
-                  accLine.redevanceCommunale_revenantAuxCommunes_2emeFraction +
-                    line.redevanceCommunale_revenantAuxCommunes_2emeFraction
-                )
-              accLine.redevanceCommunale_revenantAuxCommunes_total =
-                pleaseRound(
-                  accLine.redevanceCommunale_revenantAuxCommunes_total +
-                    line.redevanceCommunale_revenantAuxCommunes_total
-                )
-              accLine.taxeMiniereSurLOrDeGuyane_produitNet = pleaseRound(
-                accLine.taxeMiniereSurLOrDeGuyane_produitNet +
-                  line.taxeMiniereSurLOrDeGuyane_produitNet
-              )
-              accLine.taxeMiniereSurLOrDeGuyane_repartition_regionDeGuyane =
-                pleaseRound(
-                  accLine.taxeMiniereSurLOrDeGuyane_repartition_regionDeGuyane +
-                    line.taxeMiniereSurLOrDeGuyane_repartition_regionDeGuyane
-                )
-              accLine.taxeMiniereSurLOrDeGuyane_repartition_conservatoire =
-                pleaseRound(
-                  accLine.taxeMiniereSurLOrDeGuyane_repartition_conservatoire +
-                    line.taxeMiniereSurLOrDeGuyane_repartition_conservatoire
-                )
 
               return accLine
             },
@@ -724,7 +549,7 @@ export const matrices = async (annee: number) => {
               redevanceCommunale_revenantAuxCommunes_total: 0,
               taxeMiniereSurLOrDeGuyane_produitNet: 0,
               taxeMiniereSurLOrDeGuyane_repartition_regionDeGuyane: 0,
-              taxeMiniereSurLOrDeGuyane_repartition_conservatoire: 0
+              taxeMiniereSurLOrDeGuyane_repartition_conservatoire: 0,
             }
           )
 
@@ -733,7 +558,7 @@ export const matrices = async (annee: number) => {
         {
           kourou: {},
           cayenne: {},
-          saintLaurentDuMaroni: {}
+          saintLaurentDuMaroni: {},
         }
       )
     await new Promise<void>(resolve => {
@@ -742,7 +567,7 @@ export const matrices = async (annee: number) => {
         {
           ...matrice1404,
           total: total1404,
-          annee
+          annee,
         },
         function (err, result) {
           if (err) {
@@ -787,24 +612,13 @@ export const matrices = async (annee: number) => {
           taxePME: openfiscaConstants.tarifTaxeMinierePME,
           taxeAutre: openfiscaConstants.tarifTaxeMiniereAutre,
           redevanceCommunale: matriceLine.fiscalite.redevanceCommunale,
-          redevanceDepartementale:
-            matriceLine.fiscalite.redevanceDepartementale,
+          redevanceDepartementale: matriceLine.fiscalite.redevanceDepartementale,
           taxeMiniereOr: fiscaliteLine.guyane.taxeAurifereBrute,
-          montantInvestissements:
-            fiscaliteLine.guyane.totalInvestissementsDeduits,
+          montantInvestissements: fiscaliteLine.guyane.totalInvestissementsDeduits,
           montantNetTaxeMiniereOr: fiscaliteLine.guyane.taxeAurifere,
-          totalCotisations: pleaseRound(
-            matriceLine.fiscalite.redevanceCommunale +
-              matriceLine.fiscalite.redevanceDepartementale +
-              fiscaliteLine.guyane.taxeAurifere
-          ),
+          totalCotisations: pleaseRound(matriceLine.fiscalite.redevanceCommunale + matriceLine.fiscalite.redevanceDepartementale + fiscaliteLine.guyane.taxeAurifere),
           fraisGestion: fraisGestion(fiscaliteLine),
-          total: pleaseRound(
-            matriceLine.fiscalite.redevanceCommunale +
-              matriceLine.fiscalite.redevanceDepartementale +
-              fiscaliteLine.guyane.taxeAurifere +
-              fraisGestion(fiscaliteLine)
-          )
+          total: pleaseRound(matriceLine.fiscalite.redevanceCommunale + matriceLine.fiscalite.redevanceDepartementale + fiscaliteLine.guyane.taxeAurifere + fraisGestion(fiscaliteLine)),
         }
         matrice1401[matriceLine.sip].push(matrice)
         await new Promise<void>(resolve => {
@@ -818,16 +632,13 @@ export const matrices = async (annee: number) => {
               titulaire: matriceLine.titulaire,
               titreLabel: matriceLine.titreLabel,
               annee,
-              anneeSuivante: annee + 1
+              anneeSuivante: annee + 1,
             },
             function (err, result) {
               if (err) {
                 return console.error(err)
               }
-              fs.writeFileSync(
-                `1402_${annee}_${matriceLine.sip}_${matriceLine.index}_${matriceLine.titulaire.nom}_${matriceLine.titreLabel}.ods`,
-                result
-              )
+              fs.writeFileSync(`1402_${annee}_${matriceLine.sip}_${matriceLine.index}_${matriceLine.titulaire.nom}_${matriceLine.titreLabel}.ods`, result)
               resolve()
             }
           )
@@ -838,45 +649,22 @@ export const matrices = async (annee: number) => {
     for (const sip of Object.keys(sips)) {
       if (isSip(sip)) {
         await new Promise<void>(resolve => {
-          const montantTotalSommeALEtat = pleaseRound(
-            matrice1401[sip].reduce((acc, cur) => acc + cur.fraisGestion, 0)
-          )
-          const fraisAssietteEtRecouvrement = pleaseRound(
-            (montantTotalSommeALEtat * 4.4) / 8
-          )
+          const montantTotalSommeALEtat = pleaseRound(matrice1401[sip].reduce((acc, cur) => acc + cur.fraisGestion, 0))
+          const fraisAssietteEtRecouvrement = pleaseRound((montantTotalSommeALEtat * 4.4) / 8)
           carbone.render(
             'src/business/resources/matrice_1401-SD_2022.ods',
             {
               valeurs: matrice1401[sip],
               nombreArticles: matrice1401[sip].length,
-              total: pleaseRound(
-                matrice1401[sip].reduce((acc, cur) => acc + cur.total, 0)
-              ),
+              total: pleaseRound(matrice1401[sip].reduce((acc, cur) => acc + cur.total, 0)),
               montantTotalSommeALEtat,
               fraisAssietteEtRecouvrement,
-              fraisDegrevement: pleaseRound(
-                montantTotalSommeALEtat - fraisAssietteEtRecouvrement
-              ),
-              redevanceDepartementale: pleaseRound(
-                matrice1401[sip].reduce(
-                  (acc, cur) => acc + cur.redevanceDepartementale,
-                  0
-                )
-              ),
-              redevanceCommunale: pleaseRound(
-                matrice1401[sip].reduce(
-                  (acc, cur) => acc + cur.redevanceCommunale,
-                  0
-                )
-              ),
-              montantNetTaxeMiniereOr: pleaseRound(
-                matrice1401[sip].reduce(
-                  (acc, cur) => acc + cur.montantNetTaxeMiniereOr,
-                  0
-                )
-              ),
+              fraisDegrevement: pleaseRound(montantTotalSommeALEtat - fraisAssietteEtRecouvrement),
+              redevanceDepartementale: pleaseRound(matrice1401[sip].reduce((acc, cur) => acc + cur.redevanceDepartementale, 0)),
+              redevanceCommunale: pleaseRound(matrice1401[sip].reduce((acc, cur) => acc + cur.redevanceCommunale, 0)),
+              montantNetTaxeMiniereOr: pleaseRound(matrice1401[sip].reduce((acc, cur) => acc + cur.montantNetTaxeMiniereOr, 0)),
               annee,
-              anneePrecedente
+              anneePrecedente,
             },
             function (err, result) {
               if (err) {
diff --git a/packages/api/src/business/processes/__mocks__/entreprises-update.ts b/packages/api/src/business/processes/__mocks__/entreprises-update.ts
index 9b51a5831..6b52721b3 100644
--- a/packages/api/src/business/processes/__mocks__/entreprises-update.ts
+++ b/packages/api/src/business/processes/__mocks__/entreprises-update.ts
@@ -4,80 +4,62 @@ import EntreprisesEtablissements from '../../../database/models/entreprises-etab
 const dbEntreprisesCreees = [
   { id: 'pipo', legalSiren: undefined, nom: 'pipo' },
   { id: 'toto', legalSiren: 'toto', nom: 'toto' },
-  { id: 'nunu', legalSiren: 'toto', nom: 'nunu' }
+  { id: 'nunu', legalSiren: 'toto', nom: 'nunu' },
 ] as Entreprises[]
 
 const dbEntreprisesEtablissementsCreees = [] as EntreprisesEtablissements[]
 
-const apiEntreprisesCreees = [
-  { id: 'papa', legalSiren: 'toto' }
-] as Entreprises[]
+const apiEntreprisesCreees = [{ id: 'papa', legalSiren: 'toto' }] as Entreprises[]
 
 const apiEntreprisesEtablissementsCreees = [
   { id: 'pipo', nom: 'pipo' },
-  { id: 'toto', nom: 'toto' }
+  { id: 'toto', nom: 'toto' },
 ] as EntreprisesEtablissements[]
 
-const dbEntreprisesModifiees = [
-  { id: 'toto', legalSiren: 'toto', nom: 'toto' }
-] as Entreprises[]
+const dbEntreprisesModifiees = [{ id: 'toto', legalSiren: 'toto', nom: 'toto' }] as Entreprises[]
 
-const dbEntreprisesEtablissementsModifies = [
-  { id: 'toto', nom: 'toto' }
-] as EntreprisesEtablissements[]
+const dbEntreprisesEtablissementsModifies = [{ id: 'toto', nom: 'toto' }] as EntreprisesEtablissements[]
 
-const apiEntreprisesModifiees = [
-  { id: 'toto', legalSiren: 'papa' }
-] as Entreprises[]
+const apiEntreprisesModifiees = [{ id: 'toto', legalSiren: 'papa' }] as Entreprises[]
 
-const apiEntreprisesEtablissementsModifiees = [
-  { id: 'toto', nom: 'tutu' }
-] as EntreprisesEtablissements[]
+const apiEntreprisesEtablissementsModifiees = [{ id: 'toto', nom: 'tutu' }] as EntreprisesEtablissements[]
 
-const dbEntreprisesSupprimeees = [
-  { id: 'papa', legalSiren: 'toto', nom: 'toto' }
-] as Entreprises[]
+const dbEntreprisesSupprimeees = [{ id: 'papa', legalSiren: 'toto', nom: 'toto' }] as Entreprises[]
 const dbEntreprisesEtablissementsSupprimeees = [
   {
     id: 'papa',
     dateDebut: '2000-01-01',
-    entrepriseId: 'toto'
-  }
+    entrepriseId: 'toto',
+  },
 ] as EntreprisesEtablissements[]
 const apiEntreprisesSupprimeees = [] as Entreprises[]
 
-const dbEntreprisesExistantes = [
-  { id: 'toto', legalSiren: 'toto', nom: 'toto' }
-] as Entreprises[]
+const dbEntreprisesExistantes = [{ id: 'toto', legalSiren: 'toto', nom: 'toto' }] as Entreprises[]
 
 const dbEntreprisesEtablissementsExistants = [
   {
     id: 'toto',
     dateDebut: '2000-01-01',
-    entrepriseId: 'toto'
-  }
+    entrepriseId: 'toto',
+  },
 ] as EntreprisesEtablissements[]
 
-const apiEntreprisesExistantes = [
-  { id: 'toto', legalSiren: 'toto', nom: 'toto' }
-] as Entreprises[]
+const apiEntreprisesExistantes = [{ id: 'toto', legalSiren: 'toto', nom: 'toto' }] as Entreprises[]
 
 const apiEntreprisesEtablissementsExistantes = [
   {
     id: 'toto',
     dateDebut: '2000-01-01',
-    entrepriseId: 'toto'
-  }
+    entrepriseId: 'toto',
+  },
 ] as EntreprisesEtablissements[]
 
 const dbEntreprisesInexistantes = [] as Entreprises[]
 const dbEntreprisesEtablissementsInexistants = [] as EntreprisesEtablissements[]
 const apiEntreprisesInexistantes = [] as Entreprises[]
 
-const apiEntreprisesEtablissmentsInexistantes =
-  [] as EntreprisesEtablissements[]
-const apiEntreprisesEtablissementsSupprimeees =
-  [] as EntreprisesEtablissements[]
+const apiEntreprisesEtablissmentsInexistantes = [] as EntreprisesEtablissements[]
+const apiEntreprisesEtablissementsSupprimeees = [] as EntreprisesEtablissements[]
 
 export {
   dbEntreprisesCreees,
@@ -99,5 +81,5 @@ export {
   apiEntreprisesEtablissmentsInexistantes,
   apiEntreprisesEtablissementsCreees,
   apiEntreprisesEtablissementsModifiees,
-  apiEntreprisesEtablissementsSupprimeees
+  apiEntreprisesEtablissementsSupprimeees,
 }
diff --git a/packages/api/src/business/processes/__mocks__/titre-activite-props-update.ts b/packages/api/src/business/processes/__mocks__/titre-activite-props-update.ts
index 07ca2d436..416fb375c 100644
--- a/packages/api/src/business/processes/__mocks__/titre-activite-props-update.ts
+++ b/packages/api/src/business/processes/__mocks__/titre-activite-props-update.ts
@@ -1,6 +1,6 @@
 import Titres from '../../../database/models/titres.js'
 const activiteType = {
-  frequenceId: 'tri'
+  frequenceId: 'tri',
 }
 
 const titresActivitesToUpdate = [
@@ -15,14 +15,14 @@ const titresActivitesToUpdate = [
         annee: 2019,
         periodeId: 3,
         type: activiteType,
-        suppression: true
+        suppression: true,
       },
       {
         id: 'titre-activite-id-2019-04',
         date: '2020-01-01',
         annee: 2019,
         periodeId: 4,
-        type: activiteType
+        type: activiteType,
       },
       {
         id: 'titre-activite-id-2020-01',
@@ -30,28 +30,28 @@ const titresActivitesToUpdate = [
         annee: 2020,
         periodeId: 1,
         type: activiteType,
-        suppression: true
+        suppression: true,
       },
       {
         id: 'titre-activite-id-2020-02',
         date: '2020-07-01',
         annee: 2020,
         periodeId: 2,
-        type: activiteType
-      }
-    ]
-  }
+        type: activiteType,
+      },
+    ],
+  },
 ] as unknown as Titres[]
 
 const titresActivitesNotToUpdate = [
   {
     id: 'titre-id',
-    typeId: 'axm'
+    typeId: 'axm',
   },
   {
     id: 'titre-id',
     typeId: 'axm',
-    activites: []
+    activites: [],
   },
   {
     id: 'titre-id',
@@ -63,9 +63,9 @@ const titresActivitesNotToUpdate = [
         annee: 2019,
         periodeId: 3,
         type: activiteType,
-        suppression: true
-      }
-    ]
+        suppression: true,
+      },
+    ],
   },
   {
     id: 'titre-id',
@@ -79,10 +79,10 @@ const titresActivitesNotToUpdate = [
         statutId: 'abs',
         periodeId: 3,
         type: activiteType,
-        suppression: true
-      }
-    ]
-  }
+        suppression: true,
+      },
+    ],
+  },
 ] as unknown as Titres[]
 
 export { titresActivitesToUpdate, titresActivitesNotToUpdate }
diff --git a/packages/api/src/business/processes/__mocks__/titre-fichiers-rename.ts b/packages/api/src/business/processes/__mocks__/titre-fichiers-rename.ts
index bb8e05ad1..58b5a7f55 100644
--- a/packages/api/src/business/processes/__mocks__/titre-fichiers-rename.ts
+++ b/packages/api/src/business/processes/__mocks__/titre-fichiers-rename.ts
@@ -12,21 +12,21 @@ const titreNew = {
             {
               id: 'new-titre-id-demarche-01-etape-01-document-01',
               fichier: true,
-              fichierTypeId: 'pdf'
+              fichierTypeId: 'pdf',
             },
             {
-              id: 'new-titre-id-demarche-01-etape-01-document-02'
+              id: 'new-titre-id-demarche-01-etape-01-document-02',
             },
             {
               id: 'new-titre-id-demarche-01-etape-01-document-03',
               fichier: true,
-              fichierTypeId: 'pdf'
-            }
-          ]
-        }
-      ]
-    }
-  ]
+              fichierTypeId: 'pdf',
+            },
+          ],
+        },
+      ],
+    },
+  ],
 } as ITitre
 
 const titreNewSansDemarches = { id: 'new-titre-id' } as ITitre
@@ -38,12 +38,9 @@ const titreNewSansEtapes = {
     { id: 'new-titre-id-demarche-02' },
     {
       id: 'new-titre-id-demarche-03',
-      etapes: [
-        { id: 'new-titre-id-demarche-03-etape-01', documents: [] },
-        { id: 'new-titre-id-demarche-03-etape-02' }
-      ]
-    }
-  ]
+      etapes: [{ id: 'new-titre-id-demarche-03-etape-01', documents: [] }, { id: 'new-titre-id-demarche-03-etape-02' }],
+    },
+  ],
 } as ITitre
 
 const titreNewDemarchesSansChangement = {
@@ -58,24 +55,19 @@ const titreNewDemarchesSansChangement = {
             {
               id: 'old-titre-id-demarche-01-etape-01-document-01',
               fichier: true,
-              fichierTypeId: 'pdf'
+              fichierTypeId: 'pdf',
             },
             { id: 'old-titre-id-demarche-01-etape-01-document-02' },
             {
               id: 'old-titre-id-demarche-01-etape-01-document-03',
               fichier: true,
-              fichierTypeId: 'pdf'
-            }
-          ]
-        }
-      ]
-    }
-  ]
+              fichierTypeId: 'pdf',
+            },
+          ],
+        },
+      ],
+    },
+  ],
 } as ITitre
 
-export {
-  titreNew,
-  titreNewSansDemarches,
-  titreNewSansEtapes,
-  titreNewDemarchesSansChangement
-}
+export { titreNew, titreNewSansDemarches, titreNewSansEtapes, titreNewDemarchesSansChangement }
diff --git a/packages/api/src/business/processes/__mocks__/titres-activites-statut-ids-update-activites.ts b/packages/api/src/business/processes/__mocks__/titres-activites-statut-ids-update-activites.ts
index 9565323ab..3bee8dcda 100644
--- a/packages/api/src/business/processes/__mocks__/titres-activites-statut-ids-update-activites.ts
+++ b/packages/api/src/business/processes/__mocks__/titres-activites-statut-ids-update-activites.ts
@@ -5,16 +5,16 @@ const titresActivitesDelaiDepasse = [
   {
     date: '1000-01-01',
     activiteStatutId: ACTIVITES_STATUTS_IDS.ABSENT,
-    type: { delaiMois: 3 }
-  }
+    type: { delaiMois: 3 },
+  },
 ] as TitresActivites[]
 
 const titresActivitesDelaiNonDepasse = [
   {
     date: '3000-01-01',
     activiteStatutId: ACTIVITES_STATUTS_IDS.ABSENT,
-    type: { delaiMois: 3 }
-  }
+    type: { delaiMois: 3 },
+  },
 ] as TitresActivites[]
 
 export { titresActivitesDelaiDepasse, titresActivitesDelaiNonDepasse }
diff --git a/packages/api/src/business/processes/__mocks__/titres-activites-update-titres.ts b/packages/api/src/business/processes/__mocks__/titres-activites-update-titres.ts
index 486a61957..92a5b5960 100644
--- a/packages/api/src/business/processes/__mocks__/titres-activites-update-titres.ts
+++ b/packages/api/src/business/processes/__mocks__/titres-activites-update-titres.ts
@@ -5,8 +5,8 @@ const titresSansActivite = [
   {
     id: 'h-cx-courdemanges-1988',
     activites: [],
-    titulaires: [{ utilisateurs: [{ email: 'email' }] }]
-  }
+    titulaires: [{ utilisateurs: [{ email: 'email' }] }],
+  },
 ] as unknown as Titres[]
 
 const titresToutesActivites = [
@@ -16,16 +16,16 @@ const titresToutesActivites = [
       { annee: 2018, periodeId: 1 },
       { annee: 2018, periodeId: 2 },
       { annee: 2018, periodeId: 3 },
-      { annee: 2018, periodeId: 4 }
-    ]
-  }
+      { annee: 2018, periodeId: 4 },
+    ],
+  },
 ] as Titres[]
 
 const titreActiviteTypeGuyane = {
   id: 'grp',
   dateDebut: 2018,
   nom: "rapport d'activité",
-  frequenceId: 'tri'
+  frequenceId: 'tri',
 } as unknown as ActivitesTypes
 
 const titreActivitesTypes = [titreActiviteTypeGuyane]
diff --git a/packages/api/src/business/processes/__mocks__/titres-demarches-ordre-update-demarches.ts b/packages/api/src/business/processes/__mocks__/titres-demarches-ordre-update-demarches.ts
index e911d340a..d85a87af2 100644
--- a/packages/api/src/business/processes/__mocks__/titres-demarches-ordre-update-demarches.ts
+++ b/packages/api/src/business/processes/__mocks__/titres-demarches-ordre-update-demarches.ts
@@ -14,9 +14,9 @@ const titresDemarchesDesordonnees = [
             id: 'm-pr-saint-pierre-2014-oct01-dpu01',
             titreDemarcheId: 'm-pr-saint-pierre-2014-oct01',
             typeId: 'dpu',
-            statutId: 'acc'
-          }
-        ]
+            statutId: 'acc',
+          },
+        ],
       },
       {
         id: 'm-pr-saint-pierre-2014-pro01',
@@ -29,12 +29,12 @@ const titresDemarchesDesordonnees = [
             id: 'm-pr-saint-pierre-2014-pro01-dpu01',
             titreDemarcheId: 'm-pr-saint-pierre-2014-pro01',
             typeId: 'dpu',
-            statutId: 'acc'
-          }
-        ]
-      }
-    ]
-  }
+            statutId: 'acc',
+          },
+        ],
+      },
+    ],
+  },
 ] as Titres[]
 
 const titresDemarchesOrdonnees = [
@@ -51,9 +51,9 @@ const titresDemarchesOrdonnees = [
             id: 'm-pr-saint-pierre-2014-oct01-dpu01',
             titreDemarcheId: 'm-pr-saint-pierre-2014-oct01',
             typeId: 'dpu',
-            statutId: 'acc'
-          }
-        ]
+            statutId: 'acc',
+          },
+        ],
       },
       {
         id: 'm-pr-saint-pierre-2014-pro01',
@@ -66,12 +66,12 @@ const titresDemarchesOrdonnees = [
             id: 'm-pr-saint-pierre-2014-pro01-dpu01',
             titreDemarcheId: 'm-pr-saint-pierre-2014-pro01',
             typeId: 'dpu',
-            statutId: 'acc'
-          }
-        ]
-      }
-    ]
-  }
+            statutId: 'acc',
+          },
+        ],
+      },
+    ],
+  },
 ] as Titres[]
 
 export { titresDemarchesDesordonnees, titresDemarchesOrdonnees }
diff --git a/packages/api/src/business/processes/__mocks__/titres-demarches-public-update-demarches.ts b/packages/api/src/business/processes/__mocks__/titres-demarches-public-update-demarches.ts
index b055c0194..19aa704b3 100644
--- a/packages/api/src/business/processes/__mocks__/titres-demarches-public-update-demarches.ts
+++ b/packages/api/src/business/processes/__mocks__/titres-demarches-public-update-demarches.ts
@@ -12,10 +12,10 @@ const titresDemarchesPublicModifie = [
         ordre: 1,
         type: { etapesTypes: [{ id: 'dpu', titreTypeId: 'cxh' }] },
         publicLecture: true,
-        entreprisesLecture: true
-      }
-    ]
-  }
+        entreprisesLecture: true,
+      },
+    ],
+  },
 ] as Titres[]
 
 const titresDemarchesPublicIdentique = [
@@ -37,14 +37,14 @@ const titresDemarchesPublicIdentique = [
             statutId: 'rej',
             ordre: 1,
             date: '1988-03-06',
-            dateFin: '2013-03-11'
-          }
+            dateFin: '2013-03-11',
+          },
         ],
         publicLecture: false,
-        entreprisesLecture: true
-      }
-    ]
-  }
+        entreprisesLecture: true,
+      },
+    ],
+  },
 ] as unknown as Titres[]
 
 export { titresDemarchesPublicModifie, titresDemarchesPublicIdentique }
diff --git a/packages/api/src/business/processes/__mocks__/titres-etapes-administrations-locales-update-etapes.ts b/packages/api/src/business/processes/__mocks__/titres-etapes-administrations-locales-update-etapes.ts
index ba208bc92..f782fb880 100644
--- a/packages/api/src/business/processes/__mocks__/titres-etapes-administrations-locales-update-etapes.ts
+++ b/packages/api/src/business/processes/__mocks__/titres-etapes-administrations-locales-update-etapes.ts
@@ -8,8 +8,8 @@ export const titresEtapesCommunesVides = [
     statutId: 'acc',
     ordre: 2,
     date: '1988-03-11',
-    communes: []
-  }
+    communes: [],
+  },
 ] as unknown as TitresEtapes[]
 
 export const titresEtapesCommunesMemeCommune = [
@@ -20,6 +20,6 @@ export const titresEtapesCommunesMemeCommune = [
     statutId: 'acc',
     ordre: 2,
     date: '1988-03-11',
-    communes: [{ departementId: '29' }, { departementId: '29' }]
-  }
+    communes: [{ departementId: '29' }, { departementId: '29' }],
+  },
 ] as unknown as TitresEtapes[]
diff --git a/packages/api/src/business/processes/__mocks__/titres-phases-update-titres.ts b/packages/api/src/business/processes/__mocks__/titres-phases-update-titres.ts
index 5ea050fe5..bc6c33ad4 100644
--- a/packages/api/src/business/processes/__mocks__/titres-phases-update-titres.ts
+++ b/packages/api/src/business/processes/__mocks__/titres-phases-update-titres.ts
@@ -11,10 +11,10 @@ const titresSansPhase = [
         typeId: 'oct',
         statutId: 'acc',
         ordre: 1,
-        etapes: []
-      }
-    ]
-  } as unknown as Titres
+        etapes: [],
+      },
+    ],
+  } as unknown as Titres,
 ]
 
 const titresUnePhase = [
@@ -34,7 +34,7 @@ const titresUnePhase = [
             statutId: 'acc',
             ordre: 2,
             date: '2200-01-01',
-            dateFin: '2500-01-01'
+            dateFin: '2500-01-01',
           },
           {
             id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -42,12 +42,12 @@ const titresUnePhase = [
             statutId: 'acc',
             ordre: 1,
             date: '2200-01-01',
-            dateFin: '2500-01-01'
-          }
-        ]
-      }
-    ]
-  } as Titres
+            dateFin: '2500-01-01',
+          },
+        ],
+      },
+    ],
+  } as Titres,
 ]
 
 const titrePhase = [
@@ -55,8 +55,8 @@ const titrePhase = [
     titreDemarcheId: 'h-cx-courdemanges-1988-oct01',
     dateFin: '2500-01-01',
     dateDebut: '2200-01-01',
-    phaseStatutId: 'val'
-  }
+    phaseStatutId: 'val',
+  },
 ] as ITitrePhase[]
 
 const titresUnePhaseMiseAJour = [
@@ -73,7 +73,7 @@ const titresUnePhaseMiseAJour = [
           titreDemarcheId: 'h-cx-courdemanges-1988-oct01',
           dateFin: '2500-01-01',
           dateDebut: '2300-01-01',
-          phaseStatutId: 'val'
+          phaseStatutId: 'val',
         },
         etapes: [
           {
@@ -82,7 +82,7 @@ const titresUnePhaseMiseAJour = [
             statutId: 'acc',
             ordre: 2,
             date: '2200-01-01',
-            dateFin: '2500-01-01'
+            dateFin: '2500-01-01',
           },
           {
             id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -90,12 +90,12 @@ const titresUnePhaseMiseAJour = [
             statutId: 'acc',
             ordre: 1,
             date: '2200-01-01',
-            dateFin: '2500-01-01'
-          }
-        ]
-      }
-    ]
-  } as Titres
+            dateFin: '2500-01-01',
+          },
+        ],
+      },
+    ],
+  } as Titres,
 ]
 
 const titresPhaseASupprimer = [
@@ -112,12 +112,12 @@ const titresPhaseASupprimer = [
           titreDemarcheId: 'h-cx-courdemanges-1988-oct01',
           dateFin: '2500-01-01',
           dateDebut: '2200-01-01',
-          statutId: 'val'
+          statutId: 'val',
         },
-        etapes: []
-      }
-    ]
-  } as unknown as Titres
+        etapes: [],
+      },
+    ],
+  } as unknown as Titres,
 ]
 
 const titresUnePhaseSansChangement = [
@@ -134,7 +134,7 @@ const titresUnePhaseSansChangement = [
           titreDemarcheId: 'h-cx-courdemanges-1988-oct01',
           dateFin: '2500-01-01',
           dateDebut: '2200-01-01',
-          phaseStatutId: 'val'
+          phaseStatutId: 'val',
         },
         etapes: [
           {
@@ -143,7 +143,7 @@ const titresUnePhaseSansChangement = [
             statutId: 'acc',
             ordre: 2,
             date: '2200-01-01',
-            dateFin: '2500-01-01'
+            dateFin: '2500-01-01',
           },
           {
             id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -151,19 +151,12 @@ const titresUnePhaseSansChangement = [
             statutId: 'acc',
             ordre: 1,
             date: '2200-01-01',
-            dateFin: '2500-01-01'
-          }
-        ]
-      }
-    ]
-  } as Titres
+            dateFin: '2500-01-01',
+          },
+        ],
+      },
+    ],
+  } as Titres,
 ]
 
-export {
-  titresSansPhase,
-  titresUnePhase,
-  titrePhase,
-  titresUnePhaseMiseAJour,
-  titresPhaseASupprimer,
-  titresUnePhaseSansChangement
-}
+export { titresSansPhase, titresUnePhase, titrePhase, titresUnePhaseMiseAJour, titresPhaseASupprimer, titresUnePhaseSansChangement }
diff --git a/packages/api/src/business/processes/__mocks__/titres-public-update-titres.ts b/packages/api/src/business/processes/__mocks__/titres-public-update-titres.ts
index a4f1d55c2..ac004c451 100644
--- a/packages/api/src/business/processes/__mocks__/titres-public-update-titres.ts
+++ b/packages/api/src/business/processes/__mocks__/titres-public-update-titres.ts
@@ -5,12 +5,12 @@ export const titresPublicModifie = [
     typeId: 'cxh',
     type: {
       domaineId: 'h',
-      typeId: 'cx'
+      typeId: 'cx',
     },
     demarches: [],
     publicLecture: true,
-    entreprisesLecture: false
-  } as unknown as Titres
+    entreprisesLecture: false,
+  } as unknown as Titres,
 ]
 
 export const titresPublicIdentique = [
@@ -18,10 +18,10 @@ export const titresPublicIdentique = [
     typeId: 'cxh',
     type: {
       domaineId: 'h',
-      typeId: 'cx'
+      typeId: 'cx',
     },
     demarches: null,
     publicLecture: false,
-    entreprisesLecture: true
-  } as unknown as Titres
+    entreprisesLecture: true,
+  } as unknown as Titres,
 ]
diff --git a/packages/api/src/business/processes/__mocks__/titres-statut-ids-update-titres.ts b/packages/api/src/business/processes/__mocks__/titres-statut-ids-update-titres.ts
index aae30ef63..00e35af10 100644
--- a/packages/api/src/business/processes/__mocks__/titres-statut-ids-update-titres.ts
+++ b/packages/api/src/business/processes/__mocks__/titres-statut-ids-update-titres.ts
@@ -21,12 +21,12 @@ const titresValideStatutIdAJour = [
             ordre: 1,
             date: '2014-04-01',
             dateDebut: null,
-            dateFin: '3014-04-01'
-          }
-        ]
-      }
-    ]
-  } as Titres
+            dateFin: '3014-04-01',
+          },
+        ],
+      },
+    ],
+  } as Titres,
 ]
 
 const titresEchuStatutIdObselete = [
@@ -50,12 +50,12 @@ const titresEchuStatutIdObselete = [
             ordre: 1,
             date: '1014-04-01',
             dateDebut: null,
-            dateFin: '2014-04-01'
-          }
-        ]
-      }
-    ]
-  } as Titres
+            dateFin: '2014-04-01',
+          },
+        ],
+      },
+    ],
+  } as Titres,
 ]
 
 export { titresValideStatutIdAJour, titresEchuStatutIdObselete }
diff --git a/packages/api/src/business/processes/entreprises-update.test.ts b/packages/api/src/business/processes/entreprises-update.test.ts
index 4ad6fd0c2..f69d9f540 100644
--- a/packages/api/src/business/processes/entreprises-update.test.ts
+++ b/packages/api/src/business/processes/entreprises-update.test.ts
@@ -1,10 +1,7 @@
 import { entreprisesUpdate } from './entreprises-update.js'
 import { entreprisesGet } from '../../database/queries/entreprises.js'
 import { entreprisesEtablissementsGet } from '../../database/queries/entreprises-etablissements.js'
-import {
-  apiInseeEntreprisesGet,
-  apiInseeEntreprisesEtablissementsGet
-} from '../../tools/api-insee/index.js'
+import { apiInseeEntreprisesGet, apiInseeEntreprisesEtablissementsGet } from '../../tools/api-insee/index.js'
 
 import {
   dbEntreprisesCreees,
@@ -26,7 +23,7 @@ import {
   apiEntreprisesEtablissementsExistantes,
   apiEntreprisesEtablissementsCreees,
   apiEntreprisesEtablissementsModifiees,
-  apiEntreprisesEtablissementsSupprimeees
+  apiEntreprisesEtablissementsSupprimeees,
 } from './__mocks__/entreprises-update.js'
 import { IEntreprise, IEntrepriseEtablissement } from '../../types.js'
 import { vi, beforeEach, describe, expect, test } from 'vitest'
@@ -40,7 +37,7 @@ vi.mock('../../database/queries/entreprises', () => ({
 
     return a
   }),
-  entreprisesGet: vi.fn()
+  entreprisesGet: vi.fn(),
 }))
 
 const etablissementsUpdated: IEntrepriseEtablissement[] = []
@@ -56,7 +53,7 @@ vi.mock('../../database/queries/entreprises-etablissements', () => ({
 
     return a
   }),
-  entreprisesEtablissementsGet: vi.fn()
+  entreprisesEtablissementsGet: vi.fn(),
 }))
 
 // 'vi.mock()' est hoisté avant l'import, le court-circuitant
@@ -64,19 +61,13 @@ vi.mock('../../database/queries/entreprises-etablissements', () => ({
 vi.mock('../../tools/api-insee/index', () => ({
   __esModule: true,
   apiInseeEntreprisesGet: vi.fn(),
-  apiInseeEntreprisesEtablissementsGet: vi.fn()
+  apiInseeEntreprisesEtablissementsGet: vi.fn(),
 }))
 
 const entreprisesGetMock = vi.mocked(entreprisesGet, true)
-const entreprisesEtablissementsGetMock = vi.mocked(
-  entreprisesEtablissementsGet,
-  true
-)
+const entreprisesEtablissementsGetMock = vi.mocked(entreprisesEtablissementsGet, true)
 const apiInseeEntreprisesGetMock = vi.mocked(apiInseeEntreprisesGet, true)
-const apiInseeEntreprisesEtablissementsGetMock = vi.mocked(
-  apiInseeEntreprisesEtablissementsGet,
-  true
-)
+const apiInseeEntreprisesEtablissementsGetMock = vi.mocked(apiInseeEntreprisesEtablissementsGet, true)
 
 console.info = vi.fn()
 console.info = vi.fn()
@@ -89,19 +80,15 @@ describe('entreprises', () => {
   })
   test("crée les entreprises si elles n'existent pas", async () => {
     entreprisesGetMock.mockResolvedValue(dbEntreprisesCreees)
-    entreprisesEtablissementsGetMock.mockResolvedValue(
-      dbEntreprisesEtablissementsCreees
-    )
+    entreprisesEtablissementsGetMock.mockResolvedValue(dbEntreprisesEtablissementsCreees)
     apiInseeEntreprisesGetMock.mockResolvedValue(apiEntreprisesCreees)
-    apiInseeEntreprisesEtablissementsGetMock.mockResolvedValue(
-      apiEntreprisesEtablissementsCreees
-    )
+    apiInseeEntreprisesEtablissementsGetMock.mockResolvedValue(apiEntreprisesEtablissementsCreees)
 
     await entreprisesUpdate()
 
     expect(etablissementsUpdated).toEqual([
       { id: 'pipo', nom: 'pipo' },
-      { id: 'toto', nom: 'toto' }
+      { id: 'toto', nom: 'toto' },
     ])
     expect(etablissementsDeleted.length).toEqual(0)
     expect(entreprisesUpdated).toEqual([{ id: 'papa', legalSiren: 'toto' }])
@@ -109,13 +96,9 @@ describe('entreprises', () => {
 
   test('met à jour les entreprises qui ont été modifiées', async () => {
     entreprisesGetMock.mockResolvedValue(dbEntreprisesModifiees)
-    entreprisesEtablissementsGetMock.mockResolvedValue(
-      dbEntreprisesEtablissementsModifies
-    )
+    entreprisesEtablissementsGetMock.mockResolvedValue(dbEntreprisesEtablissementsModifies)
     apiInseeEntreprisesGetMock.mockResolvedValue(apiEntreprisesModifiees)
-    apiInseeEntreprisesEtablissementsGetMock.mockResolvedValue(
-      apiEntreprisesEtablissementsModifiees
-    )
+    apiInseeEntreprisesEtablissementsGetMock.mockResolvedValue(apiEntreprisesEtablissementsModifiees)
 
     await entreprisesUpdate()
 
@@ -127,13 +110,9 @@ describe('entreprises', () => {
 
   test('supprime les entreprises qui ont été supprimés', async () => {
     entreprisesGetMock.mockResolvedValue(dbEntreprisesSupprimeees)
-    entreprisesEtablissementsGetMock.mockResolvedValue(
-      dbEntreprisesEtablissementsSupprimeees
-    )
+    entreprisesEtablissementsGetMock.mockResolvedValue(dbEntreprisesEtablissementsSupprimeees)
     apiInseeEntreprisesGetMock.mockResolvedValue(apiEntreprisesSupprimeees)
-    apiInseeEntreprisesEtablissementsGetMock.mockResolvedValue(
-      apiEntreprisesEtablissementsSupprimeees
-    )
+    apiInseeEntreprisesEtablissementsGetMock.mockResolvedValue(apiEntreprisesEtablissementsSupprimeees)
 
     await entreprisesUpdate()
 
@@ -145,13 +124,9 @@ describe('entreprises', () => {
 
   test('ne crée pas les entreprises qui existent déjà', async () => {
     entreprisesGetMock.mockResolvedValue(dbEntreprisesExistantes)
-    entreprisesEtablissementsGetMock.mockResolvedValue(
-      dbEntreprisesEtablissementsExistants
-    )
+    entreprisesEtablissementsGetMock.mockResolvedValue(dbEntreprisesEtablissementsExistants)
     apiInseeEntreprisesGetMock.mockResolvedValue(apiEntreprisesExistantes)
-    apiInseeEntreprisesEtablissementsGetMock.mockResolvedValue(
-      apiEntreprisesEtablissementsExistantes
-    )
+    apiInseeEntreprisesEtablissementsGetMock.mockResolvedValue(apiEntreprisesEtablissementsExistantes)
 
     await entreprisesUpdate()
 
@@ -162,13 +137,9 @@ describe('entreprises', () => {
 
   test("ne modifie pas d'entreprises si elles n'existent pas", async () => {
     entreprisesGetMock.mockResolvedValue(dbEntreprisesInexistantes)
-    entreprisesEtablissementsGetMock.mockResolvedValue(
-      dbEntreprisesEtablissementsInexistants
-    )
+    entreprisesEtablissementsGetMock.mockResolvedValue(dbEntreprisesEtablissementsInexistants)
     apiInseeEntreprisesGetMock.mockResolvedValue(apiEntreprisesInexistantes)
-    apiInseeEntreprisesEtablissementsGetMock.mockResolvedValue(
-      apiEntreprisesEtablissmentsInexistantes
-    )
+    apiInseeEntreprisesEtablissementsGetMock.mockResolvedValue(apiEntreprisesEtablissmentsInexistantes)
 
     await entreprisesUpdate()
 
diff --git a/packages/api/src/business/processes/entreprises-update.ts b/packages/api/src/business/processes/entreprises-update.ts
index 49b1e27d3..05aa5ff24 100644
--- a/packages/api/src/business/processes/entreprises-update.ts
+++ b/packages/api/src/business/processes/entreprises-update.ts
@@ -1,72 +1,40 @@
 import { IEntrepriseEtablissement, IEntreprise } from '../../types.js'
 
 import { objectsDiffer } from '../../tools/index.js'
-import {
-  entreprisesUpsert,
-  entreprisesGet
-} from '../../database/queries/entreprises.js'
-import {
-  entreprisesEtablissementsUpsert,
-  entreprisesEtablissementsDelete,
-  entreprisesEtablissementsGet
-} from '../../database/queries/entreprises-etablissements.js'
-import {
-  apiInseeEntreprisesEtablissementsGet,
-  apiInseeEntreprisesGet
-} from '../../tools/api-insee/index.js'
+import { entreprisesUpsert, entreprisesGet } from '../../database/queries/entreprises.js'
+import { entreprisesEtablissementsUpsert, entreprisesEtablissementsDelete, entreprisesEtablissementsGet } from '../../database/queries/entreprises-etablissements.js'
+import { apiInseeEntreprisesEtablissementsGet, apiInseeEntreprisesGet } from '../../tools/api-insee/index.js'
 import { userSuper } from '../../database/user-super.js'
 
-const entreprisesEtablissementsToUpdateBuild = (
-  entreprisesEtablissementsOld: IEntrepriseEtablissement[],
-  entreprisesEtablissementsNew: IEntrepriseEtablissement[]
-) =>
-  entreprisesEtablissementsNew.reduce(
-    (acc: IEntrepriseEtablissement[], entrepriseEtablissementNew) => {
-      const entrepriseEtablissementOld = entreprisesEtablissementsOld.find(
-        a => a && a.id === entrepriseEtablissementNew.id
-      )
-
-      const updated =
-        !entrepriseEtablissementOld ||
-        objectsDiffer(entrepriseEtablissementNew, entrepriseEtablissementOld)
-
-      if (updated) {
-        acc.push(entrepriseEtablissementNew)
-      }
+const entreprisesEtablissementsToUpdateBuild = (entreprisesEtablissementsOld: IEntrepriseEtablissement[], entreprisesEtablissementsNew: IEntrepriseEtablissement[]) =>
+  entreprisesEtablissementsNew.reduce((acc: IEntrepriseEtablissement[], entrepriseEtablissementNew) => {
+    const entrepriseEtablissementOld = entreprisesEtablissementsOld.find(a => a && a.id === entrepriseEtablissementNew.id)
 
-      return acc
-    },
-    []
-  )
+    const updated = !entrepriseEtablissementOld || objectsDiffer(entrepriseEtablissementNew, entrepriseEtablissementOld)
 
-const entreprisesEtablissementsToDeleteBuild = (
-  entreprisesEtablissementsOld: IEntrepriseEtablissement[],
-  entreprisesEtablissementsNew: IEntrepriseEtablissement[]
-) =>
-  entreprisesEtablissementsOld.reduce(
-    (acc: string[], entrepriseEtablissementOld) => {
-      const deleted = !entreprisesEtablissementsNew.find(
-        a => a && a.id === entrepriseEtablissementOld.id
-      )
-
-      if (deleted) {
-        acc.push(entrepriseEtablissementOld.id)
-      }
+    if (updated) {
+      acc.push(entrepriseEtablissementNew)
+    }
 
-      return acc
-    },
-    []
-  )
+    return acc
+  }, [])
+
+const entreprisesEtablissementsToDeleteBuild = (entreprisesEtablissementsOld: IEntrepriseEtablissement[], entreprisesEtablissementsNew: IEntrepriseEtablissement[]) =>
+  entreprisesEtablissementsOld.reduce((acc: string[], entrepriseEtablissementOld) => {
+    const deleted = !entreprisesEtablissementsNew.find(a => a && a.id === entrepriseEtablissementOld.id)
+
+    if (deleted) {
+      acc.push(entrepriseEtablissementOld.id)
+    }
 
-const entreprisesToUpdateBuild = (
-  entreprisesOld: IEntreprise[],
-  entreprisesNew: IEntreprise[]
-) =>
+    return acc
+  }, [])
+
+const entreprisesToUpdateBuild = (entreprisesOld: IEntreprise[], entreprisesNew: IEntreprise[]) =>
   entreprisesNew.reduce((acc: IEntreprise[], entrepriseNew) => {
     const entrepriseOld = entreprisesOld.find(e => e.id === entrepriseNew.id)
 
-    const updated =
-      !entrepriseOld || objectsDiffer(entrepriseNew, entrepriseOld)
+    const updated = !entrepriseOld || objectsDiffer(entrepriseNew, entrepriseOld)
 
     if (updated) {
       acc.push(entrepriseNew)
@@ -106,44 +74,26 @@ export const entreprisesUpdate = async (): Promise<void> => {
 
   if (sirens.length) {
     const entreprisesNew = await apiInseeEntreprisesGet(sirens)
-    const entreprisesEtablissementsNew =
-      await apiInseeEntreprisesEtablissementsGet(sirens)
+    const entreprisesEtablissementsNew = await apiInseeEntreprisesEtablissementsGet(sirens)
 
-    const entreprisesToUpdate = entreprisesToUpdateBuild(
-      entreprisesOld,
-      entreprisesNew
-    )
+    const entreprisesToUpdate = entreprisesToUpdateBuild(entreprisesOld, entreprisesNew)
 
-    const etablissementsToUpdate = entreprisesEtablissementsToUpdateBuild(
-      entreprisesEtablissementsOld,
-      entreprisesEtablissementsNew
-    )
+    const etablissementsToUpdate = entreprisesEtablissementsToUpdateBuild(entreprisesEtablissementsOld, entreprisesEtablissementsNew)
 
-    const etablissementsToDelete = entreprisesEtablissementsToDeleteBuild(
-      entreprisesEtablissementsOld,
-      entreprisesEtablissementsNew
-    )
+    const etablissementsToDelete = entreprisesEtablissementsToDeleteBuild(entreprisesEtablissementsOld, entreprisesEtablissementsNew)
 
     let etablissementsUpdated = [] as IEntrepriseEtablissement[]
 
     if (etablissementsToUpdate.length) {
-      etablissementsUpdated = await entreprisesEtablissementsUpsert(
-        etablissementsToUpdate
-      )
-
-      console.info(
-        'entreprises / établissements (mise a jour)',
-        etablissementsUpdated.map(e => e.id).join(', ')
-      )
+      etablissementsUpdated = await entreprisesEtablissementsUpsert(etablissementsToUpdate)
+
+      console.info('entreprises / établissements (mise a jour)', etablissementsUpdated.map(e => e.id).join(', '))
     }
 
     if (etablissementsToDelete.length) {
       await entreprisesEtablissementsDelete(etablissementsToDelete)
 
-      console.info(
-        'entreprises / établissements (suppression) ->',
-        etablissementsToDelete.join(', ')
-      )
+      console.info('entreprises / établissements (suppression) ->', etablissementsToDelete.join(', '))
     }
 
     let entreprisesUpdated: IEntreprise[] = []
@@ -151,10 +101,7 @@ export const entreprisesUpdate = async (): Promise<void> => {
     if (entreprisesToUpdate.length) {
       entreprisesUpdated = await entreprisesUpsert(entreprisesToUpdate)
 
-      console.info(
-        'entreprises (mise à jour) ->',
-        entreprisesUpdated.map(e => e.id).join(', ')
-      )
+      console.info('entreprises (mise à jour) ->', entreprisesUpdated.map(e => e.id).join(', '))
     }
   }
 }
diff --git a/packages/api/src/business/processes/titres-activites-props-update.test.ts b/packages/api/src/business/processes/titres-activites-props-update.test.ts
index 7e4dae96a..d4e79a14e 100644
--- a/packages/api/src/business/processes/titres-activites-props-update.test.ts
+++ b/packages/api/src/business/processes/titres-activites-props-update.test.ts
@@ -3,21 +3,18 @@ import { titresActivitesUpsert } from '../../database/queries/titres-activites.j
 import { titresGet } from '../../database/queries/titres.js'
 import { titreValideCheck } from '../utils/titre-valide-check.js'
 import { vi, describe, expect, test, afterEach } from 'vitest'
-import {
-  titresActivitesToUpdate,
-  titresActivitesNotToUpdate
-} from './__mocks__/titre-activite-props-update.js'
+import { titresActivitesToUpdate, titresActivitesNotToUpdate } from './__mocks__/titre-activite-props-update.js'
 
 vi.mock('../../database/queries/titres-activites', () => ({
-  titresActivitesUpsert: vi.fn()
+  titresActivitesUpsert: vi.fn(),
 }))
 
 vi.mock('../../database/queries/titres', () => ({
-  titresGet: vi.fn()
+  titresGet: vi.fn(),
 }))
 
 vi.mock('../utils/titre-valide-check', () => ({
-  titreValideCheck: vi.fn()
+  titreValideCheck: vi.fn(),
 }))
 
 const titresActivitesUpsertMock = vi.mocked(titresActivitesUpsert, true)
@@ -37,10 +34,7 @@ describe("propriété des activités d'un titre", () => {
     titreValideCheckMock.mockReturnValueOnce(true)
     const titresActivitesUpdated = await titresActivitesPropsUpdate()
 
-    expect(titresActivitesUpdated).toEqual([
-      'titre-activite-id-2019-04',
-      'titre-activite-id-2020-01'
-    ])
+    expect(titresActivitesUpdated).toEqual(['titre-activite-id-2019-04', 'titre-activite-id-2020-01'])
     expect(titresActivitesUpsertMock).toHaveBeenCalled()
   })
   test("be met pas à jour la propriété suppression d'une activité", async () => {
diff --git a/packages/api/src/business/processes/titres-activites-props-update.ts b/packages/api/src/business/processes/titres-activites-props-update.ts
index b0b0f7410..499960b0c 100644
--- a/packages/api/src/business/processes/titres-activites-props-update.ts
+++ b/packages/api/src/business/processes/titres-activites-props-update.ts
@@ -17,61 +17,41 @@ export const titresActivitesPropsUpdate = async (titresIds?: string[]) => {
       fields: {
         demarches: { phase: { id: {} }, etapes: { id: {} }, type: { id: {} } },
         activites: {
-          type: { id: {} }
-        }
-      }
+          type: { id: {} },
+        },
+      },
     },
     userSuper
   )
 
-  const titresActivitesUpdated = titres.reduce(
-    (acc: ITitreActivite[], titre) => {
-      if (!titre.activites?.length) return acc
+  const titresActivitesUpdated = titres.reduce((acc: ITitreActivite[], titre) => {
+    if (!titre.activites?.length) return acc
 
-      return titre.activites.reduce((acc, titreActivite) => {
-        const dateDebut = toCaminoDate(
-          new Date(
-            titreActivite.annee,
-            getMonth(titreActivite.type?.frequenceId, titreActivite.periodeId),
-            1
-          )
-        )
+    return titre.activites.reduce((acc, titreActivite) => {
+      const dateDebut = toCaminoDate(new Date(titreActivite.annee, getMonth(titreActivite.type?.frequenceId, titreActivite.periodeId), 1))
 
-        const titreIsValide =
-          titre.demarches?.length &&
-          titreValideCheck(
-            titre.demarches!,
-            dateDebut,
-            titreActivite.date,
-            titre.typeId,
-            true
-          )
+      const titreIsValide = titre.demarches?.length && titreValideCheck(titre.demarches!, dateDebut, titreActivite.date, titre.typeId, true)
 
-        if (titreIsValide && titreActivite.suppression) {
-          titreActivite.suppression = null
+      if (titreIsValide && titreActivite.suppression) {
+        titreActivite.suppression = null
 
-          acc.push(titreActivite)
-        }
+        acc.push(titreActivite)
+      }
 
-        if (!titreIsValide && !titreActivite.suppression) {
-          titreActivite.suppression = true
+      if (!titreIsValide && !titreActivite.suppression) {
+        titreActivite.suppression = true
 
-          acc.push(titreActivite)
-        }
+        acc.push(titreActivite)
+      }
 
-        return acc
-      }, acc)
-    },
-    []
-  )
+      return acc
+    }, acc)
+  }, [])
 
   if (titresActivitesUpdated.length) {
     await titresActivitesUpsert(titresActivitesUpdated)
 
-    console.info(
-      'titre / activités / propriétés (mise à jour) ->',
-      titresActivitesUpdated.map(ta => ta.id).join(', ')
-    )
+    console.info('titre / activités / propriétés (mise à jour) ->', titresActivitesUpdated.map(ta => ta.id).join(', '))
   }
 
   return titresActivitesUpdated.map(ta => ta.id)
diff --git a/packages/api/src/business/processes/titres-activites-relance-send.test.ts b/packages/api/src/business/processes/titres-activites-relance-send.test.ts
index 3f8eec283..1b95b9dce 100644
--- a/packages/api/src/business/processes/titres-activites-relance-send.test.ts
+++ b/packages/api/src/business/processes/titres-activites-relance-send.test.ts
@@ -7,12 +7,12 @@ import { EmailTemplateId } from '../../tools/api-mailjet/types.js'
 import { vi, describe, expect, test } from 'vitest'
 import { toCaminoDate } from 'camino-common/src/date.js'
 vi.mock('../../database/queries/titres-activites', () => ({
-  titresActivitesGet: vi.fn()
+  titresActivitesGet: vi.fn(),
 }))
 
 vi.mock('../../tools/api-mailjet/emails', () => ({
   __esModule: true,
-  emailsWithTemplateSend: vi.fn().mockImplementation(a => a)
+  emailsWithTemplateSend: vi.fn().mockImplementation(a => a),
 }))
 
 const titresActivitesGetMock = vi.mocked(titresActivitesGet, true)
@@ -33,19 +33,13 @@ describe('relance les opérateurs des activités qui vont se fermer automatiquem
         date,
         type: { delaiMois },
         titre: {
-          titulaires: [{ utilisateurs: [{ email: 'toto.huhu@foo.com' }] }]
-        }
-      }
+          titulaires: [{ utilisateurs: [{ email: 'toto.huhu@foo.com' }] }],
+        },
+      },
     ] as TitresActivites[])
-    const titresActivites = await titresActivitesRelanceSend(
-      toCaminoDate('2022-03-18')
-    )
-
-    expect(emailsWithTemplateSendMock).toBeCalledWith(
-      [email],
-      EmailTemplateId.ACTIVITES_RELANCE,
-      expect.any(Object)
-    )
+    const titresActivites = await titresActivitesRelanceSend(toCaminoDate('2022-03-18'))
+
+    expect(emailsWithTemplateSendMock).toBeCalledWith([email], EmailTemplateId.ACTIVITES_RELANCE, expect.any(Object))
     expect(titresActivites.length).toEqual(1)
   })
 
@@ -53,8 +47,8 @@ describe('relance les opérateurs des activités qui vont se fermer automatiquem
     titresActivitesGetMock.mockResolvedValue([
       {
         date: '1000-01-01',
-        type: { delaiMois: 3 }
-      }
+        type: { delaiMois: 3 },
+      },
     ] as TitresActivites[])
     const titresActivites = await titresActivitesRelanceSend()
 
diff --git a/packages/api/src/business/processes/titres-activites-relance-send.ts b/packages/api/src/business/processes/titres-activites-relance-send.ts
index e40ccbf06..64fb46688 100644
--- a/packages/api/src/business/processes/titres-activites-relance-send.ts
+++ b/packages/api/src/business/processes/titres-activites-relance-send.ts
@@ -3,13 +3,7 @@ import { userSuper } from '../../database/user-super.js'
 import { emailsWithTemplateSend } from '../../tools/api-mailjet/emails.js'
 import { activitesUrlGet } from '../utils/urls-get.js'
 import { EmailTemplateId } from '../../tools/api-mailjet/types.js'
-import {
-  anneePrecedente,
-  dateAddDays,
-  dateAddMonths,
-  getAnnee,
-  getCurrent
-} from 'camino-common/src/date.js'
+import { anneePrecedente, dateAddDays, dateAddMonths, getAnnee, getCurrent } from 'camino-common/src/date.js'
 
 export const ACTIVITES_DELAI_RELANCE_JOURS = 14
 
@@ -24,17 +18,15 @@ export const titresActivitesRelanceSend = async (aujourdhui = getCurrent()) => {
     {
       fields: {
         type: { id: {} },
-        titre: { titulaires: { utilisateurs: { id: {} } } }
-      }
+        titre: { titulaires: { utilisateurs: { id: {} } } },
+      },
     },
     userSuper
   )
 
   const dateDelai = dateAddDays(aujourdhui, ACTIVITES_DELAI_RELANCE_JOURS)
 
-  const titresActivitesRelanceToSend = activites.filter(
-    ({ date }) => dateDelai === dateAddMonths(date, 3)
-  )
+  const titresActivitesRelanceToSend = activites.filter(({ date }) => dateDelai === dateAddMonths(date, 3))
   if (titresActivitesRelanceToSend.length) {
     // envoi d’email aux opérateurs pour les relancer ACTIVITES_DELAI_RELANCE_JOURS jours avant la fermeture automatique de l’activité
     const emails = new Set<string>()
@@ -49,23 +41,16 @@ export const titresActivitesRelanceSend = async (aujourdhui = getCurrent()) => {
       )
     }
     if (emails.size) {
-      await emailsWithTemplateSend(
-        [...emails],
-        EmailTemplateId.ACTIVITES_RELANCE,
-        {
-          activitesUrl: activitesUrlGet({
-            typesIds,
-            statutsIds,
-            annees: [anneePrecedente(getAnnee(aujourdhui))]
-          })
-        }
-      )
+      await emailsWithTemplateSend([...emails], EmailTemplateId.ACTIVITES_RELANCE, {
+        activitesUrl: activitesUrlGet({
+          typesIds,
+          statutsIds,
+          annees: [anneePrecedente(getAnnee(aujourdhui))],
+        }),
+      })
     }
 
-    console.info(
-      'titre / activités (relance) ->',
-      titresActivitesRelanceToSend.map(ta => ta.id).join(', ')
-    )
+    console.info('titre / activités (relance) ->', titresActivitesRelanceToSend.map(ta => ta.id).join(', '))
   }
 
   return titresActivitesRelanceToSend.map(ta => ta.id)
diff --git a/packages/api/src/business/processes/titres-activites-statut-ids-update.test.ts b/packages/api/src/business/processes/titres-activites-statut-ids-update.test.ts
index ef9f72682..2129f8089 100644
--- a/packages/api/src/business/processes/titres-activites-statut-ids-update.test.ts
+++ b/packages/api/src/business/processes/titres-activites-statut-ids-update.test.ts
@@ -1,14 +1,11 @@
 import { titresActivitesStatutIdsUpdate } from './titres-activites-statut-ids-update.js'
 import { titresActivitesGet } from '../../database/queries/titres-activites.js'
 
-import {
-  titresActivitesDelaiDepasse,
-  titresActivitesDelaiNonDepasse
-} from './__mocks__/titres-activites-statut-ids-update-activites.js'
+import { titresActivitesDelaiDepasse, titresActivitesDelaiNonDepasse } from './__mocks__/titres-activites-statut-ids-update-activites.js'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres-activites', () => ({
   titreActiviteUpdate: vi.fn().mockResolvedValue(true),
-  titresActivitesGet: vi.fn()
+  titresActivitesGet: vi.fn(),
 }))
 
 const titresActivitesGetMock = vi.mocked(titresActivitesGet, true)
diff --git a/packages/api/src/business/processes/titres-activites-statut-ids-update.ts b/packages/api/src/business/processes/titres-activites-statut-ids-update.ts
index d0268270f..cb5f8c90c 100644
--- a/packages/api/src/business/processes/titres-activites-statut-ids-update.ts
+++ b/packages/api/src/business/processes/titres-activites-statut-ids-update.ts
@@ -1,7 +1,4 @@
-import {
-  titreActiviteUpdate,
-  titresActivitesGet
-} from '../../database/queries/titres-activites.js'
+import { titreActiviteUpdate, titresActivitesGet } from '../../database/queries/titres-activites.js'
 import { titreActiviteStatutIdFind } from '../rules/titre-activite-statut-id-find.js'
 import { userSuper } from '../../database/user-super.js'
 import { getCurrent } from 'camino-common/src/date.js'
@@ -17,18 +14,12 @@ export const titresActivitesStatutIdsUpdate = async () => {
 
   const titresActivitesUpdated = [] as string[]
   for (const titreActivite of titresActivites) {
-    const activiteStatutId = titreActiviteStatutIdFind(
-      titreActivite,
-      aujourdhui
-    )
+    const activiteStatutId = titreActiviteStatutIdFind(titreActivite, aujourdhui)
 
     if (titreActivite.activiteStatutId !== activiteStatutId) {
       await titreActiviteUpdate(titreActivite.id, { activiteStatutId })
 
-      console.info(
-        'titre / activité : statut (mise à jour) ->',
-        `${titreActivite.id}: ${activiteStatutId}`
-      )
+      console.info('titre / activité : statut (mise à jour) ->', `${titreActivite.id}: ${activiteStatutId}`)
 
       titresActivitesUpdated.push(titreActivite.id)
     }
diff --git a/packages/api/src/business/processes/titres-activites-update.test.ts b/packages/api/src/business/processes/titres-activites-update.test.ts
index 4e9c3c0d3..a636f5268 100644
--- a/packages/api/src/business/processes/titres-activites-update.test.ts
+++ b/packages/api/src/business/processes/titres-activites-update.test.ts
@@ -8,50 +8,43 @@ import { titresGet } from '../../database/queries/titres.js'
 import { activitesTypesGet } from '../../database/queries/metas-activites.js'
 import { titreActivitesBuild } from '../rules/titre-activites-build.js'
 
-import {
-  titresToutesActivites,
-  titreActivitesTypes,
-  titresSansActivite
-} from './__mocks__/titres-activites-update-titres.js'
-import {
-  emailsSend,
-  emailsWithTemplateSend
-} from '../../tools/api-mailjet/emails.js'
+import { titresToutesActivites, titreActivitesTypes, titresSansActivite } from './__mocks__/titres-activites-update-titres.js'
+import { emailsSend, emailsWithTemplateSend } from '../../tools/api-mailjet/emails.js'
 import { EmailTemplateId } from '../../tools/api-mailjet/types.js'
 import { vi, afterEach, describe, expect, test } from 'vitest'
 
 vi.mock('../../database/queries/titres', () => ({
-  titresGet: vi.fn()
+  titresGet: vi.fn(),
 }))
 
 vi.mock('../../database/queries/metas-activites', () => ({
-  activitesTypesGet: vi.fn()
+  activitesTypesGet: vi.fn(),
 }))
 
 vi.mock('../utils/titre-activite-type-check', () => ({
   __esModule: true,
-  titreActiviteTypeCheck: vi.fn()
+  titreActiviteTypeCheck: vi.fn(),
 }))
 
 vi.mock('../../tools/annees-build', () => ({
   __esModule: true,
-  anneesBuild: vi.fn()
+  anneesBuild: vi.fn(),
 }))
 
 vi.mock('../../database/queries/titres-activites', () => ({
   __esModule: true,
-  titresActivitesUpsert: vi.fn().mockResolvedValue(true)
+  titresActivitesUpsert: vi.fn().mockResolvedValue(true),
 }))
 
 vi.mock('../rules/titre-activites-build', () => ({
   __esModule: true,
-  titreActivitesBuild: vi.fn().mockResolvedValue(true)
+  titreActivitesBuild: vi.fn().mockResolvedValue(true),
 }))
 
 vi.mock('../../tools/api-mailjet/emails', () => ({
   __esModule: true,
   emailsSend: vi.fn().mockImplementation(a => a),
-  emailsWithTemplateSend: vi.fn().mockImplementation(a => a)
+  emailsWithTemplateSend: vi.fn().mockImplementation(a => a),
 }))
 
 const titresGetMock = vi.mocked(titresGet, true)
@@ -72,24 +65,16 @@ describe("activités d'un titre", () => {
     activitesTypesGetMock.mockResolvedValue(titreActivitesTypes)
     titreActiviteTypeCheckMock.mockReturnValue(true)
     anneesBuildMock.mockReturnValue([2018])
-    titreActivitesBuildMock.mockReturnValue([
-      { titreId: titresSansActivite[0].id }
-    ] as ITitreActivite[])
+    titreActivitesBuildMock.mockReturnValue([{ titreId: titresSansActivite[0].id }] as ITitreActivite[])
 
     const titresActivitesNew = await titresActivitesUpdate()
 
     expect(titresActivitesNew.length).toEqual(1)
 
-    expect(titreActiviteTypeCheck).toHaveBeenCalledTimes(
-      titresSansActivite.length
-    )
+    expect(titreActiviteTypeCheck).toHaveBeenCalledTimes(titresSansActivite.length)
     expect(titresActivitesUpsert).toHaveBeenCalled()
     expect(titreActivitesBuild).toHaveBeenCalled()
-    expect(emailsWithTemplateSendMock).toHaveBeenCalledWith(
-      ['email'],
-      EmailTemplateId.ACTIVITES_NOUVELLES,
-      expect.any(Object)
-    )
+    expect(emailsWithTemplateSendMock).toHaveBeenCalledWith(['email'], EmailTemplateId.ACTIVITES_NOUVELLES, expect.any(Object))
   })
 
   test('ne met pas à jour un titre possédant déjà des activités', async () => {
diff --git a/packages/api/src/business/processes/titres-activites-update.ts b/packages/api/src/business/processes/titres-activites-update.ts
index 9fcfc890b..2978edefd 100644
--- a/packages/api/src/business/processes/titres-activites-update.ts
+++ b/packages/api/src/business/processes/titres-activites-update.ts
@@ -23,12 +23,12 @@ export const titresActivitesUpdate = async (titresIds?: string[]) => {
         demarches: {
           type: { id: {} },
           phase: { id: {} },
-          etapes: { id: {} }
+          etapes: { id: {} },
         },
         communes: { id: {} },
         activites: { id: {} },
-        titulaires: { utilisateurs: { id: {} } }
-      }
+        titulaires: { utilisateurs: { id: {} } },
+      },
     },
     userSuper
   )
@@ -38,41 +38,28 @@ export const titresActivitesUpdate = async (titresIds?: string[]) => {
       titresTypes: { id: {} },
       administrations: { id: {} },
       documentsTypes: { id: {} },
-      activitesTypesPays: { id: {} }
-    }
+      activitesTypesPays: { id: {} },
+    },
   })
 
   const aujourdhui = getCurrent()
 
-  const titresActivitesCreated = activitesTypes.reduce(
-    (acc: ITitreActivite[], activiteType) => {
-      const annees = anneesBuild(activiteType.dateDebut, aujourdhui)
-      if (!annees.length) return acc
-
-      acc.push(
-        ...titres.reduce((acc: ITitreActivite[], titre) => {
-          if (!titreActiviteTypeCheck(activiteType, titre)) return acc
-
-          acc.push(
-            ...titreActivitesBuild(
-              activiteType,
-              annees,
-              aujourdhui,
-              titre.id,
-              titre.typeId,
-              titre.demarches,
-              titre.activites
-            )
-          )
-
-          return acc
-        }, [])
-      )
+  const titresActivitesCreated = activitesTypes.reduce((acc: ITitreActivite[], activiteType) => {
+    const annees = anneesBuild(activiteType.dateDebut, aujourdhui)
+    if (!annees.length) return acc
 
-      return acc
-    },
-    []
-  )
+    acc.push(
+      ...titres.reduce((acc: ITitreActivite[], titre) => {
+        if (!titreActiviteTypeCheck(activiteType, titre)) return acc
+
+        acc.push(...titreActivitesBuild(activiteType, annees, aujourdhui, titre.id, titre.typeId, titre.demarches, titre.activites))
+
+        return acc
+      }, [])
+    )
+
+    return acc
+  }, [])
 
   if (titresActivitesCreated.length) {
     await titresActivitesUpsert(titresActivitesCreated)
@@ -96,19 +83,12 @@ export const titresActivitesUpdate = async (titresIds?: string[]) => {
 
     // envoi d’email aux opérateurs pour les prévenir de l’ouverture des déclarations
     if (emails.size) {
-      await emailsWithTemplateSend(
-        [...emails],
-        EmailTemplateId.ACTIVITES_NOUVELLES,
-        {
-          activitesUrl: activitesUrlGet({ statutsIds: ['abs', 'enc'] })
-        }
-      )
+      await emailsWithTemplateSend([...emails], EmailTemplateId.ACTIVITES_NOUVELLES, {
+        activitesUrl: activitesUrlGet({ statutsIds: ['abs', 'enc'] }),
+      })
     }
 
-    console.info(
-      'titre / activités (création) ->',
-      titresActivitesCreated.map(ta => ta.titreId).join(', ')
-    )
+    console.info('titre / activités (création) ->', titresActivitesCreated.map(ta => ta.titreId).join(', '))
   }
 
   return titresActivitesCreated.map(ta => ta.titreId)
diff --git a/packages/api/src/business/processes/titres-contenus-etapes-ids-update.test.ts b/packages/api/src/business/processes/titres-contenus-etapes-ids-update.test.ts
index 10f7006c9..5c8110f3d 100644
--- a/packages/api/src/business/processes/titres-contenus-etapes-ids-update.test.ts
+++ b/packages/api/src/business/processes/titres-contenus-etapes-ids-update.test.ts
@@ -7,35 +7,32 @@ import Titres from '../../database/models/titres.js'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres', () => ({
   titreUpdate: vi.fn().mockResolvedValue(true),
-  titresGet: vi.fn()
+  titresGet: vi.fn(),
 }))
 
 vi.mock('../rules/titre-prop-etape-find', () => ({
-  titreContenuTitreEtapeFind: vi.fn()
+  titreContenuTitreEtapeFind: vi.fn(),
 }))
 
 const titresGetMock = vi.mocked(titresGet, true)
-const titreContenuTitreEtapeFindMock = vi.mocked(
-  titreContenuTitreEtapeFind,
-  true
-)
+const titreContenuTitreEtapeFindMock = vi.mocked(titreContenuTitreEtapeFind, true)
 
 console.info = vi.fn()
 
 describe("propriétés (contenu) d'un titre", () => {
   test('ajoute 2 nouvelles propriétés dans les props du titre', async () => {
     titreContenuTitreEtapeFindMock.mockReturnValue({
-      id: 'etape-id'
+      id: 'etape-id',
     } as ITitreEtape)
     titresGetMock.mockResolvedValue([
       {
         type: {
           contenuIds: [
             { sectionId: 'arm', elementId: 'mecanise' },
-            { sectionId: 'arm', elementId: 'agent' }
-          ]
-        }
-      } as unknown as Titres
+            { sectionId: 'arm', elementId: 'agent' },
+          ],
+        },
+      } as unknown as Titres,
     ])
 
     const titresUpdatedRequests = await titresContenusEtapesIdsUpdate()
@@ -45,15 +42,15 @@ describe("propriétés (contenu) d'un titre", () => {
 
   test('ajoute 1 nouvelle propriété dans les props du titre', async () => {
     titreContenuTitreEtapeFindMock.mockReturnValue({
-      id: 'etape-id'
+      id: 'etape-id',
     } as ITitreEtape)
     titresGetMock.mockResolvedValue([
       {
         type: {
-          contenuIds: [{ sectionId: 'arm', elementId: 'mecanise' }]
+          contenuIds: [{ sectionId: 'arm', elementId: 'mecanise' }],
         },
-        contenusTitreEtapesIds: {}
-      } as unknown as Titres
+        contenusTitreEtapesIds: {},
+      } as unknown as Titres,
     ])
 
     const titresUpdatedRequests = await titresContenusEtapesIdsUpdate()
@@ -63,15 +60,15 @@ describe("propriétés (contenu) d'un titre", () => {
 
   test('met à jour 1 propriété dans les props du titre', async () => {
     titreContenuTitreEtapeFindMock.mockReturnValue({
-      id: 'new-etape-id'
+      id: 'new-etape-id',
     } as ITitreEtape)
     titresGetMock.mockResolvedValue([
       {
         type: {
-          contenuIds: [{ sectionId: 'arm', elementId: 'mecanise' }]
+          contenuIds: [{ sectionId: 'arm', elementId: 'mecanise' }],
         },
-        contenusTitreEtapesIds: { arm: { mecanise: 'old-etape-id' } }
-      } as unknown as Titres
+        contenusTitreEtapesIds: { arm: { mecanise: 'old-etape-id' } },
+      } as unknown as Titres,
     ])
 
     const titresUpdatedRequests = await titresContenusEtapesIdsUpdate()
@@ -81,15 +78,15 @@ describe("propriétés (contenu) d'un titre", () => {
 
   test('ne met pas à jour de propriété dans les props du titre', async () => {
     titreContenuTitreEtapeFindMock.mockReturnValue({
-      id: 'etape-id'
+      id: 'etape-id',
     } as ITitreEtape)
     titresGetMock.mockResolvedValue([
       {
         type: {
-          contenuIds: [{ sectionId: 'arm', elementId: 'mecanise' }]
+          contenuIds: [{ sectionId: 'arm', elementId: 'mecanise' }],
         },
-        contenusTitreEtapesIds: { arm: { mecanise: 'etape-id' } }
-      } as unknown as Titres
+        contenusTitreEtapesIds: { arm: { mecanise: 'etape-id' } },
+      } as unknown as Titres,
     ])
 
     const titresUpdatedRequests = await titresContenusEtapesIdsUpdate()
@@ -101,10 +98,10 @@ describe("propriétés (contenu) d'un titre", () => {
     titresGetMock.mockResolvedValue([
       {
         type: {
-          contenuIds: [{ sectionId: 'arm', elementId: 'mecanise' }]
+          contenuIds: [{ sectionId: 'arm', elementId: 'mecanise' }],
         },
-        contenusTitreEtapesIds: { arm: { mecanise: 'etape-id' } }
-      } as unknown as Titres
+        contenusTitreEtapesIds: { arm: { mecanise: 'etape-id' } },
+      } as unknown as Titres,
     ])
 
     const titresUpdatedRequests = await titresContenusEtapesIdsUpdate()
@@ -117,15 +114,15 @@ describe("propriétés (contenu) d'un titre", () => {
     titresGetMock.mockResolvedValue([
       {
         type: {
-          contenuIds: [{ sectionId: 'arm', elementId: 'mecanise' }]
+          contenuIds: [{ sectionId: 'arm', elementId: 'mecanise' }],
         },
         contenusTitreEtapesIds: {
           arm: {
             mecanise: 'etape-id',
-            xxx: { facture: 'etape-id' }
-          }
-        }
-      } as unknown as Titres
+            xxx: { facture: 'etape-id' },
+          },
+        },
+      } as unknown as Titres,
     ])
 
     const titresUpdatedRequests = await titresContenusEtapesIdsUpdate()
@@ -135,9 +132,7 @@ describe("propriétés (contenu) d'un titre", () => {
 
   test("ne met pas à jour un titre qui n'a pas de configuration de props", async () => {
     titreContenuTitreEtapeFindMock.mockReturnValue(null)
-    titresGetMock.mockResolvedValue([
-      { type: { contenuIds: null } } as unknown as Titres
-    ])
+    titresGetMock.mockResolvedValue([{ type: { contenuIds: null } } as unknown as Titres])
 
     const titresUpdatedRequests = await titresContenusEtapesIdsUpdate()
 
diff --git a/packages/api/src/business/processes/titres-contenus-etapes-ids-update.ts b/packages/api/src/business/processes/titres-contenus-etapes-ids-update.ts
index 010d183c6..6e331b19f 100644
--- a/packages/api/src/business/processes/titres-contenus-etapes-ids-update.ts
+++ b/packages/api/src/business/processes/titres-contenus-etapes-ids-update.ts
@@ -7,36 +7,23 @@ export const titresContenusEtapesIdsUpdate = async (titresIds?: string[]) => {
   console.info()
   console.info(`contenus des titres (liens vers les contenus d'étapes)…`)
 
-  const titres = await titresGet(
-    { ids: titresIds },
-    { fields: { type: { id: {} }, demarches: { etapes: { id: {} } } } },
-    userSuper
-  )
+  const titres = await titresGet({ ids: titresIds }, { fields: { type: { id: {} }, demarches: { etapes: { id: {} } } } }, userSuper)
 
   const titresUpdated = []
 
   for (const titre of titres) {
-    const contenusTitreEtapesIds = contenusTitreEtapesIdsFind(
-      titre.titreStatutId!,
-      titre.demarches!,
-      titre.type!.contenuIds
-    )
+    const contenusTitreEtapesIds = contenusTitreEtapesIdsFind(titre.titreStatutId!, titre.demarches!, titre.type!.contenuIds)
 
     // si une prop du titre est mise à jour
     const hasChanged =
       (!titre.contenusTitreEtapesIds && contenusTitreEtapesIds) ||
       (titre.contenusTitreEtapesIds && !contenusTitreEtapesIds) ||
-      (titre.contenusTitreEtapesIds &&
-        contenusTitreEtapesIds &&
-        objectsDiffer(titre.contenusTitreEtapesIds, contenusTitreEtapesIds))
+      (titre.contenusTitreEtapesIds && contenusTitreEtapesIds && objectsDiffer(titre.contenusTitreEtapesIds, contenusTitreEtapesIds))
 
     if (hasChanged) {
       await titreUpdate(titre.id, { contenusTitreEtapesIds })
 
-      console.info(
-        'titre : props-contenu-etape (mise à jour) ->',
-        `${titre.id} : ${JSON.stringify(contenusTitreEtapesIds)}`
-      )
+      console.info('titre : props-contenu-etape (mise à jour) ->', `${titre.id} : ${JSON.stringify(contenusTitreEtapesIds)}`)
 
       titresUpdated.push(titre.id)
     }
diff --git a/packages/api/src/business/processes/titres-coordonnees-update.test.ts b/packages/api/src/business/processes/titres-coordonnees-update.test.ts
index 9cb7de24b..4cb1227cd 100644
--- a/packages/api/src/business/processes/titres-coordonnees-update.test.ts
+++ b/packages/api/src/business/processes/titres-coordonnees-update.test.ts
@@ -5,11 +5,11 @@ import { titresCoordonneesUpdate } from './titres-coordonnees-update.js'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres', () => ({
   titreUpdate: vi.fn().mockResolvedValue(true),
-  titresGet: vi.fn()
+  titresGet: vi.fn(),
 }))
 
 vi.mock('../utils/titre-coordonnees-find', () => ({
-  titreCoordonneesFind: vi.fn()
+  titreCoordonneesFind: vi.fn(),
 }))
 
 const titresGetMock = vi.mocked(titresGet, true)
@@ -18,38 +18,26 @@ const titreCoordonneesFindMock = vi.mocked(titreCoordonneesFind, true)
 console.info = vi.fn()
 
 describe('coordoonnées des titres', () => {
-  test.each([{ x: 1, y: 1 }, { x: 1 }, { y: 1 }, undefined])(
-    "met à jour les coordonnees d'un titre",
-    async coordonnees => {
-      titresGetMock.mockResolvedValue([
-        { id: 'titre-id', coordonnees }
-      ] as Titres[])
-      titreCoordonneesFindMock.mockReturnValue({ x: 1, y: 0.5 })
+  test.each([{ x: 1, y: 1 }, { x: 1 }, { y: 1 }, undefined])("met à jour les coordonnees d'un titre", async coordonnees => {
+    titresGetMock.mockResolvedValue([{ id: 'titre-id', coordonnees }] as Titres[])
+    titreCoordonneesFindMock.mockReturnValue({ x: 1, y: 0.5 })
 
-      const titresCoordonneesUpdated = await titresCoordonneesUpdate()
+    const titresCoordonneesUpdated = await titresCoordonneesUpdate()
 
-      expect(titresCoordonneesUpdated.length).toEqual(1)
-    }
-  )
+    expect(titresCoordonneesUpdated.length).toEqual(1)
+  })
 
-  test.each([null, { x: null, y: 1 }])(
-    "enlève les coordonnees d'un titre sans points",
-    async coordonnees => {
-      titresGetMock.mockResolvedValue([
-        { id: 'titre-id', coordonnees: { x: 1, y: 1 } }
-      ] as Titres[])
-      titreCoordonneesFindMock.mockReturnValue(coordonnees)
+  test.each([null, { x: null, y: 1 }])("enlève les coordonnees d'un titre sans points", async coordonnees => {
+    titresGetMock.mockResolvedValue([{ id: 'titre-id', coordonnees: { x: 1, y: 1 } }] as Titres[])
+    titreCoordonneesFindMock.mockReturnValue(coordonnees)
 
-      const titresCoordonneesUpdated = await titresCoordonneesUpdate()
+    const titresCoordonneesUpdated = await titresCoordonneesUpdate()
 
-      expect(titresCoordonneesUpdated.length).toEqual(1)
-    }
-  )
+    expect(titresCoordonneesUpdated.length).toEqual(1)
+  })
 
   test("met à jour les coordonnees d'un titre", async () => {
-    titresGetMock.mockResolvedValue([
-      { id: 'titre-id', coordonnees: null }
-    ] as Titres[])
+    titresGetMock.mockResolvedValue([{ id: 'titre-id', coordonnees: null }] as Titres[])
     titreCoordonneesFindMock.mockReturnValue({ x: null, y: 1 })
 
     const titresCoordonneesUpdated = await titresCoordonneesUpdate()
@@ -61,8 +49,8 @@ describe('coordoonnées des titres', () => {
     titresGetMock.mockResolvedValue([
       {
         id: 'titre-type-id',
-        coordonnees: { x: 1, y: 0.5 }
-      }
+        coordonnees: { x: 1, y: 0.5 },
+      },
     ] as Titres[])
     titreCoordonneesFindMock.mockReturnValue({ x: 1, y: 0.5 })
 
diff --git a/packages/api/src/business/processes/titres-coordonnees-update.ts b/packages/api/src/business/processes/titres-coordonnees-update.ts
index c2cdef3dd..39cf6281a 100644
--- a/packages/api/src/business/processes/titres-coordonnees-update.ts
+++ b/packages/api/src/business/processes/titres-coordonnees-update.ts
@@ -6,30 +6,17 @@ export const titresCoordonneesUpdate = async (titresIds?: string[]) => {
   console.info()
   console.info('coordonnées des titres…')
 
-  const titres = await titresGet(
-    { ids: titresIds },
-    { fields: { points: { id: {} } } },
-    userSuper
-  )
+  const titres = await titresGet({ ids: titresIds }, { fields: { points: { id: {} } } }, userSuper)
 
   const titresCoordonneesUpdated = [] as string[]
 
   for (const titre of titres) {
     const coordonnees = titreCoordonneesFind(titre.points)
 
-    if (
-      (coordonnees &&
-        titre.coordonnees &&
-        (coordonnees.x !== titre.coordonnees.x ||
-          coordonnees.y !== titre.coordonnees.y)) ||
-      !coordonnees !== !titre.coordonnees
-    ) {
+    if ((coordonnees && titre.coordonnees && (coordonnees.x !== titre.coordonnees.x || coordonnees.y !== titre.coordonnees.y)) || !coordonnees !== !titre.coordonnees) {
       await titreUpdate(titre.id, { coordonnees })
 
-      console.info(
-        'titre : coordonnées (mise à jour) ->',
-        `${titre.id} : ${coordonnees?.x}, ${coordonnees?.y}`
-      )
+      console.info('titre : coordonnées (mise à jour) ->', `${titre.id} : ${coordonnees?.x}, ${coordonnees?.y}`)
 
       titresCoordonneesUpdated.push(titre.id)
     }
diff --git a/packages/api/src/business/processes/titres-dates-update.test.ts b/packages/api/src/business/processes/titres-dates-update.test.ts
index c9390ca21..15398b2d1 100644
--- a/packages/api/src/business/processes/titres-dates-update.test.ts
+++ b/packages/api/src/business/processes/titres-dates-update.test.ts
@@ -8,19 +8,19 @@ import { toCaminoDate } from 'camino-common/src/date.js'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres', () => ({
   titreUpdate: vi.fn().mockResolvedValue(true),
-  titresGet: vi.fn()
+  titresGet: vi.fn(),
 }))
 
 vi.mock('../rules/titre-date-fin-find', () => ({
-  titreDateFinFind: vi.fn()
+  titreDateFinFind: vi.fn(),
 }))
 
 vi.mock('../rules/titre-date-debut-find', () => ({
-  titreDateDebutFind: vi.fn()
+  titreDateDebutFind: vi.fn(),
 }))
 
 vi.mock('../rules/titre-date-demande-find', () => ({
-  titreDateDemandeFind: vi.fn()
+  titreDateDemandeFind: vi.fn(),
 }))
 
 const titresGetMock = vi.mocked(titresGet, true)
@@ -48,8 +48,8 @@ describe("dates d'un titre", () => {
         id: 'titre-type-id',
         dateFin: '2019-01-01',
         dateDebut: null,
-        dateDemande: null
-      }
+        dateDemande: null,
+      },
     ] as Titres[])
     titreDateFinFindMock.mockReturnValue('2019-01-01')
     titreDateDebutFindMock.mockReturnValue(null)
diff --git a/packages/api/src/business/processes/titres-dates-update.ts b/packages/api/src/business/processes/titres-dates-update.ts
index 336395463..13d5f05d6 100644
--- a/packages/api/src/business/processes/titres-dates-update.ts
+++ b/packages/api/src/business/processes/titres-dates-update.ts
@@ -13,8 +13,8 @@ export const titresDatesUpdate = async (titresIds?: string[]) => {
     { ids: titresIds },
     {
       fields: {
-        demarches: { phase: { id: {} }, etapes: { points: { id: {} } } }
-      }
+        demarches: { phase: { id: {} }, etapes: { points: { id: {} } } },
+      },
     },
     userSuper
   )
@@ -44,10 +44,7 @@ export const titresDatesUpdate = async (titresIds?: string[]) => {
     if (Object.keys(patch).length) {
       await titreUpdate(titre.id, patch)
 
-      console.info(
-        'titre : dates (mise à jour) ->',
-        `${titre.id}: ${JSON.stringify(patch)}`
-      )
+      console.info('titre : dates (mise à jour) ->', `${titre.id}: ${JSON.stringify(patch)}`)
 
       titresUpdated.push(titre.id)
     }
diff --git a/packages/api/src/business/processes/titres-demarches-depot-create.test.ts b/packages/api/src/business/processes/titres-demarches-depot-create.test.ts
index d49e29f02..9c0f7857a 100644
--- a/packages/api/src/business/processes/titres-demarches-depot-create.test.ts
+++ b/packages/api/src/business/processes/titres-demarches-depot-create.test.ts
@@ -5,34 +5,22 @@ import { describe, expect, test } from 'vitest'
 
 describe('créer le dépot de la démarche', () => {
   test.each<[string, ITitreEtape[], boolean]>([
-    [
-      'crée un dépot d’une ARM avec une demande faite',
-      [{ date: '2021-01-01', typeId: 'mfr', statutId: 'fai' }] as ITitreEtape[],
-      true
-    ],
-    [
-      'ne crée pas un dépot d’une ARM si sa demande est en construction',
-      [{ date: '2021-01-01', typeId: 'mfr', statutId: 'enc' }] as ITitreEtape[],
-      false
-    ],
-    [
-      'ne crée pas un dépot d’une ARM si sa demande est historique',
-      [{ date: '2018-01-01', typeId: 'mfr', statutId: 'fai' }] as ITitreEtape[],
-      false
-    ],
+    ['crée un dépot d’une ARM avec une demande faite', [{ date: '2021-01-01', typeId: 'mfr', statutId: 'fai' }] as ITitreEtape[], true],
+    ['ne crée pas un dépot d’une ARM si sa demande est en construction', [{ date: '2021-01-01', typeId: 'mfr', statutId: 'enc' }] as ITitreEtape[], false],
+    ['ne crée pas un dépot d’une ARM si sa demande est historique', [{ date: '2018-01-01', typeId: 'mfr', statutId: 'fai' }] as ITitreEtape[], false],
     [
       'ne crée pas un dépot d’une ARM si déjà déposée',
       [
         { date: '2021-01-01', typeId: 'mfr', statutId: 'fai' },
-        { date: '2021-01-02', typeId: 'mdp', statutId: 'fai' }
+        { date: '2021-01-02', typeId: 'mdp', statutId: 'fai' },
       ] as ITitreEtape[],
-      false
-    ]
+      false,
+    ],
   ])('%s', (test, etapes, creation) => {
     const titresDemarchesDepotCreated = titreDemarcheDepotCheck({
       titre: { typeId: 'arm' } as ITitre,
       typeId: 'oct',
-      etapes
+      etapes,
     } as ITitreDemarche)
     expect(titresDemarchesDepotCreated).toEqual(creation)
   })
diff --git a/packages/api/src/business/processes/titres-demarches-depot-create.ts b/packages/api/src/business/processes/titres-demarches-depot-create.ts
index c27c733c3..2a747d55b 100644
--- a/packages/api/src/business/processes/titres-demarches-depot-create.ts
+++ b/packages/api/src/business/processes/titres-demarches-depot-create.ts
@@ -1,8 +1,4 @@
-import type {
-  ITitreDemarche,
-  ITitreEntreprise,
-  ITitreEtape
-} from '../../types.js'
+import type { ITitreDemarche, ITitreEntreprise, ITitreEtape } from '../../types.js'
 
 import { titreEtapeUpsert } from '../../database/queries/titres-etapes.js'
 import { titreDemarcheGet } from '../../database/queries/titres-demarches.js'
@@ -12,10 +8,7 @@ import { titreEtapeAdministrationsEmailsSend } from '../../api/graphql/resolvers
 import { demarcheDefinitionFind } from '../rules-demarches/definitions.js'
 import { titreUrlGet } from '../utils/urls-get.js'
 import { emailsWithTemplateSend } from '../../tools/api-mailjet/emails.js'
-import {
-  EmailTemplateId,
-  EmailAdministration
-} from '../../tools/api-mailjet/types.js'
+import { EmailTemplateId, EmailAdministration } from '../../tools/api-mailjet/types.js'
 import { getCurrent } from 'camino-common/src/date.js'
 
 const emailConfirmationDepotSend = async (
@@ -27,62 +20,41 @@ const emailConfirmationDepotSend = async (
     titreNom: string
   }
 ) => {
-  await emailsWithTemplateSend(
-    emails,
-    EmailTemplateId.DEMARCHE_CONFIRMATION_DEPOT,
-    {
-      ...params,
-      emailONF: EmailAdministration.ONF,
-      emailDGTM: EmailAdministration.DGTM
-    }
-  )
+  await emailsWithTemplateSend(emails, EmailTemplateId.DEMARCHE_CONFIRMATION_DEPOT, {
+    ...params,
+    emailONF: EmailAdministration.ONF,
+    emailDGTM: EmailAdministration.DGTM,
+  })
 }
 
 // envoie un email de confirmation à l’opérateur
-const titreEtapeDepotConfirmationEmailsSend = async (
-  titreDemarche: ITitreDemarche,
-  etape: ITitreEtape,
-  titulaires: ITitreEntreprise[]
-) => {
+const titreEtapeDepotConfirmationEmailsSend = async (titreDemarche: ITitreDemarche, etape: ITitreEtape, titulaires: ITitreEntreprise[]) => {
   const titreUrl = titreUrlGet(titreDemarche.titreId)
   const titreNom = titreDemarche.titre!.nom
   const titreTypeNom = titreDemarche.titre!.type!.type!.nom
 
   for (const titulaire of titulaires) {
-    const emails = titulaire.utilisateurs
-      ?.map(u => u.email)
-      .filter(email => !!email) as string[]
+    const emails = titulaire.utilisateurs?.map(u => u.email).filter(email => !!email) as string[]
 
     if (emails?.length) {
       await emailConfirmationDepotSend(emails, {
         titreTypeNom,
         titulaireNom: titulaire.nom ?? '',
         titreUrl,
-        titreNom
+        titreNom,
       })
     }
   }
 }
 
 // visibleForTesting
-export const titreDemarcheDepotCheck = (
-  titreDemarche: ITitreDemarche
-): boolean => {
-  const demarcheDefinition = demarcheDefinitionFind(
-    titreDemarche.titre!.typeId,
-    titreDemarche.typeId,
-    titreDemarche.etapes,
-    titreDemarche.id
-  )
+export const titreDemarcheDepotCheck = (titreDemarche: ITitreDemarche): boolean => {
+  const demarcheDefinition = demarcheDefinitionFind(titreDemarche.titre!.typeId, titreDemarche.typeId, titreDemarche.etapes, titreDemarche.id)
   // On peut déposer automatiquement seulement les démarches qui possèdent un arbre d’instructions
   if (!demarcheDefinition) return false
   if (titreDemarche.titre!.typeId === 'arm' && titreDemarche.typeId === 'oct') {
     // Si on a pas de demande faite
-    if (
-      !titreDemarche.etapes?.find(
-        e => e.typeId === 'mfr' && e.statutId === 'fai'
-      )
-    ) {
+    if (!titreDemarche.etapes?.find(e => e.typeId === 'mfr' && e.statutId === 'fai')) {
       return false
     }
 
@@ -98,36 +70,17 @@ export const titreEtapeDepotCreate = async (titreDemarche: ITitreDemarche) => {
     titreDemarcheId: titreDemarche.id,
     typeId: 'mdp',
     statutId: 'fai',
-    date: getCurrent()
+    date: getCurrent(),
   } as ITitreEtape
 
-  titreEtapeDepot = await titreEtapeUpsert(
-    titreEtapeDepot,
-    userSuper,
-    titreDemarche.titreId
-  )
-  await titreEtapeUpdateTask(
-    titreEtapeDepot.id,
-    titreEtapeDepot.titreDemarcheId,
-    userSuper
-  )
-  await titreEtapeAdministrationsEmailsSend(
-    titreEtapeDepot,
-    titreEtapeDepot.type!,
-    titreDemarche.typeId,
-    titreDemarche.titreId,
-    titreDemarche.titre!.typeId,
-    userSuper
-  )
+  titreEtapeDepot = await titreEtapeUpsert(titreEtapeDepot, userSuper, titreDemarche.titreId)
+  await titreEtapeUpdateTask(titreEtapeDepot.id, titreEtapeDepot.titreDemarcheId, userSuper)
+  await titreEtapeAdministrationsEmailsSend(titreEtapeDepot, titreEtapeDepot.type!, titreDemarche.typeId, titreDemarche.titreId, titreDemarche.titre!.typeId, userSuper)
 
   const titulaires = titreDemarche.titre?.titulaires
 
   if (titulaires?.length) {
-    await titreEtapeDepotConfirmationEmailsSend(
-      titreDemarche,
-      titreEtapeDepot,
-      titulaires
-    )
+    await titreEtapeDepotConfirmationEmailsSend(titreDemarche, titreEtapeDepot, titulaires)
   }
 }
 export const titresEtapesDepotCreate = async (demarcheId: string) => {
@@ -141,9 +94,9 @@ export const titresEtapesDepotCreate = async (demarcheId: string) => {
         etapes: { id: {} },
         titre: {
           type: { type: { id: {} } },
-          titulaires: { utilisateurs: { id: {} } }
-        }
-      }
+          titulaires: { utilisateurs: { id: {} } },
+        },
+      },
     },
     userSuper
   )
diff --git a/packages/api/src/business/processes/titres-demarches-ordre-update.test.ts b/packages/api/src/business/processes/titres-demarches-ordre-update.test.ts
index 8417a2b52..e38ba33df 100644
--- a/packages/api/src/business/processes/titres-demarches-ordre-update.test.ts
+++ b/packages/api/src/business/processes/titres-demarches-ordre-update.test.ts
@@ -1,17 +1,14 @@
 import { titresDemarchesOrdreUpdate } from './titres-demarches-ordre-update.js'
 import { titresGet } from '../../database/queries/titres.js'
 
-import {
-  titresDemarchesDesordonnees,
-  titresDemarchesOrdonnees
-} from './__mocks__/titres-demarches-ordre-update-demarches.js'
+import { titresDemarchesDesordonnees, titresDemarchesOrdonnees } from './__mocks__/titres-demarches-ordre-update-demarches.js'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres', () => ({
-  titresGet: vi.fn()
+  titresGet: vi.fn(),
 }))
 
 vi.mock('../../database/queries/titres-demarches', () => ({
-  titreDemarcheUpdate: vi.fn().mockResolvedValue(true)
+  titreDemarcheUpdate: vi.fn().mockResolvedValue(true),
 }))
 
 const titresGetMock = vi.mocked(titresGet, true)
diff --git a/packages/api/src/business/processes/titres-demarches-ordre-update.ts b/packages/api/src/business/processes/titres-demarches-ordre-update.ts
index 06904135a..9bcbbc1af 100644
--- a/packages/api/src/business/processes/titres-demarches-ordre-update.ts
+++ b/packages/api/src/business/processes/titres-demarches-ordre-update.ts
@@ -9,30 +9,21 @@ export const titresDemarchesOrdreUpdate = async (titresIds?: string[]) => {
   console.info()
   console.info('ordre des démarches…')
 
-  const titres = await titresGet(
-    { ids: titresIds },
-    { fields: { demarches: { etapes: { id: {} } } } },
-    userSuper
-  )
+  const titres = await titresGet({ ids: titresIds }, { fields: { demarches: { etapes: { id: {} } } } }, userSuper)
 
   const titresDemarchesIdsUpdated = [] as string[]
 
   for (const titre of titres) {
-    const titreDemarchesSorted: ITitreDemarche[] = titreDemarchesSortAsc(
-      titre.demarches!
-    )
+    const titreDemarchesSorted: ITitreDemarche[] = titreDemarchesSortAsc(titre.demarches!)
 
     for (const titreDemarche of titreDemarchesSorted) {
       const index = titreDemarchesSorted.indexOf(titreDemarche)
       if (titreDemarche.ordre !== index + 1) {
         await titreDemarcheUpdate(titreDemarche.id, {
-          ordre: index + 1
+          ordre: index + 1,
         })
 
-        console.info(
-          'titre / démarche : ordre (mise à jour) ->',
-          `${titreDemarche.id}: ${index + 1}`
-        )
+        console.info('titre / démarche : ordre (mise à jour) ->', `${titreDemarche.id}: ${index + 1}`)
 
         titresDemarchesIdsUpdated.push(titreDemarche.id)
       }
diff --git a/packages/api/src/business/processes/titres-demarches-public-update.test.ts b/packages/api/src/business/processes/titres-demarches-public-update.test.ts
index 888940f1c..57e4bf374 100644
--- a/packages/api/src/business/processes/titres-demarches-public-update.test.ts
+++ b/packages/api/src/business/processes/titres-demarches-public-update.test.ts
@@ -1,17 +1,14 @@
 import { titresDemarchesPublicUpdate } from './titres-demarches-public-update.js'
 import { titresGet } from '../../database/queries/titres.js'
 
-import {
-  titresDemarchesPublicModifie,
-  titresDemarchesPublicIdentique
-} from './__mocks__/titres-demarches-public-update-demarches.js'
+import { titresDemarchesPublicModifie, titresDemarchesPublicIdentique } from './__mocks__/titres-demarches-public-update-demarches.js'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres', () => ({
-  titresGet: vi.fn()
+  titresGet: vi.fn(),
 }))
 
 vi.mock('../../database/queries/titres-demarches', () => ({
-  titreDemarcheUpdate: vi.fn().mockResolvedValue(true)
+  titreDemarcheUpdate: vi.fn().mockResolvedValue(true),
 }))
 
 const titresGetMock = vi.mocked(titresGet, true)
diff --git a/packages/api/src/business/processes/titres-demarches-public-update.ts b/packages/api/src/business/processes/titres-demarches-public-update.ts
index 6f696cff1..a5d0cd27f 100644
--- a/packages/api/src/business/processes/titres-demarches-public-update.ts
+++ b/packages/api/src/business/processes/titres-demarches-public-update.ts
@@ -20,9 +20,9 @@ export const titresDemarchesPublicUpdate = async (titresIds?: string[]) => {
       fields: {
         demarches: {
           type: { etapesTypes: { id: {} } },
-          etapes: { id: {} }
-        }
-      }
+          etapes: { id: {} },
+        },
+      },
     },
     userSuper
   )
@@ -34,22 +34,11 @@ export const titresDemarchesPublicUpdate = async (titresIds?: string[]) => {
 
   for (const titre of titres) {
     for (const titreDemarche of titre.demarches!) {
-      const titreDemarcheEtapes = titreEtapesSortAscByOrdre(
-        titreDemarche.etapes ?? []
-      )
+      const titreDemarcheEtapes = titreEtapesSortAscByOrdre(titreDemarche.etapes ?? [])
 
-      const demarcheTypeEtapesTypes = titreDemarche.type!.etapesTypes!.filter(
-        et => et.titreTypeId === titre.typeId
-      )
+      const demarcheTypeEtapesTypes = titreDemarche.type!.etapesTypes!.filter(et => et.titreTypeId === titre.typeId)
 
-      const { publicLecture, entreprisesLecture } = titreDemarchePublicFind(
-        titreDemarche.typeId,
-        demarcheTypeEtapesTypes,
-        titreDemarcheEtapes,
-        titre.id,
-        titre.demarches,
-        titre.typeId
-      )
+      const { publicLecture, entreprisesLecture } = titreDemarchePublicFind(titreDemarche.typeId, demarcheTypeEtapesTypes, titreDemarcheEtapes, titre.id, titre.demarches, titre.typeId)
 
       const patch = {} as ITitreDemarchePatch
 
@@ -64,10 +53,7 @@ export const titresDemarchesPublicUpdate = async (titresIds?: string[]) => {
       if (Object.keys(patch).length) {
         await titreDemarcheUpdate(titreDemarche.id, patch)
 
-        console.info(
-          'titre / démarche : publique (mise à jour) ->',
-          `${titreDemarche.id}: ${JSON.stringify(patch)}`
-        )
+        console.info('titre / démarche : publique (mise à jour) ->', `${titreDemarche.id}: ${JSON.stringify(patch)}`)
 
         titresDemarchesUpdated.push(titreDemarche.id)
       }
diff --git a/packages/api/src/business/processes/titres-demarches-statut-ids-update.test.ts b/packages/api/src/business/processes/titres-demarches-statut-ids-update.test.ts
index eee3aa850..ca7b1a871 100644
--- a/packages/api/src/business/processes/titres-demarches-statut-ids-update.test.ts
+++ b/packages/api/src/business/processes/titres-demarches-statut-ids-update.test.ts
@@ -5,11 +5,11 @@ import { newDemarcheId } from '../../database/models/_format/id-create.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 
 vi.mock('./titres-etapes-heritage-contenu-update', () => ({
-  getDemarches: vi.fn().mockResolvedValue(true)
+  getDemarches: vi.fn().mockResolvedValue(true),
 }))
 
 vi.mock('../../database/queries/titres-demarches', () => ({
-  titreDemarcheUpdate: vi.fn().mockResolvedValue(true)
+  titreDemarcheUpdate: vi.fn().mockResolvedValue(true),
 }))
 
 const getDemarchesMock = vi.mocked(getDemarches, true)
@@ -32,7 +32,7 @@ describe("statut des démarches d'un titre", () => {
             typeId: 'dpu',
             statutId: 'acc',
             ordre: 2,
-            date: toCaminoDate('1988-03-11')
+            date: toCaminoDate('1988-03-11'),
           },
           {
             id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -40,10 +40,10 @@ describe("statut des démarches d'un titre", () => {
             typeId: 'dex',
             statutId: 'acc',
             ordre: 1,
-            date: toCaminoDate('1988-03-06')
-          }
-        ]
-      }
+            date: toCaminoDate('1988-03-06'),
+          },
+        ],
+      },
     })
     const titresDemarchesStatutUpdated = await titresDemarchesStatutIdUpdate()
 
@@ -65,7 +65,7 @@ describe("statut des démarches d'un titre", () => {
             typeId: 'dpu',
             statutId: 'acc',
             ordre: 2,
-            date: toCaminoDate('1988-03-11')
+            date: toCaminoDate('1988-03-11'),
           },
           {
             id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -73,10 +73,10 @@ describe("statut des démarches d'un titre", () => {
             typeId: 'dex',
             statutId: 'acc',
             ordre: 1,
-            date: toCaminoDate('1988-03-06')
-          }
-        ]
-      }
+            date: toCaminoDate('1988-03-06'),
+          },
+        ],
+      },
     })
     const titresDemarchesStatutUpdated = await titresDemarchesStatutIdUpdate()
 
@@ -91,8 +91,8 @@ describe("statut des démarches d'un titre", () => {
         titreTypeId: 'cxh',
         typeId: 'oct',
         statutId: 'ind',
-        etapes: []
-      }
+        etapes: [],
+      },
     })
     const titresDemarchesStatutUpdated = await titresDemarchesStatutIdUpdate()
     expect(titresDemarchesStatutUpdated.length).toEqual(0)
diff --git a/packages/api/src/business/processes/titres-demarches-statut-ids-update.ts b/packages/api/src/business/processes/titres-demarches-statut-ids-update.ts
index b44f5c5eb..6334abcb5 100644
--- a/packages/api/src/business/processes/titres-demarches-statut-ids-update.ts
+++ b/packages/api/src/business/processes/titres-demarches-statut-ids-update.ts
@@ -15,24 +15,14 @@ export const titresDemarchesStatutIdUpdate = async (titresId?: string) => {
   const titresDemarchesUpdated: string[] = []
 
   for (const titreDemarche of Object.values(titresDemarches)) {
-    const titreDemarcheEtapes = titreEtapesSortAscByOrdre(
-      titreDemarche.etapes ?? []
-    )
+    const titreDemarcheEtapes = titreEtapesSortAscByOrdre(titreDemarche.etapes ?? [])
 
-    const statutId = titreDemarcheStatutIdFind(
-      titreDemarche.typeId,
-      titreDemarcheEtapes,
-      titreDemarche.titreTypeId,
-      titreDemarche.id
-    )
+    const statutId = titreDemarcheStatutIdFind(titreDemarche.typeId, titreDemarcheEtapes, titreDemarche.titreTypeId, titreDemarche.id)
 
     if (titreDemarche.statutId !== statutId) {
       await titreDemarcheUpdate(titreDemarche.id, { statutId })
 
-      console.info(
-        'titre / démarche : statut (mise à jour) ->',
-        `${titreDemarche.id}: ${statutId}`
-      )
+      console.info('titre / démarche : statut (mise à jour) ->', `${titreDemarche.id}: ${statutId}`)
 
       titresDemarchesUpdated.push(titreDemarche.id)
     }
diff --git a/packages/api/src/business/processes/titres-etapes-administrations-locales-update.test.ts b/packages/api/src/business/processes/titres-etapes-administrations-locales-update.test.ts
index a637419fb..084b9a9d4 100644
--- a/packages/api/src/business/processes/titres-etapes-administrations-locales-update.test.ts
+++ b/packages/api/src/business/processes/titres-etapes-administrations-locales-update.test.ts
@@ -1,27 +1,24 @@
 import { titresEtapesAdministrationsLocalesUpdate } from './titres-etapes-administrations-locales-update.js'
 import { titresEtapesGet } from '../../database/queries/titres-etapes.js'
 
-import {
-  titresEtapesCommunesVides,
-  titresEtapesCommunesMemeCommune
-} from './__mocks__/titres-etapes-administrations-locales-update-etapes.js'
+import { titresEtapesCommunesVides, titresEtapesCommunesMemeCommune } from './__mocks__/titres-etapes-administrations-locales-update-etapes.js'
 import { ICommune, ITitreEtape } from '../../types.js'
 import { newDemarcheId } from '../../database/models/_format/id-create.js'
 import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres-etapes', () => ({
-  titresEtapesGet: vi.fn()
+  titresEtapesGet: vi.fn(),
 }))
 
 vi.mock('../../knex', () => {
   const mockvi = {
     update: vi.fn().mockReturnThis(),
-    where: vi.fn().mockReturnThis()
+    where: vi.fn().mockReturnThis(),
   }
 
   return {
-    knex: vi.fn().mockReturnValue(mockvi)
+    knex: vi.fn().mockReturnValue(mockvi),
   }
 })
 
@@ -42,9 +39,9 @@ describe("administrations d'une étape", () => {
           {
             id: 'paris',
             nom: 'paris',
-            departementId: '973'
-          }
-        ]
+            departementId: '973',
+          },
+        ],
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dpu01',
@@ -56,15 +53,14 @@ describe("administrations d'une étape", () => {
           {
             id: 'issy',
             nom: 'issy',
-            departementId: '87'
-          }
-        ]
-      }
+            departementId: '87',
+          },
+        ],
+      },
     ]
     titresEtapesGetMock.mockResolvedValue(titresEtapesCommunes)
 
-    const { titresEtapesAdministrationsLocalesUpdated } =
-      await titresEtapesAdministrationsLocalesUpdate()
+    const { titresEtapesAdministrationsLocalesUpdated } = await titresEtapesAdministrationsLocalesUpdate()
 
     expect(titresEtapesAdministrationsLocalesUpdated.length).toEqual(2)
   })
@@ -72,8 +68,7 @@ describe("administrations d'une étape", () => {
   test("n'ajoute pas deux fois une administration en doublon ", async () => {
     titresEtapesGetMock.mockResolvedValue(titresEtapesCommunesMemeCommune)
 
-    const { titresEtapesAdministrationsLocalesUpdated } =
-      await titresEtapesAdministrationsLocalesUpdate()
+    const { titresEtapesAdministrationsLocalesUpdated } = await titresEtapesAdministrationsLocalesUpdate()
 
     expect(titresEtapesAdministrationsLocalesUpdated.length).toEqual(1)
   })
@@ -81,8 +76,7 @@ describe("administrations d'une étape", () => {
   test("ne met pas à jour les administrations d'une étape qui n'a pas de commune", async () => {
     titresEtapesGetMock.mockResolvedValue(titresEtapesCommunesVides)
 
-    const { titresEtapesAdministrationsLocalesUpdated } =
-      await titresEtapesAdministrationsLocalesUpdate()
+    const { titresEtapesAdministrationsLocalesUpdated } = await titresEtapesAdministrationsLocalesUpdate()
 
     expect(titresEtapesAdministrationsLocalesUpdated.length).toEqual(0)
   })
@@ -95,17 +89,14 @@ describe("administrations d'une étape", () => {
       date: toCaminoDate('2022-01-01'),
       typeId: 'dpu',
       communes: [],
-      administrationsLocales: [ADMINISTRATION_IDS['DREAL - BRETAGNE']]
+      administrationsLocales: [ADMINISTRATION_IDS['DREAL - BRETAGNE']],
     }
     titresEtapesGetMock.mockResolvedValue([titreEtape])
 
-    const { titresEtapesAdministrationsLocalesUpdated } =
-      await titresEtapesAdministrationsLocalesUpdate()
+    const { titresEtapesAdministrationsLocalesUpdated } = await titresEtapesAdministrationsLocalesUpdate()
 
     expect(titresEtapesAdministrationsLocalesUpdated.length).toEqual(1)
-    expect(
-      titresEtapesAdministrationsLocalesUpdated[0].administrations
-    ).toHaveLength(0)
+    expect(titresEtapesAdministrationsLocalesUpdated[0].administrations).toHaveLength(0)
   })
 
   test("supprime une administration si l'étape ne la contient plus dans ses communes", async () => {
@@ -116,13 +107,12 @@ describe("administrations d'une étape", () => {
       titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-oct01'),
       typeId: 'dpu',
       communes: [] as ICommune[],
-      administrationsLocales: ['ope-cacem-01']
+      administrationsLocales: ['ope-cacem-01'],
     }
 
     titresEtapesGetMock.mockResolvedValue([titreEtape])
 
-    const { titresEtapesAdministrationsLocalesUpdated } =
-      await titresEtapesAdministrationsLocalesUpdate()
+    const { titresEtapesAdministrationsLocalesUpdated } = await titresEtapesAdministrationsLocalesUpdate()
 
     expect(titresEtapesAdministrationsLocalesUpdated.length).toEqual(1)
   })
diff --git a/packages/api/src/business/processes/titres-etapes-administrations-locales-update.ts b/packages/api/src/business/processes/titres-etapes-administrations-locales-update.ts
index a15821fa2..1515851e0 100644
--- a/packages/api/src/business/processes/titres-etapes-administrations-locales-update.ts
+++ b/packages/api/src/business/processes/titres-etapes-administrations-locales-update.ts
@@ -2,19 +2,10 @@ import { IAdministration, ITitreEtape, ICommune } from '../../types.js'
 
 import { titresEtapesGet } from '../../database/queries/titres-etapes.js'
 import { userSuper } from '../../database/user-super.js'
-import {
-  DepartementId,
-  Departements
-} from 'camino-common/src/static/departement.js'
-import {
-  getDepartementsBySecteurs,
-  SecteursMaritimes
-} from 'camino-common/src/static/facades.js'
+import { DepartementId, Departements } from 'camino-common/src/static/departement.js'
+import { getDepartementsBySecteurs, SecteursMaritimes } from 'camino-common/src/static/facades.js'
 import { onlyUnique } from 'camino-common/src/typescript-tools.js'
-import {
-  AdministrationId,
-  sortedAdministrations
-} from 'camino-common/src/static/administrations.js'
+import { AdministrationId, sortedAdministrations } from 'camino-common/src/static/administrations.js'
 import { knex } from '../../knex.js'
 
 interface ITitreEtapeAdministrationLocale {
@@ -24,17 +15,12 @@ interface ITitreEtapeAdministrationLocale {
 }
 
 // calcule tous les départements d'une étape
-const titreEtapeAdministrationsDepartementsBuild = (
-  communes: ICommune[] | undefined | null,
-  secteursMaritimes: SecteursMaritimes[] | undefined | null
-): DepartementId[] => {
+const titreEtapeAdministrationsDepartementsBuild = (communes: ICommune[] | undefined | null, secteursMaritimes: SecteursMaritimes[] | undefined | null): DepartementId[] => {
   if (!communes) {
     throw new Error('les communes ne sont pas chargées')
   }
 
-  const departements = communes
-    .map(({ departementId }) => departementId)
-    .filter((departementId): departementId is DepartementId => !!departementId)
+  const departements = communes.map(({ departementId }) => departementId).filter((departementId): departementId is DepartementId => !!departementId)
 
   if (secteursMaritimes) {
     departements.push(...getDepartementsBySecteurs(secteursMaritimes))
@@ -43,108 +29,66 @@ const titreEtapeAdministrationsDepartementsBuild = (
   return departements.filter(onlyUnique)
 }
 
-const titreEtapeAdministrationsLocalesBuild = (
-  titreEtape: ITitreEtape
-): AdministrationId[] => {
-  const titreDepartementsIds = titreEtapeAdministrationsDepartementsBuild(
-    titreEtape.communes,
-    titreEtape.secteursMaritime
-  )
-  const titreRegionsIds = titreDepartementsIds
-    .map(departementId => Departements[departementId].regionId)
-    .filter(onlyUnique)
+const titreEtapeAdministrationsLocalesBuild = (titreEtape: ITitreEtape): AdministrationId[] => {
+  const titreDepartementsIds = titreEtapeAdministrationsDepartementsBuild(titreEtape.communes, titreEtape.secteursMaritime)
+  const titreRegionsIds = titreDepartementsIds.map(departementId => Departements[departementId].regionId).filter(onlyUnique)
 
   // calcule toutes les administrations qui couvrent ces départements et régions
-  return sortedAdministrations.reduce(
-    (
-      titreEtapeAdministrations: AdministrationId[],
-      administration: IAdministration
-    ) => {
-      // si le département ou la région de l'administration ne fait pas partie de ceux de l'étape
-      const isAdministrationLocale =
-        (administration.departementId &&
-          titreDepartementsIds.includes(administration.departementId)) ||
-        (administration.regionId &&
-          titreRegionsIds.includes(administration.regionId))
-      // alors l'administration n'est pas rattachée à l'étape
-      if (!isAdministrationLocale) return titreEtapeAdministrations
-
-      titreEtapeAdministrations.push(administration.id)
-
-      return titreEtapeAdministrations
-    },
-    []
-  )
+  return sortedAdministrations.reduce((titreEtapeAdministrations: AdministrationId[], administration: IAdministration) => {
+    // si le département ou la région de l'administration ne fait pas partie de ceux de l'étape
+    const isAdministrationLocale =
+      (administration.departementId && titreDepartementsIds.includes(administration.departementId)) || (administration.regionId && titreRegionsIds.includes(administration.regionId))
+    // alors l'administration n'est pas rattachée à l'étape
+    if (!isAdministrationLocale) return titreEtapeAdministrations
+
+    titreEtapeAdministrations.push(administration.id)
+
+    return titreEtapeAdministrations
+  }, [])
 }
 
-const titresEtapesAdministrationsLocalesBuild = (
-  etapes: ITitreEtape[]
-): ITitreEtapeAdministrationLocale[] =>
-  etapes.reduce<ITitreEtapeAdministrationLocale[]>(
-    (titresEtapesAdministrationsLocales, titreEtape) => {
-      const titreEtapeAdministrationsLocales =
-        titreEtapeAdministrationsLocalesBuild(titreEtape)
-
-      titresEtapesAdministrationsLocales.push({
-        titreEtapeAdministrationsLocalesOld:
-          titreEtape.administrationsLocales?.sort() ?? [],
-        titreEtapeAdministrationsLocales:
-          titreEtapeAdministrationsLocales.sort(),
-        titreEtapeId: titreEtape.id
-      })
-
-      return titresEtapesAdministrationsLocales
-    },
-    []
-  )
-
-export const titresEtapesAdministrationsLocalesUpdate = async (
-  titresEtapesIds?: string[]
-) => {
+const titresEtapesAdministrationsLocalesBuild = (etapes: ITitreEtape[]): ITitreEtapeAdministrationLocale[] =>
+  etapes.reduce<ITitreEtapeAdministrationLocale[]>((titresEtapesAdministrationsLocales, titreEtape) => {
+    const titreEtapeAdministrationsLocales = titreEtapeAdministrationsLocalesBuild(titreEtape)
+
+    titresEtapesAdministrationsLocales.push({
+      titreEtapeAdministrationsLocalesOld: titreEtape.administrationsLocales?.sort() ?? [],
+      titreEtapeAdministrationsLocales: titreEtapeAdministrationsLocales.sort(),
+      titreEtapeId: titreEtape.id,
+    })
+
+    return titresEtapesAdministrationsLocales
+  }, [])
+
+export const titresEtapesAdministrationsLocalesUpdate = async (titresEtapesIds?: string[]) => {
   console.info()
   console.info('administrations locales associées aux étapes…')
 
-  const etapes = await titresEtapesGet(
-    { titresEtapesIds },
-    { fields: { communes: { id: {} } } },
-    userSuper
-  )
+  const etapes = await titresEtapesGet({ titresEtapesIds }, { fields: { communes: { id: {} } } }, userSuper)
   const titresEtapesAdministrationsLocalesUpdated: {
     titreEtapeId: string
     administrations: AdministrationId[]
   }[] = []
 
   if (etapes) {
-    const titresEtapesAdministrationsLocales =
-      titresEtapesAdministrationsLocalesBuild(etapes)
-
-    for (const {
-      titreEtapeId,
-      titreEtapeAdministrationsLocales,
-      titreEtapeAdministrationsLocalesOld
-    } of titresEtapesAdministrationsLocales) {
+    const titresEtapesAdministrationsLocales = titresEtapesAdministrationsLocalesBuild(etapes)
+
+    for (const { titreEtapeId, titreEtapeAdministrationsLocales, titreEtapeAdministrationsLocalesOld } of titresEtapesAdministrationsLocales) {
       if (
-        titreEtapeAdministrationsLocales.length !==
-          titreEtapeAdministrationsLocalesOld.length ||
-        titreEtapeAdministrationsLocales.some(
-          (a, index) => a !== titreEtapeAdministrationsLocalesOld[index]
-        )
+        titreEtapeAdministrationsLocales.length !== titreEtapeAdministrationsLocalesOld.length ||
+        titreEtapeAdministrationsLocales.some((a, index) => a !== titreEtapeAdministrationsLocalesOld[index])
       ) {
         await knex('titres_etapes')
           .update({
-            administrationsLocales: JSON.stringify(
-              titreEtapeAdministrationsLocales
-            )
+            administrationsLocales: JSON.stringify(titreEtapeAdministrationsLocales),
           })
           .where('id', titreEtapeId)
         console.info(
-          `titres / démarches / étapes ${titreEtapeId} : administrations locales (modification) -> ${titreEtapeAdministrationsLocalesOld.join(
-            ', '
-          )} | ${titreEtapeAdministrationsLocales.join(', ')}`
+          `titres / démarches / étapes ${titreEtapeId} : administrations locales (modification) -> ${titreEtapeAdministrationsLocalesOld.join(', ')} | ${titreEtapeAdministrationsLocales.join(', ')}`
         )
         titresEtapesAdministrationsLocalesUpdated.push({
           titreEtapeId,
-          administrations: titreEtapeAdministrationsLocales
+          administrations: titreEtapeAdministrationsLocales,
         })
       }
     }
diff --git a/packages/api/src/business/processes/titres-etapes-areas-update.test.integration.ts b/packages/api/src/business/processes/titres-etapes-areas-update.test.integration.ts
index 378cedd35..ec2012a3c 100644
--- a/packages/api/src/business/processes/titres-etapes-areas-update.test.integration.ts
+++ b/packages/api/src/business/processes/titres-etapes-areas-update.test.integration.ts
@@ -6,13 +6,7 @@ import TitresEtapes from '../../database/models/titres-etapes.js'
 import TitresPoints from '../../database/models/titres-points.js'
 import { titresEtapesAreasUpdate } from './titres-etapes-areas-update.js'
 import TitresCommunes from '../../database/models/titres-communes.js'
-import {
-  BaisieuxPerimetre,
-  foret2BranchesPerimetre,
-  foretReginaPerimetre,
-  SaintEliePerimetre,
-  SinnamaryPerimetre
-} from './__mocks__/titres-etapes-areas-update.js'
+import { BaisieuxPerimetre, foret2BranchesPerimetre, foretReginaPerimetre, SaintEliePerimetre, SinnamaryPerimetre } from './__mocks__/titres-etapes-areas-update.js'
 import TitresForets from '../../database/models/titres-forets.js'
 import { newDemarcheId } from '../../database/models/_format/id-create.js'
 import { SDOMZoneIds } from 'camino-common/src/static/sdom.js'
@@ -33,67 +27,41 @@ describe('titresEtapesAreasUpdate', () => {
   test('met à jour les communes, forêts et zone du SDOM sur une étape', async () => {
     const baisieuxId = '59044'
     const saintElieId = '97358'
-    await knex!.raw(
-      `insert into communes (nom, id, departement_id) values ('Saint-Élie', '${saintElieId}', '973')`
-    )
-    await knex!.raw(
-      `insert into communes (nom, id, departement_id) values ('Baisieux', '${baisieuxId}', '59')`
-    )
-    await knex!.raw(
-      `insert into communes (nom, id, departement_id) values ('Sinnamary', '97312', '973')`
-    )
-    await knex!.raw(
-      `insert into communes_postgis (id, geometry) values ('${saintElieId}','${SaintEliePerimetre}')`
-    )
-    await knex!.raw(
-      `insert into communes_postgis (id, geometry) values ('${baisieuxId}', '${BaisieuxPerimetre}')`
-    )
-    await knex!.raw(
-      `insert into communes_postgis (id, geometry) values ('97312', '${SinnamaryPerimetre}')`
-    )
+    await knex!.raw(`insert into communes (nom, id, departement_id) values ('Saint-Élie', '${saintElieId}', '973')`)
+    await knex!.raw(`insert into communes (nom, id, departement_id) values ('Baisieux', '${baisieuxId}', '59')`)
+    await knex!.raw(`insert into communes (nom, id, departement_id) values ('Sinnamary', '97312', '973')`)
+    await knex!.raw(`insert into communes_postgis (id, geometry) values ('${saintElieId}','${SaintEliePerimetre}')`)
+    await knex!.raw(`insert into communes_postgis (id, geometry) values ('${baisieuxId}', '${BaisieuxPerimetre}')`)
+    await knex!.raw(`insert into communes_postgis (id, geometry) values ('97312', '${SinnamaryPerimetre}')`)
 
     const reginaId = 'FRG'
     const deuxBranchesId = 'DBR'
-    await knex!.raw(
-      `insert into forets (nom, id) values ('Deux Branches', '${deuxBranchesId}')`
-    )
-    await knex!.raw(
-      `insert into forets (nom, id) values ('Regina', '${reginaId}')`
-    )
-    await knex!.raw(
-      `insert into forets_postgis (id, geometry) values ('${deuxBranchesId}','${foret2BranchesPerimetre}')`
-    )
-    await knex!.raw(
-      `insert into forets_postgis (id, geometry) values ('${reginaId}','${foretReginaPerimetre}')`
-    )
+    await knex!.raw(`insert into forets (nom, id) values ('Deux Branches', '${deuxBranchesId}')`)
+    await knex!.raw(`insert into forets (nom, id) values ('Regina', '${reginaId}')`)
+    await knex!.raw(`insert into forets_postgis (id, geometry) values ('${deuxBranchesId}','${foret2BranchesPerimetre}')`)
+    await knex!.raw(`insert into forets_postgis (id, geometry) values ('${reginaId}','${foretReginaPerimetre}')`)
 
     // Pour simplifier le test, on utilise des forêts en tant que zone de sdom
-    await knex!.raw(
-      `insert into sdom_zones_postgis (id, geometry) values ('${SDOMZoneIds.Zone1}','${foret2BranchesPerimetre}')`
-    )
-    await knex!.raw(
-      `insert into sdom_zones_postgis (id, geometry) values ('${SDOMZoneIds.Zone2}','${foretReginaPerimetre}')`
-    )
+    await knex!.raw(`insert into sdom_zones_postgis (id, geometry) values ('${SDOMZoneIds.Zone1}','${foret2BranchesPerimetre}')`)
+    await knex!.raw(`insert into sdom_zones_postgis (id, geometry) values ('${SDOMZoneIds.Zone2}','${foretReginaPerimetre}')`)
     const titreId = 'titreIdUniquePourMiseAJourAreas'
     await Titres.query().insert({
       id: titreId,
       slug: `slug-${titreId}`,
       nom: `nom-${titreId}`,
       titreStatutId: 'val',
-      typeId: 'arm'
+      typeId: 'arm',
     })
 
-    const titreDemarcheId = newDemarcheId(
-      'titreDemarcheIdUniquePourMiseAJourAreas'
-    )
+    const titreDemarcheId = newDemarcheId('titreDemarcheIdUniquePourMiseAJourAreas')
     await TitresDemarches.query().insert([
       {
         id: titreDemarcheId,
         typeId: 'oct',
         statutId: 'eco',
         titreId,
-        archive: false
-      }
+        archive: false,
+      },
     ])
 
     const titreEtapeId = 'titreEtapeIdUniquePourMiseAJourAreas'
@@ -105,8 +73,8 @@ describe('titresEtapesAreasUpdate', () => {
         statutId: 'aco',
         titreDemarcheId,
         archive: false,
-        sdomZones: [SDOMZoneIds.Zone2]
-      }
+        sdomZones: [SDOMZoneIds.Zone2],
+      },
     ])
 
     await TitresPoints.query().insert([
@@ -115,41 +83,41 @@ describe('titresEtapesAreasUpdate', () => {
         groupe: 1,
         contour: 1,
         point: 1,
-        coordonnees: { x: -53.16822754488772, y: 5.02935254143807 }
+        coordonnees: { x: -53.16822754488772, y: 5.02935254143807 },
       },
       {
         titreEtapeId,
         groupe: 1,
         contour: 1,
         point: 2,
-        coordonnees: { x: -53.15913163720232, y: 5.029382753429523 }
+        coordonnees: { x: -53.15913163720232, y: 5.029382753429523 },
       },
       {
         titreEtapeId,
         groupe: 1,
         contour: 1,
         point: 3,
-        coordonnees: { x: -53.15910186841349, y: 5.020342601941031 }
+        coordonnees: { x: -53.15910186841349, y: 5.020342601941031 },
       },
       {
         titreEtapeId,
         groupe: 1,
         contour: 1,
         point: 4,
-        coordonnees: { x: -53.168197650929095, y: 5.02031244452273 }
-      }
+        coordonnees: { x: -53.168197650929095, y: 5.02031244452273 },
+      },
     ])
 
     // ajoute baisieux et saintElie à l’étape
     await TitresCommunes.query().insert({
       titreEtapeId,
       communeId: baisieuxId,
-      surface: 12
+      surface: 12,
     })
     await TitresCommunes.query().insert({
       titreEtapeId,
       communeId: saintElieId,
-      surface: 12
+      surface: 12,
     })
 
     // ajoute la forêt Regina
@@ -157,24 +125,12 @@ describe('titresEtapesAreasUpdate', () => {
 
     await titresEtapesAreasUpdate([titreEtapeId])
 
-    expect(
-      await TitresCommunes.query().where('titreEtapeId', titreEtapeId)
-    ).toMatchSnapshot()
-    expect(
-      await TitresForets.query().where('titreEtapeId', titreEtapeId)
-    ).toMatchSnapshot()
-    expect(
-      await TitresEtapes.query()
-        .where('id', titreEtapeId)
-        .withGraphFetched('[forets, communes]')
-    ).toMatchSnapshot()
+    expect(await TitresCommunes.query().where('titreEtapeId', titreEtapeId)).toMatchSnapshot()
+    expect(await TitresForets.query().where('titreEtapeId', titreEtapeId)).toMatchSnapshot()
+    expect(await TitresEtapes.query().where('id', titreEtapeId).withGraphFetched('[forets, communes]')).toMatchSnapshot()
     await Titres.query()
       .patch({ propsTitreEtapesIds: { points: titreEtapeId } })
       .where({ id: titreId })
-    expect(
-      await Titres.query()
-        .where('id', titreId)
-        .withGraphFetched('[pointsEtape, forets, communes]')
-    ).toMatchSnapshot()
+    expect(await Titres.query().where('id', titreId).withGraphFetched('[pointsEtape, forets, communes]')).toMatchSnapshot()
   })
 })
diff --git a/packages/api/src/business/processes/titres-etapes-areas-update.ts b/packages/api/src/business/processes/titres-etapes-areas-update.ts
index 7329220bd..7f2845f89 100644
--- a/packages/api/src/business/processes/titres-etapes-areas-update.ts
+++ b/packages/api/src/business/processes/titres-etapes-areas-update.ts
@@ -1,20 +1,11 @@
-import {
-  geojsonFeatureMultiPolygon,
-  geojsonIntersectsCommunes,
-  geojsonIntersectsSecteursMaritime,
-  geojsonIntersectsForets,
-  geojsonIntersectsSDOM
-} from '../../tools/geojson.js'
+import { geojsonFeatureMultiPolygon, geojsonIntersectsCommunes, geojsonIntersectsSecteursMaritime, geojsonIntersectsForets, geojsonIntersectsSDOM } from '../../tools/geojson.js'
 import { titresEtapesGet } from '../../database/queries/titres-etapes.js'
 import TitresCommunes from '../../database/models/titres-communes.js'
 import TitresForets from '../../database/models/titres-forets.js'
 import { userSuper } from '../../database/user-super.js'
 import { Feature } from 'geojson'
 import { ITitreEtape } from '../../types.js'
-import {
-  getSecteurMaritime,
-  SecteursMaritimes
-} from 'camino-common/src/static/facades.js'
+import { getSecteurMaritime, SecteursMaritimes } from 'camino-common/src/static/facades.js'
 import { knex } from '../../knex.js'
 
 /**
@@ -22,9 +13,7 @@ import { knex } from '../../knex.js'
  * @param titresEtapesIds - liste d’étapes
  * @returns toutes les modifications effectuées
  */
-export const titresEtapesAreasUpdate = async (
-  titresEtapesIds?: string[]
-): Promise<void> => {
+export const titresEtapesAreasUpdate = async (titresEtapesIds?: string[]): Promise<void> => {
   console.info()
   console.info('communes, forêts et zones du SDOM associées aux étapes…')
 
@@ -34,8 +23,8 @@ export const titresEtapesAreasUpdate = async (
       fields: {
         points: { id: {} },
         communes: { id: {} },
-        forets: { id: {} }
-      }
+        forets: { id: {} },
+      },
     },
     userSuper
   )
@@ -49,26 +38,19 @@ export const titresEtapesAreasUpdate = async (
     }
     try {
       if (titreEtape.points?.length) {
-        const multipolygonGeojson = geojsonFeatureMultiPolygon(
-          titreEtape.points
-        ) as Feature
+        const multipolygonGeojson = geojsonFeatureMultiPolygon(titreEtape.points) as Feature
         await intersectForets(multipolygonGeojson, titreEtape)
         await intersectSdom(multipolygonGeojson, titreEtape)
         await intersectCommunes(multipolygonGeojson, titreEtape)
         await intersectSecteursMaritime(multipolygonGeojson, titreEtape)
       }
     } catch (e) {
-      console.error(
-        `Une erreur est survenue lors du traitement de l'étape ${titreEtape.id}`
-      )
+      console.error(`Une erreur est survenue lors du traitement de l'étape ${titreEtape.id}`)
       throw e
     }
   }
 }
-async function intersectSdom(
-  multipolygonGeojson: Feature,
-  titreEtape: Pick<ITitreEtape, 'sdomZones' | 'id'>
-) {
+async function intersectSdom(multipolygonGeojson: Feature, titreEtape: Pick<ITitreEtape, 'sdomZones' | 'id'>) {
   const sdomZonesIds = await geojsonIntersectsSDOM(multipolygonGeojson)
 
   if (sdomZonesIds.fallback) {
@@ -77,32 +59,14 @@ async function intersectSdom(
     }
   }
   if (sdomZonesIds.data.length > 0) {
-    if (
-      sdomZonesIds.data.length !== titreEtape.sdomZones?.length ||
-      titreEtape.sdomZones?.some(
-        (elem, index) => elem !== sdomZonesIds.data[index]
-      )
-    ) {
-      console.info(
-        `nouvelles zones du sdom pour l'étape ${
-          titreEtape.id
-        }. Anciennes: ${JSON.stringify(
-          titreEtape.sdomZones
-        )}, nouvelles: ${JSON.stringify(sdomZonesIds.data)}`
-      )
-      await knex.raw(
-        `update titres_etapes set sdom_zones = '["${sdomZonesIds.data.join(
-          '","'
-        )}"]' where id ='${titreEtape.id}'`
-      )
+    if (sdomZonesIds.data.length !== titreEtape.sdomZones?.length || titreEtape.sdomZones?.some((elem, index) => elem !== sdomZonesIds.data[index])) {
+      console.info(`nouvelles zones du sdom pour l'étape ${titreEtape.id}. Anciennes: ${JSON.stringify(titreEtape.sdomZones)}, nouvelles: ${JSON.stringify(sdomZonesIds.data)}`)
+      await knex.raw(`update titres_etapes set sdom_zones = '["${sdomZonesIds.data.join('","')}"]' where id ='${titreEtape.id}'`)
     }
   }
 }
 
-async function intersectForets(
-  multipolygonGeojson: Feature,
-  titreEtape: Pick<ITitreEtape, 'forets' | 'id'>
-) {
+async function intersectForets(multipolygonGeojson: Feature, titreEtape: Pick<ITitreEtape, 'forets' | 'id'>) {
   if (!titreEtape.forets) {
     throw new Error('les forêts de l’étape ne sont pas chargées')
   }
@@ -116,28 +80,20 @@ async function intersectForets(
     if (!titreEtape.forets.some(({ id }) => id === foretId)) {
       await TitresForets.query().insert({
         titreEtapeId: titreEtape.id,
-        foretId
+        foretId,
       })
       console.info(`Ajout de la forêt ${foretId} sur l'étape ${titreEtape.id}`)
     }
   }
   for (const foret of titreEtape.forets) {
     if (!foretIds.data.some(id => id === foret.id)) {
-      await TitresForets.query()
-        .delete()
-        .where('titreEtapeId', titreEtape.id)
-        .andWhere('foretId', foret.id)
-      console.info(
-        `Suppression de la forêt ${foret.id} sur l'étape ${titreEtape.id}`
-      )
+      await TitresForets.query().delete().where('titreEtapeId', titreEtape.id).andWhere('foretId', foret.id)
+      console.info(`Suppression de la forêt ${foret.id} sur l'étape ${titreEtape.id}`)
     }
   }
 }
 
-async function intersectCommunes(
-  multipolygonGeojson: Feature,
-  titreEtape: Pick<ITitreEtape, 'communes' | 'id'>
-) {
+async function intersectCommunes(multipolygonGeojson: Feature, titreEtape: Pick<ITitreEtape, 'communes' | 'id'>) {
   if (!titreEtape.communes) {
     throw new Error('les communes de l’étape ne sont pas chargées')
   }
@@ -153,60 +109,37 @@ async function intersectCommunes(
       await TitresCommunes.query().insert({
         titreEtapeId: titreEtape.id,
         communeId: commune.id,
-        surface: commune.surface
+        surface: commune.surface,
       })
-      console.info(
-        `Ajout de la commune ${commune.id} sur l'étape ${titreEtape.id}`
-      )
+      console.info(`Ajout de la commune ${commune.id} sur l'étape ${titreEtape.id}`)
     } else if (oldCommune.surface !== commune.surface) {
       await TitresCommunes.query()
         .patch({
-          surface: commune.surface
+          surface: commune.surface,
         })
         .where('titreEtapeId', titreEtape.id)
         .andWhere('communeId', commune.id)
-      console.info(
-        `Mise à jour de la surface de la commune ${commune.id} sur l'étape ${titreEtape.id} (${oldCommune.surface} -> ${commune.surface})`
-      )
+      console.info(`Mise à jour de la surface de la commune ${commune.id} sur l'étape ${titreEtape.id} (${oldCommune.surface} -> ${commune.surface})`)
     }
   }
   for (const commune of titreEtape.communes) {
     if (!communes.data.some(({ id }) => id === commune.id)) {
-      await TitresCommunes.query()
-        .delete()
-        .where('titreEtapeId', titreEtape.id)
-        .andWhere('communeId', commune.id)
-      console.info(
-        `Suppression de la commune ${commune.id} sur l'étape ${titreEtape.id}`
-      )
+      await TitresCommunes.query().delete().where('titreEtapeId', titreEtape.id).andWhere('communeId', commune.id)
+      console.info(`Suppression de la commune ${commune.id} sur l'étape ${titreEtape.id}`)
     }
   }
 }
 
-async function intersectSecteursMaritime(
-  multipolygonGeojson: Feature,
-  titreEtape: Pick<ITitreEtape, 'secteursMaritime' | 'id'>
-) {
-  const secteurMaritimeIds = await geojsonIntersectsSecteursMaritime(
-    multipolygonGeojson
-  )
+async function intersectSecteursMaritime(multipolygonGeojson: Feature, titreEtape: Pick<ITitreEtape, 'secteursMaritime' | 'id'>) {
+  const secteurMaritimeIds = await geojsonIntersectsSecteursMaritime(multipolygonGeojson)
 
   if (secteurMaritimeIds.fallback) {
     console.warn(`utilisation du fallback pour l'étape ${titreEtape.id}`)
   }
 
-  const secteurMaritimeNew: SecteursMaritimes[] = secteurMaritimeIds.data
-    .map(getSecteurMaritime)
-    .sort()
-  if (
-    titreEtape.secteursMaritime?.length !== secteurMaritimeNew.length ||
-    titreEtape.secteursMaritime.some(
-      (value, index) => value !== secteurMaritimeNew[index]
-    )
-  ) {
-    console.info(
-      `Mise à jour des secteurs maritimes sur l'étape ${titreEtape.id}, ancien: '${titreEtape.secteursMaritime}', nouveaux: '${secteurMaritimeNew}'`
-    )
+  const secteurMaritimeNew: SecteursMaritimes[] = secteurMaritimeIds.data.map(getSecteurMaritime).sort()
+  if (titreEtape.secteursMaritime?.length !== secteurMaritimeNew.length || titreEtape.secteursMaritime.some((value, index) => value !== secteurMaritimeNew[index])) {
+    console.info(`Mise à jour des secteurs maritimes sur l'étape ${titreEtape.id}, ancien: '${titreEtape.secteursMaritime}', nouveaux: '${secteurMaritimeNew}'`)
     await knex('titres_etapes')
       .update({ secteursMaritime: JSON.stringify(secteurMaritimeNew) })
       .where('id', titreEtape.id)
diff --git a/packages/api/src/business/processes/titres-etapes-heritage-contenu-update.ts b/packages/api/src/business/processes/titres-etapes-heritage-contenu-update.ts
index 099cad1b3..2a13ac06a 100644
--- a/packages/api/src/business/processes/titres-etapes-heritage-contenu-update.ts
+++ b/packages/api/src/business/processes/titres-etapes-heritage-contenu-update.ts
@@ -1,21 +1,10 @@
-import {
-  DemarcheId,
-  IContenu,
-  IHeritageContenu,
-  ITitreEtape
-} from '../../types.js'
+import { DemarcheId, IContenu, IHeritageContenu, ITitreEtape } from '../../types.js'
 
 import { titreEtapeUpdate } from '../../database/queries/titres-etapes.js'
 import { titreEtapeHeritageContenuFind } from '../utils/titre-etape-heritage-contenu-find.js'
-import {
-  titreEtapesSortAscByOrdre,
-  titreEtapesSortDescByOrdre
-} from '../utils/titre-etapes-sort.js'
+import { titreEtapesSortAscByOrdre, titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort.js'
 import { UserNotNull } from 'camino-common/src/roles'
-import {
-  getSections,
-  Section
-} from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
+import { getSections, Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
 import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
 import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts.js'
@@ -25,10 +14,7 @@ import { knex } from '../../knex.js'
 import { DeepReadonly } from 'camino-common/src/typescript-tools.js'
 import { DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts.js'
 
-export const getDemarches = async (
-  demarcheId?: DemarcheId,
-  titreId?: string
-) => {
+export const getDemarches = async (demarcheId?: DemarcheId, titreId?: string) => {
   const etapes: {
     rows: {
       titre_id: string
@@ -59,17 +45,7 @@ export const getDemarches = async (
 
   return etapes.rows.reduce<{
     [key: DemarcheId]: {
-      etapes: Pick<
-        ITitreEtape,
-        | 'id'
-        | 'ordre'
-        | 'typeId'
-        | 'statutId'
-        | 'date'
-        | 'contenu'
-        | 'heritageContenu'
-        | 'titreDemarcheId'
-      >[]
+      etapes: Pick<ITitreEtape, 'id' | 'ordre' | 'typeId' | 'statutId' | 'date' | 'contenu' | 'heritageContenu' | 'titreDemarcheId'>[]
       id: DemarcheId
       typeId: DemarcheTypeId
       titreTypeId: TitreTypeId
@@ -84,7 +60,7 @@ export const getDemarches = async (
         titreId: row.titre_id,
         titreTypeId: row.titre_type_id,
         typeId: row.demarche_type_id,
-        statutId: row.demarche_statut_id
+        statutId: row.demarche_statut_id,
       }
     }
 
@@ -96,16 +72,13 @@ export const getDemarches = async (
       date: row.date,
       contenu: row.contenu,
       heritageContenu: row.heritage_contenu,
-      titreDemarcheId: row.demarche_id
+      titreDemarcheId: row.demarche_id,
     })
 
     return acc
   }, {})
 }
-export const titresEtapesHeritageContenuUpdate = async (
-  user: UserNotNull,
-  demarcheId?: DemarcheId
-) => {
+export const titresEtapesHeritageContenuUpdate = async (user: UserNotNull, demarcheId?: DemarcheId) => {
   console.info()
   console.info('héritage des contenus des étapes…')
 
@@ -122,47 +95,31 @@ export const titresEtapesHeritageContenuUpdate = async (
       const etapeSectionsDictionary = titreDemarche.etapes.reduce<{
         [etapeId: string]: DeepReadonly<Section>[]
       }>((acc, e) => {
-        acc[e.id] = getSections(
-          titreDemarche.titreTypeId,
-          titreDemarche.typeId,
-          e.typeId
-        )
+        acc[e.id] = getSections(titreDemarche.titreTypeId, titreDemarche.typeId, e.typeId)
 
         return acc
       }, {})
-      const titreEtapes = titreEtapesSortAscByOrdre(
-        titreDemarche.etapes?.filter(e => etapeSectionsDictionary[e.id]) ?? []
-      )
+      const titreEtapes = titreEtapesSortAscByOrdre(titreDemarche.etapes?.filter(e => etapeSectionsDictionary[e.id]) ?? [])
 
       if (titreEtapes) {
         for (let index = 0; index < titreEtapes.length; index++) {
           const titreEtape = titreEtapes[index]
-          const titreEtapesFiltered = titreEtapesSortDescByOrdre(
-            titreEtapes.slice(0, index)
-          )
-
-          const { contenu, heritageContenu, hasChanged } =
-            titreEtapeHeritageContenuFind(
-              titreEtapesFiltered,
-              titreEtape,
-              etapeSectionsDictionary
-            )
+          const titreEtapesFiltered = titreEtapesSortDescByOrdre(titreEtapes.slice(0, index))
+
+          const { contenu, heritageContenu, hasChanged } = titreEtapeHeritageContenuFind(titreEtapesFiltered, titreEtape, etapeSectionsDictionary)
 
           if (hasChanged) {
             await titreEtapeUpdate(
               titreEtape.id,
               {
                 contenu,
-                heritageContenu
+                heritageContenu,
               },
               user,
               titreDemarche.titreId
             )
 
-            console.info(
-              'titre / démarche / étape : héritage du contenu (mise à jour) ->',
-              titreEtape.id
-            )
+            console.info('titre / démarche / étape : héritage du contenu (mise à jour) ->', titreEtape.id)
 
             titresEtapesIdsUpdated.push(titreEtape.id)
 
diff --git a/packages/api/src/business/processes/titres-etapes-heritage-props-update.ts b/packages/api/src/business/processes/titres-etapes-heritage-props-update.ts
index 2c7918a2f..9fa62529c 100644
--- a/packages/api/src/business/processes/titres-etapes-heritage-props-update.ts
+++ b/packages/api/src/business/processes/titres-etapes-heritage-props-update.ts
@@ -7,10 +7,7 @@ import { userSuper } from '../../database/user-super.js'
 import { titreEtapesSortAscByOrdre } from '../utils/titre-etapes-sort.js'
 import { UserNotNull } from 'camino-common/src/roles'
 
-export const titresEtapesHeritagePropsUpdate = async (
-  user: UserNotNull,
-  titresDemarchesIds?: string[]
-) => {
+export const titresEtapesHeritagePropsUpdate = async (user: UserNotNull, titresDemarchesIds?: string[]) => {
   console.info()
   console.info('héritage des propriétés des étapes…')
 
@@ -22,9 +19,9 @@ export const titresEtapesHeritagePropsUpdate = async (
           type: { id: {} },
           titulaires: { id: {} },
           amodiataires: { id: {} },
-          points: { references: { id: {} } }
-        }
-      }
+          points: { references: { id: {} } },
+        },
+      },
     },
     userSuper
   )
@@ -36,24 +33,18 @@ export const titresEtapesHeritagePropsUpdate = async (
   const titresEtapesIdsUpdated = [] as string[]
 
   for (const titreDemarche of titresDemarches) {
-    const titreEtapes = titreEtapesSortAscByOrdre(
-      titreDemarche.etapes?.filter(e => e.type!.fondamentale) ?? []
-    )
+    const titreEtapes = titreEtapesSortAscByOrdre(titreDemarche.etapes?.filter(e => e.type!.fondamentale) ?? [])
 
     for (let index = 0; index < titreEtapes.length; index++) {
       const titreEtape: ITitreEtape = titreEtapes[index]
       const titreEtapePrecedente = index > 0 ? titreEtapes[index - 1] : null
 
-      const { hasChanged, titreEtape: newTitreEtape } =
-        titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
+      const { hasChanged, titreEtape: newTitreEtape } = titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
 
       if (hasChanged) {
         await titreEtapeUpsert(newTitreEtape, user, titreDemarche.titreId)
 
-        console.info(
-          'titre / démarche / étape : héritage des propriétés (mise à jour) ->',
-          titreEtape.id
-        )
+        console.info('titre / démarche / étape : héritage des propriétés (mise à jour) ->', titreEtape.id)
 
         titresEtapesIdsUpdated.push(titreEtape.id)
 
diff --git a/packages/api/src/business/processes/titres-etapes-ordre-update.test.ts b/packages/api/src/business/processes/titres-etapes-ordre-update.test.ts
index 5d9f99046..b8eaffc56 100644
--- a/packages/api/src/business/processes/titres-etapes-ordre-update.test.ts
+++ b/packages/api/src/business/processes/titres-etapes-ordre-update.test.ts
@@ -5,21 +5,21 @@ import TitresDemarches from '../../database/models/titres-demarches.js'
 import { userSuper } from '../../database/user-super.js'
 import { vi, afterEach, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres-etapes', () => ({
-  titreEtapeUpdate: vi.fn().mockResolvedValue(true)
+  titreEtapeUpdate: vi.fn().mockResolvedValue(true),
 }))
 
 const titresDemarchesEtapes = {
   '': {
     etapes: [
       { ordre: 1, date: '1988-03-06' },
-      { ordre: 1, date: '1988-03-08' }
+      { ordre: 1, date: '1988-03-08' },
     ],
-    titre: null
-  } as TitresDemarches
+    titre: null,
+  } as TitresDemarches,
 }
 
 const titresDemarchesEtapesVides = {
-  '': { etapes: [], titre: { typeId: '' } } as unknown as TitresDemarches
+  '': { etapes: [], titre: { typeId: '' } } as unknown as TitresDemarches,
 }
 
 console.info = vi.fn()
@@ -28,28 +28,19 @@ afterEach(() => {
 })
 describe('ordre des étapes', () => {
   test("met à jour l'ordre de deux étapes", async () => {
-    const titresEtapesUpdated = await titresEtapesOrdreUpdateVisibleForTesting(
-      userSuper,
-      titresDemarchesEtapes
-    )
+    const titresEtapesUpdated = await titresEtapesOrdreUpdateVisibleForTesting(userSuper, titresDemarchesEtapes)
     expect(titresEtapesUpdated.length).toEqual(1)
     expect(titreEtapeUpdate).toHaveBeenCalled()
   })
 
   test("ne met aucun ordre d'étape à jour", async () => {
-    const titresEtapesUpdated = await titresEtapesOrdreUpdateVisibleForTesting(
-      userSuper,
-      titresDemarchesEtapesVides
-    )
+    const titresEtapesUpdated = await titresEtapesOrdreUpdateVisibleForTesting(userSuper, titresDemarchesEtapesVides)
     expect(titresEtapesUpdated.length).toEqual(0)
     expect(titreEtapeUpdate).not.toHaveBeenCalled()
   })
 
   test("ne met aucun ordre d'étape à jour (démarche sans étape)", async () => {
-    const titresEtapesUpdated = await titresEtapesOrdreUpdateVisibleForTesting(
-      userSuper,
-      {}
-    )
+    const titresEtapesUpdated = await titresEtapesOrdreUpdateVisibleForTesting(userSuper, {})
 
     expect(titresEtapesUpdated.length).toEqual(0)
     expect(titreEtapeUpdate).not.toHaveBeenCalled()
diff --git a/packages/api/src/business/processes/titres-etapes-ordre-update.ts b/packages/api/src/business/processes/titres-etapes-ordre-update.ts
index f36f6c182..7786fcdee 100644
--- a/packages/api/src/business/processes/titres-etapes-ordre-update.ts
+++ b/packages/api/src/business/processes/titres-etapes-ordre-update.ts
@@ -7,10 +7,7 @@ import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
 import { getDemarches } from './titres-etapes-heritage-contenu-update.js'
 import { UserNotNull } from 'camino-common/src/roles.js'
 
-export const titresEtapesOrdreUpdate = async (
-  user: UserNotNull,
-  demarcheId?: DemarcheId
-) => {
+export const titresEtapesOrdreUpdate = async (user: UserNotNull, demarcheId?: DemarcheId) => {
   console.info()
   console.info('ordre des étapes…')
 
@@ -23,16 +20,7 @@ export const titresEtapesOrdreUpdateVisibleForTesting = async (
   user: UserNotNull,
   titresDemarches: {
     [key: DemarcheId]: {
-      etapes: Pick<
-        ITitreEtape,
-        | 'id'
-        | 'ordre'
-        | 'typeId'
-        | 'statutId'
-        | 'date'
-        | 'contenu'
-        | 'titreDemarcheId'
-      >[]
+      etapes: Pick<ITitreEtape, 'id' | 'ordre' | 'typeId' | 'statutId' | 'date' | 'contenu' | 'titreDemarcheId'>[]
       id: DemarcheId
       typeId: DemarcheTypeId
       titreTypeId: TitreTypeId
@@ -44,26 +32,13 @@ export const titresEtapesOrdreUpdateVisibleForTesting = async (
 
   for (const titreDemarche of Object.values(titresDemarches)) {
     if (titreDemarche.etapes) {
-      const etapes = titreEtapesSortAscByDate(
-        titreDemarche.etapes,
-        titreDemarche.id,
-        titreDemarche.typeId,
-        titreDemarche.titreTypeId
-      )
+      const etapes = titreEtapesSortAscByDate(titreDemarche.etapes, titreDemarche.id, titreDemarche.typeId, titreDemarche.titreTypeId)
       for (let index = 0; index < etapes.length; index++) {
         const titreEtape = etapes[index]
         if (titreEtape.ordre !== index + 1) {
-          await titreEtapeUpdate(
-            titreEtape.id,
-            { ordre: index + 1 },
-            user,
-            titreDemarche.titreId
-          )
+          await titreEtapeUpdate(titreEtape.id, { ordre: index + 1 }, user, titreDemarche.titreId)
 
-          console.info(
-            'titre / démarche / étape : ordre (mise à jour) ->',
-            `${titreEtape.id} : ${index + 1}`
-          )
+          console.info('titre / démarche / étape : ordre (mise à jour) ->', `${titreEtape.id} : ${index + 1}`)
 
           titresEtapesIdsUpdated.push(titreEtape.id)
         }
diff --git a/packages/api/src/business/processes/titres-phases-update.test.ts b/packages/api/src/business/processes/titres-phases-update.test.ts
index 69cf863c2..bff844111 100644
--- a/packages/api/src/business/processes/titres-phases-update.test.ts
+++ b/packages/api/src/business/processes/titres-phases-update.test.ts
@@ -1,26 +1,16 @@
 import { titresPhasesUpdate } from './titres-phases-update.js'
-import {
-  titrePhasesUpsert,
-  titrePhasesDelete
-} from '../../database/queries/titres-phases.js'
+import { titrePhasesUpsert, titrePhasesDelete } from '../../database/queries/titres-phases.js'
 import { titresGet } from '../../database/queries/titres.js'
 
-import {
-  titresSansPhase,
-  titresUnePhase,
-  titresPhaseASupprimer,
-  titresUnePhaseSansChangement,
-  titresUnePhaseMiseAJour,
-  titrePhase
-} from './__mocks__/titres-phases-update-titres.js'
+import { titresSansPhase, titresUnePhase, titresPhaseASupprimer, titresUnePhaseSansChangement, titresUnePhaseMiseAJour, titrePhase } from './__mocks__/titres-phases-update-titres.js'
 import { vi, afterEach, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres-phases', () => ({
   titrePhasesUpsert: vi.fn().mockResolvedValue(true),
-  titrePhasesDelete: vi.fn().mockResolvedValue(true)
+  titrePhasesDelete: vi.fn().mockResolvedValue(true),
 }))
 
 vi.mock('../../database/queries/titres', () => ({
-  titresGet: vi.fn()
+  titresGet: vi.fn(),
 }))
 
 const titresGetMock = vi.mocked(titresGet, true)
@@ -34,8 +24,7 @@ describe("phases d'un titre", () => {
   test('met à jour un titre dont une phase est créée', async () => {
     titresGetMock.mockResolvedValue(titresUnePhase)
 
-    const [titresPhasesUpdated, titresPhasesDeleted] =
-      await titresPhasesUpdate()
+    const [titresPhasesUpdated, titresPhasesDeleted] = await titresPhasesUpdate()
 
     expect(titresPhasesUpdated.length).toEqual(1)
     expect(titresPhasesDeleted.length).toEqual(0)
@@ -45,8 +34,7 @@ describe("phases d'un titre", () => {
 
   test('met à jour un titre dont une phase est modifiée', async () => {
     titresGetMock.mockResolvedValue(titresUnePhaseMiseAJour)
-    const [titresPhasesUpdated, titresPhasesDeleted] =
-      await titresPhasesUpdate()
+    const [titresPhasesUpdated, titresPhasesDeleted] = await titresPhasesUpdate()
 
     expect(titresPhasesUpdated.length).toEqual(1)
     expect(titresPhasesDeleted.length).toEqual(0)
@@ -56,21 +44,17 @@ describe("phases d'un titre", () => {
 
   test('met à jour un titre dont une phase est supprimée', async () => {
     titresGetMock.mockResolvedValue(titresPhaseASupprimer)
-    const [titresPhasesUpdated, titresPhasesDeleted] =
-      await titresPhasesUpdate()
+    const [titresPhasesUpdated, titresPhasesDeleted] = await titresPhasesUpdate()
 
     expect(titresPhasesUpdated.length).toEqual(0)
     expect(titresPhasesDeleted.length).toEqual(1)
 
-    expect(titrePhasesDelete).toHaveBeenCalledWith([
-      'h-cx-courdemanges-1988-oct01'
-    ])
+    expect(titrePhasesDelete).toHaveBeenCalledWith(['h-cx-courdemanges-1988-oct01'])
   })
 
   test("ne met pas à jour un titre si aucune phase n'est modifiée", async () => {
     titresGetMock.mockResolvedValue(titresUnePhaseSansChangement)
-    const [titresPhasesUpdated, titresPhasesDeleted] =
-      await titresPhasesUpdate()
+    const [titresPhasesUpdated, titresPhasesDeleted] = await titresPhasesUpdate()
 
     expect(titresPhasesUpdated.length).toEqual(0)
     expect(titresPhasesDeleted.length).toEqual(0)
@@ -81,8 +65,7 @@ describe("phases d'un titre", () => {
 
   test("ne met pas à jour un titre si aucune phase n'existe", async () => {
     titresGetMock.mockResolvedValue(titresSansPhase)
-    const [titresPhasesUpdated, titresPhasesDeleted] =
-      await titresPhasesUpdate()
+    const [titresPhasesUpdated, titresPhasesDeleted] = await titresPhasesUpdate()
 
     expect(titresPhasesUpdated.length).toEqual(0)
     expect(titresPhasesDeleted.length).toEqual(0)
diff --git a/packages/api/src/business/processes/titres-phases-update.ts b/packages/api/src/business/processes/titres-phases-update.ts
index 2f8308b65..4f842163b 100644
--- a/packages/api/src/business/processes/titres-phases-update.ts
+++ b/packages/api/src/business/processes/titres-phases-update.ts
@@ -1,19 +1,13 @@
 import { ITitrePhase } from '../../types.js'
 
-import {
-  titrePhasesUpsert,
-  titrePhasesDelete
-} from '../../database/queries/titres-phases.js'
+import { titrePhasesUpsert, titrePhasesDelete } from '../../database/queries/titres-phases.js'
 import { titrePhasesFind } from '../rules/titre-phases-find.js'
 import { titresGet } from '../../database/queries/titres.js'
 import { userSuper } from '../../database/user-super.js'
 import { getCurrent } from 'camino-common/src/date.js'
 
 // retourne une phase parmi les titrePhases en fonction de son id
-const titrePhaseEqualFind = (
-  titreDemarcheId: string,
-  titrePhases: ITitrePhase[]
-) => titrePhases.find(tp => tp.titreDemarcheId === titreDemarcheId)
+const titrePhaseEqualFind = (titreDemarcheId: string, titrePhases: ITitrePhase[]) => titrePhases.find(tp => tp.titreDemarcheId === titreDemarcheId)
 
 type TitrePhaseKey = keyof ITitrePhase
 type TitrePhaseValeur = ITitrePhase[TitrePhaseKey]
@@ -22,10 +16,7 @@ type IPhasePropChange = { [id: string]: [TitrePhaseValeur, TitrePhaseValeur] }
 
 // retourne les propriétés de la phase existante
 // qui sont différentes de la nouvelle phase
-const titrePhasePropsChangedFind = (
-  titrePhase: ITitrePhase,
-  titrePhaseOld: ITitrePhase
-) =>
+const titrePhasePropsChangedFind = (titrePhase: ITitrePhase, titrePhaseOld: ITitrePhase) =>
   Object.keys(titrePhase).reduce((res: IPhasePropChange, key: string) => {
     const valueOld = titrePhaseOld[key as TitrePhaseKey]
     const valueNew = titrePhase[key as TitrePhaseKey]
@@ -38,15 +29,9 @@ const titrePhasePropsChangedFind = (
     return res
   }, {} as IPhasePropChange)
 
-const titrePhasesUpdatedFind = (
-  titresPhasesOld: ITitrePhase[],
-  titrePhases: ITitrePhase[]
-) =>
+const titrePhasesUpdatedFind = (titresPhasesOld: ITitrePhase[], titrePhases: ITitrePhase[]) =>
   titrePhases.reduce((res: ITitrePhase[], titrePhase) => {
-    const titrePhaseOld = titrePhaseEqualFind(
-      titrePhase.titreDemarcheId,
-      titresPhasesOld
-    )
+    const titrePhaseOld = titrePhaseEqualFind(titrePhase.titreDemarcheId, titresPhasesOld)
 
     // si la phase n'existe pas
     // on l'ajoute à l'accumulateur
@@ -56,10 +41,7 @@ const titrePhasesUpdatedFind = (
       return res
     }
 
-    const titrePhasePropsChanged = titrePhasePropsChangedFind(
-      titrePhase,
-      titrePhaseOld
-    )
+    const titrePhasePropsChanged = titrePhasePropsChangedFind(titrePhase, titrePhaseOld)
 
     // si la phase existe et est modifiée
     if (Object.keys(titrePhasePropsChanged).length) {
@@ -69,15 +51,9 @@ const titrePhasesUpdatedFind = (
     return res
   }, [])
 
-const titrePhasesIdDeletedFind = (
-  titrePhasesOld: ITitrePhase[],
-  titresPhases: ITitrePhase[]
-) =>
+const titrePhasesIdDeletedFind = (titrePhasesOld: ITitrePhase[], titresPhases: ITitrePhase[]) =>
   titrePhasesOld.reduce((res: string[], titrePhaseOld) => {
-    const titrePhase = titrePhaseEqualFind(
-      titrePhaseOld.titreDemarcheId,
-      titresPhases
-    )
+    const titrePhase = titrePhaseEqualFind(titrePhaseOld.titreDemarcheId, titresPhases)
 
     if (!titrePhase) {
       res.push(titrePhaseOld.titreDemarcheId)
@@ -94,8 +70,8 @@ export const titresPhasesUpdate = async (titresIds?: string[]) => {
     { ids: titresIds },
     {
       fields: {
-        demarches: { phase: { id: {} }, etapes: { points: { id: {} } } }
-      }
+        demarches: { phase: { id: {} }, etapes: { points: { id: {} } } },
+      },
     },
     userSuper
   )
@@ -122,36 +98,22 @@ export const titresPhasesUpdate = async (titresIds?: string[]) => {
     // créées à partir des démarches
     const titrePhases = titrePhasesFind(demarches, aujourdhui, titre.typeId)
 
-    const titrePhasesToUpdate = titrePhasesUpdatedFind(
-      titrePhasesOld,
-      titrePhases
-    )
+    const titrePhasesToUpdate = titrePhasesUpdatedFind(titrePhasesOld, titrePhases)
 
     if (titrePhasesToUpdate.length) {
       await titrePhasesUpsert(titrePhasesToUpdate)
 
-      console.info(
-        'titre / démarche / phases (mise à jour) ->',
-        JSON.stringify(titrePhasesToUpdate)
-      )
+      console.info('titre / démarche / phases (mise à jour) ->', JSON.stringify(titrePhasesToUpdate))
 
-      titresPhasesIdsUpdated.push(
-        ...titrePhasesToUpdate.map(p => p.titreDemarcheId)
-      )
+      titresPhasesIdsUpdated.push(...titrePhasesToUpdate.map(p => p.titreDemarcheId))
     }
 
-    const titrePhasesToDeleteIds = titrePhasesIdDeletedFind(
-      titrePhasesOld,
-      titrePhases
-    )
+    const titrePhasesToDeleteIds = titrePhasesIdDeletedFind(titrePhasesOld, titrePhases)
 
     if (titrePhasesToDeleteIds.length) {
       await titrePhasesDelete(titrePhasesToDeleteIds)
 
-      console.info(
-        'titre / démarche / phases (suppression) ->',
-        titrePhasesToDeleteIds.join(', ')
-      )
+      console.info('titre / démarche / phases (suppression) ->', titrePhasesToDeleteIds.join(', '))
 
       titresPhasesIdsDeleted.push(...titrePhasesToDeleteIds)
     }
diff --git a/packages/api/src/business/processes/titres-points-references-create.test.ts b/packages/api/src/business/processes/titres-points-references-create.test.ts
index 6b86ac2d2..b501243ce 100644
--- a/packages/api/src/business/processes/titres-points-references-create.test.ts
+++ b/packages/api/src/business/processes/titres-points-references-create.test.ts
@@ -1,13 +1,10 @@
 import { titresPointsReferencesCreate } from './titres-points-references-create.js'
-import {
-  titresPointsGet,
-  titrePointReferenceCreate
-} from '../../database/queries/titres-points.js'
+import { titresPointsGet, titrePointReferenceCreate } from '../../database/queries/titres-points.js'
 import TitresPoints from '../../database/models/titres-points.js'
 import { vi, afterEach, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres-points', () => ({
   titrePointReferenceCreate: vi.fn().mockResolvedValue(true),
-  titresPointsGet: vi.fn()
+  titresPointsGet: vi.fn(),
 }))
 
 const titresPointsGetMock = vi.mocked(titresPointsGet, true)
@@ -24,8 +21,8 @@ describe("références des points d'un titre", () => {
       {
         id: 'point-id-2',
         coordonnees: { x: 0.1, y: 0.2 },
-        references: [{}]
-      }
+        references: [{}],
+      },
     ] as TitresPoints[])
 
     const pointsReferencesCreated = await titresPointsReferencesCreate()
diff --git a/packages/api/src/business/processes/titres-points-references-create.ts b/packages/api/src/business/processes/titres-points-references-create.ts
index 1b6d790bf..926f02024 100644
--- a/packages/api/src/business/processes/titres-points-references-create.ts
+++ b/packages/api/src/business/processes/titres-points-references-create.ts
@@ -1,9 +1,6 @@
 import { ITitrePoint, ITitrePointReference } from '../../types.js'
 
-import {
-  titrePointReferenceCreate,
-  titresPointsGet
-} from '../../database/queries/titres-points.js'
+import { titrePointReferenceCreate, titresPointsGet } from '../../database/queries/titres-points.js'
 
 const titreEtapePointsReferencesNewFind = (titrePoints: ITitrePoint[]) =>
   titrePoints.reduce((acc: ITitrePointReference[], titrePoint) => {
@@ -14,8 +11,8 @@ const titreEtapePointsReferencesNewFind = (titrePoints: ITitrePoint[]) =>
         geoSystemeId: '4326',
         coordonnees: {
           x: titrePoint.coordonnees.x,
-          y: titrePoint.coordonnees.y
-        }
+          y: titrePoint.coordonnees.y,
+        },
       })
     }
 
@@ -33,10 +30,7 @@ export const titresPointsReferencesCreate = async () => {
 
   for (const r of pointsReferencesNew) {
     await titrePointReferenceCreate(r)
-    console.info(
-      'titre / démarche / étape / point / référence (création) ->',
-      JSON.stringify(r.id)
-    )
+    console.info('titre / démarche / étape / point / référence (création) ->', JSON.stringify(r.id))
 
     pointsReferencesCreated.push(r.id)
   }
diff --git a/packages/api/src/business/processes/titres-props-etapes-ids-update.test.ts b/packages/api/src/business/processes/titres-props-etapes-ids-update.test.ts
index e698a3cf7..aeb5f1714 100644
--- a/packages/api/src/business/processes/titres-props-etapes-ids-update.test.ts
+++ b/packages/api/src/business/processes/titres-props-etapes-ids-update.test.ts
@@ -7,11 +7,11 @@ import Titres from '../../database/models/titres.js'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres', () => ({
   titreUpdate: vi.fn().mockResolvedValue(true),
-  titresGet: vi.fn()
+  titresGet: vi.fn(),
 }))
 
 vi.mock('../rules/titre-prop-etape-find', () => ({
-  titrePropTitreEtapeFind: vi.fn()
+  titrePropTitreEtapeFind: vi.fn(),
 }))
 
 const titresGetMock = vi.mocked(titresGet, true)
@@ -22,11 +22,9 @@ console.info = vi.fn()
 describe("propriétés (étape) d'un titre", () => {
   test('trouve 8 propriétés dans les étapes', async () => {
     titrePropTitreEtapeFindMock.mockReturnValue({
-      id: 'etape-id'
+      id: 'etape-id',
     } as ITitreEtape)
-    titresGetMock.mockResolvedValue([
-      { propsTitreEtapesIds: { titulaires: null } } as unknown as Titres
-    ])
+    titresGetMock.mockResolvedValue([{ propsTitreEtapesIds: { titulaires: null } } as unknown as Titres])
 
     const titresUpdatedRequests = await titresPropsEtapesIdsUpdate()
 
@@ -36,9 +34,7 @@ describe("propriétés (étape) d'un titre", () => {
 
   test("supprime un id d'étape qui est null dans les étapes", async () => {
     titrePropTitreEtapeFindMock.mockReturnValue(null)
-    titresGetMock.mockResolvedValue([
-      { propsTitreEtapesIds: { titulaires: null } } as unknown as Titres
-    ])
+    titresGetMock.mockResolvedValue([{ propsTitreEtapesIds: { titulaires: null } } as unknown as Titres])
 
     const titresUpdatedRequests = await titresPropsEtapesIdsUpdate()
 
@@ -47,9 +43,7 @@ describe("propriétés (étape) d'un titre", () => {
 
   test('ne trouve pas de propriétés dans les étapes', async () => {
     titrePropTitreEtapeFindMock.mockReturnValue(null)
-    titresGetMock.mockResolvedValue([
-      { propsTitreEtapesIds: {} } as unknown as Titres
-    ])
+    titresGetMock.mockResolvedValue([{ propsTitreEtapesIds: {} } as unknown as Titres])
 
     const titresUpdatedRequests = await titresPropsEtapesIdsUpdate()
 
diff --git a/packages/api/src/business/processes/titres-props-etapes-ids-update.ts b/packages/api/src/business/processes/titres-props-etapes-ids-update.ts
index fec780da4..ad8efceeb 100644
--- a/packages/api/src/business/processes/titres-props-etapes-ids-update.ts
+++ b/packages/api/src/business/processes/titres-props-etapes-ids-update.ts
@@ -18,10 +18,10 @@ export const titresPropsEtapesIdsUpdate = async (titresIds?: string[]) => {
           etapes: {
             points: { id: {} },
             titulaires: { id: {} },
-            amodiataires: { id: {} }
-          }
-        }
-      }
+            amodiataires: { id: {} },
+          },
+        },
+      },
     },
     userSuper
   )
@@ -29,32 +29,20 @@ export const titresPropsEtapesIdsUpdate = async (titresIds?: string[]) => {
   const titresPropsEtapesIdsUpdated = [] as string[]
 
   for (const titre of titres) {
-    const propsTitreEtapesIds = propsTitreEtapeIdKeys.reduce(
-      (propsTitreEtapesIds: IPropsTitreEtapesIds, propId) => {
-        const titreEtape = titrePropTitreEtapeFind(
-          propId,
-          titre.demarches!,
-          titre.titreStatutId!
-        )
+    const propsTitreEtapesIds = propsTitreEtapeIdKeys.reduce((propsTitreEtapesIds: IPropsTitreEtapesIds, propId) => {
+      const titreEtape = titrePropTitreEtapeFind(propId, titre.demarches!, titre.titreStatutId!)
 
-        if (titreEtape) {
-          propsTitreEtapesIds[propId] = titreEtape.id
-        }
+      if (titreEtape) {
+        propsTitreEtapesIds[propId] = titreEtape.id
+      }
 
-        return propsTitreEtapesIds
-      },
-      {}
-    )
+      return propsTitreEtapesIds
+    }, {})
 
     if (objectsDiffer(propsTitreEtapesIds, titre.propsTitreEtapesIds)) {
       await titreUpdate(titre.id, { propsTitreEtapesIds })
 
-      console.info(
-        "titre : ids d'étapes des props (mise à jour) ->",
-        `${titre.id} : ${JSON.stringify(
-          propsTitreEtapesIds
-        )} | ${JSON.stringify(titre.propsTitreEtapesIds)}`
-      )
+      console.info("titre : ids d'étapes des props (mise à jour) ->", `${titre.id} : ${JSON.stringify(propsTitreEtapesIds)} | ${JSON.stringify(titre.propsTitreEtapesIds)}`)
 
       titresPropsEtapesIdsUpdated.push(titre.id)
     }
diff --git a/packages/api/src/business/processes/titres-public-update.test.ts b/packages/api/src/business/processes/titres-public-update.test.ts
index 1fe0e1cf6..f2908a96e 100644
--- a/packages/api/src/business/processes/titres-public-update.test.ts
+++ b/packages/api/src/business/processes/titres-public-update.test.ts
@@ -1,15 +1,12 @@
 import { titresPublicUpdate } from './titres-public-update.js'
 import { titresGet } from '../../database/queries/titres.js'
 
-import {
-  titresPublicModifie,
-  titresPublicIdentique
-} from './__mocks__/titres-public-update-titres.js'
+import { titresPublicModifie, titresPublicIdentique } from './__mocks__/titres-public-update-titres.js'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres', () => ({
   __esModule: true,
   titreUpdate: vi.fn().mockResolvedValue(true),
-  titresGet: vi.fn()
+  titresGet: vi.fn(),
 }))
 
 const titresGetMock = vi.mocked(titresGet, true)
diff --git a/packages/api/src/business/processes/titres-public-update.ts b/packages/api/src/business/processes/titres-public-update.ts
index 85a4dc436..14eb5d7c0 100644
--- a/packages/api/src/business/processes/titres-public-update.ts
+++ b/packages/api/src/business/processes/titres-public-update.ts
@@ -16,8 +16,8 @@ export const titresPublicUpdate = async (titresIds?: string[]) => {
     { ids: titresIds },
     {
       fields: {
-        demarches: { id: {} }
-      }
+        demarches: { id: {} },
+      },
     },
     userSuper
   )
@@ -27,11 +27,7 @@ export const titresPublicUpdate = async (titresIds?: string[]) => {
   const titresUpdated = [] as string[]
 
   for (const titre of titres) {
-    const { publicLecture, entreprisesLecture } = titrePublicFind(
-      titre.titreStatutId,
-      titre.typeId,
-      titre.demarches || []
-    )
+    const { publicLecture, entreprisesLecture } = titrePublicFind(titre.titreStatutId, titre.typeId, titre.demarches || [])
 
     const patch = {} as ITitrePatch
 
@@ -46,10 +42,7 @@ export const titresPublicUpdate = async (titresIds?: string[]) => {
     if (Object.keys(patch).length) {
       await titreUpdate(titre.id, patch)
 
-      console.info(
-        'titre : public (mise à jour) ->',
-        `${titre.id} : ${JSON.stringify(patch)}`
-      )
+      console.info('titre : public (mise à jour) ->', `${titre.id} : ${JSON.stringify(patch)}`)
 
       titresUpdated.push(titre.id)
     }
diff --git a/packages/api/src/business/processes/titres-slugs-update.test.ts b/packages/api/src/business/processes/titres-slugs-update.test.ts
index 887c7a7c1..c00d778a4 100644
--- a/packages/api/src/business/processes/titres-slugs-update.test.ts
+++ b/packages/api/src/business/processes/titres-slugs-update.test.ts
@@ -6,21 +6,18 @@ import { titresGet } from '../../database/queries/titres.js'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../utils/titre-slug-and-relations-update', () => ({
   __esModule: true,
-  titreSlugAndRelationsUpdate: vi.fn()
+  titreSlugAndRelationsUpdate: vi.fn(),
 }))
 
 vi.mock('../../database/queries/titres', () => ({
   __esModule: true,
   titreIdUpdate: vi.fn().mockResolvedValue(true),
   titreGet: vi.fn().mockResolvedValue(true),
-  titresGet: vi.fn().mockResolvedValue(true)
+  titresGet: vi.fn().mockResolvedValue(true),
 }))
 
 const titresGetMock = vi.mocked(titresGet, true)
-const titreSlugAndRelationsUpdateMock = vi.mocked(
-  titreSlugAndRelationsUpdate,
-  true
-)
+const titreSlugAndRelationsUpdateMock = vi.mocked(titreSlugAndRelationsUpdate, true)
 
 console.info = vi.fn()
 console.error = vi.fn()
@@ -34,7 +31,7 @@ describe("mise à jour du slug d'un titre", () => {
     titresGetMock.mockResolvedValue([titre])
     titreSlugAndRelationsUpdateMock.mockResolvedValue({
       hasChanged: true,
-      slug
+      slug,
     })
 
     const titresUpdatedIndex = await titresSlugsUpdate()
diff --git a/packages/api/src/business/processes/titres-slugs-update.ts b/packages/api/src/business/processes/titres-slugs-update.ts
index 2284fabf5..8860f4e46 100644
--- a/packages/api/src/business/processes/titres-slugs-update.ts
+++ b/packages/api/src/business/processes/titres-slugs-update.ts
@@ -35,11 +35,11 @@ export const titresSlugsUpdate = async (titresIds?: string[]) => {
         type: { type: { id: {} } },
         demarches: {
           etapes: {
-            points: { references: { id: {} } }
-          }
+            points: { references: { id: {} } },
+          },
         },
-        activites: { id: {} }
-      }
+        activites: { id: {} },
+      },
     },
     userSuper
   )
diff --git a/packages/api/src/business/processes/titres-statut-ids-update.test.ts b/packages/api/src/business/processes/titres-statut-ids-update.test.ts
index 769f3c43a..2521d99d9 100644
--- a/packages/api/src/business/processes/titres-statut-ids-update.test.ts
+++ b/packages/api/src/business/processes/titres-statut-ids-update.test.ts
@@ -1,15 +1,12 @@
 import { titresStatutIdsUpdate } from './titres-statut-ids-update.js'
 import { titresGet } from '../../database/queries/titres.js'
 
-import {
-  titresValideStatutIdAJour,
-  titresEchuStatutIdObselete
-} from './__mocks__/titres-statut-ids-update-titres.js'
+import { titresValideStatutIdAJour, titresEchuStatutIdObselete } from './__mocks__/titres-statut-ids-update-titres.js'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres', () => ({
   __esModule: true,
   titreUpdate: vi.fn().mockResolvedValue(true),
-  titresGet: vi.fn()
+  titresGet: vi.fn(),
 }))
 
 const titresGetMock = vi.mocked(titresGet, true)
diff --git a/packages/api/src/business/processes/titres-statut-ids-update.ts b/packages/api/src/business/processes/titres-statut-ids-update.ts
index cacdde5a5..989d04fb6 100644
--- a/packages/api/src/business/processes/titres-statut-ids-update.ts
+++ b/packages/api/src/business/processes/titres-statut-ids-update.ts
@@ -13,9 +13,9 @@ export const titresStatutIdsUpdate = async (titresIds?: string[]) => {
       fields: {
         demarches: {
           phase: { id: {} },
-          etapes: { points: { id: {} } }
-        }
-      }
+          etapes: { points: { id: {} } },
+        },
+      },
     },
     userSuper
   )
@@ -29,10 +29,7 @@ export const titresStatutIdsUpdate = async (titresIds?: string[]) => {
     if (titreStatutId !== titre.titreStatutId) {
       await titreUpdate(titre.id, { titreStatutId })
 
-      console.info(
-        'titre : statut (mise à jour) ->',
-        `${titre.id} : ${titreStatutId}`
-      )
+      console.info('titre : statut (mise à jour) ->', `${titre.id} : ${titreStatutId}`)
 
       titresUpdated.push(titre.id)
     }
diff --git a/packages/api/src/business/rules-demarches/_utils.test.ts b/packages/api/src/business/rules-demarches/_utils.test.ts
index cbf793392..36fb693b4 100644
--- a/packages/api/src/business/rules-demarches/_utils.test.ts
+++ b/packages/api/src/business/rules-demarches/_utils.test.ts
@@ -2,20 +2,10 @@ import fs from 'fs'
 import decamelize from 'decamelize'
 import camelcase from 'camelcase'
 
-import {
-  IEtapeType,
-  ITitre,
-  ITitreDemarche,
-  ITitreEtape,
-  ITitreType,
-  ITitreTypeDemarcheTypeEtapeType
-} from '../../types.js'
+import { IEtapeType, ITitre, ITitreDemarche, ITitreEtape, ITitreType, ITitreTypeDemarcheTypeEtapeType } from '../../types.js'
 
 import { titreDemarcheEtatValidate } from '../validations/titre-demarche-etat-validate.js'
-import {
-  demarcheDefinitionFind,
-  isDemarcheDefinitionRestriction
-} from './definitions.js'
+import { demarcheDefinitionFind, isDemarcheDefinitionRestriction } from './definitions.js'
 import { contenusTitreEtapesIdsFind } from '../utils/props-titre-etapes-ids-find.js'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
 import { newDemarcheId } from '../../database/models/_format/id-create.js'
@@ -31,18 +21,15 @@ test('teste EtatsValidate', () => {
 
 vi.mock('../../database/models/_format/titre-contenu', () => ({
   __esModule: true,
-  titreContenuFormat: vi.fn()
+  titreContenuFormat: vi.fn(),
 }))
 
 vi.mock('../utils/props-titre-etapes-ids-find', () => ({
   __esModule: true,
-  contenusTitreEtapesIdsFind: vi.fn()
+  contenusTitreEtapesIdsFind: vi.fn(),
 }))
 
-const contenusTitreEtapesIdsFindMock = vi.mocked(
-  contenusTitreEtapesIdsFind,
-  true
-)
+const contenusTitreEtapesIdsFindMock = vi.mocked(contenusTitreEtapesIdsFind, true)
 
 const elementsGet = <T>(fileName: string): T[] => {
   fileName = decamelize(fileName, { separator: '-' })
@@ -59,49 +46,28 @@ const elementsGet = <T>(fileName: string): T[] => {
 }
 
 export const etapesTypesGet = (demarcheTypeId: string, titreTypeId: string) => {
-  const titresTypesDemarchesTypesEtapesTypes =
-    elementsGet<ITitreTypeDemarcheTypeEtapeType>(
-      'titres-types--demarches-types--etapes-types.json'
-    ).filter(
-      tde =>
-        tde.titreTypeId === titreTypeId && tde.demarcheTypeId === demarcheTypeId
-    )
-
-  return elementsGet<IEtapeType>('etapes-types.json').reduce(
-    (acc, etapeType) => {
-      const tde = titresTypesDemarchesTypesEtapesTypes.find(
-        tde => tde.etapeTypeId === etapeType.id
-      )
-
-      if (tde) {
-        etapeType.titreTypeId = tde.titreTypeId
-        etapeType.ordre = tde.ordre
-        acc.push(etapeType)
-      }
-
-      return acc
-    },
-    [] as IEtapeType[]
+  const titresTypesDemarchesTypesEtapesTypes = elementsGet<ITitreTypeDemarcheTypeEtapeType>('titres-types--demarches-types--etapes-types.json').filter(
+    tde => tde.titreTypeId === titreTypeId && tde.demarcheTypeId === demarcheTypeId
   )
+
+  return elementsGet<IEtapeType>('etapes-types.json').reduce((acc, etapeType) => {
+    const tde = titresTypesDemarchesTypesEtapesTypes.find(tde => tde.etapeTypeId === etapeType.id)
+
+    if (tde) {
+      etapeType.titreTypeId = tde.titreTypeId
+      etapeType.ordre = tde.ordre
+      acc.push(etapeType)
+    }
+
+    return acc
+  }, [] as IEtapeType[])
 }
 
-export const demarcheEtatsValidate = (
-  demarcheTypeId: DemarcheTypeId,
-  titreTypeId: TitreTypeId,
-  date: string
-) => {
-  return (
-    titreDemarcheEtapes: Partial<ITitreEtape>[],
-    titre: Partial<ITitre> = {}
-  ) => {
+export const demarcheEtatsValidate = (demarcheTypeId: DemarcheTypeId, titreTypeId: TitreTypeId, date: string) => {
+  return (titreDemarcheEtapes: Partial<ITitreEtape>[], titre: Partial<ITitre> = {}) => {
     contenusTitreEtapesIdsFindMock.mockReturnValue({})
 
-    const demarcheDefinitions = demarcheDefinitionFind(
-      titreTypeId,
-      demarcheTypeId,
-      [{ typeId: 'mfr', date: toCaminoDate(date) }],
-      newDemarcheId()
-    )
+    const demarcheDefinitions = demarcheDefinitionFind(titreTypeId, demarcheTypeId, [{ typeId: 'mfr', date: toCaminoDate(date) }], newDemarcheId())
     if (!isDemarcheDefinitionRestriction(demarcheDefinitions)) {
       throw new Error('cette démarche n’a pas de restrictions')
     }
@@ -113,17 +79,11 @@ export const demarcheEtatsValidate = (
       typeId: titreTypeId,
       type: {
         id: titreTypeId,
-        contenuIds: []
+        contenuIds: [],
       } as unknown as ITitreType,
-      demarches: [titreDemarche] as ITitreDemarche[]
+      demarches: [titreDemarche] as ITitreDemarche[],
     }
 
-    return titreDemarcheEtatValidate(
-      demarcheDefinitionRestrictions!,
-      demarcheTypeId,
-      titreDemarche,
-      titreDemarcheEtapes as ITitreEtape[],
-      titre as ITitre
-    )
+    return titreDemarcheEtatValidate(demarcheDefinitionRestrictions!, demarcheTypeId, titreDemarche, titreDemarcheEtapes as ITitreEtape[], titre as ITitre)
   }
 }
diff --git a/packages/api/src/business/rules-demarches/arm/oct.machine.test.ts b/packages/api/src/business/rules-demarches/arm/oct.machine.test.ts
index f89055cfd..857c45eec 100644
--- a/packages/api/src/business/rules-demarches/arm/oct.machine.test.ts
+++ b/packages/api/src/business/rules-demarches/arm/oct.machine.test.ts
@@ -1,18 +1,9 @@
 import { ArmOctMachine } from './oct.machine.js'
 import { interpret } from 'xstate'
-import {
-  interpretMachine,
-  orderAndInterpretMachine as commonOrderAndInterpretMachine
-} from '../machine-test-helper.js'
+import { interpretMachine, orderAndInterpretMachine as commonOrderAndInterpretMachine } from '../machine-test-helper.js'
 import { IContenu } from '../../../types.js'
-import {
-  EtapeStatutId,
-  ETAPES_STATUTS
-} from 'camino-common/src/static/etapesStatuts.js'
-import {
-  ETAPES_TYPES,
-  EtapeTypeId
-} from 'camino-common/src/static/etapesTypes.js'
+import { EtapeStatutId, ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts.js'
+import { ETAPES_TYPES, EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
 import { Etape } from '../machine-common.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 import { describe, expect, test } from 'vitest'
@@ -39,19 +30,19 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-02-03')
+        date: toCaminoDate('2020-02-03'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-02-02')
+        date: toCaminoDate('2020-02-02'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: toCaminoDate('2020-01-01'),
-        contenu: { arm: { mecanise: true } }
-      }
+        contenu: { arm: { mecanise: true } },
+      },
     ])
 
     expect(service).canOnlyTransitionTo(armOctMachine, [
@@ -63,7 +54,7 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       'DEMANDER_COMPLEMENTS_DAE',
       'DEMANDER_COMPLEMENTS_RDE',
       'MODIFIER_DEMANDE',
-      'REFUSER_RDE'
+      'REFUSER_RDE',
     ])
   })
 
@@ -72,19 +63,19 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-02-03')
+        date: toCaminoDate('2020-02-03'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-02-02')
+        date: toCaminoDate('2020-02-02'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: toCaminoDate('2020-01-01'),
-        contenu: { arm: { mecanise: true, franchissements: 1 } }
-      }
+        contenu: { arm: { mecanise: true, franchissements: 1 } },
+      },
     ])
 
     expect(service).canOnlyTransitionTo(armOctMachine, [
@@ -96,7 +87,7 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       'DESISTER_PAR_LE_DEMANDEUR',
       'EXEMPTER_DAE',
       'MODIFIER_DEMANDE',
-      'REFUSER_RDE'
+      'REFUSER_RDE',
     ])
   })
 
@@ -107,28 +98,22 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-02-03')
+        date: toCaminoDate('2020-02-03'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-02-02')
+        date: toCaminoDate('2020-02-02'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: toCaminoDate('2020-01-01'),
-        contenu: { arm: { mecanise: false } }
-      }
+        contenu: { arm: { mecanise: false } },
+      },
     ])
 
-    expect(service).canOnlyTransitionTo(armOctMachine, [
-      'ACCEPTER_COMPLETUDE',
-      'CLASSER_SANS_SUITE',
-      'DESISTER_PAR_LE_DEMANDEUR',
-      'REFUSER_COMPLETUDE',
-      'MODIFIER_DEMANDE'
-    ])
+    expect(service).canOnlyTransitionTo(armOctMachine, ['ACCEPTER_COMPLETUDE', 'CLASSER_SANS_SUITE', 'DESISTER_PAR_LE_DEMANDEUR', 'REFUSER_COMPLETUDE', 'MODIFIER_DEMANDE'])
   })
 
   test('on peut faire une demande de compléments après une complétude incomplète', () => {
@@ -136,68 +121,56 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'inc',
-        date: toCaminoDate('2020-02-04')
+        date: toCaminoDate('2020-02-04'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-02-03')
+        date: toCaminoDate('2020-02-03'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-02-02')
+        date: toCaminoDate('2020-02-02'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: toCaminoDate('2020-01-01'),
-        contenu: { arm: { mecanise: false } }
-      }
+        contenu: { arm: { mecanise: false } },
+      },
     ])
 
-    expect(service).canOnlyTransitionTo(armOctMachine, [
-      'CLASSER_SANS_SUITE',
-      'DEMANDER_COMPLEMENTS_COMPLETUDE',
-      'DESISTER_PAR_LE_DEMANDEUR',
-      'MODIFIER_DEMANDE'
-    ])
+    expect(service).canOnlyTransitionTo(armOctMachine, ['CLASSER_SANS_SUITE', 'DEMANDER_COMPLEMENTS_COMPLETUDE', 'DESISTER_PAR_LE_DEMANDEUR', 'MODIFIER_DEMANDE'])
   })
 
   test.each([
     {
-      etapeTypeId:
-        ETAPES_TYPES.demandeDeComplements_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_,
+      etapeTypeId: ETAPES_TYPES.demandeDeComplements_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_,
       etapeStatutId: ETAPES_STATUTS.FAIT,
-      date: toCaminoDate('2020-01-01')
+      date: toCaminoDate('2020-01-01'),
     },
     {
-      etapeTypeId:
-        ETAPES_TYPES.demandeDeComplements_RecepisseDeDeclarationLoiSurLeau_,
+      etapeTypeId: ETAPES_TYPES.demandeDeComplements_RecepisseDeDeclarationLoiSurLeau_,
       etapeStatutId: ETAPES_STATUTS.FAIT,
-      date: toCaminoDate('2020-01-01')
-    }
-  ])(
-    'ne peut pas créer une étape "%s" si il n’existe pas d’autres étapes',
-    (etape: Etape) => {
-      expect(() =>
-        orderAndInterpretMachine([etape])
-      ).toThrowErrorMatchingSnapshot()
-    }
-  )
+      date: toCaminoDate('2020-01-01'),
+    },
+  ])('ne peut pas créer une étape "%s" si il n’existe pas d’autres étapes', (etape: Etape) => {
+    expect(() => orderAndInterpretMachine([etape])).toThrowErrorMatchingSnapshot()
+  })
 
   test('peut créer une étape "mdp" juste après une "mfr"', () => {
     orderAndInterpretMachine([
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2022-04-14')
+        date: toCaminoDate('2022-04-14'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2022-04-15')
-      }
+        date: toCaminoDate('2022-04-15'),
+      },
     ])
   })
 
@@ -207,13 +180,13 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
         {
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2022-04-14')
+          date: toCaminoDate('2022-04-14'),
         },
         {
           etapeTypeId: 'mcp',
           etapeStatutId: 'com',
-          date: toCaminoDate('2022-04-16')
-        }
+          date: toCaminoDate('2022-04-16'),
+        },
       ])
     ).toThrowErrorMatchingSnapshot()
   })
@@ -224,18 +197,18 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
         {
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-01')
+          date: toCaminoDate('2020-01-01'),
         },
         {
           etapeTypeId: 'mdp',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-02')
+          date: toCaminoDate('2020-01-02'),
         },
         {
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-03')
-        }
+          date: toCaminoDate('2020-01-03'),
+        },
       ])
     ).toThrowErrorMatchingSnapshot()
   })
@@ -246,13 +219,13 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
         {
           etapeTypeId: 'mdp',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-02-02')
+          date: toCaminoDate('2020-02-02'),
         },
         {
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-02-03')
-        }
+          date: toCaminoDate('2020-02-03'),
+        },
       ])
     ).toThrowErrorMatchingSnapshot()
   })
@@ -261,42 +234,33 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
     {
       typeId: ETAPES_TYPES.recepisseDeDeclarationLoiSurLeau,
       statutId: ETAPES_STATUTS.FAVORABLE,
-      contenu: { arm: { franchissements: 1 } }
+      contenu: { arm: { franchissements: 1 } },
     },
     {
-      typeId:
-        ETAPES_TYPES.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_,
-      statutId: ETAPES_STATUTS.EXEMPTE
-    }
+      typeId: ETAPES_TYPES.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_,
+      statutId: ETAPES_STATUTS.EXEMPTE,
+    },
   ])(
     'peut créer une étape "%s" juste après une "mdp" et que le titre est mécanisé avec franchissement d’eau',
-    ({
-      typeId,
-      statutId,
-      contenu
-    }: {
-      typeId: EtapeTypeId
-      statutId: EtapeStatutId
-      contenu?: IContenu
-    }) => {
+    ({ typeId, statutId, contenu }: { typeId: EtapeTypeId; statutId: EtapeStatutId; contenu?: IContenu }) => {
       orderAndInterpretMachine([
         {
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
           date: toCaminoDate('2020-01-01'),
-          contenu: { arm: { mecanise: true, franchissements: 1 } }
+          contenu: { arm: { mecanise: true, franchissements: 1 } },
         },
         {
           etapeTypeId: 'mdp',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-02')
+          date: toCaminoDate('2020-01-02'),
         },
         {
           etapeTypeId: typeId,
           etapeStatutId: statutId,
           contenu,
-          date: toCaminoDate('2020-01-03')
-        }
+          date: toCaminoDate('2020-01-03'),
+        },
       ])
     }
   )
@@ -306,23 +270,23 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2020-02-03')
+        date: toCaminoDate('2020-02-03'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-02-03')
+        date: toCaminoDate('2020-02-03'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-02-02')
+        date: toCaminoDate('2020-02-02'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-01-01')
-      }
+        date: toCaminoDate('2020-01-01'),
+      },
     ])
   })
 
@@ -331,18 +295,18 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-01-01')
+        date: toCaminoDate('2020-01-01'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-01-02')
+        date: toCaminoDate('2020-01-02'),
       },
       {
         etapeTypeId: 'des',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-01-04')
-      }
+        date: toCaminoDate('2020-01-04'),
+      },
     ])
   })
 
@@ -352,23 +316,23 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
         {
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-01')
+          date: toCaminoDate('2020-01-01'),
         },
         {
           etapeTypeId: 'mdp',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-02')
+          date: toCaminoDate('2020-01-02'),
         },
         {
           etapeTypeId: 'des',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-03')
+          date: toCaminoDate('2020-01-03'),
         },
         {
           etapeTypeId: 'des',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-04')
-        }
+          date: toCaminoDate('2020-01-04'),
+        },
       ])
     ).toThrowErrorMatchingSnapshot()
   })
@@ -378,23 +342,23 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
         {
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-01')
+          date: toCaminoDate('2020-01-01'),
         },
         {
           etapeTypeId: 'mdp',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-02')
+          date: toCaminoDate('2020-01-02'),
         },
         {
           etapeTypeId: 'des',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-04')
+          date: toCaminoDate('2020-01-04'),
         },
         {
           etapeTypeId: 'css',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-05')
-        }
+          date: toCaminoDate('2020-01-05'),
+        },
       ])
     ).toThrowErrorMatchingSnapshot()
   })
@@ -404,73 +368,73 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: toCaminoDate('2020-01-01'),
-        contenu: { arm: { mecanise: true } }
+        contenu: { arm: { mecanise: true } },
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-01-02')
+        date: toCaminoDate('2020-01-02'),
       },
       {
         etapeTypeId: 'dae',
         etapeStatutId: 'exe',
-        date: toCaminoDate('2020-01-03')
+        date: toCaminoDate('2020-01-03'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-01-04')
+        date: toCaminoDate('2020-01-04'),
       },
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2020-01-05')
+        date: toCaminoDate('2020-01-05'),
       },
       {
         etapeTypeId: 'mod',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-01-06')
+        date: toCaminoDate('2020-01-06'),
       },
       {
         etapeTypeId: 'vfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-01-06')
+        date: toCaminoDate('2020-01-06'),
       },
       {
         etapeTypeId: 'mcr',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2020-01-07')
+        date: toCaminoDate('2020-01-07'),
       },
       {
         etapeTypeId: 'eof',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-01-08')
+        date: toCaminoDate('2020-01-08'),
       },
       {
         etapeTypeId: 'aof',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2020-01-09')
+        date: toCaminoDate('2020-01-09'),
       },
       {
         etapeTypeId: 'sca',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-01-10')
+        date: toCaminoDate('2020-01-10'),
       },
       {
         etapeTypeId: 'aca',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2020-01-11')
+        date: toCaminoDate('2020-01-11'),
       },
       {
         etapeTypeId: 'mnb',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-01-12')
+        date: toCaminoDate('2020-01-12'),
       },
       {
         etapeTypeId: 'des',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-01-13')
-      }
+        date: toCaminoDate('2020-01-13'),
+      },
     ])
   })
 
@@ -480,58 +444,58 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
         {
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-01')
+          date: toCaminoDate('2020-01-01'),
         },
         {
           etapeTypeId: 'mdp',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-01')
+          date: toCaminoDate('2020-01-01'),
         },
         {
           etapeTypeId: 'pfd',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-01')
+          date: toCaminoDate('2020-01-01'),
         },
         {
           etapeTypeId: 'mcp',
           etapeStatutId: 'com',
-          date: toCaminoDate('2020-01-01')
+          date: toCaminoDate('2020-01-01'),
         },
         {
           etapeTypeId: 'vfd',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-01')
+          date: toCaminoDate('2020-01-01'),
         },
         {
           etapeTypeId: 'mcr',
           etapeStatutId: 'fav',
-          date: toCaminoDate('2020-01-01')
+          date: toCaminoDate('2020-01-01'),
         },
         {
           etapeTypeId: 'eof',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-01')
+          date: toCaminoDate('2020-01-01'),
         },
         {
           etapeTypeId: 'aof',
           etapeStatutId: 'fav',
-          date: toCaminoDate('2020-01-01')
+          date: toCaminoDate('2020-01-01'),
         },
         {
           etapeTypeId: 'sca',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-02')
+          date: toCaminoDate('2020-01-02'),
         },
         {
           etapeTypeId: 'aca',
           etapeStatutId: 'fav',
-          date: toCaminoDate('2020-01-03')
+          date: toCaminoDate('2020-01-03'),
         },
         {
           etapeTypeId: 'mnb',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2020-01-04')
-        }
+          date: toCaminoDate('2020-01-04'),
+        },
       ])
     ).toThrowErrorMatchingSnapshot()
   })
@@ -541,58 +505,58 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'mnd',
         date: toCaminoDate('2020-08-18'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'aca',
         date: toCaminoDate('2020-08-18'),
-        etapeStatutId: 'def'
+        etapeStatutId: 'def',
       },
       {
         etapeTypeId: 'sca',
         date: toCaminoDate('2020-08-07'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'aof',
         date: toCaminoDate('2020-06-19'),
-        etapeStatutId: 'def'
+        etapeStatutId: 'def',
       },
       {
         etapeTypeId: 'eof',
         date: toCaminoDate('2020-06-19'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'mcr',
         date: toCaminoDate('2020-06-15'),
-        etapeStatutId: 'fav'
+        etapeStatutId: 'fav',
       },
       {
         etapeTypeId: 'vfd',
         date: toCaminoDate('2020-06-15'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'mcp',
         date: toCaminoDate('2020-05-29'),
-        etapeStatutId: 'com'
+        etapeStatutId: 'com',
       },
       {
         etapeTypeId: 'mdp',
         date: toCaminoDate('2020-05-04'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'pfd',
         date: toCaminoDate('2020-05-01'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'mfr',
         date: toCaminoDate('2020-04-29'),
-        etapeStatutId: 'fai'
-      }
+        etapeStatutId: 'fai',
+      },
     ])
   })
 
@@ -601,48 +565,48 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'mfr',
         date: toCaminoDate('2019-12-12'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'mdp',
         date: toCaminoDate('2019-12-12'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'pfd',
         date: toCaminoDate('2019-12-12'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'mcp',
         date: toCaminoDate('2020-01-21'),
-        etapeStatutId: 'com'
+        etapeStatutId: 'com',
       },
       {
         etapeTypeId: 'vfd',
         date: toCaminoDate('2020-02-05'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'mcr',
         date: toCaminoDate('2020-02-05'),
-        etapeStatutId: 'fav'
+        etapeStatutId: 'fav',
       },
       {
         etapeTypeId: 'eof',
         date: toCaminoDate('2020-02-05'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'aof',
         date: toCaminoDate('2020-02-05'),
-        etapeStatutId: 'fav'
+        etapeStatutId: 'fav',
       },
       {
         etapeTypeId: 'mod',
         date: toCaminoDate('2020-06-17'),
-        etapeStatutId: 'fai'
-      }
+        etapeStatutId: 'fai',
+      },
     ])
   })
 
@@ -651,23 +615,23 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'mfr',
         date: toCaminoDate('2020-01-30'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'mdp',
         date: toCaminoDate('2020-02-23'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'pfd',
         date: toCaminoDate('2020-02-23'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'mcp',
         date: toCaminoDate('2020-02-28'),
-        etapeStatutId: 'com'
-      }
+        etapeStatutId: 'com',
+      },
     ])
   })
 
@@ -676,60 +640,60 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'dae',
         date: toCaminoDate('2020-06-22'),
-        etapeStatutId: 'exe'
+        etapeStatutId: 'exe',
       },
       {
         etapeTypeId: 'mfr',
         date: toCaminoDate('2020-07-09'),
         etapeStatutId: 'fai',
-        contenu: { arm: { mecanise: true, franchissements: 3 } }
+        contenu: { arm: { mecanise: true, franchissements: 3 } },
       },
       {
         etapeTypeId: 'pfd',
         date: toCaminoDate('2020-07-10'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'mdp',
         date: toCaminoDate('2020-07-17'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'mcp',
         date: toCaminoDate('2020-07-17'),
-        etapeStatutId: 'com'
+        etapeStatutId: 'com',
       },
       {
         etapeTypeId: 'rde',
         date: toCaminoDate('2020-07-30'),
         etapeStatutId: 'fav',
-        contenu: { arm: { franchissements: 3 } }
+        contenu: { arm: { franchissements: 3 } },
       },
       {
         etapeTypeId: 'vfd',
         date: toCaminoDate('2020-07-31'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'mcr',
         date: toCaminoDate('2020-07-31'),
-        etapeStatutId: 'fav'
+        etapeStatutId: 'fav',
       },
       {
         etapeTypeId: 'eof',
         date: toCaminoDate('2020-08-10'),
-        etapeStatutId: 'fai'
+        etapeStatutId: 'fai',
       },
       {
         etapeTypeId: 'aof',
         date: toCaminoDate('2020-08-10'),
-        etapeStatutId: 'fav'
+        etapeStatutId: 'fav',
       },
       {
         etapeTypeId: 'sca',
         date: toCaminoDate('2020-09-04'),
-        etapeStatutId: 'fai'
-      }
+        etapeStatutId: 'fai',
+      },
     ])
   })
 
@@ -738,85 +702,85 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'sco',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-09-28')
+        date: toCaminoDate('2020-09-28'),
       },
       {
         etapeTypeId: 'vfc',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-07-17')
+        date: toCaminoDate('2020-07-17'),
       },
       {
         etapeTypeId: 'pfc',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-07-16')
+        date: toCaminoDate('2020-07-16'),
       },
       {
         etapeTypeId: 'mnb',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-07-09')
+        date: toCaminoDate('2020-07-09'),
       },
       {
         etapeTypeId: 'aca',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2020-06-17')
+        date: toCaminoDate('2020-06-17'),
       },
       {
         etapeTypeId: 'sca',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-06-15')
+        date: toCaminoDate('2020-06-15'),
       },
       {
         etapeTypeId: 'rde',
         etapeStatutId: 'fav',
         date: toCaminoDate('2020-02-11'),
-        contenu: { arm: { franchissements: 3 } }
+        contenu: { arm: { franchissements: 3 } },
       },
       {
         etapeTypeId: 'aof',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2020-02-08')
+        date: toCaminoDate('2020-02-08'),
       },
       {
         etapeTypeId: 'eof',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-02-07')
+        date: toCaminoDate('2020-02-07'),
       },
       {
         etapeTypeId: 'mcr',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2020-02-06')
+        date: toCaminoDate('2020-02-06'),
       },
       {
         etapeTypeId: 'vfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-02-05')
+        date: toCaminoDate('2020-02-05'),
       },
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2020-01-23')
+        date: toCaminoDate('2020-01-23'),
       },
       {
         etapeTypeId: 'dae',
         etapeStatutId: 'exe',
-        date: toCaminoDate('2020-01-14')
+        date: toCaminoDate('2020-01-14'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2019-12-13')
+        date: toCaminoDate('2019-12-13'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2019-12-11')
+        date: toCaminoDate('2019-12-11'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: toCaminoDate('2019-12-10'),
-        contenu: { arm: { mecanise: true, franchissements: 3 } }
-      }
+        contenu: { arm: { mecanise: true, franchissements: 3 } },
+      },
     ])
   })
 
@@ -825,55 +789,55 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'aof',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-06-08')
+        date: toCaminoDate('2021-06-08'),
       },
       {
         etapeTypeId: 'eof',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-06-02')
+        date: toCaminoDate('2021-06-02'),
       },
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2021-05-20')
+        date: toCaminoDate('2021-05-20'),
       },
       {
         etapeTypeId: 'mcr',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-05-20')
+        date: toCaminoDate('2021-05-20'),
       },
       {
         etapeTypeId: 'vfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-05-20')
+        date: toCaminoDate('2021-05-20'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-05-20')
+        date: toCaminoDate('2021-05-20'),
       },
       {
         etapeTypeId: 'dae',
         etapeStatutId: 'exe',
-        date: toCaminoDate('2021-05-20')
+        date: toCaminoDate('2021-05-20'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-05-20')
+        date: toCaminoDate('2021-05-20'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: toCaminoDate('2021-05-20'),
-        contenu: { arm: { mecanise: true, franchissements: 3 } }
+        contenu: { arm: { mecanise: true, franchissements: 3 } },
       },
       {
         etapeTypeId: 'rde',
         etapeStatutId: 'fav',
         date: toCaminoDate('2021-04-09'),
-        contenu: { arm: { franchissements: 3 } }
-      }
+        contenu: { arm: { franchissements: 3 } },
+      },
     ])
   })
 
@@ -882,23 +846,23 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-09-03')
-      }
+        date: toCaminoDate('2020-09-03'),
+      },
     ])
   })
 
@@ -907,70 +871,70 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'sca',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-24')
+        date: toCaminoDate('2021-09-24'),
       },
       {
         etapeTypeId: 'aof',
         etapeStatutId: 'def',
-        date: toCaminoDate('2021-09-23')
+        date: toCaminoDate('2021-09-23'),
       },
       {
         etapeTypeId: 'rde',
         etapeStatutId: 'def',
         date: toCaminoDate('2021-09-22'),
-        contenu: { arm: { franchissements: 3 } }
+        contenu: { arm: { franchissements: 3 } },
       },
       {
         etapeTypeId: 'edm',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-04-30')
+        date: toCaminoDate('2021-04-30'),
       },
       {
         etapeTypeId: 'eof',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-17')
+        date: toCaminoDate('2021-03-17'),
       },
       {
         etapeTypeId: 'mcb',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-16')
+        date: toCaminoDate('2021-03-16'),
       },
       {
         etapeTypeId: 'mcr',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-03-11')
+        date: toCaminoDate('2021-03-11'),
       },
       {
         etapeTypeId: 'vfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-10')
+        date: toCaminoDate('2021-03-10'),
       },
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: toCaminoDate('2021-02-26'),
-        contenu: { arm: { mecanise: true, franchissements: 3 } }
+        contenu: { arm: { mecanise: true, franchissements: 3 } },
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-09-03')
+        date: toCaminoDate('2020-09-03'),
       },
       {
         etapeTypeId: 'dae',
         etapeStatutId: 'exe',
-        date: toCaminoDate('2020-07-28')
-      }
+        date: toCaminoDate('2020-07-28'),
+      },
     ])
   })
 
@@ -979,53 +943,53 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'aof',
         etapeStatutId: 'def',
-        date: toCaminoDate('2021-09-23')
+        date: toCaminoDate('2021-09-23'),
       },
       {
         etapeTypeId: 'ria',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-21')
+        date: toCaminoDate('2021-09-21'),
       },
       {
         etapeTypeId: 'mia',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-20')
+        date: toCaminoDate('2021-09-20'),
       },
       {
         etapeTypeId: 'eof',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-17')
+        date: toCaminoDate('2021-03-17'),
       },
       {
         etapeTypeId: 'mcr',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-03-10')
+        date: toCaminoDate('2021-03-10'),
       },
       {
         etapeTypeId: 'vfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-10')
+        date: toCaminoDate('2021-03-10'),
       },
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-09-03')
-      }
+        date: toCaminoDate('2020-09-03'),
+      },
     ])
   })
 
@@ -1034,73 +998,73 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'sca',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-30')
+        date: toCaminoDate('2021-09-30'),
       },
       {
         etapeTypeId: 'rcs',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-28')
+        date: toCaminoDate('2021-09-28'),
       },
       {
         etapeTypeId: 'mcs',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-27')
+        date: toCaminoDate('2021-09-27'),
       },
       {
         etapeTypeId: 'mna',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-26')
+        date: toCaminoDate('2021-09-26'),
       },
       {
         etapeTypeId: 'aca',
         etapeStatutId: 'ajo',
-        date: toCaminoDate('2021-09-25')
+        date: toCaminoDate('2021-09-25'),
       },
       {
         etapeTypeId: 'sca',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-24')
+        date: toCaminoDate('2021-09-24'),
       },
       {
         etapeTypeId: 'aof',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-09-23')
+        date: toCaminoDate('2021-09-23'),
       },
       {
         etapeTypeId: 'eof',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-17')
+        date: toCaminoDate('2021-03-17'),
       },
       {
         etapeTypeId: 'mcr',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-03-10')
+        date: toCaminoDate('2021-03-10'),
       },
       {
         etapeTypeId: 'vfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-10')
+        date: toCaminoDate('2021-03-10'),
       },
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-09-03')
-      }
+        date: toCaminoDate('2020-09-03'),
+      },
     ])
   })
 
@@ -1109,73 +1073,73 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'mnv',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-29')
+        date: toCaminoDate('2021-09-29'),
       },
       {
         etapeTypeId: 'aco',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-28')
+        date: toCaminoDate('2021-09-28'),
       },
       {
         etapeTypeId: 'mns',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-27')
+        date: toCaminoDate('2021-09-27'),
       },
       {
         etapeTypeId: 'sco',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-26')
+        date: toCaminoDate('2021-09-26'),
       },
       {
         etapeTypeId: 'aca',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-09-25')
+        date: toCaminoDate('2021-09-25'),
       },
       {
         etapeTypeId: 'sca',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-24')
+        date: toCaminoDate('2021-09-24'),
       },
       {
         etapeTypeId: 'aof',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-09-23')
+        date: toCaminoDate('2021-09-23'),
       },
       {
         etapeTypeId: 'eof',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-17')
+        date: toCaminoDate('2021-03-17'),
       },
       {
         etapeTypeId: 'mcr',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-03-10')
+        date: toCaminoDate('2021-03-10'),
       },
       {
         etapeTypeId: 'vfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-10')
+        date: toCaminoDate('2021-03-10'),
       },
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-09-03')
-      }
+        date: toCaminoDate('2020-09-03'),
+      },
     ])
   })
 
@@ -1184,89 +1148,89 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'mnv',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-10-02')
+        date: toCaminoDate('2021-10-02'),
       },
       {
         etapeTypeId: 'aco',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-10-01')
+        date: toCaminoDate('2021-10-01'),
       },
       {
         etapeTypeId: 'sco',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-29')
+        date: toCaminoDate('2021-09-29'),
       },
       {
         etapeTypeId: 'vfc',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-28')
+        date: toCaminoDate('2021-09-28'),
       },
       {
         etapeTypeId: 'pfc',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-27')
+        date: toCaminoDate('2021-09-27'),
       },
       {
         etapeTypeId: 'mnb',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-26')
+        date: toCaminoDate('2021-09-26'),
       },
       {
         etapeTypeId: 'aca',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-09-25')
+        date: toCaminoDate('2021-09-25'),
       },
       {
         etapeTypeId: 'sca',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-09-24')
+        date: toCaminoDate('2021-09-24'),
       },
       {
         etapeTypeId: 'aof',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-09-23')
+        date: toCaminoDate('2021-09-23'),
       },
       {
         etapeTypeId: 'eof',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-17')
+        date: toCaminoDate('2021-03-17'),
       },
       {
         etapeTypeId: 'mcr',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-03-11')
+        date: toCaminoDate('2021-03-11'),
       },
       {
         etapeTypeId: 'vfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-10')
+        date: toCaminoDate('2021-03-10'),
       },
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2021-02-29')
+        date: toCaminoDate('2021-02-29'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-28')
+        date: toCaminoDate('2021-02-28'),
       },
       {
         etapeTypeId: 'dae',
         etapeStatutId: 'exe',
-        date: toCaminoDate('2021-02-27')
+        date: toCaminoDate('2021-02-27'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: toCaminoDate('2021-02-25'),
-        contenu: { arm: { mecanise: true } }
-      }
+        contenu: { arm: { mecanise: true } },
+      },
     ])
   })
 
@@ -1278,34 +1242,34 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
         date: toCaminoDate('2020-10-08'),
         contenu: {
           arm: {
-            franchissements: 4
-          }
-        }
+            franchissements: 4,
+          },
+        },
       },
       {
         etapeTypeId: 'mcb',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-10-05')
+        date: toCaminoDate('2020-10-05'),
       },
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2020-08-25')
+        date: toCaminoDate('2020-08-25'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-08-25')
+        date: toCaminoDate('2020-08-25'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2020-08-20')
+        date: toCaminoDate('2020-08-20'),
       },
       {
         etapeTypeId: 'dae',
         etapeStatutId: 'exe',
-        date: toCaminoDate('2020-07-30')
+        date: toCaminoDate('2020-07-30'),
       },
       {
         etapeTypeId: 'mfr',
@@ -1313,10 +1277,10 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
         date: toCaminoDate('2020-07-14'),
         contenu: {
           arm: {
-            mecanise: true
-          }
-        }
-      }
+            mecanise: true,
+          },
+        },
+      },
     ])
   })
 
@@ -1326,14 +1290,14 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
         {
           etapeTypeId: 'dae',
           etapeStatutId: 'exe',
-          date: toCaminoDate('2021-02-23')
+          date: toCaminoDate('2021-02-23'),
         },
         {
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
           date: toCaminoDate('2021-02-25'),
-          contenu: { arm: { mecanise: false } }
-        }
+          contenu: { arm: { mecanise: false } },
+        },
       ])
     ).toThrowErrorMatchingSnapshot()
   })
@@ -1345,14 +1309,14 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
           etapeTypeId: 'rde',
           etapeStatutId: 'fav',
           date: toCaminoDate('2021-02-23'),
-          contenu: { arm: { franchissements: 1 } }
+          contenu: { arm: { franchissements: 1 } },
         },
         {
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
           date: toCaminoDate('2021-02-25'),
-          contenu: { arm: { mecanise: false } }
-        }
+          contenu: { arm: { mecanise: false } },
+        },
       ])
     ).toThrowErrorMatchingSnapshot()
   })
@@ -1362,215 +1326,215 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
       {
         etapeTypeId: 'vfc',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-10-04')
+        date: toCaminoDate('2021-10-04'),
       },
       {
         etapeTypeId: 'mnc',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-10-02')
+        date: toCaminoDate('2021-10-02'),
       },
       {
         etapeTypeId: 'css',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-10-01')
+        date: toCaminoDate('2021-10-01'),
       },
       {
         etapeTypeId: 'aof',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-09-23')
+        date: toCaminoDate('2021-09-23'),
       },
       {
         etapeTypeId: 'eof',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-17')
+        date: toCaminoDate('2021-03-17'),
       },
       {
         etapeTypeId: 'mcr',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-03-11')
+        date: toCaminoDate('2021-03-11'),
       },
       {
         etapeTypeId: 'vfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-10')
+        date: toCaminoDate('2021-03-10'),
       },
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2021-02-29')
+        date: toCaminoDate('2021-02-29'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-28')
+        date: toCaminoDate('2021-02-28'),
       },
       {
         etapeTypeId: 'dae',
         etapeStatutId: 'exe',
-        date: toCaminoDate('2021-02-27')
+        date: toCaminoDate('2021-02-27'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: toCaminoDate('2021-02-25'),
-        contenu: { arm: { mecanise: true } }
-      }
+        contenu: { arm: { mecanise: true } },
+      },
     ])
 
     orderAndInterpretMachine([
       {
         etapeTypeId: 'vfc',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-10-05')
+        date: toCaminoDate('2021-10-05'),
       },
       {
         etapeTypeId: 'vfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-10-04')
+        date: toCaminoDate('2021-10-04'),
       },
       {
         etapeTypeId: 'mnc',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-10-02')
+        date: toCaminoDate('2021-10-02'),
       },
       {
         etapeTypeId: 'css',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-10-01')
+        date: toCaminoDate('2021-10-01'),
       },
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2021-02-29')
+        date: toCaminoDate('2021-02-29'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-28')
+        date: toCaminoDate('2021-02-28'),
       },
       {
         etapeTypeId: 'dae',
         etapeStatutId: 'exe',
-        date: toCaminoDate('2021-02-27')
+        date: toCaminoDate('2021-02-27'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: toCaminoDate('2021-02-25'),
-        contenu: { arm: { mecanise: true } }
-      }
+        contenu: { arm: { mecanise: true } },
+      },
     ])
     orderAndInterpretMachine([
       {
         etapeTypeId: 'vfc',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-10-04')
+        date: toCaminoDate('2021-10-04'),
       },
       {
         etapeTypeId: 'des',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-10-01')
+        date: toCaminoDate('2021-10-01'),
       },
       {
         etapeTypeId: 'aof',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-09-23')
+        date: toCaminoDate('2021-09-23'),
       },
       {
         etapeTypeId: 'eof',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-17')
+        date: toCaminoDate('2021-03-17'),
       },
       {
         etapeTypeId: 'mcr',
         etapeStatutId: 'fav',
-        date: toCaminoDate('2021-03-11')
+        date: toCaminoDate('2021-03-11'),
       },
       {
         etapeTypeId: 'vfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-03-10')
+        date: toCaminoDate('2021-03-10'),
       },
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2021-02-29')
+        date: toCaminoDate('2021-02-29'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-28')
+        date: toCaminoDate('2021-02-28'),
       },
       {
         etapeTypeId: 'dae',
         etapeStatutId: 'exe',
-        date: toCaminoDate('2021-02-27')
+        date: toCaminoDate('2021-02-27'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: toCaminoDate('2021-02-25'),
-        contenu: { arm: { mecanise: true } }
-      }
+        contenu: { arm: { mecanise: true } },
+      },
     ])
 
     orderAndInterpretMachine([
       {
         etapeTypeId: 'vfc',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-10-05')
+        date: toCaminoDate('2021-10-05'),
       },
       {
         etapeTypeId: 'vfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-10-04')
+        date: toCaminoDate('2021-10-04'),
       },
       {
         etapeTypeId: 'des',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-10-01')
+        date: toCaminoDate('2021-10-01'),
       },
       {
         etapeTypeId: 'mcp',
         etapeStatutId: 'com',
-        date: toCaminoDate('2021-02-29')
+        date: toCaminoDate('2021-02-29'),
       },
       {
         etapeTypeId: 'pfd',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-28')
+        date: toCaminoDate('2021-02-28'),
       },
       {
         etapeTypeId: 'dae',
         etapeStatutId: 'exe',
-        date: toCaminoDate('2021-02-27')
+        date: toCaminoDate('2021-02-27'),
       },
       {
         etapeTypeId: 'mdp',
         etapeStatutId: 'fai',
-        date: toCaminoDate('2021-02-26')
+        date: toCaminoDate('2021-02-26'),
       },
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: toCaminoDate('2021-02-25'),
-        contenu: { arm: { mecanise: true } }
-      }
+        contenu: { arm: { mecanise: true } },
+      },
     ])
   })
 
@@ -1580,8 +1544,8 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: toCaminoDate('2019-12-10'),
-        contenu: { arm: { mecanise: false, franchissements: 3 } }
-      }
+        contenu: { arm: { mecanise: false, franchissements: 3 } },
+      },
     ])
   })
 
@@ -1591,7 +1555,7 @@ describe('vérifie l’arbre d’octroi d’ARM', () => {
     interpretMachine(armOctMachine, demarche.etapes)
     expect(armOctMachine.demarcheStatut(demarche.etapes)).toStrictEqual({
       demarcheStatut: demarche.demarcheStatutId,
-      publique: demarche.demarchePublique
+      publique: demarche.demarchePublique,
     })
   })
 })
diff --git a/packages/api/src/business/rules-demarches/arm/oct.machine.ts b/packages/api/src/business/rules-demarches/arm/oct.machine.ts
index af965899c..97bd711e7 100644
--- a/packages/api/src/business/rules-demarches/arm/oct.machine.ts
+++ b/packages/api/src/business/rules-demarches/arm/oct.machine.ts
@@ -84,127 +84,78 @@ const trad: { [key in Event]: DBEtat } = {
   DEPOSER_DEMANDE: EtapesTypesEtapesStatuts.depotDeLaDemande,
   PAYER_FRAIS_DE_DOSSIER: EtapesTypesEtapesStatuts.paiementDesFraisDeDossier,
   DEMANDER_MODIFICATION_DE_LA_DEMANDE: {
-    REQUIS:
-      EtapesTypesEtapesStatuts
-        .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-        .REQUIS
+    REQUIS: EtapesTypesEtapesStatuts.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.REQUIS,
   },
   EXEMPTER_DAE: {
-    EXEMPTE:
-      EtapesTypesEtapesStatuts
-        .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-        .EXEMPTE
+    EXEMPTE: EtapesTypesEtapesStatuts.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.EXEMPTE,
   },
   DESISTER_PAR_LE_DEMANDEUR: EtapesTypesEtapesStatuts.desistementDuDemandeur,
   CLASSER_SANS_SUITE: EtapesTypesEtapesStatuts.classementSansSuite,
-  DEMANDER_COMPLEMENTS_DAE:
-    EtapesTypesEtapesStatuts.demandeDeComplements_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_,
-  RECEVOIR_COMPLEMENTS_DAE:
-    EtapesTypesEtapesStatuts.receptionDeComplements_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet__,
-  MODIFIER_DEMANDE_APRES_DAE:
-    EtapesTypesEtapesStatuts.modificationDeLaDemande_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_,
+  DEMANDER_COMPLEMENTS_DAE: EtapesTypesEtapesStatuts.demandeDeComplements_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_,
+  RECEVOIR_COMPLEMENTS_DAE: EtapesTypesEtapesStatuts.receptionDeComplements_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet__,
+  MODIFIER_DEMANDE_APRES_DAE: EtapesTypesEtapesStatuts.modificationDeLaDemande_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_,
   REFUSER_COMPLETUDE: {
-    INCOMPLETE: EtapesTypesEtapesStatuts.completudeDeLaDemande.INCOMPLETE
+    INCOMPLETE: EtapesTypesEtapesStatuts.completudeDeLaDemande.INCOMPLETE,
   },
-  RECEVOIR_COMPLEMENTS_COMPLETUDE:
-    EtapesTypesEtapesStatuts.receptionDeComplements_CompletudeDeLaDemande_,
-  DEMANDER_COMPLEMENTS_COMPLETUDE:
-    EtapesTypesEtapesStatuts.demandeDeComplements_CompletudeDeLaDemande_,
+  RECEVOIR_COMPLEMENTS_COMPLETUDE: EtapesTypesEtapesStatuts.receptionDeComplements_CompletudeDeLaDemande_,
+  DEMANDER_COMPLEMENTS_COMPLETUDE: EtapesTypesEtapesStatuts.demandeDeComplements_CompletudeDeLaDemande_,
   ACCEPTER_COMPLETUDE: {
-    COMPLETE: EtapesTypesEtapesStatuts.completudeDeLaDemande.COMPLETE
+    COMPLETE: EtapesTypesEtapesStatuts.completudeDeLaDemande.COMPLETE,
   },
-  VALIDER_FRAIS_DE_DOSSIER:
-    EtapesTypesEtapesStatuts.validationDuPaiementDesFraisDeDossier,
+  VALIDER_FRAIS_DE_DOSSIER: EtapesTypesEtapesStatuts.validationDuPaiementDesFraisDeDossier,
   REFUSER_RDE: {
-    DEFAVORABLE:
-      EtapesTypesEtapesStatuts.recepisseDeDeclarationLoiSurLeau.DEFAVORABLE
+    DEFAVORABLE: EtapesTypesEtapesStatuts.recepisseDeDeclarationLoiSurLeau.DEFAVORABLE,
   },
   ACCEPTER_RDE: {
-    FAVORABLE:
-      EtapesTypesEtapesStatuts.recepisseDeDeclarationLoiSurLeau.FAVORABLE
+    FAVORABLE: EtapesTypesEtapesStatuts.recepisseDeDeclarationLoiSurLeau.FAVORABLE,
   },
-  DEMANDER_COMPLEMENTS_RDE:
-    EtapesTypesEtapesStatuts.demandeDeComplements_RecepisseDeDeclarationLoiSurLeau_,
-  RECEVOIR_COMPLEMENTS_RDE:
-    EtapesTypesEtapesStatuts.receptionDeComplements_RecepisseDeDeclarationLoiSurLeau_,
-  NOTIFIER_DEMANDEUR_CSS:
-    EtapesTypesEtapesStatuts.notificationAuDemandeur_ClassementSansSuite_,
+  DEMANDER_COMPLEMENTS_RDE: EtapesTypesEtapesStatuts.demandeDeComplements_RecepisseDeDeclarationLoiSurLeau_,
+  RECEVOIR_COMPLEMENTS_RDE: EtapesTypesEtapesStatuts.receptionDeComplements_RecepisseDeDeclarationLoiSurLeau_,
+  NOTIFIER_DEMANDEUR_CSS: EtapesTypesEtapesStatuts.notificationAuDemandeur_ClassementSansSuite_,
   DECLARER_DEMANDE_FAVORABLE: {
-    FAVORABLE: EtapesTypesEtapesStatuts.recevabiliteDeLaDemande.FAVORABLE
+    FAVORABLE: EtapesTypesEtapesStatuts.recevabiliteDeLaDemande.FAVORABLE,
   },
   DECLARER_DEMANDE_DEFAVORABLE: {
-    DEFAVORABLE: EtapesTypesEtapesStatuts.recevabiliteDeLaDemande.DEFAVORABLE
+    DEFAVORABLE: EtapesTypesEtapesStatuts.recevabiliteDeLaDemande.DEFAVORABLE,
   },
-  FAIRE_EXPERTISE_ONF:
-    EtapesTypesEtapesStatuts.expertiseDeLOfficeNationalDesForets,
+  FAIRE_EXPERTISE_ONF: EtapesTypesEtapesStatuts.expertiseDeLOfficeNationalDesForets,
   RENDRE_AVIS_ONF: EtapesTypesEtapesStatuts.avisDeLOfficeNationalDesForets,
-  DEMANDER_INFORMATION_AVIS_ONF:
-    EtapesTypesEtapesStatuts.demandeDinformations_AvisDeLOfficeNationalDesForets_,
-  RECEVOIR_INFORMATION_AVIS_ONF:
-    EtapesTypesEtapesStatuts.receptionDinformation_AvisDeLOfficeNationalDesForets_,
-  FAIRE_SAISINE_CARM:
-    EtapesTypesEtapesStatuts.saisineDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_,
+  DEMANDER_INFORMATION_AVIS_ONF: EtapesTypesEtapesStatuts.demandeDinformations_AvisDeLOfficeNationalDesForets_,
+  RECEVOIR_INFORMATION_AVIS_ONF: EtapesTypesEtapesStatuts.receptionDinformation_AvisDeLOfficeNationalDesForets_,
+  FAIRE_SAISINE_CARM: EtapesTypesEtapesStatuts.saisineDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_,
   RENDRE_AVIS_FAVORABLE_CARM: {
-    FAVORABLE:
-      EtapesTypesEtapesStatuts
-        .avisDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_.FAVORABLE
+    FAVORABLE: EtapesTypesEtapesStatuts.avisDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_.FAVORABLE,
   },
   RENDRE_AVIS_DEFAVORABLE_CARM: {
-    DEFAVORABLE:
-      EtapesTypesEtapesStatuts
-        .avisDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_
-        .DEFAVORABLE
+    DEFAVORABLE: EtapesTypesEtapesStatuts.avisDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_.DEFAVORABLE,
   },
   RENDRE_AVIS_AJOURNE_CARM: {
-    AJOURNE:
-      EtapesTypesEtapesStatuts
-        .avisDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_.AJOURNE
+    AJOURNE: EtapesTypesEtapesStatuts.avisDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_.AJOURNE,
   },
-  NOTIFIER_DEMANDEUR_AVIS_AJOURNE_CARM:
-    EtapesTypesEtapesStatuts.notificationAuDemandeur_AjournementDeLaCARM_,
-  DEMANDER_COMPLEMENT_SAISINE_CARM:
-    EtapesTypesEtapesStatuts.demandeDeComplements_SaisineDeLaCARM_,
-  RECEVOIR_COMPLEMENT_SAISINE_CARM:
-    EtapesTypesEtapesStatuts.receptionDeComplements_SaisineDeLaCARM_,
-  NOTIFIER_DEMANDEUR_AVIS_FAVORABLE_CARM:
-    EtapesTypesEtapesStatuts.notificationAuDemandeur_AvisFavorableDeLaCARM_,
-  NOTIFIER_DEMANDEUR_AVIS_DEFAVORABLE_CARM:
-    EtapesTypesEtapesStatuts.notificationAuDemandeur_AvisDefavorable_,
+  NOTIFIER_DEMANDEUR_AVIS_AJOURNE_CARM: EtapesTypesEtapesStatuts.notificationAuDemandeur_AjournementDeLaCARM_,
+  DEMANDER_COMPLEMENT_SAISINE_CARM: EtapesTypesEtapesStatuts.demandeDeComplements_SaisineDeLaCARM_,
+  RECEVOIR_COMPLEMENT_SAISINE_CARM: EtapesTypesEtapesStatuts.receptionDeComplements_SaisineDeLaCARM_,
+  NOTIFIER_DEMANDEUR_AVIS_FAVORABLE_CARM: EtapesTypesEtapesStatuts.notificationAuDemandeur_AvisFavorableDeLaCARM_,
+  NOTIFIER_DEMANDEUR_AVIS_DEFAVORABLE_CARM: EtapesTypesEtapesStatuts.notificationAuDemandeur_AvisDefavorable_,
   MODIFIER_DEMANDE: EtapesTypesEtapesStatuts.modificationDeLaDemande,
-  PAYER_FRAIS_DE_DOSSIER_COMPLEMENTAIRES:
-    EtapesTypesEtapesStatuts.paiementDesFraisDeDossierComplementaires,
-  VALIDER_PAIEMENT_FRAIS_DE_DOSSIER_COMPLEMENTAIRES:
-    EtapesTypesEtapesStatuts.validationDuPaiementDesFraisDeDossierComplementaires,
-  SIGNER_AUTORISATION_DE_RECHERCHE_MINIERE:
-    EtapesTypesEtapesStatuts.signatureDeLautorisationDeRechercheMiniere,
-  DEMANDER_INFORMATION_MCR:
-    EtapesTypesEtapesStatuts.demandeDinformations_RecevabiliteDeLaDemande_,
-  RECEVOIR_INFORMATION_MCR:
-    EtapesTypesEtapesStatuts.receptionDinformation_RecevabiliteDeLaDemande_,
-  DEMANDER_COMPLEMENTS_MCR:
-    EtapesTypesEtapesStatuts.demandeDeComplements_RecevabiliteDeLaDemande_,
-  RECEVOIR_COMPLEMENTS_MCR:
-    EtapesTypesEtapesStatuts.receptionDeComplements_RecevabiliteDeLaDemande_,
-  DEMANDER_INFORMATION_EXPERTISE_ONF:
-    EtapesTypesEtapesStatuts.demandeDinformations_ExpertiseDeLOfficeNationalDesForets_,
-  RECEVOIR_INFORMATION_EXPERTISE_ONF:
-    EtapesTypesEtapesStatuts.receptionDinformation_ExpertiseDeLOfficeNationalDesForets_,
-  RECEVOIR_EXPERTISE_SERVICE_EAU:
-    EtapesTypesEtapesStatuts.expertiseDREALOuDGTMServiceEau,
-  RECEVOIR_EXPERTISE_SERVICE_MINES:
-    EtapesTypesEtapesStatuts.expertiseDGTMServicePreventionDesRisquesEtIndustriesExtractives_DATE_,
-  NOTIFIER_DEMANDEUR_SIGNATURE_ARM:
-    EtapesTypesEtapesStatuts.notificationAuDemandeur_SignatureDeLautorisationDeRechercheMiniere_,
-  FAIRE_AVENANT_ARM:
-    EtapesTypesEtapesStatuts.avenantALautorisationDeRechercheMiniere,
-  NOTIFIER_AVENANT_ARM:
-    EtapesTypesEtapesStatuts.notificationAuDemandeur_SignatureDeLavenantALautorisationDeRechercheMiniere_
+  PAYER_FRAIS_DE_DOSSIER_COMPLEMENTAIRES: EtapesTypesEtapesStatuts.paiementDesFraisDeDossierComplementaires,
+  VALIDER_PAIEMENT_FRAIS_DE_DOSSIER_COMPLEMENTAIRES: EtapesTypesEtapesStatuts.validationDuPaiementDesFraisDeDossierComplementaires,
+  SIGNER_AUTORISATION_DE_RECHERCHE_MINIERE: EtapesTypesEtapesStatuts.signatureDeLautorisationDeRechercheMiniere,
+  DEMANDER_INFORMATION_MCR: EtapesTypesEtapesStatuts.demandeDinformations_RecevabiliteDeLaDemande_,
+  RECEVOIR_INFORMATION_MCR: EtapesTypesEtapesStatuts.receptionDinformation_RecevabiliteDeLaDemande_,
+  DEMANDER_COMPLEMENTS_MCR: EtapesTypesEtapesStatuts.demandeDeComplements_RecevabiliteDeLaDemande_,
+  RECEVOIR_COMPLEMENTS_MCR: EtapesTypesEtapesStatuts.receptionDeComplements_RecevabiliteDeLaDemande_,
+  DEMANDER_INFORMATION_EXPERTISE_ONF: EtapesTypesEtapesStatuts.demandeDinformations_ExpertiseDeLOfficeNationalDesForets_,
+  RECEVOIR_INFORMATION_EXPERTISE_ONF: EtapesTypesEtapesStatuts.receptionDinformation_ExpertiseDeLOfficeNationalDesForets_,
+  RECEVOIR_EXPERTISE_SERVICE_EAU: EtapesTypesEtapesStatuts.expertiseDREALOuDGTMServiceEau,
+  RECEVOIR_EXPERTISE_SERVICE_MINES: EtapesTypesEtapesStatuts.expertiseDGTMServicePreventionDesRisquesEtIndustriesExtractives_DATE_,
+  NOTIFIER_DEMANDEUR_SIGNATURE_ARM: EtapesTypesEtapesStatuts.notificationAuDemandeur_SignatureDeLautorisationDeRechercheMiniere_,
+  FAIRE_AVENANT_ARM: EtapesTypesEtapesStatuts.avenantALautorisationDeRechercheMiniere,
+  NOTIFIER_AVENANT_ARM: EtapesTypesEtapesStatuts.notificationAuDemandeur_SignatureDeLavenantALautorisationDeRechercheMiniere_,
 } as const
 
 // Related to https://github.com/Microsoft/TypeScript/issues/12870
-export const EVENTS = Object.keys(trad) as Array<
-  Extract<keyof typeof trad, string>
->
+export const EVENTS = Object.keys(trad) as Array<Extract<keyof typeof trad, string>>
 
 export class ArmOctMachine extends CaminoMachine<OctARMContext, XStateEvent> {
   constructor() {
@@ -219,8 +170,8 @@ export class ArmOctMachine extends CaminoMachine<OctARMContext, XStateEvent> {
         contenu = {
           arm: {
             mecanise: event.mecanise,
-            franchissements: event.franchissements
-          }
+            franchissements: event.franchissements,
+          },
         }
         break
       }
@@ -234,21 +185,15 @@ export class ArmOctMachine extends CaminoMachine<OctARMContext, XStateEvent> {
     return Object.values(dbEtat).map(({ etapeTypeId, etapeStatutId }) => ({
       etapeTypeId,
       etapeStatutId,
-      contenu
+      contenu,
     }))
   }
 
   eventFrom(etape: Etape): XStateEvent {
-    const entries = Object.entries(trad).filter(
-      (entry): entry is [Event, DBEtat] => EVENTS.includes(entry[0])
-    )
+    const entries = Object.entries(trad).filter((entry): entry is [Event, DBEtat] => EVENTS.includes(entry[0]))
 
     const entry = entries.find(([_key, dbEtat]) => {
-      return Object.values(dbEtat).some(
-        dbEtatSingle =>
-          dbEtatSingle.etapeTypeId === etape.etapeTypeId &&
-          dbEtatSingle.etapeStatutId === etape.etapeStatutId
-      )
+      return Object.values(dbEtat).some(dbEtatSingle => dbEtatSingle.etapeTypeId === etape.etapeTypeId && dbEtatSingle.etapeStatutId === etape.etapeStatutId)
     })
 
     if (entry) {
@@ -294,7 +239,7 @@ export class ArmOctMachine extends CaminoMachine<OctARMContext, XStateEvent> {
           { type: event, mecanise: false, franchissements: 3 },
           { type: event, mecanise: true, franchissements: null },
           { type: event, mecanise: true, franchissements: 0 },
-          { type: event, mecanise: true, franchissements: 2 }
+          { type: event, mecanise: true, franchissements: 2 },
         ]
       }
       case 'ACCEPTER_RDE':
@@ -302,7 +247,7 @@ export class ArmOctMachine extends CaminoMachine<OctARMContext, XStateEvent> {
       case 'RECEVOIR_COMPLEMENTS_RDE': {
         return [
           { type: event, franchissements: 0 },
-          { type: event, franchissements: 3 }
+          { type: event, franchissements: 3 },
         ]
       }
       default:
@@ -321,9 +266,7 @@ type MecanisationConnuMecanise = {
 }
 
 type MecanisationConnuNonMecanise = { mecanise: false }
-type MecanisationConnu =
-  | MecanisationConnuMecanise
-  | MecanisationConnuNonMecanise
+type MecanisationConnu = MecanisationConnuMecanise | MecanisationConnuNonMecanise
 
 type MecanisationInconnu = MecanisationConnu | 'inconnu'
 
@@ -333,72 +276,46 @@ export interface OctARMContext extends CaminoCommonContext {
   paiementFraisDossierValide: boolean
 }
 
-const isConnu = (
-  mecanisation: MecanisationInconnu
-): mecanisation is MecanisationConnu => {
+const isConnu = (mecanisation: MecanisationInconnu): mecanisation is MecanisationConnu => {
   return mecanisation !== 'inconnu'
 }
-const isInconnu = (
-  mecanisation: MecanisationInconnu
-): mecanisation is MecanisationInconnu => {
+const isInconnu = (mecanisation: MecanisationInconnu): mecanisation is MecanisationInconnu => {
   return !isConnu(mecanisation)
 }
 
-const isMecanise = (
-  mecanisation: MecanisationInconnu
-): mecanisation is MecanisationConnuMecanise => {
+const isMecanise = (mecanisation: MecanisationInconnu): mecanisation is MecanisationConnuMecanise => {
   return isConnu(mecanisation) && mecanisation.mecanise
 }
-const isNonMecanise = (
-  mecanisation: MecanisationInconnu
-): mecanisation is MecanisationConnuNonMecanise => {
+const isNonMecanise = (mecanisation: MecanisationInconnu): mecanisation is MecanisationConnuNonMecanise => {
   return isConnu(mecanisation) && !mecanisation.mecanise
 }
-const mustPayerFraisDossierComplementaire = (
-  mecanisation: MecanisationInconnu
-): boolean => {
-  return (
-    isMecanise(mecanisation) &&
-    !mecanisation.paiementFraisDossierComplementaireValide
-  )
+const mustPayerFraisDossierComplementaire = (mecanisation: MecanisationInconnu): boolean => {
+  return isMecanise(mecanisation) && !mecanisation.paiementFraisDossierComplementaireValide
 }
 
-const fraisDeDossierComplementairesPayeOuExempte = (
-  mecanisation: MecanisationInconnu
-): boolean => {
-  return (
-    isConnu(mecanisation) &&
-    (!mecanisation.mecanise ||
-      mecanisation.paiementFraisDossierComplementaireValide)
-  )
+const fraisDeDossierComplementairesPayeOuExempte = (mecanisation: MecanisationInconnu): boolean => {
+  return isConnu(mecanisation) && (!mecanisation.mecanise || mecanisation.paiementFraisDossierComplementaireValide)
 }
 
 const validationFraisApresDesistementOuClassementSansSuite = [
   {
-    target:
-      'demandeEnConstructionOuDeposeeOuEnInstructionMachine.pasRdeMachine.validationDesFraisDossierAFaire',
+    target: 'demandeEnConstructionOuDeposeeOuEnInstructionMachine.pasRdeMachine.validationDesFraisDossierAFaire',
     cond: (context: OctARMContext) => {
       return !context.paiementFraisDossierValide
-    }
+    },
   },
   {
     target: 'validationDuPaiementDesFraisDeDossierComplementairesAFaire',
     cond: (context: OctARMContext) => {
-      return (
-        context.paiementFraisDossierValide &&
-        mustPayerFraisDossierComplementaire(context.mecanisation)
-      )
-    }
+      return context.paiementFraisDossierValide && mustPayerFraisDossierComplementaire(context.mecanisation)
+    },
   },
   {
     target: 'fini',
     cond: (context: OctARMContext) => {
-      return (
-        context.paiementFraisDossierValide &&
-        fraisDeDossierComplementairesPayeOuExempte(context.mecanisation)
-      )
-    }
-  }
+      return context.paiementFraisDossierValide && fraisDeDossierComplementairesPayeOuExempte(context.mecanisation)
+    },
+  },
 ]
 
 const actionMecanisation = assign<OctARMContext>({
@@ -410,15 +327,12 @@ const actionMecanisation = assign<OctARMContext>({
     return {
       mecanise: true,
       paiementFraisDossierComplementaireValide: false,
-      franchissementCoursEau: 0
+      franchissementCoursEau: 0,
     }
-  }
+  },
 })
 
-const actionAccepterOuRefuserRDE = assign<
-  OctARMContext,
-  AccepterRDE | RefuserRDE
->({
+const actionAccepterOuRefuserRDE = assign<OctARMContext, AccepterRDE | RefuserRDE>({
   mecanisation: (context, event) => {
     if (event.franchissements === null || event.franchissements < 1) {
       throw new Error('cas impossible')
@@ -426,22 +340,19 @@ const actionAccepterOuRefuserRDE = assign<
     if (isMecanise(context.mecanisation)) {
       return {
         ...context.mecanisation,
-        franchissementCoursEau: event.franchissements
+        franchissementCoursEau: event.franchissements,
       }
     }
 
     return {
       mecanise: true,
       paiementFraisDossierComplementaireValide: false,
-      franchissementCoursEau: event.franchissements
+      franchissementCoursEau: event.franchissements,
     }
-  }
+  },
 })
 
-const actionRecevoirComplementsRde = assign<
-  OctARMContext,
-  RecevoirComplementsRde
->({
+const actionRecevoirComplementsRde = assign<OctARMContext, RecevoirComplementsRde>({
   mecanisation: (context, event) => {
     if (event.franchissements === null) {
       throw new Error('cas impossible')
@@ -449,16 +360,16 @@ const actionRecevoirComplementsRde = assign<
     if (isMecanise(context.mecanisation)) {
       return {
         ...context.mecanisation,
-        franchissementCoursEau: event.franchissements
+        franchissementCoursEau: event.franchissements,
       }
     }
 
     return {
       mecanise: true,
       paiementFraisDossierComplementaireValide: false,
-      franchissementCoursEau: event.franchissements
+      franchissementCoursEau: event.franchissements,
     }
-  }
+  },
 })
 
 const armOctMachine = createMachine<OctARMContext, XStateEvent>({
@@ -470,39 +381,35 @@ const armOctMachine = createMachine<OctARMContext, XStateEvent>({
     expertiseONFFaite: false,
     visibilite: 'confidentielle',
     demarcheStatut: DemarchesStatutsIds.EnConstruction,
-    paiementFraisDossierValide: false
+    paiementFraisDossierValide: false,
   },
   on: {
     MODIFIER_DEMANDE: {
       actions: () => ({}),
-      cond: context =>
-        context.demarcheStatut === DemarchesStatutsIds.EnInstruction &&
-        context.visibilite === 'confidentielle'
+      cond: context => context.demarcheStatut === DemarchesStatutsIds.EnInstruction && context.visibilite === 'confidentielle',
     },
     DESISTER_PAR_LE_DEMANDEUR: {
       target: 'desistementDuDemandeurFait',
-      cond: context =>
-        context.demarcheStatut === DemarchesStatutsIds.EnInstruction,
+      cond: context => context.demarcheStatut === DemarchesStatutsIds.EnInstruction,
       actions: assign<OctARMContext, { type: 'DESISTER_PAR_LE_DEMANDEUR' }>({
         demarcheStatut: DemarchesStatutsIds.Desiste,
-        visibilite: 'publique'
-      })
+        visibilite: 'publique',
+      }),
     },
     CLASSER_SANS_SUITE: {
       target: 'decisionDeClassementSansSuiteFait',
-      cond: context =>
-        context.demarcheStatut === DemarchesStatutsIds.EnInstruction,
+      cond: context => context.demarcheStatut === DemarchesStatutsIds.EnInstruction,
       actions: assign<OctARMContext, { type: 'CLASSER_SANS_SUITE' }>({
         demarcheStatut: DemarchesStatutsIds.ClasseSansSuite,
-        visibilite: 'publique'
-      })
-    }
+        visibilite: 'publique',
+      }),
+    },
   },
   states: {
     demandeEnConstructionOuDeposeeOuEnInstructionMachine: {
       type: 'parallel',
       onDone: {
-        target: 'saisineCommissionAutorisationsDeRecherchesMinieresAFaire'
+        target: 'saisineCommissionAutorisationsDeRecherchesMinieresAFaire',
       },
       states: {
         pasRdeMachine: {
@@ -520,81 +427,60 @@ const armOctMachine = createMachine<OctARMContext, XStateEvent>({
                           target: 'demandeADeposer',
                           actions: assign<OctARMContext, FaireDemandeEvent>({
                             mecanisation: (context, event) => {
-                              if (
-                                isMecanise(context.mecanisation) &&
-                                context.mecanisation.franchissementCoursEau >
-                                  0 &&
-                                (event.franchissements === null ||
-                                  event.franchissements === 0)
-                              ) {
-                                throw new Error(
-                                  "pas le droit d'avoir pas de franchissements alors qu'une rde a été faite"
-                                )
+                              if (isMecanise(context.mecanisation) && context.mecanisation.franchissementCoursEau > 0 && (event.franchissements === null || event.franchissements === 0)) {
+                                throw new Error("pas le droit d'avoir pas de franchissements alors qu'une rde a été faite")
                               } else {
                                 return event.mecanise
                                   ? {
                                       mecanise: true,
-                                      paiementFraisDossierComplementaireValide:
-                                        false,
-                                      franchissementCoursEau:
-                                        event.franchissements ?? 0
+                                      paiementFraisDossierComplementaireValide: false,
+                                      franchissementCoursEau: event.franchissements ?? 0,
                                     }
                                   : { mecanise: false }
                               }
-                            }
+                            },
                           }),
                           cond: (context, event) => {
-                            if (
-                              isMecanise(context.mecanisation) &&
-                              !event.mecanise
-                            ) {
+                            if (isMecanise(context.mecanisation) && !event.mecanise) {
                               return false
                             }
 
-                            if (
-                              isMecanise(context.mecanisation) &&
-                              context.mecanisation.franchissementCoursEau > 0 &&
-                              (event.franchissements === null ||
-                                event.franchissements === 0)
-                            ) {
+                            if (isMecanise(context.mecanisation) && context.mecanisation.franchissementCoursEau > 0 && (event.franchissements === null || event.franchissements === 0)) {
                               return false
                             }
 
                             return true
-                          }
-                        }
-                      }
+                          },
+                        },
+                      },
                     },
                     demandeADeposer: {
                       on: {
                         DEPOSER_DEMANDE: {
                           target: 'demandeDeposee',
-                          actions: assign<
-                            OctARMContext,
-                            { type: 'DEPOSER_DEMANDE' }
-                          >({
-                            demarcheStatut: DemarchesStatutsIds.EnInstruction
-                          })
-                        }
-                      }
+                          actions: assign<OctARMContext, { type: 'DEPOSER_DEMANDE' }>({
+                            demarcheStatut: DemarchesStatutsIds.EnInstruction,
+                          }),
+                        },
+                      },
                     },
                     demandeDeposee: {
-                      type: 'final'
-                    }
-                  }
+                      type: 'final',
+                    },
+                  },
                 },
                 paiementDesFraisDeDossierMachine: {
                   initial: 'paiementDesFraisDeDossierAFaire',
                   states: {
                     paiementDesFraisDeDossierAFaire: {
                       on: {
-                        PAYER_FRAIS_DE_DOSSIER: 'paiementDesFraisDeDossierFait'
-                      }
+                        PAYER_FRAIS_DE_DOSSIER: 'paiementDesFraisDeDossierFait',
+                      },
                     },
                     paiementDesFraisDeDossierFait: {
-                      type: 'final'
-                    }
-                  }
+                      type: 'final',
+                    },
+                  },
                 },
                 decisionAutoriteEnvironnementaleMachine: {
                   initial: 'decisionAutoriteEnvironnementaleAFaire',
@@ -602,72 +488,67 @@ const armOctMachine = createMachine<OctARMContext, XStateEvent>({
                     decisionAutoriteEnvironnementaleAFaire: {
                       always: {
                         target: 'decisionAutoriteEnvironnementaleExemptee',
-                        cond: context => isNonMecanise(context.mecanisation)
+                        cond: context => isNonMecanise(context.mecanisation),
                       },
                       on: {
                         DEMANDER_MODIFICATION_DE_LA_DEMANDE: {
                           target: 'modificationDeLaDemandeAFaire',
-                          actions: actionMecanisation
+                          actions: actionMecanisation,
                         },
                         EXEMPTER_DAE: {
                           target: 'decisionAutoriteEnvironnementaleExemptee',
-                          actions: actionMecanisation
+                          actions: actionMecanisation,
                         },
                         DEMANDER_COMPLEMENTS_DAE: {
                           target: 'recevoirComplementDAEAFaire',
-                          cond: context =>
-                            context.demarcheStatut !==
-                            DemarchesStatutsIds.EnConstruction
-                        }
-                      }
+                          cond: context => context.demarcheStatut !== DemarchesStatutsIds.EnConstruction,
+                        },
+                      },
                     },
                     recevoirComplementDAEAFaire: {
                       on: {
-                        RECEVOIR_COMPLEMENTS_DAE:
-                          'decisionAutoriteEnvironnementaleAFaire',
+                        RECEVOIR_COMPLEMENTS_DAE: 'decisionAutoriteEnvironnementaleAFaire',
                         EXEMPTER_DAE: {
                           target: 'decisionAutoriteEnvironnementaleExemptee',
-                          actions: actionMecanisation
+                          actions: actionMecanisation,
                         },
                         DEMANDER_MODIFICATION_DE_LA_DEMANDE: {
                           target: 'modificationDeLaDemandeAFaire',
-                          actions: actionMecanisation
-                        }
-                      }
+                          actions: actionMecanisation,
+                        },
+                      },
                     },
                     modificationDeLaDemandeAFaire: {
                       on: {
-                        MODIFIER_DEMANDE_APRES_DAE:
-                          'modificationDeLaDemandeFaite'
-                      }
+                        MODIFIER_DEMANDE_APRES_DAE: 'modificationDeLaDemandeFaite',
+                      },
                     },
                     decisionAutoriteEnvironnementaleExemptee: { type: 'final' },
-                    modificationDeLaDemandeFaite: { type: 'final' }
-                  }
-                }
+                    modificationDeLaDemandeFaite: { type: 'final' },
+                  },
+                },
               },
 
               onDone: {
-                target: 'completudeDeLaDemandeAFaire'
-              }
+                target: 'completudeDeLaDemandeAFaire',
+              },
             },
             completudeDeLaDemandeAFaire: {
               on: {
                 REFUSER_COMPLETUDE: 'demandeDeComplementsPourCompletudeAFaire',
-                ACCEPTER_COMPLETUDE: 'validationDesFraisDossierAFaire'
+                ACCEPTER_COMPLETUDE: 'validationDesFraisDossierAFaire',
               },
-              tags: [tags.responsable['ope-ptmg-973-01']]
+              tags: [tags.responsable['ope-ptmg-973-01']],
             },
             demandeDeComplementsPourCompletudeAFaire: {
               on: {
-                DEMANDER_COMPLEMENTS_COMPLETUDE:
-                  'receptionDeComplementsPourCompletudeAFaire'
-              }
+                DEMANDER_COMPLEMENTS_COMPLETUDE: 'receptionDeComplementsPourCompletudeAFaire',
+              },
             },
             receptionDeComplementsPourCompletudeAFaire: {
               on: {
-                RECEVOIR_COMPLEMENTS_COMPLETUDE: 'completudeDeLaDemandeAFaire'
-              }
+                RECEVOIR_COMPLEMENTS_COMPLETUDE: 'completudeDeLaDemandeAFaire',
+              },
             },
             validationDesFraisDossierAFaire: {
               tags: [tags.responsable['ope-onf-973-01']],
@@ -675,61 +556,46 @@ const armOctMachine = createMachine<OctARMContext, XStateEvent>({
                 VALIDER_FRAIS_DE_DOSSIER: [
                   {
                     target: 'recevabiliteDeLaDemandeAFaire',
-                    actions: assign<
-                      OctARMContext,
-                      { type: 'VALIDER_FRAIS_DE_DOSSIER' }
-                    >({
-                      paiementFraisDossierValide: true
+                    actions: assign<OctARMContext, { type: 'VALIDER_FRAIS_DE_DOSSIER' }>({
+                      paiementFraisDossierValide: true,
                     }),
-                    cond: context =>
-                      context.demarcheStatut !== DemarchesStatutsIds.Desiste &&
-                      context.demarcheStatut !==
-                        DemarchesStatutsIds.ClasseSansSuite
+                    cond: context => context.demarcheStatut !== DemarchesStatutsIds.Desiste && context.demarcheStatut !== DemarchesStatutsIds.ClasseSansSuite,
                   },
                   {
                     target: '#fini',
-                    cond: context =>
-                      (context.demarcheStatut === DemarchesStatutsIds.Desiste ||
-                        context.demarcheStatut ===
-                          DemarchesStatutsIds.ClasseSansSuite) &&
-                      isNonMecanise(context.mecanisation)
+                    cond: context => (context.demarcheStatut === DemarchesStatutsIds.Desiste || context.demarcheStatut === DemarchesStatutsIds.ClasseSansSuite) && isNonMecanise(context.mecanisation),
                   },
                   {
-                    target:
-                      '#validationDuPaiementDesFraisDeDossierComplementairesAFaire',
+                    target: '#validationDuPaiementDesFraisDeDossierComplementairesAFaire',
                     cond: context =>
-                      (context.demarcheStatut === DemarchesStatutsIds.Desiste ||
-                        context.demarcheStatut ===
-                          DemarchesStatutsIds.ClasseSansSuite) &&
-                      mustPayerFraisDossierComplementaire(context.mecanisation)
-                  }
-                ]
-              }
+                      (context.demarcheStatut === DemarchesStatutsIds.Desiste || context.demarcheStatut === DemarchesStatutsIds.ClasseSansSuite) &&
+                      mustPayerFraisDossierComplementaire(context.mecanisation),
+                  },
+                ],
+              },
             },
             recevabiliteDeLaDemandeAFaire: {
               tags: [tags.responsable['ope-onf-973-01']],
               on: {
-                DEMANDER_INFORMATION_MCR:
-                  'receptionInformationPourLaRecevabiliteAFaire',
-                DEMANDER_COMPLEMENTS_MCR:
-                  'receptionComplementsPourLaRecevabiliteAFaire',
+                DEMANDER_INFORMATION_MCR: 'receptionInformationPourLaRecevabiliteAFaire',
+                DEMANDER_COMPLEMENTS_MCR: 'receptionComplementsPourLaRecevabiliteAFaire',
                 DECLARER_DEMANDE_FAVORABLE: 'expertisesMachine',
-                DECLARER_DEMANDE_DEFAVORABLE: 'avisONFARendre'
-              }
+                DECLARER_DEMANDE_DEFAVORABLE: 'avisONFARendre',
+              },
             },
             receptionInformationPourLaRecevabiliteAFaire: {
               on: {
                 RECEVOIR_INFORMATION_MCR: 'recevabiliteDeLaDemandeAFaire',
                 DECLARER_DEMANDE_FAVORABLE: 'expertisesMachine',
-                DECLARER_DEMANDE_DEFAVORABLE: 'avisONFARendre'
-              }
+                DECLARER_DEMANDE_DEFAVORABLE: 'avisONFARendre',
+              },
             },
             receptionComplementsPourLaRecevabiliteAFaire: {
               on: {
                 RECEVOIR_COMPLEMENTS_MCR: 'recevabiliteDeLaDemandeAFaire',
                 DECLARER_DEMANDE_FAVORABLE: 'expertisesMachine',
-                DECLARER_DEMANDE_DEFAVORABLE: 'avisONFARendre'
-              }
+                DECLARER_DEMANDE_DEFAVORABLE: 'avisONFARendre',
+              },
             },
             expertisesMachine: {
               type: 'parallel',
@@ -739,72 +605,68 @@ const armOctMachine = createMachine<OctARMContext, XStateEvent>({
                   states: {
                     expertiseONFAFaire: {
                       on: {
-                        DEMANDER_INFORMATION_EXPERTISE_ONF:
-                          'expertiseOuReceptionInformationONFAFaire',
-                        FAIRE_EXPERTISE_ONF: 'demandeAvisONFAFaire'
-                      }
+                        DEMANDER_INFORMATION_EXPERTISE_ONF: 'expertiseOuReceptionInformationONFAFaire',
+                        FAIRE_EXPERTISE_ONF: 'demandeAvisONFAFaire',
+                      },
                     },
                     expertiseOuReceptionInformationONFAFaire: {
                       on: {
                         FAIRE_EXPERTISE_ONF: 'demandeAvisONFAFaire',
-                        RECEVOIR_INFORMATION_EXPERTISE_ONF: 'expertiseONFAFaire'
-                      }
+                        RECEVOIR_INFORMATION_EXPERTISE_ONF: 'expertiseONFAFaire',
+                      },
                     },
                     demandeAvisONFAFaire: {
                       on: {
-                        DEMANDER_INFORMATION_AVIS_ONF:
-                          'receptionInformationAvisONFAFaire'
+                        DEMANDER_INFORMATION_AVIS_ONF: 'receptionInformationAvisONFAFaire',
                       },
-                      entry: assign<OctARMContext>({ expertiseONFFaite: true })
+                      entry: assign<OctARMContext>({ expertiseONFFaite: true }),
                     },
                     receptionInformationAvisONFAFaire: {
                       on: {
-                        RECEVOIR_INFORMATION_AVIS_ONF: 'demandeAvisONFAFaire'
-                      }
-                    }
-                  }
+                        RECEVOIR_INFORMATION_AVIS_ONF: 'demandeAvisONFAFaire',
+                      },
+                    },
+                  },
                 },
                 expertiseServiceEauMachine: {
                   initial: 'expertiseServiceEauAfaire',
                   states: {
                     expertiseServiceEauAfaire: {
                       on: {
-                        RECEVOIR_EXPERTISE_SERVICE_EAU:
-                          'expertiseServiceEauFait'
-                      }
+                        RECEVOIR_EXPERTISE_SERVICE_EAU: 'expertiseServiceEauFait',
+                      },
                     },
                     expertiseServiceEauFait: {
-                      type: 'final'
-                    }
-                  }
+                      type: 'final',
+                    },
+                  },
                 },
                 expertiseServiceMinesMachine: {
                   initial: 'expertiseServiceMinesAFaire',
                   states: {
                     expertiseServiceMinesAFaire: {
                       on: {
-                        RECEVOIR_EXPERTISE_SERVICE_MINES:
-                          'expertiseServiceMinesFait'
-                      }
+                        RECEVOIR_EXPERTISE_SERVICE_MINES: 'expertiseServiceMinesFait',
+                      },
                     },
-                    expertiseServiceMinesFait: { type: 'final' }
-                  }
-                }
+                    expertiseServiceMinesFait: { type: 'final' },
+                  },
+                },
               },
               on: {
                 RENDRE_AVIS_ONF: {
                   target: 'avisONFRendu',
-                  cond: context => context.expertiseONFFaite
-                }
-              }
+                  cond: context => context.expertiseONFFaite,
+                },
+              },
             },
             avisONFARendre: {
               on: {
-                RENDRE_AVIS_ONF: 'avisONFRendu'
-              }
+                RENDRE_AVIS_ONF: 'avisONFRendu',
+              },
             },
-            avisONFRendu: { type: 'final' }
-          }
+            avisONFRendu: { type: 'final' },
+          },
         },
         declarationLoiSurLEauMachine: {
           initial: 'declarationLoiSurLEauAFaire',
@@ -812,185 +674,148 @@ const armOctMachine = createMachine<OctARMContext, XStateEvent>({
             declarationLoiSurLEauAFaire: {
               always: {
                 target: 'declarationLoiSurLEauExemptee',
-                cond: context =>
-                  isNonMecanise(context.mecanisation) ||
-                  (isMecanise(context.mecanisation) &&
-                    !context.mecanisation.franchissementCoursEau) ||
-                  isInconnu(context.mecanisation)
+                cond: context => isNonMecanise(context.mecanisation) || (isMecanise(context.mecanisation) && !context.mecanisation.franchissementCoursEau) || isInconnu(context.mecanisation),
               },
               on: {
                 REFUSER_RDE: {
                   target: 'declarationLoiSurLEauFaite',
                   cond: (_context, event) => (event.franchissements ?? 0) > 0,
-                  actions: actionAccepterOuRefuserRDE
+                  actions: actionAccepterOuRefuserRDE,
                 },
                 ACCEPTER_RDE: {
                   target: 'declarationLoiSurLEauFaite',
                   cond: (_context, event) => (event.franchissements ?? 0) > 0,
-                  actions: actionAccepterOuRefuserRDE
+                  actions: actionAccepterOuRefuserRDE,
                 },
-                DEMANDER_COMPLEMENTS_RDE: 'receptionDeComplementsAFaire'
-              }
+                DEMANDER_COMPLEMENTS_RDE: 'receptionDeComplementsAFaire',
+              },
             },
             receptionDeComplementsAFaire: {
               on: {
                 RECEVOIR_COMPLEMENTS_RDE: {
                   target: 'declarationLoiSurLEauAFaire',
-                  actions: actionRecevoirComplementsRde
+                  actions: actionRecevoirComplementsRde,
                 },
                 REFUSER_RDE: {
                   target: 'declarationLoiSurLEauFaite',
-                  cond: context =>
-                    isMecanise(context.mecanisation) &&
-                    context.mecanisation.franchissementCoursEau > 0,
-                  actions: actionAccepterOuRefuserRDE
+                  cond: context => isMecanise(context.mecanisation) && context.mecanisation.franchissementCoursEau > 0,
+                  actions: actionAccepterOuRefuserRDE,
                 },
                 ACCEPTER_RDE: {
                   target: 'declarationLoiSurLEauFaite',
-                  cond: context =>
-                    isMecanise(context.mecanisation) &&
-                    context.mecanisation.franchissementCoursEau > 0,
-                  actions: actionAccepterOuRefuserRDE
+                  cond: context => isMecanise(context.mecanisation) && context.mecanisation.franchissementCoursEau > 0,
+                  actions: actionAccepterOuRefuserRDE,
                 },
-                DEMANDER_COMPLEMENTS_RDE: 'receptionDeComplementsAFaire'
-              }
+                DEMANDER_COMPLEMENTS_RDE: 'receptionDeComplementsAFaire',
+              },
             },
             declarationLoiSurLEauExemptee: {
               always: {
                 target: 'declarationLoiSurLEauAFaire',
-                cond: context =>
-                  isMecanise(context.mecanisation) &&
-                  context.mecanisation.franchissementCoursEau > 0
+                cond: context => isMecanise(context.mecanisation) && context.mecanisation.franchissementCoursEau > 0,
               },
               on: {
                 DEMANDER_COMPLEMENTS_RDE: {
                   target: 'receptionDeComplementsAFaire',
-                  cond: context =>
-                    (context.demarcheStatut === DemarchesStatutsIds.Depose ||
-                      context.demarcheStatut ===
-                        DemarchesStatutsIds.EnInstruction) &&
-                    isMecanise(context.mecanisation)
+                  cond: context => (context.demarcheStatut === DemarchesStatutsIds.Depose || context.demarcheStatut === DemarchesStatutsIds.EnInstruction) && isMecanise(context.mecanisation),
                 },
                 REFUSER_RDE: {
                   target: 'declarationLoiSurLEauFaite',
-                  cond: (context, event) =>
-                    (isInconnu(context.mecanisation) ||
-                      isMecanise(context.mecanisation)) &&
-                    (event.franchissements ?? 0) > 0,
-                  actions: actionAccepterOuRefuserRDE
+                  cond: (context, event) => (isInconnu(context.mecanisation) || isMecanise(context.mecanisation)) && (event.franchissements ?? 0) > 0,
+                  actions: actionAccepterOuRefuserRDE,
                 },
                 ACCEPTER_RDE: {
                   target: 'declarationLoiSurLEauFaite',
-                  cond: (context, event) =>
-                    (isInconnu(context.mecanisation) ||
-                      isMecanise(context.mecanisation)) &&
-                    (event.franchissements ?? 0) > 0,
-                  actions: actionAccepterOuRefuserRDE
-                }
+                  cond: (context, event) => (isInconnu(context.mecanisation) || isMecanise(context.mecanisation)) && (event.franchissements ?? 0) > 0,
+                  actions: actionAccepterOuRefuserRDE,
+                },
               },
-              type: 'final'
+              type: 'final',
             },
-            declarationLoiSurLEauFaite: { type: 'final' }
-          }
-        }
-      }
+            declarationLoiSurLEauFaite: { type: 'final' },
+          },
+        },
+      },
     },
     saisineCommissionAutorisationsDeRecherchesMinieresAFaire: {
       on: {
         FAIRE_SAISINE_CARM: {
           target: 'avisCommissionAutorisationDeRecherchesMinieresAFaire',
           actions: assign<OctARMContext, { type: 'FAIRE_SAISINE_CARM' }>({
-            visibilite: 'publique'
-          })
+            visibilite: 'publique',
+          }),
         },
         DEMANDER_COMPLEMENTS_RDE: {
           target: [
             'demandeEnConstructionOuDeposeeOuEnInstructionMachine.declarationLoiSurLEauMachine.receptionDeComplementsAFaire',
-            'demandeEnConstructionOuDeposeeOuEnInstructionMachine.pasRdeMachine.avisONFRendu'
+            'demandeEnConstructionOuDeposeeOuEnInstructionMachine.pasRdeMachine.avisONFRendu',
           ],
-          cond: context =>
-            isMecanise(context.mecanisation) &&
-            !context.mecanisation.franchissementCoursEau
+          cond: context => isMecanise(context.mecanisation) && !context.mecanisation.franchissementCoursEau,
         },
         REFUSER_RDE: {
           target: 'saisineCommissionAutorisationsDeRecherchesMinieresAFaire',
-          cond: (context, event) =>
-            isMecanise(context.mecanisation) &&
-            !context.mecanisation.franchissementCoursEau &&
-            (event.franchissements ?? 0) > 0,
-          actions: actionAccepterOuRefuserRDE
+          cond: (context, event) => isMecanise(context.mecanisation) && !context.mecanisation.franchissementCoursEau && (event.franchissements ?? 0) > 0,
+          actions: actionAccepterOuRefuserRDE,
         },
         ACCEPTER_RDE: {
           target: 'saisineCommissionAutorisationsDeRecherchesMinieresAFaire',
-          cond: (context, event) =>
-            isMecanise(context.mecanisation) &&
-            !context.mecanisation.franchissementCoursEau &&
-            (event.franchissements ?? 0) > 0,
-          actions: actionAccepterOuRefuserRDE
-        }
-      }
+          cond: (context, event) => isMecanise(context.mecanisation) && !context.mecanisation.franchissementCoursEau && (event.franchissements ?? 0) > 0,
+          actions: actionAccepterOuRefuserRDE,
+        },
+      },
     },
     avisCommissionAutorisationDeRecherchesMinieresAFaire: {
       on: {
         RENDRE_AVIS_FAVORABLE_CARM: [
           {
             target: 'signatureAutorisationDeRechercheMiniereAFaire',
-            cond: context => isNonMecanise(context.mecanisation)
+            cond: context => isNonMecanise(context.mecanisation),
           },
           {
-            target:
-              'notificationDuDemandeurFraisDeDossierComplementairesAFaire',
-            cond: context => isMecanise(context.mecanisation)
-          }
+            target: 'notificationDuDemandeurFraisDeDossierComplementairesAFaire',
+            cond: context => isMecanise(context.mecanisation),
+          },
         ],
         RENDRE_AVIS_DEFAVORABLE_CARM: {
           target: 'notificationDuDemandeurAvisDefavorableCARMAFaire',
-          actions: assign<
-            OctARMContext,
-            { type: 'RENDRE_AVIS_DEFAVORABLE_CARM' }
-          >({
-            demarcheStatut: DemarchesStatutsIds.Rejete
-          })
+          actions: assign<OctARMContext, { type: 'RENDRE_AVIS_DEFAVORABLE_CARM' }>({
+            demarcheStatut: DemarchesStatutsIds.Rejete,
+          }),
         },
-        RENDRE_AVIS_AJOURNE_CARM: 'notificationDuDemandeurAvisAjourneCARMAFaire'
-      }
+        RENDRE_AVIS_AJOURNE_CARM: 'notificationDuDemandeurAvisAjourneCARMAFaire',
+      },
     },
     notificationDuDemandeurAvisAjourneCARMAFaire: {
-      on: { NOTIFIER_DEMANDEUR_AVIS_AJOURNE_CARM: 'saisineCARMAFaire' }
+      on: { NOTIFIER_DEMANDEUR_AVIS_AJOURNE_CARM: 'saisineCARMAFaire' },
     },
     saisineCARMAFaire: {
       on: {
-        DEMANDER_COMPLEMENT_SAISINE_CARM:
-          'receptionComplementSaisineCARMAFaire',
-        FAIRE_SAISINE_CARM:
-          'avisCommissionAutorisationDeRecherchesMinieresAFaire'
-      }
+        DEMANDER_COMPLEMENT_SAISINE_CARM: 'receptionComplementSaisineCARMAFaire',
+        FAIRE_SAISINE_CARM: 'avisCommissionAutorisationDeRecherchesMinieresAFaire',
+      },
     },
     receptionComplementSaisineCARMAFaire: {
       on: {
         RECEVOIR_COMPLEMENT_SAISINE_CARM: 'saisineCARMAFaire',
-        FAIRE_SAISINE_CARM:
-          'avisCommissionAutorisationDeRecherchesMinieresAFaire'
-      }
+        FAIRE_SAISINE_CARM: 'avisCommissionAutorisationDeRecherchesMinieresAFaire',
+      },
     },
     notificationDuDemandeurAvisDefavorableCARMAFaire: {
       on: {
         NOTIFIER_DEMANDEUR_AVIS_DEFAVORABLE_CARM: {
-          target: 'fini'
-        }
-      }
+          target: 'fini',
+        },
+      },
     },
     notificationDuDemandeurFraisDeDossierComplementairesAFaire: {
       on: {
-        NOTIFIER_DEMANDEUR_AVIS_FAVORABLE_CARM:
-          'paiementDesFraisDeDossierComplementairesAFaire'
-      }
+        NOTIFIER_DEMANDEUR_AVIS_FAVORABLE_CARM: 'paiementDesFraisDeDossierComplementairesAFaire',
+      },
     },
     paiementDesFraisDeDossierComplementairesAFaire: {
       on: {
-        PAYER_FRAIS_DE_DOSSIER_COMPLEMENTAIRES:
-          'validationDuPaiementDesFraisDeDossierComplementairesAFaire'
-      }
+        PAYER_FRAIS_DE_DOSSIER_COMPLEMENTAIRES: 'validationDuPaiementDesFraisDeDossierComplementairesAFaire',
+      },
     },
     validationDuPaiementDesFraisDeDossierComplementairesAFaire: {
       tags: [tags.responsable['ope-onf-973-01']],
@@ -999,10 +824,7 @@ const armOctMachine = createMachine<OctARMContext, XStateEvent>({
         VALIDER_PAIEMENT_FRAIS_DE_DOSSIER_COMPLEMENTAIRES: [
           {
             target: 'signatureAutorisationDeRechercheMiniereAFaire',
-            actions: assign<
-              OctARMContext,
-              { type: 'VALIDER_PAIEMENT_FRAIS_DE_DOSSIER_COMPLEMENTAIRES' }
-            >({
+            actions: assign<OctARMContext, { type: 'VALIDER_PAIEMENT_FRAIS_DE_DOSSIER_COMPLEMENTAIRES' }>({
               mecanisation: context => {
                 if (!isMecanise(context.mecanisation)) {
                   throw new Error('cas impossible')
@@ -1010,20 +832,15 @@ const armOctMachine = createMachine<OctARMContext, XStateEvent>({
 
                 return {
                   ...context.mecanisation,
-                  paiementFraisDossierComplementaireValide: true
+                  paiementFraisDossierComplementaireValide: true,
                 }
-              }
+              },
             }),
-            cond: context =>
-              context.demarcheStatut !== DemarchesStatutsIds.Desiste &&
-              context.demarcheStatut !== DemarchesStatutsIds.ClasseSansSuite
+            cond: context => context.demarcheStatut !== DemarchesStatutsIds.Desiste && context.demarcheStatut !== DemarchesStatutsIds.ClasseSansSuite,
           },
           {
             target: '#fini',
-            actions: assign<
-              OctARMContext,
-              { type: 'VALIDER_PAIEMENT_FRAIS_DE_DOSSIER_COMPLEMENTAIRES' }
-            >({
+            actions: assign<OctARMContext, { type: 'VALIDER_PAIEMENT_FRAIS_DE_DOSSIER_COMPLEMENTAIRES' }>({
               mecanisation: context => {
                 if (!isMecanise(context.mecanisation)) {
                   throw new Error('cas impossible')
@@ -1031,69 +848,61 @@ const armOctMachine = createMachine<OctARMContext, XStateEvent>({
 
                 return {
                   ...context.mecanisation,
-                  paiementFraisDossierComplementaireValide: true
+                  paiementFraisDossierComplementaireValide: true,
                 }
-              }
+              },
             }),
-            cond: context =>
-              context.demarcheStatut === DemarchesStatutsIds.Desiste ||
-              context.demarcheStatut === DemarchesStatutsIds.ClasseSansSuite
-          }
-        ]
-      }
+            cond: context => context.demarcheStatut === DemarchesStatutsIds.Desiste || context.demarcheStatut === DemarchesStatutsIds.ClasseSansSuite,
+          },
+        ],
+      },
     },
     signatureAutorisationDeRechercheMiniereAFaire: {
       on: {
         SIGNER_AUTORISATION_DE_RECHERCHE_MINIERE: [
           {
             target: 'avenantARMAFaire',
-            actions: assign<
-              OctARMContext,
-              { type: 'SIGNER_AUTORISATION_DE_RECHERCHE_MINIERE' }
-            >({
-              demarcheStatut: DemarchesStatutsIds.Accepte
+            actions: assign<OctARMContext, { type: 'SIGNER_AUTORISATION_DE_RECHERCHE_MINIERE' }>({
+              demarcheStatut: DemarchesStatutsIds.Accepte,
             }),
-            cond: context => isMecanise(context.mecanisation)
+            cond: context => isMecanise(context.mecanisation),
           },
           {
             target: 'notificationSignatureARMAFaire',
-            actions: assign<
-              OctARMContext,
-              { type: 'SIGNER_AUTORISATION_DE_RECHERCHE_MINIERE' }
-            >({
-              demarcheStatut: DemarchesStatutsIds.Accepte
+            actions: assign<OctARMContext, { type: 'SIGNER_AUTORISATION_DE_RECHERCHE_MINIERE' }>({
+              demarcheStatut: DemarchesStatutsIds.Accepte,
             }),
-            cond: context => isNonMecanise(context.mecanisation)
-          }
-        ]
-      }
+            cond: context => isNonMecanise(context.mecanisation),
+          },
+        ],
+      },
     },
     notificationSignatureARMAFaire: {
-      on: { NOTIFIER_DEMANDEUR_SIGNATURE_ARM: 'avenantARMAFaire' }
+      on: { NOTIFIER_DEMANDEUR_SIGNATURE_ARM: 'avenantARMAFaire' },
     },
     avenantARMAFaire: {
-      on: { FAIRE_AVENANT_ARM: 'notificationAvenantARMAFaire' }
+      on: { FAIRE_AVENANT_ARM: 'notificationAvenantARMAFaire' },
     },
     notificationAvenantARMAFaire: {
-      on: { NOTIFIER_AVENANT_ARM: 'avenantARMAFaire' }
+      on: { NOTIFIER_AVENANT_ARM: 'avenantARMAFaire' },
     },
     desistementDuDemandeurFait: {
-      always: validationFraisApresDesistementOuClassementSansSuite
+      always: validationFraisApresDesistementOuClassementSansSuite,
     },
     decisionDeClassementSansSuiteFait: {
       on: {
         NOTIFIER_DEMANDEUR_CSS: {
-          target: 'notificationDuDemandeurApresClassementSansSuiteFait'
-        }
-      }
+          target: 'notificationDuDemandeurApresClassementSansSuiteFait',
+        },
+      },
     },
     notificationDuDemandeurApresClassementSansSuiteFait: {
-      always: validationFraisApresDesistementOuClassementSansSuite
+      always: validationFraisApresDesistementOuClassementSansSuite,
     },
 
     fini: {
       id: 'fini',
-      type: 'final'
-    }
-  }
+      type: 'final',
+    },
+  },
 })
diff --git a/packages/api/src/business/rules-demarches/arm/ren-pro.test.ts b/packages/api/src/business/rules-demarches/arm/ren-pro.test.ts
index cd7b50e54..26d438c12 100644
--- a/packages/api/src/business/rules-demarches/arm/ren-pro.test.ts
+++ b/packages/api/src/business/rules-demarches/arm/ren-pro.test.ts
@@ -8,7 +8,7 @@ describe('vérifie l’arbre de renonciation et de prolongation d’ARM', () =>
     expect(
       renProEtatsValidate([
         { typeId: 'mfr', date: toCaminoDate('2020-05-27') },
-        { typeId: 'mdp', date: toCaminoDate('2020-05-30') }
+        { typeId: 'mdp', date: toCaminoDate('2020-05-30') },
       ])
     ).toHaveLength(0)
   })
@@ -19,7 +19,7 @@ describe('vérifie l’arbre de renonciation et de prolongation d’ARM', () =>
         { typeId: 'mfr', date: toCaminoDate('2020-05-27') },
         { typeId: 'mdp', date: toCaminoDate('2020-05-30') },
         { typeId: 'mcr', date: toCaminoDate('2020-06-01') },
-        { typeId: 'mod', date: toCaminoDate('2020-06-03') }
+        { typeId: 'mod', date: toCaminoDate('2020-06-03') },
       ])
     ).toEqual(['l’étape "mod" n’est pas possible juste après "mcr"'])
   })
@@ -30,7 +30,7 @@ describe('vérifie l’arbre de renonciation et de prolongation d’ARM', () =>
         { typeId: 'mfr', date: toCaminoDate('2020-05-27') },
         { typeId: 'mdp', date: toCaminoDate('2020-05-30') },
         { typeId: 'mca', date: toCaminoDate('2020-06-03') },
-        { typeId: 'mca' }
+        { typeId: 'mca' },
       ])
     ).toEqual(['l’étape "mca" ne peut-être effecutée 2 fois d’affilée'])
   })
@@ -42,7 +42,7 @@ describe('vérifie l’arbre de renonciation et de prolongation d’ARM', () =>
         { typeId: 'mdp', date: toCaminoDate('2020-05-30') },
         { typeId: 'mcr', date: toCaminoDate('2020-06-03'), statutId: 'fav' },
         { typeId: 'eof', date: toCaminoDate('2020-07-03') },
-        { typeId: 'aof', date: toCaminoDate('2020-07-03') }
+        { typeId: 'aof', date: toCaminoDate('2020-07-03') },
       ])
     ).toHaveLength(0)
   })
diff --git a/packages/api/src/business/rules-demarches/arm/ren-pro.ts b/packages/api/src/business/rules-demarches/arm/ren-pro.ts
index 9936294a1..091dd26be 100644
--- a/packages/api/src/business/rules-demarches/arm/ren-pro.ts
+++ b/packages/api/src/business/rules-demarches/arm/ren-pro.ts
@@ -4,50 +4,47 @@ import { etatComplementsGet, etatInformationsGet } from '../etat-cycles.js'
 // https://cacoo.com/diagrams/nStw2pYe0PKBs1lp/B1B05
 const restrictionsArmRenPro: IDemarcheDefinitionRestrictions = {
   mfr: {
-    justeApres: []
+    justeApres: [],
   },
   mdp: {
     justeApres: [[{ etapeTypeId: 'mfr' }]],
-    separation: ['mcr']
+    separation: ['mcr'],
   },
   mod: {
-    justeApres: [[{ etapeTypeId: 'mdp' }]]
+    justeApres: [[{ etapeTypeId: 'mdp' }]],
   },
   ...etatComplementsGet('mca', 'rca', {
     etapeTypeId: 'mcr',
-    justeApres: [[{ etapeTypeId: 'mdp' }], [{ etapeTypeId: 'mod' }]]
+    justeApres: [[{ etapeTypeId: 'mdp' }], [{ etapeTypeId: 'mod' }]],
   }),
   ...etatInformationsGet('mio', 'rio', {
     etapeTypeId: 'eof',
-    justeApres: [[{ etapeTypeId: 'mcr', statutId: 'fav' }]]
+    justeApres: [[{ etapeTypeId: 'mcr', statutId: 'fav' }]],
   }),
   ...etatInformationsGet('mia', 'ria', {
     etapeTypeId: 'aof',
-    justeApres: [[{ etapeTypeId: 'eof' }]]
+    justeApres: [[{ etapeTypeId: 'eof' }]],
   }),
   aco: {
-    justeApres: [
-      [{ etapeTypeId: 'aof', statutId: 'fav' }],
-      [{ etapeTypeId: 'mnv' }]
-    ]
+    justeApres: [[{ etapeTypeId: 'aof', statutId: 'fav' }], [{ etapeTypeId: 'mnv' }]],
   },
   mnv: {
-    justeApres: [[{ etapeTypeId: 'aco' }]]
+    justeApres: [[{ etapeTypeId: 'aco' }]],
   },
   mnd: {
-    justeApres: [[{ etapeTypeId: 'aof', statutId: 'def' }]]
+    justeApres: [[{ etapeTypeId: 'aof', statutId: 'def' }]],
   },
   css: {
-    justeApres: [[{ etapeTypeId: 'mcr', statutId: 'def' }]]
+    justeApres: [[{ etapeTypeId: 'mcr', statutId: 'def' }]],
   },
   mnc: {
-    justeApres: [[{ etapeTypeId: 'css' }]]
+    justeApres: [[{ etapeTypeId: 'css' }]],
   },
   des: {
     justeApres: [],
     apres: [[{ etapeTypeId: 'mdp' }]],
-    avant: [[{ etapeTypeId: 'css' }], [{ etapeTypeId: 'aof' }]]
-  }
+    avant: [[{ etapeTypeId: 'css' }], [{ etapeTypeId: 'aof' }]],
+  },
 }
 
 export { restrictionsArmRenPro }
diff --git a/packages/api/src/business/rules-demarches/arm/ret.test.ts b/packages/api/src/business/rules-demarches/arm/ret.test.ts
index 9e2db3cdc..3e7af2507 100644
--- a/packages/api/src/business/rules-demarches/arm/ret.test.ts
+++ b/packages/api/src/business/rules-demarches/arm/ret.test.ts
@@ -8,12 +8,7 @@ describe('vérifie l’arbre de retrait d’ARM', () => {
     expect(retEtatsValidate([{ typeId: 'ide' }])).toHaveLength(0)
   })
   test('ne peut pas créer une étape "ide" si il y a déjà une "ide"', () => {
-    expect(
-      retEtatsValidate([
-        { typeId: 'ide', date: toCaminoDate('2020-01-01') },
-        { typeId: 'ide' }
-      ])
-    ).toEqual(['l’étape "ide" ne peut-être effecutée 2 fois d’affilée'])
+    expect(retEtatsValidate([{ typeId: 'ide', date: toCaminoDate('2020-01-01') }, { typeId: 'ide' }])).toEqual(['l’étape "ide" ne peut-être effecutée 2 fois d’affilée'])
   })
 
   test('ne peut pas faire 2 ide', () => {
@@ -21,7 +16,7 @@ describe('vérifie l’arbre de retrait d’ARM', () => {
       retEtatsValidate([
         { typeId: 'ide', date: toCaminoDate('2020-05-27') },
         { typeId: 'mni', date: toCaminoDate('2020-06-03') },
-        { typeId: 'ide', date: toCaminoDate('2020-07-07') }
+        { typeId: 'ide', date: toCaminoDate('2020-07-07') },
       ])
     ).toEqual(['l’étape "ide" existe déjà'])
   })
@@ -33,42 +28,21 @@ describe('vérifie l’arbre de retrait d’ARM', () => {
         { typeId: 'mni', date: toCaminoDate('2020-01-02') },
         { typeId: 'rif', date: toCaminoDate('2020-01-03') },
         { typeId: 'eof', date: toCaminoDate('2020-01-04') },
-        { typeId: 'mni', date: toCaminoDate('2020-01-05') }
+        { typeId: 'mni', date: toCaminoDate('2020-01-05') },
       ])
     ).toEqual(['l’étape "mni" n’est pas possible juste après "eof"'])
   })
 
   test('ne peut pas créer une étape "mnc" après la "mnc"', () => {
-    expect(
-      retEtatsValidate([
-        { typeId: 'ide' },
-        { typeId: 'mni' },
-        { typeId: 'css' },
-        { typeId: 'mnc' },
-        { typeId: 'mnc' }
-      ])
-    ).toEqual(['l’étape "mnc" ne peut-être effecutée 2 fois d’affilée'])
+    expect(retEtatsValidate([{ typeId: 'ide' }, { typeId: 'mni' }, { typeId: 'css' }, { typeId: 'mnc' }, { typeId: 'mnc' }])).toEqual(['l’étape "mnc" ne peut-être effecutée 2 fois d’affilée'])
   })
 
   test('peut créer une "aof" juste après une "mno"', () => {
-    expect(
-      retEtatsValidate([
-        { typeId: 'ide' },
-        { typeId: 'mni' },
-        { typeId: 'aof' }
-      ])
-    ).toHaveLength(0)
+    expect(retEtatsValidate([{ typeId: 'ide' }, { typeId: 'mni' }, { typeId: 'aof' }])).toHaveLength(0)
   })
 
   test('ne peut pas créer une "aof" juste après une "rif"', () => {
-    expect(
-      retEtatsValidate([
-        { typeId: 'ide' },
-        { typeId: 'mni' },
-        { typeId: 'rif' },
-        { typeId: 'aof' }
-      ])
-    ).toEqual(['l’étape "aof" n’est pas possible juste après "rif"'])
+    expect(retEtatsValidate([{ typeId: 'ide' }, { typeId: 'mni' }, { typeId: 'rif' }, { typeId: 'aof' }])).toEqual(['l’étape "aof" n’est pas possible juste après "rif"'])
   })
 
   test('ne peut pas créer une "aof" après une "css"', () => {
@@ -77,15 +51,13 @@ describe('vérifie l’arbre de retrait d’ARM', () => {
         { typeId: 'ide', date: toCaminoDate('2020-01-01') },
         { typeId: 'mni', date: toCaminoDate('2020-01-02') },
         { typeId: 'css', date: toCaminoDate('2020-01-03') },
-        { typeId: 'aof', date: toCaminoDate('2020-01-04') }
+        { typeId: 'aof', date: toCaminoDate('2020-01-04') },
       ])
     ).toEqual(['l’étape "aof" n’est pas possible juste après "css"'])
   })
 
   test('ne peut pas créer une "css" juste après une "ide"', () => {
-    expect(retEtatsValidate([{ typeId: 'ide' }, { typeId: 'css' }])).toEqual([
-      'l’étape "css" n’est pas possible après "ide"'
-    ])
+    expect(retEtatsValidate([{ typeId: 'ide' }, { typeId: 'css' }])).toEqual(['l’étape "css" n’est pas possible après "ide"'])
   })
 
   test('peut créer une "mio" juste après une "rif"', () => {
@@ -94,7 +66,7 @@ describe('vérifie l’arbre de retrait d’ARM', () => {
         { typeId: 'ide', date: toCaminoDate('2020-01-01') },
         { typeId: 'mni', date: toCaminoDate('2020-01-02') },
         { typeId: 'rif', date: toCaminoDate('2020-01-03') },
-        { typeId: 'mio', date: toCaminoDate('2020-01-04') }
+        { typeId: 'mio', date: toCaminoDate('2020-01-04') },
       ])
     ).toHaveLength(0)
   })
@@ -106,7 +78,7 @@ describe('vérifie l’arbre de retrait d’ARM', () => {
         { typeId: 'mni', date: toCaminoDate('2020-01-02') },
         { typeId: 'rif', date: toCaminoDate('2020-01-03') },
         { typeId: 'mio', date: toCaminoDate('2020-01-04') },
-        { typeId: 'rif', date: toCaminoDate('2020-01-05') }
+        { typeId: 'rif', date: toCaminoDate('2020-01-05') },
       ])
     ).toEqual(['l’étape "rif" n’est pas possible juste après "mio"'])
   })
@@ -119,7 +91,7 @@ describe('vérifie l’arbre de retrait d’ARM', () => {
         { typeId: 'rif', date: toCaminoDate('2020-01-03') },
         { typeId: 'mio', date: toCaminoDate('2020-01-04') },
         { typeId: 'rio', date: toCaminoDate('2020-01-05') },
-        { typeId: 'eof' }
+        { typeId: 'eof' },
       ])
     ).toHaveLength(0)
   })
@@ -131,30 +103,17 @@ describe('vérifie l’arbre de retrait d’ARM', () => {
         { typeId: 'mni', date: toCaminoDate('2020-01-02') },
         { typeId: 'rif', date: toCaminoDate('2020-01-03') },
         { typeId: 'mio', date: toCaminoDate('2020-01-04') },
-        { typeId: 'eof', date: toCaminoDate('2020-01-05') }
+        { typeId: 'eof', date: toCaminoDate('2020-01-05') },
       ])
     ).toEqual(['l’étape "eof" n’est pas possible juste après "mio"'])
   })
 
   test('peut créer une "css" apres une "mni"', () => {
-    expect(
-      retEtatsValidate([
-        { typeId: 'ide' },
-        { typeId: 'mni' },
-        { typeId: 'css' }
-      ])
-    ).toHaveLength(0)
+    expect(retEtatsValidate([{ typeId: 'ide' }, { typeId: 'mni' }, { typeId: 'css' }])).toHaveLength(0)
   })
 
   test('peut créer une "css" apres une "rif"', () => {
-    expect(
-      retEtatsValidate([
-        { typeId: 'ide' },
-        { typeId: 'mni' },
-        { typeId: 'rif' },
-        { typeId: 'css' }
-      ])
-    ).toHaveLength(0)
+    expect(retEtatsValidate([{ typeId: 'ide' }, { typeId: 'mni' }, { typeId: 'rif' }, { typeId: 'css' }])).toHaveLength(0)
   })
 
   test('peut créer une "css" apres une "mio"', () => {
@@ -164,20 +123,12 @@ describe('vérifie l’arbre de retrait d’ARM', () => {
         { typeId: 'mni', date: toCaminoDate('2020-01-02') },
         { typeId: 'rif', date: toCaminoDate('2020-01-03') },
         { typeId: 'mio', date: toCaminoDate('2020-01-04') },
-        { typeId: 'css', date: toCaminoDate('2020-01-05') }
+        { typeId: 'css', date: toCaminoDate('2020-01-05') },
       ])
     ).toHaveLength(0)
   })
   test('peut créer une "css" apres une "eof"', () => {
-    expect(
-      retEtatsValidate([
-        { typeId: 'ide' },
-        { typeId: 'mni' },
-        { typeId: 'rif' },
-        { typeId: 'eof' },
-        { typeId: 'css' }
-      ])
-    ).toHaveLength(0)
+    expect(retEtatsValidate([{ typeId: 'ide' }, { typeId: 'mni' }, { typeId: 'rif' }, { typeId: 'eof' }, { typeId: 'css' }])).toHaveLength(0)
   })
 
   test('ne peut pas créer une "css" apres une "css"', () => {
@@ -186,7 +137,7 @@ describe('vérifie l’arbre de retrait d’ARM', () => {
         { typeId: 'ide', date: toCaminoDate('2020-01-01') },
         { typeId: 'mni', date: toCaminoDate('2020-01-01') },
         { typeId: 'css', date: toCaminoDate('2020-01-01') },
-        { typeId: 'css' }
+        { typeId: 'css' },
       ])
     ).toEqual(['l’étape "css" ne peut-être effecutée 2 fois d’affilée'])
   })
@@ -197,7 +148,7 @@ describe('vérifie l’arbre de retrait d’ARM', () => {
         { typeId: 'css', date: toCaminoDate('2020-01-02') },
         { typeId: 'mni', date: toCaminoDate('2020-01-01') },
         { typeId: 'ide', date: toCaminoDate('2020-01-01') },
-        { typeId: 'mni', date: toCaminoDate('2020-01-03') }
+        { typeId: 'mni', date: toCaminoDate('2020-01-03') },
       ])
     ).toEqual(['l’étape "mni" n’est pas possible juste après "css"'])
   })
diff --git a/packages/api/src/business/rules-demarches/arm/ret.ts b/packages/api/src/business/rules-demarches/arm/ret.ts
index d8c006a9b..50410175e 100644
--- a/packages/api/src/business/rules-demarches/arm/ret.ts
+++ b/packages/api/src/business/rules-demarches/arm/ret.ts
@@ -4,42 +4,36 @@ import { etatInformationsGet } from '../etat-cycles.js'
 // https://cacoo.com/diagrams/VxMVdNkolhMQbKtv/B1B05
 const restrictionsArmRet: IDemarcheDefinitionRestrictions = {
   ide: {
-    justeApres: []
+    justeApres: [],
   },
   mni: {
-    justeApres: [[{ etapeTypeId: 'ide' }]]
+    justeApres: [[{ etapeTypeId: 'ide' }]],
   },
   aof: {
-    justeApres: [[{ etapeTypeId: 'mni' }], [{ etapeTypeId: 'eof' }]]
+    justeApres: [[{ etapeTypeId: 'mni' }], [{ etapeTypeId: 'eof' }]],
   },
   rif: {
-    justeApres: [[{ etapeTypeId: 'mni' }]]
+    justeApres: [[{ etapeTypeId: 'mni' }]],
   },
   ...etatInformationsGet('mio', 'rio', {
     etapeTypeId: 'eof',
-    justeApres: [[{ etapeTypeId: 'rif' }]]
+    justeApres: [[{ etapeTypeId: 'rif' }]],
   }),
   css: {
     apres: [[{ etapeTypeId: 'mni' }]],
     avant: [[{ etapeTypeId: 'aof' }]],
     justeApres: [],
-    final: true
+    final: true,
   },
   aco: {
-    justeApres: [
-      [{ etapeTypeId: 'aof', statutId: 'fav' }],
-      [{ etapeTypeId: 'mnv' }]
-    ]
+    justeApres: [[{ etapeTypeId: 'aof', statutId: 'fav' }], [{ etapeTypeId: 'mnv' }]],
   },
   mnv: {
-    justeApres: [[{ etapeTypeId: 'aco' }]]
+    justeApres: [[{ etapeTypeId: 'aco' }]],
   },
   mnc: {
-    justeApres: [
-      [{ etapeTypeId: 'aof', statutId: 'def' }],
-      [{ etapeTypeId: 'css' }]
-    ]
-  }
+    justeApres: [[{ etapeTypeId: 'aof', statutId: 'def' }], [{ etapeTypeId: 'css' }]],
+  },
 }
 
 export { restrictionsArmRet }
diff --git a/packages/api/src/business/rules-demarches/axm/oct.machine.test.ts b/packages/api/src/business/rules-demarches/axm/oct.machine.test.ts
index ad4959141..b7656136f 100644
--- a/packages/api/src/business/rules-demarches/axm/oct.machine.test.ts
+++ b/packages/api/src/business/rules-demarches/axm/oct.machine.test.ts
@@ -1,7 +1,4 @@
-import {
-  interpretMachine,
-  orderAndInterpretMachine
-} from '../machine-test-helper.js'
+import { interpretMachine, orderAndInterpretMachine } from '../machine-test-helper.js'
 import { AxmOctMachine } from './oct.machine.js'
 import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
 import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
@@ -15,16 +12,14 @@ describe('vérifie l’arbre d’octroi d’AXM', () => {
     const etapes = [
       { ...ETES.demande.FAIT, date: toCaminoDate('2022-04-14') },
       {
-        ...ETES
-          .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-          .EXEMPTE,
-        date: toCaminoDate('2020-01-01')
+        ...ETES.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.EXEMPTE,
+        date: toCaminoDate('2020-01-01'),
       },
       {
         ...ETES.decisionDuProprietaireDuSol.FAVORABLE,
-        date: toCaminoDate('2020-01-01')
+        date: toCaminoDate('2020-01-01'),
       },
-      { ...ETES.depotDeLaDemande.FAIT, date: toCaminoDate('2022-04-15') }
+      { ...ETES.depotDeLaDemande.FAIT, date: toCaminoDate('2022-04-15') },
     ]
     const service = orderAndInterpretMachine(axmOctMachine, etapes)
     expect(service).canOnlyTransitionTo(axmOctMachine, [
@@ -34,33 +29,27 @@ describe('vérifie l’arbre d’octroi d’AXM', () => {
       'FAIRE_NOTE_INTERNE_SIGNALEE',
       'FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE',
       'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE',
-      'RENDRE_DECISION_IMPLICITE_REJET'
-    ])
-    expect(axmOctMachine.whoIsBlocking(etapes)).toStrictEqual([
-      ADMINISTRATION_IDS['DGTM - GUYANE']
+      'RENDRE_DECISION_IMPLICITE_REJET',
     ])
+    expect(axmOctMachine.whoIsBlocking(etapes)).toStrictEqual([ADMINISTRATION_IDS['DGTM - GUYANE']])
   })
 
   test('peut créer une "mdp" après une "mfr", "asl", "dae" requise', () => {
     const etapes = [
       { ...ETES.demande.FAIT, date: toCaminoDate('2022-04-14') },
       {
-        ...ETES
-          .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-          .REQUIS,
-        date: toCaminoDate('2020-01-01')
+        ...ETES.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.REQUIS,
+        date: toCaminoDate('2020-01-01'),
       },
       {
-        ...ETES
-          .modificationDeLaDemande_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-          .FAIT,
-        date: toCaminoDate('2020-01-02')
+        ...ETES.modificationDeLaDemande_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.FAIT,
+        date: toCaminoDate('2020-01-02'),
       },
       {
         ...ETES.decisionDuProprietaireDuSol.FAVORABLE,
-        date: toCaminoDate('2020-01-01')
+        date: toCaminoDate('2020-01-01'),
       },
-      { ...ETES.depotDeLaDemande.FAIT, date: toCaminoDate('2022-04-15') }
+      { ...ETES.depotDeLaDemande.FAIT, date: toCaminoDate('2022-04-15') },
     ]
     const service = orderAndInterpretMachine(axmOctMachine, etapes)
     expect(service).canOnlyTransitionTo(axmOctMachine, [
@@ -70,64 +59,51 @@ describe('vérifie l’arbre d’octroi d’AXM', () => {
       'FAIRE_NOTE_INTERNE_SIGNALEE',
       'FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE',
       'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE',
-      'RENDRE_DECISION_IMPLICITE_REJET'
-    ])
-    expect(axmOctMachine.whoIsBlocking(etapes)).toStrictEqual([
-      ADMINISTRATION_IDS['DGTM - GUYANE']
+      'RENDRE_DECISION_IMPLICITE_REJET',
     ])
+    expect(axmOctMachine.whoIsBlocking(etapes)).toStrictEqual([ADMINISTRATION_IDS['DGTM - GUYANE']])
   })
 
   test('ne peut pas créer une "mdp" avec une "dae" requise', () => {
     const service = orderAndInterpretMachine(axmOctMachine, [
       { ...ETES.demande.FAIT, date: toCaminoDate('2022-04-14') },
       {
-        ...ETES
-          .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-          .REQUIS,
-        date: toCaminoDate('2020-01-01')
+        ...ETES.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.REQUIS,
+        date: toCaminoDate('2020-01-01'),
       },
       {
         ...ETES.decisionDuProprietaireDuSol.FAVORABLE,
-        date: toCaminoDate('2020-01-01')
-      }
-    ])
-    expect(service).canOnlyTransitionTo(axmOctMachine, [
-      'FAIRE_CLASSEMENT_SANS_SUITE',
-      'FAIRE_DESISTEMENT_DEMANDEUR',
-      'FAIRE_NOTE_INTERNE_SIGNALEE',
-      'MODIFIER_DEMANDE_APRES_DAE'
+        date: toCaminoDate('2020-01-01'),
+      },
     ])
+    expect(service).canOnlyTransitionTo(axmOctMachine, ['FAIRE_CLASSEMENT_SANS_SUITE', 'FAIRE_DESISTEMENT_DEMANDEUR', 'FAIRE_NOTE_INTERNE_SIGNALEE', 'MODIFIER_DEMANDE_APRES_DAE'])
   })
 
   test('peut faire l’avis du DREAL sans aucun autre avis 30 jours après la saisine des services', () => {
     const service = orderAndInterpretMachine(axmOctMachine, [
       { ...ETES.demande.FAIT, date: toCaminoDate('2022-04-14') },
       {
-        ...ETES
-          .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-          .EXEMPTE,
-        date: toCaminoDate('2020-01-01')
+        ...ETES.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.EXEMPTE,
+        date: toCaminoDate('2020-01-01'),
       },
       {
         ...ETES.decisionDuProprietaireDuSol.FAVORABLE,
-        date: toCaminoDate('2020-01-01')
+        date: toCaminoDate('2020-01-01'),
       },
       { ...ETES.depotDeLaDemande.FAIT, date: toCaminoDate('2022-04-15') },
       {
         ...ETES.recevabiliteDeLaDemande.FAVORABLE,
-        date: toCaminoDate('2022-04-15')
+        date: toCaminoDate('2022-04-15'),
       },
       {
         ...ETES.saisineDesCollectivitesLocales.FAIT,
-        date: toCaminoDate('2022-04-15')
+        date: toCaminoDate('2022-04-15'),
       },
       { ...ETES.saisineDesServices.FAIT, date: toCaminoDate('2022-04-15') },
       {
-        ...ETES
-          .avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement
-          .FAVORABLE,
-        date: toCaminoDate('2022-06-15')
-      }
+        ...ETES.avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement.FAVORABLE,
+        date: toCaminoDate('2022-06-15'),
+      },
     ])
     expect(service).canOnlyTransitionTo(axmOctMachine, [
       'FAIRE_CLASSEMENT_SANS_SUITE',
@@ -135,56 +111,50 @@ describe('vérifie l’arbre d’octroi d’AXM', () => {
       'FAIRE_NOTE_INTERNE_SIGNALEE',
       'FAIRE_SAISINE_COMMISSION_DEPARTEMENTALE_DES_MINES',
       'RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES',
-      'RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES_AJOURNE'
+      'RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES_AJOURNE',
     ])
   })
   test('peut ajourner l’avis de la commission départementale des mines', () => {
     const service = orderAndInterpretMachine(axmOctMachine, [
       { ...ETES.demande.FAIT, date: toCaminoDate('2022-04-14') },
       {
-        ...ETES
-          .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-          .EXEMPTE,
-        date: toCaminoDate('2020-01-01')
+        ...ETES.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.EXEMPTE,
+        date: toCaminoDate('2020-01-01'),
       },
       {
         ...ETES.decisionDuProprietaireDuSol.FAVORABLE,
-        date: toCaminoDate('2020-01-01')
+        date: toCaminoDate('2020-01-01'),
       },
       { ...ETES.depotDeLaDemande.FAIT, date: toCaminoDate('2022-04-15') },
       {
         ...ETES.recevabiliteDeLaDemande.FAVORABLE,
-        date: toCaminoDate('2022-04-15')
+        date: toCaminoDate('2022-04-15'),
       },
       {
         ...ETES.saisineDesCollectivitesLocales.FAIT,
-        date: toCaminoDate('2022-04-15')
+        date: toCaminoDate('2022-04-15'),
       },
       { ...ETES.saisineDesServices.FAIT, date: toCaminoDate('2022-04-15') },
       {
-        ...ETES
-          .avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement
-          .FAVORABLE,
-        date: toCaminoDate('2022-06-15')
+        ...ETES.avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement.FAVORABLE,
+        date: toCaminoDate('2022-06-15'),
       },
       {
         ...ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.AJOURNE,
-        date: toCaminoDate('2022-06-16')
+        date: toCaminoDate('2022-06-16'),
       },
       {
-        ...ETES
-          .avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement
-          .FAVORABLE,
-        date: toCaminoDate('2022-06-17')
+        ...ETES.avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement.FAVORABLE,
+        date: toCaminoDate('2022-06-17'),
       },
       {
         ...ETES.saisineDeLaCommissionDepartementaleDesMines_CDM_.FAIT,
-        date: toCaminoDate('2022-06-18')
+        date: toCaminoDate('2022-06-18'),
       },
       {
         ...ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.FAVORABLE,
-        date: toCaminoDate('2022-06-18')
-      }
+        date: toCaminoDate('2022-06-18'),
+      },
     ])
     expect(service).canOnlyTransitionTo(axmOctMachine, [
       'FAIRE_CLASSEMENT_SANS_SUITE',
@@ -192,82 +162,75 @@ describe('vérifie l’arbre d’octroi d’AXM', () => {
       'FAIRE_NOTE_INTERNE_SIGNALEE',
       'FAIRE_SAISINE_AUTORITE_SIGNATAIRE',
       'RENDRE_DECISION_ADMINISTRATION_ACCEPTE',
-      'RENDRE_DECISION_ADMINISTRATION_REJETE'
+      'RENDRE_DECISION_ADMINISTRATION_REJETE',
     ])
   })
   test('après une saisine des services avec un accord du propriétaire du sol AVEC réserves, la confirmation de l’accord est obligatoire', () => {
     const service = orderAndInterpretMachine(axmOctMachine, [
       { ...ETES.demande.FAIT, date: toCaminoDate('2022-04-14') },
       {
-        ...ETES
-          .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-          .EXEMPTE,
-        date: toCaminoDate('2020-01-01')
+        ...ETES.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.EXEMPTE,
+        date: toCaminoDate('2020-01-01'),
       },
       {
         ...ETES.decisionDuProprietaireDuSol.FAVORABLE_AVEC_RESERVE,
-        date: toCaminoDate('2020-01-01')
+        date: toCaminoDate('2020-01-01'),
       },
       { ...ETES.depotDeLaDemande.FAIT, date: toCaminoDate('2022-04-15') },
       {
         ...ETES.recevabiliteDeLaDemande.FAVORABLE,
-        date: toCaminoDate('2022-04-15')
+        date: toCaminoDate('2022-04-15'),
       },
       {
         ...ETES.saisineDesCollectivitesLocales.FAIT,
-        date: toCaminoDate('2022-04-15')
+        date: toCaminoDate('2022-04-15'),
       },
       { ...ETES.avisDunMaire.FAVORABLE, date: toCaminoDate('2022-04-15') },
       { ...ETES.saisineDesServices.FAIT, date: toCaminoDate('2022-04-15') },
       {
-        ...ETES.avisDGTMServiceMilieuxNaturelsBiodiversiteSitesEtPaysages_MNBST_
-          .FAVORABLE,
-        date: toCaminoDate('2022-04-15')
+        ...ETES.avisDGTMServiceMilieuxNaturelsBiodiversiteSitesEtPaysages_MNBST_.FAVORABLE,
+        date: toCaminoDate('2022-04-15'),
       },
       {
-        ...ETES.avisDGTMServiceAmenagementUrbanismeConstructionLogement_AUCL_
-          .FAVORABLE,
-        date: toCaminoDate('2022-04-16')
+        ...ETES.avisDGTMServiceAmenagementUrbanismeConstructionLogement_AUCL_.FAVORABLE,
+        date: toCaminoDate('2022-04-16'),
       },
       {
-        ...ETES
-          .avisDeLaDirectionDesEntreprisesDeLaConcurrenceDeLaConsommationDuTravailEtDeLemploi
-          .FAVORABLE,
-        date: toCaminoDate('2022-04-16')
+        ...ETES.avisDeLaDirectionDesEntreprisesDeLaConcurrenceDeLaConsommationDuTravailEtDeLemploi.FAVORABLE,
+        date: toCaminoDate('2022-04-16'),
       },
       {
-        ...ETES.avisDeLaDirectionDalimentationDeLagricultureEtDeLaForet
-          .FAVORABLE,
-        date: toCaminoDate('2022-04-16')
+        ...ETES.avisDeLaDirectionDalimentationDeLagricultureEtDeLaForet.FAVORABLE,
+        date: toCaminoDate('2022-04-16'),
       },
       {
         ...ETES.avisDeDirectionRegionaleDesAffairesCulturelles.FAVORABLE,
-        date: toCaminoDate('2022-04-16')
+        date: toCaminoDate('2022-04-16'),
       },
       {
         ...ETES.avisDeLagenceRegionaleDeSante.FAVORABLE,
-        date: toCaminoDate('2022-04-16')
+        date: toCaminoDate('2022-04-16'),
       },
       {
         ...ETES.avisDeLaDirectionRegionaleDesFinancesPubliques.FAVORABLE,
-        date: toCaminoDate('2022-04-16')
+        date: toCaminoDate('2022-04-16'),
       },
       {
         ...ETES.avisDeLaCaisseGeneraleDeSecuriteSociale.FAVORABLE,
-        date: toCaminoDate('2022-04-16')
+        date: toCaminoDate('2022-04-16'),
       },
       {
         ...ETES.avisDeLOfficeNationalDesForets.FAVORABLE,
-        date: toCaminoDate('2022-04-16')
+        date: toCaminoDate('2022-04-16'),
       },
       {
         ...ETES.avisDeLetatMajorOrpaillageEtPecheIllicite_EMOPI_.FAVORABLE,
-        date: toCaminoDate('2022-04-16')
+        date: toCaminoDate('2022-04-16'),
       },
       {
         ...ETES.avisDeLaGendarmerieNationale.FAVORABLE,
-        date: toCaminoDate('2022-04-16')
-      }
+        date: toCaminoDate('2022-04-16'),
+      },
     ])
 
     expect(service).canOnlyTransitionTo(axmOctMachine, [
@@ -275,7 +238,7 @@ describe('vérifie l’arbre d’octroi d’AXM', () => {
       'FAIRE_CLASSEMENT_SANS_SUITE',
       'FAIRE_CONFIRMATION_PROPRIETAIRE_DU_SOL',
       'FAIRE_DESISTEMENT_DEMANDEUR',
-      'FAIRE_NOTE_INTERNE_SIGNALEE'
+      'FAIRE_NOTE_INTERNE_SIGNALEE',
     ])
   })
 
@@ -287,7 +250,7 @@ describe('vérifie l’arbre d’octroi d’AXM', () => {
       'FAIRE_DEMANDE',
       'RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_DEFAVORABLE',
       'RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE',
-      'RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE_AVEC_RESERVE'
+      'RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE_AVEC_RESERVE',
     ])
   })
 
@@ -295,32 +258,27 @@ describe('vérifie l’arbre d’octroi d’AXM', () => {
     const service = orderAndInterpretMachine(axmOctMachine, [
       { ...ETES.demande.FAIT, date: toCaminoDate('2022-04-01') },
       {
-        ...ETES
-          .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-          .EXEMPTE,
-        date: toCaminoDate('2020-01-01')
+        ...ETES.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.EXEMPTE,
+        date: toCaminoDate('2020-01-01'),
       },
       {
         ...ETES.decisionDuProprietaireDuSol.FAVORABLE,
-        date: toCaminoDate('2020-01-01')
+        date: toCaminoDate('2020-01-01'),
       },
       { ...ETES.noteInterneSignalee.FAIT, date: toCaminoDate('2022-04-10') },
       { ...ETES.depotDeLaDemande.FAIT, date: toCaminoDate('2022-04-11') },
-      { ...ETES.decisionImplicite.REJETE, date: toCaminoDate('2022-04-12') }
-    ])
-    expect(service).canOnlyTransitionTo(axmOctMachine, [
-      'FAIRE_NOTE_INTERNE_SIGNALEE',
-      'RENDRE_DECISION_ANNULATION_PAR_JUGE_ADMINISTRATIF'
+      { ...ETES.decisionImplicite.REJETE, date: toCaminoDate('2022-04-12') },
     ])
+    expect(service).canOnlyTransitionTo(axmOctMachine, ['FAIRE_NOTE_INTERNE_SIGNALEE', 'RENDRE_DECISION_ANNULATION_PAR_JUGE_ADMINISTRATIF'])
   })
 
   test('peut classer sans suite après une décision du propriétaire du sol défavorable', () => {
     const etapes = [
       {
         ...ETES.decisionDuProprietaireDuSol.DEFAVORABLE,
-        date: toCaminoDate('2020-01-01')
+        date: toCaminoDate('2020-01-01'),
       },
-      { ...ETES.classementSansSuite.FAIT, date: toCaminoDate('2022-04-10') }
+      { ...ETES.classementSansSuite.FAIT, date: toCaminoDate('2022-04-10') },
     ]
     const service = orderAndInterpretMachine(axmOctMachine, etapes)
     expect(service).canOnlyTransitionTo(axmOctMachine, [])
@@ -331,114 +289,101 @@ describe('vérifie l’arbre d’octroi d’AXM', () => {
     const etapes = [
       {
         ...ETES.decisionDuProprietaireDuSol.DEFAVORABLE,
-        date: toCaminoDate('2020-01-01')
-      }
+        date: toCaminoDate('2020-01-01'),
+      },
     ]
     const service = orderAndInterpretMachine(axmOctMachine, etapes)
-    expect(service).canOnlyTransitionTo(axmOctMachine, [
-      'FAIRE_CLASSEMENT_SANS_SUITE'
-    ])
-    expect(axmOctMachine.whoIsBlocking(etapes)).toStrictEqual([
-      ADMINISTRATION_IDS['DGTM - GUYANE']
-    ])
+    expect(service).canOnlyTransitionTo(axmOctMachine, ['FAIRE_CLASSEMENT_SANS_SUITE'])
+    expect(axmOctMachine.whoIsBlocking(etapes)).toStrictEqual([ADMINISTRATION_IDS['DGTM - GUYANE']])
   })
 
   test('ne peut pas faire deux fois la même étape à la même date', () => {
     const etapes = [
       { ...ETES.demande.FAIT, date: toCaminoDate('2022-04-01') },
-      { ...ETES.demande.FAIT, date: toCaminoDate('2022-04-01') }
+      { ...ETES.demande.FAIT, date: toCaminoDate('2022-04-01') },
     ]
-    expect(() =>
-      orderAndInterpretMachine(axmOctMachine, etapes)
-    ).toThrowErrorMatchingSnapshot()
+    expect(() => orderAndInterpretMachine(axmOctMachine, etapes)).toThrowErrorMatchingSnapshot()
   })
 
   test('peut faire un octroi complet', () => {
     const etapes = [
       { ...ETES.demande.FAIT, date: toCaminoDate('2022-04-01') },
       {
-        ...ETES
-          .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-          .EXEMPTE,
-        date: toCaminoDate('2020-01-01')
+        ...ETES.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.EXEMPTE,
+        date: toCaminoDate('2020-01-01'),
       },
       {
         ...ETES.decisionDuProprietaireDuSol.FAVORABLE,
-        date: toCaminoDate('2020-01-01')
+        date: toCaminoDate('2020-01-01'),
       },
       { ...ETES.noteInterneSignalee.FAIT, date: toCaminoDate('2022-04-10') },
       { ...ETES.depotDeLaDemande.FAIT, date: toCaminoDate('2022-04-11') },
       {
         ...ETES.demandeDeComplements_RecevabiliteDeLaDemande_.FAIT,
-        date: toCaminoDate('2022-04-11')
+        date: toCaminoDate('2022-04-11'),
       },
       {
         ...ETES.receptionDeComplements_RecevabiliteDeLaDemande_.FAIT,
-        date: toCaminoDate('2022-04-11')
+        date: toCaminoDate('2022-04-11'),
       },
       {
         ...ETES.recevabiliteDeLaDemande.DEFAVORABLE,
-        date: toCaminoDate('2022-04-12')
+        date: toCaminoDate('2022-04-12'),
       },
       {
         ...ETES.modificationDeLaDemande.FAIT,
-        date: toCaminoDate('2022-04-13')
+        date: toCaminoDate('2022-04-13'),
       },
       {
         ...ETES.recevabiliteDeLaDemande.FAVORABLE,
-        date: toCaminoDate('2022-04-15')
+        date: toCaminoDate('2022-04-15'),
       },
       {
         ...ETES.saisineDesCollectivitesLocales.FAIT,
-        date: toCaminoDate('2022-04-16')
+        date: toCaminoDate('2022-04-16'),
       },
       { ...ETES.avisDunMaire.FAVORABLE, date: toCaminoDate('2022-04-17') },
       { ...ETES.saisineDesServices.FAIT, date: toCaminoDate('2022-04-18') },
       {
-        ...ETES.avisDGTMServiceMilieuxNaturelsBiodiversiteSitesEtPaysages_MNBST_
-          .FAVORABLE,
-        date: toCaminoDate('2022-04-19')
+        ...ETES.avisDGTMServiceMilieuxNaturelsBiodiversiteSitesEtPaysages_MNBST_.FAVORABLE,
+        date: toCaminoDate('2022-04-19'),
       },
       {
-        ...ETES
-          .avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement
-          .FAVORABLE,
-        date: toCaminoDate('2022-05-20')
+        ...ETES.avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement.FAVORABLE,
+        date: toCaminoDate('2022-05-20'),
       },
       {
         ...ETES.saisineDeLaCommissionDepartementaleDesMines_CDM_.FAIT,
-        date: toCaminoDate('2022-05-21')
+        date: toCaminoDate('2022-05-21'),
       },
       {
         ...ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.FAVORABLE,
-        date: toCaminoDate('2022-05-22')
+        date: toCaminoDate('2022-05-22'),
       },
       {
         ...ETES.saisineDeLautoriteSignataire.FAIT,
-        date: toCaminoDate('2022-05-23')
+        date: toCaminoDate('2022-05-23'),
       },
       {
         ...ETES.decisionDeLadministration.ACCEPTE,
-        date: toCaminoDate('2022-05-24')
+        date: toCaminoDate('2022-05-24'),
       },
       {
         ...ETES.notificationDesCollectivitesLocales.FAIT,
-        date: toCaminoDate('2022-05-25')
+        date: toCaminoDate('2022-05-25'),
       },
       {
         ...ETES.publicationDansUnJournalLocalOuNational.FAIT,
-        date: toCaminoDate('2022-05-26')
+        date: toCaminoDate('2022-05-26'),
       },
       {
         ...ETES.publicationDeDecisionAuRecueilDesActesAdministratifs.FAIT,
-        date: toCaminoDate('2022-05-27')
+        date: toCaminoDate('2022-05-27'),
       },
-      { ...ETES.notificationAuDemandeur.FAIT, date: toCaminoDate('2022-05-28') }
+      { ...ETES.notificationAuDemandeur.FAIT, date: toCaminoDate('2022-05-28') },
     ]
     const service = orderAndInterpretMachine(axmOctMachine, etapes)
-    expect(service).canOnlyTransitionTo(axmOctMachine, [
-      'FAIRE_NOTE_INTERNE_SIGNALEE'
-    ])
+    expect(service).canOnlyTransitionTo(axmOctMachine, ['FAIRE_NOTE_INTERNE_SIGNALEE'])
     expect(axmOctMachine.whoIsBlocking(etapes)).toStrictEqual([])
   })
 
@@ -448,7 +393,7 @@ describe('vérifie l’arbre d’octroi d’AXM', () => {
     interpretMachine(axmOctMachine, demarche.etapes)
     expect(axmOctMachine.demarcheStatut(demarche.etapes)).toStrictEqual({
       demarcheStatut: demarche.demarcheStatutId,
-      publique: demarche.demarchePublique
+      publique: demarche.demarchePublique,
     })
   })
 })
diff --git a/packages/api/src/business/rules-demarches/axm/oct.machine.ts b/packages/api/src/business/rules-demarches/axm/oct.machine.ts
index 072953204..1a313d06d 100644
--- a/packages/api/src/business/rules-demarches/axm/oct.machine.ts
+++ b/packages/api/src/business/rules-demarches/axm/oct.machine.ts
@@ -4,11 +4,7 @@ import { CaminoCommonContext, DBEtat, Etape, tags } from '../machine-common.js'
 import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
 import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts.js'
 import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
-import {
-  CaminoDate,
-  dateAddMonths,
-  daysBetween
-} from 'camino-common/src/date.js'
+import { CaminoDate, dateAddMonths, daysBetween } from 'camino-common/src/date.js'
 
 type FaireSaisineDesServices = {
   date: CaminoDate
@@ -80,132 +76,92 @@ const trad: { [key in Event]: DBEtat } = {
   FAIRE_DEMANDE: ETES.demande,
   DEPOSER_DEMANDE: ETES.depotDeLaDemande,
   RENDRE_DAE_EXEMPTEE: {
-    EXEMPTE:
-      ETES
-        .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-        .EXEMPTE
+    EXEMPTE: ETES.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.EXEMPTE,
   },
   RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE: {
-    FAVORABLE: ETES.decisionDuProprietaireDuSol.FAVORABLE
+    FAVORABLE: ETES.decisionDuProprietaireDuSol.FAVORABLE,
   },
   RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE_AVEC_RESERVE: {
-    FAVORABLE_AVEC_RESERVE:
-      ETES.decisionDuProprietaireDuSol.FAVORABLE_AVEC_RESERVE
+    FAVORABLE_AVEC_RESERVE: ETES.decisionDuProprietaireDuSol.FAVORABLE_AVEC_RESERVE,
   },
   RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_DEFAVORABLE: {
-    DEFAVORABLE: ETES.decisionDuProprietaireDuSol.DEFAVORABLE
+    DEFAVORABLE: ETES.decisionDuProprietaireDuSol.DEFAVORABLE,
   },
   RENDRE_DAE_REQUISE: {
-    REQUIS:
-      ETES
-        .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-        .REQUIS
+    REQUIS: ETES.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.REQUIS,
   },
-  MODIFIER_DEMANDE_APRES_DAE:
-    ETES.modificationDeLaDemande_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_,
-  DEMANDER_COMPLEMENTS_POUR_RECEVABILITE:
-    ETES.demandeDeComplements_RecevabiliteDeLaDemande_,
-  RECEVOIR_COMPLEMENTS_POUR_RECEVABILITE:
-    ETES.receptionDeComplements_RecevabiliteDeLaDemande_,
+  MODIFIER_DEMANDE_APRES_DAE: ETES.modificationDeLaDemande_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_,
+  DEMANDER_COMPLEMENTS_POUR_RECEVABILITE: ETES.demandeDeComplements_RecevabiliteDeLaDemande_,
+  RECEVOIR_COMPLEMENTS_POUR_RECEVABILITE: ETES.receptionDeComplements_RecevabiliteDeLaDemande_,
   FAIRE_RECEVABILITE_DEMANDE_FAVORABLE: {
-    FAVORABLE: ETES.recevabiliteDeLaDemande.FAVORABLE
+    FAVORABLE: ETES.recevabiliteDeLaDemande.FAVORABLE,
   },
   FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE: {
-    DEFAVORABLE: ETES.recevabiliteDeLaDemande.DEFAVORABLE
+    DEFAVORABLE: ETES.recevabiliteDeLaDemande.DEFAVORABLE,
   },
   MODIFIER_LA_DEMANDE: ETES.modificationDeLaDemande,
   FAIRE_SAISINE_COLLECTIVITES_LOCALES: ETES.saisineDesCollectivitesLocales,
   RENDRE_AVIS_DUN_MAIRE: ETES.avisDunMaire,
-  RENDRE_AVIS_DREAL:
-    ETES.avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement,
+  RENDRE_AVIS_DREAL: ETES.avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement,
   FAIRE_SAISINE_DES_SERVICES: ETES.saisineDesServices,
-  RENDRE_AVIS_DGTM_MNBST:
-    ETES.avisDGTMServiceMilieuxNaturelsBiodiversiteSitesEtPaysages_MNBST_,
-  FAIRE_SAISINE_COMMISSION_DEPARTEMENTALE_DES_MINES:
-    ETES.saisineDeLaCommissionDepartementaleDesMines_CDM_,
+  RENDRE_AVIS_DGTM_MNBST: ETES.avisDGTMServiceMilieuxNaturelsBiodiversiteSitesEtPaysages_MNBST_,
+  FAIRE_SAISINE_COMMISSION_DEPARTEMENTALE_DES_MINES: ETES.saisineDeLaCommissionDepartementaleDesMines_CDM_,
   RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES: {
     FAVORABLE: ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.FAVORABLE,
-    FAVORABLE_AVEC_RESERVE:
-      ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.FAVORABLE_AVEC_RESERVE,
+    FAVORABLE_AVEC_RESERVE: ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.FAVORABLE_AVEC_RESERVE,
     DEFAVORABLE: ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.DEFAVORABLE,
-    DEFAVORABLE_AVEC_RESERVES:
-      ETES.avisDeLaCommissionDepartementaleDesMines_CDM_
-        .DEFAVORABLE_AVEC_RESERVES
+    DEFAVORABLE_AVEC_RESERVES: ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.DEFAVORABLE_AVEC_RESERVES,
   },
   RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES_AJOURNE: {
-    AJOURNE: ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.AJOURNE
+    AJOURNE: ETES.avisDeLaCommissionDepartementaleDesMines_CDM_.AJOURNE,
   },
   FAIRE_SAISINE_AUTORITE_SIGNATAIRE: ETES.saisineDeLautoriteSignataire,
   RENDRE_DECISION_ADMINISTRATION_ACCEPTE: {
-    ACCEPTE: ETES.decisionDeLadministration.ACCEPTE
+    ACCEPTE: ETES.decisionDeLadministration.ACCEPTE,
   },
   RENDRE_DECISION_ADMINISTRATION_REJETE: {
-    REJETE: ETES.decisionDeLadministration.REJETE
+    REJETE: ETES.decisionDeLadministration.REJETE,
   },
   NOTIFIER_DEMANDEUR: ETES.notificationAuDemandeur,
-  PUBLIER_DECISIONS_RECUEIL_ACTES_ADMINISTRATIFS:
-    ETES.publicationDeDecisionAuRecueilDesActesAdministratifs,
-  PUBLIER_DANS_UN_JOURNAL_LOCAL_OU_NATIONAL:
-    ETES.publicationDansUnJournalLocalOuNational,
+  PUBLIER_DECISIONS_RECUEIL_ACTES_ADMINISTRATIFS: ETES.publicationDeDecisionAuRecueilDesActesAdministratifs,
+  PUBLIER_DANS_UN_JOURNAL_LOCAL_OU_NATIONAL: ETES.publicationDansUnJournalLocalOuNational,
   NOTIFIER_COLLECTIVITES_LOCALES: ETES.notificationDesCollectivitesLocales,
   RENDRE_DECISION_ABROGATION: ETES.abrogationDeLaDecision,
   RENDRE_DECISION_RETRAIT: ETES.retraitDeLaDecision,
-  RENDRE_AVIS_DGTMAUCL:
-    ETES.avisDGTMServiceAmenagementUrbanismeConstructionLogement_AUCL_,
-  RENDRE_AVIS_DIRECTION_ENTREPRISE_CONCURRENCE_CONSOMMATION_TRAVAIL_EMPLOI:
-    ETES.avisDeLaDirectionDesEntreprisesDeLaConcurrenceDeLaConsommationDuTravailEtDeLemploi,
-  RENDRE_AVIS_DIRECTION_ALIMENTATION_AGRICULTURE_FORET:
-    ETES.avisDeLaDirectionDalimentationDeLagricultureEtDeLaForet,
-  RENDRE_AVIS_DIRECTION_REGIONALE_AFFAIRES_CULTURELLES:
-    ETES.avisDeDirectionRegionaleDesAffairesCulturelles,
+  RENDRE_AVIS_DGTMAUCL: ETES.avisDGTMServiceAmenagementUrbanismeConstructionLogement_AUCL_,
+  RENDRE_AVIS_DIRECTION_ENTREPRISE_CONCURRENCE_CONSOMMATION_TRAVAIL_EMPLOI: ETES.avisDeLaDirectionDesEntreprisesDeLaConcurrenceDeLaConsommationDuTravailEtDeLemploi,
+  RENDRE_AVIS_DIRECTION_ALIMENTATION_AGRICULTURE_FORET: ETES.avisDeLaDirectionDalimentationDeLagricultureEtDeLaForet,
+  RENDRE_AVIS_DIRECTION_REGIONALE_AFFAIRES_CULTURELLES: ETES.avisDeDirectionRegionaleDesAffairesCulturelles,
   RENDRE_AVIS_AGENCE_REGIONALE_SANTE: ETES.avisDeLagenceRegionaleDeSante,
-  RENDRE_AVIS_DIRECTION_REGIONALE_FINANCES_PUBLIQUES:
-    ETES.avisDeLaDirectionRegionaleDesFinancesPubliques,
-  RENDRE_AVIS_CAISSE_GENERALE_DE_SECURITE_SOCIALE:
-    ETES.avisDeLaCaisseGeneraleDeSecuriteSociale,
+  RENDRE_AVIS_DIRECTION_REGIONALE_FINANCES_PUBLIQUES: ETES.avisDeLaDirectionRegionaleDesFinancesPubliques,
+  RENDRE_AVIS_CAISSE_GENERALE_DE_SECURITE_SOCIALE: ETES.avisDeLaCaisseGeneraleDeSecuriteSociale,
   RENDRE_AVIS_OFFICE_NATIONAL_DES_FORETS: ETES.avisDeLOfficeNationalDesForets,
-  RENDRE_AVIS_ETAT_MAJOR_ORPAILLAGE_ET_PECHE_ILLICITE:
-    ETES.avisDeLetatMajorOrpaillageEtPecheIllicite_EMOPI_,
+  RENDRE_AVIS_ETAT_MAJOR_ORPAILLAGE_ET_PECHE_ILLICITE: ETES.avisDeLetatMajorOrpaillageEtPecheIllicite_EMOPI_,
   RENDRE_AVIS_GENDARMERIE_NATIONALE: ETES.avisDeLaGendarmerieNationale,
-  FAIRE_CONFIRMATION_PROPRIETAIRE_DU_SOL:
-    ETES.confirmationDeLaccordDuProprietaireDuSol,
+  FAIRE_CONFIRMATION_PROPRIETAIRE_DU_SOL: ETES.confirmationDeLaccordDuProprietaireDuSol,
   FAIRE_NOTE_INTERNE_SIGNALEE: ETES.noteInterneSignalee,
-  DEMANDER_INFORMATION_POUR_AVIS_DREAL:
-    ETES.demandeDinformations_AvisDuDREALDEALOuDGTM_,
-  RECEVOIR_INFORMATION_POUR_AVIS_DREAL:
-    ETES.receptionDinformation_AvisDuDREALDEALOuDGTM_,
+  DEMANDER_INFORMATION_POUR_AVIS_DREAL: ETES.demandeDinformations_AvisDuDREALDEALOuDGTM_,
+  RECEVOIR_INFORMATION_POUR_AVIS_DREAL: ETES.receptionDinformation_AvisDuDREALDEALOuDGTM_,
   RENDRE_DECISION_IMPLICITE_REJET: { REJETE: ETES.decisionImplicite.REJETE },
-  RENDRE_DECISION_ANNULATION_PAR_JUGE_ADMINISTRATIF:
-    ETES.decisionDuJugeAdministratif,
+  RENDRE_DECISION_ANNULATION_PAR_JUGE_ADMINISTRATIF: ETES.decisionDuJugeAdministratif,
   FAIRE_DESISTEMENT_DEMANDEUR: ETES.desistementDuDemandeur,
-  FAIRE_CLASSEMENT_SANS_SUITE: ETES.classementSansSuite
+  FAIRE_CLASSEMENT_SANS_SUITE: ETES.classementSansSuite,
 }
 
 // Related to https://github.com/Microsoft/TypeScript/issues/12870
-export const EVENTS = Object.keys(trad) as Array<
-  Extract<keyof typeof trad, string>
->
+export const EVENTS = Object.keys(trad) as Array<Extract<keyof typeof trad, string>>
 
 // basé sur https://cacoo.com/diagrams/iUPEVBYNBjsiirfE/249D0
-export class AxmOctMachine extends CaminoMachine<
-  AxmContext,
-  AXMOctXStateEvent
-> {
+export class AxmOctMachine extends CaminoMachine<AxmContext, AXMOctXStateEvent> {
   constructor() {
     super(axmOctMachine, trad)
   }
 
   eventFrom(etape: Etape): AXMOctXStateEvent {
-    const entries = Object.entries(trad).filter(
-      (entry): entry is [Event, DBEtat] => EVENTS.includes(entry[0])
-    )
+    const entries = Object.entries(trad).filter((entry): entry is [Event, DBEtat] => EVENTS.includes(entry[0]))
 
     const entry = entries.find(([_key, dbEtat]) => {
-      return Object.values(dbEtat).some(
-        dbEtatSingle =>
-          dbEtatSingle.etapeTypeId === etape.etapeTypeId &&
-          dbEtatSingle.etapeStatutId === etape.etapeStatutId
-      )
+      return Object.values(dbEtat).some(dbEtatSingle => dbEtatSingle.etapeTypeId === etape.etapeTypeId && dbEtatSingle.etapeStatutId === etape.etapeStatutId)
     })
 
     if (entry) {
@@ -235,17 +191,8 @@ interface AxmContext extends CaminoCommonContext {
   saisineDesServices: SaisineDesServices
 }
 
-const peutRendreAvisDREAL = (
-  context: AxmContext,
-  event: RendreAvisDreal
-): boolean => {
-  return (
-    context.saisineDesServices.faite &&
-    daysBetween(
-      dateAddMonths(context.saisineDesServices.date, 1),
-      event.date
-    ) >= 0
-  )
+const peutRendreAvisDREAL = (context: AxmContext, event: RendreAvisDreal): boolean => {
+  return context.saisineDesServices.faite && daysBetween(dateAddMonths(context.saisineDesServices.date, 1), event.date) >= 0
 }
 
 const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({
@@ -259,33 +206,21 @@ const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({
     saisineDesCollectivitesLocalesFaite: false,
     saisineDesServices: { faite: false },
     daeRequiseOuDemandeDeposee: false,
-    visibilite: 'confidentielle'
+    visibilite: 'confidentielle',
   },
   on: {
     FAIRE_NOTE_INTERNE_SIGNALEE: {
       actions: assign<AxmContext, { type: 'FAIRE_NOTE_INTERNE_SIGNALEE' }>({}),
-      cond: context => context.demandeFaite
+      cond: context => context.demandeFaite,
     },
     FAIRE_DESISTEMENT_DEMANDEUR: {
-      cond: context =>
-        context.demandeFaite &&
-        [
-          DemarchesStatutsIds.EnConstruction,
-          DemarchesStatutsIds.Depose,
-          DemarchesStatutsIds.EnInstruction
-        ].includes(context.demarcheStatut),
-      target: 'desistementDuDemandeurRendu'
+      cond: context => context.demandeFaite && [DemarchesStatutsIds.EnConstruction, DemarchesStatutsIds.Depose, DemarchesStatutsIds.EnInstruction].includes(context.demarcheStatut),
+      target: 'desistementDuDemandeurRendu',
     },
     FAIRE_CLASSEMENT_SANS_SUITE: {
-      cond: context =>
-        context.daeRequiseOuDemandeDeposee &&
-        [
-          DemarchesStatutsIds.EnConstruction,
-          DemarchesStatutsIds.Depose,
-          DemarchesStatutsIds.EnInstruction
-        ].includes(context.demarcheStatut),
-      target: 'classementSansSuiteRendu'
-    }
+      cond: context => context.daeRequiseOuDemandeDeposee && [DemarchesStatutsIds.EnConstruction, DemarchesStatutsIds.Depose, DemarchesStatutsIds.EnInstruction].includes(context.demarcheStatut),
+      target: 'classementSansSuiteRendu',
+    },
   },
   states: {
     demandeAFaireEtDecisionsARendre: {
@@ -296,14 +231,14 @@ const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({
           states: {
             demandeAFaire: {
               on: {
-                FAIRE_DEMANDE: 'demandeFaite'
-              }
+                FAIRE_DEMANDE: 'demandeFaite',
+              },
             },
             demandeFaite: {
               type: 'final',
-              entry: assign<AxmContext>({ demandeFaite: true })
-            }
-          }
+              entry: assign<AxmContext>({ demandeFaite: true }),
+            },
+          },
         },
         decisionAutoriteEnvironnementaleMachine: {
           initial: 'decisionARendre',
@@ -313,18 +248,18 @@ const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({
                 RENDRE_DAE_REQUISE: {
                   target: 'demandeAModifier',
                   actions: assign<AxmContext, { type: 'RENDRE_DAE_REQUISE' }>({
-                    daeRequiseOuDemandeDeposee: true
-                  })
+                    daeRequiseOuDemandeDeposee: true,
+                  }),
                 },
-                RENDRE_DAE_EXEMPTEE: 'demandeExemptee'
-              }
+                RENDRE_DAE_EXEMPTEE: 'demandeExemptee',
+              },
             },
             demandeAModifier: {
-              on: { MODIFIER_DEMANDE_APRES_DAE: 'demandeModifiee' }
+              on: { MODIFIER_DEMANDE_APRES_DAE: 'demandeModifiee' },
             },
             demandeExemptee: { type: 'final' },
-            demandeModifiee: { type: 'final' }
-          }
+            demandeModifiee: { type: 'final' },
+          },
         },
         decisionDuProprietaireDuSolMachine: {
           initial: 'decisionARendre',
@@ -333,27 +268,22 @@ const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({
               on: {
                 RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE: {
                   target: 'decisionRendue',
-                  actions: assign<
-                    AxmContext,
-                    { type: 'RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE' }
-                  >({
-                    decisionDuProprietaireDuSolFavorableSansReserve: true
-                  })
+                  actions: assign<AxmContext, { type: 'RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE' }>({
+                    decisionDuProprietaireDuSolFavorableSansReserve: true,
+                  }),
                 },
-                RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE_AVEC_RESERVE:
-                  'decisionRendue',
-                RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_DEFAVORABLE:
-                  '#classementSansSuiteAFaire'
-              }
+                RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_FAVORABLE_AVEC_RESERVE: 'decisionRendue',
+                RENDRE_DECISION_DU_PROPRIETAIRE_DU_SOL_DEFAVORABLE: '#classementSansSuiteAFaire',
+              },
             },
-            decisionRendue: { type: 'final' }
-          }
-        }
+            decisionRendue: { type: 'final' },
+          },
+        },
       },
 
       onDone: {
-        target: 'depotDeLaDemandeAFaire'
-      }
+        target: 'depotDeLaDemandeAFaire',
+      },
     },
     depotDeLaDemandeAFaire: {
       tags: [tags.responsable[ADMINISTRATION_IDS['DGTM - GUYANE']]],
@@ -362,59 +292,49 @@ const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({
           target: 'recevabiliteDeLaDemandeAFaire',
           actions: assign<AxmContext, { type: 'DEPOSER_DEMANDE' }>({
             demarcheStatut: DemarchesStatutsIds.Depose,
-            daeRequiseOuDemandeDeposee: true
-          })
-        }
-      }
+            daeRequiseOuDemandeDeposee: true,
+          }),
+        },
+      },
     },
     recevabiliteDeLaDemandeAFaire: {
       tags: [tags.responsable[ADMINISTRATION_IDS['DGTM - GUYANE']]],
       on: {
-        DEMANDER_COMPLEMENTS_POUR_RECEVABILITE:
-          'complementsPourRecevabiliteAFaire',
+        DEMANDER_COMPLEMENTS_POUR_RECEVABILITE: 'complementsPourRecevabiliteAFaire',
         FAIRE_RECEVABILITE_DEMANDE_FAVORABLE: {
           target: 'saisinesAFairePuisRendreAvisDREAL',
-          actions: assign<
-            AxmContext,
-            { type: 'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE' }
-          >({
+          actions: assign<AxmContext, { type: 'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE' }>({
             demarcheStatut: DemarchesStatutsIds.EnInstruction,
-            visibilite: 'publique'
-          })
+            visibilite: 'publique',
+          }),
         },
         FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE: 'modificationDeLaDemandeAFaire',
         RENDRE_DECISION_IMPLICITE_REJET: {
           target: 'decisionAnnulationParJugeAdministratifAFaire',
-          actions: assign<
-            AxmContext,
-            { type: 'RENDRE_DECISION_IMPLICITE_REJET' }
-          >({
+          actions: assign<AxmContext, { type: 'RENDRE_DECISION_IMPLICITE_REJET' }>({
             demarcheStatut: DemarchesStatutsIds.Rejete,
-            visibilite: 'publique'
-          })
-        }
-      }
+            visibilite: 'publique',
+          }),
+        },
+      },
     },
     complementsPourRecevabiliteAFaire: {
       on: {
         RECEVOIR_COMPLEMENTS_POUR_RECEVABILITE: 'recevabiliteDeLaDemandeAFaire',
         FAIRE_RECEVABILITE_DEMANDE_FAVORABLE: {
           target: 'saisinesAFairePuisRendreAvisDREAL',
-          actions: assign<
-            AxmContext,
-            { type: 'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE' }
-          >({
+          actions: assign<AxmContext, { type: 'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE' }>({
             demarcheStatut: DemarchesStatutsIds.EnInstruction,
-            visibilite: 'publique'
-          })
+            visibilite: 'publique',
+          }),
         },
-        FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE: 'modificationDeLaDemandeAFaire'
-      }
+        FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE: 'modificationDeLaDemandeAFaire',
+      },
     },
     modificationDeLaDemandeAFaire: {
       on: {
-        MODIFIER_LA_DEMANDE: 'recevabiliteDeLaDemandeAFaire'
-      }
+        MODIFIER_LA_DEMANDE: 'recevabiliteDeLaDemandeAFaire',
+      },
     },
     saisinesAFairePuisRendreAvisDREAL: {
       type: 'parallel',
@@ -425,40 +345,34 @@ const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({
             rendreAvisDrealPasEncorePossible: {
               always: {
                 target: 'rendreAvisDrealAFaire',
-                cond: (context: AxmContext) =>
-                  context.saisineDesServices.faite &&
-                  context.saisineDesCollectivitesLocalesFaite &&
-                  context.decisionDuProprietaireDuSolFavorableSansReserve
-              }
+                cond: (context: AxmContext) => context.saisineDesServices.faite && context.saisineDesCollectivitesLocalesFaite && context.decisionDuProprietaireDuSolFavorableSansReserve,
+              },
             },
             rendreAvisDrealAFaire: {
               tags: [tags.responsable[ADMINISTRATION_IDS['DGTM - GUYANE']]],
               on: {
                 RENDRE_AVIS_DREAL: {
                   cond: peutRendreAvisDREAL,
-                  target:
-                    '#saisineOuAvisCommissionDepartementaleDesMinesARendre'
-                }
-              }
-            }
-          }
+                  target: '#saisineOuAvisCommissionDepartementaleDesMinesARendre',
+                },
+              },
+            },
+          },
         },
         demandeInformationPourAvisDREALMachine: {
           initial: 'demandeInformationPourAvisDREALAFaire',
           states: {
             demandeInformationPourAvisDREALAFaire: {
               on: {
-                DEMANDER_INFORMATION_POUR_AVIS_DREAL:
-                  'receptionInformationPourAvisDREALAFaire'
-              }
+                DEMANDER_INFORMATION_POUR_AVIS_DREAL: 'receptionInformationPourAvisDREALAFaire',
+              },
             },
             receptionInformationPourAvisDREALAFaire: {
               on: {
-                RECEVOIR_INFORMATION_POUR_AVIS_DREAL:
-                  'demandeInformationPourAvisDREALAFaire'
-              }
-            }
-          }
+                RECEVOIR_INFORMATION_POUR_AVIS_DREAL: 'demandeInformationPourAvisDREALAFaire',
+              },
+            },
+          },
         },
         saisineCollectivitesLocalesMachine: {
           initial: 'saisineCollectivitesLocalesAFaire',
@@ -468,20 +382,17 @@ const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({
                 FAIRE_SAISINE_COLLECTIVITES_LOCALES: {
                   target: 'avisDunMaireARendre',
                   cond: context => !context.saisineDesCollectivitesLocalesFaite,
-                  actions: assign<
-                    AxmContext,
-                    { type: 'FAIRE_SAISINE_COLLECTIVITES_LOCALES' }
-                  >({
-                    saisineDesCollectivitesLocalesFaite: true
-                  })
-                }
-              }
+                  actions: assign<AxmContext, { type: 'FAIRE_SAISINE_COLLECTIVITES_LOCALES' }>({
+                    saisineDesCollectivitesLocalesFaite: true,
+                  }),
+                },
+              },
             },
             avisDunMaireARendre: {
-              on: { RENDRE_AVIS_DUN_MAIRE: 'avisDunMaireRendu' }
+              on: { RENDRE_AVIS_DUN_MAIRE: 'avisDunMaireRendu' },
             },
-            avisDunMaireRendu: { type: 'final' }
-          }
+            avisDunMaireRendu: { type: 'final' },
+          },
         },
         saisineDesServicesMachine: {
           initial: 'saisineDesServicesAFaire',
@@ -495,12 +406,12 @@ const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({
                     saisineDesServices: (context, event) => {
                       return {
                         faite: true,
-                        date: event.date
+                        date: event.date,
                       }
-                    }
-                  })
-                }
-              }
+                    },
+                  }),
+                },
+              },
             },
             avisDesServicesARendre: {
               type: 'parallel',
@@ -511,251 +422,218 @@ const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({
                   states: {
                     confirmationAccordProprietaireDuSolAFaire: {
                       on: {
-                        FAIRE_CONFIRMATION_PROPRIETAIRE_DU_SOL:
-                          'confirmationAccordProprietaireDuSolFait'
-                      }
+                        FAIRE_CONFIRMATION_PROPRIETAIRE_DU_SOL: 'confirmationAccordProprietaireDuSolFait',
+                      },
                     },
                     confirmationAccordProprietaireDuSolFait: {
                       type: 'final',
                       entry: assign<AxmContext>({
-                        decisionDuProprietaireDuSolFavorableSansReserve: true
-                      })
-                    }
-                  }
+                        decisionDuProprietaireDuSolFavorableSansReserve: true,
+                      }),
+                    },
+                  },
                 },
                 avisDgtmMNBSTMachine: {
                   initial: 'avisDgtmMNBSTARendre',
                   states: {
                     avisDgtmMNBSTARendre: {
-                      on: { RENDRE_AVIS_DGTM_MNBST: 'avisDgtmMNBSTRendu' }
+                      on: { RENDRE_AVIS_DGTM_MNBST: 'avisDgtmMNBSTRendu' },
                     },
-                    avisDgtmMNBSTRendu: { type: 'final' }
-                  }
+                    avisDgtmMNBSTRendu: { type: 'final' },
+                  },
                 },
                 avisDGTMAUCLMachine: {
                   initial: 'avisDGTMAUCLARendre',
                   states: {
                     avisDGTMAUCLARendre: {
-                      on: { RENDRE_AVIS_DGTMAUCL: 'avisDGTMAUCLRendu' }
+                      on: { RENDRE_AVIS_DGTMAUCL: 'avisDGTMAUCLRendu' },
                     },
-                    avisDGTMAUCLRendu: { type: 'final' }
-                  }
+                    avisDGTMAUCLRendu: { type: 'final' },
+                  },
                 },
-                avisDirectionEntrepriseConcurrenceConsommationTravailEmploiMachine:
-                  {
-                    initial:
-                      'avisDirectionEntrepriseConcurrenceConsommationTravailEmploiARendre',
-                    states: {
-                      avisDirectionEntrepriseConcurrenceConsommationTravailEmploiARendre:
-                        {
-                          on: {
-                            RENDRE_AVIS_DIRECTION_ENTREPRISE_CONCURRENCE_CONSOMMATION_TRAVAIL_EMPLOI:
-                              'avisDirectionEntrepriseConcurrenceConsommationTravailEmploiRendu'
-                          }
-                        },
-                      avisDirectionEntrepriseConcurrenceConsommationTravailEmploiRendu:
-                        { type: 'final' }
-                    }
+                avisDirectionEntrepriseConcurrenceConsommationTravailEmploiMachine: {
+                  initial: 'avisDirectionEntrepriseConcurrenceConsommationTravailEmploiARendre',
+                  states: {
+                    avisDirectionEntrepriseConcurrenceConsommationTravailEmploiARendre: {
+                      on: {
+                        RENDRE_AVIS_DIRECTION_ENTREPRISE_CONCURRENCE_CONSOMMATION_TRAVAIL_EMPLOI: 'avisDirectionEntrepriseConcurrenceConsommationTravailEmploiRendu',
+                      },
+                    },
+                    avisDirectionEntrepriseConcurrenceConsommationTravailEmploiRendu: { type: 'final' },
                   },
+                },
                 avisDirectionAlimentationAgricultureForetMachine: {
                   initial: 'avisDirectionAlimentationAgricultureForetARendre',
                   states: {
                     avisDirectionAlimentationAgricultureForetARendre: {
                       on: {
-                        RENDRE_AVIS_DIRECTION_ALIMENTATION_AGRICULTURE_FORET:
-                          'avisDirectionAlimentationAgricultureForetRendu'
-                      }
+                        RENDRE_AVIS_DIRECTION_ALIMENTATION_AGRICULTURE_FORET: 'avisDirectionAlimentationAgricultureForetRendu',
+                      },
                     },
                     avisDirectionAlimentationAgricultureForetRendu: {
-                      type: 'final'
-                    }
-                  }
+                      type: 'final',
+                    },
+                  },
                 },
                 avisDirectionRegionaleAffairesCulturellesMachine: {
                   initial: 'avisDirectionRegionaleAffairesCulturellesARendre',
                   states: {
                     avisDirectionRegionaleAffairesCulturellesARendre: {
                       on: {
-                        RENDRE_AVIS_DIRECTION_REGIONALE_AFFAIRES_CULTURELLES:
-                          'avisDirectionRegionaleAffairesCulturellesRendu'
-                      }
+                        RENDRE_AVIS_DIRECTION_REGIONALE_AFFAIRES_CULTURELLES: 'avisDirectionRegionaleAffairesCulturellesRendu',
+                      },
                     },
                     avisDirectionRegionaleAffairesCulturellesRendu: {
-                      type: 'final'
-                    }
-                  }
+                      type: 'final',
+                    },
+                  },
                 },
                 avisAgenceRegionaleSanteMachine: {
                   initial: 'avisAgenceRegionaleSanteARendre',
                   states: {
                     avisAgenceRegionaleSanteARendre: {
                       on: {
-                        RENDRE_AVIS_AGENCE_REGIONALE_SANTE:
-                          'avisAgenceRegionaleSanteRendu'
-                      }
+                        RENDRE_AVIS_AGENCE_REGIONALE_SANTE: 'avisAgenceRegionaleSanteRendu',
+                      },
                     },
-                    avisAgenceRegionaleSanteRendu: { type: 'final' }
-                  }
+                    avisAgenceRegionaleSanteRendu: { type: 'final' },
+                  },
                 },
                 avisDirectionRegionaleFinancesPubliquesMachine: {
                   initial: 'avisDirectionRegionaleFinancesPubliquesARendre',
                   states: {
                     avisDirectionRegionaleFinancesPubliquesARendre: {
                       on: {
-                        RENDRE_AVIS_DIRECTION_REGIONALE_FINANCES_PUBLIQUES:
-                          'avisDirectionRegionaleFinancesPubliquesRendu'
-                      }
+                        RENDRE_AVIS_DIRECTION_REGIONALE_FINANCES_PUBLIQUES: 'avisDirectionRegionaleFinancesPubliquesRendu',
+                      },
                     },
                     avisDirectionRegionaleFinancesPubliquesRendu: {
-                      type: 'final'
-                    }
-                  }
+                      type: 'final',
+                    },
+                  },
                 },
                 avisCaisseGeneraleDeSecuriteSocialeMachine: {
                   initial: 'avisCaisseGeneraleDeSecuriteSocialeARendre',
                   states: {
                     avisCaisseGeneraleDeSecuriteSocialeARendre: {
                       on: {
-                        RENDRE_AVIS_CAISSE_GENERALE_DE_SECURITE_SOCIALE:
-                          'avisCaisseGeneraleDeSecuriteSocialeRendu'
-                      }
+                        RENDRE_AVIS_CAISSE_GENERALE_DE_SECURITE_SOCIALE: 'avisCaisseGeneraleDeSecuriteSocialeRendu',
+                      },
                     },
-                    avisCaisseGeneraleDeSecuriteSocialeRendu: { type: 'final' }
-                  }
+                    avisCaisseGeneraleDeSecuriteSocialeRendu: { type: 'final' },
+                  },
                 },
                 avisOfficeNationalDesForetsMachine: {
                   initial: 'avisOfficeNationalDesForetsARendre',
                   states: {
                     avisOfficeNationalDesForetsARendre: {
                       on: {
-                        RENDRE_AVIS_OFFICE_NATIONAL_DES_FORETS:
-                          'avisOfficeNationalDesForetsRendu'
-                      }
+                        RENDRE_AVIS_OFFICE_NATIONAL_DES_FORETS: 'avisOfficeNationalDesForetsRendu',
+                      },
                     },
-                    avisOfficeNationalDesForetsRendu: { type: 'final' }
-                  }
+                    avisOfficeNationalDesForetsRendu: { type: 'final' },
+                  },
                 },
                 avisGendarmerieNationaleMachine: {
                   initial: 'avisGendarmerieNationaleARendre',
                   states: {
                     avisGendarmerieNationaleARendre: {
                       on: {
-                        RENDRE_AVIS_GENDARMERIE_NATIONALE:
-                          'avisGendarmerieNationaleRendu'
-                      }
+                        RENDRE_AVIS_GENDARMERIE_NATIONALE: 'avisGendarmerieNationaleRendu',
+                      },
                     },
-                    avisGendarmerieNationaleRendu: { type: 'final' }
-                  }
+                    avisGendarmerieNationaleRendu: { type: 'final' },
+                  },
                 },
                 avisEtatMajorOrpaillageEtPecheIlliciteMachine: {
                   initial: 'avisEtatMajorOrpaillageEtPecheIlliciteARendre',
                   states: {
                     avisEtatMajorOrpaillageEtPecheIlliciteARendre: {
                       on: {
-                        RENDRE_AVIS_ETAT_MAJOR_ORPAILLAGE_ET_PECHE_ILLICITE:
-                          'avisEtatMajorOrpaillageEtPecheIlliciteRendu'
-                      }
+                        RENDRE_AVIS_ETAT_MAJOR_ORPAILLAGE_ET_PECHE_ILLICITE: 'avisEtatMajorOrpaillageEtPecheIlliciteRendu',
+                      },
                     },
                     avisEtatMajorOrpaillageEtPecheIlliciteRendu: {
-                      type: 'final'
-                    }
-                  }
-                }
+                      type: 'final',
+                    },
+                  },
+                },
               },
-              onDone: 'avisDesServicesRendus'
+              onDone: 'avisDesServicesRendus',
             },
-            avisDesServicesRendus: { type: 'final' }
-          }
-        }
-      }
+            avisDesServicesRendus: { type: 'final' },
+          },
+        },
+      },
     },
     avisDREALARendre: {
       tags: [tags.responsable[ADMINISTRATION_IDS['DGTM - GUYANE']]],
       on: {
         RENDRE_AVIS_DREAL: {
           cond: peutRendreAvisDREAL,
-          target: 'saisineOuAvisCommissionDepartementaleDesMinesARendre'
-        }
-      }
+          target: 'saisineOuAvisCommissionDepartementaleDesMinesARendre',
+        },
+      },
     },
     saisineOuAvisCommissionDepartementaleDesMinesARendre: {
       id: 'saisineOuAvisCommissionDepartementaleDesMinesARendre',
       on: {
-        FAIRE_SAISINE_COMMISSION_DEPARTEMENTALE_DES_MINES:
-          'avisCommissionDepartementaleDesMinesARendre',
-        RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES_AJOURNE:
-          'avisDREALARendre',
-        RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES:
-          'saisineAutoriteSignataireOuDecisionAdministrationARendre'
-      }
+        FAIRE_SAISINE_COMMISSION_DEPARTEMENTALE_DES_MINES: 'avisCommissionDepartementaleDesMinesARendre',
+        RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES_AJOURNE: 'avisDREALARendre',
+        RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES: 'saisineAutoriteSignataireOuDecisionAdministrationARendre',
+      },
     },
     avisCommissionDepartementaleDesMinesARendre: {
       on: {
-        RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES_AJOURNE:
-          'avisDREALARendre',
-        RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES:
-          'saisineAutoriteSignataireOuDecisionAdministrationARendre'
-      }
+        RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES_AJOURNE: 'avisDREALARendre',
+        RENDRE_AVIS_COMMISSION_DEPARTEMENTALE_DES_MINES: 'saisineAutoriteSignataireOuDecisionAdministrationARendre',
+      },
     },
     saisineAutoriteSignataireOuDecisionAdministrationARendre: {
       on: {
         FAIRE_SAISINE_AUTORITE_SIGNATAIRE: 'decisionAdministrationARendre',
         RENDRE_DECISION_ADMINISTRATION_ACCEPTE: {
           target: 'decisionAdministrationRendue',
-          actions: assign<
-            AxmContext,
-            { type: 'RENDRE_DECISION_ADMINISTRATION_ACCEPTE' }
-          >({
-            demarcheStatut: DemarchesStatutsIds.Accepte
-          })
+          actions: assign<AxmContext, { type: 'RENDRE_DECISION_ADMINISTRATION_ACCEPTE' }>({
+            demarcheStatut: DemarchesStatutsIds.Accepte,
+          }),
         },
         RENDRE_DECISION_ADMINISTRATION_REJETE: {
           target: 'decisionAdministrationRendue',
-          actions: assign<
-            AxmContext,
-            { type: 'RENDRE_DECISION_ADMINISTRATION_REJETE' }
-          >({
-            demarcheStatut: DemarchesStatutsIds.Rejete
-          })
-        }
-      }
+          actions: assign<AxmContext, { type: 'RENDRE_DECISION_ADMINISTRATION_REJETE' }>({
+            demarcheStatut: DemarchesStatutsIds.Rejete,
+          }),
+        },
+      },
     },
     decisionAdministrationARendre: {
       on: {
         RENDRE_DECISION_ADMINISTRATION_ACCEPTE: {
           target: 'decisionAdministrationRendue',
-          actions: assign<
-            AxmContext,
-            { type: 'RENDRE_DECISION_ADMINISTRATION_ACCEPTE' }
-          >({
-            demarcheStatut: DemarchesStatutsIds.Accepte
-          })
+          actions: assign<AxmContext, { type: 'RENDRE_DECISION_ADMINISTRATION_ACCEPTE' }>({
+            demarcheStatut: DemarchesStatutsIds.Accepte,
+          }),
         },
         RENDRE_DECISION_ADMINISTRATION_REJETE: {
           target: 'decisionAdministrationRendue',
-          actions: assign<
-            AxmContext,
-            { type: 'RENDRE_DECISION_ADMINISTRATION_REJETE' }
-          >({
-            demarcheStatut: DemarchesStatutsIds.Rejete
-          })
-        }
-      }
+          actions: assign<AxmContext, { type: 'RENDRE_DECISION_ADMINISTRATION_REJETE' }>({
+            demarcheStatut: DemarchesStatutsIds.Rejete,
+          }),
+        },
+      },
     },
     decisionAdministrationRendue: {
       on: {
         RENDRE_DECISION_ABROGATION: 'decisionAbrogationFaite',
         RENDRE_DECISION_RETRAIT: 'decisionRetraitFaite',
         RENDRE_DECISION_ANNULATION_PAR_JUGE_ADMINISTRATIF: {
-          target: 'decisionAnnulationParJugeAdministratifRendu'
+          target: 'decisionAnnulationParJugeAdministratifRendu',
         },
         NOTIFIER_DEMANDEUR: { target: 'publicationsEtNotificationsMachine' },
-        PUBLIER_DECISIONS_RECUEIL_ACTES_ADMINISTRATIFS:
-          'publicationsEtNotificationsMachine',
-        PUBLIER_DANS_UN_JOURNAL_LOCAL_OU_NATIONAL:
-          'publicationsEtNotificationsMachine',
-        NOTIFIER_COLLECTIVITES_LOCALES: 'publicationsEtNotificationsMachine'
-      }
+        PUBLIER_DECISIONS_RECUEIL_ACTES_ADMINISTRATIFS: 'publicationsEtNotificationsMachine',
+        PUBLIER_DANS_UN_JOURNAL_LOCAL_OU_NATIONAL: 'publicationsEtNotificationsMachine',
+        NOTIFIER_COLLECTIVITES_LOCALES: 'publicationsEtNotificationsMachine',
+      },
     },
     publicationsEtNotificationsMachine: {
       type: 'parallel',
@@ -768,12 +646,12 @@ const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({
                 target: 'notificationDuDemandeurFaite',
                 cond: (_context, _event, meta) => {
                   return meta.state.history?.event.type === 'NOTIFIER_DEMANDEUR'
-                }
+                },
               },
-              on: { NOTIFIER_DEMANDEUR: 'notificationDuDemandeurFaite' }
+              on: { NOTIFIER_DEMANDEUR: 'notificationDuDemandeurFaite' },
             },
-            notificationDuDemandeurFaite: { type: 'final' }
-          }
+            notificationDuDemandeurFaite: { type: 'final' },
+          },
         },
         publicationDecisionsRecueilActesAdministratifsMachine: {
           initial: 'publicationDecisionsRecueilActesAdministratifsAFaire',
@@ -782,21 +660,17 @@ const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({
               always: {
                 target: 'publicationDecisionsRecueilActesAdministratifsFaite',
                 cond: (_context, _event, meta) => {
-                  return (
-                    meta.state.history?.event.type ===
-                    'PUBLIER_DECISIONS_RECUEIL_ACTES_ADMINISTRATIFS'
-                  )
-                }
+                  return meta.state.history?.event.type === 'PUBLIER_DECISIONS_RECUEIL_ACTES_ADMINISTRATIFS'
+                },
               },
               on: {
-                PUBLIER_DECISIONS_RECUEIL_ACTES_ADMINISTRATIFS:
-                  'publicationDecisionsRecueilActesAdministratifsFaite'
-              }
+                PUBLIER_DECISIONS_RECUEIL_ACTES_ADMINISTRATIFS: 'publicationDecisionsRecueilActesAdministratifsFaite',
+              },
             },
             publicationDecisionsRecueilActesAdministratifsFaite: {
-              type: 'final'
-            }
-          }
+              type: 'final',
+            },
+          },
         },
         publicationDansUnJournalLocalOuNationalMachine: {
           initial: 'publicationDansUnJournalLocalOuNationalAFaire',
@@ -805,19 +679,15 @@ const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({
               always: {
                 target: 'publicationDansUnJournalLocalOuNationalFaite',
                 cond: (_context, _event, meta) => {
-                  return (
-                    meta.state.history?.event.type ===
-                    'PUBLIER_DANS_UN_JOURNAL_LOCAL_OU_NATIONAL'
-                  )
-                }
+                  return meta.state.history?.event.type === 'PUBLIER_DANS_UN_JOURNAL_LOCAL_OU_NATIONAL'
+                },
               },
               on: {
-                PUBLIER_DANS_UN_JOURNAL_LOCAL_OU_NATIONAL:
-                  'publicationDansUnJournalLocalOuNationalFaite'
-              }
+                PUBLIER_DANS_UN_JOURNAL_LOCAL_OU_NATIONAL: 'publicationDansUnJournalLocalOuNationalFaite',
+              },
             },
-            publicationDansUnJournalLocalOuNationalFaite: { type: 'final' }
-          }
+            publicationDansUnJournalLocalOuNationalFaite: { type: 'final' },
+          },
         },
         notificationDesCollectivitesLocalesMachine: {
           initial: 'notificationDesCollectivitesLocalesAFaire',
@@ -826,54 +696,49 @@ const axmOctMachine = createMachine<AxmContext, AXMOctXStateEvent>({
               always: {
                 target: 'notificationDesCollectivitesLocalesFaite',
                 cond: (_context, _event, meta) => {
-                  return (
-                    meta.state.history?.event.type ===
-                    'NOTIFIER_COLLECTIVITES_LOCALES'
-                  )
-                }
+                  return meta.state.history?.event.type === 'NOTIFIER_COLLECTIVITES_LOCALES'
+                },
               },
               on: {
-                NOTIFIER_COLLECTIVITES_LOCALES:
-                  'notificationDesCollectivitesLocalesFaite'
-              }
+                NOTIFIER_COLLECTIVITES_LOCALES: 'notificationDesCollectivitesLocalesFaite',
+              },
             },
-            notificationDesCollectivitesLocalesFaite: { type: 'final' }
-          }
-        }
-      }
+            notificationDesCollectivitesLocalesFaite: { type: 'final' },
+          },
+        },
+      },
     },
     decisionAnnulationParJugeAdministratifAFaire: {
       on: {
-        RENDRE_DECISION_ANNULATION_PAR_JUGE_ADMINISTRATIF:
-          'decisionAnnulationParJugeAdministratifRendu'
-      }
+        RENDRE_DECISION_ANNULATION_PAR_JUGE_ADMINISTRATIF: 'decisionAnnulationParJugeAdministratifRendu',
+      },
     },
     classementSansSuiteAFaire: {
       id: 'classementSansSuiteAFaire',
       tags: [tags.responsable[ADMINISTRATION_IDS['DGTM - GUYANE']]],
       on: {
-        FAIRE_CLASSEMENT_SANS_SUITE: 'classementSansSuiteRendu'
-      }
+        FAIRE_CLASSEMENT_SANS_SUITE: 'classementSansSuiteRendu',
+      },
     },
     decisionAbrogationFaite: { type: 'final' },
     decisionRetraitFaite: { type: 'final' },
     decisionAnnulationParJugeAdministratifRendu: {
       type: 'final',
-      entry: assign<AxmContext>({ demarcheStatut: DemarchesStatutsIds.Rejete })
+      entry: assign<AxmContext>({ demarcheStatut: DemarchesStatutsIds.Rejete }),
     },
     desistementDuDemandeurRendu: {
       type: 'final',
       entry: assign<AxmContext>({
         demarcheStatut: DemarchesStatutsIds.Desiste,
-        visibilite: 'publique'
-      })
+        visibilite: 'publique',
+      }),
     },
     classementSansSuiteRendu: {
       type: 'final',
       entry: assign<AxmContext>({
         demarcheStatut: DemarchesStatutsIds.ClasseSansSuite,
-        visibilite: 'publique'
-      })
-    }
-  }
+        visibilite: 'publique',
+      }),
+    },
+  },
 })
diff --git a/packages/api/src/business/rules-demarches/definitions.test.ts b/packages/api/src/business/rules-demarches/definitions.test.ts
index b5b841c1c..a26729c86 100644
--- a/packages/api/src/business/rules-demarches/definitions.test.ts
+++ b/packages/api/src/business/rules-demarches/definitions.test.ts
@@ -1,7 +1,4 @@
-import {
-  isDemarcheDefinitionMachine,
-  isDemarcheDefinitionRestriction
-} from './definitions.js'
+import { isDemarcheDefinitionMachine, isDemarcheDefinitionRestriction } from './definitions.js'
 import { restrictionsArmRet } from './arm/ret.js'
 import { ArmOctMachine } from './arm/oct.machine.js'
 import { expect, test } from 'vitest'
@@ -13,7 +10,7 @@ test('isDemarcheDefinitionMachine', () => {
       titreTypeId: 'pxm',
       demarcheTypeIds: [],
       dateDebut: toCaminoDate('2022-01-01'),
-      machine: new ArmOctMachine()
+      machine: new ArmOctMachine(),
     })
   ).toBe(true)
   expect(
@@ -21,7 +18,7 @@ test('isDemarcheDefinitionMachine', () => {
       titreTypeId: 'pxm',
       demarcheTypeIds: [],
       dateDebut: toCaminoDate('2022-01-01'),
-      restrictions: restrictionsArmRet
+      restrictions: restrictionsArmRet,
     })
   ).toBe(false)
   expect(isDemarcheDefinitionMachine(undefined)).toBe(false)
@@ -32,7 +29,7 @@ test('isDemarcheDefinitionRestriction', () => {
       titreTypeId: 'pxm',
       demarcheTypeIds: [],
       dateDebut: toCaminoDate('2022-01-01'),
-      machine: new ArmOctMachine()
+      machine: new ArmOctMachine(),
     })
   ).toBe(false)
   expect(
@@ -40,7 +37,7 @@ test('isDemarcheDefinitionRestriction', () => {
       titreTypeId: 'pxm',
       demarcheTypeIds: [],
       dateDebut: toCaminoDate('2022-01-01'),
-      restrictions: restrictionsArmRet
+      restrictions: restrictionsArmRet,
     })
   ).toBe(true)
 })
diff --git a/packages/api/src/business/rules-demarches/definitions.ts b/packages/api/src/business/rules-demarches/definitions.ts
index 10559729a..4208b474e 100644
--- a/packages/api/src/business/rules-demarches/definitions.ts
+++ b/packages/api/src/business/rules-demarches/definitions.ts
@@ -32,22 +32,15 @@ export interface IDemarcheDefinitionRestrictionsProps {
   justeApres: IEtapeTypeIdCondition[][]
 }
 
-export interface IDemarcheDefinitionRestrictionsElements
-  extends IDemarcheDefinitionRestrictionsProps {
+export interface IDemarcheDefinitionRestrictionsElements extends IDemarcheDefinitionRestrictionsProps {
   etapeTypeId?: string
 }
-export type IDemarcheDefinition =
-  | DemarcheDefinitionRestriction
-  | DemarcheDefinitionMachine
+export type IDemarcheDefinition = DemarcheDefinitionRestriction | DemarcheDefinitionMachine
 
-export const isDemarcheDefinitionRestriction = (
-  dd: IDemarcheDefinition | undefined
-): dd is DemarcheDefinitionRestriction => {
+export const isDemarcheDefinitionRestriction = (dd: IDemarcheDefinition | undefined): dd is DemarcheDefinitionRestriction => {
   return dd !== undefined && 'restrictions' in dd
 }
-export const isDemarcheDefinitionMachine = (
-  dd: IDemarcheDefinition | undefined
-): dd is DemarcheDefinitionMachine => {
+export const isDemarcheDefinitionMachine = (dd: IDemarcheDefinition | undefined): dd is DemarcheDefinitionMachine => {
   return dd !== undefined && 'machine' in dd
 }
 
@@ -57,8 +50,7 @@ interface DemarcheDefinitionCommon {
   dateDebut: CaminoDate
   demarcheIdExceptions?: DemarcheId[]
 }
-export interface DemarcheDefinitionRestriction
-  extends DemarcheDefinitionCommon {
+export interface DemarcheDefinitionRestriction extends DemarcheDefinitionCommon {
   restrictions: IDemarcheDefinitionRestrictions
 }
 export interface DemarcheDefinitionMachine extends DemarcheDefinitionCommon {
@@ -88,25 +80,25 @@ export const demarchesDefinitions: IDemarcheDefinition[] = [
     titreTypeId: 'arm',
     demarcheTypeIds: ['oct'],
     machine: new ArmOctMachine(),
-    dateDebut: toCaminoDate('2019-10-31')
+    dateDebut: toCaminoDate('2019-10-31'),
   },
   {
     titreTypeId: 'arm',
     demarcheTypeIds: ['ret'],
     restrictions: restrictionsArmRet,
-    dateDebut: toCaminoDate('2019-10-31')
+    dateDebut: toCaminoDate('2019-10-31'),
   },
   {
     titreTypeId: 'arm',
     demarcheTypeIds: ['ren', 'pro'],
     restrictions: restrictionsArmRenPro,
-    dateDebut: toCaminoDate('2019-10-31')
+    dateDebut: toCaminoDate('2019-10-31'),
   },
   {
     titreTypeId: 'prm',
     demarcheTypeIds: ['oct'],
     restrictions: etatsDefinitionPrmOct,
-    dateDebut: toCaminoDate('2019-10-31')
+    dateDebut: toCaminoDate('2019-10-31'),
   },
   {
     titreTypeId: 'axm',
@@ -118,16 +110,16 @@ export const demarchesDefinitions: IDemarcheDefinition[] = [
       newDemarcheId('C3rs92l1eci3mLvsAGkv7gVV'),
       newDemarcheId('YEWeODXiFb7xKJB2OQlTyc14'),
       // avis dgtm moins de 30 jours après la saisine des services
-      newDemarcheId('ktPyoaDYzJi2faPMtAeKFZ5l')
-    ]
+      newDemarcheId('ktPyoaDYzJi2faPMtAeKFZ5l'),
+    ],
   },
   {
     titreTypeId: 'pxg',
     demarcheTypeIds: ['oct'],
     machine: new PxgOctMachine(),
     // https://camino.beta.gouv.fr/titres/g-px-vallee-arena-2020
-    dateDebut: toCaminoDate('2021-01-01')
-  }
+    dateDebut: toCaminoDate('2021-01-01'),
+  },
 ]
 
 export const demarcheDefinitionFind = (
@@ -140,12 +132,7 @@ export const demarcheDefinitionFind = (
 
   const definition = demarchesDefinitions
     .sort((a, b) => b.dateDebut.localeCompare(a.dateDebut))
-    .find(
-      d =>
-        (!date || d.dateDebut < date) &&
-        d.titreTypeId === titreTypeId &&
-        d.demarcheTypeIds.includes(demarcheTypeId)
-    )
+    .find(d => (!date || d.dateDebut < date) && d.titreTypeId === titreTypeId && d.demarcheTypeIds.includes(demarcheTypeId))
 
   if (definition?.demarcheIdExceptions?.includes(demarcheId)) {
     return undefined
diff --git a/packages/api/src/business/rules-demarches/etat-cycles.ts b/packages/api/src/business/rules-demarches/etat-cycles.ts
index 52719446f..f363b1f4f 100644
--- a/packages/api/src/business/rules-demarches/etat-cycles.ts
+++ b/packages/api/src/business/rules-demarches/etat-cycles.ts
@@ -1,45 +1,27 @@
 import { IDemarcheDefinitionRestrictionsElements } from './definitions.js'
 
-const etatCycleGet = (
-  etapeTypeIdDefinition: IDemarcheDefinitionRestrictionsElements,
-  demandeEtapeTypeId: string,
-  receptionEtapeTypeId: string
-) => {
+const etatCycleGet = (etapeTypeIdDefinition: IDemarcheDefinitionRestrictionsElements, demandeEtapeTypeId: string, receptionEtapeTypeId: string) => {
   const newEtapeTypeIdDefinition = Object.assign({}, etapeTypeIdDefinition)
   delete newEtapeTypeIdDefinition.etapeTypeId
 
   return {
     [demandeEtapeTypeId]: {
       avant: [[{ etapeTypeId: etapeTypeIdDefinition.etapeTypeId }]],
-      justeApres: [
-        ...etapeTypeIdDefinition.justeApres,
-        [{ etapeTypeId: receptionEtapeTypeId }]
-      ]
+      justeApres: [...etapeTypeIdDefinition.justeApres, [{ etapeTypeId: receptionEtapeTypeId }]],
     },
     [receptionEtapeTypeId]: {
-      justeApres: [[{ etapeTypeId: demandeEtapeTypeId }]]
+      justeApres: [[{ etapeTypeId: demandeEtapeTypeId }]],
     },
     [etapeTypeIdDefinition.etapeTypeId!]: {
       ...newEtapeTypeIdDefinition,
       avant: [[{ etapeTypeId: etapeTypeIdDefinition.etapeTypeId }]],
-      justeApres: [
-        ...etapeTypeIdDefinition.justeApres,
-        [{ etapeTypeId: receptionEtapeTypeId }]
-      ]
-    }
+      justeApres: [...etapeTypeIdDefinition.justeApres, [{ etapeTypeId: receptionEtapeTypeId }]],
+    },
   }
 }
 
-const etatInformationsGet = (
-  mifId: string,
-  rifId: string,
-  etapeTypeIdDefinition: IDemarcheDefinitionRestrictionsElements
-) => etatCycleGet(etapeTypeIdDefinition, mifId, rifId)
+const etatInformationsGet = (mifId: string, rifId: string, etapeTypeIdDefinition: IDemarcheDefinitionRestrictionsElements) => etatCycleGet(etapeTypeIdDefinition, mifId, rifId)
 
-const etatComplementsGet = (
-  mcoId: string,
-  rcoId: string,
-  etapeTypeIdDefinition: IDemarcheDefinitionRestrictionsElements
-) => etatCycleGet(etapeTypeIdDefinition, mcoId, rcoId)
+const etatComplementsGet = (mcoId: string, rcoId: string, etapeTypeIdDefinition: IDemarcheDefinitionRestrictionsElements) => etatCycleGet(etapeTypeIdDefinition, mcoId, rcoId)
 
 export { etatInformationsGet, etatComplementsGet }
diff --git a/packages/api/src/business/rules-demarches/machine-common.test.ts b/packages/api/src/business/rules-demarches/machine-common.test.ts
index cab6a4af9..4cd1d2c47 100644
--- a/packages/api/src/business/rules-demarches/machine-common.test.ts
+++ b/packages/api/src/business/rules-demarches/machine-common.test.ts
@@ -9,15 +9,15 @@ describe('toMachineEtapes', () => {
         {
           typeId: 'mfr',
           statutId: 'fai',
-          date: toCaminoDate('2022-01-01')
-        }
+          date: toCaminoDate('2022-01-01'),
+        },
       ])
     ).toEqual([
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
-        date: '2022-01-01'
-      }
+        date: '2022-01-01',
+      },
     ])
 
     expect(
@@ -26,16 +26,16 @@ describe('toMachineEtapes', () => {
           typeId: 'mfr',
           statutId: 'fai',
           date: toCaminoDate('2022-01-01'),
-          contenu: { arm: { mecanise: true } }
-        }
+          contenu: { arm: { mecanise: true } },
+        },
       ])
     ).toEqual([
       {
         etapeTypeId: 'mfr',
         etapeStatutId: 'fai',
         date: '2022-01-01',
-        contenu: { arm: { mecanise: true } }
-      }
+        contenu: { arm: { mecanise: true } },
+      },
     ])
   })
 
@@ -47,8 +47,8 @@ describe('toMachineEtapes', () => {
           typeId: 'iii',
           statutId: 'fai',
           date: '2022-01-01',
-          titreDemarcheId: 'idDemarche'
-        } as unknown as ITitreEtape
+          titreDemarcheId: 'idDemarche',
+        } as unknown as ITitreEtape,
       ])
     ).toThrowErrorMatchingInlineSnapshot(`"l'état iii est inconnu"`)
   })
@@ -61,8 +61,8 @@ describe('toMachineEtapes', () => {
           typeId: 'mfr',
           statutId: 'ffi',
           date: '2022-01-01',
-          titreDemarcheId: 'idDemarche'
-        } as unknown as ITitreEtape
+          titreDemarcheId: 'idDemarche',
+        } as unknown as ITitreEtape,
       ])
     ).toThrowErrorMatchingInlineSnapshot(
       `"le status ffi est inconnu, {\\"id\\":\\"id\\",\\"typeId\\":\\"mfr\\",\\"statutId\\":\\"ffi\\",\\"date\\":\\"2022-01-01\\",\\"titreDemarcheId\\":\\"idDemarche\\"}"`
diff --git a/packages/api/src/business/rules-demarches/machine-common.ts b/packages/api/src/business/rules-demarches/machine-common.ts
index 0aad00580..68ee18dd6 100644
--- a/packages/api/src/business/rules-demarches/machine-common.ts
+++ b/packages/api/src/business/rules-demarches/machine-common.ts
@@ -1,14 +1,6 @@
 import { IContenu, ITitreEtape } from '../../types.js'
-import {
-  EtapeStatutId,
-  EtapeStatutKey,
-  ETAPES_STATUTS,
-  isStatut
-} from 'camino-common/src/static/etapesStatuts.js'
-import {
-  EtapeTypeId,
-  isEtapeTypeId
-} from 'camino-common/src/static/etapesTypes.js'
+import { EtapeStatutId, EtapeStatutKey, ETAPES_STATUTS, isStatut } from 'camino-common/src/static/etapesStatuts.js'
+import { EtapeTypeId, isEtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
 import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
 import { EtapeTypeEtapeStatut } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
 import { DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts.js'
@@ -27,12 +19,7 @@ export interface CaminoCommonContext {
   visibilite: 'confidentielle' | 'publique'
 }
 
-export const toMachineEtapes = (
-  etapes: Pick<
-    ITitreEtape,
-    'ordre' | 'typeId' | 'statutId' | 'date' | 'contenu'
-  >[]
-): Etape[] => {
+export const toMachineEtapes = (etapes: Pick<ITitreEtape, 'ordre' | 'typeId' | 'statutId' | 'date' | 'contenu'>[]): Etape[] => {
   // FIXME si on appelle titreEtapesSortAscByOrdre on se retrouve avec une grosse dépendance cyclique
   return etapes
     .slice()
@@ -40,9 +27,7 @@ export const toMachineEtapes = (
     .map(dbEtape => toMachineEtape(dbEtape))
 }
 
-const toMachineEtape = (
-  dbEtape: Pick<ITitreEtape, 'typeId' | 'statutId' | 'date' | 'contenu'>
-): Etape => {
+const toMachineEtape = (dbEtape: Pick<ITitreEtape, 'typeId' | 'statutId' | 'date' | 'contenu'>): Etape => {
   let typeId
   if (isEtapeTypeId(dbEtape.typeId)) {
     typeId = dbEtape.typeId
@@ -53,18 +38,14 @@ const toMachineEtape = (
   if (isStatut(dbEtape.statutId)) {
     statutId = dbEtape.statutId
   } else {
-    console.error(
-      `le status ${dbEtape.statutId} est inconnu, ${JSON.stringify(dbEtape)}`
-    )
-    throw new Error(
-      `le status ${dbEtape.statutId} est inconnu, ${JSON.stringify(dbEtape)}`
-    )
+    console.error(`le status ${dbEtape.statutId} est inconnu, ${JSON.stringify(dbEtape)}`)
+    throw new Error(`le status ${dbEtape.statutId} est inconnu, ${JSON.stringify(dbEtape)}`)
   }
 
   const machineEtape: Etape = {
     date: dbEtape.date,
     etapeTypeId: typeId,
-    etapeStatutId: statutId
+    etapeStatutId: statutId,
   }
   if (dbEtape.contenu) {
     machineEtape.contenu = dbEtape.contenu
@@ -77,19 +58,14 @@ export const tags = {
   responsable: {
     [ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']]: 'responsablePTMG',
     [ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']]: 'responsableONF',
-    [ADMINISTRATION_IDS['DGTM - GUYANE']]: 'responsableDGTM'
-  }
+    [ADMINISTRATION_IDS['DGTM - GUYANE']]: 'responsableDGTM',
+  },
 } as const
 
 export type Intervenant = keyof (typeof tags)['responsable']
 
-export const intervenants = Object.keys(tags.responsable) as Array<
-  keyof typeof tags.responsable
->
+export const intervenants = Object.keys(tags.responsable) as Array<keyof typeof tags.responsable>
 
 export type DBEtat = {
-  [key in EtapeStatutKey]?: EtapeTypeEtapeStatut<
-    EtapeTypeId,
-    (typeof ETAPES_STATUTS)[key]
-  >
+  [key in EtapeStatutKey]?: EtapeTypeEtapeStatut<EtapeTypeId, (typeof ETAPES_STATUTS)[key]>
 }
diff --git a/packages/api/src/business/rules-demarches/machine-helper.test.ts b/packages/api/src/business/rules-demarches/machine-helper.test.ts
index 9eaa83372..af22bf5a8 100644
--- a/packages/api/src/business/rules-demarches/machine-helper.test.ts
+++ b/packages/api/src/business/rules-demarches/machine-helper.test.ts
@@ -11,13 +11,13 @@ describe('isEtapesOk', () => {
         {
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2021-02-26')
+          date: toCaminoDate('2021-02-26'),
         },
         {
           etapeTypeId: 'mdp',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2021-02-10')
-        }
+          date: toCaminoDate('2021-02-10'),
+        },
       ])
     ).toBe(false)
   })
@@ -31,100 +31,100 @@ describe('demarcheStatut', () => {
           date: toCaminoDate('2020-07-27'),
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
-          contenu: { arm: { mecanise: true, franchissements: 1 } }
+          contenu: { arm: { mecanise: true, franchissements: 1 } },
         },
         {
           date: toCaminoDate('2021-07-27'),
           etapeTypeId: 'mdp',
-          etapeStatutId: 'fai'
+          etapeStatutId: 'fai',
         },
         {
           date: toCaminoDate('2021-07-28'),
           etapeTypeId: 'dae',
-          etapeStatutId: 'exe'
+          etapeStatutId: 'exe',
         },
         {
           date: toCaminoDate('2021-07-28'),
           etapeTypeId: 'pfd',
-          etapeStatutId: 'fai'
+          etapeStatutId: 'fai',
         },
         {
           date: toCaminoDate('2021-07-28'),
           etapeTypeId: 'mcp',
-          etapeStatutId: 'com'
+          etapeStatutId: 'com',
         },
         {
           date: toCaminoDate('2021-07-29'),
           etapeTypeId: 'vfd',
-          etapeStatutId: 'fai'
+          etapeStatutId: 'fai',
         },
         {
           date: toCaminoDate('2021-09-16'),
           etapeTypeId: 'mcr',
-          etapeStatutId: 'fav'
+          etapeStatutId: 'fav',
         },
         {
           date: toCaminoDate('2021-09-16'),
           etapeTypeId: 'eof',
-          etapeStatutId: 'fai'
+          etapeStatutId: 'fai',
         },
         {
           date: toCaminoDate('2021-12-13'),
           etapeTypeId: 'rde',
           etapeStatutId: 'fav',
-          contenu: { arm: { franchissements: 1 } }
+          contenu: { arm: { franchissements: 1 } },
         },
         {
           date: toCaminoDate('2021-12-20'),
           etapeTypeId: 'aof',
-          etapeStatutId: 'def'
+          etapeStatutId: 'def',
         },
         {
           date: toCaminoDate('2022-02-11'),
           etapeTypeId: 'sca',
-          etapeStatutId: 'fai'
+          etapeStatutId: 'fai',
         },
         {
           date: toCaminoDate('2022-02-11'),
           etapeTypeId: 'aca',
-          etapeStatutId: 'ajo'
+          etapeStatutId: 'ajo',
         },
         {
           date: toCaminoDate('2022-02-23'),
           etapeTypeId: 'mna',
-          etapeStatutId: 'fai'
+          etapeStatutId: 'fai',
         },
         {
           date: toCaminoDate('2022-03-16'),
           etapeTypeId: 'sca',
-          etapeStatutId: 'fai'
+          etapeStatutId: 'fai',
         },
         {
           date: toCaminoDate('2022-03-16'),
           etapeTypeId: 'aca',
-          etapeStatutId: 'fav'
+          etapeStatutId: 'fav',
         },
         {
           date: toCaminoDate('2022-03-31'),
           etapeTypeId: 'mnb',
-          etapeStatutId: 'fai'
+          etapeStatutId: 'fai',
         },
         {
           date: toCaminoDate('2022-04-26'),
           etapeTypeId: 'pfc',
-          etapeStatutId: 'fai'
+          etapeStatutId: 'fai',
         },
         {
           date: toCaminoDate('2022-04-26'),
           etapeTypeId: 'vfc',
-          etapeStatutId: 'fai'
+          etapeStatutId: 'fai',
         },
         {
           date: toCaminoDate('2022-04-26'),
           etapeTypeId: 'sco',
           etapeStatutId: 'fai',
-          contenu: { arm: { mecanise: true } }
-        }
+          contenu: { arm: { mecanise: true } },
+        },
       ])
     ).toStrictEqual({ demarcheStatut: 'acc', publique: true })
   })
@@ -136,18 +136,18 @@ describe('whoIsBlocking', () => {
         {
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2021-02-01')
+          date: toCaminoDate('2021-02-01'),
         },
         {
           etapeTypeId: 'mdp',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2021-02-02')
+          date: toCaminoDate('2021-02-02'),
         },
         {
           etapeTypeId: 'pfd',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2021-02-03')
-        }
+          date: toCaminoDate('2021-02-03'),
+        },
       ])
     ).toStrictEqual([ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']])
   })
@@ -158,23 +158,23 @@ describe('whoIsBlocking', () => {
         {
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2021-02-01')
+          date: toCaminoDate('2021-02-01'),
         },
         {
           etapeTypeId: 'mdp',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2021-02-02')
+          date: toCaminoDate('2021-02-02'),
         },
         {
           etapeTypeId: 'pfd',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2021-02-03')
+          date: toCaminoDate('2021-02-03'),
         },
         {
           etapeTypeId: 'mcp',
           etapeStatutId: 'com',
-          date: toCaminoDate('2021-02-04')
-        }
+          date: toCaminoDate('2021-02-04'),
+        },
       ])
     ).toStrictEqual([ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']])
   })
@@ -185,33 +185,33 @@ describe('whoIsBlocking', () => {
         {
           etapeTypeId: 'mfr',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2021-02-01')
+          date: toCaminoDate('2021-02-01'),
         },
         {
           etapeTypeId: 'mdp',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2021-02-02')
+          date: toCaminoDate('2021-02-02'),
         },
         {
           etapeTypeId: 'pfd',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2021-02-03')
+          date: toCaminoDate('2021-02-03'),
         },
         {
           etapeTypeId: 'mcp',
           etapeStatutId: 'com',
-          date: toCaminoDate('2021-02-04')
+          date: toCaminoDate('2021-02-04'),
         },
         {
           etapeTypeId: 'vfd',
           etapeStatutId: 'fai',
-          date: toCaminoDate('2021-02-05')
+          date: toCaminoDate('2021-02-05'),
         },
         {
           etapeTypeId: 'mcr',
           etapeStatutId: 'fav',
-          date: toCaminoDate('2021-02-06')
-        }
+          date: toCaminoDate('2021-02-06'),
+        },
       ])
     ).toStrictEqual([])
   })
diff --git a/packages/api/src/business/rules-demarches/machine-helper.ts b/packages/api/src/business/rules-demarches/machine-helper.ts
index 75971fe20..af643929d 100644
--- a/packages/api/src/business/rules-demarches/machine-helper.ts
+++ b/packages/api/src/business/rules-demarches/machine-helper.ts
@@ -1,30 +1,9 @@
-import {
-  BaseActionObject,
-  interpret,
-  ResolveTypegenMeta,
-  ServiceMap,
-  State,
-  StateMachine,
-  TypegenDisabled
-} from 'xstate'
+import { BaseActionObject, interpret, ResolveTypegenMeta, ServiceMap, State, StateMachine, TypegenDisabled } from 'xstate'
 import { EventObject } from 'xstate/lib/types.js'
-import {
-  CaminoCommonContext,
-  DBEtat,
-  Etape,
-  Intervenant,
-  intervenants,
-  tags
-} from './machine-common.js'
-import {
-  DemarchesStatutsIds,
-  DemarcheStatutId
-} from 'camino-common/src/static/demarchesStatuts.js'
-
-export abstract class CaminoMachine<
-  CaminoContext extends CaminoCommonContext,
-  CaminoEvent extends EventObject
-> {
+import { CaminoCommonContext, DBEtat, Etape, Intervenant, intervenants, tags } from './machine-common.js'
+import { DemarchesStatutsIds, DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts.js'
+
+export abstract class CaminoMachine<CaminoContext extends CaminoCommonContext, CaminoEvent extends EventObject> {
   public readonly machine: StateMachine<
     CaminoContext,
     any,
@@ -32,12 +11,7 @@ export abstract class CaminoMachine<
     { value: any; context: CaminoContext },
     BaseActionObject,
     ServiceMap,
-    ResolveTypegenMeta<
-      TypegenDisabled,
-      CaminoEvent,
-      BaseActionObject,
-      ServiceMap
-    >
+    ResolveTypegenMeta<TypegenDisabled, CaminoEvent, BaseActionObject, ServiceMap>
   >
 
   private readonly trad: { [key in CaminoEvent['type']]: DBEtat }
@@ -51,12 +25,7 @@ export abstract class CaminoMachine<
       { value: any; context: CaminoContext },
       BaseActionObject,
       ServiceMap,
-      ResolveTypegenMeta<
-        TypegenDisabled,
-        CaminoEvent,
-        BaseActionObject,
-        ServiceMap
-      >
+      ResolveTypegenMeta<TypegenDisabled, CaminoEvent, BaseActionObject, ServiceMap>
     >,
     trad: { [key in CaminoEvent['type']]: DBEtat }
   ) {
@@ -67,21 +36,17 @@ export abstract class CaminoMachine<
 
   abstract eventFrom(etape: Etape): CaminoEvent
 
-  protected caminoXStateEventToEtapes(
-    event: CaminoEvent
-  ): Omit<Etape, 'date'>[] {
+  protected caminoXStateEventToEtapes(event: CaminoEvent): Omit<Etape, 'date'>[] {
     const dbEtat: DBEtat = this.trad[event.type as CaminoEvent['type']]
 
     return Object.values(dbEtat).map(({ etapeTypeId, etapeStatutId }) => ({
       etapeTypeId,
-      etapeStatutId
+      etapeStatutId,
     }))
   }
 
   // visibleForTesting
-  public toPotentialCaminoXStateEvent(
-    event: CaminoEvent['type']
-  ): CaminoEvent[] {
+  public toPotentialCaminoXStateEvent(event: CaminoEvent['type']): CaminoEvent[] {
     // related to https://github.com/microsoft/TypeScript/issues/46497  https://github.com/microsoft/TypeScript/issues/40803 :(
     // eslint-disable-next-line @typescript-eslint/ban-ts-comment
     // @ts-ignore
@@ -94,9 +59,7 @@ export abstract class CaminoMachine<
   }
 
   public orderMachine(etapes: readonly Etape[]): readonly Etape[] {
-    const sortedEtapes = etapes
-      .slice()
-      .sort((a, b) => a.date.localeCompare(b.date))
+    const sortedEtapes = etapes.slice().sort((a, b) => a.date.localeCompare(b.date))
 
     const solution = this.findSolution(sortedEtapes)
 
@@ -107,10 +70,7 @@ export abstract class CaminoMachine<
     return solution
   }
 
-  private findSolution(
-    etapes: readonly Etape[],
-    temp: Etape[] = []
-  ): readonly Etape[] | undefined {
+  private findSolution(etapes: readonly Etape[], temp: Etape[] = []): readonly Etape[] | undefined {
     if (!etapes.length) {
       return this.isEtapesOk(temp) ? temp : undefined
     }
@@ -118,29 +78,18 @@ export abstract class CaminoMachine<
     const etape = etapes[0]
     // Une étape en conflit avec une autre peut être:
     // - une étape à la même date
-    const etapesAvecConflitPotentiel = etapes.filter(
-      ({ date }) => date === etape.date
-    )
+    const etapesAvecConflitPotentiel = etapes.filter(({ date }) => date === etape.date)
 
     if (etapesAvecConflitPotentiel.length) {
       for (let i = 0; i < etapesAvecConflitPotentiel.length; i++) {
         const e = etapesAvecConflitPotentiel[i]
         const tmp = [...temp]
         tmp.push(e)
-        const index = etapes.findIndex(
-          ({ date, etapeTypeId, etapeStatutId }) =>
-            date === e.date &&
-            etapeTypeId === e.etapeTypeId &&
-            etapeStatutId === e.etapeStatutId
-        )
+        const index = etapes.findIndex(({ date, etapeTypeId, etapeStatutId }) => date === e.date && etapeTypeId === e.etapeTypeId && etapeStatutId === e.etapeStatutId)
         if (index < 0) {
-          throw new Error(
-            `On n'arrive pas à trouver l'étape ${e} qu'on avait juste avant ${etapes}, cas impossible ?`
-          )
+          throw new Error(`On n'arrive pas à trouver l'étape ${e} qu'on avait juste avant ${etapes}, cas impossible ?`)
         }
-        const nextEtapes = etapes.filter(
-          (_element, elementIndex) => index !== elementIndex
-        )
+        const nextEtapes = etapes.filter((_element, elementIndex) => index !== elementIndex)
 
         if (this.isEtapesOk(tmp)) {
           const solution = this.findSolution(nextEtapes, tmp)
@@ -165,10 +114,7 @@ export abstract class CaminoMachine<
    * Cette function ne doit JAMAIS appeler orderMachine, car c'est orderMachine qui se sert de cette fonction.
    * Cette function ne fait que vérifier si les étapes qu'on lui donne sont valides dans l'ordre
    */
-  public isEtapesOk(
-    sortedEtapes: readonly Etape[],
-    initialState: State<CaminoContext, CaminoEvent> | null = null
-  ): boolean {
+  public isEtapesOk(sortedEtapes: readonly Etape[], initialState: State<CaminoContext, CaminoEvent> | null = null): boolean {
     if (sortedEtapes.length) {
       for (let i = 1; i < sortedEtapes.length; i++) {
         if (sortedEtapes[i - 1].date > sortedEtapes[i].date) {
@@ -194,18 +140,7 @@ export abstract class CaminoMachine<
     | { valid: false; etapeIndex: number }
     | {
         valid: true
-        state: State<
-          CaminoContext,
-          CaminoEvent,
-          any,
-          { value: any; context: CaminoContext },
-          ResolveTypegenMeta<
-            TypegenDisabled,
-            CaminoEvent,
-            BaseActionObject,
-            ServiceMap
-          >
-        >
+        state: State<CaminoContext, CaminoEvent, any, { value: any; context: CaminoContext }, ResolveTypegenMeta<TypegenDisabled, CaminoEvent, BaseActionObject, ServiceMap>>
       } {
     const service = interpret(this.machine)
 
@@ -237,35 +172,24 @@ export abstract class CaminoMachine<
   } {
     const value = this.goTo(etapes)
     if (!value.valid) {
-      console.error(
-        `impossible de trouver le demarcheStatus, cette liste d'étapes '${JSON.stringify(
-          etapes
-        )}' est incohérente à l'étape ${value.etapeIndex + 1}`
-      )
+      console.error(`impossible de trouver le demarcheStatus, cette liste d'étapes '${JSON.stringify(etapes)}' est incohérente à l'étape ${value.etapeIndex + 1}`)
 
       return {
         demarcheStatut: DemarchesStatutsIds.Indetermine,
-        publique: false
+        publique: false,
       }
     } else {
       return {
         demarcheStatut: value.state.context.demarcheStatut,
-        publique: value.state.context.visibilite === 'publique'
+        publique: value.state.context.visibilite === 'publique',
       }
     }
   }
 
-  private assertGoTo(
-    etapes: readonly Etape[],
-    initialState: State<CaminoContext, CaminoEvent> | null = null
-  ) {
+  private assertGoTo(etapes: readonly Etape[], initialState: State<CaminoContext, CaminoEvent> | null = null) {
     const value = this.goTo(etapes, initialState)
     if (!value.valid) {
-      throw new Error(
-        `Les étapes '${JSON.stringify(
-          etapes
-        )}' sont invalides à partir de l’étape ${value.etapeIndex}`
-      )
+      throw new Error(`Les étapes '${JSON.stringify(etapes)}' sont invalides à partir de l’étape ${value.etapeIndex}`)
     } else {
       return value.state
     }
@@ -287,9 +211,7 @@ export abstract class CaminoMachine<
       .flatMap(event => {
         const events = this.toPotentialCaminoXStateEvent(event)
 
-        return events
-          .filter(event => state.can(event))
-          .flatMap(event => this.caminoXStateEventToEtapes(event))
+        return events.filter(event => state.can(event)).flatMap(event => this.caminoXStateEventToEtapes(event))
       })
       .filter(event => event !== undefined)
   }
diff --git a/packages/api/src/business/rules-demarches/machine-test-helper.ts b/packages/api/src/business/rules-demarches/machine-test-helper.ts
index a720e14ce..4871678c1 100644
--- a/packages/api/src/business/rules-demarches/machine-test-helper.ts
+++ b/packages/api/src/business/rules-demarches/machine-test-helper.ts
@@ -4,10 +4,7 @@ import { interpret } from 'xstate'
 import { CaminoMachine } from './machine-helper.js'
 import { expect } from 'vitest'
 interface CustomMatchers<R = unknown> {
-  canOnlyTransitionTo<T extends EventObject>(
-    machine: CaminoMachine<any, T>,
-    _events: EventObject['type'][]
-  ): R
+  canOnlyTransitionTo<T extends EventObject>(machine: CaminoMachine<any, T>, _events: EventObject['type'][]): R
 }
 
 declare global {
@@ -21,11 +18,7 @@ declare global {
   }
 }
 expect.extend({
-  canOnlyTransitionTo<T extends EventObject>(
-    service: any,
-    machine: CaminoMachine<any, T>,
-    events: T['type'][]
-  ) {
+  canOnlyTransitionTo<T extends EventObject>(service: any, machine: CaminoMachine<any, T>, events: T['type'][]) {
     events.sort()
     const passEvents: EventObject['type'][] = service.state.nextEvents
       .filter((event: string) => machine.isEvent(event))
@@ -36,33 +29,21 @@ expect.extend({
       })
 
     passEvents.sort()
-    if (
-      passEvents.length !== events.length ||
-      passEvents.some((entry, index) => entry !== events[index])
-    ) {
+    if (passEvents.length !== events.length || passEvents.some((entry, index) => entry !== events[index])) {
       return {
         pass: false,
-        message: () =>
-          `Expected possible transitions to be ['${events.join(
-            "','"
-          )}'] but were ['${passEvents.join("','")}']`
+        message: () => `Expected possible transitions to be ['${events.join("','")}'] but were ['${passEvents.join("','")}']`,
       }
     }
 
     return {
       pass: true,
-      message: () => 'OK'
+      message: () => 'OK',
     }
-  }
+  },
 })
 
-export const interpretMachine = <
-  T extends EventObject,
-  C extends CaminoCommonContext
->(
-  machine: CaminoMachine<C, T>,
-  etapes: readonly Etape[]
-) => {
+export const interpretMachine = <T extends EventObject, C extends CaminoCommonContext>(machine: CaminoMachine<C, T>, etapes: readonly Etape[]) => {
   const service = interpret(machine.machine)
 
   service.start()
@@ -73,15 +54,9 @@ export const interpretMachine = <
 
     if (!service.state.can(event)) {
       throw new Error(
-        `Error: cannot execute step: '${JSON.stringify(
-          etapeAFaire
-        )}' after '${JSON.stringify(
-          etapes
-            .slice(0, i)
-            .map(etape => etape.etapeTypeId + '_' + etape.etapeStatutId)
-        )}'. The event ${JSON.stringify(
-          event
-        )} should be one of '${service.state.nextEvents
+        `Error: cannot execute step: '${JSON.stringify(etapeAFaire)}' after '${JSON.stringify(
+          etapes.slice(0, i).map(etape => etape.etapeTypeId + '_' + etape.etapeStatutId)
+        )}'. The event ${JSON.stringify(event)} should be one of '${service.state.nextEvents
           .filter(event => machine.isEvent(event))
           .filter((event: EventObject['type']) => {
             const events = machine.toPotentialCaminoXStateEvent(event)
@@ -96,12 +71,6 @@ export const interpretMachine = <
   return service
 }
 
-export const orderAndInterpretMachine = <
-  T extends EventObject,
-  C extends CaminoCommonContext
->(
-  machine: CaminoMachine<C, T>,
-  etapes: readonly Etape[]
-) => {
+export const orderAndInterpretMachine = <T extends EventObject, C extends CaminoCommonContext>(machine: CaminoMachine<C, T>, etapes: readonly Etape[]) => {
   return interpretMachine(machine, machine.orderMachine(etapes))
 }
diff --git a/packages/api/src/business/rules-demarches/prm/oct.test.ts b/packages/api/src/business/rules-demarches/prm/oct.test.ts
index 2bd33206e..7cf648a36 100644
--- a/packages/api/src/business/rules-demarches/prm/oct.test.ts
+++ b/packages/api/src/business/rules-demarches/prm/oct.test.ts
@@ -28,7 +28,7 @@ describe('vérifie l’arbre d’octroi d’une PRM', () => {
         { typeId: 'dex', statutId: 'rej', date: toCaminoDate('2020-01-16') },
         { typeId: 'npp', date: toCaminoDate('2020-01-17') },
         { typeId: 'mno', date: toCaminoDate('2020-01-18') },
-        { typeId: 'rpu', date: toCaminoDate('2020-01-19') }
+        { typeId: 'rpu', date: toCaminoDate('2020-01-19') },
       ])
     ).toMatchInlineSnapshot(`
       [
@@ -62,7 +62,7 @@ describe('vérifie l’arbre d’octroi d’une PRM', () => {
         { typeId: 'dpu', statutId: 'acc', date: toCaminoDate('2020-01-17') },
         { typeId: 'npp', date: toCaminoDate('2020-01-18') },
         { typeId: 'mno', date: toCaminoDate('2020-01-19') },
-        { typeId: 'rpu', date: toCaminoDate('2020-01-19') }
+        { typeId: 'rpu', date: toCaminoDate('2020-01-19') },
       ])
     ).toHaveLength(0)
   })
@@ -74,7 +74,7 @@ describe('vérifie l’arbre d’octroi d’une PRM', () => {
         { typeId: 'mdp', date: toCaminoDate('2020-01-02') },
         { typeId: 'spp', date: toCaminoDate('2020-01-03') },
         { typeId: 'mcr', statutId: 'fav', date: toCaminoDate('2020-01-04') },
-        { typeId: 'ppu', date: toCaminoDate('2020-01-07') }
+        { typeId: 'ppu', date: toCaminoDate('2020-01-07') },
       ])
     ).toHaveLength(0)
   })
@@ -92,7 +92,7 @@ describe('vérifie l’arbre d’octroi d’une PRM', () => {
         { typeId: 'ppc', date: toCaminoDate('2020-01-08') },
         { typeId: 'scl', date: toCaminoDate('2020-01-07') },
         { typeId: 'ssr', date: toCaminoDate('2020-01-07') },
-        { typeId: 'apd', date: toCaminoDate('2020-01-09') }
+        { typeId: 'apd', date: toCaminoDate('2020-01-09') },
       ])
     ).toHaveLength(0)
   })
diff --git a/packages/api/src/business/rules-demarches/prm/oct.ts b/packages/api/src/business/rules-demarches/prm/oct.ts
index eae2f9771..88ad2bfb0 100644
--- a/packages/api/src/business/rules-demarches/prm/oct.ts
+++ b/packages/api/src/business/rules-demarches/prm/oct.ts
@@ -4,268 +4,198 @@ import { IDemarcheDefinitionRestrictions } from '../definitions.js'
 
 const etatsDefinitionPrmOct: IDemarcheDefinitionRestrictions = {
   mfr: {
-    justeApres: [[]]
+    justeApres: [[]],
   },
   mdp: {
-    justeApres: [[{ etapeTypeId: 'mfr' }]]
+    justeApres: [[{ etapeTypeId: 'mfr' }]],
   },
   nis: {
     apres: [[{ etapeTypeId: 'mdp' }]],
     justeApres: [],
-    final: false
+    final: false,
   },
   mod: {
     justeApres: [[]],
     apres: [[{ etapeTypeId: 'mdp' }]],
     avant: [[{ etapeTypeId: 'dex' }]],
-    final: false
+    final: false,
   },
   mif: {
     justeApres: [[]],
     apres: [[{ etapeTypeId: 'mdp' }]],
     avant: [[{ etapeTypeId: 'dex' }]],
-    final: false
+    final: false,
   },
   rif: {
     justeApres: [[{ etapeTypeId: 'mif' }]],
     avant: [[{ etapeTypeId: 'sas' }]],
-    final: false
+    final: false,
   },
   spp: {
-    justeApres: [[{ etapeTypeId: 'mdp' }]]
+    justeApres: [[{ etapeTypeId: 'mdp' }]],
   },
   mcr: {
     separation: ['scg'],
-    justeApres: [[{ etapeTypeId: 'spp' }], [{ etapeTypeId: 'rco' }]]
+    justeApres: [[{ etapeTypeId: 'spp' }], [{ etapeTypeId: 'rco' }]],
   },
   mco: {
-    justeApres: [
-      [{ etapeTypeId: 'mcr', statutId: 'def' }],
-      [{ etapeTypeId: 'rco' }]
-    ]
+    justeApres: [[{ etapeTypeId: 'mcr', statutId: 'def' }], [{ etapeTypeId: 'rco' }]],
   },
   rco: { justeApres: [[{ etapeTypeId: 'mco' }]] },
   anf: {
-    justeApres: [[{ etapeTypeId: 'mcr', statutId: 'fav' }]]
+    justeApres: [[{ etapeTypeId: 'mcr', statutId: 'fav' }]],
   },
   mec: {
-    justeApres: [[{ etapeTypeId: 'anf' }]]
+    justeApres: [[{ etapeTypeId: 'anf' }]],
   },
   scl: {
     separation: ['apo', 'spo', 'apd'],
     avant: [[{ etapeTypeId: 'scl' }]],
-    justeApres: [
-      [{ etapeTypeId: 'mcr', statutId: 'fav' }],
-      [{ etapeTypeId: 'anf' }],
-      [{ etapeTypeId: 'mec' }]
-    ]
+    justeApres: [[{ etapeTypeId: 'mcr', statutId: 'fav' }], [{ etapeTypeId: 'anf' }], [{ etapeTypeId: 'mec' }]],
   },
   ama: {
     justeApres: [[{ etapeTypeId: 'scl' }]],
-    avant: [
-      [{ etapeTypeId: 'apo' }],
-      [{ etapeTypeId: 'spo' }],
-      [{ etapeTypeId: 'apd' }]
-    ]
+    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }], [{ etapeTypeId: 'apd' }]],
   },
   aep: {
     justeApres: [[{ etapeTypeId: 'scl' }]],
-    avant: [
-      [{ etapeTypeId: 'apo' }],
-      [{ etapeTypeId: 'spo' }],
-      [{ etapeTypeId: 'apd' }]
-    ]
+    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }], [{ etapeTypeId: 'apd' }]],
   },
   acl: {
     justeApres: [[{ etapeTypeId: 'scl' }]],
-    avant: [
-      [{ etapeTypeId: 'apo' }],
-      [{ etapeTypeId: 'spo' }],
-      [{ etapeTypeId: 'apd' }]
-    ]
+    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }], [{ etapeTypeId: 'apd' }]],
   },
   ssr: {
     separation: ['apo', 'spo', 'apd'],
     avant: [[{ etapeTypeId: 'ssr' }]],
-    justeApres: [
-      [{ etapeTypeId: 'mcr', statutId: 'fav' }],
-      [{ etapeTypeId: 'anf' }],
-      [{ etapeTypeId: 'mec' }]
-    ]
+    justeApres: [[{ etapeTypeId: 'mcr', statutId: 'fav' }], [{ etapeTypeId: 'anf' }], [{ etapeTypeId: 'mec' }]],
   },
   apl: {
     justeApres: [[{ etapeTypeId: 'ssr' }]],
-    avant: [
-      [{ etapeTypeId: 'apo' }],
-      [{ etapeTypeId: 'spo' }],
-      [{ etapeTypeId: 'apd' }]
-    ]
+    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }], [{ etapeTypeId: 'apd' }]],
   },
   apm: {
     justeApres: [[{ etapeTypeId: 'ssr' }]],
-    avant: [
-      [{ etapeTypeId: 'apo' }],
-      [{ etapeTypeId: 'spo' }],
-      [{ etapeTypeId: 'apd' }]
-    ]
+    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }], [{ etapeTypeId: 'apd' }]],
   },
   pnr: {
     justeApres: [[{ etapeTypeId: 'ssr' }]],
-    avant: [
-      [{ etapeTypeId: 'apo' }],
-      [{ etapeTypeId: 'spo' }],
-      [{ etapeTypeId: 'apd' }]
-    ]
+    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }], [{ etapeTypeId: 'apd' }]],
   },
   apn: {
     justeApres: [[{ etapeTypeId: 'ssr' }]],
-    avant: [
-      [{ etapeTypeId: 'apo' }],
-      [{ etapeTypeId: 'spo' }],
-      [{ etapeTypeId: 'apd' }]
-    ]
+    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }], [{ etapeTypeId: 'apd' }]],
   },
   ars: {
     justeApres: [[{ etapeTypeId: 'ssr' }]],
-    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }]]
+    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }]],
   },
   afp: {
     justeApres: [[{ etapeTypeId: 'ssr' }]],
-    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }]]
+    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }]],
   },
   aac: {
     justeApres: [[{ etapeTypeId: 'ssr' }]],
-    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }]]
+    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }]],
   },
   aof: {
     justeApres: [[{ etapeTypeId: 'ssr' }]],
-    avant: [
-      [{ etapeTypeId: 'apo' }],
-      [{ etapeTypeId: 'spo' }],
-      [{ etapeTypeId: 'apd' }]
-    ]
+    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }], [{ etapeTypeId: 'apd' }]],
   },
   aop: {
     justeApres: [[{ etapeTypeId: 'ssr' }]],
-    avant: [
-      [{ etapeTypeId: 'apo' }],
-      [{ etapeTypeId: 'spo' }],
-      [{ etapeTypeId: 'apd' }]
-    ]
+    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }], [{ etapeTypeId: 'apd' }]],
   },
   spo: {
     justeApres: [],
-    avant: [
-      [{ etapeTypeId: 'apo' }],
-      [{ etapeTypeId: 'spo' }],
-      [{ etapeTypeId: 'apd' }]
-    ],
-    apres: [[{ etapeTypeId: 'scl' }, { etapeTypeId: 'ssr' }]]
+    avant: [[{ etapeTypeId: 'apo' }], [{ etapeTypeId: 'spo' }], [{ etapeTypeId: 'apd' }]],
+    apres: [[{ etapeTypeId: 'scl' }, { etapeTypeId: 'ssr' }]],
   },
   apo: {
     justeApres: [],
     avant: [[{ etapeTypeId: 'apo' }]],
-    apres: [[{ etapeTypeId: 'scl' }, { etapeTypeId: 'ssr' }]]
+    apres: [[{ etapeTypeId: 'scl' }, { etapeTypeId: 'ssr' }]],
   },
   apd: {
     justeApres: [],
     avant: [[{ etapeTypeId: 'apd' }]],
-    apres: [[{ etapeTypeId: 'scl' }, { etapeTypeId: 'ssr' }]]
+    apres: [[{ etapeTypeId: 'scl' }, { etapeTypeId: 'ssr' }]],
   },
   app: { justeApres: [[{ etapeTypeId: 'apd' }]] },
   ppu: {
-    justeApres: [
-      [{ etapeTypeId: 'mcr', statutId: 'fav' }],
-      [{ etapeTypeId: 'anf' }],
-      [{ etapeTypeId: 'mec' }]
-    ],
-    avant: [[{ etapeTypeId: 'ppu' }]]
+    justeApres: [[{ etapeTypeId: 'mcr', statutId: 'fav' }], [{ etapeTypeId: 'anf' }], [{ etapeTypeId: 'mec' }]],
+    avant: [[{ etapeTypeId: 'ppu' }]],
   },
   ppc: { justeApres: [[{ etapeTypeId: 'ppu' }]] },
   scg: {
-    justeApres: [[{ etapeTypeId: 'app' }, { etapeTypeId: 'ppc' }]]
+    justeApres: [[{ etapeTypeId: 'app' }, { etapeTypeId: 'ppc' }]],
   },
   rcg: {
-    justeApres: [[{ etapeTypeId: 'scg' }]]
+    justeApres: [[{ etapeTypeId: 'scg' }]],
   },
   acg: { justeApres: [[{ etapeTypeId: 'rcg' }]] },
   sas: { justeApres: [[{ etapeTypeId: 'acg' }]] },
   dex: { justeApres: [[{ etapeTypeId: 'sas' }]] },
   dpu: {
-    justeApres: [
-      [{ etapeTypeId: 'dex', statutId: 'acc' }],
-      [{ etapeTypeId: 'abd' }],
-      [{ etapeTypeId: 'rtd' }]
-    ]
+    justeApres: [[{ etapeTypeId: 'dex', statutId: 'acc' }], [{ etapeTypeId: 'abd' }], [{ etapeTypeId: 'rtd' }]],
   },
   npp: {
-    justeApres: [
-      [{ etapeTypeId: 'dex', statutId: 'rej' }],
-      [{ etapeTypeId: 'dpu', statutId: 'acc' }]
-    ],
-    avant: [[{ etapeTypeId: 'abd' }], [{ etapeTypeId: 'rtd' }]]
+    justeApres: [[{ etapeTypeId: 'dex', statutId: 'rej' }], [{ etapeTypeId: 'dpu', statutId: 'acc' }]],
+    avant: [[{ etapeTypeId: 'abd' }], [{ etapeTypeId: 'rtd' }]],
   },
   mno: {
     apres: [[{ etapeTypeId: 'npp' }]],
     avant: [[{ etapeTypeId: 'mno' }]],
-    justeApres: []
+    justeApres: [],
   },
   rpu: {
     apres: [[{ etapeTypeId: 'dex', statutId: 'acc' }, { etapeTypeId: 'npp' }]],
     avant: [[{ etapeTypeId: 'rpu' }]],
-    justeApres: []
+    justeApres: [],
   },
   ncl: {
     apres: [[{ etapeTypeId: 'dex', statutId: 'acc' }, { etapeTypeId: 'npp' }]],
     avant: [[{ etapeTypeId: 'ncl' }]],
-    justeApres: []
+    justeApres: [],
   },
   pqr: {
     apres: [[{ etapeTypeId: 'dex', statutId: 'acc' }, { etapeTypeId: 'npp' }]],
     avant: [[{ etapeTypeId: 'pqr' }]],
-    justeApres: []
+    justeApres: [],
   },
   dim: {
     justeApres: [[{ etapeTypeId: 'mdp' }]],
-    avant: [[{ etapeTypeId: 'dex' }]]
+    avant: [[{ etapeTypeId: 'dex' }]],
   },
   and: {
     justeApres: [[{ etapeTypeId: 'dim' }], [{ etapeTypeId: 'dex' }]],
-    final: true
+    final: true,
   },
   abd: {
     justeApres: [[{ etapeTypeId: 'dex' }]],
-    avant: [[{ etapeTypeId: 'and' }], [{ etapeTypeId: 'rtd' }]]
+    avant: [[{ etapeTypeId: 'and' }], [{ etapeTypeId: 'rtd' }]],
   },
   rtd: {
     justeApres: [[{ etapeTypeId: 'dex' }]],
-    avant: [[{ etapeTypeId: 'and' }], [{ etapeTypeId: 'abd' }]]
+    avant: [[{ etapeTypeId: 'and' }], [{ etapeTypeId: 'abd' }]],
   },
   des: {
     justeApres: [[]],
-    avant: [
-      [{ etapeTypeId: 'dex' }],
-      [{ etapeTypeId: 'css' }],
-      [{ etapeTypeId: 'dim' }]
-    ],
+    avant: [[{ etapeTypeId: 'dex' }], [{ etapeTypeId: 'css' }], [{ etapeTypeId: 'dim' }]],
     final: true,
-    apres: [[{ etapeTypeId: 'mdp' }]]
+    apres: [[{ etapeTypeId: 'mdp' }]],
   },
   css: {
     justeApres: [[]],
-    avant: [
-      [{ etapeTypeId: 'dex' }],
-      [{ etapeTypeId: 'des' }],
-      [{ etapeTypeId: 'dim' }]
-    ],
+    avant: [[{ etapeTypeId: 'dex' }], [{ etapeTypeId: 'des' }], [{ etapeTypeId: 'dim' }]],
     final: true,
-    apres: [[{ etapeTypeId: 'mdp' }]]
+    apres: [[{ etapeTypeId: 'mdp' }]],
   },
   edm: {
     justeApres: [[]],
     avant: [[{ etapeTypeId: 'mfr' }]],
-    apres: [[{ etapeTypeId: 'mfr' }]]
-  }
+    apres: [[{ etapeTypeId: 'mfr' }]],
+  },
 }
 
 export { etatsDefinitionPrmOct }
diff --git a/packages/api/src/business/rules-demarches/pxg/oct.machine.test.ts b/packages/api/src/business/rules-demarches/pxg/oct.machine.test.ts
index ad01ec0ea..6d192dff8 100644
--- a/packages/api/src/business/rules-demarches/pxg/oct.machine.test.ts
+++ b/packages/api/src/business/rules-demarches/pxg/oct.machine.test.ts
@@ -21,36 +21,32 @@ describe('vérifie l’arbre d’octroi des PXG', () => {
       { ...ETES.depotDeLaDemande.FAIT, date: toCaminoDate('2022-04-15') },
       {
         ...ETES.demandeDeComplements_RecevabiliteDeLaDemande_.FAIT,
-        date: toCaminoDate('2022-04-16')
+        date: toCaminoDate('2022-04-16'),
       },
       {
         ...ETES.receptionDeComplements_RecevabiliteDeLaDemande_.FAIT,
-        date: toCaminoDate('2022-04-16')
+        date: toCaminoDate('2022-04-16'),
       },
       {
         ...ETES.recevabiliteDeLaDemande.FAVORABLE,
-        date: toCaminoDate('2022-04-17')
+        date: toCaminoDate('2022-04-17'),
       },
       { ...ETES.saisineDesServices.FAIT, date: toCaminoDate('2022-04-18') },
       {
-        ...ETES
-          .avisDeLaDirectionDesEntreprisesDeLaConcurrenceDeLaConsommationDuTravailEtDeLemploi
-          .FAVORABLE,
-        date: toCaminoDate('2022-04-18')
+        ...ETES.avisDeLaDirectionDesEntreprisesDeLaConcurrenceDeLaConsommationDuTravailEtDeLemploi.FAVORABLE,
+        date: toCaminoDate('2022-04-18'),
       },
       {
         ...ETES.saisineDesCollectivitesLocales.FAIT,
-        date: toCaminoDate('2022-04-19')
+        date: toCaminoDate('2022-04-19'),
       },
       {
         ...ETES.saisineDeLautoriteEnvironnementale.FAIT,
-        date: toCaminoDate('2022-04-20')
-      }
+        date: toCaminoDate('2022-04-20'),
+      },
     ]
     const service = orderAndInterpretMachine(pxgOctMachine, etapes)
-    expect(service.getSnapshot().context.demarcheStatut).toBe(
-      DemarchesStatutsIds.EnInstruction
-    )
+    expect(service.getSnapshot().context.demarcheStatut).toBe(DemarchesStatutsIds.EnInstruction)
   })
 
   test('peut modifier une demande', () => {
@@ -59,29 +55,27 @@ describe('vérifie l’arbre d’octroi des PXG', () => {
       { ...ETES.depotDeLaDemande.FAIT, date: toCaminoDate('2022-04-15') },
       {
         ...ETES.demandeDeComplements_RecevabiliteDeLaDemande_.FAIT,
-        date: toCaminoDate('2022-04-16')
+        date: toCaminoDate('2022-04-16'),
       },
       {
         ...ETES.receptionDeComplements_RecevabiliteDeLaDemande_.FAIT,
-        date: toCaminoDate('2022-04-16')
+        date: toCaminoDate('2022-04-16'),
       },
       {
         ...ETES.recevabiliteDeLaDemande.DEFAVORABLE,
-        date: toCaminoDate('2022-04-17')
+        date: toCaminoDate('2022-04-17'),
       },
       {
         ...ETES.modificationDeLaDemande.FAIT,
-        date: toCaminoDate('2022-04-18')
+        date: toCaminoDate('2022-04-18'),
       },
       {
         ...ETES.recevabiliteDeLaDemande.FAVORABLE,
-        date: toCaminoDate('2022-04-19')
-      }
+        date: toCaminoDate('2022-04-19'),
+      },
     ]
     const service = orderAndInterpretMachine(pxgOctMachine, etapes)
-    expect(service.getSnapshot().context.demarcheStatut).toBe(
-      DemarchesStatutsIds.Depose
-    )
+    expect(service.getSnapshot().context.demarcheStatut).toBe(DemarchesStatutsIds.Depose)
   })
 
   test('peut construire une demande complète', () => {
@@ -90,65 +84,61 @@ describe('vérifie l’arbre d’octroi des PXG', () => {
       { ...ETES.depotDeLaDemande.FAIT, date: toCaminoDate('2022-04-15') },
       {
         ...ETES.demandeDeComplements_RecevabiliteDeLaDemande_.FAIT,
-        date: toCaminoDate('2022-04-16')
+        date: toCaminoDate('2022-04-16'),
       },
       {
         ...ETES.receptionDeComplements_RecevabiliteDeLaDemande_.FAIT,
-        date: toCaminoDate('2022-04-16')
+        date: toCaminoDate('2022-04-16'),
       },
       {
         ...ETES.recevabiliteDeLaDemande.FAVORABLE,
-        date: toCaminoDate('2022-04-17')
+        date: toCaminoDate('2022-04-17'),
       },
       { ...ETES.saisineDesServices.FAIT, date: toCaminoDate('2022-04-18') },
       {
-        ...ETES
-          .avisDeLaDirectionDesEntreprisesDeLaConcurrenceDeLaConsommationDuTravailEtDeLemploi
-          .FAVORABLE,
-        date: toCaminoDate('2022-04-18')
+        ...ETES.avisDeLaDirectionDesEntreprisesDeLaConcurrenceDeLaConsommationDuTravailEtDeLemploi.FAVORABLE,
+        date: toCaminoDate('2022-04-18'),
       },
       {
         ...ETES.saisineDesCollectivitesLocales.FAIT,
-        date: toCaminoDate('2022-04-19')
+        date: toCaminoDate('2022-04-19'),
       },
       {
         ...ETES.saisineDeLautoriteEnvironnementale.FAIT,
-        date: toCaminoDate('2022-04-20')
+        date: toCaminoDate('2022-04-20'),
       },
       {
         ...ETES.avisDeLautoriteEnvironnementale.FAVORABLE,
-        date: toCaminoDate('2022-04-21')
+        date: toCaminoDate('2022-04-21'),
       },
       {
         ...ETES.consultationCLEDuSAGE.FAVORABLE,
-        date: toCaminoDate('2022-04-21')
+        date: toCaminoDate('2022-04-21'),
       },
       {
-        ...ETES
-          .avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement
-          .FAVORABLE,
-        date: toCaminoDate('2022-04-22')
+        ...ETES.avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement.FAVORABLE,
+        date: toCaminoDate('2022-04-22'),
       },
       {
         ...ETES.transmissionDuProjetDePrescriptionsAuDemandeur.FAIT,
-        date: toCaminoDate('2022-04-23')
+        date: toCaminoDate('2022-04-23'),
       },
       {
         ...ETES.avisDuDemandeurSurLesPrescriptionsProposees.FAVORABLE,
-        date: toCaminoDate('2022-04-24')
+        date: toCaminoDate('2022-04-24'),
       },
       {
         ...ETES.decisionDeLadministration.ACCEPTE,
-        date: toCaminoDate('2022-04-25')
+        date: toCaminoDate('2022-04-25'),
       },
       {
         ...ETES.notificationAuDemandeur.FAIT,
-        date: toCaminoDate('2022-04-26')
+        date: toCaminoDate('2022-04-26'),
       },
       {
         ...ETES.publicationDeDecisionAuRecueilDesActesAdministratifs.FAIT,
-        date: toCaminoDate('2022-04-26')
-      }
+        date: toCaminoDate('2022-04-26'),
+      },
     ]
     const service = orderAndInterpretMachine(pxgOctMachine, etapes)
     expect(service).canOnlyTransitionTo(pxgOctMachine, [])
diff --git a/packages/api/src/business/rules-demarches/pxg/oct.machine.ts b/packages/api/src/business/rules-demarches/pxg/oct.machine.ts
index e19a1af7e..1bd89023d 100644
--- a/packages/api/src/business/rules-demarches/pxg/oct.machine.ts
+++ b/packages/api/src/business/rules-demarches/pxg/oct.machine.ts
@@ -46,87 +46,61 @@ type Event = PXGOctXStateEvent['type']
 const trad: { [key in Event]: DBEtat } = {
   FAIRE_DEMANDE: ETES.demande,
   DEPOSER_DEMANDE: ETES.depotDeLaDemande,
-  DEMANDER_COMPLEMENTS_POUR_RECEVABILITE:
-    ETES.demandeDeComplements_RecevabiliteDeLaDemande_,
+  DEMANDER_COMPLEMENTS_POUR_RECEVABILITE: ETES.demandeDeComplements_RecevabiliteDeLaDemande_,
   FAIRE_RECEVABILITE_DEMANDE_FAVORABLE: {
-    FAVORABLE: ETES.recevabiliteDeLaDemande.FAVORABLE
+    FAVORABLE: ETES.recevabiliteDeLaDemande.FAVORABLE,
   },
   FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE: {
-    DEFAVORABLE: ETES.recevabiliteDeLaDemande.DEFAVORABLE
+    DEFAVORABLE: ETES.recevabiliteDeLaDemande.DEFAVORABLE,
   },
   RECEVOIR_MODIFICATION_DE_LA_DEMANDE: ETES.modificationDeLaDemande,
-  RECEVOIR_COMPLEMENTS_POUR_RECEVABILITE:
-    ETES.receptionDeComplements_RecevabiliteDeLaDemande_,
+  RECEVOIR_COMPLEMENTS_POUR_RECEVABILITE: ETES.receptionDeComplements_RecevabiliteDeLaDemande_,
   FAIRE_SAISINES_DES_SERVICES: ETES.saisineDesServices,
-  RENDRE_AVIS_DGTM_MNBST:
-    ETES.avisDGTMServiceMilieuxNaturelsBiodiversiteSitesEtPaysages_MNBST_,
-  RENDRE_AVIS_DGTMAUCL:
-    ETES.avisDGTMServiceAmenagementUrbanismeConstructionLogement_AUCL_,
-  RENDRE_AVIS_DIRECTION_ENTREPRISE_CONCURRENCE_CONSOMMATION_TRAVAIL_EMPLOI:
-    ETES.avisDeLaDirectionDesEntreprisesDeLaConcurrenceDeLaConsommationDuTravailEtDeLemploi,
-  RENDRE_AVIS_DIRECTION_ALIMENTATION_AGRICULTURE_FORET:
-    ETES.avisDeLaDirectionDalimentationDeLagricultureEtDeLaForet,
-  RENDRE_AVIS_DIRECTION_REGIONALE_AFFAIRES_CULTURELLES:
-    ETES.avisDeDirectionRegionaleDesAffairesCulturelles,
+  RENDRE_AVIS_DGTM_MNBST: ETES.avisDGTMServiceMilieuxNaturelsBiodiversiteSitesEtPaysages_MNBST_,
+  RENDRE_AVIS_DGTMAUCL: ETES.avisDGTMServiceAmenagementUrbanismeConstructionLogement_AUCL_,
+  RENDRE_AVIS_DIRECTION_ENTREPRISE_CONCURRENCE_CONSOMMATION_TRAVAIL_EMPLOI: ETES.avisDeLaDirectionDesEntreprisesDeLaConcurrenceDeLaConsommationDuTravailEtDeLemploi,
+  RENDRE_AVIS_DIRECTION_ALIMENTATION_AGRICULTURE_FORET: ETES.avisDeLaDirectionDalimentationDeLagricultureEtDeLaForet,
+  RENDRE_AVIS_DIRECTION_REGIONALE_AFFAIRES_CULTURELLES: ETES.avisDeDirectionRegionaleDesAffairesCulturelles,
   RENDRE_AVIS_AGENCE_REGIONALE_SANTE: ETES.avisDeLagenceRegionaleDeSante,
-  RENDRE_AVIS_DIRECTION_REGIONALE_FINANCES_PUBLIQUES:
-    ETES.avisDeLaDirectionRegionaleDesFinancesPubliques,
-  RENDRE_AVIS_CAISSE_GENERALE_DE_SECURITE_SOCIALE:
-    ETES.avisDeLaCaisseGeneraleDeSecuriteSociale,
-  RENDRE_AVIS_DREAL:
-    ETES.avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement,
+  RENDRE_AVIS_DIRECTION_REGIONALE_FINANCES_PUBLIQUES: ETES.avisDeLaDirectionRegionaleDesFinancesPubliques,
+  RENDRE_AVIS_CAISSE_GENERALE_DE_SECURITE_SOCIALE: ETES.avisDeLaCaisseGeneraleDeSecuriteSociale,
+  RENDRE_AVIS_DREAL: ETES.avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement,
   FAIRE_SAISINE_DES_COLLECTIVITES_LOCALES: ETES.saisineDesCollectivitesLocales,
   RENDRE_CONSULTATION_DES_CONSEILS_MUNICIPAUX: ETES.avisDunMaire,
   FAIRE_CONSULTATION_CLE_DU_SAGE: ETES.consultationCLEDuSAGE,
-  FAIRE_SAISINE_AUTORITE_ENVIRONNEMENTALE:
-    ETES.saisineDeLautoriteEnvironnementale,
+  FAIRE_SAISINE_AUTORITE_ENVIRONNEMENTALE: ETES.saisineDeLautoriteEnvironnementale,
   RENDRE_AVIS_AUTORITE_ENVIRONNEMENTALE: ETES.avisDeLautoriteEnvironnementale,
   OUVRIR_ENQUETE_PUBLIQUE: ETES.ouvertureDeLenquetePublique,
   CLOTURER_ENQUETE_PUBLIQUE: ETES.clotureDeLenquetePublique,
-  TRANSMETTRE_PROJET_DE_PRESCRIPTIONS_AU_DEMANDEUR:
-    ETES.transmissionDuProjetDePrescriptionsAuDemandeur,
-  RENDRE_AVIS_DU_DEMANDEUR_SUR_LES_PRESCRIPTIONS_PROPOSEES:
-    ETES.avisDuDemandeurSurLesPrescriptionsProposees,
-  RENDRE_PASSAGE_CODERST:
-    ETES.avisDuConseilDepartementalDeLenvironnementEtDesRisquesSanitairesEtTechnologiques_Coderst_,
+  TRANSMETTRE_PROJET_DE_PRESCRIPTIONS_AU_DEMANDEUR: ETES.transmissionDuProjetDePrescriptionsAuDemandeur,
+  RENDRE_AVIS_DU_DEMANDEUR_SUR_LES_PRESCRIPTIONS_PROPOSEES: ETES.avisDuDemandeurSurLesPrescriptionsProposees,
+  RENDRE_PASSAGE_CODERST: ETES.avisDuConseilDepartementalDeLenvironnementEtDesRisquesSanitairesEtTechnologiques_Coderst_,
   RENDRE_DECISION_ADMINISTRATION_FAVORABLE: {
-    ACCEPTE: ETES.decisionDeLadministration.ACCEPTE
+    ACCEPTE: ETES.decisionDeLadministration.ACCEPTE,
   },
   RENDRE_DECISION_ADMINISTRATION_DEFAVORABLE: {
-    REJETE: ETES.decisionDeLadministration.REJETE
+    REJETE: ETES.decisionDeLadministration.REJETE,
   },
   NOTIFICATION_DU_DEMANDEUR: ETES.notificationAuDemandeur,
-  PUBLIER_DECISION_RECUEIL_DES_ACTES_ADMINISTRATIFS:
-    ETES.publicationDeDecisionAuRecueilDesActesAdministratifs,
+  PUBLIER_DECISION_RECUEIL_DES_ACTES_ADMINISTRATIFS: ETES.publicationDeDecisionAuRecueilDesActesAdministratifs,
   FAIRE_DESISTEMENT_DEMANDEUR: ETES.desistementDuDemandeur,
-  FAIRE_CLASSEMENT_SANS_SUITE: ETES.classementSansSuite
+  FAIRE_CLASSEMENT_SANS_SUITE: ETES.classementSansSuite,
 }
 
 // Related to https://github.com/Microsoft/TypeScript/issues/12870
-export const EVENTS = Object.keys(trad) as Array<
-  Extract<keyof typeof trad, string>
->
+export const EVENTS = Object.keys(trad) as Array<Extract<keyof typeof trad, string>>
 
 // basé sur https://cacoo.com/diagrams/QDCLi7jxd3EUOOba/249D0
-export class PxgOctMachine extends CaminoMachine<
-  PxgContext,
-  PXGOctXStateEvent
-> {
+export class PxgOctMachine extends CaminoMachine<PxgContext, PXGOctXStateEvent> {
   constructor() {
     super(pxgOctMachine, trad)
   }
 
   eventFrom(etape: Etape): PXGOctXStateEvent {
-    const entries = Object.entries(trad).filter(
-      (entry): entry is [Event, DBEtat] => EVENTS.includes(entry[0])
-    )
+    const entries = Object.entries(trad).filter((entry): entry is [Event, DBEtat] => EVENTS.includes(entry[0]))
 
     const entry = entries.find(([_key, dbEtat]) => {
-      return Object.values(dbEtat).some(
-        dbEtatSingle =>
-          dbEtatSingle.etapeTypeId === etape.etapeTypeId &&
-          dbEtatSingle.etapeStatutId === etape.etapeStatutId
-      )
+      return Object.values(dbEtat).some(dbEtatSingle => dbEtatSingle.etapeTypeId === etape.etapeTypeId && dbEtatSingle.etapeStatutId === etape.etapeStatutId)
     })
 
     if (entry) {
@@ -151,11 +125,7 @@ interface PxgContext extends CaminoCommonContext {
 }
 
 const peutRendreAvisDREAL = (context: PxgContext): boolean => {
-  return (
-    context.saisineDesServicesFaite &&
-    context.saisineDesCollectivitesLocalesFaites &&
-    context.avisAutoriteEnvironnementaleFaite
-  )
+  return context.saisineDesServicesFaite && context.saisineDesCollectivitesLocalesFaites && context.avisAutoriteEnvironnementaleFaite
 }
 
 const pxgOctMachine = createMachine<PxgContext, PXGOctXStateEvent>({
@@ -168,74 +138,59 @@ const pxgOctMachine = createMachine<PxgContext, PXGOctXStateEvent>({
     saisineDesServicesFaite: false,
     saisineDesCollectivitesLocalesFaites: false,
     saisineAutoriteEnvironnementaleFaite: false,
-    avisAutoriteEnvironnementaleFaite: false
+    avisAutoriteEnvironnementaleFaite: false,
   },
   on: {
     FAIRE_DESISTEMENT_DEMANDEUR: {
-      cond: context =>
-        [
-          DemarchesStatutsIds.Depose,
-          DemarchesStatutsIds.EnInstruction
-        ].includes(context.demarcheStatut),
-      target: 'desistementDuDemandeurRendu'
+      cond: context => [DemarchesStatutsIds.Depose, DemarchesStatutsIds.EnInstruction].includes(context.demarcheStatut),
+      target: 'desistementDuDemandeurRendu',
     },
     FAIRE_CLASSEMENT_SANS_SUITE: {
-      cond: context =>
-        [
-          DemarchesStatutsIds.Depose,
-          DemarchesStatutsIds.EnInstruction
-        ].includes(context.demarcheStatut),
-      target: 'classementSansSuiteRendu'
-    }
+      cond: context => [DemarchesStatutsIds.Depose, DemarchesStatutsIds.EnInstruction].includes(context.demarcheStatut),
+      target: 'classementSansSuiteRendu',
+    },
   },
   states: {
     demandeAFaire: {
       on: {
-        FAIRE_DEMANDE: 'depotDeLaDemandeAFaire'
-      }
+        FAIRE_DEMANDE: 'depotDeLaDemandeAFaire',
+      },
     },
     depotDeLaDemandeAFaire: {
       on: {
-        DEPOSER_DEMANDE: 'recevabiliteDeLaDemandeAFaire'
-      }
+        DEPOSER_DEMANDE: 'recevabiliteDeLaDemandeAFaire',
+      },
     },
     recevabiliteDeLaDemandeAFaire: {
       on: {
-        DEMANDER_COMPLEMENTS_POUR_RECEVABILITE:
-          'complementsPourRecevabiliteAFaire',
+        DEMANDER_COMPLEMENTS_POUR_RECEVABILITE: 'complementsPourRecevabiliteAFaire',
         FAIRE_RECEVABILITE_DEMANDE_FAVORABLE: {
           target: 'saisinesAFaire',
-          actions: assign<
-            PxgContext,
-            { type: 'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE' }
-          >({
+          actions: assign<PxgContext, { type: 'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE' }>({
             demarcheStatut: DemarchesStatutsIds.Depose,
-            visibilite: 'publique'
-          })
+            visibilite: 'publique',
+          }),
         },
-        FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE: 'modificationDeLaDemandeAFaire'
-      }
+        FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE: 'modificationDeLaDemandeAFaire',
+      },
     },
     complementsPourRecevabiliteAFaire: {
       on: {
         RECEVOIR_COMPLEMENTS_POUR_RECEVABILITE: 'recevabiliteDeLaDemandeAFaire',
         FAIRE_RECEVABILITE_DEMANDE_FAVORABLE: {
           target: 'saisinesAFaire',
-          actions: assign<
-            PxgContext,
-            { type: 'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE' }
-          >({
+          actions: assign<PxgContext, { type: 'FAIRE_RECEVABILITE_DEMANDE_FAVORABLE' }>({
             demarcheStatut: DemarchesStatutsIds.Depose,
-            visibilite: 'publique'
-          })
+            visibilite: 'publique',
+          }),
         },
-        FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE: 'modificationDeLaDemandeAFaire'
-      }
+        FAIRE_RECEVABILITE_DEMANDE_DEFAVORABLE: 'modificationDeLaDemandeAFaire',
+      },
     },
     modificationDeLaDemandeAFaire: {
       on: {
-        RECEVOIR_MODIFICATION_DE_LA_DEMANDE: 'recevabiliteDeLaDemandeAFaire'
-      }
+        RECEVOIR_MODIFICATION_DE_LA_DEMANDE: 'recevabiliteDeLaDemandeAFaire',
+      },
     },
     saisinesAFaire: {
       type: 'parallel',
@@ -246,19 +201,18 @@ const pxgOctMachine = createMachine<PxgContext, PXGOctXStateEvent>({
             rendreAvisDrealPasEncorePossible: {
               always: {
                 target: 'rendreAvisDrealAFaire',
-                cond: peutRendreAvisDREAL
-              }
+                cond: peutRendreAvisDREAL,
+              },
             },
             rendreAvisDrealAFaire: {
               on: {
                 RENDRE_AVIS_DREAL: {
                   cond: peutRendreAvisDREAL,
-                  target:
-                    '#transmissionDuProjetDePrescriptionsAuDemandeurAFaire'
-                }
-              }
-            }
-          }
+                  target: '#transmissionDuProjetDePrescriptionsAuDemandeurAFaire',
+                },
+              },
+            },
+          },
         },
         saisineDesServicesMachine: {
           initial: 'saisineDesServicesAFaire',
@@ -267,20 +221,14 @@ const pxgOctMachine = createMachine<PxgContext, PXGOctXStateEvent>({
               on: {
                 FAIRE_SAISINES_DES_SERVICES: {
                   target: 'avisDesServicesARendre',
-                  actions: assign<
-                    PxgContext,
-                    { type: 'FAIRE_SAISINES_DES_SERVICES' }
-                  >({
+                  actions: assign<PxgContext, { type: 'FAIRE_SAISINES_DES_SERVICES' }>({
                     saisineDesServicesFaite: true,
                     demarcheStatut: (context, _event) => {
-                      return context.saisineDesCollectivitesLocalesFaites &&
-                        context.saisineAutoriteEnvironnementaleFaite
-                        ? DemarchesStatutsIds.EnInstruction
-                        : context.demarcheStatut
-                    }
-                  })
-                }
-              }
+                      return context.saisineDesCollectivitesLocalesFaites && context.saisineAutoriteEnvironnementaleFaite ? DemarchesStatutsIds.EnInstruction : context.demarcheStatut
+                    },
+                  }),
+                },
+              },
             },
             avisDesServicesARendre: {
               type: 'parallel',
@@ -289,105 +237,95 @@ const pxgOctMachine = createMachine<PxgContext, PXGOctXStateEvent>({
                   initial: 'avisDgtmMNBSTARendre',
                   states: {
                     avisDgtmMNBSTARendre: {
-                      on: { RENDRE_AVIS_DGTM_MNBST: 'avisDgtmMNBSTRendu' }
+                      on: { RENDRE_AVIS_DGTM_MNBST: 'avisDgtmMNBSTRendu' },
                     },
-                    avisDgtmMNBSTRendu: { type: 'final' }
-                  }
+                    avisDgtmMNBSTRendu: { type: 'final' },
+                  },
                 },
                 avisDGTMAUCLMachine: {
                   initial: 'avisDGTMAUCLARendre',
                   states: {
                     avisDGTMAUCLARendre: {
-                      on: { RENDRE_AVIS_DGTMAUCL: 'avisDGTMAUCLRendu' }
+                      on: { RENDRE_AVIS_DGTMAUCL: 'avisDGTMAUCLRendu' },
                     },
-                    avisDGTMAUCLRendu: { type: 'final' }
-                  }
+                    avisDGTMAUCLRendu: { type: 'final' },
+                  },
                 },
-                avisDirectionEntrepriseConcurrenceConsommationTravailEmploiMachine:
-                  {
-                    initial:
-                      'avisDirectionEntrepriseConcurrenceConsommationTravailEmploiARendre',
-                    states: {
-                      avisDirectionEntrepriseConcurrenceConsommationTravailEmploiARendre:
-                        {
-                          on: {
-                            RENDRE_AVIS_DIRECTION_ENTREPRISE_CONCURRENCE_CONSOMMATION_TRAVAIL_EMPLOI:
-                              'avisDirectionEntrepriseConcurrenceConsommationTravailEmploiRendu'
-                          }
-                        },
-                      avisDirectionEntrepriseConcurrenceConsommationTravailEmploiRendu:
-                        { type: 'final' }
-                    }
+                avisDirectionEntrepriseConcurrenceConsommationTravailEmploiMachine: {
+                  initial: 'avisDirectionEntrepriseConcurrenceConsommationTravailEmploiARendre',
+                  states: {
+                    avisDirectionEntrepriseConcurrenceConsommationTravailEmploiARendre: {
+                      on: {
+                        RENDRE_AVIS_DIRECTION_ENTREPRISE_CONCURRENCE_CONSOMMATION_TRAVAIL_EMPLOI: 'avisDirectionEntrepriseConcurrenceConsommationTravailEmploiRendu',
+                      },
+                    },
+                    avisDirectionEntrepriseConcurrenceConsommationTravailEmploiRendu: { type: 'final' },
                   },
+                },
                 avisDirectionAlimentationAgricultureForetMachine: {
                   initial: 'avisDirectionAlimentationAgricultureForetARendre',
                   states: {
                     avisDirectionAlimentationAgricultureForetARendre: {
                       on: {
-                        RENDRE_AVIS_DIRECTION_ALIMENTATION_AGRICULTURE_FORET:
-                          'avisDirectionAlimentationAgricultureForetRendu'
-                      }
+                        RENDRE_AVIS_DIRECTION_ALIMENTATION_AGRICULTURE_FORET: 'avisDirectionAlimentationAgricultureForetRendu',
+                      },
                     },
                     avisDirectionAlimentationAgricultureForetRendu: {
-                      type: 'final'
-                    }
-                  }
+                      type: 'final',
+                    },
+                  },
                 },
                 avisDirectionRegionaleAffairesCulturellesMachine: {
                   initial: 'avisDirectionRegionaleAffairesCulturellesARendre',
                   states: {
                     avisDirectionRegionaleAffairesCulturellesARendre: {
                       on: {
-                        RENDRE_AVIS_DIRECTION_REGIONALE_AFFAIRES_CULTURELLES:
-                          'avisDirectionRegionaleAffairesCulturellesRendu'
-                      }
+                        RENDRE_AVIS_DIRECTION_REGIONALE_AFFAIRES_CULTURELLES: 'avisDirectionRegionaleAffairesCulturellesRendu',
+                      },
                     },
                     avisDirectionRegionaleAffairesCulturellesRendu: {
-                      type: 'final'
-                    }
-                  }
+                      type: 'final',
+                    },
+                  },
                 },
                 avisAgenceRegionaleSanteMachine: {
                   initial: 'avisAgenceRegionaleSanteARendre',
                   states: {
                     avisAgenceRegionaleSanteARendre: {
                       on: {
-                        RENDRE_AVIS_AGENCE_REGIONALE_SANTE:
-                          'avisAgenceRegionaleSanteRendu'
-                      }
+                        RENDRE_AVIS_AGENCE_REGIONALE_SANTE: 'avisAgenceRegionaleSanteRendu',
+                      },
                     },
-                    avisAgenceRegionaleSanteRendu: { type: 'final' }
-                  }
+                    avisAgenceRegionaleSanteRendu: { type: 'final' },
+                  },
                 },
                 avisDirectionRegionaleFinancesPubliquesMachine: {
                   initial: 'avisDirectionRegionaleFinancesPubliquesARendre',
                   states: {
                     avisDirectionRegionaleFinancesPubliquesARendre: {
                       on: {
-                        RENDRE_AVIS_DIRECTION_REGIONALE_FINANCES_PUBLIQUES:
-                          'avisDirectionRegionaleFinancesPubliquesRendu'
-                      }
+                        RENDRE_AVIS_DIRECTION_REGIONALE_FINANCES_PUBLIQUES: 'avisDirectionRegionaleFinancesPubliquesRendu',
+                      },
                     },
                     avisDirectionRegionaleFinancesPubliquesRendu: {
-                      type: 'final'
-                    }
-                  }
+                      type: 'final',
+                    },
+                  },
                 },
                 avisCaisseGeneraleDeSecuriteSocialeMachine: {
                   initial: 'avisCaisseGeneraleDeSecuriteSocialeARendre',
                   states: {
                     avisCaisseGeneraleDeSecuriteSocialeARendre: {
                       on: {
-                        RENDRE_AVIS_CAISSE_GENERALE_DE_SECURITE_SOCIALE:
-                          'avisCaisseGeneraleDeSecuriteSocialeRendu'
-                      }
+                        RENDRE_AVIS_CAISSE_GENERALE_DE_SECURITE_SOCIALE: 'avisCaisseGeneraleDeSecuriteSocialeRendu',
+                      },
                     },
-                    avisCaisseGeneraleDeSecuriteSocialeRendu: { type: 'final' }
-                  }
-                }
-              }
-            }
-          }
+                    avisCaisseGeneraleDeSecuriteSocialeRendu: { type: 'final' },
+                  },
+                },
+              },
+            },
+          },
         },
         saisineDesCollectivitesLocalesMachine: {
           initial: 'saisineDesCollectivitesLocalesAFaire',
@@ -396,20 +334,14 @@ const pxgOctMachine = createMachine<PxgContext, PXGOctXStateEvent>({
               on: {
                 FAIRE_SAISINE_DES_COLLECTIVITES_LOCALES: {
                   target: 'consultationCLEEtConseilsMunicipauxAFaire',
-                  actions: assign<
-                    PxgContext,
-                    { type: 'FAIRE_SAISINE_DES_COLLECTIVITES_LOCALES' }
-                  >({
+                  actions: assign<PxgContext, { type: 'FAIRE_SAISINE_DES_COLLECTIVITES_LOCALES' }>({
                     saisineDesCollectivitesLocalesFaites: true,
                     demarcheStatut: (context, _event) => {
-                      return context.saisineAutoriteEnvironnementaleFaite &&
-                        context.saisineDesServicesFaite
-                        ? DemarchesStatutsIds.EnInstruction
-                        : context.demarcheStatut
-                    }
-                  })
-                }
-              }
+                      return context.saisineAutoriteEnvironnementaleFaite && context.saisineDesServicesFaite ? DemarchesStatutsIds.EnInstruction : context.demarcheStatut
+                    },
+                  }),
+                },
+              },
             },
             consultationCLEEtConseilsMunicipauxAFaire: {
               type: 'parallel',
@@ -419,12 +351,11 @@ const pxgOctMachine = createMachine<PxgContext, PXGOctXStateEvent>({
                   states: {
                     consultationDesConseilsMunicipauxARendre: {
                       on: {
-                        RENDRE_CONSULTATION_DES_CONSEILS_MUNICIPAUX:
-                          'consultationDesConseilsMunicipauxRendu'
-                      }
+                        RENDRE_CONSULTATION_DES_CONSEILS_MUNICIPAUX: 'consultationDesConseilsMunicipauxRendu',
+                      },
                     },
-                    consultationDesConseilsMunicipauxRendu: { type: 'final' }
-                  }
+                    consultationDesConseilsMunicipauxRendu: { type: 'final' },
+                  },
                 },
                 consultationCLEDuSAGEMachine: {
                   initial: 'consultationCLEDuSAGEAFaire',
@@ -432,19 +363,17 @@ const pxgOctMachine = createMachine<PxgContext, PXGOctXStateEvent>({
                     consultationCLEDuSAGEAFaire: {
                       on: {
                         FAIRE_CONSULTATION_CLE_DU_SAGE: {
-                          cond: context =>
-                            context.saisineDesCollectivitesLocalesFaites &&
-                            context.avisAutoriteEnvironnementaleFaite,
-                          target: 'consultationCLEDuSAGEAFait'
-                        }
-                      }
+                          cond: context => context.saisineDesCollectivitesLocalesFaites && context.avisAutoriteEnvironnementaleFaite,
+                          target: 'consultationCLEDuSAGEAFait',
+                        },
+                      },
                     },
-                    consultationCLEDuSAGEAFait: { type: 'final' }
-                  }
-                }
-              }
-            }
-          }
+                    consultationCLEDuSAGEAFait: { type: 'final' },
+                  },
+                },
+              },
+            },
+          },
         },
         saisineAutoriteEnvironnementaleMachine: {
           initial: 'saisineAutoriteEnvironnementaleAFaire',
@@ -453,162 +382,132 @@ const pxgOctMachine = createMachine<PxgContext, PXGOctXStateEvent>({
               on: {
                 FAIRE_SAISINE_AUTORITE_ENVIRONNEMENTALE: {
                   target: 'avisAutoriteEnvironnementaleAFaire',
-                  actions: assign<
-                    PxgContext,
-                    { type: 'FAIRE_SAISINE_AUTORITE_ENVIRONNEMENTALE' }
-                  >({
+                  actions: assign<PxgContext, { type: 'FAIRE_SAISINE_AUTORITE_ENVIRONNEMENTALE' }>({
                     saisineAutoriteEnvironnementaleFaite: true,
                     demarcheStatut: (context, _event) => {
-                      return context.saisineDesCollectivitesLocalesFaites &&
-                        context.saisineDesServicesFaite
-                        ? DemarchesStatutsIds.EnInstruction
-                        : context.demarcheStatut
-                    }
-                  })
-                }
-              }
+                      return context.saisineDesCollectivitesLocalesFaites && context.saisineDesServicesFaite ? DemarchesStatutsIds.EnInstruction : context.demarcheStatut
+                    },
+                  }),
+                },
+              },
             },
             avisAutoriteEnvironnementaleAFaire: {
               on: {
                 RENDRE_AVIS_AUTORITE_ENVIRONNEMENTALE: {
                   target: 'ouvertureEnquetePubliqueAFaire',
-                  actions: assign<
-                    PxgContext,
-                    { type: 'RENDRE_AVIS_AUTORITE_ENVIRONNEMENTALE' }
-                  >({
-                    avisAutoriteEnvironnementaleFaite: true
-                  })
-                }
-              }
+                  actions: assign<PxgContext, { type: 'RENDRE_AVIS_AUTORITE_ENVIRONNEMENTALE' }>({
+                    avisAutoriteEnvironnementaleFaite: true,
+                  }),
+                },
+              },
             },
             ouvertureEnquetePubliqueAFaire: {
-              on: { OUVRIR_ENQUETE_PUBLIQUE: 'clotureEnquetePubliqueAFaire' }
+              on: { OUVRIR_ENQUETE_PUBLIQUE: 'clotureEnquetePubliqueAFaire' },
             },
             clotureEnquetePubliqueAFaire: {
-              on: { CLOTURER_ENQUETE_PUBLIQUE: 'clotureEnquetePubliqueFaite' }
+              on: { CLOTURER_ENQUETE_PUBLIQUE: 'clotureEnquetePubliqueFaite' },
             },
             clotureEnquetePubliqueFaite: {
-              type: 'final'
-            }
-          }
-        }
-      }
+              type: 'final',
+            },
+          },
+        },
+      },
     },
     avisDREALARendre: {
       on: {
         RENDRE_AVIS_DREAL: {
           cond: peutRendreAvisDREAL,
-          target: 'transmissionDuProjetDePrescriptionsAuDemandeurAFaire'
-        }
-      }
+          target: 'transmissionDuProjetDePrescriptionsAuDemandeurAFaire',
+        },
+      },
     },
     transmissionDuProjetDePrescriptionsAuDemandeurAFaire: {
       id: 'transmissionDuProjetDePrescriptionsAuDemandeurAFaire',
       on: {
-        TRANSMETTRE_PROJET_DE_PRESCRIPTIONS_AU_DEMANDEUR:
-          'avisDuDemandeurSurLesPrescriptionsProposeesAFaire'
-      }
+        TRANSMETTRE_PROJET_DE_PRESCRIPTIONS_AU_DEMANDEUR: 'avisDuDemandeurSurLesPrescriptionsProposeesAFaire',
+      },
     },
     avisDuDemandeurSurLesPrescriptionsProposeesAFaire: {
       on: {
-        RENDRE_AVIS_DU_DEMANDEUR_SUR_LES_PRESCRIPTIONS_PROPOSEES:
-          'passageCoderstOuDecisionDeLAdministrationARendre'
-      }
+        RENDRE_AVIS_DU_DEMANDEUR_SUR_LES_PRESCRIPTIONS_PROPOSEES: 'passageCoderstOuDecisionDeLAdministrationARendre',
+      },
     },
     passageCoderstOuDecisionDeLAdministrationARendre: {
       on: {
         RENDRE_PASSAGE_CODERST: 'decisionDeLAdministrationARendre',
         RENDRE_DECISION_ADMINISTRATION_FAVORABLE: {
-          target:
-            'notificationDuDemandeurEtPublicationDeDecisionAuRecueilDesActesAdministratifsAFaire',
-          actions: assign<
-            PxgContext,
-            { type: 'RENDRE_DECISION_ADMINISTRATION_FAVORABLE' }
-          >({
-            demarcheStatut: DemarchesStatutsIds.Accepte
-          })
+          target: 'notificationDuDemandeurEtPublicationDeDecisionAuRecueilDesActesAdministratifsAFaire',
+          actions: assign<PxgContext, { type: 'RENDRE_DECISION_ADMINISTRATION_FAVORABLE' }>({
+            demarcheStatut: DemarchesStatutsIds.Accepte,
+          }),
         },
         RENDRE_DECISION_ADMINISTRATION_DEFAVORABLE: {
-          target:
-            'notificationDuDemandeurEtPublicationDeDecisionAuRecueilDesActesAdministratifsAFaire',
-          actions: assign<
-            PxgContext,
-            { type: 'RENDRE_DECISION_ADMINISTRATION_DEFAVORABLE' }
-          >({
-            demarcheStatut: DemarchesStatutsIds.Rejete
-          })
-        }
-      }
+          target: 'notificationDuDemandeurEtPublicationDeDecisionAuRecueilDesActesAdministratifsAFaire',
+          actions: assign<PxgContext, { type: 'RENDRE_DECISION_ADMINISTRATION_DEFAVORABLE' }>({
+            demarcheStatut: DemarchesStatutsIds.Rejete,
+          }),
+        },
+      },
     },
     decisionDeLAdministrationARendre: {
       on: {
         RENDRE_DECISION_ADMINISTRATION_FAVORABLE: {
-          target:
-            'notificationDuDemandeurEtPublicationDeDecisionAuRecueilDesActesAdministratifsAFaire',
-          actions: assign<
-            PxgContext,
-            { type: 'RENDRE_DECISION_ADMINISTRATION_FAVORABLE' }
-          >({
-            demarcheStatut: DemarchesStatutsIds.Accepte
-          })
+          target: 'notificationDuDemandeurEtPublicationDeDecisionAuRecueilDesActesAdministratifsAFaire',
+          actions: assign<PxgContext, { type: 'RENDRE_DECISION_ADMINISTRATION_FAVORABLE' }>({
+            demarcheStatut: DemarchesStatutsIds.Accepte,
+          }),
         },
         RENDRE_DECISION_ADMINISTRATION_DEFAVORABLE: {
-          target:
-            'notificationDuDemandeurEtPublicationDeDecisionAuRecueilDesActesAdministratifsAFaire',
-          actions: assign<
-            PxgContext,
-            { type: 'RENDRE_DECISION_ADMINISTRATION_DEFAVORABLE' }
-          >({
-            demarcheStatut: DemarchesStatutsIds.Rejete
-          })
-        }
-      }
+          target: 'notificationDuDemandeurEtPublicationDeDecisionAuRecueilDesActesAdministratifsAFaire',
+          actions: assign<PxgContext, { type: 'RENDRE_DECISION_ADMINISTRATION_DEFAVORABLE' }>({
+            demarcheStatut: DemarchesStatutsIds.Rejete,
+          }),
+        },
+      },
     },
-    notificationDuDemandeurEtPublicationDeDecisionAuRecueilDesActesAdministratifsAFaire:
-      {
-        type: 'parallel',
-        states: {
-          notificationDuDemandeurMachine: {
-            initial: 'notificationDuDemandeurAFaire',
-            states: {
-              notificationDuDemandeurAFaire: {
-                on: {
-                  NOTIFICATION_DU_DEMANDEUR: 'notificationDuDemandeurFaite'
-                }
+    notificationDuDemandeurEtPublicationDeDecisionAuRecueilDesActesAdministratifsAFaire: {
+      type: 'parallel',
+      states: {
+        notificationDuDemandeurMachine: {
+          initial: 'notificationDuDemandeurAFaire',
+          states: {
+            notificationDuDemandeurAFaire: {
+              on: {
+                NOTIFICATION_DU_DEMANDEUR: 'notificationDuDemandeurFaite',
               },
-              notificationDuDemandeurFaite: { type: 'final' }
-            }
+            },
+            notificationDuDemandeurFaite: { type: 'final' },
           },
-          publicationDeDecisionAuRecueilDesActesAdministratifsMachine: {
-            initial:
-              'publicationDeDecisionAuRecueilDesActesAdministratifsAFaire',
-            states: {
-              publicationDeDecisionAuRecueilDesActesAdministratifsAFaire: {
-                on: {
-                  PUBLIER_DECISION_RECUEIL_DES_ACTES_ADMINISTRATIFS:
-                    'publicationDeDecisionAuRecueilDesActesAdministratifsFaite'
-                }
+        },
+        publicationDeDecisionAuRecueilDesActesAdministratifsMachine: {
+          initial: 'publicationDeDecisionAuRecueilDesActesAdministratifsAFaire',
+          states: {
+            publicationDeDecisionAuRecueilDesActesAdministratifsAFaire: {
+              on: {
+                PUBLIER_DECISION_RECUEIL_DES_ACTES_ADMINISTRATIFS: 'publicationDeDecisionAuRecueilDesActesAdministratifsFaite',
               },
-              publicationDeDecisionAuRecueilDesActesAdministratifsFaite: {
-                type: 'final'
-              }
-            }
-          }
-        }
+            },
+            publicationDeDecisionAuRecueilDesActesAdministratifsFaite: {
+              type: 'final',
+            },
+          },
+        },
       },
+    },
     desistementDuDemandeurRendu: {
       type: 'final',
       entry: assign<PxgContext>({
         demarcheStatut: DemarchesStatutsIds.Desiste,
-        visibilite: 'publique'
-      })
+        visibilite: 'publique',
+      }),
     },
     classementSansSuiteRendu: {
       type: 'final',
       entry: assign<PxgContext>({
         demarcheStatut: DemarchesStatutsIds.ClasseSansSuite,
-        visibilite: 'publique'
-      })
-    }
-  }
+        visibilite: 'publique',
+      }),
+    },
+  },
 })
diff --git a/packages/api/src/business/rules/__mocks__/titre-activite-statut-id-find-activites.ts b/packages/api/src/business/rules/__mocks__/titre-activite-statut-id-find-activites.ts
index 79136a2be..fd938f244 100644
--- a/packages/api/src/business/rules/__mocks__/titre-activite-statut-id-find-activites.ts
+++ b/packages/api/src/business/rules/__mocks__/titre-activite-statut-id-find-activites.ts
@@ -4,23 +4,23 @@ import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts
 export const titreActiviteFermee = {
   activiteStatutId: ACTIVITES_STATUTS_IDS.CLOTURE,
   date: '1000-01-01',
-  type: { delaiMois: 3 }
+  type: { delaiMois: 3 },
 } as ITitreActivite
 
 export const titreActiviteDeposee = {
   activiteStatutId: ACTIVITES_STATUTS_IDS.DEPOSE,
   date: '1000-01-01',
-  type: { delaiMois: 3 }
+  type: { delaiMois: 3 },
 } as ITitreActivite
 
 export const titreActiviteAbsenteDelaiDepasse = {
   activiteStatutId: ACTIVITES_STATUTS_IDS.ABSENT,
   date: '1000-01-01',
-  type: { delaiMois: 3 }
+  type: { delaiMois: 3 },
 } as ITitreActivite
 
 export const titreActiviteEnCoursDelaiNonDepasse = {
   activiteStatutId: ACTIVITES_STATUTS_IDS.EN_CONSTRUCTION,
   date: '3000-01-01',
-  type: { delaiMois: 3 }
+  type: { delaiMois: 3 },
 } as ITitreActivite
diff --git a/packages/api/src/business/rules/__mocks__/titre-activites-build-titres.ts b/packages/api/src/business/rules/__mocks__/titre-activites-build-titres.ts
index 8acd9e0ab..5da3ef411 100644
--- a/packages/api/src/business/rules/__mocks__/titre-activites-build-titres.ts
+++ b/packages/api/src/business/rules/__mocks__/titre-activites-build-titres.ts
@@ -5,7 +5,7 @@ import { UNITES } from 'camino-common/src/static/unites.js'
 const activiteTypeGra = {
   id: 'gra',
   frequenceId: 'ann',
-  sections: [{ id: 'substancesFiscales' }]
+  sections: [{ id: 'substancesFiscales' }],
 } as IActiviteType
 
 const activiteTypeGrp = {
@@ -21,7 +21,7 @@ const activiteTypeGrp = {
           nom: 'Nom champ 1',
           type: 'number',
           optionnel: true,
-          description: 'Description champs 1'
+          description: 'Description champs 1',
         },
         {
           id: 'champ-2',
@@ -29,7 +29,7 @@ const activiteTypeGrp = {
           type: 'checkboxes',
           valeurs: [{ id: 'un', nom: 'Uno' }],
           dateFin: '2018-04-01',
-          description: 'Description champs 2'
+          description: 'Description champs 2',
         },
         {
           id: 'champ-3',
@@ -38,11 +38,11 @@ const activiteTypeGrp = {
           valeursMetasNom: 'unites',
           dateDebut: '2018-07-01',
           description: 'Description champs 3',
-          periodesIds: [3]
-        }
-      ]
-    }
-  ]
+          periodesIds: [3],
+        },
+      ],
+    },
+  ],
 } as IActiviteType
 
 const titreActivitesGra = [
@@ -63,39 +63,36 @@ const titreActivitesGra = [
             type: 'number',
             description: '<b>g (gramme)</b> contenu dans les minerais',
             referenceUniteRatio: 0.001,
-            uniteId: SubstancesFiscale.auru.uniteId
+            uniteId: SubstancesFiscale.auru.uniteId,
           },
           {
             id: SubstancesFiscale.naca.id,
             nom: SubstancesFiscale.naca.nom,
             type: 'number',
-            description:
-              '<b>x 1000 t (millier de tonnes)</b> extrait par abattage net livré',
+            description: '<b>x 1000 t (millier de tonnes)</b> extrait par abattage net livré',
             referenceUniteRatio: 1000000,
-            uniteId: SubstancesFiscale.naca.uniteId
+            uniteId: SubstancesFiscale.naca.uniteId,
           },
           {
-            description:
-              '<b>x 1000 t (millier de tonnes)</b> extrait en dissolution par sondage et livré raffiné',
+            description: '<b>x 1000 t (millier de tonnes)</b> extrait en dissolution par sondage et livré raffiné',
             id: SubstancesFiscale.nacb.id,
             nom: SubstancesFiscale.nacb.nom,
             referenceUniteRatio: 1000000,
             type: 'number',
-            uniteId: SubstancesFiscale.nacb.uniteId
+            uniteId: SubstancesFiscale.nacb.uniteId,
           },
           {
-            description:
-              '<b>x 1000 t (millier de tonnes)</b> extrait en dissolution par sondage et livré en dissolution',
+            description: '<b>x 1000 t (millier de tonnes)</b> extrait en dissolution par sondage et livré en dissolution',
             id: SubstancesFiscale.nacc.id,
             nom: SubstancesFiscale.nacc.nom,
             referenceUniteRatio: 1000000,
             type: 'number',
-            uniteId: SubstancesFiscale.nacc.uniteId
-          }
-        ]
-      }
-    ]
-  }
+            uniteId: SubstancesFiscale.nacc.uniteId,
+          },
+        ],
+      },
+    ],
+  },
 ]
 
 const titreActivitesGrp = [
@@ -115,19 +112,19 @@ const titreActivitesGrp = [
             nom: 'Nom champ 1',
             optionnel: true,
             type: 'number',
-            description: 'Description champs 1'
+            description: 'Description champs 1',
           },
           {
             id: 'champ-2',
             nom: 'Nom champs 2',
             type: 'checkboxes',
             description: 'Description champs 2',
-            valeurs: [{ id: 'un', nom: 'Uno' }]
-          }
+            valeurs: [{ id: 'un', nom: 'Uno' }],
+          },
         ],
-        nom: 'Renseignements'
-      }
-    ]
+        nom: 'Renseignements',
+      },
+    ],
   },
   {
     titreId: 'titre-id',
@@ -145,12 +142,12 @@ const titreActivitesGrp = [
             nom: 'Nom champ 1',
             optionnel: true,
             type: 'number',
-            description: 'Description champs 1'
-          }
+            description: 'Description champs 1',
+          },
         ],
-        nom: 'Renseignements'
-      }
-    ]
+        nom: 'Renseignements',
+      },
+    ],
   },
   {
     titreId: 'titre-id',
@@ -168,19 +165,19 @@ const titreActivitesGrp = [
             nom: 'Nom champ 1',
             optionnel: true,
             type: 'number',
-            description: 'Description champs 1'
+            description: 'Description champs 1',
           },
           {
             id: 'champ-3',
             nom: 'Nom champs 3',
             type: 'checkboxes',
             description: 'Description champs 3',
-            valeurs: UNITES
-          }
+            valeurs: UNITES,
+          },
         ],
-        nom: 'Renseignements'
-      }
-    ]
+        nom: 'Renseignements',
+      },
+    ],
   },
   {
     titreId: 'titre-id',
@@ -198,13 +195,13 @@ const titreActivitesGrp = [
             nom: 'Nom champ 1',
             optionnel: true,
             type: 'number',
-            description: 'Description champs 1'
-          }
+            description: 'Description champs 1',
+          },
         ],
-        nom: 'Renseignements'
-      }
-    ]
-  }
+        nom: 'Renseignements',
+      },
+    ],
+  },
 ]
 
 const titreDemarches = [
@@ -220,16 +217,10 @@ const titreDemarches = [
         date: '2018-01-01',
         typeId: 'dpu',
         statutId: 'fai',
-        substances: ['auru', 'nacl', null]
-      }
-    ]
-  } as ITitreDemarche
+        substances: ['auru', 'nacl', null],
+      },
+    ],
+  } as ITitreDemarche,
 ]
 
-export {
-  titreActivitesGra,
-  titreActivitesGrp,
-  activiteTypeGra,
-  activiteTypeGrp,
-  titreDemarches
-}
+export { titreActivitesGra, titreActivitesGrp, activiteTypeGra, activiteTypeGrp, titreDemarches }
diff --git a/packages/api/src/business/rules/__mocks__/titre-date-debut-find-demarches.ts b/packages/api/src/business/rules/__mocks__/titre-date-debut-find-demarches.ts
index b0c3f9af1..2e75026a9 100644
--- a/packages/api/src/business/rules/__mocks__/titre-date-debut-find-demarches.ts
+++ b/packages/api/src/business/rules/__mocks__/titre-date-debut-find-demarches.ts
@@ -14,10 +14,10 @@ const titreDemarchesDpu = [
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-11'
-      }
-    ]
-  }
+        date: '1988-03-11',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesRpu = [
@@ -34,10 +34,10 @@ const titreDemarchesRpu = [
         typeId: 'rpu',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-11'
-      }
-    ]
-  }
+        date: '1988-03-11',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesDex = [
@@ -54,10 +54,10 @@ const titreDemarchesDex = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-11'
-      }
-    ]
-  }
+        date: '1988-03-11',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesRpuDateDebut = [
@@ -75,10 +75,10 @@ const titreDemarchesRpuDateDebut = [
         statutId: 'acc',
         ordre: 1,
         date: '1988-03-11',
-        dateDebut: '1988-03-15'
-      }
-    ]
-  }
+        dateDebut: '1988-03-15',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesDexDateDebut = [
@@ -96,10 +96,10 @@ const titreDemarchesDexDateDebut = [
         statutId: 'acc',
         ordre: 1,
         date: '1988-03-11',
-        dateDebut: '1988-03-15'
-      }
-    ]
-  }
+        dateDebut: '1988-03-15',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesSansOctroi = [
@@ -108,8 +108,8 @@ const titreDemarchesSansOctroi = [
     titreId: 'h-cx-courdemanges-1988',
     typeId: 'mut',
     statutId: 'acc',
-    ordre: 1
-  }
+    ordre: 1,
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesSansDateDebut = [
@@ -126,10 +126,10 @@ const titreDemarchesSansDateDebut = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-06'
-      }
-    ]
-  }
+        date: '1988-03-06',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesDateUndefined = [
@@ -145,10 +145,10 @@ const titreDemarchesDateUndefined = [
         titreDemarcheId: 'h-cx-courdemanges-1988-oct01',
         typeId: 'dpu',
         statutId: 'acc',
-        ordre: 1
-      }
-    ]
-  }
+        ordre: 1,
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 export {
@@ -159,5 +159,5 @@ export {
   titreDemarchesDexDateDebut,
   titreDemarchesSansOctroi,
   titreDemarchesSansDateDebut,
-  titreDemarchesDateUndefined
+  titreDemarchesDateUndefined,
 }
diff --git a/packages/api/src/business/rules/__mocks__/titre-date-demande-find-demarches.ts b/packages/api/src/business/rules/__mocks__/titre-date-demande-find-demarches.ts
index 478e793e2..37f8dee28 100644
--- a/packages/api/src/business/rules/__mocks__/titre-date-demande-find-demarches.ts
+++ b/packages/api/src/business/rules/__mocks__/titre-date-demande-find-demarches.ts
@@ -15,10 +15,10 @@ const titreDemarcheOctEtapeMen = [
         typeId: 'men',
         statutId: 'dep',
         ordre: 1,
-        date: '1988-03-11'
-      }
-    ]
-  }
+        date: '1988-03-11',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarcheOctSansEtapes = [
@@ -28,8 +28,8 @@ const titreDemarcheOctSansEtapes = [
     typeId: 'oct',
     statutId: 'acc',
     ordre: 1,
-    etapes: []
-  }
+    etapes: [],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarcheOctSansEtapeMen = [
@@ -46,14 +46,10 @@ const titreDemarcheOctSansEtapeMen = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-11'
-      }
-    ]
-  }
+        date: '1988-03-11',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
-export {
-  titreDemarcheOctEtapeMen,
-  titreDemarcheOctSansEtapes,
-  titreDemarcheOctSansEtapeMen
-}
+export { titreDemarcheOctEtapeMen, titreDemarcheOctSansEtapes, titreDemarcheOctSansEtapeMen }
diff --git a/packages/api/src/business/rules/__mocks__/titre-date-fin-find-demarches.ts b/packages/api/src/business/rules/__mocks__/titre-date-fin-find-demarches.ts
index 9595341a7..3e79c2472 100644
--- a/packages/api/src/business/rules/__mocks__/titre-date-fin-find-demarches.ts
+++ b/packages/api/src/business/rules/__mocks__/titre-date-fin-find-demarches.ts
@@ -16,9 +16,9 @@ const titreDemarchesProAccOctAcc = [
         ordre: 1,
         date: '2013-05-21',
         dateFin: '2038-03-11',
-        duree: 25
-      }
-    ]
+        duree: 25,
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -33,7 +33,7 @@ const titreDemarchesProAccOctAcc = [
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1988-03-11'
+        date: '1988-03-11',
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -42,10 +42,10 @@ const titreDemarchesProAccOctAcc = [
         statutId: 'acc',
         ordre: 1,
         date: '1988-03-06',
-        dateFin: '2013-03-11'
-      }
-    ]
-  }
+        dateFin: '2013-03-11',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesProTerOctAcc = [
@@ -64,9 +64,9 @@ const titreDemarchesProTerOctAcc = [
         ordre: 1,
         date: '2013-05-21',
         dateFin: '2038-03-11',
-        duree: 25
-      }
-    ]
+        duree: 25,
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -81,7 +81,7 @@ const titreDemarchesProTerOctAcc = [
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1988-03-11'
+        date: '1988-03-11',
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -90,10 +90,10 @@ const titreDemarchesProTerOctAcc = [
         statutId: 'acc',
         ordre: 1,
         date: '1988-03-06',
-        dateFin: '2013-03-11'
-      }
-    ]
-  }
+        dateFin: '2013-03-11',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesProRejOctAcc = [
@@ -102,7 +102,7 @@ const titreDemarchesProRejOctAcc = [
     titreId: 'h-cx-courdemanges-1988',
     typeId: 'pro',
     statutId: 'rej',
-    ordre: 2
+    ordre: 2,
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -117,7 +117,7 @@ const titreDemarchesProRejOctAcc = [
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1988-03-11'
+        date: '1988-03-11',
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -126,10 +126,10 @@ const titreDemarchesProRejOctAcc = [
         statutId: 'acc',
         ordre: 1,
         date: '1988-03-06',
-        dateFin: '2013-03-11'
-      }
-    ]
-  }
+        dateFin: '2013-03-11',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesProRejOctRej = [
@@ -138,20 +138,15 @@ const titreDemarchesProRejOctRej = [
     titreId: 'h-cx-courdemanges-1988',
     typeId: 'pro',
     statutId: 'rej',
-    ordre: 2
+    ordre: 2,
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
     titreId: 'h-cx-courdemanges-1988',
     typeId: 'oct',
     statutId: 'rej',
-    ordre: 1
-  }
+    ordre: 1,
+  },
 ] as ITitreDemarche[]
 
-export {
-  titreDemarchesProAccOctAcc,
-  titreDemarchesProTerOctAcc,
-  titreDemarchesProRejOctAcc,
-  titreDemarchesProRejOctRej
-}
+export { titreDemarchesProAccOctAcc, titreDemarchesProTerOctAcc, titreDemarchesProRejOctAcc, titreDemarchesProRejOctRej }
diff --git a/packages/api/src/business/rules/__mocks__/titre-demarche-date-fin-duree-find-demarches.ts b/packages/api/src/business/rules/__mocks__/titre-demarche-date-fin-duree-find-demarches.ts
index 710606fac..f7e35b4b8 100644
--- a/packages/api/src/business/rules/__mocks__/titre-demarche-date-fin-duree-find-demarches.ts
+++ b/packages/api/src/business/rules/__mocks__/titre-demarche-date-fin-duree-find-demarches.ts
@@ -18,9 +18,9 @@ const titreDemarchesOctDateFin = [
         ordre: 1,
         date: '2013-05-21',
         dateFin: '2038-03-11',
-        duree: 50 * 12
-      }
-    ]
+        duree: 50 * 12,
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -35,7 +35,7 @@ const titreDemarchesOctDateFin = [
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1988-03-11'
+        date: '1988-03-11',
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -44,10 +44,10 @@ const titreDemarchesOctDateFin = [
         statutId: 'acc',
         ordre: 1,
         date: '1988-03-06',
-        dateFin: '2013-03-11'
-      }
-    ]
-  }
+        dateFin: '2013-03-11',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesOctDateDebut = [
@@ -66,9 +66,9 @@ const titreDemarchesOctDateDebut = [
         ordre: 1,
         date: '2013-05-21',
         dateFin: '2038-03-11',
-        duree: 25 * 12
-      }
-    ]
+        duree: 25 * 12,
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -83,7 +83,7 @@ const titreDemarchesOctDateDebut = [
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1988-03-11'
+        date: '1988-03-11',
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -93,10 +93,10 @@ const titreDemarchesOctDateDebut = [
         ordre: 1,
         date: '1988-03-06',
         dateDebut: '2013-03-11',
-        duree: 10 * 12
-      }
-    ]
-  }
+        duree: 10 * 12,
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesOctDureeZero = [
@@ -115,10 +115,10 @@ const titreDemarchesOctDureeZero = [
         ordre: 1,
         date: toCaminoDate('1988-03-06'),
         duree: 0,
-        points: []
-      }
-    ]
-  }
+        points: [],
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesOctIhiDureeZero = [
@@ -137,10 +137,10 @@ const titreDemarchesOctIhiDureeZero = [
         ordre: 1,
         date: toCaminoDate('1988-03-06'),
         duree: 0,
-        points: []
-      }
-    ]
-  }
+        points: [],
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesOctPasDeDpu = [
@@ -158,10 +158,10 @@ const titreDemarchesOctPasDeDpu = [
         statutId: 'acc',
         ordre: 1,
         date: '1988-03-06',
-        duree: 25 * 12
-      }
-    ]
-  }
+        duree: 25 * 12,
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesOctDpuFirst = [
@@ -179,10 +179,10 @@ const titreDemarchesOctDpuFirst = [
         statutId: 'acc',
         ordre: 1,
         date: '1988-03-06',
-        duree: 25 * 12
-      }
-    ]
-  }
+        duree: 25 * 12,
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesOctNiDpuNiDex = [
@@ -200,10 +200,10 @@ const titreDemarchesOctNiDpuNiDex = [
         statutId: 'acc',
         ordre: 1,
         date: '1988-03-06',
-        duree: 25 * 12
-      }
-    ]
-  }
+        duree: 25 * 12,
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesOctProDuree = [
@@ -221,7 +221,7 @@ const titreDemarchesOctProDuree = [
         statutId: 'acc',
         ordre: 2,
         date: '2010-05-23',
-        duree: null
+        duree: null,
       },
       {
         id: 'h-cx-courdemanges-1988-pro01-dex01',
@@ -230,9 +230,9 @@ const titreDemarchesOctProDuree = [
         statutId: 'acc',
         ordre: 1,
         date: '2010-05-21',
-        duree: 25 * 12
-      }
-    ]
+        duree: 25 * 12,
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -248,7 +248,7 @@ const titreDemarchesOctProDuree = [
         statutId: 'acc',
         ordre: 2,
         date: '1988-03-11',
-        duree: null
+        duree: null,
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -258,10 +258,10 @@ const titreDemarchesOctProDuree = [
         ordre: 1,
         date: '1988-03-06',
         dateFin: '2010-03-11',
-        duree: 25 * 12
-      }
-    ]
-  }
+        duree: 25 * 12,
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesOctSansDateFinProDuree = [
@@ -279,7 +279,7 @@ const titreDemarchesOctSansDateFinProDuree = [
         statutId: 'acc',
         ordre: 2,
         date: '2013-05-23',
-        duree: null
+        duree: null,
       },
       {
         id: 'h-cx-courdemanges-1988-pro01-dex01',
@@ -288,9 +288,9 @@ const titreDemarchesOctSansDateFinProDuree = [
         statutId: 'acc',
         ordre: 1,
         date: '2013-05-21',
-        duree: 50 * 12
-      }
-    ]
+        duree: 50 * 12,
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -306,7 +306,7 @@ const titreDemarchesOctSansDateFinProDuree = [
         statutId: 'acc',
         ordre: 2,
         date: '1988-03-11',
-        duree: null
+        duree: null,
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -314,10 +314,10 @@ const titreDemarchesOctSansDateFinProDuree = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-06'
-      }
-    ]
-  }
+        date: '1988-03-06',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesOctRetDateFin = [
@@ -336,7 +336,7 @@ const titreDemarchesOctRetDateFin = [
         ordre: 2,
         date: '2013-05-23',
         dateFin: null,
-        duree: null
+        duree: null,
       },
       {
         id: 'h-cx-courdemanges-1988-ret01-dex01',
@@ -345,9 +345,9 @@ const titreDemarchesOctRetDateFin = [
         statutId: 'acc',
         ordre: 1,
         date: '2013-05-21',
-        dateFin: '2200-03-11'
-      }
-    ]
+        dateFin: '2200-03-11',
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -364,7 +364,7 @@ const titreDemarchesOctRetDateFin = [
         ordre: 2,
         date: '1988-03-11',
         dateFin: null,
-        duree: null
+        duree: null,
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -374,10 +374,10 @@ const titreDemarchesOctRetDateFin = [
         ordre: 1,
         date: '1988-03-06',
         dateFin: '2013-03-11',
-        duree: 25 * 12
-      }
-    ]
-  }
+        duree: 25 * 12,
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesOctRetDate = [
@@ -395,7 +395,7 @@ const titreDemarchesOctRetDate = [
         statutId: 'acc',
         ordre: 2,
         date: '2013-05-23',
-        duree: null
+        duree: null,
       },
       {
         id: 'h-cx-courdemanges-1988-ret01-dex01',
@@ -404,9 +404,9 @@ const titreDemarchesOctRetDate = [
         statutId: 'acc',
         ordre: 1,
         date: '2013-05-21',
-        duree: 50 * 12
-      }
-    ]
+        duree: 50 * 12,
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -423,7 +423,7 @@ const titreDemarchesOctRetDate = [
         ordre: 2,
         date: '1988-03-11',
         dateFin: null,
-        duree: null
+        duree: null,
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -432,10 +432,10 @@ const titreDemarchesOctRetDate = [
         statutId: 'acc',
         ordre: 1,
         date: '1988-03-06',
-        duree: 25 * 12
-      }
-    ]
-  }
+        duree: 25 * 12,
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesOctRetNoDex = [
@@ -444,7 +444,7 @@ const titreDemarchesOctRetNoDex = [
     titreId: 'h-cx-courdemanges-1988',
     typeId: 'ren',
     statutId: 'ind',
-    ordre: 3
+    ordre: 3,
   },
   {
     id: 'h-cx-courdemanges-1988-ret01',
@@ -460,9 +460,9 @@ const titreDemarchesOctRetNoDex = [
         statutId: 'acc',
         ordre: 1,
         date: '2013-05-21',
-        duree: 50 * 12
-      }
-    ]
+        duree: 50 * 12,
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -479,7 +479,7 @@ const titreDemarchesOctRetNoDex = [
         ordre: 2,
         date: '1988-03-11',
         dateFin: null,
-        duree: null
+        duree: null,
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -488,10 +488,10 @@ const titreDemarchesOctRetNoDex = [
         statutId: 'acc',
         ordre: 1,
         date: '1988-03-06',
-        duree: 25 * 12
-      }
-    ]
-  }
+        duree: 25 * 12,
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesRenPoints = [
@@ -509,9 +509,9 @@ const titreDemarchesRenPoints = [
         statutId: 'acc',
         ordre: 1,
         date: '1988-06-06',
-        points: [1, 2, 3]
-      }
-    ]
+        points: [1, 2, 3],
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -528,7 +528,7 @@ const titreDemarchesRenPoints = [
         ordre: 2,
         date: '1988-03-11',
         dateFin: null,
-        duree: null
+        duree: null,
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -537,10 +537,10 @@ const titreDemarchesRenPoints = [
         statutId: 'acc',
         ordre: 1,
         date: '1988-03-06',
-        duree: 25 * 12
-      }
-    ]
-  }
+        duree: 25 * 12,
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesRenPointsVideDex = [
@@ -557,10 +557,10 @@ const titreDemarchesRenPointsVideDex = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-06-06'
-      }
-    ]
-  }
+        date: '1988-06-06',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesRenPointsVideNiDpuNiDex = [
@@ -578,10 +578,10 @@ const titreDemarchesRenPointsVideNiDpuNiDex = [
         statutId: 'acc',
         ordre: 1,
         date: toCaminoDate('1988-06-06'),
-        points: []
-      }
-    ]
-  }
+        points: [],
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 export {
@@ -599,5 +599,5 @@ export {
   titreDemarchesOctRetNoDex,
   titreDemarchesRenPoints,
   titreDemarchesRenPointsVideDex,
-  titreDemarchesRenPointsVideNiDpuNiDex
+  titreDemarchesRenPointsVideNiDpuNiDex,
 }
diff --git a/packages/api/src/business/rules/__mocks__/titre-phases-find-demarches.ts b/packages/api/src/business/rules/__mocks__/titre-phases-find-demarches.ts
index 105d0bb70..b4c4d4471 100644
--- a/packages/api/src/business/rules/__mocks__/titre-phases-find-demarches.ts
+++ b/packages/api/src/business/rules/__mocks__/titre-phases-find-demarches.ts
@@ -13,7 +13,7 @@ const titreDemarcheOctDpuAcc = {
       statutId: 'acc',
       ordre: 2,
       date: '2200-01-01',
-      duree: 2 * 12
+      duree: 2 * 12,
     },
     {
       id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -21,9 +21,9 @@ const titreDemarcheOctDpuAcc = {
       statutId: 'acc',
       ordre: 1,
       date: '2200-01-01',
-      duree: 2 * 12
-    }
-  ]
+      duree: 2 * 12,
+    },
+  ],
 } as ITitreDemarche
 
 const titreDemarcheOctDpuInexistante = {
@@ -31,7 +31,7 @@ const titreDemarcheOctDpuInexistante = {
   titreId: 'h-cx-courdemanges-1988',
   typeId: 'oct',
   statutId: 'acc',
-  etapes: []
+  etapes: [],
 } as ITitreDemarche
 
 const titreAxmDemarcheOctDexAcc = {
@@ -46,9 +46,9 @@ const titreAxmDemarcheOctDexAcc = {
       statutId: 'acc',
       ordre: 1,
       date: '2200-01-01',
-      duree: 2 * 12
-    }
-  ]
+      duree: 2 * 12,
+    },
+  ],
 } as ITitreDemarche
 
 const titrePrmDemarcheOctRpuAcc = {
@@ -63,9 +63,9 @@ const titrePrmDemarcheOctRpuAcc = {
       statutId: 'acc',
       ordre: 1,
       date: '2200-01-01',
-      dateFin: '2200-01-02'
-    }
-  ]
+      dateFin: '2200-01-02',
+    },
+  ],
 } as ITitreDemarche
 
 const titreDemarcheOctDpuDateDebut = {
@@ -81,7 +81,7 @@ const titreDemarcheOctDpuDateDebut = {
       ordre: 2,
       date: '2200-01-01',
       dateDebut: '2200-01-02',
-      duree: 2 * 12
+      duree: 2 * 12,
     },
     {
       id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -90,9 +90,9 @@ const titreDemarcheOctDpuDateDebut = {
       ordre: 1,
       date: '2200-01-01',
       dateDebut: '2200-01-02',
-      duree: 2 * 12
-    }
-  ]
+      duree: 2 * 12,
+    },
+  ],
 } as ITitreDemarche
 
 const titreDemarchesOctProlongation = [
@@ -109,7 +109,7 @@ const titreDemarchesOctProlongation = [
         statutId: 'acc',
         ordre: 2,
         date: '2200-01-01',
-        dateFin: '2500-01-01'
+        dateFin: '2500-01-01',
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -117,9 +117,9 @@ const titreDemarchesOctProlongation = [
         statutId: 'acc',
         ordre: 1,
         date: '2200-01-01',
-        dateFin: '2500-01-01'
-      }
-    ]
+        dateFin: '2500-01-01',
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-pro01',
@@ -134,7 +134,7 @@ const titreDemarchesOctProlongation = [
         statutId: 'acc',
         ordre: 2,
         date: '2019-01-02',
-        dateFin: '3000-01-01'
+        dateFin: '3000-01-01',
       },
       {
         id: 'h-cx-courdemanges-1988-pro01-dex01',
@@ -142,10 +142,10 @@ const titreDemarchesOctProlongation = [
         statutId: 'acc',
         ordre: 1,
         date: '2019-01-02',
-        dateFin: '3000-01-01'
-      }
-    ]
-  }
+        dateFin: '3000-01-01',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesOctAnnulation = [
@@ -162,7 +162,7 @@ const titreDemarchesOctAnnulation = [
         statutId: 'acc',
         ordre: 2,
         date: '2000-01-02',
-        duree: 20 * 12
+        duree: 20 * 12,
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -170,9 +170,9 @@ const titreDemarchesOctAnnulation = [
         statutId: 'acc',
         ordre: 1,
         date: '2000-01-01',
-        duree: 20 * 12
-      }
-    ]
+        duree: 20 * 12,
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-ren01',
@@ -186,17 +186,17 @@ const titreDemarchesOctAnnulation = [
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '2019-01-03'
+        date: '2019-01-03',
       },
       {
         id: 'h-cx-courdemanges-1988-ren01-dex01',
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '2019-01-02'
-      }
-    ]
-  }
+        date: '2019-01-02',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesOctAnnulationSansPoints = [
@@ -213,7 +213,7 @@ const titreDemarchesOctAnnulationSansPoints = [
         statutId: 'acc',
         ordre: 2,
         date: '2000-01-02',
-        duree: 20 * 12
+        duree: 20 * 12,
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dex01',
@@ -221,9 +221,9 @@ const titreDemarchesOctAnnulationSansPoints = [
         statutId: 'acc',
         ordre: 1,
         date: '2000-01-01',
-        duree: 20 * 12
-      }
-    ]
+        duree: 20 * 12,
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-ren01',
@@ -237,7 +237,7 @@ const titreDemarchesOctAnnulationSansPoints = [
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '2019-01-03'
+        date: '2019-01-03',
       },
       {
         id: 'h-cx-courdemanges-1988-ren01-dex01',
@@ -245,10 +245,10 @@ const titreDemarchesOctAnnulationSansPoints = [
         statutId: 'acc',
         ordre: 1,
         date: '2019-01-02',
-        points: [{ id: 'point' }]
-      }
-    ]
-  }
+        points: [{ id: 'point' }],
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 export {
@@ -259,5 +259,5 @@ export {
   titreDemarcheOctDpuDateDebut,
   titreDemarchesOctProlongation,
   titreDemarchesOctAnnulation,
-  titreDemarchesOctAnnulationSansPoints
+  titreDemarchesOctAnnulationSansPoints,
 }
diff --git a/packages/api/src/business/rules/__mocks__/titre-prop-activites-count-activites.ts b/packages/api/src/business/rules/__mocks__/titre-prop-activites-count-activites.ts
index 534add53b..126e9bd20 100644
--- a/packages/api/src/business/rules/__mocks__/titre-prop-activites-count-activites.ts
+++ b/packages/api/src/business/rules/__mocks__/titre-prop-activites-count-activites.ts
@@ -2,7 +2,7 @@ const titreActivites = [
   { id: 'id-1', statutId: 'dep' },
   { id: 'id-2', statutId: 'dep' },
   { id: 'id-3', statutId: 'dep' },
-  { id: 'id-4', statutId: 'abs' }
+  { id: 'id-4', statutId: 'abs' },
 ]
 
 export { titreActivites }
diff --git a/packages/api/src/business/rules/__mocks__/titre-prop-etape-find-demarches.ts b/packages/api/src/business/rules/__mocks__/titre-prop-etape-find-demarches.ts
index 1d5084b7e..e1eace3fa 100644
--- a/packages/api/src/business/rules/__mocks__/titre-prop-etape-find-demarches.ts
+++ b/packages/api/src/business/rules/__mocks__/titre-prop-etape-find-demarches.ts
@@ -20,16 +20,16 @@ const titreDemarchesOctPointsMut = {
           typeId: 'dpu',
           statutId: 'acc',
           ordre: 2,
-          points: [1, 2, 3]
+          points: [1, 2, 3],
         },
         {
           id: 'h-cx-courdemanges-1989-oct01-dex01',
           titreDemarcheId: 'h-cx-courdemanges-1989-oct01',
           typeId: 'dex',
           statutId: 'acc',
-          ordre: 1
-        }
-      ]
+          ordre: 1,
+        },
+      ],
     },
     {
       id: 'h-cx-courdemanges-1989-mut01',
@@ -43,18 +43,18 @@ const titreDemarchesOctPointsMut = {
           titreDemarcheId: 'h-cx-courdemanges-1989-mut01',
           typeId: 'dpu',
           statutId: 'acc',
-          ordre: 2
+          ordre: 2,
         },
         {
           id: 'h-cx-courdemanges-1989-mut01-dex01',
           titreDemarcheId: 'h-cx-courdemanges-1989-mut01',
           typeId: 'dex',
           statutId: 'acc',
-          ordre: 1
-        }
-      ]
-    }
-  ] as ITitreDemarche[]
+          ordre: 1,
+        },
+      ],
+    },
+  ] as ITitreDemarche[],
 }
 
 const titreDemarchesOctPointsVides = {
@@ -72,18 +72,18 @@ const titreDemarchesOctPointsVides = {
           typeId: 'dpu',
           statutId: 'acc',
           ordre: 2,
-          points: []
+          points: [],
         },
         {
           id: 'h-cx-courdemanges-1988-oct01-dex01',
           titreDemarcheId: 'h-cx-courdemanges-1988-oct01',
           typeId: 'dex',
           statutId: 'acc',
-          ordre: 1
-        }
-      ]
-    }
-  ] as ITitreDemarche[]
+          ordre: 1,
+        },
+      ],
+    },
+  ] as ITitreDemarche[],
 }
 
 const titreDemarchesOctMutPoints = {
@@ -100,16 +100,16 @@ const titreDemarchesOctMutPoints = {
           titreDemarcheId: 'h-cx-courdemanges-1986-oct01',
           typeId: 'dpu',
           statutId: 'acc',
-          ordre: 2
+          ordre: 2,
         },
         {
           id: 'h-cx-courdemanges-1986-oct01-dex01',
           titreDemarcheId: 'h-cx-courdemanges-1986-oct01',
           typeId: 'dex',
           statutId: 'acc',
-          ordre: 1
-        }
-      ]
+          ordre: 1,
+        },
+      ],
     },
     {
       id: 'h-cx-courdemanges-1986-mut01',
@@ -124,18 +124,18 @@ const titreDemarchesOctMutPoints = {
           typeId: 'dpu',
           statutId: 'acc',
           ordre: 2,
-          points: [1, 2, 3]
+          points: [1, 2, 3],
         },
         {
           id: 'h-cx-courdemanges-1986-mut01-dex01',
           titreDemarcheId: 'h-cx-courdemanges-1986-mut01',
           typeId: 'dex',
           statutId: 'acc',
-          ordre: 1
-        }
-      ]
-    }
-  ] as ITitreDemarche[]
+          ordre: 1,
+        },
+      ],
+    },
+  ] as ITitreDemarche[],
 }
 
 const titreDemarchesOctPointsMutInstruction = {
@@ -154,16 +154,16 @@ const titreDemarchesOctPointsMutInstruction = {
           typeId: 'dpu',
           statutId: 'acc',
           ordre: 2,
-          points: [1, 2, 3]
+          points: [1, 2, 3],
         },
         {
           id: 'h-cx-courdemanges-1985-mut01-dex01',
           titreDemarcheId: 'h-cx-courdemanges-1985-mut01',
           typeId: 'dex',
           statutId: 'acc',
-          ordre: 1
-        }
-      ]
+          ordre: 1,
+        },
+      ],
     },
     {
       id: 'h-cx-courdemanges-1985-oct01',
@@ -177,18 +177,18 @@ const titreDemarchesOctPointsMutInstruction = {
           typeId: 'dpu',
           statutId: 'acc',
           ordre: 2,
-          points: [1, 2, 3]
+          points: [1, 2, 3],
         },
         {
           id: 'h-cx-courdemanges-1985-oct01-dex01',
           titreDemarcheId: 'h-cx-courdemanges-1985-oct01',
           typeId: 'dex',
           statutId: 'acc',
-          ordre: 1
-        }
-      ]
-    }
-  ] as ITitreDemarche[]
+          ordre: 1,
+        },
+      ],
+    },
+  ] as ITitreDemarche[],
 }
 
 const titreDemarchesOctAccDpuRej = {
@@ -206,18 +206,18 @@ const titreDemarchesOctAccDpuRej = {
           typeId: 'dpu',
           statutId: 'rej',
           ordre: 2,
-          points: [1, 2, 3]
+          points: [1, 2, 3],
         },
         {
           id: 'h-cx-courdemanges-1984-oct01-dex01',
           titreDemarcheId: 'h-cx-courdemanges-1984-oct01',
           typeId: 'dex',
           statutId: 'rej',
-          ordre: 1
-        }
-      ]
-    }
-  ] as ITitreDemarche[]
+          ordre: 1,
+        },
+      ],
+    },
+  ] as ITitreDemarche[],
 }
 
 const titreDemarchesOctMfrPoints = {
@@ -244,13 +244,13 @@ const titreDemarchesOctMfrPoints = {
               contour: 1,
               point: 1,
               references: [],
-              coordonnees: { x: 0, y: 0 }
-            }
-          ]
-        } as ITitreEtape
-      ]
-    }
-  ] as ITitreDemarche[]
+              coordonnees: { x: 0, y: 0 },
+            },
+          ],
+        } as ITitreEtape,
+      ],
+    },
+  ] as ITitreDemarche[],
 }
 
 const titreDemarchesOctTitulairesACO = {
@@ -269,11 +269,11 @@ const titreDemarchesOctTitulairesACO = {
           statutId: 'aco',
           ordre: 1,
           dateFin: '2018-12-31',
-          titulaires: [{ id: 'fr-123456789' }]
-        }
-      ]
-    }
-  ] as ITitreDemarche[]
+          titulaires: [{ id: 'fr-123456789' }],
+        },
+      ],
+    },
+  ] as ITitreDemarche[],
 }
 
 const titreDemarchesOctAmodiatairesPassee = {
@@ -292,12 +292,12 @@ const titreDemarchesOctAmodiatairesPassee = {
           statutId: 'acc',
           ordre: 1,
           dateFin: '2018-12-31',
-          amodiataires: [{ id: 'fr-123456789' }]
-        }
+          amodiataires: [{ id: 'fr-123456789' }],
+        },
       ],
-      phase: { phaseStatutId: 'val' }
-    }
-  ] as ITitreDemarche[]
+      phase: { phaseStatutId: 'val' },
+    },
+  ] as ITitreDemarche[],
 }
 
 const titreDemarchesOctAmodiatairesValide = {
@@ -316,9 +316,9 @@ const titreDemarchesOctAmodiatairesValide = {
           statutId: 'acc',
           ordre: 1,
           dateFin: '4018-12-31',
-          amodiataires: [{ id: 'fr-123456789' }]
-        }
-      ]
+          amodiataires: [{ id: 'fr-123456789' }],
+        },
+      ],
     },
     {
       id: 'h-cx-courdemanges-1982-oct01',
@@ -326,9 +326,9 @@ const titreDemarchesOctAmodiatairesValide = {
       typeId: 'oct',
       statutId: 'acc',
       phase: { phaseStatutId: 'val' } as ITitrePhase,
-      etapes: []
-    }
-  ] as ITitreDemarche[]
+      etapes: [],
+    },
+  ] as ITitreDemarche[],
 }
 
 const titreDemarchesOctAmodiatairesMod = {
@@ -346,9 +346,9 @@ const titreDemarchesOctAmodiatairesMod = {
           typeId: 'dpu',
           statutId: 'acc',
           ordre: 1,
-          amodiataires: [{ id: 'fr-123456789' }]
-        }
-      ]
+          amodiataires: [{ id: 'fr-123456789' }],
+        },
+      ],
     },
     {
       id: 'h-cx-courdemanges-1981-pro01',
@@ -361,9 +361,9 @@ const titreDemarchesOctAmodiatairesMod = {
           titreDemarcheId: 'h-cx-courdemanges-1981-pro01',
           typeId: 'dpu',
           statutId: 'acc',
-          ordre: 1
-        }
-      ]
+          ordre: 1,
+        },
+      ],
     },
     {
       id: 'h-cx-courdemanges-1981-oct01',
@@ -376,11 +376,11 @@ const titreDemarchesOctAmodiatairesMod = {
           titreDemarcheId: 'h-cx-courdemanges-1981-oct01',
           typeId: 'dpu',
           statutId: 'acc',
-          ordre: 1
-        }
-      ]
-    }
-  ] as ITitreDemarche[]
+          ordre: 1,
+        },
+      ],
+    },
+  ] as ITitreDemarche[],
 }
 
 const titreDemarchesProPointsModPhaseEch = {
@@ -398,12 +398,12 @@ const titreDemarchesProPointsModPhaseEch = {
           typeId: 'dpu',
           statutId: 'acc',
           ordre: 1,
-          points: [1, 2, 3]
-        }
+          points: [1, 2, 3],
+        },
       ],
       phase: {
-        statutId: 'ech'
-      }
+        statutId: 'ech',
+      },
     },
     {
       id: 'h-cx-courdemanges-1981-oct01',
@@ -416,11 +416,11 @@ const titreDemarchesProPointsModPhaseEch = {
           titreDemarcheId: 'h-cx-courdemanges-1981-oct01',
           typeId: 'dpu',
           statutId: 'acc',
-          ordre: 1
-        }
-      ]
-    }
-  ] as ITitreDemarche[]
+          ordre: 1,
+        },
+      ],
+    },
+  ] as ITitreDemarche[],
 }
 
 const titreDemarchesProPointsModPhaseVal = {
@@ -438,12 +438,12 @@ const titreDemarchesProPointsModPhaseVal = {
           date: '1981-01-01',
           typeId: ETAPES_TYPES.publicationDeDecisionAuJORF,
           statutId: ETAPES_STATUTS.ACCEPTE,
-          ordre: 1
-        }
+          ordre: 1,
+        },
       ] as ITitreEtape[],
       phase: {
-        phaseStatutId: 'val'
-      }
+        phaseStatutId: 'val',
+      },
     },
     {
       id: 'h-cx-courdemanges-1981-oct01',
@@ -456,11 +456,11 @@ const titreDemarchesProPointsModPhaseVal = {
           titreDemarcheId: 'h-cx-courdemanges-1981-oct01',
           typeId: 'dpu',
           statutId: 'acc',
-          ordre: 1
-        }
-      ]
-    }
-  ] as ITitreDemarche[]
+          ordre: 1,
+        },
+      ],
+    },
+  ] as ITitreDemarche[],
 }
 
 const titreDemarchesMutPointsMod = {
@@ -478,12 +478,12 @@ const titreDemarchesMutPointsMod = {
           typeId: 'dpu',
           statutId: 'acc',
           ordre: 1,
-          points: [1, 2, 3]
-        }
+          points: [1, 2, 3],
+        },
       ],
       phase: {
-        statutId: 'val'
-      }
+        statutId: 'val',
+      },
     },
     {
       id: 'h-cx-courdemanges-1981-oct01',
@@ -496,11 +496,11 @@ const titreDemarchesMutPointsMod = {
           titreDemarcheId: 'h-cx-courdemanges-1981-oct01',
           typeId: 'dpu',
           statutId: 'acc',
-          ordre: 1
-        }
-      ]
-    }
-  ] as ITitreDemarche[]
+          ordre: 1,
+        },
+      ],
+    },
+  ] as ITitreDemarche[],
 }
 
 const titreDemarchesProModPhaseEch = {
@@ -526,12 +526,12 @@ const titreDemarchesProModPhaseEch = {
           communes: ['paris'],
           titulaires: ['titulaire2'],
           amodiataires: ['amodiataire2'],
-          administrations: ['administration2']
-        } as unknown as ITitreEtape
+          administrations: ['administration2'],
+        } as unknown as ITitreEtape,
       ],
       phase: {
-        phaseStatutId: 'ech'
-      }
+        phaseStatutId: 'ech',
+      },
     },
     {
       id: newDemarcheId('h-cx-courdemanges-1981-oct01'),
@@ -552,11 +552,11 @@ const titreDemarchesProModPhaseEch = {
           communes: ['tours'],
           titulaires: ['titulaire1'],
           amodiataires: ['amodiataire1'],
-          administrations: ['administration1']
-        }
-      ]
-    }
-  ] as ITitreDemarche[]
+          administrations: ['administration1'],
+        },
+      ],
+    },
+  ] as ITitreDemarche[],
 }
 
 export {
@@ -573,5 +573,5 @@ export {
   titreDemarchesProPointsModPhaseEch,
   titreDemarchesProPointsModPhaseVal,
   titreDemarchesMutPointsMod,
-  titreDemarchesProModPhaseEch
+  titreDemarchesProModPhaseEch,
 }
diff --git a/packages/api/src/business/rules/__mocks__/titre-statut-id-find-titres.ts b/packages/api/src/business/rules/__mocks__/titre-statut-id-find-titres.ts
index 3be30af25..6d08e0fe8 100644
--- a/packages/api/src/business/rules/__mocks__/titre-statut-id-find-titres.ts
+++ b/packages/api/src/business/rules/__mocks__/titre-statut-id-find-titres.ts
@@ -2,9 +2,7 @@ import { ITitreDemarche } from '../../../types.js'
 import { newDemarcheId } from '../../../database/models/_format/id-create.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 
-const titreDemarchesIndefini: ITitreDemarche[] = [
-  { statutId: 'ind', type: { id: 'oct' } }
-] as ITitreDemarche[]
+const titreDemarchesIndefini: ITitreDemarche[] = [{ statutId: 'ind', type: { id: 'oct' } }] as ITitreDemarche[]
 
 const titreDemarchesValide: ITitreDemarche[] = [
   {
@@ -23,10 +21,10 @@ const titreDemarchesValide: ITitreDemarche[] = [
         ordre: 1,
         date: toCaminoDate('2014-04-01'),
         dateDebut: null,
-        dateFin: toCaminoDate('3014-04-01')
-      }
-    ]
-  }
+        dateFin: toCaminoDate('3014-04-01'),
+      },
+    ],
+  },
 ]
 
 const titreDemarchesEchu: ITitreDemarche[] = [
@@ -46,10 +44,10 @@ const titreDemarchesEchu: ITitreDemarche[] = [
         ordre: 1,
         date: toCaminoDate('1014-04-01'),
         dateDebut: null,
-        dateFin: toCaminoDate('2014-04-01')
-      }
-    ]
-  }
+        dateFin: toCaminoDate('2014-04-01'),
+      },
+    ],
+  },
 ]
 
 const titreDemarchesOctroiInstruction: ITitreDemarche[] = [
@@ -59,8 +57,8 @@ const titreDemarchesOctroiInstruction: ITitreDemarche[] = [
     type: { id: 'oct', nom: 'unused', ordre: 1, etapesTypes: [] },
     typeId: 'oct',
     statutId: 'ins',
-    ordre: 1
-  }
+    ordre: 1,
+  },
 ]
 
 const titreDemarchesOctroiDepose: ITitreDemarche[] = [
@@ -70,8 +68,8 @@ const titreDemarchesOctroiDepose: ITitreDemarche[] = [
     type: { id: 'oct', nom: 'unused', ordre: 1, etapesTypes: [] },
     typeId: 'oct',
     statutId: 'dep',
-    ordre: 1
-  }
+    ordre: 1,
+  },
 ]
 
 const titreDemarchesOctroiRejete: ITitreDemarche[] = [
@@ -81,8 +79,8 @@ const titreDemarchesOctroiRejete: ITitreDemarche[] = [
     type: { id: 'oct', nom: 'unused', ordre: 1, etapesTypes: [] },
     typeId: 'oct',
     statutId: 'rej',
-    ordre: 1
-  }
+    ordre: 1,
+  },
 ]
 
 const titreDemarchesOctroiClasse: ITitreDemarche[] = [
@@ -92,8 +90,8 @@ const titreDemarchesOctroiClasse: ITitreDemarche[] = [
     type: { id: 'oct', nom: 'unused', ordre: 1, etapesTypes: [] },
     typeId: 'oct',
     statutId: 'cls',
-    ordre: 1
-  }
+    ordre: 1,
+  },
 ]
 
 const titreDemarchesOctroiRetire: ITitreDemarche[] = [
@@ -103,8 +101,8 @@ const titreDemarchesOctroiRetire: ITitreDemarche[] = [
     type: { id: 'oct', nom: 'unused', ordre: 1, etapesTypes: [] },
     typeId: 'oct',
     statutId: 'des',
-    ordre: 1
-  }
+    ordre: 1,
+  },
 ]
 
 const titreDemarchesInstruction: ITitreDemarche[] = [
@@ -114,7 +112,7 @@ const titreDemarchesInstruction: ITitreDemarche[] = [
     type: { id: 'mut', nom: 'unused', ordre: 1, etapesTypes: [] },
     typeId: 'mut',
     statutId: 'ins',
-    ordre: 1
+    ordre: 1,
   },
   {
     id: newDemarcheId('m-pr-saint-pierre-2014-oct01'),
@@ -122,8 +120,8 @@ const titreDemarchesInstruction: ITitreDemarche[] = [
     type: { id: 'oct', nom: 'unused', ordre: 1, etapesTypes: [] },
     typeId: 'oct',
     statutId: 'acc',
-    ordre: 1
-  }
+    ordre: 1,
+  },
 ]
 
 const titrePERDemarchesProlongation: ITitreDemarche[] = [
@@ -140,9 +138,9 @@ const titrePERDemarchesProlongation: ITitreDemarche[] = [
         typeId: 'mfr',
         statutId: 'fai',
         id: 'id',
-        titreDemarcheId: newDemarcheId('m-pr-saint-pierre-2014-pro01')
-      }
-    ]
+        titreDemarcheId: newDemarcheId('m-pr-saint-pierre-2014-pro01'),
+      },
+    ],
   },
   {
     id: newDemarcheId('m-pr-saint-pierre-2014-oct01'),
@@ -160,10 +158,10 @@ const titrePERDemarchesProlongation: ITitreDemarche[] = [
         ordre: 1,
         date: toCaminoDate('1014-04-01'),
         dateDebut: null,
-        dateFin: toCaminoDate('2020-04-01')
-      }
-    ]
-  }
+        dateFin: toCaminoDate('2020-04-01'),
+      },
+    ],
+  },
 ]
 
 export {
@@ -176,5 +174,5 @@ export {
   titreDemarchesOctroiClasse,
   titreDemarchesOctroiRetire,
   titreDemarchesInstruction,
-  titrePERDemarchesProlongation
+  titrePERDemarchesProlongation,
 }
diff --git a/packages/api/src/business/rules/titre-activite-statut-id-find.test.ts b/packages/api/src/business/rules/titre-activite-statut-id-find.test.ts
index 62b61a927..f05796180 100644
--- a/packages/api/src/business/rules/titre-activite-statut-id-find.test.ts
+++ b/packages/api/src/business/rules/titre-activite-statut-id-find.test.ts
@@ -1,37 +1,21 @@
 import { titreActiviteStatutIdFind } from './titre-activite-statut-id-find.js'
 import { describe, expect, test } from 'vitest'
-import {
-  titreActiviteFermee,
-  titreActiviteDeposee,
-  titreActiviteAbsenteDelaiDepasse,
-  titreActiviteEnCoursDelaiNonDepasse
-} from './__mocks__/titre-activite-statut-id-find-activites.js'
+import { titreActiviteFermee, titreActiviteDeposee, titreActiviteAbsenteDelaiDepasse, titreActiviteEnCoursDelaiNonDepasse } from './__mocks__/titre-activite-statut-id-find-activites.js'
 
 describe("statut d'une activité", () => {
   test('une activité dont le statut est “fermé" garde le statut "fermé"', () => {
-    expect(
-      titreActiviteStatutIdFind(titreActiviteFermee, '2020-12-31')
-    ).toEqual(titreActiviteFermee.activiteStatutId)
+    expect(titreActiviteStatutIdFind(titreActiviteFermee, '2020-12-31')).toEqual(titreActiviteFermee.activiteStatutId)
   })
 
   test('une activité dont le statut est “déposé" garde le statut "déposé"', () => {
-    expect(
-      titreActiviteStatutIdFind(titreActiviteDeposee, '2020-12-31')
-    ).toEqual(titreActiviteDeposee.activiteStatutId)
+    expect(titreActiviteStatutIdFind(titreActiviteDeposee, '2020-12-31')).toEqual(titreActiviteDeposee.activiteStatutId)
   })
 
   test('une activité dont statut est "abs" et le délai est dépassé a le statut “fermé', () => {
-    expect(
-      titreActiviteStatutIdFind(titreActiviteAbsenteDelaiDepasse, '2020-12-31')
-    ).toEqual('fer')
+    expect(titreActiviteStatutIdFind(titreActiviteAbsenteDelaiDepasse, '2020-12-31')).toEqual('fer')
   })
 
   test('une activité dont le statut est "enc" dont le délai n\'est pas dépassé ne change pas de statut', () => {
-    expect(
-      titreActiviteStatutIdFind(
-        titreActiviteEnCoursDelaiNonDepasse,
-        '2020-12-31'
-      )
-    ).toEqual(titreActiviteEnCoursDelaiNonDepasse.activiteStatutId)
+    expect(titreActiviteStatutIdFind(titreActiviteEnCoursDelaiNonDepasse, '2020-12-31')).toEqual(titreActiviteEnCoursDelaiNonDepasse.activiteStatutId)
   })
 })
diff --git a/packages/api/src/business/rules/titre-activite-statut-id-find.ts b/packages/api/src/business/rules/titre-activite-statut-id-find.ts
index 0405e4344..301a10e99 100644
--- a/packages/api/src/business/rules/titre-activite-statut-id-find.ts
+++ b/packages/api/src/business/rules/titre-activite-statut-id-find.ts
@@ -1,8 +1,5 @@
 import { ITitreActivite } from '../../types.js'
-import {
-  ACTIVITES_STATUTS_IDS,
-  ActivitesStatutId
-} from 'camino-common/src/static/activitesStatuts.js'
+import { ACTIVITES_STATUTS_IDS, ActivitesStatutId } from 'camino-common/src/static/activitesStatuts.js'
 import { dateAddMonths } from 'camino-common/src/date.js'
 
 /**
@@ -12,21 +9,11 @@ import { dateAddMonths } from 'camino-common/src/date.js'
  * @returns statut d'activité
  */
 
-export const titreActiviteStatutIdFind = (
-  titreActivite: ITitreActivite,
-  aujourdhui: string
-): ActivitesStatutId => {
+export const titreActiviteStatutIdFind = (titreActivite: ITitreActivite, aujourdhui: string): ActivitesStatutId => {
   // si l'activité a un statut différent de "déposé" ou "fermé"
 
-  if (
-    ![ACTIVITES_STATUTS_IDS.DEPOSE, ACTIVITES_STATUTS_IDS.CLOTURE].includes(
-      titreActivite.activiteStatutId
-    )
-  ) {
-    const dateDelai = dateAddMonths(
-      titreActivite.date,
-      titreActivite.type!.delaiMois
-    )
+  if (![ACTIVITES_STATUTS_IDS.DEPOSE, ACTIVITES_STATUTS_IDS.CLOTURE].includes(titreActivite.activiteStatutId)) {
+    const dateDelai = dateAddMonths(titreActivite.date, titreActivite.type!.delaiMois)
 
     // si le délai de remplissage est dépassé
     // passe le statut de l'activité à "fermé"
diff --git a/packages/api/src/business/rules/titre-activites-build.test.ts b/packages/api/src/business/rules/titre-activites-build.test.ts
index 2151ef8cd..279c2be6b 100644
--- a/packages/api/src/business/rules/titre-activites-build.test.ts
+++ b/packages/api/src/business/rules/titre-activites-build.test.ts
@@ -2,176 +2,101 @@ import { IActiviteType, ITitreActivite, ITitreDemarche } from '../../types.js'
 
 import { titreActivitesBuild } from './titre-activites-build.js'
 
-import {
-  titreActivitesGra,
-  titreActivitesGrp,
-  activiteTypeGra,
-  activiteTypeGrp,
-  titreDemarches
-} from './__mocks__/titre-activites-build-titres.js'
+import { titreActivitesGra, titreActivitesGrp, activiteTypeGra, activiteTypeGrp, titreDemarches } from './__mocks__/titre-activites-build-titres.js'
 import { describe, expect, test } from 'vitest'
 describe("construction des activités d'un titre", () => {
   const aujourdhui = '2021-01-01'
 
   test("ne crée pas d'activité pour un titre qui n'a pas de phase de démarches", () => {
-    const titreActivites1 = titreActivitesBuild(
-      activiteTypeGrp,
-      [2020],
-      aujourdhui,
-      'titre-id',
-      'pxm',
-      undefined
-    )
+    const titreActivites1 = titreActivitesBuild(activiteTypeGrp, [2020], aujourdhui, 'titre-id', 'pxm', undefined)
 
     expect(titreActivites1.length).toEqual(0)
 
-    const titreActivites2 = titreActivitesBuild(
-      activiteTypeGrp,
-      [2020],
-      aujourdhui,
-      'titre-id',
-      'pxm',
-      []
-    )
+    const titreActivites2 = titreActivitesBuild(activiteTypeGrp, [2020], aujourdhui, 'titre-id', 'pxm', [])
 
     expect(titreActivites2.length).toEqual(0)
 
-    const titreActivites3 = titreActivitesBuild(
-      activiteTypeGrp,
-      [2020],
-      aujourdhui,
-      'titre-id',
-      'pxm',
-      [{ id: 'demarche-id' } as unknown as ITitreDemarche]
-    )
+    const titreActivites3 = titreActivitesBuild(activiteTypeGrp, [2020], aujourdhui, 'titre-id', 'pxm', [{ id: 'demarche-id' } as unknown as ITitreDemarche])
 
     expect(titreActivites3.length).toEqual(0)
   })
 
   test('ne crée pas une activité si elle existe déjà', () => {
-    const res = titreActivitesBuild(
-      activiteTypeGra,
-      [2018],
-      aujourdhui,
-      'titre-id',
-      'pxm',
-      [{ id: 'demarche-id', phase: {} } as unknown as ITitreDemarche],
-      [{ typeId: 'gra', annee: 2018, periodeId: 1 }] as ITitreActivite[]
-    )
+    const res = titreActivitesBuild(activiteTypeGra, [2018], aujourdhui, 'titre-id', 'pxm', [{ id: 'demarche-id', phase: {} } as unknown as ITitreDemarche], [
+      { typeId: 'gra', annee: 2018, periodeId: 1 },
+    ] as ITitreActivite[])
 
     expect(res.length).toEqual(0)
   })
 
   test("ne crée pas une activité si sa date de fin n'a pas eu lieu", () => {
-    const res = titreActivitesBuild(
-      activiteTypeGrp,
-      [2021],
-      aujourdhui,
-      'titre-id',
-      'pxm',
-      [{ id: 'demarche-id', phase: {} } as unknown as ITitreDemarche]
-    )
+    const res = titreActivitesBuild(activiteTypeGrp, [2021], aujourdhui, 'titre-id', 'pxm', [{ id: 'demarche-id', phase: {} } as unknown as ITitreDemarche])
 
     expect(res.length).toEqual(0)
   })
 
   test('crée des activités', () => {
-    const titreActivitesA = titreActivitesBuild(
-      activiteTypeGra,
-      [2018],
-      aujourdhui,
-      'titre-id',
-      'pxm',
-      titreDemarches
-    )
+    const titreActivitesA = titreActivitesBuild(activiteTypeGra, [2018], aujourdhui, 'titre-id', 'pxm', titreDemarches)
 
     expect(titreActivitesA).toEqual(titreActivitesGra)
 
-    const titreActivitesB = titreActivitesBuild(
-      activiteTypeGrp,
-      [2018],
-      aujourdhui,
-      'titre-id',
-      'pxm',
-      [
-        {
-          id: 'demarche-id',
-          phase: { dateDebut: '2018-01-01', dateFin: '2018-12-31' },
-          type: {}
-        } as ITitreDemarche
-      ]
-    )
+    const titreActivitesB = titreActivitesBuild(activiteTypeGrp, [2018], aujourdhui, 'titre-id', 'pxm', [
+      {
+        id: 'demarche-id',
+        phase: { dateDebut: '2018-01-01', dateFin: '2018-12-31' },
+        type: {},
+      } as ITitreDemarche,
+    ])
 
     expect(titreActivitesB).toEqual(titreActivitesGrp)
   })
 
   test("ne crée pas d'activité si le titre n'est pas valide pour la période", () => {
-    const titreActivites = titreActivitesBuild(
-      activiteTypeGrp,
-      [2018],
-      aujourdhui,
-      'titre-id',
-      'pxm',
-      [{ id: 'demarche-id', phase: {}, type: {} } as unknown as ITitreDemarche]
-    )
+    const titreActivites = titreActivitesBuild(activiteTypeGrp, [2018], aujourdhui, 'titre-id', 'pxm', [{ id: 'demarche-id', phase: {}, type: {} } as unknown as ITitreDemarche])
 
     expect(titreActivites.length).toEqual(0)
   })
 
   test("ne crée pas d'activités si les sections sont vides", () => {
-    const titreActivitesA = titreActivitesBuild(
-      activiteTypeGra,
-      [2018],
-      aujourdhui,
-      'titre-id',
-      'pxm',
-      [
-        {
-          id: 'demarche-id',
-          statutId: 'acc',
-          typeId: 'oct',
-          type: { id: 'oct' },
-          phase: { dateDebut: '2018-01-01', dateFin: '2018-12-31' },
-          etapes: [
-            {
-              id: 'etape-id',
-              date: '2018-01-01',
-              typeId: 'dpu',
-              statutId: 'fai',
-              substances: []
-            }
-          ]
-        } as unknown as ITitreDemarche
-      ]
-    )
+    const titreActivitesA = titreActivitesBuild(activiteTypeGra, [2018], aujourdhui, 'titre-id', 'pxm', [
+      {
+        id: 'demarche-id',
+        statutId: 'acc',
+        typeId: 'oct',
+        type: { id: 'oct' },
+        phase: { dateDebut: '2018-01-01', dateFin: '2018-12-31' },
+        etapes: [
+          {
+            id: 'etape-id',
+            date: '2018-01-01',
+            typeId: 'dpu',
+            statutId: 'fai',
+            substances: [],
+          },
+        ],
+      } as unknown as ITitreDemarche,
+    ])
 
     expect(titreActivitesA).toEqual([])
 
-    const titreActivitesB = titreActivitesBuild(
-      activiteTypeGra,
-      [2018],
-      aujourdhui,
-      'titre-id',
-      'pxm',
-      [
-        {
-          id: 'demarche-id',
-          statutId: 'acc',
-          typeId: 'oct',
-          type: { id: 'oct' },
-          phase: { dateDebut: '2018-01-01', dateFin: '2018-12-31' },
-          etapes: [
-            {
-              id: 'etape-id',
-              date: '2018-01-01',
-              typeId: 'dpu',
-              statutId: 'fai',
-              substances: null
-            }
-          ]
-        } as unknown as ITitreDemarche
-      ]
-    )
+    const titreActivitesB = titreActivitesBuild(activiteTypeGra, [2018], aujourdhui, 'titre-id', 'pxm', [
+      {
+        id: 'demarche-id',
+        statutId: 'acc',
+        typeId: 'oct',
+        type: { id: 'oct' },
+        phase: { dateDebut: '2018-01-01', dateFin: '2018-12-31' },
+        etapes: [
+          {
+            id: 'etape-id',
+            date: '2018-01-01',
+            typeId: 'dpu',
+            statutId: 'fai',
+            substances: null,
+          },
+        ],
+      } as unknown as ITitreDemarche,
+    ])
 
     expect(titreActivitesB).toEqual([])
 
@@ -179,7 +104,7 @@ describe("construction des activités d'un titre", () => {
       {
         id: 'gra',
         frequenceId: 'ann',
-        sections: [{ id: 'renseignements' }]
+        sections: [{ id: 'renseignements' }],
       } as IActiviteType,
       [2018],
       aujourdhui,
@@ -191,8 +116,8 @@ describe("construction des activités d'un titre", () => {
           activiteStatutId: 'acc',
           typeId: 'oct',
           type: {},
-          phase: { dateDebut: '2018-01-01', dateFin: '2018-12-31' }
-        } as unknown as ITitreDemarche
+          phase: { dateDebut: '2018-01-01', dateFin: '2018-12-31' },
+        } as unknown as ITitreDemarche,
       ]
     )
 
diff --git a/packages/api/src/business/rules/titre-activites-build.ts b/packages/api/src/business/rules/titre-activites-build.ts
index 1f0185783..462a22269 100644
--- a/packages/api/src/business/rules/titre-activites-build.ts
+++ b/packages/api/src/business/rules/titre-activites-build.ts
@@ -1,57 +1,31 @@
-import {
-  IActiviteType,
-  ITitreActivite,
-  ISection,
-  ISectionElement,
-  ITitreDemarche
-} from '../../types.js'
+import { IActiviteType, ITitreActivite, ISection, ISectionElement, ITitreDemarche } from '../../types.js'
 
 import { titreEtapePropFind } from './titre-etape-prop-find.js'
 import { titreActiviteValideCheck } from '../utils/titre-activite-valide-check.js'
-import {
-  SubstanceFiscale,
-  substancesFiscalesBySubstanceLegale
-} from 'camino-common/src/static/substancesFiscales.js'
+import { SubstanceFiscale, substancesFiscalesBySubstanceLegale } from 'camino-common/src/static/substancesFiscales.js'
 import { UNITES, Unites } from 'camino-common/src/static/unites.js'
 import { sortedDevises } from 'camino-common/src/static/devise.js'
 import { exhaustiveCheck } from '../../tools/exhaustive-type-check.js'
 import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
-import {
-  FrequenceId,
-  Frequences,
-  getNumberOfMonths
-} from 'camino-common/src/static/frequence.js'
+import { FrequenceId, Frequences, getNumberOfMonths } from 'camino-common/src/static/frequence.js'
 import { SubstanceLegaleId } from 'camino-common/src/static/substancesLegales.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
 
-const substancesFiscalesFind = (
-  substances: SubstanceLegaleId[]
-): SubstanceFiscale[] =>
-  substances
-    .filter(s => !!s)
-    .flatMap(substanceId => substancesFiscalesBySubstanceLegale(substanceId))
+const substancesFiscalesFind = (substances: SubstanceLegaleId[]): SubstanceFiscale[] => substances.filter(s => !!s).flatMap(substanceId => substancesFiscalesBySubstanceLegale(substanceId))
 
-const titreActiviteSectionElementsFormat = (
-  elements: ISectionElement[],
-  periodeId: number,
-  date: string
-) =>
+const titreActiviteSectionElementsFormat = (elements: ISectionElement[], periodeId: number, date: string) =>
   elements.reduce((newElements: ISectionElement[], e) => {
     // ne conserve que les éléments dont
     // - la période,
     // - la date de début et la date de fin
     // correspondent à l'élément
-    if (
-      (!e.periodesIds || e.periodesIds.find(id => periodeId === id)) &&
-      (!e.dateFin || e.dateFin >= date) &&
-      (!e.dateDebut || e.dateDebut < date)
-    ) {
+    if ((!e.periodesIds || e.periodesIds.find(id => periodeId === id)) && (!e.dateFin || e.dateFin >= date) && (!e.dateDebut || e.dateDebut < date)) {
       const element = {
         id: e.id,
         nom: e.nom,
         type: e.type,
-        description: e.description
+        description: e.description,
       } as ISectionElement
 
       if (e.optionnel) {
@@ -89,29 +63,14 @@ const titreActiviteSectionElementsFormat = (
  * @param titreTypeId - le type id du titre
  */
 
-export const titreActiviteSectionsBuild = (
-  activiteTypeId: string,
-  sections: ISection[],
-  periodeId: number,
-  date: string,
-  titreDemarches: ITitreDemarche[],
-  titreTypeId: TitreTypeId
-) => {
+export const titreActiviteSectionsBuild = (activiteTypeId: string, sections: ISection[], periodeId: number, date: string, titreDemarches: ITitreDemarche[], titreTypeId: TitreTypeId) => {
   return sections.reduce((newSections: ISection[], s) => {
     let elements = [] as ISectionElement[]
 
     if (s.elements) {
       elements = titreActiviteSectionElementsFormat(s.elements, periodeId, date)
-    } else if (
-      ['gra', 'grx'].includes(activiteTypeId) &&
-      s.id === 'substancesFiscales'
-    ) {
-      const substances = titreEtapePropFind(
-        'substances',
-        date,
-        titreDemarches,
-        titreTypeId
-      ) as SubstanceLegaleId[] | null
+    } else if (['gra', 'grx'].includes(activiteTypeId) && s.id === 'substancesFiscales') {
+      const substances = titreEtapePropFind('substances', date, titreDemarches, titreTypeId) as SubstanceLegaleId[] | null
 
       if (substances?.length) {
         const substancesFiscales = substancesFiscalesFind(substances)
@@ -123,7 +82,7 @@ export const titreActiviteSectionsBuild = (
             nom: `${sf.nom}`,
             type: 'number',
             description: `<b>${unite.symbole} (${unite.nom})</b> ${sf.description}`,
-            uniteId: sf.uniteId
+            uniteId: sf.uniteId,
           }
 
           if (unite.referenceUniteRatio) {
@@ -138,7 +97,7 @@ export const titreActiviteSectionsBuild = (
     if (elements.length) {
       const section = {
         id: s.id,
-        elements
+        elements,
       } as ISection
 
       if (s.nom) {
@@ -152,19 +111,8 @@ export const titreActiviteSectionsBuild = (
   }, [])
 }
 
-const titreActiviteFind = (
-  activiteTypeId: string,
-  annee: number,
-  periodeId: number,
-  titreActivites?: ITitreActivite[] | null
-) =>
-  !!titreActivites?.length &&
-  titreActivites.find(
-    a =>
-      a.typeId === activiteTypeId &&
-      a.annee === annee &&
-      a.periodeId === periodeId
-  )
+const titreActiviteFind = (activiteTypeId: string, annee: number, periodeId: number, titreActivites?: ITitreActivite[] | null) =>
+  !!titreActivites?.length && titreActivites.find(a => a.typeId === activiteTypeId && a.annee === annee && a.periodeId === periodeId)
 
 /**
  * Construit une activité (si elle n'existe pas déjà)
@@ -198,30 +146,13 @@ const titreActiviteBuild = (
 
   // la date de fin de l'activité est le premier jour du mois
   // du début de la période suivante, en fonction de la fréquence
-  const date = toCaminoDate(
-    new Date(annee, periodeId * getNumberOfMonths(frequenceId), 1)
-  )
+  const date = toCaminoDate(new Date(annee, periodeId * getNumberOfMonths(frequenceId), 1))
 
-  const titreActiviteIsValide = titreActiviteValideCheck(
-    date,
-    aujourdhui,
-    periodeId,
-    annee,
-    getNumberOfMonths(frequenceId),
-    titreDemarches,
-    titreTypeId
-  )
+  const titreActiviteIsValide = titreActiviteValideCheck(date, aujourdhui, periodeId, annee, getNumberOfMonths(frequenceId), titreDemarches, titreTypeId)
 
   if (!titreActiviteIsValide) return null
 
-  const sections = titreActiviteSectionsBuild(
-    typeId,
-    activiteTypeSections,
-    periodeId,
-    date,
-    titreDemarches,
-    titreTypeId
-  )
+  const sections = titreActiviteSectionsBuild(typeId, activiteTypeSections, periodeId, date, titreDemarches, titreTypeId)
 
   if (!sections.length) return null
 
@@ -232,7 +163,7 @@ const titreActiviteBuild = (
     activiteStatutId: ACTIVITES_STATUTS_IDS.ABSENT,
     periodeId,
     annee,
-    sections
+    sections,
   } as ITitreActivite
 }
 
@@ -266,18 +197,7 @@ export const titreActivitesBuild = (
   return annees.reduce(
     (titreActivitesNew: ITitreActivite[], annee) =>
       periodes.reduce((acc: ITitreActivite[], _, i) => {
-        const titreActivite = titreActiviteBuild(
-          activiteType.id,
-          i + 1,
-          activiteType.sections,
-          annee,
-          activiteType.frequenceId,
-          aujourdhui,
-          titreId,
-          titreDemarches,
-          titreTypeId,
-          titreActivites
-        )
+        const titreActivite = titreActiviteBuild(activiteType.id, i + 1, activiteType.sections, annee, activiteType.frequenceId, aujourdhui, titreId, titreDemarches, titreTypeId, titreActivites)
 
         if (titreActivite) {
           acc.push(titreActivite)
diff --git a/packages/api/src/business/rules/titre-date-debut-find.test.ts b/packages/api/src/business/rules/titre-date-debut-find.test.ts
index 04e5fd3af..26afbd635 100644
--- a/packages/api/src/business/rules/titre-date-debut-find.test.ts
+++ b/packages/api/src/business/rules/titre-date-debut-find.test.ts
@@ -8,7 +8,7 @@ import {
   titreDemarchesDexDateDebut,
   titreDemarchesSansOctroi,
   titreDemarchesSansDateDebut,
-  titreDemarchesDateUndefined
+  titreDemarchesDateUndefined,
 } from './__mocks__/titre-date-debut-find-demarches.js'
 import { describe, expect, test } from 'vitest'
 describe("date de début d'une démarche", () => {
@@ -25,15 +25,11 @@ describe("date de début d'une démarche", () => {
   })
 
   test('retourne la date de début de la première étape de rpu dont le statut est acceptée', () => {
-    expect(titreDateDebutFind(titreDemarchesRpuDateDebut, 'prm')).toBe(
-      '1988-03-15'
-    )
+    expect(titreDateDebutFind(titreDemarchesRpuDateDebut, 'prm')).toBe('1988-03-15')
   })
 
   test("retourne la date de début de la première étape de dpu de la première démarche d'octroi dont le statut est acceptée", () => {
-    expect(titreDateDebutFind(titreDemarchesDexDateDebut, 'axm')).toBe(
-      '1988-03-15'
-    )
+    expect(titreDateDebutFind(titreDemarchesDexDateDebut, 'axm')).toBe('1988-03-15')
   })
 
   test("retourne null si il n'y a pas de démarche d'octroi", () => {
diff --git a/packages/api/src/business/rules/titre-date-debut-find.ts b/packages/api/src/business/rules/titre-date-debut-find.ts
index aaeb54a3a..e8d3e0c31 100644
--- a/packages/api/src/business/rules/titre-date-debut-find.ts
+++ b/packages/api/src/business/rules/titre-date-debut-find.ts
@@ -1,26 +1,14 @@
 import { ITitreDemarche } from '../../types.js'
 
 import titreDemarchesSortAsc from '../utils/titre-elements-sort-asc.js'
-import {
-  titreEtapesSortDescByOrdre,
-  titreEtapesSortAscByOrdre
-} from '../utils/titre-etapes-sort.js'
+import { titreEtapesSortDescByOrdre, titreEtapesSortAscByOrdre } from '../utils/titre-etapes-sort.js'
 import { titreEtapePublicationCheck } from './titre-etape-publication-check.js'
 import { isDemarcheTypeOctroi } from 'camino-common/src/static/demarchesTypes.js'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
 
-const titreDemarcheDateDebutFind = (
-  titreDemarche: ITitreDemarche,
-  titreTypeId: TitreTypeId
-) => {
+const titreDemarcheDateDebutFind = (titreDemarche: ITitreDemarche, titreTypeId: TitreTypeId) => {
   // retourne la dernière étape de publication si celle-ci possède une date de début
-  const etapePublicationHasDateDebut = titreEtapesSortDescByOrdre(
-    titreDemarche.etapes!
-  ).find(
-    titreEtape =>
-      titreEtapePublicationCheck(titreEtape.typeId, titreTypeId) &&
-      titreEtape.dateDebut
-  )
+  const etapePublicationHasDateDebut = titreEtapesSortDescByOrdre(titreDemarche.etapes!).find(titreEtape => titreEtapePublicationCheck(titreEtape.typeId, titreTypeId) && titreEtape.dateDebut)
 
   // si cette démarche a une étape de publication qui possède une date de début
   if (etapePublicationHasDateDebut) {
@@ -29,9 +17,7 @@ const titreDemarcheDateDebutFind = (
   }
 
   // retourne la première étape de publication de la démarche
-  const titreEtapePublicationFirst = titreEtapesSortAscByOrdre(
-    titreDemarche.etapes!
-  ).find(te => titreEtapePublicationCheck(te.typeId, titreTypeId))
+  const titreEtapePublicationFirst = titreEtapesSortAscByOrdre(titreDemarche.etapes!).find(te => titreEtapePublicationCheck(te.typeId, titreTypeId))
 
   // si la démarche n'a pas d'étape de publication
   if (!titreEtapePublicationFirst) {
@@ -48,19 +34,10 @@ const titreDemarcheDateDebutFind = (
  * @param titreTypeId - id du type du titre
  */
 
-export const titreDateDebutFind = (
-  titreDemarches: ITitreDemarche[],
-  titreTypeId: TitreTypeId
-) => {
+export const titreDateDebutFind = (titreDemarches: ITitreDemarche[], titreTypeId: TitreTypeId) => {
   // la première démarche d'octroi dont le statut est acceptée ou terminée
-  const titreDemarchesSorted = titreDemarchesSortAsc(
-    titreDemarches
-  ) as ITitreDemarche[]
-  const titreDemarche = titreDemarchesSorted.find(
-    titreDemarche =>
-      ['acc', 'ter'].includes(titreDemarche.statutId!) &&
-      isDemarcheTypeOctroi(titreDemarche.typeId)
-  )
+  const titreDemarchesSorted = titreDemarchesSortAsc(titreDemarches) as ITitreDemarche[]
+  const titreDemarche = titreDemarchesSorted.find(titreDemarche => ['acc', 'ter'].includes(titreDemarche.statutId!) && isDemarcheTypeOctroi(titreDemarche.typeId))
 
   if (!titreDemarche) return null
 
diff --git a/packages/api/src/business/rules/titre-date-demande-find.test.ts b/packages/api/src/business/rules/titre-date-demande-find.test.ts
index a5473162b..dfcb8c2bd 100644
--- a/packages/api/src/business/rules/titre-date-demande-find.test.ts
+++ b/packages/api/src/business/rules/titre-date-demande-find.test.ts
@@ -1,10 +1,6 @@
 import { titreDateDemandeFind } from './titre-date-demande-find.js'
 
-import {
-  titreDemarcheOctEtapeMen,
-  titreDemarcheOctSansEtapes,
-  titreDemarcheOctSansEtapeMen
-} from './__mocks__/titre-date-demande-find-demarches.js'
+import { titreDemarcheOctEtapeMen, titreDemarcheOctSansEtapes, titreDemarcheOctSansEtapeMen } from './__mocks__/titre-date-demande-find-demarches.js'
 import { describe, expect, test } from 'vitest'
 describe("cherche la date de demande initiale d'un titre", () => {
   test("retourne null si le titre n'a pas de démarches", () => {
diff --git a/packages/api/src/business/rules/titre-date-demande-find.ts b/packages/api/src/business/rules/titre-date-demande-find.ts
index ef5be847b..1018b395a 100644
--- a/packages/api/src/business/rules/titre-date-demande-find.ts
+++ b/packages/api/src/business/rules/titre-date-demande-find.ts
@@ -7,12 +7,8 @@ import { isDemarcheTypeOctroi } from 'camino-common/src/static/demarchesTypes.js
 const titreDateDemandeFind = (titreDemarches: ITitreDemarche[]) => {
   // trouve la démarche génératrice du titre
   // - première démarche d'octroi ou mutation partielle
-  const titreDemarchesSorted = titreDemarchesSortAsc(
-    titreDemarches
-  ) as ITitreDemarche[]
-  const titreDemarche = titreDemarchesSorted.find(titreDemarche =>
-    isDemarcheTypeOctroi(titreDemarche.typeId)
-  )
+  const titreDemarchesSorted = titreDemarchesSortAsc(titreDemarches) as ITitreDemarche[]
+  const titreDemarche = titreDemarchesSorted.find(titreDemarche => isDemarcheTypeOctroi(titreDemarche.typeId))
 
   // si
   // - il n'y a pas de démarche génératrice
@@ -24,9 +20,7 @@ const titreDateDemandeFind = (titreDemarches: ITitreDemarche[]) => {
   // - la demande déposée
   // - ou l'enregistrement de la demande (pour les anciennes ARM)
   const titreEtapesSorted = titreEtapesSortAscByOrdre(titreDemarche.etapes!)
-  const titreEtape = titreEtapesSorted.find(
-    te => te.typeId === 'mdp' || te.typeId === 'men'
-  )
+  const titreEtape = titreEtapesSorted.find(te => te.typeId === 'mdp' || te.typeId === 'men')
 
   // si
   // - il n'y a pas d'étape de dépôt ou d'enregistrement de la demande
diff --git a/packages/api/src/business/rules/titre-date-fin-find.test.ts b/packages/api/src/business/rules/titre-date-fin-find.test.ts
index 292363c34..8e23bf3fa 100644
--- a/packages/api/src/business/rules/titre-date-fin-find.test.ts
+++ b/packages/api/src/business/rules/titre-date-fin-find.test.ts
@@ -1,11 +1,6 @@
 import { titreDateFinFind } from './titre-date-fin-find.js'
 
-import {
-  titreDemarchesProAccOctAcc,
-  titreDemarchesProTerOctAcc,
-  titreDemarchesProRejOctAcc,
-  titreDemarchesProRejOctRej
-} from './__mocks__/titre-date-fin-find-demarches.js'
+import { titreDemarchesProAccOctAcc, titreDemarchesProTerOctAcc, titreDemarchesProRejOctAcc, titreDemarchesProRejOctRej } from './__mocks__/titre-date-fin-find-demarches.js'
 import { describe, expect, test } from 'vitest'
 describe("cherche la date de fin d'une démarche", () => {
   test("la date de fin de validité d'un titre est celle de la dernière démarche dont le statut est acceptée", () => {
diff --git a/packages/api/src/business/rules/titre-date-fin-find.ts b/packages/api/src/business/rules/titre-date-fin-find.ts
index ddcbdaf34..bcc62f3e3 100644
--- a/packages/api/src/business/rules/titre-date-fin-find.ts
+++ b/packages/api/src/business/rules/titre-date-fin-find.ts
@@ -11,6 +11,5 @@ export const titreDateFinFind = (titreDemarches: ITitreDemarche[]) => {
 
   if (!titreDemarche) return null
 
-  return titreDemarcheDateFinAndDureeFind(titreDemarches, titreDemarche.ordre!)
-    .dateFin
+  return titreDemarcheDateFinAndDureeFind(titreDemarches, titreDemarche.ordre!).dateFin
 }
diff --git a/packages/api/src/business/rules/titre-demarche-annulation-date-fin-find.test.ts b/packages/api/src/business/rules/titre-demarche-annulation-date-fin-find.test.ts
index 57023a294..59491a137 100644
--- a/packages/api/src/business/rules/titre-demarche-annulation-date-fin-find.test.ts
+++ b/packages/api/src/business/rules/titre-demarche-annulation-date-fin-find.test.ts
@@ -5,44 +5,34 @@ import { newDemarcheId } from '../../database/models/_format/id-create.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 import { describe, expect, test } from 'vitest'
 describe("date de fin d'une démarche d'annulation", () => {
-  test.each<EtapeTypeId>(['dex', 'dux', 'dim'])(
-    "retourne la date d'une démarche d'annulation si elle n'a pas de date de fin pour une %p",
-    typeId => {
-      const titreDemarcheAnnulationEtapes: ITitreEtape[] = [
-        {
-          id: 'h-cx-courdemanges-1988-ret01-dex01',
-          titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-ret01'),
-          typeId,
-          statutId: 'acc',
-          ordre: 1,
-          date: toCaminoDate('2013-05-21')
-        }
-      ]
-      expect(
-        titreDemarcheAnnulationDateFinFind(titreDemarcheAnnulationEtapes)
-      ).toEqual('2013-05-21')
-    }
-  )
+  test.each<EtapeTypeId>(['dex', 'dux', 'dim'])("retourne la date d'une démarche d'annulation si elle n'a pas de date de fin pour une %p", typeId => {
+    const titreDemarcheAnnulationEtapes: ITitreEtape[] = [
+      {
+        id: 'h-cx-courdemanges-1988-ret01-dex01',
+        titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-ret01'),
+        typeId,
+        statutId: 'acc',
+        ordre: 1,
+        date: toCaminoDate('2013-05-21'),
+      },
+    ]
+    expect(titreDemarcheAnnulationDateFinFind(titreDemarcheAnnulationEtapes)).toEqual('2013-05-21')
+  })
 
-  test.each<EtapeTypeId>(['dex', 'dux', 'dim'])(
-    "retourne la date de fin d'une démarche d'annulation si elle existe pour une %p",
-    typeId => {
-      const titreDemarcheAnnulationEtapesDateFin: ITitreEtape[] = [
-        {
-          id: 'h-cx-courdemanges-1988-ret01-dex01',
-          titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-ret01'),
-          typeId,
-          statutId: 'acc',
-          ordre: 1,
-          date: toCaminoDate('2013-05-21'),
-          dateFin: toCaminoDate('2013-05-25')
-        }
-      ]
-      expect(
-        titreDemarcheAnnulationDateFinFind(titreDemarcheAnnulationEtapesDateFin)
-      ).toEqual('2013-05-25')
-    }
-  )
+  test.each<EtapeTypeId>(['dex', 'dux', 'dim'])("retourne la date de fin d'une démarche d'annulation si elle existe pour une %p", typeId => {
+    const titreDemarcheAnnulationEtapesDateFin: ITitreEtape[] = [
+      {
+        id: 'h-cx-courdemanges-1988-ret01-dex01',
+        titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-ret01'),
+        typeId,
+        statutId: 'acc',
+        ordre: 1,
+        date: toCaminoDate('2013-05-21'),
+        dateFin: toCaminoDate('2013-05-25'),
+      },
+    ]
+    expect(titreDemarcheAnnulationDateFinFind(titreDemarcheAnnulationEtapesDateFin)).toEqual('2013-05-25')
+  })
 
   test("retourne null si l'étape n'a ni date, ni date de fin", () => {
     // TODO 2022-05-10, c'est étrange, on va à l'encontre de typescript ici. Soit le typage est faux, soit le test ne sert à rien
@@ -55,12 +45,10 @@ describe("date de fin d'une démarche d'annulation", () => {
         ordre: 1,
         // eslint-disable-next-line @typescript-eslint/ban-ts-comment
         // @ts-ignore
-        date: null
-      }
+        date: null,
+      },
     ]
-    expect(
-      titreDemarcheAnnulationDateFinFind(titreDemarcheAnnulationEtapesSansDate)
-    ).toBeNull()
+    expect(titreDemarcheAnnulationDateFinFind(titreDemarcheAnnulationEtapesSansDate)).toBeNull()
   })
 
   test("retourne la date de fin d'une ACO si elle existe", () => {
@@ -72,11 +60,9 @@ describe("date de fin d'une démarche d'annulation", () => {
         statutId: 'fai',
         ordre: 1,
         date: toCaminoDate('2013-05-21'),
-        dateFin: toCaminoDate('2013-05-25')
-      }
+        dateFin: toCaminoDate('2013-05-25'),
+      },
     ]
-    expect(
-      titreDemarcheAnnulationDateFinFind(titreDemarcheACOFaitEtapesDateFin)
-    ).toEqual('2013-05-25')
+    expect(titreDemarcheAnnulationDateFinFind(titreDemarcheACOFaitEtapesDateFin)).toEqual('2013-05-25')
   })
 })
diff --git a/packages/api/src/business/rules/titre-demarche-annulation-date-fin-find.ts b/packages/api/src/business/rules/titre-demarche-annulation-date-fin-find.ts
index 07159206b..5f8cd751e 100644
--- a/packages/api/src/business/rules/titre-demarche-annulation-date-fin-find.ts
+++ b/packages/api/src/business/rules/titre-demarche-annulation-date-fin-find.ts
@@ -1,9 +1,6 @@
 import { CaminoDate } from 'camino-common/src/date.js'
 
-import {
-  titreEtapesSortAscByOrdre,
-  titreEtapesSortDescByOrdre
-} from '../utils/titre-etapes-sort.js'
+import { titreEtapesSortAscByOrdre, titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort.js'
 import { TitreEtapePhaseFind } from './titre-demarche-date-fin-duree-find.js'
 
 /**
@@ -12,9 +9,7 @@ import { TitreEtapePhaseFind } from './titre-demarche-date-fin-duree-find.js'
  * @param titreEtapes - les étapes de la démarche d'annulation
  * @returns la date de fin si elle existe
  */
-export const titreDemarcheAnnulationDateFinFind = (
-  titreEtapes: TitreEtapePhaseFind[]
-): CaminoDate | null | undefined => {
+export const titreDemarcheAnnulationDateFinFind = (titreEtapes: TitreEtapePhaseFind[]): CaminoDate | null | undefined => {
   // si l’étape valide l’annulation
   const etapeAnnulationValideCheck = (te: TitreEtapePhaseFind) =>
     // si on a une décision expresse (dex) ou unilatérale (dux) ou implicite (dim)
@@ -23,9 +18,7 @@ export const titreDemarcheAnnulationDateFinFind = (
     (te.typeId === 'aco' && te.statutId === 'fai')
 
   // la dernière étape qui valide l’annulation et qui contient une date de fin
-  const etapeAnnulationHasDateFin = titreEtapesSortDescByOrdre(
-    titreEtapes
-  ).find(te => te.dateFin && etapeAnnulationValideCheck(te))
+  const etapeAnnulationHasDateFin = titreEtapesSortDescByOrdre(titreEtapes).find(te => te.dateFin && etapeAnnulationValideCheck(te))
 
   // si la démarche contient une date de fin
   if (etapeAnnulationHasDateFin) {
@@ -34,9 +27,7 @@ export const titreDemarcheAnnulationDateFinFind = (
 
   // sinon,
   // trouve la première étape qui valide l’annulation
-  const etapeAnnulation = titreEtapesSortAscByOrdre(titreEtapes).find(
-    etapeAnnulationValideCheck
-  )
+  const etapeAnnulation = titreEtapesSortAscByOrdre(titreEtapes).find(etapeAnnulationValideCheck)
 
   // la date de fin est la date de l'étape
   return etapeAnnulation?.date ? etapeAnnulation.date : null
diff --git a/packages/api/src/business/rules/titre-demarche-date-fin-duree-find.test.ts b/packages/api/src/business/rules/titre-demarche-date-fin-duree-find.test.ts
index 2f8ee1039..bffafcebb 100644
--- a/packages/api/src/business/rules/titre-demarche-date-fin-duree-find.test.ts
+++ b/packages/api/src/business/rules/titre-demarche-date-fin-duree-find.test.ts
@@ -15,142 +15,112 @@ import {
   titreDemarchesRenPoints,
   titreDemarchesRenPointsVideDex,
   titreDemarchesRenPointsVideNiDpuNiDex,
-  titreDemarchesOctIhiDureeZero
+  titreDemarchesOctIhiDureeZero,
 } from './__mocks__/titre-demarche-date-fin-duree-find-demarches.js'
 import { describe, expect, test } from 'vitest'
 describe("retourne la date de fin et la durée d'une démarche", () => {
   test("la date de fin d'une démarche d'octroi est celle de la dernière étape dont la date de fin est renseignée", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesOctDateFin, 1)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesOctDateFin, 1)).toEqual({
       dateFin: '2013-03-11',
-      duree: 25 * 12
+      duree: 25 * 12,
     })
   })
 
   test("la date de fin d'une démarche d'octroi est celle de la dernière étape dont la date de début et la durée sont renseignées", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesOctDateDebut, 1)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesOctDateDebut, 1)).toEqual({
       dateFin: '2023-03-11',
-      duree: 10 * 12
+      duree: 10 * 12,
     })
   })
 
   test("la date de fin d'une démarche d'octroi est fixée au 31 décembre 2018 si il n’y ni date de fin ni durée dans la décision", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesOctDureeZero, 1)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesOctDureeZero, 1)).toEqual({
       dateFin: '2018-12-31',
-      duree: 30 * 12 + 9
+      duree: 30 * 12 + 9,
     })
   })
 
   test("la date de fin d'une démarche d'octroi est fixée au 31 décembre 2018 si il n’y ni date de fin ni durée dans l’étape d’informations historiques incomplètes", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesOctIhiDureeZero, 1)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesOctIhiDureeZero, 1)).toEqual({
       dateFin: '2018-12-31',
-      duree: 30 * 12 + 9
+      duree: 30 * 12 + 9,
     })
   })
 
   test("la date de fin d'une démarche d'octroi sans étape de dpu est celle de la dex", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesOctPasDeDpu, 1)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesOctPasDeDpu, 1)).toEqual({
       dateFin: '2013-03-06',
-      duree: 25 * 12
+      duree: 25 * 12,
     })
   })
 
   test("la date de fin d'une démarche d'octroi avec seulement une étape de dpu est celle de la dpu", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesOctDpuFirst, 1)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesOctDpuFirst, 1)).toEqual({
       dateFin: '2013-03-06',
-      duree: 25 * 12
+      duree: 25 * 12,
     })
   })
 
   test("la date de fin d'une démarche d'octroi sans dpu ni dex est indéfinie", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesOctNiDpuNiDex, 1)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesOctNiDpuNiDex, 1)).toEqual({
       dateFin: null,
-      duree: 0
+      duree: 0,
     })
   })
 
   test("la date de fin d'une démarche d'octroi et d'une démarche normale avec une étape avec une durée est prolongée d'autant", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesOctProDuree, 2)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesOctProDuree, 2)).toEqual({
       dateFin: '2035-03-11',
-      duree: 47 * 12
+      duree: 47 * 12,
     })
   })
 
   test("la date de fin d'une démarche d'octroi sans date de fin et d'une démarche normale avec une étape avec une durée est prolongée de 25 ans", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesOctSansDateFinProDuree, 2)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesOctSansDateFinProDuree, 2)).toEqual({
       dateFin: '2068-12-31',
-      duree: 80 * 12 + 9
+      duree: 80 * 12 + 9,
     })
   })
 
   test("la date de fin d'une démarche d'abrogation est celle de l'étape dont la date de fin est renseignée", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesOctRetDateFin, 2)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesOctRetDateFin, 2)).toEqual({
       dateFin: '2200-03-11',
-      duree: 0
+      duree: 0,
     })
   })
 
   test("la date de fin d'une démarche d'abrogation est la date de l'étape dex si aucune date de fin n'est renseignée", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesOctRetDate, 2)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesOctRetDate, 2)).toEqual({
       dateFin: '2013-05-21',
-      duree: 0
+      duree: 0,
     })
   })
 
   test("la date de fin d'une démarche d'abrogation est la date de fin de la démarche suivante si aucune dex n'existe", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesOctRetNoDex, 2)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesOctRetNoDex, 2)).toEqual({
       dateFin: '2013-03-11',
-      duree: 25 * 12
+      duree: 25 * 12,
     })
   })
 
   test("la date de fin d'une démarche de renonciation n'est pas prise en compte si celle-ci possède un périmètre géographique", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesRenPoints, 2)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesRenPoints, 2)).toEqual({
       dateFin: '2013-03-11',
-      duree: 25 * 12
+      duree: 25 * 12,
     })
   })
 
   test("la date de fin d'une démarche de renonciation est la date de l'étape de dex si celle-ci ne possède pas de périmètre géographique", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesRenPointsVideDex, 1)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesRenPointsVideDex, 1)).toEqual({
       dateFin: '1988-06-06',
-      duree: 0
+      duree: 0,
     })
   })
 
   test("la date de fin d'une démarche de renonciation sans étape possédant de périmètre ni dpu est indéfinie", () => {
-    expect(
-      titreDemarcheDateFinAndDureeFind(titreDemarchesRenPointsVideNiDpuNiDex, 1)
-    ).toEqual({
+    expect(titreDemarcheDateFinAndDureeFind(titreDemarchesRenPointsVideNiDpuNiDex, 1)).toEqual({
       dateFin: null,
-      duree: 0
+      duree: 0,
     })
   })
 })
diff --git a/packages/api/src/business/rules/titre-demarche-date-fin-duree-find.ts b/packages/api/src/business/rules/titre-demarche-date-fin-duree-find.ts
index 03e554b2f..cbaf73248 100644
--- a/packages/api/src/business/rules/titre-demarche-date-fin-duree-find.ts
+++ b/packages/api/src/business/rules/titre-demarche-date-fin-duree-find.ts
@@ -1,17 +1,10 @@
 import { ITitreDemarche, ITitreEtape } from '../../types.js'
 
-import {
-  titreEtapesSortAscByOrdre,
-  titreEtapesSortDescByOrdre
-} from '../utils/titre-etapes-sort.js'
+import { titreEtapesSortAscByOrdre, titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort.js'
 
 import { titreDemarcheAnnulationDateFinFind } from './titre-demarche-annulation-date-fin-find.js'
 import { isDemarcheTypeOctroi } from 'camino-common/src/static/demarchesTypes.js'
-import {
-  dateAddMonths,
-  monthsBetween,
-  toCaminoDate
-} from 'camino-common/src/date.js'
+import { dateAddMonths, monthsBetween, toCaminoDate } from 'camino-common/src/date.js'
 
 // entrée
 // - les démarches d'un titre
@@ -19,15 +12,9 @@ import {
 // sortie
 // - la date de fin de la démarche
 // - la durée cumulée depuis la date de fin précédemment enregistré dans la bdd
-const titreDemarcheDateFinAndDureeFind = (
-  titreDemarches: TitreDemarchePhaseFind[],
-  ordre: number
-) =>
+const titreDemarcheDateFinAndDureeFind = (titreDemarches: TitreDemarchePhaseFind[], ordre: number) =>
   titreDemarches.reduce(
-    (
-      { duree, dateFin }: { duree: number; dateFin: string | null | undefined },
-      titreDemarche
-    ) => {
+    ({ duree, dateFin }: { duree: number; dateFin: string | null | undefined }, titreDemarche) => {
       if (!titreDemarche.etapes) return { duree, dateFin }
 
       // si
@@ -35,21 +22,14 @@ const titreDemarcheDateFinAndDureeFind = (
       // - ou la démarche n'a pas un statut acceptée ou terminée
       // - ou l'ordre de la démarche est supérieur à celui donné en paramètre
       // retourne l'accumulateur tel quel
-      if (
-        dateFin ||
-        !['acc', 'ter'].includes(titreDemarche.statutId!) ||
-        titreDemarche.ordre! > ordre
-      ) {
+      if (dateFin || !['acc', 'ter'].includes(titreDemarche.statutId!) || titreDemarche.ordre! > ordre) {
         return { duree, dateFin }
       }
 
       // si
       // - la démarche est un octroi
       if (isDemarcheTypeOctroi(titreDemarche.typeId)) {
-        return titreDemarcheOctroiDateFinAndDureeFind(
-          duree,
-          titreDemarche.etapes
-        )
+        return titreDemarcheOctroiDateFinAndDureeFind(duree, titreDemarche.etapes)
       }
 
       // si
@@ -58,24 +38,17 @@ const titreDemarcheDateFinAndDureeFind = (
       //   - et ce n'est pas une renonciation partielle
       //   (= ne contient pas d'étape avec des infos géo (points)
       // retourne la date de fin d'une démarche d'annulation
-      if (
-        titreDemarche.typeId === 'ret' ||
-        (titreDemarche.typeId === 'ren' &&
-          !titreDemarche.etapes.find(te => te.points?.length))
-      ) {
+      if (titreDemarche.typeId === 'ret' || (titreDemarche.typeId === 'ren' && !titreDemarche.etapes.find(te => te.points?.length))) {
         return {
           duree: 0,
-          dateFin: titreDemarcheAnnulationDateFinFind(titreDemarche.etapes)
+          dateFin: titreDemarcheAnnulationDateFinFind(titreDemarche.etapes),
         }
       }
 
       // sinon
       // trouve soit la date de fin
       // soit la durée d'une démarche
-      return titreDemarcheNormaleDateFinAndDureeFind(
-        duree,
-        titreDemarche.etapes
-      )
+      return titreDemarcheNormaleDateFinAndDureeFind(duree, titreDemarche.etapes)
     },
 
     // l'accumulateur contient initialement
@@ -84,28 +57,11 @@ const titreDemarcheDateFinAndDureeFind = (
     { duree: 0, dateFin: null }
   )
 
-const titreDemarcheOctroiDateDebutFind = (
-  titreEtapes: TitreEtapePhaseFind[]
-) => {
-  const titreEtapesSorted =
-    titreEtapes && titreEtapesSortDescByOrdre(titreEtapes)
+const titreDemarcheOctroiDateDebutFind = (titreEtapes: TitreEtapePhaseFind[]) => {
+  const titreEtapesSorted = titreEtapes && titreEtapesSortDescByOrdre(titreEtapes)
 
   // chercher dans les étapes de publication et décisives s'il y a une date de debut
-  const titreEtapeHasDateDebut = titreEtapesSorted.find(
-    te =>
-      [
-        'dpu',
-        'dup',
-        'rpu',
-        'dex',
-        'dux',
-        'dim',
-        'def',
-        'sco',
-        'aco',
-        'ihi'
-      ].includes(te.typeId) && te.dateDebut
-  )
+  const titreEtapeHasDateDebut = titreEtapesSorted.find(te => ['dpu', 'dup', 'rpu', 'dex', 'dux', 'dim', 'def', 'sco', 'aco', 'ihi'].includes(te.typeId) && te.dateDebut)
 
   if (titreEtapeHasDateDebut) {
     return titreEtapeHasDateDebut.dateDebut!
@@ -113,10 +69,7 @@ const titreDemarcheOctroiDateDebutFind = (
 
   // sinon, la date de fin est calculée
   // en ajoutant la durée cumulée à la date de la première étape de publication
-  const titreEtapeDpuFirst = titreEtapesSortAscByOrdre(titreEtapes).find(
-    titreEtape =>
-      ['dpu', 'dup', 'def', 'sco', 'aco', 'rpu'].includes(titreEtape.typeId)
-  )
+  const titreEtapeDpuFirst = titreEtapesSortAscByOrdre(titreEtapes).find(titreEtape => ['dpu', 'dup', 'def', 'sco', 'aco', 'rpu'].includes(titreEtape.typeId))
 
   if (titreEtapeDpuFirst) {
     return titreEtapeDpuFirst.date
@@ -124,49 +77,25 @@ const titreDemarcheOctroiDateDebutFind = (
 
   // si on ne trouve pas de dpu, la date de fin est calculée
   // en ajoutant la date de la première étape décisive
-  const titreEtapeDexFirst = titreEtapesSortAscByOrdre(titreEtapes).find(
-    titreEtape => ['dex', 'dux', 'ihi'].includes(titreEtape.typeId)
-  )
+  const titreEtapeDexFirst = titreEtapesSortAscByOrdre(titreEtapes).find(titreEtape => ['dex', 'dux', 'ihi'].includes(titreEtape.typeId))
 
   return titreEtapeDexFirst ? titreEtapeDexFirst.date : null
 }
 
-export type TitreEtapePhaseFind = Pick<
-  ITitreEtape,
-  | 'titreDemarcheId'
-  | 'ordre'
-  | 'typeId'
-  | 'dateFin'
-  | 'duree'
-  | 'dateDebut'
-  | 'date'
-  | 'statutId'
-  | 'points'
->
-export type TitreDemarchePhaseFind = Pick<
-  ITitreDemarche,
-  'statutId' | 'ordre' | 'typeId' | 'id'
-> & { etapes?: TitreEtapePhaseFind[] }
+export type TitreEtapePhaseFind = Pick<ITitreEtape, 'titreDemarcheId' | 'ordre' | 'typeId' | 'dateFin' | 'duree' | 'dateDebut' | 'date' | 'statutId' | 'points'>
+export type TitreDemarchePhaseFind = Pick<ITitreDemarche, 'statutId' | 'ordre' | 'typeId' | 'id'> & { etapes?: TitreEtapePhaseFind[] }
 
 // trouve la date de fin et la durée d'une démarche d'octroi
-const titreDemarcheOctroiDateFinAndDureeFind = (
-  dureeAcc: number,
-  titreEtapes: TitreEtapePhaseFind[]
-) => {
+const titreDemarcheOctroiDateFinAndDureeFind = (dureeAcc: number, titreEtapes: TitreEtapePhaseFind[]) => {
   // retourne la durée cumulée et la date de fin
   // de la démarche d'octroi
-  let { duree, dateFin } = titreDemarcheNormaleDateFinAndDureeFind(
-    0,
-    titreEtapes
-  )
+  let { duree, dateFin } = titreDemarcheNormaleDateFinAndDureeFind(0, titreEtapes)
 
   const dateDebut = titreDemarcheOctroiDateDebutFind(titreEtapes)
 
   if (!dateDebut) {
     if (!dateFin) {
-      console.warn(
-        `pas de date de début ni de date de fin pour la démarche ${titreEtapes?.[0].titreDemarcheId}`
-      )
+      console.warn(`pas de date de début ni de date de fin pour la démarche ${titreEtapes?.[0].titreDemarcheId}`)
     }
 
     return { duree: dureeAcc, dateFin }
@@ -178,7 +107,7 @@ const titreDemarcheOctroiDateFinAndDureeFind = (
   if (dateFin) {
     return {
       duree: monthsBetween(dateDebut, dateFin!) + dureeAcc,
-      dateFin: dateAddMonths(dateFin, dureeAcc)
+      dateFin: dateAddMonths(dateFin, dureeAcc),
     }
   }
 
@@ -200,7 +129,7 @@ const titreDemarcheOctroiDateFinAndDureeFind = (
 
   return {
     duree: dureeAcc + duree,
-    dateFin
+    dateFin,
   }
 }
 
@@ -210,23 +139,14 @@ const titreDemarcheOctroiDateFinAndDureeFind = (
 // retourne
 // - dateFin: la date de fin de la démarche si définie, sinon null
 // - duree: la durée cumulée
-const titreDemarcheNormaleDateFinAndDureeFind = (
-  dureeAcc: number,
-  titreEtapes: TitreEtapePhaseFind[]
-) => {
+const titreDemarcheNormaleDateFinAndDureeFind = (dureeAcc: number, titreEtapes: TitreEtapePhaseFind[]) => {
   // la dernière étape
   // - dont le type est décision express (dex)
   //   ou decision de publication au JORF (dpu)
   //   ou publication au recueil des actes administratifs de la préfecture (rpu)
   // - qui possède une date de fin ou durée
   const titreEtapesSorted = titreEtapesSortDescByOrdre(titreEtapes)
-  const titreEtapeHasDateFinOrDuree = titreEtapesSorted.find(
-    ({ typeId, dateFin, duree }) =>
-      ['dpu', 'dup', 'rpu', 'dex', 'dux', 'def', 'sco', 'aco'].includes(
-        typeId
-      ) &&
-      (dateFin || duree)
-  )
+  const titreEtapeHasDateFinOrDuree = titreEtapesSorted.find(({ typeId, dateFin, duree }) => ['dpu', 'dup', 'rpu', 'dex', 'dux', 'def', 'sco', 'aco'].includes(typeId) && (dateFin || duree))
 
   if (!titreEtapeHasDateFinOrDuree) {
     return { dateFin: null, duree: dureeAcc }
@@ -238,7 +158,7 @@ const titreDemarcheNormaleDateFinAndDureeFind = (
   // ajoute la durée calculée à la durée cumulée
   return {
     duree: duree ? duree + dureeAcc : dureeAcc,
-    dateFin: dateFin ? dateAddMonths(dateFin, dureeAcc) : null
+    dateFin: dateFin ? dateAddMonths(dateFin, dureeAcc) : null,
   }
 }
 
diff --git a/packages/api/src/business/rules/titre-demarche-depot-demande-date-find.ts b/packages/api/src/business/rules/titre-demarche-depot-demande-date-find.ts
index 1c8e4320f..4288fbdc3 100644
--- a/packages/api/src/business/rules/titre-demarche-depot-demande-date-find.ts
+++ b/packages/api/src/business/rules/titre-demarche-depot-demande-date-find.ts
@@ -5,9 +5,7 @@ import { ITitreEtape } from '../../types.js'
 // sinon
 // retourne la date de la première étape
 
-export const titreDemarcheDepotDemandeDateFind = (
-  titreEtapes: Pick<ITitreEtape, 'date' | 'typeId'>[] | undefined
-): undefined | string => {
+export const titreDemarcheDepotDemandeDateFind = (titreEtapes: Pick<ITitreEtape, 'date' | 'typeId'>[] | undefined): undefined | string => {
   if (!titreEtapes || titreEtapes.length === 0) {
     return undefined
   }
diff --git a/packages/api/src/business/rules/titre-demarche-octroi-date-debut-find.test.ts b/packages/api/src/business/rules/titre-demarche-octroi-date-debut-find.test.ts
index 302598e49..7afd35064 100644
--- a/packages/api/src/business/rules/titre-demarche-octroi-date-debut-find.test.ts
+++ b/packages/api/src/business/rules/titre-demarche-octroi-date-debut-find.test.ts
@@ -9,21 +9,9 @@ describe("trouve la date d'octroi d'un titre", () => {
   })
 
   test("retourne 0000 si les démarches ne contiennent pas d'octroi ou de mutation partielle", () => {
-    expect(
-      titreDemarcheOctroiDateDebutFind([
-        { typeId: 'rnd' }
-      ] as unknown as ITitreDemarche[])
-    ).toEqual('0000')
-    expect(
-      titreDemarcheOctroiDateDebutFind([
-        { typeId: 'oct' }
-      ] as unknown as ITitreDemarche[])
-    ).toEqual('0000')
-    expect(
-      titreDemarcheOctroiDateDebutFind([
-        { typeId: 'oct', etapes: [] }
-      ] as unknown as ITitreDemarche[])
-    ).toEqual('0000')
+    expect(titreDemarcheOctroiDateDebutFind([{ typeId: 'rnd' }] as unknown as ITitreDemarche[])).toEqual('0000')
+    expect(titreDemarcheOctroiDateDebutFind([{ typeId: 'oct' }] as unknown as ITitreDemarche[])).toEqual('0000')
+    expect(titreDemarcheOctroiDateDebutFind([{ typeId: 'oct', etapes: [] }] as unknown as ITitreDemarche[])).toEqual('0000')
   })
 
   test("retourne la date de l'étape acceptée de la démarche d'octroi", () => {
@@ -32,8 +20,8 @@ describe("trouve la date d'octroi d'un titre", () => {
         {
           typeId: 'oct',
           statutId: 'acc',
-          etapes: [{ typeId: 'dpu', date: '2002-02-02' }]
-        }
+          etapes: [{ typeId: 'dpu', date: '2002-02-02' }],
+        },
       ] as unknown as ITitreDemarche[])
     ).toEqual('2002-02-02')
   })
@@ -43,8 +31,8 @@ describe("trouve la date d'octroi d'un titre", () => {
       titreDemarcheOctroiDateDebutFind([
         {
           typeId: 'oct',
-          etapes: [{ typeId: 'mfr', dateDebut: '2002-02-02' }]
-        }
+          etapes: [{ typeId: 'mfr', dateDebut: '2002-02-02' }],
+        },
       ] as unknown as ITitreDemarche[])
     ).toEqual('2002-02-02')
   })
@@ -56,9 +44,9 @@ describe("trouve la date d'octroi d'un titre", () => {
           typeId: 'oct',
           etapes: [
             { typeId: 'rnb', dateDebut: '2003-03-03' },
-            { typeId: 'rnd', dateDebut: '2002-02-02' }
-          ]
-        }
+            { typeId: 'rnd', dateDebut: '2002-02-02' },
+          ],
+        },
       ] as unknown as ITitreDemarche[])
     ).toEqual('2002-02-02')
   })
diff --git a/packages/api/src/business/rules/titre-demarche-octroi-date-debut-find.ts b/packages/api/src/business/rules/titre-demarche-octroi-date-debut-find.ts
index 5e2778abc..35096abef 100644
--- a/packages/api/src/business/rules/titre-demarche-octroi-date-debut-find.ts
+++ b/packages/api/src/business/rules/titre-demarche-octroi-date-debut-find.ts
@@ -4,21 +4,13 @@ import titreDemarchesSortAsc from '../utils/titre-elements-sort-asc.js'
 import { titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort.js'
 import { isDemarcheTypeOctroi } from 'camino-common/src/static/demarchesTypes.js'
 
-const titreDemarcheOctroiDateDebutFind = (
-  titreDemarches?: ITitreDemarche[] | null
-) => {
+const titreDemarcheOctroiDateDebutFind = (titreDemarches?: ITitreDemarche[] | null) => {
   if (!titreDemarches || !titreDemarches.length) return '0000'
 
   // récupère la démarche d'octroi (naturelle ou virtuelle)
-  const demarcheOctroi = titreDemarchesSortAsc(titreDemarches).find(
-    ({ typeId }) => isDemarcheTypeOctroi(typeId)
-  )
-
-  if (
-    !demarcheOctroi ||
-    !demarcheOctroi.etapes ||
-    !demarcheOctroi.etapes.length
-  ) {
+  const demarcheOctroi = titreDemarchesSortAsc(titreDemarches).find(({ typeId }) => isDemarcheTypeOctroi(typeId))
+
+  if (!demarcheOctroi || !demarcheOctroi.etapes || !demarcheOctroi.etapes.length) {
     return '0000'
   }
 
@@ -27,22 +19,7 @@ const titreDemarcheOctroiDateDebutFind = (
 
   // récupère l'étape la plus importante de l'octroi en premier
   const etapeOctroi =
-    etapes.find(
-      ({ typeId }) =>
-        ([
-          'dpu',
-          'dup',
-          'rpu',
-          'dex',
-          'dux',
-          'dim',
-          'def',
-          'sco',
-          'aco'
-        ].includes(typeId) &&
-          demarcheOctroi.statutId === 'acc') ||
-        typeId === 'mfr'
-    ) ||
+    etapes.find(({ typeId }) => (['dpu', 'dup', 'rpu', 'dex', 'dux', 'dim', 'def', 'sco', 'aco'].includes(typeId) && demarcheOctroi.statutId === 'acc') || typeId === 'mfr') ||
     // sinon utilise la première étape (chronologique) de l'octroi
     etapes[etapes.length - 1]
 
diff --git a/packages/api/src/business/rules/titre-demarche-phase-check.test.ts b/packages/api/src/business/rules/titre-demarche-phase-check.test.ts
index 49ba66397..b428414be 100644
--- a/packages/api/src/business/rules/titre-demarche-phase-check.test.ts
+++ b/packages/api/src/business/rules/titre-demarche-phase-check.test.ts
@@ -21,8 +21,8 @@ describe('retourne si la démarche donne lieu à une étape ou non', () => {
           id: 'h-cx-courdemanges-1988-oct01-dex01',
           typeId: 'dex',
           statutId: 'acc',
-          ordre: 1
-        }
+          ordre: 1,
+        },
       ] as ITitreEtape[])
     ).toBeFalsy()
   })
@@ -35,8 +35,8 @@ describe('retourne si la démarche donne lieu à une étape ou non', () => {
           typeId: 'dpu',
           statutId: 'acc',
           ordre: 1,
-          dateFin: '2018-12-31'
-        }
+          dateFin: '2018-12-31',
+        },
       ] as ITitreEtape[])
     ).toBeTruthy()
   })
@@ -49,8 +49,8 @@ describe('retourne si la démarche donne lieu à une étape ou non', () => {
           typeId: 'dpu',
           statutId: 'acc',
           ordre: 1,
-          duree: 20
-        }
+          duree: 20,
+        },
       ] as ITitreEtape[])
     ).toBeTruthy()
   })
@@ -62,14 +62,14 @@ describe('retourne si la démarche donne lieu à une étape ou non', () => {
           id: 'h-cx-courdemanges-1988-oct01-dpu01',
           typeId: 'dpu',
           statutId: 'acc',
-          ordre: 2
+          ordre: 2,
         },
         {
           id: 'h-cx-courdemanges-1988-oct01-dex01',
           typeId: 'dex',
           statutId: 'acc',
-          ordre: 1
-        }
+          ordre: 1,
+        },
       ] as ITitreEtape[])
     ).toBeTruthy()
   })
@@ -81,14 +81,14 @@ describe('retourne si la démarche donne lieu à une étape ou non', () => {
           id: 'h-cx-courdemanges-1988-oct01-dpu01',
           typeId: 'dpu',
           statutId: 'rej',
-          ordre: 2
+          ordre: 2,
         },
         {
           id: 'h-cx-courdemanges-1988-oct01-dex01',
           typeId: 'dex',
           statutId: 'rej',
-          ordre: 1
-        }
+          ordre: 1,
+        },
       ] as ITitreEtape[])
     ).toBeFalsy()
   })
@@ -100,8 +100,8 @@ describe('retourne si la démarche donne lieu à une étape ou non', () => {
           id: 'm-ax-courdemanges-1988-oct01-dex01',
           typeId: 'dex',
           statutId: 'acc',
-          ordre: 1
-        }
+          ordre: 1,
+        },
       ] as ITitreEtape[])
     ).toBeTruthy()
   })
@@ -113,8 +113,8 @@ describe('retourne si la démarche donne lieu à une étape ou non', () => {
           id: 'm-ax-courdemanges-1988-oct01-dex01',
           typeId: 'dex',
           statutId: 'rej',
-          ordre: 1
-        }
+          ordre: 1,
+        },
       ] as ITitreEtape[])
     ).toBeFalsy()
   })
@@ -126,8 +126,8 @@ describe('retourne si la démarche donne lieu à une étape ou non', () => {
           id: 'm-pr-courdemanges-1988-oct01-rpu01',
           typeId: 'rpu',
           statutId: 'acc',
-          ordre: 1
-        }
+          ordre: 1,
+        },
       ] as ITitreEtape[])
     ).toBeTruthy()
   })
@@ -139,8 +139,8 @@ describe('retourne si la démarche donne lieu à une étape ou non', () => {
           id: 'm-pr-courdemanges-1988-oct01-rpu01',
           typeId: 'rpu',
           statutId: 'rej',
-          ordre: 1
-        }
+          ordre: 1,
+        },
       ] as ITitreEtape[])
     ).toBeFalsy()
   })
@@ -152,14 +152,14 @@ describe('retourne si la démarche donne lieu à une étape ou non', () => {
           id: 'h-cx-courdemanges-1988-pro01-dpu01',
           typeId: 'dpu',
           statutId: 'acc',
-          ordre: 2
+          ordre: 2,
         },
         {
           id: 'h-cx-courdemanges-1988-pro01-dex01',
           typeId: 'dex',
           statutId: 'acc',
-          ordre: 1
-        }
+          ordre: 1,
+        },
       ] as ITitreEtape[])
     ).toBeTruthy()
   })
@@ -171,14 +171,14 @@ describe('retourne si la démarche donne lieu à une étape ou non', () => {
           id: 'h-cx-courdemanges-1988-pr101-dpu01',
           typeId: 'dpu',
           statutId: 'acc',
-          ordre: 2
+          ordre: 2,
         },
         {
           id: 'h-cx-courdemanges-1988-pr101-dex01',
           typeId: 'dex',
           statutId: 'acc',
-          ordre: 1
-        }
+          ordre: 1,
+        },
       ] as ITitreEtape[])
     ).toBeTruthy()
   })
@@ -190,14 +190,14 @@ describe('retourne si la démarche donne lieu à une étape ou non', () => {
           id: 'h-cx-courdemanges-1988-pr201-dpu01',
           typeId: 'dpu',
           statutId: 'acc',
-          ordre: 2
+          ordre: 2,
         },
         {
           id: 'h-cx-courdemanges-1988-pr201-dex01',
           typeId: 'dex',
           statutId: 'acc',
-          ordre: 1
-        }
+          ordre: 1,
+        },
       ] as ITitreEtape[])
     ).toBeTruthy()
   })
@@ -209,14 +209,14 @@ describe('retourne si la démarche donne lieu à une étape ou non', () => {
           id: 'h-cx-courdemanges-1988-pre01-dpu01',
           typeId: 'dpu',
           statutId: 'acc',
-          ordre: 2
+          ordre: 2,
         },
         {
           id: 'h-cx-courdemanges-1988-pre01-dex01',
           typeId: 'dex',
           statutId: 'acc',
-          ordre: 1
-        }
+          ordre: 1,
+        },
       ] as ITitreEtape[])
     ).toBeTruthy()
   })
diff --git a/packages/api/src/business/rules/titre-demarche-phase-check.ts b/packages/api/src/business/rules/titre-demarche-phase-check.ts
index 6b6eb8da7..4753e327b 100644
--- a/packages/api/src/business/rules/titre-demarche-phase-check.ts
+++ b/packages/api/src/business/rules/titre-demarche-phase-check.ts
@@ -1,9 +1,6 @@
 import { titreEtapesSortAscByOrdre } from '../utils/titre-etapes-sort.js'
 import { titreEtapePublicationCheck } from './titre-etape-publication-check.js'
-import {
-  DemarcheTypeId,
-  isDemarcheTypeWithPhase
-} from 'camino-common/src/static/demarchesTypes.js'
+import { DemarcheTypeId, isDemarcheTypeWithPhase } from 'camino-common/src/static/demarchesTypes.js'
 import { TitreEtapePhaseFind } from './titre-demarche-date-fin-duree-find.js'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
 
@@ -14,34 +11,20 @@ import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
  * @param titreTypeId - id du type de titre
  * @param titreEtapes - étapes de la démarche
  */
-export const titreDemarchePhaseCheck = (
-  titreDemarcheTypeId: DemarcheTypeId,
-  titreDemarcheStatutId: string,
-  titreTypeId: TitreTypeId,
-  titreEtapes?: TitreEtapePhaseFind[] | null
-) => {
+export const titreDemarchePhaseCheck = (titreDemarcheTypeId: DemarcheTypeId, titreDemarcheStatutId: string, titreTypeId: TitreTypeId, titreEtapes?: TitreEtapePhaseFind[] | null) => {
   // si
   // - la démarche n'a pas d'étapes
   // - ou le statut de la démarche n'est pas accepté
   // - ou le type de la démarche ne donne pas lieu à une phase
   //   - et la démarche n'a ni date de fin ou ni durée
-  if (
-    !titreEtapes?.length ||
-    titreDemarcheStatutId !== 'acc' ||
-    (!isDemarcheTypeWithPhase(titreDemarcheTypeId) &&
-      !titreEtapes.find(e => e.dateFin || e.duree))
-  ) {
+  if (!titreEtapes?.length || titreDemarcheStatutId !== 'acc' || (!isDemarcheTypeWithPhase(titreDemarcheTypeId) && !titreEtapes.find(e => e.dateFin || e.duree))) {
     return false
   }
 
   // on trie les étapes de façon ascendante pour le cas où
   // il existe une étape de publication et une étape rectificative,
   // on prend alors en compte l'originale
-  const etapePublicationFirst = titreEtapesSortAscByOrdre(titreEtapes!).find(
-    etape => titreEtapePublicationCheck(etape.typeId, titreTypeId)
-  )
+  const etapePublicationFirst = titreEtapesSortAscByOrdre(titreEtapes!).find(etape => titreEtapePublicationCheck(etape.typeId, titreTypeId))
 
-  return etapePublicationFirst
-    ? ['acc', 'fai'].includes(etapePublicationFirst.statutId)
-    : false
+  return etapePublicationFirst ? ['acc', 'fai'].includes(etapePublicationFirst.statutId) : false
 }
diff --git a/packages/api/src/business/rules/titre-demarche-public-find.test.ts b/packages/api/src/business/rules/titre-demarche-public-find.test.ts
index f23241dc8..b45405a61 100644
--- a/packages/api/src/business/rules/titre-demarche-public-find.test.ts
+++ b/packages/api/src/business/rules/titre-demarche-public-find.test.ts
@@ -10,290 +10,104 @@ const etapesBuild = (etapesProps: Partial<ITitreEtape>[]) =>
     (etapeProps, i) =>
       ({
         ...etapeProps,
-        ordre: i + 1
+        ordre: i + 1,
       } as unknown as ITitreEtape)
   )
 
 describe("publicité d'une démarche", () => {
   test("une démarche sans étape n'est pas publique", () => {
-    expect(titreDemarchePublicFind('oct', [], [], 'titreId', [])).toMatchObject(
-      {
-        publicLecture: false,
-        entreprisesLecture: false
-      }
-    )
+    expect(titreDemarchePublicFind('oct', [], [], 'titreId', [])).toMatchObject({
+      publicLecture: false,
+      entreprisesLecture: false,
+    })
   })
 
   test("une démarche d'octroi sans étape décisive n'est pas publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'dae' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: false, entreprisesLecture: false })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'dae' }]), 'titreId', [])).toMatchObject({ publicLecture: false, entreprisesLecture: false })
   })
 
   test("une démarche de retrait dont l'étape la plus récente est saisine du préfet est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'spp' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: false, entreprisesLecture: false })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'spp' }]), 'titreId', [])).toMatchObject({ publicLecture: false, entreprisesLecture: false })
   })
 
   test("une démarche de retrait dont l'étape la plus récente est saisine du préfet est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'ret',
-        [],
-        etapesBuild([{ typeId: 'spp' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: true, entreprisesLecture: true })
+    expect(titreDemarchePublicFind('ret', [], etapesBuild([{ typeId: 'spp' }]), 'titreId', [])).toMatchObject({ publicLecture: true, entreprisesLecture: true })
   })
 
   test("une démarche de déchéance dont l'étape la plus récente est saisine du préfet est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'dec',
-        [],
-        etapesBuild([{ typeId: 'spp' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: true, entreprisesLecture: true })
+    expect(titreDemarchePublicFind('dec', [], etapesBuild([{ typeId: 'spp' }]), 'titreId', [])).toMatchObject({ publicLecture: true, entreprisesLecture: true })
   })
 
   test("une démarche dont l'étape la plus récente est demande est visible uniquement par l'entreprise", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'mfr' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: false, entreprisesLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'mfr' }]), 'titreId', [])).toMatchObject({ publicLecture: false, entreprisesLecture: true })
   })
 
   test("une démarche dont l'étape la plus récente est décision de l'administration est visible uniquement par l'entreprise", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'dex' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: false, entreprisesLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'dex' }]), 'titreId', [])).toMatchObject({ publicLecture: false, entreprisesLecture: true })
   })
 
   test("une démarche dont l'étape la plus récente est classement sans suite n'est pas publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'css' }, { typeId: 'mfr' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: false })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'css' }, { typeId: 'mfr' }]), 'titreId', [])).toMatchObject({ publicLecture: false })
   })
 
   test("une démarche d'un titre AXM dont l'étape la plus récente est classement sans suite ne change pas de visibilité", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'mcr' }, { typeId: 'css' }]),
-        'titreId',
-        [],
-        'axm'
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'mcr' }, { typeId: 'css' }]), 'titreId', [], 'axm')).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche d'un titre ARM dont l'étape la plus récente est classement sans suite ne change pas de visibilité", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'sca' }, { typeId: 'css' }]),
-        'titreId',
-        [],
-        'arm'
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'sca' }, { typeId: 'css' }]), 'titreId', [], 'arm')).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche d'un titre ARM dont l'étape la plus récente est désistement du demandeur est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'des' }]),
-        'titreId',
-        [],
-        'arm'
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'des' }]), 'titreId', [], 'arm')).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche d'un titre AXM dont l'étape la plus récente est désistement du demandeur est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'des' }]),
-        'titreId',
-        [],
-        'axm'
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'des' }]), 'titreId', [], 'axm')).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche ne pouvant pas faire l'objet d'une mise en concurrence dont l'étape la plus récente est recevabilité est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'mcr' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'mcr' }]), 'titreId', [])).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche d'un titre ARM ne pouvant pas faire l'objet d'une mise en concurrence dont l'étape la plus récente est recevabilité n'est pas publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'mcr' }]),
-        'titreId',
-        [],
-        'arm'
-      )
-    ).toMatchObject({ publicLecture: false })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'mcr' }]), 'titreId', [], 'arm')).toMatchObject({ publicLecture: false })
   })
 
   test("une démarche pouvant faire l'objet d'une mise en concurrence dont l'étape la plus récente est recevabilité n'est pas publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [{ id: 'anf', nom: 'anf', ordre: 1 }],
-        etapesBuild([{ typeId: 'mcr' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: false })
+    expect(titreDemarchePublicFind('oct', [{ id: 'anf', nom: 'anf', ordre: 1 }], etapesBuild([{ typeId: 'mcr' }]), 'titreId', [])).toMatchObject({ publicLecture: false })
   })
 
   test("une démarche dont l'étape la plus récente est mise en concurrence au JORF est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'anf' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'anf' }]), 'titreId', [])).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche dont l'étape la plus récente est publication de l'avis de décision implicite (historique) est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'apu' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'apu' }]), 'titreId', [])).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche dont l'étape la plus récente est mise en concurrence au JOUE est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'ane' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'ane' }]), 'titreId', [])).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche dont l'étape la plus récente est participation du public est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'ppu' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'ppu' }]), 'titreId', [])).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche d'un titre ARM dont l'étape la plus récente est décision de l'ONF peu importe son statut (historique) est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'def' }]),
-        'titreId',
-        [],
-        'arm'
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'def' }]), 'titreId', [], 'arm')).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche d'un titre ARM dont l'étape la plus récente est commission ARM peu importe son statut (historique) est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'aca' }]),
-        'titreId',
-        [],
-        'arm'
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'aca' }]), 'titreId', [], 'arm')).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche d'un titre ARM dont l'étape la plus récente est saisine de la commission ARM est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'sca' }]),
-        'titreId',
-        [],
-        'arm'
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'sca' }]), 'titreId', [], 'arm')).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche dont l'étape la plus récente est décision implicite au statut accepté est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'dim', statutId: 'acc' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'dim', statutId: 'acc' }]), 'titreId', [])).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche dont l'étape la plus récente est décision implicite au statut rejeté n'est pas publique", () => {
@@ -303,7 +117,7 @@ describe("publicité d'une démarche", () => {
         [],
         etapesBuild([
           { typeId: 'anf', statutId: 'fai' },
-          { typeId: 'dim', statutId: 'rej' }
+          { typeId: 'dim', statutId: 'rej' },
         ]),
         'titreId',
         []
@@ -312,258 +126,78 @@ describe("publicité d'une démarche", () => {
   })
 
   test("une démarche d'un titre non AXM dont l'étape la plus récente est décision de l'administration au statut rejeté n'est pas publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'dex', statutId: 'rej' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: false })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'dex', statutId: 'rej' }]), 'titreId', [])).toMatchObject({ publicLecture: false })
   })
 
   test("une démarche d'un titre AXM dont l'étape la plus récente est décision de l'administration au statut rejeté est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'mcr' }, { typeId: 'dex', statutId: 'rej' }]),
-        'titreId',
-        [],
-        'axm'
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'mcr' }, { typeId: 'dex', statutId: 'rej' }]), 'titreId', [], 'axm')).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche d'un titre AXM dont l'étape la plus récente est décision de l'administration au statut accepté est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'dex', statutId: 'acc' }]),
-        'titreId',
-        [],
-        'axm'
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'dex', statutId: 'acc' }]), 'titreId', [], 'axm')).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche dont l'étape la plus récente est publication de décision au JORF au statut au statut accepté publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'dpu', statutId: 'acc' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'dpu', statutId: 'acc' }]), 'titreId', [])).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche dont l'étape la plus récente est décision unilatérale est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'dux' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'dux' }]), 'titreId', [])).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche dont l'étape la plus récente est publication de décision unilatérale est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'dup' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'dup' }]), 'titreId', [])).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche dont l'étape la plus récente est publication de décision au recueil des actes administratifs est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'rpu' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'rpu' }]), 'titreId', [])).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche d'un titre ARM dont l'étape la plus récente est signature de l'autorisation de recherche minière est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'sco' }]),
-        'titreId',
-        [],
-        'arm'
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'sco' }]), 'titreId', [], 'arm')).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche d'un titre ARM dont l'étape la plus récente est signature de l'avenant à l'autorisation de recherche minière est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'sco' }]),
-        'titreId',
-        [],
-        'arm'
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'sco' }]), 'titreId', [], 'arm')).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche dont l'étape la plus récente est décision d'annulation par le juge administratif est publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'and', statutId: 'fav' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'and', statutId: 'fav' }]), 'titreId', [])).toMatchObject({ publicLecture: true })
   })
 
   test("une démarche dont l'étape la plus récente est décision d'annulation par le juge administratif au statut fait n'est pas publique", () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'and', statutId: 'fai' }]),
-        'titreId',
-        []
-      )
-    ).toMatchObject({ publicLecture: false })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'and', statutId: 'fai' }]), 'titreId', [])).toMatchObject({ publicLecture: false })
   })
 
-  test.each(['ren', 'pro'])(
-    "une démarche %s dont l'étape la plus récente est le dépot de la demande n'est pas publique",
-    (demarcheTypeId: string) => {
-      expect(
-        titreDemarchePublicFind(
-          demarcheTypeId,
-          [],
-          etapesBuild([{ typeId: 'mdp', statutId: 'fai' }]),
-          'titreId',
-          [],
-          'arm'
-        )
-      ).toMatchObject({ publicLecture: false })
-    }
-  )
+  test.each(['ren', 'pro'])("une démarche %s dont l'étape la plus récente est le dépot de la demande n'est pas publique", (demarcheTypeId: string) => {
+    expect(titreDemarchePublicFind(demarcheTypeId, [], etapesBuild([{ typeId: 'mdp', statutId: 'fai' }]), 'titreId', [], 'arm')).toMatchObject({ publicLecture: false })
+  })
 
-  test.each(['ren', 'pro'])(
-    "une démarche %s dont l'étape la plus récente est recevabilité de la demande n'est pas publique",
-    (demarcheTypeId: string) => {
-      expect(
-        titreDemarchePublicFind(
-          demarcheTypeId,
-          [],
-          etapesBuild([{ typeId: 'mcr' }]),
-          'titreId',
-          [],
-          'arm'
-        )
-      ).toMatchObject({ publicLecture: false })
-    }
-  )
+  test.each(['ren', 'pro'])("une démarche %s dont l'étape la plus récente est recevabilité de la demande n'est pas publique", (demarcheTypeId: string) => {
+    expect(titreDemarchePublicFind(demarcheTypeId, [], etapesBuild([{ typeId: 'mcr' }]), 'titreId', [], 'arm')).toMatchObject({ publicLecture: false })
+  })
 
-  test.each(['ren', 'pro'])(
-    "une démarche %s dont l'étape la plus récente est l’expertise de l’onf est publique",
-    (demarcheTypeId: string) => {
-      expect(
-        titreDemarchePublicFind(
-          demarcheTypeId,
-          [],
-          etapesBuild([{ typeId: 'eof' }]),
-          'titreId',
-          [],
-          'arm'
-        )
-      ).toMatchObject({ publicLecture: true })
-    }
-  )
+  test.each(['ren', 'pro'])("une démarche %s dont l'étape la plus récente est l’expertise de l’onf est publique", (demarcheTypeId: string) => {
+    expect(titreDemarchePublicFind(demarcheTypeId, [], etapesBuild([{ typeId: 'eof' }]), 'titreId', [], 'arm')).toMatchObject({ publicLecture: true })
+  })
 
-  test.each(['ren', 'pro'])(
-    "une démarche %s dont l'étape la plus récente est la décisision de classement sans suite est publique",
-    (demarcheTypeId: string) => {
-      expect(
-        titreDemarchePublicFind(
-          demarcheTypeId,
-          [],
-          etapesBuild([{ typeId: 'css' }]),
-          'titreId',
-          [],
-          'arm'
-        )
-      ).toMatchObject({ publicLecture: true })
-    }
-  )
+  test.each(['ren', 'pro'])("une démarche %s dont l'étape la plus récente est la décisision de classement sans suite est publique", (demarcheTypeId: string) => {
+    expect(titreDemarchePublicFind(demarcheTypeId, [], etapesBuild([{ typeId: 'css' }]), 'titreId', [], 'arm')).toMatchObject({ publicLecture: true })
+  })
 
-  test.each(['ren', 'pro'])(
-    "une démarche %s dont l'étape la plus récente est le désistement est publique",
-    (demarcheTypeId: string) => {
-      expect(
-        titreDemarchePublicFind(
-          demarcheTypeId,
-          [],
-          etapesBuild([{ typeId: 'des' }]),
-          'titreId',
-          [],
-          'arm'
-        )
-      ).toMatchObject({ publicLecture: true })
-    }
-  )
+  test.each(['ren', 'pro'])("une démarche %s dont l'étape la plus récente est le désistement est publique", (demarcheTypeId: string) => {
+    expect(titreDemarchePublicFind(demarcheTypeId, [], etapesBuild([{ typeId: 'des' }]), 'titreId', [], 'arm')).toMatchObject({ publicLecture: true })
+  })
 
-  test.each<EtapeTypeId>([
-    'ane',
-    'anf',
-    'dex',
-    'dpu',
-    'dup',
-    'rpu',
-    'ppu',
-    'ppc',
-    'epu',
-    'epc'
-  ])(
+  test.each<EtapeTypeId>(['ane', 'anf', 'dex', 'dpu', 'dup', 'rpu', 'ppu', 'ppc', 'epu', 'epc'])(
     "une démarche d’un titre non énergétique dont l'étape la plus récente est %s est public",
     etapeTypeId => {
-      expect(
-        titreDemarchePublicFind(
-          'oct',
-          [],
-          etapesBuild([{ typeId: etapeTypeId }]),
-          'titreId',
-          [],
-          'arm'
-        )
-      ).toMatchObject({ publicLecture: true })
+      expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: etapeTypeId }]), 'titreId', [], 'arm')).toMatchObject({ publicLecture: true })
     }
   )
 
   test('le titre WQaZgPfDcQw9tFliMgBIDH3Z ne doit pas être public', () => {
-    expect(
-      titreDemarchePublicFind(
-        'oct',
-        [],
-        etapesBuild([{ typeId: 'ane' }]),
-        'WQaZgPfDcQw9tFliMgBIDH3Z',
-        []
-      )
-    ).toMatchObject({ publicLecture: false })
+    expect(titreDemarchePublicFind('oct', [], etapesBuild([{ typeId: 'ane' }]), 'WQaZgPfDcQw9tFliMgBIDH3Z', [])).toMatchObject({ publicLecture: false })
   })
 
   const demarches: ITitreDemarche[] = [
@@ -580,9 +214,9 @@ describe("publicité d'une démarche", () => {
           typeId: 'mfr',
           statutId: 'fai',
           id: 'id',
-          titreDemarcheId: newDemarcheId('m-pr-saint-pierre-2014-pro02')
-        }
-      ]
+          titreDemarcheId: newDemarcheId('m-pr-saint-pierre-2014-pro02'),
+        },
+      ],
     },
     {
       id: newDemarcheId('m-pr-saint-pierre-2014-pro01'),
@@ -600,9 +234,9 @@ describe("publicité d'une démarche", () => {
           titreDemarcheId: newDemarcheId('m-pr-saint-pierre-2014-pro01'),
           ordre: 1,
           dateDebut: null,
-          dateFin: toCaminoDate('2020-10-01')
-        }
-      ]
+          dateFin: toCaminoDate('2020-10-01'),
+        },
+      ],
     },
     {
       id: newDemarcheId('m-pr-saint-pierre-2014-oct01'),
@@ -620,34 +254,16 @@ describe("publicité d'une démarche", () => {
           ordre: 1,
           date: toCaminoDate('1014-04-01'),
           dateDebut: null,
-          dateFin: toCaminoDate('2020-04-01')
-        }
-      ]
-    }
+          dateFin: toCaminoDate('2020-04-01'),
+        },
+      ],
+    },
   ]
   test('la demarche d’une prolongation déposée d’un PRM en survie provisoire est public ', () => {
-    expect(
-      titreDemarchePublicFind(
-        'pr1',
-        [],
-        etapesBuild([{ typeId: 'mfr' }, { typeId: 'mdp' }]),
-        'titreId',
-        demarches,
-        'prm'
-      )
-    ).toMatchObject({ publicLecture: true })
+    expect(titreDemarchePublicFind('pr1', [], etapesBuild([{ typeId: 'mfr' }, { typeId: 'mdp' }]), 'titreId', demarches, 'prm')).toMatchObject({ publicLecture: true })
   })
 
   test('la demarche d’une prolongation non déposée d’un PRM en survie provisoire n’est pas public ', () => {
-    expect(
-      titreDemarchePublicFind(
-        'pr1',
-        [],
-        etapesBuild([{ typeId: 'mfr' }]),
-        'titreId',
-        demarches,
-        'prm'
-      )
-    ).toMatchObject({ publicLecture: false })
+    expect(titreDemarchePublicFind('pr1', [], etapesBuild([{ typeId: 'mfr' }]), 'titreId', demarches, 'prm')).toMatchObject({ publicLecture: false })
   })
 })
diff --git a/packages/api/src/business/rules/titre-demarche-public-find.ts b/packages/api/src/business/rules/titre-demarche-public-find.ts
index df74a36ed..6a2823eb3 100644
--- a/packages/api/src/business/rules/titre-demarche-public-find.ts
+++ b/packages/api/src/business/rules/titre-demarche-public-find.ts
@@ -18,10 +18,7 @@ const titreDemarchePublicLectureFind = (
   // si le type d'étape est un classement sans suite
   // et le type de titre n'est ni ARM ni AXM
   // alors la démarche n'est pas publique
-  if (
-    titreEtape.typeId === 'css' &&
-    (!titreTypeId || !['arm', 'axm'].includes(titreTypeId))
-  ) {
+  if (titreEtape.typeId === 'css' && (!titreTypeId || !['arm', 'axm'].includes(titreTypeId))) {
     return false
   }
 
@@ -29,11 +26,7 @@ const titreDemarchePublicLectureFind = (
   // et que le type de titre n'est pas ARM
   // et que la démarche ne peut contenir de mise en concurrence au JORF ou JOUE
   // alors la démarche est publique
-  if (
-    titreEtape.typeId === 'mcr' &&
-    (!titreTypeId || titreTypeId !== 'arm') &&
-    !demarcheTypeEtapesTypes.find(et => ['anf', 'ane'].includes(et.id))
-  ) {
+  if (titreEtape.typeId === 'mcr' && (!titreTypeId || titreTypeId !== 'arm') && !demarcheTypeEtapesTypes.find(et => ['anf', 'ane'].includes(et.id))) {
     return true
   }
 
@@ -60,31 +53,21 @@ const titreDemarchePublicLectureFind = (
   //    ou avis de la commission des ARM (si pas de saisine)
   //    ou décision de l'ONF (étape historique)
   // alors la démarche est publique
-  if (
-    titreTypeId === 'arm' &&
-    ['sca', 'aca', 'def'].includes(titreEtape.typeId)
-  ) {
+  if (titreTypeId === 'arm' && ['sca', 'aca', 'def'].includes(titreEtape.typeId)) {
     return true
   }
 
   // si le type de titre est ARM ou AXM
   // et que le type d'étape est désistement du demandeur
   // alors la démarche est publique
-  if (
-    titreTypeId &&
-    ['arm', 'axm'].includes(titreTypeId) &&
-    titreEtape.typeId === 'des'
-  ) {
+  if (titreTypeId && ['arm', 'axm'].includes(titreTypeId) && titreEtape.typeId === 'des') {
     return true
   }
 
   // si le type d'étape est décision implicite
   //    ou décision de l'administration
   // et que le statut est rejeté
-  if (
-    ['dim', 'dex'].includes(titreEtape.typeId) &&
-    titreEtape.statutId === 'rej'
-  ) {
+  if (['dim', 'dex'].includes(titreEtape.typeId) && titreEtape.statutId === 'rej') {
     //   si le type de titre est AXM
     //   alors la démarche est publique
     //   sinon la démarche n'est pas (plus) publique
@@ -96,10 +79,7 @@ const titreDemarchePublicLectureFind = (
   //    ou publication au JORF
   // et que le statut est accepté
   // alors la démarche est publique
-  if (
-    ['dim', 'dex', 'dpu'].includes(titreEtape.typeId) &&
-    titreEtape.statutId === 'acc'
-  ) {
+  if (['dim', 'dex', 'dpu'].includes(titreEtape.typeId) && titreEtape.statutId === 'acc') {
     return true
   }
 
@@ -128,11 +108,7 @@ const titreDemarchePublicLectureFind = (
 
   // Si le type de titre est ARM et que le type de démarche est renonciation
   // et que l’expertise de l’onf est cours, ou si la démarche a été désistée ou si classée sans suite
-  if (
-    titreTypeId === 'arm' &&
-    ['ren', 'pro'].includes(demarcheTypeId) &&
-    ['eof', 'css', 'des'].includes(titreEtape.typeId)
-  ) {
+  if (titreTypeId === 'arm' && ['ren', 'pro'].includes(demarcheTypeId) && ['eof', 'css', 'des'].includes(titreEtape.typeId)) {
     return true
   }
 
@@ -149,32 +125,12 @@ const titreDemarchePublicLectureFind = (
   // clôture de l’enquête publique (epc)
 
   const domaineId = titreTypeId ? titreTypeId.substr(2) : null
-  if (
-    domaineId &&
-    ['m', 'w', 'c'].includes(domaineId) &&
-    [
-      'ane',
-      'anf',
-      'dex',
-      'dpu',
-      'dup',
-      'rpu',
-      'ppu',
-      'ppc',
-      'epu',
-      'epc'
-    ].includes(titreEtape.typeId)
-  ) {
+  if (domaineId && ['m', 'w', 'c'].includes(domaineId) && ['ane', 'anf', 'dex', 'dpu', 'dup', 'rpu', 'ppu', 'ppc', 'epu', 'epc'].includes(titreEtape.typeId)) {
     return true
   }
 
   // Pour les PRM d’un titre en survie provisoire, les demandes de prolongations sont public
-  if (
-    titreTypeId === 'prm' &&
-    titreEtape.typeId === 'mdp' &&
-    ['pr1', 'pr2'].includes(demarcheTypeId) &&
-    titreInSurvieProvisoire(demarches)
-  ) {
+  if (titreTypeId === 'prm' && titreEtape.typeId === 'mdp' && ['pr1', 'pr2'].includes(demarcheTypeId) && titreInSurvieProvisoire(demarches)) {
     return true
   }
 
@@ -205,25 +161,12 @@ export const titreDemarchePublicFind = (
   const publicLecture =
     titreId === 'WQaZgPfDcQw9tFliMgBIDH3Z'
       ? false
-      : titreEtapes.reduce(
-          (publicLecture, titreEtape) =>
-            titreDemarchePublicLectureFind(
-              publicLecture,
-              demarcheTypeId,
-              demarcheTypeEtapesTypes,
-              titreEtape,
-              titreDemarches,
-              titreTypeId
-            ),
-          false
-        )
+      : titreEtapes.reduce((publicLecture, titreEtape) => titreDemarchePublicLectureFind(publicLecture, demarcheTypeId, demarcheTypeEtapesTypes, titreEtape, titreDemarches, titreTypeId), false)
 
   // les entreprises titulaires ou amodiataires peuvent voir la démarche
   // si la démarche est visible au public
   // ou si la démarche contient une demande ou une décision de l'administration unilatérale
-  const entreprisesLecture =
-    publicLecture ||
-    titreEtapes.some(te => ['mfr', 'dex', 'dux'].includes(te.typeId))
+  const entreprisesLecture = publicLecture || titreEtapes.some(te => ['mfr', 'dex', 'dux'].includes(te.typeId))
 
   return { publicLecture, entreprisesLecture }
 }
diff --git a/packages/api/src/business/rules/titre-demarche-statut-id-find.test.ts b/packages/api/src/business/rules/titre-demarche-statut-id-find.test.ts
index ed67a2fcb..cf0e422ad 100644
--- a/packages/api/src/business/rules/titre-demarche-statut-id-find.test.ts
+++ b/packages/api/src/business/rules/titre-demarche-statut-id-find.test.ts
@@ -1,10 +1,7 @@
 import { ITitreEtape, TitreEtapesTravauxTypes as Travaux } from '../../types.js'
 
 import { titreDemarcheStatutIdFind } from './titre-demarche-statut-id-find.js'
-import {
-  DemarchesStatutsIds as Demarches,
-  DemarcheStatutId
-} from 'camino-common/src/static/demarchesStatuts.js'
+import { DemarchesStatutsIds as Demarches, DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts.js'
 import { newDemarcheId } from '../../database/models/_format/id-create.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 import { describe, expect, test } from 'vitest'
@@ -14,26 +11,17 @@ const etapesBuild = (etapesProps: Partial<ITitreEtape>[]) =>
     (etapeProps, i) =>
       ({
         ...etapeProps,
-        ordre: i + 1
+        ordre: i + 1,
       } as unknown as ITitreEtape)
   )
 
 describe("statut d'une démarche", () => {
   test('une démarche sans étape a le statut “indéfini”', () => {
-    expect(
-      titreDemarcheStatutIdFind('oct', [], 'pxm', newDemarcheId())
-    ).toEqual('ind')
+    expect(titreDemarcheStatutIdFind('oct', [], 'pxm', newDemarcheId())).toEqual('ind')
   })
 
   test("une démarche d'octroi sans étape décisive a le statut “indéfini”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'anf' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ind')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'anf' }]), 'pxm', newDemarcheId())).toEqual('ind')
   })
 
   test("une démarche d'octroi dont l'étape de dpu la plus récente est acceptée a le statut “accepté”", () => {
@@ -42,7 +30,7 @@ describe("statut d'une démarche", () => {
         'oct',
         etapesBuild([
           { typeId: 'dex', statutId: 'acc' },
-          { typeId: 'dpu', statutId: 'acc' }
+          { typeId: 'dpu', statutId: 'acc' },
         ]),
         'pxm',
         newDemarcheId()
@@ -51,16 +39,7 @@ describe("statut d'une démarche", () => {
   })
 
   test("une démarche d'octroi d'un titre AXM dont l'étape de dex la plus récente est acceptée a le statut “accepté”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([
-          { typeId: 'dex', date: toCaminoDate('2010-01-01'), statutId: 'acc' }
-        ]),
-        'axm',
-        newDemarcheId()
-      )
-    ).toEqual('acc')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'dex', date: toCaminoDate('2010-01-01'), statutId: 'acc' }]), 'axm', newDemarcheId())).toEqual('acc')
   })
 
   test("une démarche d'octroi d'un titre ARM dont l'étape de def la plus récente est acceptée a le statut “accepté”", () => {
@@ -71,8 +50,8 @@ describe("statut d'une démarche", () => {
           {
             typeId: 'def',
             statutId: 'acc',
-            date: toCaminoDate('2010-01-01')
-          }
+            date: toCaminoDate('2010-01-01'),
+          },
         ]),
         'arm',
         newDemarcheId()
@@ -81,14 +60,7 @@ describe("statut d'une démarche", () => {
   })
 
   test("une démarche d'octroi d'un titre PRM dont l'étape de rpu la plus récente est acceptée a le statut “accepté”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'rpu', statutId: 'acc' }]),
-        'prm',
-        newDemarcheId()
-      )
-    ).toEqual('acc')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'rpu', statutId: 'acc' }]), 'prm', newDemarcheId())).toEqual('acc')
   })
 
   test("une démarche de prolongation dont l'étape de dpu la plus récente est acceptée a le statut “accepté”", () => {
@@ -97,7 +69,7 @@ describe("statut d'une démarche", () => {
         'pro',
         etapesBuild([
           { typeId: 'dex', statutId: 'acc' },
-          { typeId: 'dpu', statutId: 'acc' }
+          { typeId: 'dpu', statutId: 'acc' },
         ]),
         'pxm',
         newDemarcheId()
@@ -114,7 +86,7 @@ describe("statut d'une démarche", () => {
             typeId: 'mfr',
             statutId: 'fai',
             date: toCaminoDate('2019-12-10'),
-            contenu: { arm: { mecanise: true, franchissements: 3 } }
+            contenu: { arm: { mecanise: true, franchissements: 3 } },
           },
           { typeId: 'mdp', statutId: 'fai', date: toCaminoDate('2019-12-11') },
           { typeId: 'pfd', statutId: 'fai', date: toCaminoDate('2019-12-13') },
@@ -128,14 +100,14 @@ describe("statut d'une démarche", () => {
             typeId: 'rde',
             statutId: 'fav',
             date: toCaminoDate('2020-02-11'),
-            contenu: { arm: { franchissements: 3 } }
+            contenu: { arm: { franchissements: 3 } },
           },
           { typeId: 'sca', statutId: 'fai', date: toCaminoDate('2020-06-15') },
           { typeId: 'aca', statutId: 'fav', date: toCaminoDate('2020-06-17') },
           { typeId: 'mnb', statutId: 'fai', date: toCaminoDate('2020-07-09') },
           { typeId: 'pfc', statutId: 'fai', date: toCaminoDate('2020-07-16') },
           { typeId: 'vfc', statutId: 'fai', date: toCaminoDate('2020-07-17') },
-          { typeId: 'sco', statutId: 'fai', date: toCaminoDate('2020-09-28') }
+          { typeId: 'sco', statutId: 'fai', date: toCaminoDate('2020-09-28') },
         ]),
         'arm',
         newDemarcheId()
@@ -148,8 +120,8 @@ describe("statut d'une démarche", () => {
           {
             typeId: 'sco',
             statutId: 'fai',
-            date: toCaminoDate('2010-09-28')
-          }
+            date: toCaminoDate('2010-09-28'),
+          },
         ]),
         'arm',
         newDemarcheId()
@@ -158,25 +130,11 @@ describe("statut d'une démarche", () => {
   })
 
   test("une démarche d'octroi d'un titre autre qu'ARM dont l'étape de sco est faite a le statut “indéfini”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'sco', statutId: 'fai' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ind')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'sco', statutId: 'fai' }]), 'pxm', newDemarcheId())).toEqual('ind')
   })
 
   test("une démarche d'octroi ne contenant une unique étape de dex acceptée a le statut “en instruction”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'dex', statutId: 'acc' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ins')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'dex', statutId: 'acc' }]), 'pxm', newDemarcheId())).toEqual('ins')
   })
 
   test("une démarche d'octroi contenant une étape de publication acceptée après une dex acceptée a le statut “accepté”", () => {
@@ -185,7 +143,7 @@ describe("statut d'une démarche", () => {
         'oct',
         etapesBuild([
           { typeId: 'dex', statutId: 'acc' },
-          { typeId: 'dpu', statutId: 'acc' }
+          { typeId: 'dpu', statutId: 'acc' },
         ]),
         'pxm',
         newDemarcheId()
@@ -194,25 +152,11 @@ describe("statut d'une démarche", () => {
   })
 
   test("une démarche d'octroi dont l'unique étape de dex est rejetée a le statut “rejeté”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'dex', statutId: 'rej' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('rej')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'dex', statutId: 'rej' }]), 'pxm', newDemarcheId())).toEqual('rej')
   })
 
   test("une démarche d'octroi dont l'étape est men a le statut “en instruction”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'men' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ind')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'men' }]), 'pxm', newDemarcheId())).toEqual('ind')
   })
 
   test("une démarche d'octroi d'un titre ARM dont l'étape de mdp (statut fai) a le statut “en instruction”", () => {
@@ -221,7 +165,7 @@ describe("statut d'une démarche", () => {
         'oct',
         etapesBuild([
           { typeId: 'mfr', statutId: 'fai' },
-          { typeId: 'mdp', statutId: 'fai' }
+          { typeId: 'mdp', statutId: 'fai' },
         ]),
         'arm',
         newDemarcheId()
@@ -237,7 +181,7 @@ describe("statut d'une démarche", () => {
           { typeId: 'mfr', statutId: 'fai' },
           { typeId: 'mdp', statutId: 'fai' },
           { typeId: 'pfd', statutId: 'fai' },
-          { typeId: 'mcp', statutId: 'com' }
+          { typeId: 'mcp', statutId: 'com' },
         ]),
         'arm',
         newDemarcheId()
@@ -253,8 +197,8 @@ describe("statut d'une démarche", () => {
           {
             typeId: 'def',
             statutId: 'acc',
-            date: toCaminoDate('2010-01-01')
-          }
+            date: toCaminoDate('2010-01-01'),
+          },
         ]),
         'arm',
         newDemarcheId()
@@ -270,8 +214,8 @@ describe("statut d'une démarche", () => {
           {
             typeId: 'def',
             statutId: 'rej',
-            date: toCaminoDate('2010-01-12')
-          }
+            date: toCaminoDate('2010-01-12'),
+          },
         ]),
         'arm',
         newDemarcheId()
@@ -280,69 +224,27 @@ describe("statut d'une démarche", () => {
   })
 
   test("une démarche d'octroi d'un titre autre qu'ARM dont la dernière étape est une def a le statut “indéfini”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'def', statutId: 'rej' }]),
-        'prh',
-        newDemarcheId()
-      )
-    ).toEqual('ind')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'def', statutId: 'rej' }]), 'prh', newDemarcheId())).toEqual('ind')
   })
 
   test("une démarche d'octroi dont l'étape la plus récente est des a le statut “désisté”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'des' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('des')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'des' }]), 'pxm', newDemarcheId())).toEqual('des')
   })
 
   test("une démarche d'octroi dont l'étape la plus récente est mdp (statut fai) a le statut “déposé”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'mdp', statutId: 'fai' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('dep')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'mdp', statutId: 'fai' }]), 'pxm', newDemarcheId())).toEqual('dep')
   })
 
   test("une démarche d'octroi dont l'étape la plus récente est mfr a le statut “en construction”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'mfr', statutId: 'aco' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('eco')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'mfr', statutId: 'aco' }]), 'pxm', newDemarcheId())).toEqual('eco')
   })
 
   test("une démarche d'octroi dont l'étape la plus récente est mcr a le statut “en instruction”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'mcr' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ins')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'mcr' }]), 'pxm', newDemarcheId())).toEqual('ins')
   })
 
   test("une démarche d'octroi dont l'étape la plus récente est css a le statut “classé sans suite”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'css' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('cls')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'css' }]), 'pxm', newDemarcheId())).toEqual('cls')
   })
 
   test("une démarche d'octroi dont l'étape la plus récente d'aca est défavorable a le statut “rejeté”", () => {
@@ -359,7 +261,7 @@ describe("statut d'une démarche", () => {
           { typeId: 'eof', statutId: 'fai', date: toCaminoDate('2021-03-17') },
           { typeId: 'aof', statutId: 'fav', date: toCaminoDate('2021-09-23') },
           { typeId: 'sca', statutId: 'fai', date: toCaminoDate('2021-09-24') },
-          { typeId: 'aca', statutId: 'def', date: toCaminoDate('2021-09-25') }
+          { typeId: 'aca', statutId: 'def', date: toCaminoDate('2021-09-25') },
         ]),
         'arm',
         newDemarcheId()
@@ -381,7 +283,7 @@ describe("statut d'une démarche", () => {
           { typeId: 'eof', statutId: 'fai', date: toCaminoDate('2021-03-17') },
           { typeId: 'aof', statutId: 'fav', date: toCaminoDate('2021-09-23') },
           { typeId: 'sca', statutId: 'fai', date: toCaminoDate('2021-09-24') },
-          { typeId: 'aca', statutId: 'fav', date: toCaminoDate('2021-09-25') }
+          { typeId: 'aca', statutId: 'fav', date: toCaminoDate('2021-09-25') },
         ]),
         'arm',
         newDemarcheId()
@@ -390,157 +292,59 @@ describe("statut d'une démarche", () => {
   })
 
   test('une démarche de retrait sans aucune étape décisive a le statut “indéterminé”', () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'ret',
-        etapesBuild([{ typeId: 'ihi' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ind')
+    expect(titreDemarcheStatutIdFind('ret', etapesBuild([{ typeId: 'ihi' }]), 'pxm', newDemarcheId())).toEqual('ind')
   })
 
   test("une démarche de retrait dont l'étape la plus récente de dup a été faite a le statut “terminé”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'ret',
-        etapesBuild([{ typeId: 'dup', statutId: 'fai' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ter')
+    expect(titreDemarcheStatutIdFind('ret', etapesBuild([{ typeId: 'dup', statutId: 'fai' }]), 'pxm', newDemarcheId())).toEqual('ter')
   })
 
   test("une démarche de retrait dont l'étape la plus récente est ide faite a le statut “initié”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'ret',
-        etapesBuild([{ typeId: 'ide' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ini')
+    expect(titreDemarcheStatutIdFind('ret', etapesBuild([{ typeId: 'ide' }]), 'pxm', newDemarcheId())).toEqual('ini')
   })
 
   test("une démarche de retrait dont l'étape la plus récente est spp a le statut “en instruction”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'ret',
-        etapesBuild([{ typeId: 'spp' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ins')
+    expect(titreDemarcheStatutIdFind('ret', etapesBuild([{ typeId: 'spp' }]), 'pxm', newDemarcheId())).toEqual('ins')
   })
 
   test("une démarche de retrait dont l'étape la plus récente est eof a le statut “en instruction”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'ret',
-        etapesBuild([{ typeId: 'ide' }, { typeId: 'eof' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ins')
+    expect(titreDemarcheStatutIdFind('ret', etapesBuild([{ typeId: 'ide' }, { typeId: 'eof' }]), 'pxm', newDemarcheId())).toEqual('ins')
   })
 
   test("une démarche de retrait dont l'étape la plus récente est aco a le statut “terminé”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'ret',
-        etapesBuild([{ typeId: 'aco' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ter')
+    expect(titreDemarcheStatutIdFind('ret', etapesBuild([{ typeId: 'aco' }]), 'pxm', newDemarcheId())).toEqual('ter')
   })
 
   test("une démarche de retrait dont l'étape la plus récente est aof refusée a le statut “css”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'ret',
-        etapesBuild([{ typeId: 'aof', statutId: 'def' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('cls')
+    expect(titreDemarcheStatutIdFind('ret', etapesBuild([{ typeId: 'aof', statutId: 'def' }]), 'pxm', newDemarcheId())).toEqual('cls')
   })
 
   test("une démarche de retrait dont l'étape la plus récente de css a été faite a le statut “classé sans suite”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'ret',
-        etapesBuild([{ typeId: 'css' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('cls')
+    expect(titreDemarcheStatutIdFind('ret', etapesBuild([{ typeId: 'css' }]), 'pxm', newDemarcheId())).toEqual('cls')
   })
 
   test("une démarche de demande dont l'étape la plus récente est spp ne change pas de statut", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'spp' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ind')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'spp' }]), 'pxm', newDemarcheId())).toEqual('ind')
   })
 
   test("une démarche dont l'étape la plus récente est de type “retrait de la décision” a le statut “en instruction”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'rtd' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ins')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'rtd' }]), 'pxm', newDemarcheId())).toEqual('ins')
   })
 
   test("une démarche dont l'étape la plus récente est de type “abrogation de la décision” a le statut “en instruction”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'abd' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ins')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'abd' }]), 'pxm', newDemarcheId())).toEqual('ins')
   })
 
   test("une démarche dont l'étape la plus récente d'annulation de la décision est favorable a le statut “en instruction”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'and', statutId: 'fai' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('ins')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'and', statutId: 'fai' }]), 'pxm', newDemarcheId())).toEqual('ins')
   })
 
   test("une démarche dont l'étape la plus récente d'annulation de la décision est favorable a le statut “accepté”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'and', statutId: 'acc' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('acc')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'and', statutId: 'acc' }]), 'pxm', newDemarcheId())).toEqual('acc')
   })
 
   test("une démarche dont l'étape la plus récente d'annulation de la décision est favorable a le statut “rejeté”", () => {
-    expect(
-      titreDemarcheStatutIdFind(
-        'oct',
-        etapesBuild([{ typeId: 'and', statutId: 'rej' }]),
-        'pxm',
-        newDemarcheId()
-      )
-    ).toEqual('rej')
+    expect(titreDemarcheStatutIdFind('oct', etapesBuild([{ typeId: 'and', statutId: 'rej' }]), 'pxm', newDemarcheId())).toEqual('rej')
   })
 
   test('une démarche inexistante a le statut “indéfini”', () => {
@@ -575,20 +379,10 @@ describe("statut d'une démarche", () => {
     [Travaux.AvisPrescriptionsDemandeur, 'fai', Demarches.EnInstruction],
     [Travaux.ArreteOuvertureTravauxMiniers, 'fai', Demarches.Accepte],
     [Travaux.PubliDecisionRecueilActesAdmin, 'fai', Demarches.Accepte],
-    [Travaux.Abandon, 'fai', Demarches.Desiste]
-  ])(
-    "pour une démarche de travaux de type 'aom' sur un titre, dont la dernière étape est '$etapeTypeId' au statut $statutId, le résultat est $resultId",
-    (etapeTypeId, statutId, resultId) => {
-      expect(
-        titreDemarcheStatutIdFind(
-          'aom',
-          etapesBuild([{ typeId: etapeTypeId, statutId }]),
-          'pxm',
-          newDemarcheId()
-        )
-      ).toEqual(resultId)
-    }
-  )
+    [Travaux.Abandon, 'fai', Demarches.Desiste],
+  ])("pour une démarche de travaux de type 'aom' sur un titre, dont la dernière étape est '$etapeTypeId' au statut $statutId, le résultat est $resultId", (etapeTypeId, statutId, resultId) => {
+    expect(titreDemarcheStatutIdFind('aom', etapesBuild([{ typeId: etapeTypeId, statutId }]), 'pxm', newDemarcheId())).toEqual(resultId)
+  })
 
   test.each<[Travaux, EtapeStatutId, DemarcheStatutId]>([
     [Travaux.DeclarationOuverture, 'fai', Demarches.Depose],
@@ -609,20 +403,10 @@ describe("statut d'une démarche", () => {
     [Travaux.TransPrescriptionsDemandeur, 'fai', Demarches.EnInstruction],
     [Travaux.AvisPrescriptionsDemandeur, 'fai', Demarches.EnInstruction],
     [Travaux.DonneActeDeclaration, 'fai', Demarches.Accepte],
-    [Travaux.Abandon, 'fai', Demarches.Desiste]
-  ])(
-    "pour une démarche de travaux de type 'dot' sur un titre, dont la dernière étape est '$etapeTypeId' au statut $statutId, le résultat est $resultId",
-    (etapeTypeId, statutId, resultId) => {
-      expect(
-        titreDemarcheStatutIdFind(
-          'dot',
-          etapesBuild([{ typeId: etapeTypeId, statutId }]),
-          'pxm',
-          newDemarcheId()
-        )
-      ).toEqual(resultId)
-    }
-  )
+    [Travaux.Abandon, 'fai', Demarches.Desiste],
+  ])("pour une démarche de travaux de type 'dot' sur un titre, dont la dernière étape est '$etapeTypeId' au statut $statutId, le résultat est $resultId", (etapeTypeId, statutId, resultId) => {
+    expect(titreDemarcheStatutIdFind('dot', etapesBuild([{ typeId: etapeTypeId, statutId }]), 'pxm', newDemarcheId())).toEqual(resultId)
+  })
 
   test.each<[Travaux, EtapeStatutId, DemarcheStatutId]>([
     [Travaux.DeclarationArret, 'fai', Demarches.Depose],
@@ -648,18 +432,8 @@ describe("statut d'une démarche", () => {
     [Travaux.ArretePrefectDonneActe2, 'acc', Demarches.FinPoliceMines],
     [Travaux.PubliDecisionRecueilActesAdmin, 'fai', Demarches.FinPoliceMines],
     [Travaux.PorterAConnaissance, 'fai', Demarches.FinPoliceMines],
-    [Travaux.Abandon, 'fai', Demarches.Desiste]
-  ])(
-    "pour une démarche de travaux de type 'dam' sur un titre, dont la dernière étape est '$etapeTypeId' au statut $statutId, le résultat est $resultId",
-    (etapeTypeId, statutId, resultId) => {
-      expect(
-        titreDemarcheStatutIdFind(
-          'dam',
-          etapesBuild([{ typeId: etapeTypeId, statutId }]),
-          'pxm',
-          newDemarcheId()
-        )
-      ).toEqual(resultId)
-    }
-  )
+    [Travaux.Abandon, 'fai', Demarches.Desiste],
+  ])("pour une démarche de travaux de type 'dam' sur un titre, dont la dernière étape est '$etapeTypeId' au statut $statutId, le résultat est $resultId", (etapeTypeId, statutId, resultId) => {
+    expect(titreDemarcheStatutIdFind('dam', etapesBuild([{ typeId: etapeTypeId, statutId }]), 'pxm', newDemarcheId())).toEqual(resultId)
+  })
 })
diff --git a/packages/api/src/business/rules/titre-demarche-statut-id-find.ts b/packages/api/src/business/rules/titre-demarche-statut-id-find.ts
index 76579f666..b5651bb7a 100644
--- a/packages/api/src/business/rules/titre-demarche-statut-id-find.ts
+++ b/packages/api/src/business/rules/titre-demarche-statut-id-find.ts
@@ -1,25 +1,12 @@
-import {
-  DemarcheId,
-  ITitreEtape,
-  TitreEtapesTravauxTypes as Travaux
-} from '../../types.js'
+import { DemarcheId, ITitreEtape, TitreEtapesTravauxTypes as Travaux } from '../../types.js'
 
 import { titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort.js'
 import { titreEtapePublicationCheck } from './titre-etape-publication-check.js'
-import {
-  demarcheDefinitionFind,
-  isDemarcheDefinitionMachine
-} from '../rules-demarches/definitions.js'
+import { demarcheDefinitionFind, isDemarcheDefinitionMachine } from '../rules-demarches/definitions.js'
 import { toMachineEtapes } from '../rules-demarches/machine-common.js'
-import {
-  DemarcheStatutId,
-  DemarchesStatutsIds
-} from 'camino-common/src/static/demarchesStatuts.js'
+import { DemarcheStatutId, DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts.js'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import {
-  DemarcheTypeId,
-  TravauxIds
-} from 'camino-common/src/static/demarchesTypes.js'
+import { DemarcheTypeId, TravauxIds } from 'camino-common/src/static/demarchesTypes.js'
 
 const titreEtapesDecisivesCommunesTypes = ['css', 'rtd', 'abd', 'and']
 
@@ -42,50 +29,18 @@ const titreEtapesDecisivesDemandesTypes = [
   'rpu',
   'dpu',
   'ihi',
-  ...titreEtapesDecisivesCommunesTypes
+  ...titreEtapesDecisivesCommunesTypes,
 ]
 
-const titreDemarchesDemandesTypes = [
-  'oct',
-  'pro',
-  'pr1',
-  'pr2',
-  'pre',
-  'ren',
-  'fus',
-  'exp',
-  'exs',
-  'mut',
-  'vut',
-  'amo',
-  'res',
-  'ces',
-  'dep',
-  'vus',
-  'vct'
-]
+const titreDemarchesDemandesTypes = ['oct', 'pro', 'pr1', 'pr2', 'pre', 'ren', 'fus', 'exp', 'exs', 'mut', 'vut', 'amo', 'res', 'ces', 'dep', 'vus', 'vct']
 
-const titreDemarchesTravauxTypes = [
-  'aom',
-  'dam',
-  'dot'
-] as const satisfies readonly TravauxIds[]
+const titreDemarchesTravauxTypes = ['aom', 'dam', 'dot'] as const satisfies readonly TravauxIds[]
 
-const titreEtapesDecisivesUnilateralesTypes = [
-  'ide',
-  'spp',
-  'dup',
-  'dux',
-  'aof',
-  'aco',
-  ...titreEtapesDecisivesCommunesTypes
-]
+const titreEtapesDecisivesUnilateralesTypes = ['ide', 'spp', 'dup', 'dux', 'aof', 'aco', ...titreEtapesDecisivesCommunesTypes]
 
 const titreDemarchesUnilateralesTypes = ['ret', 'prr', 'dec']
 
-const titresDemarcheCommunesStatutIdFind = (
-  titreEtapeRecent: Pick<ITitreEtape, 'typeId' | 'statutId'>
-): DemarcheStatutId | null => {
+const titresDemarcheCommunesStatutIdFind = (titreEtapeRecent: Pick<ITitreEtape, 'typeId' | 'statutId'>): DemarcheStatutId | null => {
   //  - le type de l’étape est classement sans suite (css)
   //  - le titre est une ARM
   //    - et le type de l’étape est avis de la commission ARM (aca)
@@ -121,25 +76,17 @@ const titresDemarcheCommunesStatutIdFind = (
   return null
 }
 
-const titreDemarcheUnilateralStatutIdFind = (
-  titreDemarcheEtapes: Pick<ITitreEtape, 'typeId' | 'ordre' | 'statutId'>[]
-): DemarcheStatutId => {
+const titreDemarcheUnilateralStatutIdFind = (titreDemarcheEtapes: Pick<ITitreEtape, 'typeId' | 'ordre' | 'statutId'>[]): DemarcheStatutId => {
   // filtre les types d'étapes qui ont un impact
   // sur le statut de la démarche de demande
-  const titreEtapesDecisivesUnilaterale = titreDemarcheEtapes.filter(
-    titreEtape =>
-      titreEtapesDecisivesUnilateralesTypes.includes(titreEtape.typeId)
-  )
+  const titreEtapesDecisivesUnilaterale = titreDemarcheEtapes.filter(titreEtape => titreEtapesDecisivesUnilateralesTypes.includes(titreEtape.typeId))
 
   // si aucune étape décisive n'est présente dans la démarche
   // le statut est indétrminé
-  if (!titreEtapesDecisivesUnilaterale.length)
-    return DemarchesStatutsIds.Indetermine
+  if (!titreEtapesDecisivesUnilaterale.length) return DemarchesStatutsIds.Indetermine
 
   // l'étape la plus récente
-  const titreEtapeRecent = titreEtapesSortDescByOrdre(
-    titreEtapesDecisivesUnilaterale
-  )[0]
+  const titreEtapeRecent = titreEtapesSortDescByOrdre(titreEtapesDecisivesUnilaterale)[0]
 
   // calcule le statut de démarche pour les étapes communes
   const statutId = titresDemarcheCommunesStatutIdFind(titreEtapeRecent)
@@ -165,10 +112,7 @@ const titreDemarcheUnilateralStatutIdFind = (
   }
 
   // - le type de l’étape est l’avis de l’ONF défavorable
-  if (
-    titreEtapeRecent.typeId === 'aof' &&
-    titreEtapeRecent.statutId === 'def'
-  ) {
+  if (titreEtapeRecent.typeId === 'aof' && titreEtapeRecent.statutId === 'def') {
     // - le statut de la démarche est "classement sans suite"
     return DemarchesStatutsIds.ClasseSansSuite
   }
@@ -184,25 +128,17 @@ const titreDemarcheUnilateralStatutIdFind = (
   return DemarchesStatutsIds.Initie
 }
 
-const titreDemarcheDemandeStatutIdFind = (
-  titreDemarcheEtapes: Pick<ITitreEtape, 'typeId' | 'ordre' | 'statutId'>[],
-  titreTypeId: TitreTypeId
-): DemarcheStatutId => {
+const titreDemarcheDemandeStatutIdFind = (titreDemarcheEtapes: Pick<ITitreEtape, 'typeId' | 'ordre' | 'statutId'>[], titreTypeId: TitreTypeId): DemarcheStatutId => {
   // filtre les types d'étapes qui ont un impact
   // sur le statut de la démarche de demande
-  const titreEtapesDecisivesDemande = titreDemarcheEtapes.filter(titreEtape =>
-    titreEtapesDecisivesDemandesTypes.includes(titreEtape.typeId)
-  )
+  const titreEtapesDecisivesDemande = titreDemarcheEtapes.filter(titreEtape => titreEtapesDecisivesDemandesTypes.includes(titreEtape.typeId))
 
   // si aucune étape décisive n'est présente dans la démarche
   // le statut est indéterminé
-  if (!titreEtapesDecisivesDemande.length)
-    return DemarchesStatutsIds.Indetermine
+  if (!titreEtapesDecisivesDemande.length) return DemarchesStatutsIds.Indetermine
 
   // l'étape la plus récente
-  const titreEtapeRecent = titreEtapesSortDescByOrdre(
-    titreEtapesDecisivesDemande
-  )[0]
+  const titreEtapeRecent = titreEtapesSortDescByOrdre(titreEtapesDecisivesDemande)[0]
 
   // calcule le statut de démarche pour les étapes communes
   const statutId = titresDemarcheCommunesStatutIdFind(titreEtapeRecent)
@@ -212,17 +148,11 @@ const titreDemarcheDemandeStatutIdFind = (
   //  - le type de l’étape est une publication
   //  - ou une décision implicite (dim)
   //  - ou des informations historiques incomplètes
-  const titreEtapesPublication = titreDemarcheEtapes.filter(
-    titreEtape =>
-      titreEtapePublicationCheck(titreEtape.typeId, titreTypeId) ||
-      ['dim', 'ihi'].includes(titreEtape.typeId)
-  )
+  const titreEtapesPublication = titreDemarcheEtapes.filter(titreEtape => titreEtapePublicationCheck(titreEtape.typeId, titreTypeId) || ['dim', 'ihi'].includes(titreEtape.typeId))
 
   if (titreEtapesPublication.length) {
     // si l'étape de publication la plus récente est
-    const titreEtapePublicationRecent = titreEtapesSortDescByOrdre(
-      titreEtapesPublication
-    )[0]
+    const titreEtapePublicationRecent = titreEtapesSortDescByOrdre(titreEtapesPublication)[0]
 
     // si l'étape de publication est de type unilatérale
     // alors la démarche a le statut accepté
@@ -240,10 +170,7 @@ const titreDemarcheDemandeStatutIdFind = (
 
   //  - le type de l’étape est décision expresse (dex)
   //  - et le statut de l’étape est rejeté (rej)
-  if (
-    ['dex', 'dux'].includes(titreEtapeRecent.typeId) &&
-    titreEtapeRecent.statutId === 'rej'
-  ) {
+  if (['dex', 'dux'].includes(titreEtapeRecent.typeId) && titreEtapeRecent.statutId === 'rej') {
     //  - le statut de la démarche est rejeté (rej)
     return DemarchesStatutsIds.Rejete
   }
@@ -258,11 +185,7 @@ const titreDemarcheDemandeStatutIdFind = (
   //  - le titre est une ARM
   //    - et le type de l’étape est avis de la commission ARM (aca)
   //    - et le statut de l’étape est défavorable (def)
-  if (
-    titreTypeId === 'arm' &&
-    titreEtapeRecent.typeId === 'aca' &&
-    titreEtapeRecent.statutId === 'def'
-  ) {
+  if (titreTypeId === 'arm' && titreEtapeRecent.typeId === 'aca' && titreEtapeRecent.statutId === 'def') {
     return DemarchesStatutsIds.Rejete
   }
 
@@ -273,13 +196,7 @@ const titreDemarcheDemandeStatutIdFind = (
   //  OU
   //  - le type de l’étape est avis de la commission ARM (aca) (non défavorable)
   //  - le type de l’étape est décision de l'ONF (def) (non défavorable)
-  if (
-    ['mcr', 'dex', 'dux'].includes(titreEtapeRecent.typeId) ||
-    (titreTypeId === 'arm' &&
-      ['mdp', 'men', 'meo', 'mcp', 'def', 'aca'].includes(
-        titreEtapeRecent.typeId
-      ))
-  ) {
+  if (['mcr', 'dex', 'dux'].includes(titreEtapeRecent.typeId) || (titreTypeId === 'arm' && ['mdp', 'men', 'meo', 'mcp', 'def', 'aca'].includes(titreEtapeRecent.typeId))) {
     //  - le statut de la démarche est “en instruction”
     return DemarchesStatutsIds.EnInstruction
   }
@@ -301,10 +218,7 @@ const titreDemarcheDemandeStatutIdFind = (
   return DemarchesStatutsIds.Indetermine
 }
 
-const titreDemarcheTravauxStatutIdFind = (
-  titreDemarcheEtapes: Pick<ITitreEtape, 'ordre' | 'typeId'>[],
-  demarcheTypeId: string
-): DemarcheStatutId => {
+const titreDemarcheTravauxStatutIdFind = (titreDemarcheEtapes: Pick<ITitreEtape, 'ordre' | 'typeId'>[], demarcheTypeId: string): DemarcheStatutId => {
   if (titreDemarcheEtapes.length === 0) {
     return DemarchesStatutsIds.Indetermine
   }
@@ -348,8 +262,7 @@ const titreDemarcheTravauxStatutIdFind = (
     [Travaux.AvisCODERST]: DemarchesStatutsIds.EnInstruction,
     [Travaux.AvisPrescriptionsDemandeur]: DemarchesStatutsIds.EnInstruction,
     [Travaux.RapportDREAL]: DemarchesStatutsIds.EnInstruction,
-    [Travaux.ArretePrescriptionComplementaire]:
-      DemarchesStatutsIds.EnInstruction,
+    [Travaux.ArretePrescriptionComplementaire]: DemarchesStatutsIds.EnInstruction,
     [Travaux.ArretePrefectDonneActe1]: DemarchesStatutsIds.EnInstruction,
     [Travaux.MemoireFinTravaux]: DemarchesStatutsIds.EnInstruction,
     [Travaux.Recolement]: DemarchesStatutsIds.EnInstruction,
@@ -357,7 +270,7 @@ const titreDemarcheTravauxStatutIdFind = (
     [Travaux.DonneActeDeclaration]: DemarchesStatutsIds.Accepte,
     [Travaux.Abandon]: DemarchesStatutsIds.Desiste,
     [Travaux.ArretePrefectDonneActe2]: DemarchesStatutsIds.FinPoliceMines,
-    [Travaux.PorterAConnaissance]: DemarchesStatutsIds.FinPoliceMines
+    [Travaux.PorterAConnaissance]: DemarchesStatutsIds.FinPoliceMines,
   }
 
   if (titreEtapesRecent.typeId === Travaux.PubliDecisionRecueilActesAdmin) {
@@ -381,10 +294,7 @@ const titreDemarcheTravauxStatutIdFind = (
 
 export const titreDemarcheStatutIdFind = (
   demarcheTypeId: DemarcheTypeId,
-  titreDemarcheEtapes: Pick<
-    ITitreEtape,
-    'typeId' | 'date' | 'ordre' | 'statutId' | 'contenu'
-  >[],
+  titreDemarcheEtapes: Pick<ITitreEtape, 'typeId' | 'date' | 'ordre' | 'statutId' | 'contenu'>[],
   titreTypeId: TitreTypeId,
   demarcheId: DemarcheId
 ): DemarcheStatutId => {
@@ -397,17 +307,10 @@ export const titreDemarcheStatutIdFind = (
     return titreDemarcheTravauxStatutIdFind(titreDemarcheEtapes, demarcheTypeId)
   }
 
-  const demarcheDefinition = demarcheDefinitionFind(
-    titreTypeId,
-    demarcheTypeId,
-    titreDemarcheEtapes,
-    demarcheId
-  )
+  const demarcheDefinition = demarcheDefinitionFind(titreTypeId, demarcheTypeId, titreDemarcheEtapes, demarcheId)
 
   if (isDemarcheDefinitionMachine(demarcheDefinition)) {
-    return demarcheDefinition.machine.demarcheStatut(
-      toMachineEtapes(titreDemarcheEtapes)
-    ).demarcheStatut
+    return demarcheDefinition.machine.demarcheStatut(toMachineEtapes(titreDemarcheEtapes)).demarcheStatut
   }
 
   //  si la démarche fait l’objet d’une demande
diff --git a/packages/api/src/business/rules/titre-etape-prop-find.test.ts b/packages/api/src/business/rules/titre-etape-prop-find.test.ts
index b5ec13418..1bf608c07 100644
--- a/packages/api/src/business/rules/titre-etape-prop-find.test.ts
+++ b/packages/api/src/business/rules/titre-etape-prop-find.test.ts
@@ -8,25 +8,11 @@ describe("valeur d'une propriété pour une étape", () => {
   const date = '2020-12-01'
 
   test('retourne null si le titre ne contient pas de démarches', () => {
-    expect(
-      titreEtapePropFind(
-        'titulaires',
-        date,
-        [] as unknown as ITitreDemarche[],
-        'pxm'
-      )
-    ).toEqual(null)
+    expect(titreEtapePropFind('titulaires', date, [] as unknown as ITitreDemarche[], 'pxm')).toEqual(null)
   })
 
   test('retourne null si le titre ne contient pas de démarche avec des étapes', () => {
-    expect(
-      titreEtapePropFind(
-        'titulaires',
-        date,
-        [{}, { etapes: [] }] as unknown as ITitreDemarche[],
-        'pxm'
-      )
-    ).toEqual(null)
+    expect(titreEtapePropFind('titulaires', date, [{}, { etapes: [] }] as unknown as ITitreDemarche[], 'pxm')).toEqual(null)
   })
 
   test("retourne la propriété de l'étape antérieure qui contient la propriété voulue", () => {
@@ -44,16 +30,16 @@ describe("valeur d'une propriété pour une étape", () => {
                 id: 'demarche-01-etape-01',
                 statutId: 'acc',
                 date: '1000-01-01',
-                titulaires: []
+                titulaires: [],
               },
               {
                 id: 'demarche-01-etape-02',
                 statutId: 'acc',
                 date: '1000-01-01',
-                titulaires: [{ id: 'fr-xxxxxxxxx' }]
-              }
-            ]
-          }
+                titulaires: [{ id: 'fr-xxxxxxxxx' }],
+              },
+            ],
+          },
         ] as ITitreDemarche[],
         'pxm'
       )
@@ -73,9 +59,9 @@ describe("valeur d'une propriété pour une étape", () => {
             etapes: [
               {
                 id: 'demarche-01-etape-01',
-                date: '1000-01-01'
-              }
-            ]
+                date: '1000-01-01',
+              },
+            ],
           },
           {
             type: { id: 'oct' },
@@ -85,10 +71,10 @@ describe("valeur d'une propriété pour une étape", () => {
                 id: 'demarche-02-etape-01',
                 date: '1000-01-01',
                 statutId: 'acc',
-                surface: 0
-              }
-            ]
-          }
+                surface: 0,
+              },
+            ],
+          },
         ] as unknown as ITitreDemarche[],
         'pxm'
       )
@@ -110,10 +96,10 @@ describe("valeur d'une propriété pour une étape", () => {
                 id: 'demarche-02-etape-01',
                 date: '1000-01-01',
                 statutId: 'acc',
-                titulaires: null
-              }
-            ]
-          }
+                titulaires: null,
+              },
+            ],
+          },
         ] as unknown as ITitreDemarche[],
         'pxm'
       )
diff --git a/packages/api/src/business/rules/titre-etape-prop-find.ts b/packages/api/src/business/rules/titre-etape-prop-find.ts
index 1e9485c3b..ea39cb07d 100644
--- a/packages/api/src/business/rules/titre-etape-prop-find.ts
+++ b/packages/api/src/business/rules/titre-etape-prop-find.ts
@@ -15,29 +15,16 @@ import { titreStatutIdFind } from './titre-statut-id-find.js'
  * @param titreTypeId - id du type du titre
  * @returns la ou les propriétés recherchées ou null
  */
-const titreEtapePropFind = (
-  propId: IPropId,
-  date: string,
-  titreDemarches: ITitreDemarche[],
-  titreTypeId: TitreTypeId
-) => {
+const titreEtapePropFind = (propId: IPropId, date: string, titreDemarches: ITitreDemarche[], titreTypeId: TitreTypeId) => {
   // reconstruit les démarches et étapes antérieures à la date
-  const titreDemarchesFiltered = titreDemarchesEtapesRebuild(
-    date,
-    titreDemarches,
-    titreTypeId
-  )
+  const titreDemarchesFiltered = titreDemarchesEtapesRebuild(date, titreDemarches, titreTypeId)
 
   // calcule le statut du titre
   const titreStatutId = titreStatutIdFind(date, titreDemarchesFiltered)
 
   // cherche la première occurrence de la propriété
   // dans une démarche et une étape valides
-  const titreEtape = titrePropTitreEtapeFind(
-    propId,
-    titreDemarchesFiltered,
-    titreStatutId
-  )
+  const titreEtape = titrePropTitreEtapeFind(propId, titreDemarchesFiltered, titreStatutId)
 
   if (titreEtape) {
     return propValueFind(titreEtape, propId)
diff --git a/packages/api/src/business/rules/titre-etape-publication-check.ts b/packages/api/src/business/rules/titre-etape-publication-check.ts
index aa13a49d2..eeefe694c 100644
--- a/packages/api/src/business/rules/titre-etape-publication-check.ts
+++ b/packages/api/src/business/rules/titre-etape-publication-check.ts
@@ -1,29 +1,17 @@
-import {
-  EtapeTypeId,
-  ETAPES_TYPES
-} from 'camino-common/src/static/etapesTypes.js'
+import { EtapeTypeId, ETAPES_TYPES } from 'camino-common/src/static/etapesTypes.js'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
 
 type SubTitreTypeId = Extract<TitreTypeId, 'arm' | 'axm' | 'prm' | 'pxg'>
 const demarcheEtapesTypesPublication: {
   [key in SubTitreTypeId]: readonly EtapeTypeId[]
 } = {
-  arm: [
-    ETAPES_TYPES.decisionDeLOfficeNationalDesForets,
-    ETAPES_TYPES.signatureDeLautorisationDeRechercheMiniere,
-    ETAPES_TYPES.avenantALautorisationDeRechercheMiniere
-  ],
-  axm: [
-    ETAPES_TYPES.decisionDeLadministration,
-    ETAPES_TYPES.publicationDeDecisionAuRecueilDesActesAdministratifs
-  ],
+  arm: [ETAPES_TYPES.decisionDeLOfficeNationalDesForets, ETAPES_TYPES.signatureDeLautorisationDeRechercheMiniere, ETAPES_TYPES.avenantALautorisationDeRechercheMiniere],
+  axm: [ETAPES_TYPES.decisionDeLadministration, ETAPES_TYPES.publicationDeDecisionAuRecueilDesActesAdministratifs],
   prm: [ETAPES_TYPES.publicationDeDecisionAuRecueilDesActesAdministratifs],
-  pxg: [ETAPES_TYPES.decisionDeLadministration]
+  pxg: [ETAPES_TYPES.decisionDeLadministration],
 } as const
 
-const isSubTitreTypeId = (
-  titreTypeId: TitreTypeId
-): titreTypeId is SubTitreTypeId => {
+const isSubTitreTypeId = (titreTypeId: TitreTypeId): titreTypeId is SubTitreTypeId => {
   return Object.keys(demarcheEtapesTypesPublication).includes(titreTypeId)
 }
 
@@ -32,16 +20,8 @@ const isSubTitreTypeId = (
  * @param etapeTypeId - id du type d'étape
  * @param titreTypeId - id du type de titre
  */
-export const titreEtapePublicationCheck = (
-  etapeTypeId: EtapeTypeId,
-  titreTypeId: TitreTypeId
-) =>
+export const titreEtapePublicationCheck = (etapeTypeId: EtapeTypeId, titreTypeId: TitreTypeId) =>
   !!(
-    [
-      ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF,
-      ETAPES_TYPES.informationsHistoriquesIncompletes
-    ].includes(etapeTypeId) ||
-    (isSubTitreTypeId(titreTypeId) &&
-      demarcheEtapesTypesPublication[titreTypeId]?.includes(etapeTypeId))
+    [ETAPES_TYPES.publicationDeDecisionAuJORF, ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF, ETAPES_TYPES.informationsHistoriquesIncompletes].includes(etapeTypeId) ||
+    (isSubTitreTypeId(titreTypeId) && demarcheEtapesTypesPublication[titreTypeId]?.includes(etapeTypeId))
   )
diff --git a/packages/api/src/business/rules/titre-phases-find.test.ts b/packages/api/src/business/rules/titre-phases-find.test.ts
index 4c5f28478..c4b3a9186 100644
--- a/packages/api/src/business/rules/titre-phases-find.test.ts
+++ b/packages/api/src/business/rules/titre-phases-find.test.ts
@@ -8,7 +8,7 @@ import {
   titreDemarcheOctDpuDateDebut,
   titreDemarchesOctProlongation,
   titreDemarchesOctAnnulation,
-  titreDemarchesOctAnnulationSansPoints
+  titreDemarchesOctAnnulationSansPoints,
 } from './__mocks__/titre-phases-find-demarches.js'
 import { newDemarcheId } from '../../database/models/_format/id-create.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
@@ -17,105 +17,89 @@ import { describe, expect, test } from 'vitest'
 describe("phases d'une démarche", () => {
   const aujourdhui = '2020-12-01'
   test("un titre qui a une démarche d'octroi avec une dpu a une phase", () => {
-    expect(
-      titrePhasesFind([titreDemarcheOctDpuAcc], aujourdhui, 'cxh')
-    ).toEqual([
+    expect(titrePhasesFind([titreDemarcheOctDpuAcc], aujourdhui, 'cxh')).toEqual([
       {
         dateDebut: '2200-01-01',
         dateFin: '2202-01-01',
         phaseStatutId: 'val',
-        titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-oct01')
-      }
+        titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-oct01'),
+      },
     ])
   })
 
   test("un titre qui a une démarche d'octroi sans dpu n'a pas de phase", () => {
-    expect(
-      titrePhasesFind([titreDemarcheOctDpuInexistante], aujourdhui, 'cxh')
-    ).toEqual([])
+    expect(titrePhasesFind([titreDemarcheOctDpuInexistante], aujourdhui, 'cxh')).toEqual([])
   })
 
   test("un titre AXM qui a une démarche d'octroi avec une dex a une phase", () => {
-    expect(
-      titrePhasesFind([titreAxmDemarcheOctDexAcc], aujourdhui, 'axm')
-    ).toEqual([
+    expect(titrePhasesFind([titreAxmDemarcheOctDexAcc], aujourdhui, 'axm')).toEqual([
       {
         dateDebut: '2200-01-01',
         dateFin: '2202-01-01',
         phaseStatutId: 'val',
-        titreDemarcheId: newDemarcheId('h-ax-courdemanges-1988-oct01')
-      }
+        titreDemarcheId: newDemarcheId('h-ax-courdemanges-1988-oct01'),
+      },
     ])
   })
 
   test("un titre PRM qui a une démarche d'octroi avec une rpu a une phase", () => {
-    expect(
-      titrePhasesFind([titrePrmDemarcheOctRpuAcc], aujourdhui, 'prm')
-    ).toEqual([
+    expect(titrePhasesFind([titrePrmDemarcheOctRpuAcc], aujourdhui, 'prm')).toEqual([
       {
         dateDebut: '2200-01-01',
         dateFin: '2200-01-02',
         phaseStatutId: 'val',
-        titreDemarcheId: newDemarcheId('m-pr-courdemanges-1988-oct01')
-      }
+        titreDemarcheId: newDemarcheId('m-pr-courdemanges-1988-oct01'),
+      },
     ])
   })
 
   test("un titre qui a une démarche d'octroi avec une dpu dont la date de début est renseignée a une phase", () => {
-    expect(
-      titrePhasesFind([titreDemarcheOctDpuDateDebut], aujourdhui, 'cxh')
-    ).toEqual([
+    expect(titrePhasesFind([titreDemarcheOctDpuDateDebut], aujourdhui, 'cxh')).toEqual([
       {
         dateDebut: '2200-01-02',
         dateFin: '2202-01-02',
         phaseStatutId: 'val',
-        titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-oct01')
-      }
+        titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-oct01'),
+      },
     ])
   })
 
   test('un titre qui a une démarche de prolongation avec une dpu a une phase', () => {
-    expect(
-      titrePhasesFind(titreDemarchesOctProlongation, aujourdhui, 'cxh')
-    ).toEqual([
+    expect(titrePhasesFind(titreDemarchesOctProlongation, aujourdhui, 'cxh')).toEqual([
       {
         dateDebut: '2200-01-01',
         dateFin: '2500-01-01',
         phaseStatutId: 'val',
-        titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-oct01')
+        titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-oct01'),
       },
       {
         dateDebut: '2500-01-01',
         dateFin: '3000-01-01',
         phaseStatutId: 'val',
-        titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-pro01')
-      }
+        titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-pro01'),
+      },
     ])
   })
 
   test("la phase d'un titre concernée par une démarche d'annulation a une date de fin qui est celle de cette démarche d'annulation", () => {
-    expect(
-      titrePhasesFind(titreDemarchesOctAnnulation, aujourdhui, 'cxh')
-    ).toEqual([
+    expect(titrePhasesFind(titreDemarchesOctAnnulation, aujourdhui, 'cxh')).toEqual([
       {
         dateDebut: '2000-01-02',
         dateFin: '2019-01-02',
         phaseStatutId: 'ech',
-        titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-oct01')
-      }
+        titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-oct01'),
+      },
     ])
   })
 
   test("la phase d'un titre concernée par une démarche de renonciation partielle n'est pas affectée par la renonciation", () => {
-    expect(
-      titrePhasesFind(titreDemarchesOctAnnulationSansPoints, aujourdhui, 'cxh')
-    ).toEqual([
+    expect(titrePhasesFind(titreDemarchesOctAnnulationSansPoints, aujourdhui, 'cxh')).toEqual([
       {
         dateDebut: '2000-01-02',
         dateFin: '2020-01-02',
         phaseStatutId: 'ech',
-        titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-oct01')
-      }
+        titreDemarcheId: newDemarcheId('h-cx-courdemanges-1988-oct01'),
+      },
     ])
   })
 
@@ -134,7 +118,7 @@ describe("phases d'une démarche", () => {
             typeId: 'dpu',
             statutId: 'acc',
             ordre: 2,
-            date: toCaminoDate('1970-09-17')
+            date: toCaminoDate('1970-09-17'),
           },
           {
             id: 'demarcheId1etapeId1',
@@ -142,9 +126,9 @@ describe("phases d'une démarche", () => {
             typeId: 'dex',
             statutId: 'acc',
             ordre: 1,
-            date: toCaminoDate('1970-09-09')
-          }
-        ]
+            date: toCaminoDate('1970-09-09'),
+          },
+        ],
       },
       {
         id: newDemarcheId('demarcheId2'),
@@ -162,7 +146,7 @@ describe("phases d'une démarche", () => {
             ordre: 2,
             date: toCaminoDate('1994-10-18'),
             dateFin: toCaminoDate('2044-10-18'),
-            duree: 600
+            duree: 600,
           },
           {
             id: 'demarcheId2EtapeId1',
@@ -171,9 +155,9 @@ describe("phases d'une démarche", () => {
             statutId: 'acc',
             ordre: 1,
             date: toCaminoDate('1994-10-13'),
-            duree: 600
-          }
-        ]
+            duree: 600,
+          },
+        ],
       },
       {
         id: newDemarcheId('demarcheId3'),
@@ -188,7 +172,7 @@ describe("phases d'une démarche", () => {
             typeId: 'mfr',
             statutId: 'fai',
             ordre: 1,
-            date: toCaminoDate('2019-10-22')
+            date: toCaminoDate('2019-10-22'),
           },
           {
             id: 'demarcheId3etapeId2',
@@ -196,7 +180,7 @@ describe("phases d'une démarche", () => {
             typeId: 'mdp',
             statutId: 'fai',
             ordre: 2,
-            date: toCaminoDate('2019-11-20')
+            date: toCaminoDate('2019-11-20'),
           },
           {
             id: 'demarcheId3etapeId5',
@@ -204,7 +188,7 @@ describe("phases d'une démarche", () => {
             typeId: 'dex',
             statutId: 'acc',
             ordre: 5,
-            date: toCaminoDate('2022-05-09')
+            date: toCaminoDate('2022-05-09'),
           },
           {
             id: 'demarcheId3etapeId6',
@@ -212,7 +196,7 @@ describe("phases d'une démarche", () => {
             typeId: 'dpu',
             statutId: 'acc',
             ordre: 6,
-            date: toCaminoDate('2022-05-09')
+            date: toCaminoDate('2022-05-09'),
           },
           {
             id: 'demarcheId3etapeId3',
@@ -220,7 +204,7 @@ describe("phases d'une démarche", () => {
             typeId: 'apd',
             statutId: 'fav',
             ordre: 3,
-            date: toCaminoDate('2020-05-11')
+            date: toCaminoDate('2020-05-11'),
           },
           {
             id: 'demarcheId3etapeId4',
@@ -229,10 +213,10 @@ describe("phases d'une démarche", () => {
             statutId: 'fav',
             ordre: 4,
             date: toCaminoDate('2020-06-30'),
-            slug: 'm-cx-pontaubert-1970-ren01-app01'
-          }
-        ]
-      }
+            slug: 'm-cx-pontaubert-1970-ren01-app01',
+          },
+        ],
+      },
     ]
     const aujourdhui = '2022-05-09'
     const titreTypeId = 'cxm'
@@ -243,14 +227,14 @@ describe("phases d'une démarche", () => {
         dateDebut: '1970-09-17',
         dateFin: '2018-12-31',
         phaseStatutId: 'ech',
-        titreDemarcheId: newDemarcheId('demarcheId1')
+        titreDemarcheId: newDemarcheId('demarcheId1'),
       },
       {
         dateDebut: '2018-12-31',
         dateFin: '2022-05-09',
         phaseStatutId: 'val',
-        titreDemarcheId: newDemarcheId('demarcheId2')
-      }
+        titreDemarcheId: newDemarcheId('demarcheId2'),
+      },
     ])
   })
 
@@ -269,7 +253,7 @@ describe("phases d'une démarche", () => {
             typeId: 'dpu',
             statutId: 'acc',
             ordre: 2,
-            date: toCaminoDate('1970-09-17')
+            date: toCaminoDate('1970-09-17'),
           },
           {
             id: 'demarcheId1etapeId1',
@@ -277,9 +261,9 @@ describe("phases d'une démarche", () => {
             typeId: 'dex',
             statutId: 'acc',
             ordre: 1,
-            date: toCaminoDate('1970-09-09')
-          }
-        ]
+            date: toCaminoDate('1970-09-09'),
+          },
+        ],
       },
       {
         id: newDemarcheId('demarcheId2'),
@@ -296,7 +280,7 @@ describe("phases d'une démarche", () => {
             ordre: 2,
             date: toCaminoDate('1994-10-18'),
             dateFin: toCaminoDate('2044-10-18'),
-            duree: 600
+            duree: 600,
           },
           {
             id: 'demarcheId2EtapeId1',
@@ -305,9 +289,9 @@ describe("phases d'une démarche", () => {
             statutId: 'acc',
             ordre: 1,
             date: toCaminoDate('1994-10-13'),
-            duree: 600
-          }
-        ]
+            duree: 600,
+          },
+        ],
       },
       {
         id: newDemarcheId('demarcheId3'),
@@ -322,7 +306,7 @@ describe("phases d'une démarche", () => {
             typeId: 'mfr',
             statutId: 'fai',
             ordre: 1,
-            date: toCaminoDate('2019-10-22')
+            date: toCaminoDate('2019-10-22'),
           },
           {
             id: 'demarcheId3etapeId2',
@@ -330,7 +314,7 @@ describe("phases d'une démarche", () => {
             typeId: 'mdp',
             statutId: 'fai',
             ordre: 2,
-            date: toCaminoDate('2019-11-20')
+            date: toCaminoDate('2019-11-20'),
           },
           {
             id: 'demarcheId3etapeId3',
@@ -338,7 +322,7 @@ describe("phases d'une démarche", () => {
             typeId: 'apd',
             statutId: 'fav',
             ordre: 3,
-            date: toCaminoDate('2020-05-11')
+            date: toCaminoDate('2020-05-11'),
           },
           {
             id: 'demarcheId3etapeId5',
@@ -346,7 +330,7 @@ describe("phases d'une démarche", () => {
             typeId: 'dim',
             statutId: 'acc',
             ordre: 5,
-            date: toCaminoDate('2022-05-09')
+            date: toCaminoDate('2022-05-09'),
           },
           {
             id: 'demarcheId3etapeId4',
@@ -354,10 +338,10 @@ describe("phases d'une démarche", () => {
             typeId: 'app',
             statutId: 'fav',
             ordre: 4,
-            date: toCaminoDate('2020-06-30')
-          }
-        ]
-      }
+            date: toCaminoDate('2020-06-30'),
+          },
+        ],
+      },
     ]
     const aujourdhui = '2022-05-09'
     const titreTypeId = 'cxm'
@@ -369,14 +353,14 @@ describe("phases d'une démarche", () => {
         dateDebut: '1970-09-17',
         dateFin: '2018-12-31',
         phaseStatutId: 'ech',
-        titreDemarcheId: newDemarcheId('demarcheId1')
+        titreDemarcheId: newDemarcheId('demarcheId1'),
       },
       {
         dateDebut: '2018-12-31',
         dateFin: '2022-05-09',
         phaseStatutId: 'val',
-        titreDemarcheId: newDemarcheId('demarcheId2')
-      }
+        titreDemarcheId: newDemarcheId('demarcheId2'),
+      },
     ])
   })
 })
diff --git a/packages/api/src/business/rules/titre-phases-find.ts b/packages/api/src/business/rules/titre-phases-find.ts
index a17e3fc0d..7b52407e0 100644
--- a/packages/api/src/business/rules/titre-phases-find.ts
+++ b/packages/api/src/business/rules/titre-phases-find.ts
@@ -1,13 +1,8 @@
 import { ITitrePhase } from '../../types.js'
 
-import titreDemarcheDateFinAndDureeFind, {
-  TitreDemarchePhaseFind
-} from './titre-demarche-date-fin-duree-find.js'
+import titreDemarcheDateFinAndDureeFind, { TitreDemarchePhaseFind } from './titre-demarche-date-fin-duree-find.js'
 import { titreDemarchePhaseCheck } from './titre-demarche-phase-check.js'
-import {
-  titreEtapesSortAscByOrdre,
-  titreEtapesSortDescByOrdre
-} from '../utils/titre-etapes-sort.js'
+import { titreEtapesSortAscByOrdre, titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort.js'
 import { titreEtapePublicationCheck } from './titre-etape-publication-check.js'
 import { titreDemarcheAnnulationDateFinFind } from './titre-demarche-annulation-date-fin-find.js'
 import { isDemarcheTypeOctroi } from 'camino-common/src/static/demarchesTypes.js'
@@ -21,15 +16,9 @@ import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
  *   (= ne contient pas d'étape avec des infos géo (points)
  * @param titreDemarches - liste d’étapes
  */
-const titreDemarcheAnnulationFind = (
-  titreDemarches: TitreDemarchePhaseFind[]
-) =>
+const titreDemarcheAnnulationFind = (titreDemarches: TitreDemarchePhaseFind[]) =>
   titreDemarches.find(
-    titreDemarche =>
-      ['acc', 'ter'].includes(titreDemarche.statutId!) &&
-      (titreDemarche.typeId === 'ret' ||
-        (titreDemarche.typeId === 'ren' &&
-          !titreDemarche.etapes!.find(te => te.points?.length)))
+    titreDemarche => ['acc', 'ter'].includes(titreDemarche.statutId!) && (titreDemarche.typeId === 'ret' || (titreDemarche.typeId === 'ren' && !titreDemarche.etapes!.find(te => te.points?.length)))
   )
 
 /**
@@ -38,94 +27,56 @@ const titreDemarcheAnnulationFind = (
  * @param aujourdhui - date du jour
  * @param titreTypeId - id du type de titre
  */
-export const titrePhasesFind = (
-  titreDemarches: TitreDemarchePhaseFind[],
-  aujourdhui: string,
-  titreTypeId: TitreTypeId
-) => {
+export const titrePhasesFind = (titreDemarches: TitreDemarchePhaseFind[], aujourdhui: string, titreTypeId: TitreTypeId) => {
   // filtre les démarches qui donnent lieu à des phases
-  const titreDemarchesFiltered = titreDemarches.filter(titreDemarche =>
-    titreDemarchePhaseCheck(
-      titreDemarche.typeId,
-      titreDemarche.statutId!,
-      titreTypeId,
-      titreDemarche.etapes
-    )
-  )
+  const titreDemarchesFiltered = titreDemarches.filter(titreDemarche => titreDemarchePhaseCheck(titreDemarche.typeId, titreDemarche.statutId!, titreTypeId, titreDemarche.etapes))
 
   const titreDemarcheAnnulation = titreDemarcheAnnulationFind(titreDemarches)
-  const titreDemarcheAnnulationDate =
-    titreDemarcheAnnulation?.etapes?.length &&
-    titreDemarcheAnnulationDateFinFind(titreDemarcheAnnulation.etapes)
-
-  return titreDemarchesFiltered.reduce(
-    (titrePhases: ITitrePhase[], titreDemarche, index) => {
-      let dateFin = titrePhaseDateFinFind(
-        titreDemarchesFiltered,
-        titreDemarche
-      ) as string
-
-      // si le titre contient une démarche d'annulation valide
-      // et la date de fin de la phase est postérieure à la date d'annulation
-      // alors la date de fin de la phase est la date d'annulation
-      if (
-        titreDemarcheAnnulationDate &&
-        titreDemarcheAnnulationDate < dateFin
-      ) {
-        dateFin = titreDemarcheAnnulationDate
-      }
-
-      const dateDebut = titrePhaseDateDebutFind(
-        titreDemarche,
-        titrePhases,
-        index,
-        titreTypeId
-      )
-
-      // dateFin et dateDebut ne seront jamais `null`
-      // car les démarches sont pré-filtrées
-
-      // si
-      // - la date du jour est plus récente que la date de fin
-      // le statut est valide
-      // sinon,
-      // - le statut est échu
-      const phaseStatutId = dateFin < aujourdhui ? 'ech' : 'val'
-
-      // TODO:
-      // est ce qu'on doit vérifier si une date de début
-      // est postérieure a une date d'annulation avant d'ajouter la phase ?
-
-      titrePhases.push({
-        titreDemarcheId: titreDemarche.id,
-        dateFin,
-        dateDebut,
-        phaseStatutId
-      })
-
-      return titrePhases
-    },
-    []
-  )
+  const titreDemarcheAnnulationDate = titreDemarcheAnnulation?.etapes?.length && titreDemarcheAnnulationDateFinFind(titreDemarcheAnnulation.etapes)
+
+  return titreDemarchesFiltered.reduce((titrePhases: ITitrePhase[], titreDemarche, index) => {
+    let dateFin = titrePhaseDateFinFind(titreDemarchesFiltered, titreDemarche) as string
+
+    // si le titre contient une démarche d'annulation valide
+    // et la date de fin de la phase est postérieure à la date d'annulation
+    // alors la date de fin de la phase est la date d'annulation
+    if (titreDemarcheAnnulationDate && titreDemarcheAnnulationDate < dateFin) {
+      dateFin = titreDemarcheAnnulationDate
+    }
+
+    const dateDebut = titrePhaseDateDebutFind(titreDemarche, titrePhases, index, titreTypeId)
+
+    // dateFin et dateDebut ne seront jamais `null`
+    // car les démarches sont pré-filtrées
+
+    // si
+    // - la date du jour est plus récente que la date de fin
+    // le statut est valide
+    // sinon,
+    // - le statut est échu
+    const phaseStatutId = dateFin < aujourdhui ? 'ech' : 'val'
+
+    // TODO:
+    // est ce qu'on doit vérifier si une date de début
+    // est postérieure a une date d'annulation avant d'ajouter la phase ?
+
+    titrePhases.push({
+      titreDemarcheId: titreDemarche.id,
+      dateFin,
+      dateDebut,
+      phaseStatutId,
+    })
+
+    return titrePhases
+  }, [])
 }
 
-const titrePhaseDateDebutFind = (
-  titreDemarche: TitreDemarchePhaseFind,
-  titrePhases: ITitrePhase[],
-  index: number,
-  titreTypeId: TitreTypeId
-) => {
+const titrePhaseDateDebutFind = (titreDemarche: TitreDemarchePhaseFind, titrePhases: ITitrePhase[], index: number, titreTypeId: TitreTypeId) => {
   // si
   // - la démarche est un octroi
   if (isDemarcheTypeOctroi(titreDemarche.typeId)) {
     // retourne une étape de publication si celle-ci possède une date de début
-    const etapePublicationHasDateDebut = titreEtapesSortDescByOrdre(
-      titreDemarche.etapes!
-    ).find(
-      titreEtape =>
-        titreEtapePublicationCheck(titreEtape.typeId, titreTypeId) &&
-        titreEtape.dateDebut
-    )
+    const etapePublicationHasDateDebut = titreEtapesSortDescByOrdre(titreDemarche.etapes!).find(titreEtape => titreEtapePublicationCheck(titreEtape.typeId, titreTypeId) && titreEtape.dateDebut)
 
     if (etapePublicationHasDateDebut?.dateDebut) {
       // la date de début est égale à la date de début de l'étape de publication
@@ -143,9 +94,7 @@ const titrePhaseDateDebutFind = (
   }
 
   // retourne la première étape de publication de la démarche
-  const titreEtapePublicationFirst = titreEtapesSortAscByOrdre(
-    titreDemarche.etapes!
-  ).find(te => titreEtapePublicationCheck(te.typeId, titreTypeId))
+  const titreEtapePublicationFirst = titreEtapesSortAscByOrdre(titreDemarche.etapes!).find(te => titreEtapePublicationCheck(te.typeId, titreTypeId))
 
   // sinon la date de début est égale à la date de la première étape de publication
   return titreEtapePublicationFirst!.date
@@ -159,12 +108,6 @@ const titrePhaseDateDebutFind = (
 //   d'un titre qui donnent lieu à des phases
 // - titreDemarche: la démarche dont on cherche la date de fin
 
-const titrePhaseDateFinFind = (
-  titreDemarchesFiltered: TitreDemarchePhaseFind[],
-  titreDemarche: TitreDemarchePhaseFind
-) =>
+const titrePhaseDateFinFind = (titreDemarchesFiltered: TitreDemarchePhaseFind[], titreDemarche: TitreDemarchePhaseFind) =>
   // sinon, calcule la date de fin en fonction des démarches
-  titreDemarcheDateFinAndDureeFind(
-    titreDemarchesFiltered.slice().reverse(),
-    titreDemarche.ordre!
-  ).dateFin
+  titreDemarcheDateFinAndDureeFind(titreDemarchesFiltered.slice().reverse(), titreDemarche.ordre!).dateFin
diff --git a/packages/api/src/business/rules/titre-prop-etape-find.test.ts b/packages/api/src/business/rules/titre-prop-etape-find.test.ts
index cb7eda371..52b42b25b 100644
--- a/packages/api/src/business/rules/titre-prop-etape-find.test.ts
+++ b/packages/api/src/business/rules/titre-prop-etape-find.test.ts
@@ -1,9 +1,6 @@
 import { ITitreDemarche, IPropId } from '../../types.js'
 
-import {
-  titreContenuTitreEtapeFind,
-  titrePropTitreEtapeFind
-} from './titre-prop-etape-find.js'
+import { titreContenuTitreEtapeFind, titrePropTitreEtapeFind } from './titre-prop-etape-find.js'
 
 import {
   titreDemarchesOctPointsMut,
@@ -19,7 +16,7 @@ import {
   titreDemarchesProPointsModPhaseVal,
   titreDemarchesMutPointsMod,
   titreDemarchesProModPhaseEch,
-  titreDemarchesOctTitulairesACO
+  titreDemarchesOctTitulairesACO,
 } from './__mocks__/titre-prop-etape-find-demarches.js'
 import { newDemarcheId } from '../../database/models/_format/id-create.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
@@ -27,183 +24,78 @@ import { describe, expect, test } from 'vitest'
 
 describe("id de l'étape d'une propriété valide (dé-normalise)", () => {
   test("trouve l'id de la dernière étape acceptée de la démarche d'octroi acceptée ayant la propriété 'points'", () => {
-    expect(
-      titrePropTitreEtapeFind(
-        'points',
-        titreDemarchesOctPointsMut.demarches,
-        titreDemarchesOctPointsMut.statutId
-      )?.id
-    ).toEqual('h-cx-courdemanges-1989-oct01-dpu01')
+    expect(titrePropTitreEtapeFind('points', titreDemarchesOctPointsMut.demarches, titreDemarchesOctPointsMut.statutId)?.id).toEqual('h-cx-courdemanges-1989-oct01-dpu01')
   })
 
   test("ne trouve pas d'id si la dernière étape acceptée de la dernière démarche acceptée possède une propriété 'points' vide", () => {
-    expect(
-      titrePropTitreEtapeFind(
-        'points',
-        titreDemarchesOctPointsVides.demarches,
-        titreDemarchesOctPointsVides.statutId
-      )
-    ).toBeNull()
+    expect(titrePropTitreEtapeFind('points', titreDemarchesOctPointsVides.demarches, titreDemarchesOctPointsVides.statutId)).toBeNull()
   })
 
   test("trouve l'id de la dernière étape acceptée de la démarche de mutation acceptée ayant la propriété 'points'", () => {
-    expect(
-      titrePropTitreEtapeFind(
-        'points',
-        titreDemarchesOctMutPoints.demarches,
-        titreDemarchesOctMutPoints.statutId
-      )?.id
-    ).toEqual('h-cx-courdemanges-1986-mut01-dpu01')
+    expect(titrePropTitreEtapeFind('points', titreDemarchesOctMutPoints.demarches, titreDemarchesOctMutPoints.statutId)?.id).toEqual('h-cx-courdemanges-1986-mut01-dpu01')
   })
 
   test("ne trouve pas d'id si aucune étape acceptée ne contient la propriété 'communes'", () => {
-    expect(
-      titrePropTitreEtapeFind(
-        'communes',
-        titreDemarchesOctMutPoints.demarches,
-        titreDemarchesOctMutPoints.statutId
-      )
-    ).toBeNull()
+    expect(titrePropTitreEtapeFind('communes', titreDemarchesOctMutPoints.demarches, titreDemarchesOctMutPoints.statutId)).toBeNull()
   })
 
   test("trouve l'id de la dernière étape acceptée de la dernière démarche d'octroi en instruction ayant la propriété 'points'", () => {
-    expect(
-      titrePropTitreEtapeFind(
-        'points',
-        titreDemarchesOctPointsMutInstruction.demarches,
-        titreDemarchesOctPointsMutInstruction.statutId
-      )?.id
-    ).toEqual('h-cx-courdemanges-1985-oct01-dpu01')
+    expect(titrePropTitreEtapeFind('points', titreDemarchesOctPointsMutInstruction.demarches, titreDemarchesOctPointsMutInstruction.statutId)?.id).toEqual('h-cx-courdemanges-1985-oct01-dpu01')
   })
 
   test("ne trouve pas d'id si l'étape est rejetée", () => {
-    expect(
-      titrePropTitreEtapeFind(
-        'points',
-        titreDemarchesOctAccDpuRej.demarches,
-        titreDemarchesOctAccDpuRej.statutId
-      )
-    ).toBeNull()
+    expect(titrePropTitreEtapeFind('points', titreDemarchesOctAccDpuRej.demarches, titreDemarchesOctAccDpuRej.statutId)).toBeNull()
   })
 
   test("trouve l'id de la dernière étape de formalisation de la demande de la dernière démarche d'octroi acceptée ayant la propriété 'points'", () => {
-    expect(
-      titrePropTitreEtapeFind(
-        'points',
-        titreDemarchesOctMfrPoints.demarches,
-        titreDemarchesOctMfrPoints.statutId
-      )?.id
-    ).toEqual('h-cx-courdemanges-1983-oct01-mfr01')
+    expect(titrePropTitreEtapeFind('points', titreDemarchesOctMfrPoints.demarches, titreDemarchesOctMfrPoints.statutId)?.id).toEqual('h-cx-courdemanges-1983-oct01-mfr01')
   })
 
   test("trouve l'id de la dernière étape de dpu d'une démarche de prolongation ou de demande de titre en instruction car l'étape contient un périmètre et le titre a le statut 'modification en instance' et aucune phase n'est valide", () => {
-    expect(
-      titrePropTitreEtapeFind(
-        'points',
-        titreDemarchesProPointsModPhaseEch.demarches,
-        titreDemarchesProPointsModPhaseEch.statutId
-      )?.id
-    ).toEqual('h-cx-courdemanges-1981-pro01-dpu01')
+    expect(titrePropTitreEtapeFind('points', titreDemarchesProPointsModPhaseEch.demarches, titreDemarchesProPointsModPhaseEch.statutId)?.id).toEqual('h-cx-courdemanges-1981-pro01-dpu01')
   })
 
   test("ne trouve pas l'id de la dernière étape de dpu d'une démarche de prolongation ou de demande de titre en instruction car l'étape contient un périmètre et le titre a le statut 'modification en instance' mais la phase est encore valide", () => {
-    expect(
-      titrePropTitreEtapeFind(
-        'points',
-        titreDemarchesProPointsModPhaseVal.demarches,
-        titreDemarchesProPointsModPhaseVal.statutId
-      )
-    ).toBeNull()
+    expect(titrePropTitreEtapeFind('points', titreDemarchesProPointsModPhaseVal.demarches, titreDemarchesProPointsModPhaseVal.statutId)).toBeNull()
   })
 
   test("ne trouve pas l'id de la dernière étape de dpu car aucune démarche de prolongation ou de demande de titre en instruction ne contient de périmètre et le titre a le statut 'modification en instance'", () => {
-    expect(
-      titrePropTitreEtapeFind(
-        'points',
-        titreDemarchesMutPointsMod.demarches,
-        titreDemarchesMutPointsMod.statutId
-      )
-    ).toBeNull()
+    expect(titrePropTitreEtapeFind('points', titreDemarchesMutPointsMod.demarches, titreDemarchesMutPointsMod.statutId)).toBeNull()
   })
 
   test.each(['points', 'surface', 'communes'] as IPropId[])(
     "trouve l'id de la dernière étape de n’importe quel type d'une démarche de prolongation ou de demande de titre en instruction car l'étape contient la propriété %s et le titre a le statut 'modification en instance' et aucune phase n'est valide",
     propId => {
-      expect(
-        titrePropTitreEtapeFind(
-          propId,
-          titreDemarchesProModPhaseEch.demarches,
-          titreDemarchesProModPhaseEch.statutId
-        )?.id
-      ).toEqual('h-cx-courdemanges-1981-pro01-dpu01')
+      expect(titrePropTitreEtapeFind(propId, titreDemarchesProModPhaseEch.demarches, titreDemarchesProModPhaseEch.statutId)?.id).toEqual('h-cx-courdemanges-1981-pro01-dpu01')
     }
   )
 
-  test.each(['titulaires', 'administrations', 'substances'] as IPropId[])(
-    "ne trouve pas l'id de la mod car la propriété %s n’est pas modifiée par cette étape",
-    propId => {
-      expect(
-        titrePropTitreEtapeFind(
-          propId,
-          titreDemarchesProModPhaseEch.demarches,
-          titreDemarchesProModPhaseEch.statutId
-        )?.id
-      ).toEqual('h-cx-courdemanges-1981-oct01-dpu01')
-    }
-  )
+  test.each(['titulaires', 'administrations', 'substances'] as IPropId[])("ne trouve pas l'id de la mod car la propriété %s n’est pas modifiée par cette étape", propId => {
+    expect(titrePropTitreEtapeFind(propId, titreDemarchesProModPhaseEch.demarches, titreDemarchesProModPhaseEch.statutId)?.id).toEqual('h-cx-courdemanges-1981-oct01-dpu01')
+  })
 
   test("trouve l'id de l’unique étape de la démarche d’octroi contenant la propriété 'titulaires'", () => {
-    expect(
-      titrePropTitreEtapeFind(
-        'titulaires',
-        titreDemarchesOctTitulairesACO.demarches,
-        titreDemarchesOctTitulairesACO.statutId
-      )?.id
-    ).toEqual('h-cx-courdemanges-1982-oct01-mfr01')
+    expect(titrePropTitreEtapeFind('titulaires', titreDemarchesOctTitulairesACO.demarches, titreDemarchesOctTitulairesACO.statutId)?.id).toEqual('h-cx-courdemanges-1982-oct01-mfr01')
   })
 
   // amodiataires
 
   test("trouve pas d'id si la démarche de l'étape contenant la propriété 'amodiataires' a une phase valide", () => {
-    expect(
-      titrePropTitreEtapeFind(
-        'amodiataires',
-        titreDemarchesOctAmodiatairesPassee.demarches,
-        titreDemarchesOctAmodiatairesPassee.statutId
-      )?.id
-    ).toBe('h-cx-courdemanges-1982-oct01-dpu01')
+    expect(titrePropTitreEtapeFind('amodiataires', titreDemarchesOctAmodiatairesPassee.demarches, titreDemarchesOctAmodiatairesPassee.statutId)?.id).toBe('h-cx-courdemanges-1982-oct01-dpu01')
   })
 
   test("trouve l'id de dernière étape contenant la propriété 'amodiataires' dont la démarche précédente a une phase valide", () => {
-    expect(
-      titrePropTitreEtapeFind(
-        'amodiataires',
-        titreDemarchesOctAmodiatairesValide.demarches,
-        titreDemarchesOctAmodiatairesValide.statutId
-      )?.id
-    ).toEqual('h-cx-courdemanges-1982-amo01-dpu01')
+    expect(titrePropTitreEtapeFind('amodiataires', titreDemarchesOctAmodiatairesValide.demarches, titreDemarchesOctAmodiatairesValide.statutId)?.id).toEqual('h-cx-courdemanges-1982-amo01-dpu01')
   })
 
   test("ne trouve pas l'id de la dernière étape contenant la propriété 'amodiataires'", () => {
-    expect(
-      titrePropTitreEtapeFind(
-        'amodiataires',
-        titreDemarchesOctAmodiatairesMod.demarches,
-        titreDemarchesOctAmodiatairesMod.statutId
-      )
-    ).toBeNull()
+    expect(titrePropTitreEtapeFind('amodiataires', titreDemarchesOctAmodiatairesMod.demarches, titreDemarchesOctAmodiatairesMod.statutId)).toBeNull()
   })
 })
 
 describe("id de l'étape qui a un contenu", () => {
   test("retourne null si aucune étape n'est trouvé", () => {
-    const etape1 = titreContenuTitreEtapeFind(
-      { sectionId: 'arm', elementId: 'mecanisee' },
-      [
-        { id: newDemarcheId('demarche-id'), etapes: [{ id: 'etape-id' }] }
-      ] as ITitreDemarche[],
-      'val'
-    )
+    const etape1 = titreContenuTitreEtapeFind({ sectionId: 'arm', elementId: 'mecanisee' }, [{ id: newDemarcheId('demarche-id'), etapes: [{ id: 'etape-id' }] }] as ITitreDemarche[], 'val')
 
     const etape2 = titreContenuTitreEtapeFind(
       { sectionId: 'arm', elementId: 'mecanisee' },
@@ -211,8 +103,8 @@ describe("id de l'étape qui a un contenu", () => {
         {
           id: newDemarcheId('demarche-id'),
           statutId: 'acc',
-          etapes: [{ id: 'etape-id', statutId: 'fai' }]
-        }
+          etapes: [{ id: 'etape-id', statutId: 'fai' }],
+        },
       ] as ITitreDemarche[],
       'val'
     )
@@ -228,7 +120,7 @@ describe("id de l'étape qui a un contenu", () => {
             dateDebut: '2020-01-01',
             dateFin: '2020-01-02',
             phaseStatutId: 'val',
-            titreDemarcheId: newDemarcheId('demarche-id')
+            titreDemarcheId: newDemarcheId('demarche-id'),
           },
           etapes: [
             {
@@ -237,10 +129,10 @@ describe("id de l'étape qui a un contenu", () => {
               typeId: 'dpu',
               date: toCaminoDate('2020-01-01'),
               statutId: 'acc',
-              contenu: { arm: { mecanisee: true } }
-            }
-          ]
-        }
+              contenu: { arm: { mecanisee: true } },
+            },
+          ],
+        },
       ] as ITitreDemarche[],
       'mod'
     )
@@ -265,9 +157,9 @@ describe("id de l'étape qui a un contenu", () => {
               typeId: 'dpu',
               date: toCaminoDate('2020-01-03'),
               statutId: 'acc',
-              contenu: { arm: { mecanisee: true } }
-            }
-          ]
+              contenu: { arm: { mecanisee: true } },
+            },
+          ],
         },
         {
           id: 'demarche-id-2',
@@ -279,10 +171,10 @@ describe("id de l'étape qui a un contenu", () => {
               titreDemarcheId: newDemarcheId('demarche-id'),
               typeId: 'dex',
               date: '2020-01-01',
-              statutId: 'dex'
-            }
-          ]
-        }
+              statutId: 'dex',
+            },
+          ],
+        },
       ] as ITitreDemarche[],
       'val'
     )
@@ -301,10 +193,10 @@ describe("id de l'étape qui a un contenu", () => {
               typeId: 'dpu',
               date: toCaminoDate('2020-01-01'),
               statutId: 'acc',
-              contenu: { arm: { mecanisee: true } }
-            }
-          ]
-        }
+              contenu: { arm: { mecanisee: true } },
+            },
+          ],
+        },
       ] as ITitreDemarche[],
       'mod'
     )
@@ -328,10 +220,10 @@ describe("id de l'étape qui a un contenu", () => {
               typeId: 'mfr',
               date: toCaminoDate('2020-01-03'),
               statutId: 'aco',
-              contenu: { arm: { mecanisee: true } }
-            }
-          ]
-        }
+              contenu: { arm: { mecanisee: true } },
+            },
+          ],
+        },
       ] as ITitreDemarche[],
       'val'
     )
@@ -353,10 +245,10 @@ describe("id de l'étape qui a un contenu", () => {
               typeId: 'mfr',
               date: toCaminoDate('2020-01-03'),
               statutId: 'aco',
-              contenu: { arm: { mecanisee: true } }
-            }
-          ]
-        }
+              contenu: { arm: { mecanisee: true } },
+            },
+          ],
+        },
       ] as ITitreDemarche[],
       'dmi'
     )
diff --git a/packages/api/src/business/rules/titre-prop-etape-find.ts b/packages/api/src/business/rules/titre-prop-etape-find.ts
index bd9113e6e..3e9bbdf66 100644
--- a/packages/api/src/business/rules/titre-prop-etape-find.ts
+++ b/packages/api/src/business/rules/titre-prop-etape-find.ts
@@ -2,38 +2,18 @@
 // de la dernière démarche acceptée
 // pour laquelle la propriété existe
 
-import {
-  DemarchesStatutsIds,
-  DemarcheStatutId
-} from 'camino-common/src/static/demarchesStatuts.js'
-import {
-  DEMARCHES_TYPES_IDS,
-  DemarcheTypeId,
-  isDemarcheTypeOctroi
-} from 'camino-common/src/static/demarchesTypes.js'
+import { DemarchesStatutsIds, DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts.js'
+import { DEMARCHES_TYPES_IDS, DemarcheTypeId, isDemarcheTypeOctroi } from 'camino-common/src/static/demarchesTypes.js'
 import { PHASES_STATUTS_IDS } from 'camino-common/src/static/phasesStatuts.js'
-import {
-  TitresStatutIds,
-  TitreStatutId
-} from 'camino-common/src/static/titresStatuts.js'
-import {
-  ITitreDemarche,
-  ITitreEtape,
-  IPropId,
-  IContenuId
-} from '../../types.js'
+import { TitresStatutIds, TitreStatutId } from 'camino-common/src/static/titresStatuts.js'
+import { ITitreDemarche, ITitreEtape, IPropId, IContenuId } from '../../types.js'
 
 import { propValueFind } from '../utils/prop-value-find.js'
 import titreDemarchesSortAsc from '../utils/titre-elements-sort-asc.js'
 import { titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort.js'
 
-const etapeAmodiataireFind = (
-  titreEtape: ITitreEtape,
-  titreDemarches: ITitreDemarche[]
-) => {
-  const titreDemarche = titreDemarches.find(
-    td => td.id === titreEtape.titreDemarcheId
-  )
+const etapeAmodiataireFind = (titreEtape: ITitreEtape, titreDemarches: ITitreDemarche[]) => {
+  const titreDemarche = titreDemarches.find(td => td.id === titreEtape.titreDemarcheId)
 
   if (titreDemarche!.phase?.phaseStatutId === 'val') {
     return true
@@ -48,12 +28,7 @@ const etapeAmodiataireFind = (
   return false
 }
 
-const etapeValideCheck = (
-  titreEtape: ITitreEtape,
-  titreDemarcheTypeId: DemarcheTypeId,
-  titreStatutId: string,
-  propId?: IPropId
-) => {
+const etapeValideCheck = (titreEtape: ITitreEtape, titreDemarcheTypeId: DemarcheTypeId, titreStatutId: string, propId?: IPropId) => {
   // si l'étape est une demande et que le titre est en demande initiale (statut réservé au octroi)
   if (titreEtape.typeId === 'mfr' && titreStatutId === 'dmi') {
     return true
@@ -69,66 +44,39 @@ const etapeValideCheck = (
     return true
   }
   // si il s'agit d'une étape de décision
-  if (
-    ['dpu', 'dup', 'rpu', 'dex', 'dux', 'dim', 'def', 'sco', 'aco'].includes(
-      titreEtape.typeId
-    )
-  ) {
+  if (['dpu', 'dup', 'rpu', 'dex', 'dux', 'dim', 'def', 'sco', 'aco'].includes(titreEtape.typeId)) {
     return true
   }
 
   // si
   // - le titre est en modification en instance
   // - et que la prop est points, surface, substances ou communes
-  if (
-    propId &&
-    titreStatutId &&
-    ['points', 'surface', 'communes', 'forets'].includes(propId) &&
-    titreStatutId === 'mod'
-  ) {
+  if (propId && titreStatutId && ['points', 'surface', 'communes', 'forets'].includes(propId) && titreStatutId === 'mod') {
     return true
   }
 
   return false
 }
 
-const titreDemarchePropTitreEtapeFind = (
-  propId: IPropId,
-  titreDemarcheEtapes: ITitreEtape[],
-  titreDemarcheTypeId: DemarcheTypeId,
-  titreStatutId: string,
-  titreDemarches: ITitreDemarche[]
-) =>
-  titreEtapesSortDescByOrdre(titreDemarcheEtapes).find(
-    (titreEtape: ITitreEtape) => {
-      const isEtapeValide = etapeValideCheck(
-        titreEtape,
-        titreDemarcheTypeId,
-        titreStatutId,
-        propId
-      )
-
-      if (!isEtapeValide) return false
+const titreDemarchePropTitreEtapeFind = (propId: IPropId, titreDemarcheEtapes: ITitreEtape[], titreDemarcheTypeId: DemarcheTypeId, titreStatutId: string, titreDemarches: ITitreDemarche[]) =>
+  titreEtapesSortDescByOrdre(titreDemarcheEtapes).find((titreEtape: ITitreEtape) => {
+    const isEtapeValide = etapeValideCheck(titreEtape, titreDemarcheTypeId, titreStatutId, propId)
 
-      const prop = propValueFind(titreEtape, propId)
+    if (!isEtapeValide) return false
 
-      if (prop === null) return false
+    const prop = propValueFind(titreEtape, propId)
 
-      if (propId === 'amodiataires') {
-        return etapeAmodiataireFind(titreEtape, titreDemarches)
-      }
+    if (prop === null) return false
 
-      return true
+    if (propId === 'amodiataires') {
+      return etapeAmodiataireFind(titreEtape, titreDemarches)
     }
-  ) || null
+
+    return true
+  }) || null
 
 // retourne la première étape valide qui contient l'élément dans la section
-const titreDemarcheContenuTitreEtapeFind = (
-  { sectionId, elementId }: IContenuId,
-  titreDemarcheEtapes: ITitreEtape[],
-  titreDemarcheTypeId: DemarcheTypeId,
-  titreStatutId: string
-) =>
+const titreDemarcheContenuTitreEtapeFind = ({ sectionId, elementId }: IContenuId, titreDemarcheEtapes: ITitreEtape[], titreDemarcheTypeId: DemarcheTypeId, titreStatutId: string) =>
   titreEtapesSortDescByOrdre(titreDemarcheEtapes).find(
     titreEtape =>
       etapeValideCheck(titreEtape, titreDemarcheTypeId, titreStatutId) &&
@@ -144,27 +92,14 @@ const titreDemarcheContenuTitreEtapeFind = (
 // - ou le titre a le statut modification en instance
 //   - et la démarche est une prolongation ou une demande de titre
 //   - et la démarche n'a aucune phase valide
-const demarcheEligibleCheck = (
-  titreDemarcheStatutId: DemarcheStatutId,
-  titreDemarcheTypeId: DemarcheTypeId,
-  titreStatutId: TitreStatutId,
-  titreDemarches: ITitreDemarche[]
-) =>
-  [DemarchesStatutsIds.Accepte, DemarchesStatutsIds.Termine].includes(
-    titreDemarcheStatutId
-  ) ||
+const demarcheEligibleCheck = (titreDemarcheStatutId: DemarcheStatutId, titreDemarcheTypeId: DemarcheTypeId, titreStatutId: TitreStatutId, titreDemarches: ITitreDemarche[]) =>
+  [DemarchesStatutsIds.Accepte, DemarchesStatutsIds.Termine].includes(titreDemarcheStatutId) ||
   isDemarcheTypeOctroi(titreDemarcheTypeId) ||
   (titreStatutId === TitresStatutIds.ModificationEnInstance &&
-    [
-      DEMARCHES_TYPES_IDS.Prolongation,
-      DEMARCHES_TYPES_IDS.Prolongation1,
-      DEMARCHES_TYPES_IDS.Prolongation2,
-      DEMARCHES_TYPES_IDS.Prorogation,
-      DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation
-    ].includes(titreDemarcheTypeId) &&
-    !titreDemarches.find(
-      td => td.phase && td.phase.phaseStatutId === PHASES_STATUTS_IDS.Valide
-    ))
+    [DEMARCHES_TYPES_IDS.Prolongation, DEMARCHES_TYPES_IDS.Prolongation1, DEMARCHES_TYPES_IDS.Prolongation2, DEMARCHES_TYPES_IDS.Prorogation, DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation].includes(
+      titreDemarcheTypeId
+    ) &&
+    !titreDemarches.find(td => td.phase && td.phase.phaseStatutId === PHASES_STATUTS_IDS.Valide))
 
 /**
  * Trouve l'id de l'étape de référence pour une propriété
@@ -174,40 +109,20 @@ const demarcheEligibleCheck = (
  * @returns id d'une etape
  */
 
-const titrePropTitreEtapeFind = (
-  propId: IPropId,
-  titreDemarches: ITitreDemarche[],
-  titreStatutId: TitreStatutId
-): ITitreEtape | null => {
+const titrePropTitreEtapeFind = (propId: IPropId, titreDemarches: ITitreDemarche[], titreStatutId: TitreStatutId): ITitreEtape | null => {
   const titreDemarchesSorted = titreDemarchesSortAsc(titreDemarches).reverse()
 
-  const titreEtape = titreDemarchesSorted.reduce(
-    (etape: ITitreEtape | null, titreDemarche: ITitreDemarche) => {
-      // si une étape a déjà été trouvée
-      if (etape) return etape
-
-      // si la démarche n'est pas éligible
-      if (
-        !demarcheEligibleCheck(
-          titreDemarche.statutId!,
-          titreDemarche.typeId,
-          titreStatutId,
-          titreDemarches
-        )
-      ) {
-        return null
-      }
-
-      return titreDemarchePropTitreEtapeFind(
-        propId,
-        titreDemarche.etapes!,
-        titreDemarche.typeId,
-        titreStatutId,
-        titreDemarchesSorted
-      )
-    },
-    null
-  )
+  const titreEtape = titreDemarchesSorted.reduce((etape: ITitreEtape | null, titreDemarche: ITitreDemarche) => {
+    // si une étape a déjà été trouvée
+    if (etape) return etape
+
+    // si la démarche n'est pas éligible
+    if (!demarcheEligibleCheck(titreDemarche.statutId!, titreDemarche.typeId, titreStatutId, titreDemarches)) {
+      return null
+    }
+
+    return titreDemarchePropTitreEtapeFind(propId, titreDemarche.etapes!, titreDemarche.typeId, titreStatutId, titreDemarchesSorted)
+  }, null)
 
   return titreEtape
 }
@@ -220,38 +135,19 @@ const titrePropTitreEtapeFind = (
  * @returns une étape ou null
  */
 
-const titreContenuTitreEtapeFind = (
-  { sectionId, elementId }: IContenuId,
-  titreDemarches: ITitreDemarche[],
-  titreStatutId: TitreStatutId
-) => {
+const titreContenuTitreEtapeFind = ({ sectionId, elementId }: IContenuId, titreDemarches: ITitreDemarche[], titreStatutId: TitreStatutId) => {
   const titreDemarchesSorted = titreDemarchesSortAsc(titreDemarches).reverse()
 
-  const titreEtape = titreDemarchesSorted.reduce(
-    (etape: ITitreEtape | null, titreDemarche: ITitreDemarche) => {
-      // si une étape a déjà été trouvée
-      if (etape) return etape
-
-      if (
-        !demarcheEligibleCheck(
-          titreDemarche.statutId!,
-          titreDemarche.typeId,
-          titreStatutId,
-          titreDemarches
-        )
-      ) {
-        return null
-      }
-
-      return titreDemarcheContenuTitreEtapeFind(
-        { sectionId, elementId },
-        titreDemarche.etapes!,
-        titreDemarche.typeId,
-        titreStatutId
-      )
-    },
-    null
-  )
+  const titreEtape = titreDemarchesSorted.reduce((etape: ITitreEtape | null, titreDemarche: ITitreDemarche) => {
+    // si une étape a déjà été trouvée
+    if (etape) return etape
+
+    if (!demarcheEligibleCheck(titreDemarche.statutId!, titreDemarche.typeId, titreStatutId, titreDemarches)) {
+      return null
+    }
+
+    return titreDemarcheContenuTitreEtapeFind({ sectionId, elementId }, titreDemarche.etapes!, titreDemarche.typeId, titreStatutId)
+  }, null)
 
   return titreEtape
 }
diff --git a/packages/api/src/business/rules/titre-statut-id-find.test.ts b/packages/api/src/business/rules/titre-statut-id-find.test.ts
index 4d7e36e34..8445d80b5 100644
--- a/packages/api/src/business/rules/titre-statut-id-find.test.ts
+++ b/packages/api/src/business/rules/titre-statut-id-find.test.ts
@@ -1,7 +1,4 @@
-import {
-  titreInSurvieProvisoire,
-  titreStatutIdFind
-} from './titre-statut-id-find.js'
+import { titreInSurvieProvisoire, titreStatutIdFind } from './titre-statut-id-find.js'
 
 import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts.js'
 import {
@@ -14,7 +11,7 @@ import {
   titreDemarchesOctroiClasse,
   titreDemarchesOctroiRetire,
   titreDemarchesInstruction,
-  titrePERDemarchesProlongation
+  titrePERDemarchesProlongation,
 } from './__mocks__/titre-statut-id-find-titres.js'
 import { newDemarcheId } from '../../database/models/_format/id-create.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
@@ -40,45 +37,31 @@ describe("statut d'un titre", () => {
   })
 
   test("le statut d'un titre dont l'unique démarche est un octroi en instruction est “dmi”", () => {
-    expect(
-      titreStatutIdFind(aujourdhui, titreDemarchesOctroiInstruction)
-    ).toEqual('dmi')
+    expect(titreStatutIdFind(aujourdhui, titreDemarchesOctroiInstruction)).toEqual('dmi')
   })
 
   test("le statut d'un titre dont l'unique démarche est un octroi déposé est “dmi”", () => {
-    expect(titreStatutIdFind(aujourdhui, titreDemarchesOctroiDepose)).toEqual(
-      'dmi'
-    )
+    expect(titreStatutIdFind(aujourdhui, titreDemarchesOctroiDepose)).toEqual('dmi')
   })
 
   test("le statut d'un titre dont l'unique démarche est un octroi rejeté est “dmc”", () => {
-    expect(titreStatutIdFind(aujourdhui, titreDemarchesOctroiRejete)).toEqual(
-      'dmc'
-    )
+    expect(titreStatutIdFind(aujourdhui, titreDemarchesOctroiRejete)).toEqual('dmc')
   })
 
   test("le statut d'un titre dont l'unique démarche est un octroi classé sans suite est “dmc”", () => {
-    expect(titreStatutIdFind(aujourdhui, titreDemarchesOctroiClasse)).toEqual(
-      'dmc'
-    )
+    expect(titreStatutIdFind(aujourdhui, titreDemarchesOctroiClasse)).toEqual('dmc')
   })
 
   test("le statut d'un titre dont l'unique démarche est un octroi retiré est “dmc”", () => {
-    expect(titreStatutIdFind(aujourdhui, titreDemarchesOctroiRetire)).toEqual(
-      'dmc'
-    )
+    expect(titreStatutIdFind(aujourdhui, titreDemarchesOctroiRetire)).toEqual('dmc')
   })
 
   test("le statut d'un titre avec une démarche en instruction est “mod”", () => {
-    expect(titreStatutIdFind(aujourdhui, titreDemarchesInstruction)).toEqual(
-      'mod'
-    )
+    expect(titreStatutIdFind(aujourdhui, titreDemarchesInstruction)).toEqual('mod')
   })
 
   test("le statut d'un titre PER M ou W avec une prolongation déposée est “mod”", () => {
-    expect(
-      titreStatutIdFind(aujourdhui, titrePERDemarchesProlongation)
-    ).toEqual('mod')
+    expect(titreStatutIdFind(aujourdhui, titrePERDemarchesProlongation)).toEqual('mod')
   })
 
   test("le statut d'un titre PER M ou W avec une prolongation2 déposée est “mod”", () => {
@@ -97,9 +80,9 @@ describe("statut d'un titre", () => {
               typeId: 'mfr',
               statutId: 'fai',
               id: 'id',
-              titreDemarcheId: newDemarcheId('m-pr-saint-pierre-2014-pro02')
-            }
-          ]
+              titreDemarcheId: newDemarcheId('m-pr-saint-pierre-2014-pro02'),
+            },
+          ],
         },
         {
           id: newDemarcheId('m-pr-saint-pierre-2014-pro01'),
@@ -117,9 +100,9 @@ describe("statut d'un titre", () => {
               titreDemarcheId: newDemarcheId('m-pr-saint-pierre-2014-pro01'),
               ordre: 1,
               dateDebut: null,
-              dateFin: toCaminoDate('2020-10-01')
-            }
-          ]
+              dateFin: toCaminoDate('2020-10-01'),
+            },
+          ],
         },
         {
           id: newDemarcheId('m-pr-saint-pierre-2014-oct01'),
@@ -137,10 +120,10 @@ describe("statut d'un titre", () => {
               ordre: 1,
               date: toCaminoDate('1014-04-01'),
               dateDebut: null,
-              dateFin: toCaminoDate('2020-04-01')
-            }
-          ]
-        }
+              dateFin: toCaminoDate('2020-04-01'),
+            },
+          ],
+        },
       ])
     ).toEqual('mod')
   })
@@ -161,9 +144,9 @@ describe("statut d'un titre", () => {
               typeId: 'mfr',
               statutId: 'fai',
               id: 'id',
-              titreDemarcheId: newDemarcheId('m-pr-saint-pierre-2014-pro02')
-            }
-          ]
+              titreDemarcheId: newDemarcheId('m-pr-saint-pierre-2014-pro02'),
+            },
+          ],
         },
         {
           id: newDemarcheId('m-pr-saint-pierre-2014-pro01'),
@@ -181,9 +164,9 @@ describe("statut d'un titre", () => {
               titreDemarcheId: newDemarcheId('m-pr-saint-pierre-2014-pro01'),
               ordre: 1,
               dateDebut: null,
-              dateFin: toCaminoDate('2020-10-01')
-            }
-          ]
+              dateFin: toCaminoDate('2020-10-01'),
+            },
+          ],
         },
         {
           id: newDemarcheId('m-pr-saint-pierre-2014-oct01'),
@@ -201,10 +184,10 @@ describe("statut d'un titre", () => {
               ordre: 1,
               date: toCaminoDate('1014-04-01'),
               dateDebut: null,
-              dateFin: toCaminoDate('2020-04-01')
-            }
-          ]
-        }
+              dateFin: toCaminoDate('2020-04-01'),
+            },
+          ],
+        },
       ])
     ).toEqual(true)
   })
@@ -228,9 +211,9 @@ describe("statut d'un titre", () => {
               titreDemarcheId: newDemarcheId('m-pr-saint-pierre-2014-pro01'),
               ordre: 1,
               dateDebut: null,
-              dateFin: toCaminoDate('2020-10-01')
-            }
-          ]
+              dateFin: toCaminoDate('2020-10-01'),
+            },
+          ],
         },
         {
           id: newDemarcheId('m-pr-saint-pierre-2014-oct01'),
@@ -248,10 +231,10 @@ describe("statut d'un titre", () => {
               ordre: 1,
               date: toCaminoDate('1014-04-01'),
               dateDebut: null,
-              dateFin: toCaminoDate('2020-04-01')
-            }
-          ]
-        }
+              dateFin: toCaminoDate('2020-04-01'),
+            },
+          ],
+        },
       ])
     ).toEqual(false)
   })
diff --git a/packages/api/src/business/rules/titre-statut-id-find.ts b/packages/api/src/business/rules/titre-statut-id-find.ts
index 61de59ca3..d6f16c6be 100644
--- a/packages/api/src/business/rules/titre-statut-id-find.ts
+++ b/packages/api/src/business/rules/titre-statut-id-find.ts
@@ -6,13 +6,8 @@ import { DEMARCHES_TYPES_IDS } from 'camino-common/src/static/demarchesTypes.js'
 import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts.js'
 import { ETAPES_TYPES } from 'camino-common/src/static/etapesTypes.js'
 
-export const titreStatutIdFind = (
-  aujourdhui: string,
-  demarches: ITitreDemarche[] | null | undefined
-) => {
-  const titreDemarches = demarches
-    ? demarches.filter(d => !d.type!.travaux)
-    : null
+export const titreStatutIdFind = (aujourdhui: string, demarches: ITitreDemarche[] | null | undefined) => {
+  const titreDemarches = demarches ? demarches.filter(d => !d.type!.travaux) : null
 
   if (!titreDemarches || !titreDemarches.length) return 'ind'
 
@@ -21,13 +16,7 @@ export const titreStatutIdFind = (
   if (titreDemarches.every(d => d.statutId === 'ind')) return 'ind'
 
   // s'il y a une seule démarche (octroi)
-  if (
-    titreDemarches.length === 1 &&
-    ['oct', 'vut', 'vct'].includes(titreDemarches[0].typeId) &&
-    ['eco', 'ins', 'dep', 'rej', 'cls', 'des'].includes(
-      titreDemarches[0].statutId!
-    )
-  ) {
+  if (titreDemarches.length === 1 && ['oct', 'vut', 'vct'].includes(titreDemarches[0].typeId) && ['eco', 'ins', 'dep', 'rej', 'cls', 'des'].includes(titreDemarches[0].statutId!)) {
     // si le statut de la démarche est en instruction ou déposée
     // -> le statut du titre est demande initiale
     if (['eco', 'ins', 'dep'].includes(titreDemarches[0].statutId!)) {
@@ -63,54 +52,27 @@ export const titreStatutIdFind = (
 
 // et qu'une démarche de prolongation est déposée et a été déposée avant l'échéance de l'octroi ou d’une prolongation précédente
 // -> le statut du titre est modification en instance (survie provisoire)
-export const titreInSurvieProvisoire = (
-  demarches: ITitreDemarche[] | null | undefined
-): boolean => {
+export const titreInSurvieProvisoire = (demarches: ITitreDemarche[] | null | undefined): boolean => {
   if (demarches?.length) {
     const octroi = demarches.find(d => d.typeId === DEMARCHES_TYPES_IDS.Octroi)
 
     if (octroi) {
-      const dateFin = titreDateFinFind(
-        demarches.filter(({ typeId }) =>
-          [
-            DEMARCHES_TYPES_IDS.Octroi,
-            DEMARCHES_TYPES_IDS.Prolongation1,
-            DEMARCHES_TYPES_IDS.Prolongation
-          ].includes(typeId)
-        )
-      )
+      const dateFin = titreDateFinFind(demarches.filter(({ typeId }) => [DEMARCHES_TYPES_IDS.Octroi, DEMARCHES_TYPES_IDS.Prolongation1, DEMARCHES_TYPES_IDS.Prolongation].includes(typeId)))
 
       if (
         dateFin &&
         demarches.some(d => {
-          if (
-            ![
-              DEMARCHES_TYPES_IDS.Prolongation1,
-              DEMARCHES_TYPES_IDS.Prolongation2,
-              DEMARCHES_TYPES_IDS.Prolongation
-            ].includes(d.typeId)
-          ) {
+          if (![DEMARCHES_TYPES_IDS.Prolongation1, DEMARCHES_TYPES_IDS.Prolongation2, DEMARCHES_TYPES_IDS.Prolongation].includes(d.typeId)) {
             return false
           }
 
-          if (
-            ![
-              DemarchesStatutsIds.EnConstruction,
-              DemarchesStatutsIds.Depose
-            ].includes(d.statutId)
-          ) {
+          if (![DemarchesStatutsIds.EnConstruction, DemarchesStatutsIds.Depose].includes(d.statutId)) {
             return false
           }
 
-          let demandeProlongation = d.etapes?.find(
-            e =>
-              e.typeId === ETAPES_TYPES.demande &&
-              e.statutId !== ETAPES_STATUTS.EN_CONSTRUCTION
-          )
+          let demandeProlongation = d.etapes?.find(e => e.typeId === ETAPES_TYPES.demande && e.statutId !== ETAPES_STATUTS.EN_CONSTRUCTION)
           if (!demandeProlongation) {
-            demandeProlongation = d.etapes?.find(
-              e => e.typeId === ETAPES_TYPES.depotDeLaDemande
-            )
+            demandeProlongation = d.etapes?.find(e => e.typeId === ETAPES_TYPES.depotDeLaDemande)
           }
 
           return demandeProlongation && demandeProlongation.date < dateFin
diff --git a/packages/api/src/business/titre-demarche-update.ts b/packages/api/src/business/titre-demarche-update.ts
index 8769c4efa..6befe5f62 100644
--- a/packages/api/src/business/titre-demarche-update.ts
+++ b/packages/api/src/business/titre-demarche-update.ts
@@ -15,10 +15,7 @@ import { titresCoordonneesUpdate } from './processes/titres-coordonnees-update.j
 import { titresActivitesPropsUpdate } from './processes/titres-activites-props-update.js'
 import { userSuper } from '../database/user-super.js'
 
-const titreDemarcheUpdate = async (
-  titreDemarcheId: string | null,
-  titreId: string
-) => {
+const titreDemarcheUpdate = async (titreDemarcheId: string | null, titreId: string) => {
   try {
     console.info()
     console.info('- - -')
@@ -35,30 +32,19 @@ const titreDemarcheUpdate = async (
     // si c'est une création ou modification
     // pas une suppression
     if (titreDemarcheId) {
-      titresDemarchesPublicUpdated = await titresDemarchesPublicUpdate([
-        titreId
-      ])
+      titresDemarchesPublicUpdated = await titresDemarchesPublicUpdate([titreId])
     }
 
-    const titresDemarchesOrdreUpdated = await titresDemarchesOrdreUpdate([
-      titreId
-    ])
+    const titresDemarchesOrdreUpdated = await titresDemarchesOrdreUpdate([titreId])
     const titresStatutIdUpdated = await titresStatutIdsUpdate([titreId])
     const titresPublicUpdated = await titresPublicUpdate([titreId])
-    const [titresPhasesUpdated = [], titresPhasesDeleted = []] =
-      await titresPhasesUpdate([titreId])
+    const [titresPhasesUpdated = [], titresPhasesDeleted = []] = await titresPhasesUpdate([titreId])
     const titresDatesUpdated = await titresDatesUpdate([titreId])
-    const titresPropsEtapesIdsUpdated = await titresPropsEtapesIdsUpdate([
-      titreId
-    ])
-    const titresContenusEtapesIdsUpdated = await titresContenusEtapesIdsUpdate([
-      titreId
-    ])
+    const titresPropsEtapesIdsUpdated = await titresPropsEtapesIdsUpdate([titreId])
+    const titresContenusEtapesIdsUpdated = await titresContenusEtapesIdsUpdate([titreId])
     const titresCoordonneesUpdated = await titresCoordonneesUpdate([titreId])
     const titresActivitesCreated = await titresActivitesUpdate([titreId])
-    const titresActivitesPropsUpdated = await titresActivitesPropsUpdate([
-      titreId
-    ])
+    const titresActivitesPropsUpdated = await titresActivitesPropsUpdate([titreId])
 
     const titresUpdatedIndex = await titresSlugsUpdate([titreId])
 
@@ -75,7 +61,7 @@ const titreDemarcheUpdate = async (
       titresCoordonneesUpdated,
       titresActivitesCreated,
       titresActivitesPropsUpdated,
-      titresUpdatedIndex
+      titresUpdatedIndex,
     })
   } catch (e) {
     console.error(`erreur: titreDemarcheUpdate ${titreId}`)
diff --git a/packages/api/src/business/titre-etape-update.ts b/packages/api/src/business/titre-etape-update.ts
index b20208d4f..1e860436a 100644
--- a/packages/api/src/business/titre-etape-update.ts
+++ b/packages/api/src/business/titre-etape-update.ts
@@ -24,11 +24,7 @@ import { userSuper } from '../database/user-super.js'
 import { titresEtapesDepotCreate } from './processes/titres-demarches-depot-create.js'
 import { UserNotNull } from 'camino-common/src/roles'
 
-const titreEtapeUpdate = async (
-  titreEtapeId: string | null,
-  titreDemarcheId: DemarcheId,
-  user: UserNotNull
-) => {
+const titreEtapeUpdate = async (titreEtapeId: string | null, titreDemarcheId: DemarcheId, user: UserNotNull) => {
   try {
     console.info()
     console.info('- - -')
@@ -37,7 +33,7 @@ const titreEtapeUpdate = async (
     const titreDemarche = await titreDemarcheGet(
       titreDemarcheId,
       {
-        fields: {}
+        fields: {},
       },
       userSuper
     )
@@ -46,30 +42,18 @@ const titreEtapeUpdate = async (
       throw new Error(`la démarche ${titreDemarche} n'existe pas`)
     }
 
-    const titresEtapesOrdreUpdated = await titresEtapesOrdreUpdate(
-      user,
-      titreDemarcheId
-    )
+    const titresEtapesOrdreUpdated = await titresEtapesOrdreUpdate(user, titreDemarcheId)
 
-    const titresEtapesHeritagePropsUpdated =
-      await titresEtapesHeritagePropsUpdate(user, [titreDemarcheId])
-    const titresEtapesHeritageContenuUpdated =
-      await titresEtapesHeritageContenuUpdate(user, titreDemarcheId)
+    const titresEtapesHeritagePropsUpdated = await titresEtapesHeritagePropsUpdate(user, [titreDemarcheId])
+    const titresEtapesHeritageContenuUpdated = await titresEtapesHeritageContenuUpdate(user, titreDemarcheId)
 
     const titreId = titreDemarche.titreId
-    const titresDemarchesStatutUpdated = await titresDemarchesStatutIdUpdate(
-      titreId
-    )
-    const titresDemarchesPublicUpdated = await titresDemarchesPublicUpdate([
-      titreId
-    ])
-    const titresDemarchesOrdreUpdated = await titresDemarchesOrdreUpdate([
-      titreId
-    ])
+    const titresDemarchesStatutUpdated = await titresDemarchesStatutIdUpdate(titreId)
+    const titresDemarchesPublicUpdated = await titresDemarchesPublicUpdate([titreId])
+    const titresDemarchesOrdreUpdated = await titresDemarchesOrdreUpdate([titreId])
     const titresStatutIdUpdated = await titresStatutIdsUpdate([titreId])
     const titresPublicUpdated = await titresPublicUpdate([titreId])
-    const [titresPhasesUpdated = [], titresPhasesDeleted = []] =
-      await titresPhasesUpdate([titreId])
+    const [titresPhasesUpdated = [], titresPhasesDeleted = []] = await titresPhasesUpdate([titreId])
     const titresDatesUpdated = await titresDatesUpdate([titreId])
 
     // si l'étape est supprimée, pas de mise à jour
@@ -77,24 +61,15 @@ const titreEtapeUpdate = async (
       await titresEtapesAreasUpdate([titreEtapeId])
     }
 
-    const { titresEtapesAdministrationsLocalesUpdated = [] } =
-      await titresEtapesAdministrationsLocalesUpdate(
-        titreEtapeId ? [titreEtapeId] : undefined
-      )
+    const { titresEtapesAdministrationsLocalesUpdated = [] } = await titresEtapesAdministrationsLocalesUpdate(titreEtapeId ? [titreEtapeId] : undefined)
 
-    const titresPropsEtapesIdsUpdated = await titresPropsEtapesIdsUpdate([
-      titreId
-    ])
+    const titresPropsEtapesIdsUpdated = await titresPropsEtapesIdsUpdate([titreId])
 
-    const titresContenusEtapesIdsUpdated = await titresContenusEtapesIdsUpdate([
-      titreId
-    ])
+    const titresContenusEtapesIdsUpdated = await titresContenusEtapesIdsUpdate([titreId])
 
     const titresCoordonneesUpdated = await titresCoordonneesUpdate([titreId])
     const titresActivitesCreated = await titresActivitesUpdate([titreId])
-    const titresActivitesPropsUpdated = await titresActivitesPropsUpdate([
-      titreId
-    ])
+    const titresActivitesPropsUpdated = await titresActivitesPropsUpdate([titreId])
 
     const titresUpdatedIndex = await titresSlugsUpdate([titreId])
 
@@ -110,16 +85,13 @@ const titreEtapeUpdate = async (
       titresPhasesUpdated,
       titresPhasesDeleted,
       titresDatesUpdated,
-      titresEtapesAdministrationsLocalesUpdated:
-        titresEtapesAdministrationsLocalesUpdated.map(
-          ({ titreEtapeId }) => titreEtapeId
-        ),
+      titresEtapesAdministrationsLocalesUpdated: titresEtapesAdministrationsLocalesUpdated.map(({ titreEtapeId }) => titreEtapeId),
       titresPropsEtapesIdsUpdated,
       titresContenusEtapesIdsUpdated,
       titresCoordonneesUpdated,
       titresActivitesCreated,
       titresActivitesPropsUpdated,
-      titresUpdatedIndex
+      titresUpdatedIndex,
     })
 
     await titresEtapesDepotCreate(titreDemarcheId)
diff --git a/packages/api/src/business/titre-update.ts b/packages/api/src/business/titre-update.ts
index effcd1786..e234d3579 100644
--- a/packages/api/src/business/titre-update.ts
+++ b/packages/api/src/business/titre-update.ts
@@ -17,7 +17,7 @@ const titreUpdate = async (titreId: string) => {
     logsUpdate({
       titresPublicUpdated,
       titresActivitesCreated,
-      titresUpdatedIndex
+      titresUpdatedIndex,
     })
   } catch (e) {
     console.error(`erreur: titreUpdate ${titreId}`)
diff --git a/packages/api/src/business/utils/__mocks__/titre-activite-type-check.ts b/packages/api/src/business/utils/__mocks__/titre-activite-type-check.ts
index 1bbb5da13..07c66a4fe 100644
--- a/packages/api/src/business/utils/__mocks__/titre-activite-type-check.ts
+++ b/packages/api/src/business/utils/__mocks__/titre-activite-type-check.ts
@@ -1,55 +1,43 @@
-import {
-  ActiviteTypeReduced,
-  TitreReduced
-} from '../titre-activite-type-check.js'
+import { ActiviteTypeReduced, TitreReduced } from '../titre-activite-type-check.js'
 
 const activiteTypeMAxmPxmGuyane: ActiviteTypeReduced = {
   titresTypes: [{ id: 'axm' }, { id: 'pxm' }],
-  activitesTypesPays: [{ paysId: 'GF' }]
+  activitesTypesPays: [{ paysId: 'GF' }],
 }
 
 const activiteTypeMPrmMetropole: ActiviteTypeReduced = {
   titresTypes: [{ id: 'prm' }],
-  activitesTypesPays: [{ paysId: 'FR' }]
+  activitesTypesPays: [{ paysId: 'FR' }],
 }
 
 const activiteTypeWPrwSansPays: ActiviteTypeReduced = {
   titresTypes: [{ id: 'prw' }],
-  activitesTypesPays: []
+  activitesTypesPays: [],
 }
 
 const titreMAxmGuyane: TitreReduced = {
   typeId: 'axm',
-  communes: [{ departementId: '973' }]
+  communes: [{ departementId: '973' }],
 }
 
 const titreMAxmMetropole: TitreReduced = {
   typeId: 'axm',
-  communes: [{ departementId: '72' }]
+  communes: [{ departementId: '72' }],
 }
 
 const titreMPrmMetropole: TitreReduced = {
   typeId: 'prm',
-  communes: [{ departementId: '72' }]
+  communes: [{ departementId: '72' }],
 }
 
 const titreSansPays: TitreReduced = {
   typeId: 'axm',
-  communes: []
+  communes: [],
 }
 
 const titrePrwSansPays: TitreReduced = {
   typeId: 'prw',
-  communes: []
+  communes: [],
 }
 
-export {
-  activiteTypeMAxmPxmGuyane,
-  activiteTypeMPrmMetropole,
-  activiteTypeWPrwSansPays,
-  titreSansPays,
-  titreMAxmGuyane,
-  titreMAxmMetropole,
-  titreMPrmMetropole,
-  titrePrwSansPays
-}
+export { activiteTypeMAxmPxmGuyane, activiteTypeMPrmMetropole, activiteTypeWPrwSansPays, titreSansPays, titreMAxmGuyane, titreMAxmMetropole, titreMPrmMetropole, titrePrwSansPays }
diff --git a/packages/api/src/business/utils/__mocks__/titre-coordonnees-find.ts b/packages/api/src/business/utils/__mocks__/titre-coordonnees-find.ts
index 0815ddac8..8f0155ea4 100644
--- a/packages/api/src/business/utils/__mocks__/titre-coordonnees-find.ts
+++ b/packages/api/src/business/utils/__mocks__/titre-coordonnees-find.ts
@@ -6,20 +6,20 @@ export const titrePoints = [
     groupe: 1,
     contour: 1,
     point: 1,
-    coordonnees: { x: 0, y: 0 }
+    coordonnees: { x: 0, y: 0 },
   },
   {
     id: 'h-cx-courdemanges-1988-oct01-dpu01-2',
     groupe: 1,
     contour: 1,
     point: 2,
-    coordonnees: { x: 0, y: 1 }
+    coordonnees: { x: 0, y: 1 },
   },
   {
     id: 'h-cx-courdemanges-1988-oct01-dpu01-3',
     groupe: 1,
     contour: 1,
     point: 1,
-    coordonnees: { x: 1, y: 1 }
-  }
+    coordonnees: { x: 1, y: 1 },
+  },
 ] as ITitrePoint[]
diff --git a/packages/api/src/business/utils/__mocks__/titre-demarches-asc-sort-demarches.ts b/packages/api/src/business/utils/__mocks__/titre-demarches-asc-sort-demarches.ts
index 60ed8f2b5..edc7e2804 100644
--- a/packages/api/src/business/utils/__mocks__/titre-demarches-asc-sort-demarches.ts
+++ b/packages/api/src/business/utils/__mocks__/titre-demarches-asc-sort-demarches.ts
@@ -12,9 +12,9 @@ const titreDemarchesNoEtapesSortedAsc = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-06'
-      }
-    ]
+        date: '1988-03-06',
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-mut01',
@@ -22,15 +22,15 @@ const titreDemarchesNoEtapesSortedAsc = [
     typeId: 'mut',
     statutId: 'acc',
     etapes: [],
-    type: { ordre: 1 }
+    type: { ordre: 1 },
   },
   {
     id: 'h-cx-courdemanges-1988-mut02',
     titreId: 'h-cx-courdemanges-1988',
     typeId: 'mut',
     statutId: 'acc',
-    etapes: []
-  }
+    etapes: [],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesNoEtapesSortedDesc = [
@@ -39,7 +39,7 @@ const titreDemarchesNoEtapesSortedDesc = [
     titreId: 'h-cx-courdemanges-1988',
     typeId: 'mut',
     statutId: 'acc',
-    etapes: []
+    etapes: [],
   },
   {
     id: 'h-cx-courdemanges-1988-mut01',
@@ -47,7 +47,7 @@ const titreDemarchesNoEtapesSortedDesc = [
     typeId: 'mut',
     statutId: 'acc',
     etapes: [],
-    type: { ordre: 1 }
+    type: { ordre: 1 },
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -60,10 +60,10 @@ const titreDemarchesNoEtapesSortedDesc = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-06'
-      }
-    ]
-  }
+        date: '1988-03-06',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesNoEtapesSortedAscResult = [
@@ -78,9 +78,9 @@ const titreDemarchesNoEtapesSortedAscResult = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-06'
-      }
-    ]
+        date: '1988-03-06',
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-mut01',
@@ -88,15 +88,15 @@ const titreDemarchesNoEtapesSortedAscResult = [
     typeId: 'mut',
     statutId: 'acc',
     etapes: [],
-    type: { ordre: 1 }
+    type: { ordre: 1 },
   },
   {
     id: 'h-cx-courdemanges-1988-mut02',
     titreId: 'h-cx-courdemanges-1988',
     typeId: 'mut',
     statutId: 'acc',
-    etapes: []
-  }
+    etapes: [],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesNoEtapesSortedDescResult = [
@@ -111,9 +111,9 @@ const titreDemarchesNoEtapesSortedDescResult = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-06'
-      }
-    ]
+        date: '1988-03-06',
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-mut01',
@@ -121,15 +121,15 @@ const titreDemarchesNoEtapesSortedDescResult = [
     typeId: 'mut',
     statutId: 'acc',
     etapes: [],
-    type: { ordre: 1 }
+    type: { ordre: 1 },
   },
   {
     id: 'h-cx-courdemanges-1988-mut02',
     titreId: 'h-cx-courdemanges-1988',
     typeId: 'mut',
     statutId: 'acc',
-    etapes: []
-  }
+    etapes: [],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesSortedAsc = [
@@ -144,16 +144,16 @@ const titreDemarchesSortedAsc = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-06'
+        date: '1988-03-06',
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dpu01',
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1988-03-11'
-      }
-    ]
+        date: '1988-03-11',
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-mut01',
@@ -167,7 +167,7 @@ const titreDemarchesSortedAsc = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1994-09-28'
+        date: '1994-09-28',
       },
       {
         id: 'h-cx-courdemanges-1988-mut01-dpu01',
@@ -175,10 +175,10 @@ const titreDemarchesSortedAsc = [
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1994-09-29'
-      }
-    ]
-  }
+        date: '1994-09-29',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesSortedDesc = [
@@ -194,7 +194,7 @@ const titreDemarchesSortedDesc = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1994-09-28'
+        date: '1994-09-28',
       },
       {
         id: 'h-cx-courdemanges-1988-mut01-dpu01',
@@ -202,9 +202,9 @@ const titreDemarchesSortedDesc = [
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1994-09-29'
-      }
-    ]
+        date: '1994-09-29',
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -217,17 +217,17 @@ const titreDemarchesSortedDesc = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-06'
+        date: '1988-03-06',
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dpu01',
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1988-03-11'
-      }
-    ]
-  }
+        date: '1988-03-11',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesSortedDescEqual = [
@@ -243,7 +243,7 @@ const titreDemarchesSortedDescEqual = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-06'
+        date: '1988-03-06',
       },
       {
         id: 'h-cx-courdemanges-1988-mut01-dpu01',
@@ -251,9 +251,9 @@ const titreDemarchesSortedDescEqual = [
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1994-09-29'
-      }
-    ]
+        date: '1994-09-29',
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -266,17 +266,17 @@ const titreDemarchesSortedDescEqual = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-06'
+        date: '1988-03-06',
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dpu01',
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1988-03-11'
-      }
-    ]
-  }
+        date: '1988-03-11',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesSortedAscResult = [
@@ -291,16 +291,16 @@ const titreDemarchesSortedAscResult = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-06'
+        date: '1988-03-06',
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dpu01',
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1988-03-11'
-      }
-    ]
+        date: '1988-03-11',
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-mut01',
@@ -314,7 +314,7 @@ const titreDemarchesSortedAscResult = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1994-09-28'
+        date: '1994-09-28',
       },
       {
         id: 'h-cx-courdemanges-1988-mut01-dpu01',
@@ -322,10 +322,10 @@ const titreDemarchesSortedAscResult = [
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1994-09-29'
-      }
-    ]
-  }
+        date: '1994-09-29',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 const titreDemarchesSortedDescEqualResult = [
@@ -341,7 +341,7 @@ const titreDemarchesSortedDescEqualResult = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-06'
+        date: '1988-03-06',
       },
       {
         id: 'h-cx-courdemanges-1988-mut01-dpu01',
@@ -349,9 +349,9 @@ const titreDemarchesSortedDescEqualResult = [
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1994-09-29'
-      }
-    ]
+        date: '1994-09-29',
+      },
+    ],
   },
   {
     id: 'h-cx-courdemanges-1988-oct01',
@@ -364,17 +364,17 @@ const titreDemarchesSortedDescEqualResult = [
         typeId: 'dex',
         statutId: 'acc',
         ordre: 1,
-        date: '1988-03-06'
+        date: '1988-03-06',
       },
       {
         id: 'h-cx-courdemanges-1988-oct01-dpu01',
         typeId: 'dpu',
         statutId: 'acc',
         ordre: 2,
-        date: '1988-03-11'
-      }
-    ]
-  }
+        date: '1988-03-11',
+      },
+    ],
+  },
 ] as ITitreDemarche[]
 
 export {
@@ -386,5 +386,5 @@ export {
   titreDemarchesSortedDesc,
   titreDemarchesSortedAscResult,
   titreDemarchesSortedDescEqual,
-  titreDemarchesSortedDescEqualResult
+  titreDemarchesSortedDescEqualResult,
 }
diff --git a/packages/api/src/business/utils/__mocks__/titre-valide-check-demarches.ts b/packages/api/src/business/utils/__mocks__/titre-valide-check-demarches.ts
index 6d4d7f086..2f970b31a 100644
--- a/packages/api/src/business/utils/__mocks__/titre-valide-check-demarches.ts
+++ b/packages/api/src/business/utils/__mocks__/titre-valide-check-demarches.ts
@@ -5,6 +5,6 @@ export const titreDemarches = [
   {
     phase: { dateDebut: '2014-11-02', dateFin: '2019-11-02' },
     statutId: 'acc',
-    type: {}
-  }
+    type: {},
+  },
 ] as ITitreDemarche[]
diff --git a/packages/api/src/business/utils/contenu-element-file-process.test.ts b/packages/api/src/business/utils/contenu-element-file-process.test.ts
index d8744c72c..f49174bd5 100644
--- a/packages/api/src/business/utils/contenu-element-file-process.test.ts
+++ b/packages/api/src/business/utils/contenu-element-file-process.test.ts
@@ -4,11 +4,7 @@ import { afterEach, vi, describe, test, expect } from 'vitest'
 
 import { IContenu, ISection, ITitreEtape } from '../../types.js'
 
-import {
-  contenuElementFilesCreate,
-  contenuElementFilesDelete,
-  sectionsContenuAndFilesGet
-} from './contenu-element-file-process.js'
+import { contenuElementFilesCreate, contenuElementFilesDelete, sectionsContenuAndFilesGet } from './contenu-element-file-process.js'
 
 import { objectClone } from '../../tools/index.js'
 import dirCreate from '../../tools/dir-create.js'
@@ -17,19 +13,19 @@ import fileDelete from '../../tools/file-delete.js'
 
 vi.mock('../../tools/dir-create', () => ({
   __esModule: true,
-  default: vi.fn()
+  default: vi.fn(),
 }))
 const dirCreateMock = vi.mocked(dirCreate, true)
 
 vi.mock('../../tools/file-stream-create', () => ({
   __esModule: true,
-  default: vi.fn()
+  default: vi.fn(),
 }))
 const fileStreamCreateMock = vi.mocked(fileStreamCreate, true)
 
 vi.mock('../../tools/file-delete', () => ({
   __esModule: true,
-  default: vi.fn()
+  default: vi.fn(),
 }))
 const fileDeleteMock = vi.mocked(fileDelete, true)
 
@@ -43,7 +39,7 @@ describe('sectionsContenuAndFilesGet', () => {
   test('si pas de contenu alors pas de contenu ni de fichier', () => {
     expect(sectionsContenuAndFilesGet(null, [])).toEqual({
       contenu: null,
-      newFiles: []
+      newFiles: [],
     })
   })
 
@@ -52,8 +48,8 @@ describe('sectionsContenuAndFilesGet', () => {
       arm: {
         mecanise: true,
         franchissements: 3,
-        justificatif: 'nomdefichier.pdf'
-      }
+        justificatif: 'nomdefichier.pdf',
+      },
     }
     expect(
       sectionsContenuAndFilesGet(contenu, [
@@ -62,13 +58,13 @@ describe('sectionsContenuAndFilesGet', () => {
           elements: [
             { id: 'mecanise', nom: 'mecanise', type: 'checkbox' },
             { id: 'franchissements', nom: 'franchissements', type: 'number' },
-            { id: 'justificatif', nom: 'justificatif', type: 'file' }
-          ]
-        }
+            { id: 'justificatif', nom: 'justificatif', type: 'file' },
+          ],
+        },
       ])
     ).toMatchObject({
       contenu: objectClone(contenu),
-      newFiles: []
+      newFiles: [],
     })
   })
 
@@ -77,8 +73,8 @@ describe('sectionsContenuAndFilesGet', () => {
       arm: {
         mecanise: true,
         franchissements: 3,
-        justificatif: { file: { filename: 'super.pdf' } as FileUpload }
-      }
+        justificatif: { file: { filename: 'super.pdf' } as FileUpload },
+      },
     }
 
     const newContenu = objectClone(contenu) as IContenu
@@ -90,13 +86,13 @@ describe('sectionsContenuAndFilesGet', () => {
         elements: [
           { id: 'mecanise', nom: 'mecanise', type: 'checkbox' },
           { id: 'franchissements', nom: 'franchissements', type: 'number' },
-          { id: 'justificatif', nom: 'justificatif', type: 'file' }
-        ]
-      }
+          { id: 'justificatif', nom: 'justificatif', type: 'file' },
+        ],
+      },
     ])
     expect(res).toMatchObject({
       contenu: newContenu,
-      newFiles: [{ filename: 'prefix-super.pdf' }]
+      newFiles: [{ filename: 'prefix-super.pdf' }],
     })
   })
 })
@@ -107,7 +103,7 @@ describe('contenuElementFileProcess', () => {
       createReadStream: () => ({} as unknown as ReadStream),
       filename: 'toto.pdf',
       encoding: 'utf-8',
-      mimetype: 'application/pdf'
+      mimetype: 'application/pdf',
     }
 
     await contenuElementFilesCreate([file, file], 'demarches', 'etapeId')
@@ -124,34 +120,27 @@ describe('contenuElementFileProcess', () => {
           { id: 'mecanise', nom: 'mecanise', type: 'checkbox' },
           { id: 'franchissements', nom: 'franchissements', type: 'number' },
           { id: 'justificatif', nom: 'justificatif', type: 'file' },
-          { id: 'facture', nom: 'facture', type: 'file' }
-        ]
-      }
+          { id: 'facture', nom: 'facture', type: 'file' },
+        ],
+      },
     ]
 
     const oldContenu = {
       arm: {
         mecanise: true,
         justificatif: 'fichier.pdf',
-        facture: 'facture.pdf'
-      }
+        facture: 'facture.pdf',
+      },
     } as IContenu
     const contenu = {
       arm: {
         mecanise: true,
         justificatif: 'newfichier.pdf',
-        facture: 'facture.pdf'
-      }
+        facture: 'facture.pdf',
+      },
     }
 
-    await contenuElementFilesDelete(
-      'demarches',
-      'etapeId',
-      sections,
-      etape => etape.contenu,
-      [{ contenu } as unknown as ITitreEtape],
-      oldContenu
-    )
+    await contenuElementFilesDelete('demarches', 'etapeId', sections, etape => etape.contenu, [{ contenu } as unknown as ITitreEtape], oldContenu)
 
     expect(fileDeleteMock).toHaveBeenCalledTimes(1)
   })
diff --git a/packages/api/src/business/utils/contenu-element-file-process.ts b/packages/api/src/business/utils/contenu-element-file-process.ts
index 21d70707e..007fda98c 100644
--- a/packages/api/src/business/utils/contenu-element-file-process.ts
+++ b/packages/api/src/business/utils/contenu-element-file-process.ts
@@ -2,23 +2,13 @@ import { FileUpload } from 'graphql-upload'
 import cryptoRandomString from 'crypto-random-string'
 import { join } from 'path'
 
-import {
-  IContenu,
-  IContenuValeur,
-  IDocumentRepertoire,
-  ISection,
-  ISectionElement,
-  ITitreEtape
-} from '../../types.js'
+import { IContenu, IContenuValeur, IDocumentRepertoire, ISection, ISectionElement, ITitreEtape } from '../../types.js'
 
 import dirCreate from '../../tools/dir-create.js'
 import fileStreamCreate from '../../tools/file-stream-create.js'
 import fileDelete from '../../tools/file-delete.js'
 
-const sectionElementContenuAndFilesGet = (
-  contenuValeur: IContenuValeur,
-  sectionElement: ISectionElement
-) => {
+const sectionElementContenuAndFilesGet = (contenuValeur: IContenuValeur, sectionElement: ISectionElement) => {
   const newFiles = [] as FileUpload[]
   let newValue = contenuValeur as IContenuValeur | null
 
@@ -29,7 +19,7 @@ const sectionElementContenuAndFilesGet = (
 
     if (fileUpload?.file) {
       const fileName = `${cryptoRandomString({
-        length: 4
+        length: 4,
       })}-${fileUpload.file.filename}`
       fileUpload.file.filename = fileName
       newFiles.push(fileUpload?.file)
@@ -40,31 +30,19 @@ const sectionElementContenuAndFilesGet = (
   return { newValue, newFiles }
 }
 
-const sectionsContenuAndFilesGet = (
-  contenu: IContenu | undefined | null,
-  sections: ISection[]
-) => {
+const sectionsContenuAndFilesGet = (contenu: IContenu | undefined | null, sections: ISection[]) => {
   const newFiles = [] as FileUpload[]
   if (contenu) {
     Object.keys(contenu)
       .filter(sectionId => contenu![sectionId])
       .forEach(sectionId =>
         Object.keys(contenu![sectionId]).forEach(elementId => {
-          const sectionElement = sections
-            .find(s => s.id === sectionId)
-            ?.elements?.find(e => e.id === elementId)
+          const sectionElement = sections.find(s => s.id === sectionId)?.elements?.find(e => e.id === elementId)
 
           if (sectionElement) {
-            const sectionElementResult = sectionElementContenuAndFilesGet(
-              contenu[sectionId][elementId],
-              sectionElement
-            )
-
-            if (
-              !sectionElementResult ||
-              sectionElementResult.newValue === undefined ||
-              sectionElementResult.newValue === null
-            ) {
+            const sectionElementResult = sectionElementContenuAndFilesGet(contenu[sectionId][elementId], sectionElement)
+
+            if (!sectionElementResult || sectionElementResult.newValue === undefined || sectionElementResult.newValue === null) {
               delete contenu[sectionId][elementId]
             } else {
               contenu[sectionId][elementId] = sectionElementResult.newValue
@@ -81,19 +59,14 @@ const sectionsContenuAndFilesGet = (
   return { contenu, newFiles }
 }
 
-const contenuFilesGet = (
-  contenu: IContenu | null | undefined,
-  sections: ISection[]
-) => {
+const contenuFilesGet = (contenu: IContenu | null | undefined, sections: ISection[]) => {
   const files = [] as string[]
   if (contenu) {
     sections
       .filter(section => section.elements)
       .forEach(section =>
         section.elements!.forEach(element => {
-          const contenuValeur = contenu[section.id]
-            ? contenu[section.id][element.id]
-            : null
+          const contenuValeur = contenu[section.id] ? contenu[section.id][element.id] : null
 
           files.push(...sectionElementFilesGet(element, contenuValeur))
         })
@@ -103,10 +76,7 @@ const contenuFilesGet = (
   return files
 }
 
-const sectionElementFilesGet = (
-  sectionElement: ISectionElement,
-  contenuValeur: IContenuValeur | null
-) => {
+const sectionElementFilesGet = (sectionElement: ISectionElement, contenuValeur: IContenuValeur | null) => {
   const files = [] as string[]
   if (sectionElement.type === 'file') {
     if (contenuValeur) {
@@ -117,16 +87,9 @@ const sectionElementFilesGet = (
   return files
 }
 
-const contenuFilesPathGet = (
-  repertoire: IDocumentRepertoire,
-  parentId: string
-) => `files/${repertoire}/${parentId}`
+const contenuFilesPathGet = (repertoire: IDocumentRepertoire, parentId: string) => `files/${repertoire}/${parentId}`
 
-const contenuElementFilesCreate = async (
-  newFiles: FileUpload[],
-  repertoire: IDocumentRepertoire,
-  parentId: string
-) => {
+const contenuElementFilesCreate = async (newFiles: FileUpload[], repertoire: IDocumentRepertoire, parentId: string) => {
   if (newFiles.length) {
     const dirPath = `files/${repertoire}/${parentId}`
     await dirCreate(join(process.cwd(), dirPath))
@@ -135,10 +98,7 @@ const contenuElementFilesCreate = async (
       if (file) {
         const { createReadStream } = file
 
-        await fileStreamCreate(
-          createReadStream(),
-          join(process.cwd(), `${dirPath}/${file.filename}`)
-        )
+        await fileStreamCreate(createReadStream(), join(process.cwd(), `${dirPath}/${file.filename}`))
       }
     }
   }
@@ -179,10 +139,4 @@ const contenuElementFilesDelete = async (
   }
 }
 
-export {
-  contenuElementFilesCreate,
-  contenuElementFilesDelete,
-  sectionsContenuAndFilesGet,
-  contenuFilesGet,
-  contenuFilesPathGet
-}
+export { contenuElementFilesCreate, contenuElementFilesDelete, sectionsContenuAndFilesGet, contenuFilesGet, contenuFilesPathGet }
diff --git a/packages/api/src/business/utils/prop-value-find.ts b/packages/api/src/business/utils/prop-value-find.ts
index 34a034c67..ccfc58e79 100644
--- a/packages/api/src/business/utils/prop-value-find.ts
+++ b/packages/api/src/business/utils/prop-value-find.ts
@@ -2,10 +2,7 @@ import { ITitreEtape, IPropId } from '../../types.js'
 
 export const propValueFind = (titreEtape: ITitreEtape, propId: IPropId) => {
   const value = titreEtape[propId]
-  if (
-    (Array.isArray(value) && value.length) ||
-    (!Array.isArray(value) && (value || value === 0))
-  ) {
+  if ((Array.isArray(value) && value.length) || (!Array.isArray(value) && (value || value === 0))) {
     return value
   }
 
diff --git a/packages/api/src/business/utils/props-titre-etapes-ids-find.test.ts b/packages/api/src/business/utils/props-titre-etapes-ids-find.test.ts
index 805b9ae9d..c81d21bad 100644
--- a/packages/api/src/business/utils/props-titre-etapes-ids-find.test.ts
+++ b/packages/api/src/business/utils/props-titre-etapes-ids-find.test.ts
@@ -13,8 +13,8 @@ describe("liste des propriétés et les étapes qui en sont à l'origine", () =>
             titreId: 'titre-id',
             typeId: 'oct',
             statutId: 'acc',
-            etapes: []
-          }
+            etapes: [],
+          },
         ],
         [{ elementId: 'mecanise', sectionId: 'arm' }]
       )
diff --git a/packages/api/src/business/utils/props-titre-etapes-ids-find.ts b/packages/api/src/business/utils/props-titre-etapes-ids-find.ts
index 7585386b0..c12bc99e6 100644
--- a/packages/api/src/business/utils/props-titre-etapes-ids-find.ts
+++ b/packages/api/src/business/utils/props-titre-etapes-ids-find.ts
@@ -1,48 +1,30 @@
 import { TitreStatutId } from 'camino-common/src/static/titresStatuts.js'
-import {
-  ITitreDemarche,
-  IContenusTitreEtapesIds,
-  IContenuId
-} from '../../types.js'
+import { ITitreDemarche, IContenusTitreEtapesIds, IContenuId } from '../../types.js'
 
 import { titreContenuTitreEtapeFind } from '../rules/titre-prop-etape-find.js'
 
-export const contenusTitreEtapesIdsFind = (
-  titreStatutId: TitreStatutId,
-  titreDemarches: ITitreDemarche[],
-  contenuIds?: IContenuId[] | null
-) => {
+export const contenusTitreEtapesIdsFind = (titreStatutId: TitreStatutId, titreDemarches: ITitreDemarche[], contenuIds?: IContenuId[] | null) => {
   if (!contenuIds) return null
 
-  const titrePropsEtapesIds = contenuIds.reduce(
-    (
-      contenusTitreEtapesIds: IContenusTitreEtapesIds | null,
-      { sectionId, elementId }
-    ) => {
-      // trouve l'id de l'étape qui contient l'élément dans la section
-      const titreEtape = titreContenuTitreEtapeFind(
-        { sectionId, elementId },
-        titreDemarches,
-        titreStatutId
-      )
-
-      // si une étape est trouvée
-      if (titreEtape) {
-        if (!contenusTitreEtapesIds) {
-          contenusTitreEtapesIds = {}
-        }
-
-        if (!contenusTitreEtapesIds[sectionId]) {
-          contenusTitreEtapesIds[sectionId] = {}
-        }
-
-        contenusTitreEtapesIds[sectionId][elementId] = titreEtape.id
+  const titrePropsEtapesIds = contenuIds.reduce((contenusTitreEtapesIds: IContenusTitreEtapesIds | null, { sectionId, elementId }) => {
+    // trouve l'id de l'étape qui contient l'élément dans la section
+    const titreEtape = titreContenuTitreEtapeFind({ sectionId, elementId }, titreDemarches, titreStatutId)
+
+    // si une étape est trouvée
+    if (titreEtape) {
+      if (!contenusTitreEtapesIds) {
+        contenusTitreEtapesIds = {}
+      }
+
+      if (!contenusTitreEtapesIds[sectionId]) {
+        contenusTitreEtapesIds[sectionId] = {}
       }
 
-      return contenusTitreEtapesIds
-    },
-    null
-  )
+      contenusTitreEtapesIds[sectionId][elementId] = titreEtape.id
+    }
+
+    return contenusTitreEtapesIds
+  }, null)
 
   return titrePropsEtapesIds
 }
diff --git a/packages/api/src/business/utils/titre-activite-type-check.test.ts b/packages/api/src/business/utils/titre-activite-type-check.test.ts
index 5ad5c7eb1..e08810e10 100644
--- a/packages/api/src/business/utils/titre-activite-type-check.test.ts
+++ b/packages/api/src/business/utils/titre-activite-type-check.test.ts
@@ -8,44 +8,32 @@ import {
   titreMAxmGuyane,
   titreMAxmMetropole,
   titreMPrmMetropole,
-  titrePrwSansPays
+  titrePrwSansPays,
 } from './__mocks__/titre-activite-type-check.js'
 import { describe, test, expect } from 'vitest'
 
 describe("vérifie si un titre a des activités d'un certain type", () => {
   test("ne retourne aucun type d'activité relié à un pays sur un titre sans pays", () => {
-    expect(
-      titreActiviteTypeCheck(activiteTypeMAxmPxmGuyane, titreSansPays)
-    ).toEqual(false)
+    expect(titreActiviteTypeCheck(activiteTypeMAxmPxmGuyane, titreSansPays)).toEqual(false)
   })
 
   test("retourne un type d'activité sur un titre AXM de Guyane", () => {
-    expect(
-      titreActiviteTypeCheck(activiteTypeMAxmPxmGuyane, titreMAxmGuyane)
-    ).toEqual(true)
+    expect(titreActiviteTypeCheck(activiteTypeMAxmPxmGuyane, titreMAxmGuyane)).toEqual(true)
   })
 
   test("ne retourne aucun type d'activité sur un titre AXM de métropole", () => {
-    expect(
-      titreActiviteTypeCheck(activiteTypeMAxmPxmGuyane, titreMAxmMetropole)
-    ).toEqual(false)
+    expect(titreActiviteTypeCheck(activiteTypeMAxmPxmGuyane, titreMAxmMetropole)).toEqual(false)
   })
 
   test("retourne un type d'activité sur un titre AXM de métropole", () => {
-    expect(
-      titreActiviteTypeCheck(activiteTypeMPrmMetropole, titreMPrmMetropole)
-    ).toEqual(true)
+    expect(titreActiviteTypeCheck(activiteTypeMPrmMetropole, titreMPrmMetropole)).toEqual(true)
   })
 
   test("ne retourne aucun type d'activité de titre AXM Guyane sur un titre PRM de métropole", () => {
-    expect(
-      titreActiviteTypeCheck(activiteTypeMAxmPxmGuyane, titreMPrmMetropole)
-    ).toEqual(false)
+    expect(titreActiviteTypeCheck(activiteTypeMAxmPxmGuyane, titreMPrmMetropole)).toEqual(false)
   })
 
   test("retourne un type d'activité de titre  qui n'a pas de pays et qui est liée à un type de titer", () => {
-    expect(
-      titreActiviteTypeCheck(activiteTypeWPrwSansPays, titrePrwSansPays)
-    ).toEqual(true)
+    expect(titreActiviteTypeCheck(activiteTypeWPrwSansPays, titrePrwSansPays)).toEqual(true)
   })
 })
diff --git a/packages/api/src/business/utils/titre-activite-type-check.ts b/packages/api/src/business/utils/titre-activite-type-check.ts
index 50f0bba3a..6386e5115 100644
--- a/packages/api/src/business/utils/titre-activite-type-check.ts
+++ b/packages/api/src/business/utils/titre-activite-type-check.ts
@@ -1,8 +1,5 @@
 import { IActiviteTypePays, ICommune, ITitreType } from '../../types.js'
-import {
-  Departements,
-  isDepartementId
-} from 'camino-common/src/static/departement.js'
+import { Departements, isDepartementId } from 'camino-common/src/static/departement.js'
 import { Regions } from 'camino-common/src/static/region.js'
 
 /**
@@ -20,10 +17,7 @@ export interface TitreReduced {
   typeId: string
   communes?: Pick<ICommune, 'departementId'>[] | undefined | null
 }
-export const titreActiviteTypeCheck = (
-  activiteType: ActiviteTypeReduced,
-  titre: TitreReduced
-) => {
+export const titreActiviteTypeCheck = (activiteType: ActiviteTypeReduced, titre: TitreReduced) => {
   // si le type d'activité est relié au type de titre
 
   if (!activiteType.activitesTypesPays) {
@@ -34,9 +28,7 @@ export const titreActiviteTypeCheck = (
     throw new Error('les communes du titre ne sont pas chargées')
   }
 
-  if (
-    activiteType.titresTypes.some(titreType => titreType.id === titre.typeId)
-  ) {
+  if (activiteType.titresTypes.some(titreType => titreType.id === titre.typeId)) {
     const titrePaysIds = titre.communes
       ?.map(({ departementId }) => departementId)
       .filter(isDepartementId)
@@ -46,11 +38,7 @@ export const titreActiviteTypeCheck = (
     return (
       // et que le type d'activité n'est relié à aucun pays
       // ou que le type d'activite est relié à l'un des pays du titre
-      !activiteType.activitesTypesPays.length ||
-      (!!titrePaysIds?.length &&
-        activiteType.activitesTypesPays.some(({ paysId }) =>
-          titrePaysIds.some(titrePaysId => paysId === titrePaysId)
-        ))
+      !activiteType.activitesTypesPays.length || (!!titrePaysIds?.length && activiteType.activitesTypesPays.some(({ paysId }) => titrePaysIds.some(titrePaysId => paysId === titrePaysId)))
     )
   }
 
diff --git a/packages/api/src/business/utils/titre-activite-valide-check.test.ts b/packages/api/src/business/utils/titre-activite-valide-check.test.ts
index 9a26e8c24..fb3908755 100644
--- a/packages/api/src/business/utils/titre-activite-valide-check.test.ts
+++ b/packages/api/src/business/utils/titre-activite-valide-check.test.ts
@@ -7,53 +7,23 @@ import { titreValideCheck } from './titre-valide-check.js'
 import { vi, describe, test, expect } from 'vitest'
 
 vi.mock('./titre-valide-check', () => ({
-  titreValideCheck: vi.fn()
+  titreValideCheck: vi.fn(),
 }))
 
 const titreValideCheckMock = vi.mocked(titreValideCheck, true)
 
 describe('validité des activités', () => {
   test("retourne faux si la date de l'activité est après aujourd'hui", () => {
-    expect(
-      titreActiviteValideCheck(
-        '2020-04-01',
-        '2020-01-01',
-        1,
-        2020,
-        3,
-        [] as ITitreDemarche[],
-        'axm'
-      )
-    ).toEqual(false)
+    expect(titreActiviteValideCheck('2020-04-01', '2020-01-01', 1, 2020, 3, [] as ITitreDemarche[], 'axm')).toEqual(false)
   })
 
   test("retourne faux si le titre n'est pas valide à cette date", () => {
     titreValideCheckMock.mockReturnValue(false)
-    expect(
-      titreActiviteValideCheck(
-        '2020-04-01',
-        '2021-05-01',
-        1,
-        2020,
-        3,
-        [] as ITitreDemarche[],
-        'axm'
-      )
-    ).toEqual(false)
+    expect(titreActiviteValideCheck('2020-04-01', '2021-05-01', 1, 2020, 3, [] as ITitreDemarche[], 'axm')).toEqual(false)
   })
 
   test('retourne vrai si le titre est valide à cette date', () => {
     titreValideCheckMock.mockReturnValue(true)
-    expect(
-      titreActiviteValideCheck(
-        '2020-04-01',
-        '2021-05-01',
-        1,
-        2020,
-        3,
-        [] as ITitreDemarche[],
-        'axm'
-      )
-    ).toEqual(true)
+    expect(titreActiviteValideCheck('2020-04-01', '2021-05-01', 1, 2020, 3, [] as ITitreDemarche[], 'axm')).toEqual(true)
   })
 })
diff --git a/packages/api/src/business/utils/titre-activite-valide-check.ts b/packages/api/src/business/utils/titre-activite-valide-check.ts
index afd0b2499..20280d60f 100644
--- a/packages/api/src/business/utils/titre-activite-valide-check.ts
+++ b/packages/api/src/business/utils/titre-activite-valide-check.ts
@@ -15,15 +15,7 @@ import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
  * @param titreTypeId - id du type de titre
  */
 
-export const titreActiviteValideCheck = (
-  date: string,
-  aujourdhui: string,
-  periodeId: number,
-  annee: number,
-  months: number,
-  titreDemarches: ITitreDemarche[],
-  titreTypeId: TitreTypeId
-) => {
+export const titreActiviteValideCheck = (date: string, aujourdhui: string, periodeId: number, annee: number, months: number, titreDemarches: ITitreDemarche[], titreTypeId: TitreTypeId) => {
   // si la date de fin de l'activité n'est pas passée
   // on ne crée pas l'activité
   if (date > aujourdhui) return false
diff --git a/packages/api/src/business/utils/titre-coordonnees-find.test.ts b/packages/api/src/business/utils/titre-coordonnees-find.test.ts
index 7aa180eaa..e6a70a036 100644
--- a/packages/api/src/business/utils/titre-coordonnees-find.test.ts
+++ b/packages/api/src/business/utils/titre-coordonnees-find.test.ts
@@ -5,7 +5,7 @@ import { titrePoints } from './__mocks__/titre-coordonnees-find.js'
 import { vi, describe, test, expect } from 'vitest'
 
 vi.mock('../../tools/geojson', () => ({
-  geojsonCenter: vi.fn()
+  geojsonCenter: vi.fn(),
 }))
 
 const geojsonCenterMock = vi.mocked(geojsonCenter, true)
diff --git a/packages/api/src/business/utils/titre-demarches-etapes-rebuild.ts b/packages/api/src/business/utils/titre-demarches-etapes-rebuild.ts
index 4b0c30827..47b8119b2 100644
--- a/packages/api/src/business/utils/titre-demarches-etapes-rebuild.ts
+++ b/packages/api/src/business/utils/titre-demarches-etapes-rebuild.ts
@@ -8,8 +8,7 @@ import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
  * @param titreEtapes - étapes d'une démarche
  * @param date - date
  */
-const titreEtapesFilter = (titreEtapes: ITitreEtape[], date: string) =>
-  titreEtapes.filter(titreEtape => titreEtape.date <= date)
+const titreEtapesFilter = (titreEtapes: ITitreEtape[], date: string) => titreEtapes.filter(titreEtape => titreEtape.date <= date)
 
 /**
  * Reconstruit les démarches et étapes antérieures à une date
@@ -20,11 +19,7 @@ const titreEtapesFilter = (titreEtapes: ITitreEtape[], date: string) =>
  * @returns démarches du titre
  */
 
-export const titreDemarchesEtapesRebuild = (
-  date: string,
-  titreDemarches: ITitreDemarche[],
-  titreTypeId: TitreTypeId
-) =>
+export const titreDemarchesEtapesRebuild = (date: string, titreDemarches: ITitreDemarche[], titreTypeId: TitreTypeId) =>
   titreDemarches.reduce((acc: ITitreDemarche[], td) => {
     if (!td.etapes) return acc
 
@@ -35,21 +30,9 @@ export const titreDemarchesEtapesRebuild = (
 
       titreDemarche.etapes = titreEtapesFiltered
 
-      titreDemarche.statutId = titreDemarcheStatutIdFind(
-        titreDemarche.typeId,
-        titreDemarche.etapes,
-        titreTypeId,
-        titreDemarche.id
-      )
-
-      if (
-        !titreDemarchePhaseCheck(
-          titreDemarche.typeId,
-          titreDemarche.statutId,
-          titreTypeId,
-          titreDemarche.etapes
-        )
-      ) {
+      titreDemarche.statutId = titreDemarcheStatutIdFind(titreDemarche.typeId, titreDemarche.etapes, titreTypeId, titreDemarche.id)
+
+      if (!titreDemarchePhaseCheck(titreDemarche.typeId, titreDemarche.statutId, titreTypeId, titreDemarche.etapes)) {
         delete titreDemarche.phase
       }
 
diff --git a/packages/api/src/business/utils/titre-elements-sort-asc.test.ts b/packages/api/src/business/utils/titre-elements-sort-asc.test.ts
index b43760d9b..ac474b0df 100644
--- a/packages/api/src/business/utils/titre-elements-sort-asc.test.ts
+++ b/packages/api/src/business/utils/titre-elements-sort-asc.test.ts
@@ -8,38 +8,28 @@ import {
   titreDemarchesSortedDesc,
   titreDemarchesSortedAscResult,
   titreDemarchesSortedDescEqual,
-  titreDemarchesSortedDescEqualResult
+  titreDemarchesSortedDescEqualResult,
 } from './__mocks__/titre-demarches-asc-sort-demarches.js'
 import { describe, test, expect } from 'vitest'
 
 describe('trie les démarches', () => {
   test('des démarches sans étapes organisées par ordre décroissant sont triées par ordre croissant', () => {
-    expect(
-      titreDemarchesSortAsc(titreDemarchesNoEtapesSortedDesc)
-    ).toMatchObject(titreDemarchesNoEtapesSortedDescResult)
+    expect(titreDemarchesSortAsc(titreDemarchesNoEtapesSortedDesc)).toMatchObject(titreDemarchesNoEtapesSortedDescResult)
   })
 
   test('des démarches sans étapes orgqnisées par ordre croissant sont triées par ordre croissant', () => {
-    expect(
-      titreDemarchesSortAsc(titreDemarchesNoEtapesSortedAsc)
-    ).toMatchObject(titreDemarchesNoEtapesSortedAscResult)
+    expect(titreDemarchesSortAsc(titreDemarchesNoEtapesSortedAsc)).toMatchObject(titreDemarchesNoEtapesSortedAscResult)
   })
 
   test('des démarches organisées par ordre décroissant sont triées par ordre croissant', () => {
-    expect(titreDemarchesSortAsc(titreDemarchesSortedDesc)).toMatchObject(
-      titreDemarchesSortedAscResult
-    )
+    expect(titreDemarchesSortAsc(titreDemarchesSortedDesc)).toMatchObject(titreDemarchesSortedAscResult)
   })
 
   test('des démarches organisées par ordre croissant restent triées par ordre croissant', () => {
-    expect(titreDemarchesSortAsc(titreDemarchesSortedAsc)).toMatchObject(
-      titreDemarchesSortedAscResult
-    )
+    expect(titreDemarchesSortAsc(titreDemarchesSortedAsc)).toMatchObject(titreDemarchesSortedAscResult)
   })
 
   test('des démarches dont les dates sont les mêmes restent triées dans le même ordre', () => {
-    expect(titreDemarchesSortAsc(titreDemarchesSortedDescEqual)).toMatchObject(
-      titreDemarchesSortedDescEqualResult
-    )
+    expect(titreDemarchesSortAsc(titreDemarchesSortedDescEqual)).toMatchObject(titreDemarchesSortedDescEqualResult)
   })
 })
diff --git a/packages/api/src/business/utils/titre-elements-sort-asc.ts b/packages/api/src/business/utils/titre-elements-sort-asc.ts
index 30f339f50..1c11412fb 100644
--- a/packages/api/src/business/utils/titre-elements-sort-asc.ts
+++ b/packages/api/src/business/utils/titre-elements-sort-asc.ts
@@ -13,10 +13,7 @@ const titreDemarcheSortAsc = (titreElements: ITitreDemarche[]) =>
     if (aHasEtapes && !bHasEtapes) return -1
 
     if (!aHasEtapes && !bHasEtapes) {
-      return (
-        ((a.type && a.type.ordre) || Infinity) -
-        ((b.type && b.type.ordre) || Infinity)
-      )
+      return ((a.type && a.type.ordre) || Infinity) - ((b.type && b.type.ordre) || Infinity)
     }
 
     const dateA = titreEtapesSortAscByOrdre(a.etapes!)[0].date
diff --git a/packages/api/src/business/utils/titre-etape-demarche-etape-type-find.test.ts b/packages/api/src/business/utils/titre-etape-demarche-etape-type-find.test.ts
index 85c9afcb5..cc1ad08d7 100644
--- a/packages/api/src/business/utils/titre-etape-demarche-etape-type-find.test.ts
+++ b/packages/api/src/business/utils/titre-etape-demarche-etape-type-find.test.ts
@@ -4,29 +4,17 @@ import { describe, test, expect } from 'vitest'
 
 const demarcheType = {
   etapesTypes: [{ id: 'mfr' }],
-  nom: 'demarche'
+  nom: 'demarche',
 } as IDemarcheType
 
 describe("retourne le type d'étape provenant des types d'étapes d'un type de démarche", () => {
   test("le titre d'étape est retourné", () => {
-    expect(
-      titreEtapeDemarcheEtapeTypeFind(
-        'mfr',
-        demarcheType.etapesTypes,
-        demarcheType.nom
-      )
-    ).toEqual({
-      id: 'mfr'
+    expect(titreEtapeDemarcheEtapeTypeFind('mfr', demarcheType.etapesTypes, demarcheType.nom)).toEqual({
+      id: 'mfr',
     })
   })
 
   test('une erreur est retournée', () => {
-    expect(() =>
-      titreEtapeDemarcheEtapeTypeFind(
-        'mdp',
-        demarcheType.etapesTypes,
-        demarcheType.nom
-      )
-    ).toThrow(/étape "mdp" invalide pour une démarche "demarche"/)
+    expect(() => titreEtapeDemarcheEtapeTypeFind('mdp', demarcheType.etapesTypes, demarcheType.nom)).toThrow(/étape "mdp" invalide pour une démarche "demarche"/)
   })
 })
diff --git a/packages/api/src/business/utils/titre-etape-demarche-etape-type-find.ts b/packages/api/src/business/utils/titre-etape-demarche-etape-type-find.ts
index e1c079764..5a41a223e 100644
--- a/packages/api/src/business/utils/titre-etape-demarche-etape-type-find.ts
+++ b/packages/api/src/business/utils/titre-etape-demarche-etape-type-find.ts
@@ -1,19 +1,11 @@
 import { IEtapeType } from '../../types.js'
 import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
 
-export const titreEtapeDemarcheEtapeTypeFind = (
-  etapeTypeId: EtapeTypeId,
-  etapesTypes: IEtapeType[],
-  demarcheTypeNom: string
-) => {
-  const titreDemarcheEtapeType = etapesTypes.find(
-    ({ id }) => id === etapeTypeId
-  )
+export const titreEtapeDemarcheEtapeTypeFind = (etapeTypeId: EtapeTypeId, etapesTypes: IEtapeType[], demarcheTypeNom: string) => {
+  const titreDemarcheEtapeType = etapesTypes.find(({ id }) => id === etapeTypeId)
 
   if (!titreDemarcheEtapeType) {
-    throw new Error(
-      `étape "${etapeTypeId}" invalide pour une démarche "${demarcheTypeNom}"`
-    )
+    throw new Error(`étape "${etapeTypeId}" invalide pour une démarche "${demarcheTypeNom}"`)
   }
 
   return titreDemarcheEtapeType
diff --git a/packages/api/src/business/utils/titre-etape-heritage-contenu-find.test.ts b/packages/api/src/business/utils/titre-etape-heritage-contenu-find.test.ts
index dd9cd72b2..e6d729212 100644
--- a/packages/api/src/business/utils/titre-etape-heritage-contenu-find.test.ts
+++ b/packages/api/src/business/utils/titre-etape-heritage-contenu-find.test.ts
@@ -2,10 +2,7 @@ import { IContenu, IHeritageContenu, ITitreEtape } from '../../types.js'
 
 import { objectClone } from '../../tools/index.js'
 
-import {
-  heritageContenuFind,
-  titreEtapeHeritageContenuFind
-} from './titre-etape-heritage-contenu-find.js'
+import { heritageContenuFind, titreEtapeHeritageContenuFind } from './titre-etape-heritage-contenu-find.js'
 import { describe, test, expect } from 'vitest'
 import { DeepReadonly } from 'camino-common/src/typescript-tools.js'
 import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
@@ -13,173 +10,150 @@ import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_eta
 describe('retourne le contenu spécifique d’un élément d’une section en fonction de son héritage', () => {
   test('l’étape n’est pas modifiée si elle n’a pas d’étape précédente et qu’elle n’a aucun héritage d’actif', () => {
     const heritageContenu: IHeritageContenu = {
-      section: { element: { actif: false } }
+      section: { element: { actif: false } },
     }
     const titreEtape = {
-      heritageContenu
+      heritageContenu,
     } as ITitreEtape
 
     expect(heritageContenuFind('section', 'element', titreEtape)).toEqual({
       actif: false,
       hasChanged: false,
       value: undefined,
-      etapeId: undefined
+      etapeId: undefined,
     })
   })
 
   test('l’étape est modifiée si elle a une étape précédente et que son héritage n’est pas renseigné', () => {
     const heritageContenu: IHeritageContenu = {
-      section: { element: { actif: false } }
+      section: { element: { actif: false } },
     }
 
     const titreEtapePrecedente = {
       id: 'titreEtapePrecedenteId',
-      heritageContenu
+      heritageContenu,
     } as ITitreEtape
 
     const titreEtape = {
-      heritageContenu
+      heritageContenu,
     } as ITitreEtape
 
-    expect(
-      heritageContenuFind(
-        'section',
-        'element',
-        titreEtape,
-        titreEtapePrecedente
-      )
-    ).toEqual({
+    expect(heritageContenuFind('section', 'element', titreEtape, titreEtapePrecedente)).toEqual({
       actif: false,
       hasChanged: true,
       value: undefined,
-      etapeId: titreEtapePrecedente.id
+      etapeId: titreEtapePrecedente.id,
     })
   })
 
   test('l’étape est modifiée si elle a une étape précédente et que son héritage est actif', () => {
     const contenu: IContenu = {
-      section: { element: 'toto' }
+      section: { element: 'toto' },
     }
     const heritageContenu: IHeritageContenu = {
-      section: { element: { actif: false } }
+      section: { element: { actif: false } },
     }
 
     const titreEtapePrecedente = {
       id: 'titreEtapePrecedenteId',
       contenu,
-      heritageContenu
+      heritageContenu,
     } as ITitreEtape
 
     const titreEtape = {
-      heritageContenu
+      heritageContenu,
     } as ITitreEtape
     titreEtape.heritageContenu!.section.element.actif = true
 
-    expect(
-      heritageContenuFind(
-        'section',
-        'element',
-        titreEtape,
-        titreEtapePrecedente
-      )
-    ).toEqual({
+    expect(heritageContenuFind('section', 'element', titreEtape, titreEtapePrecedente)).toEqual({
       hasChanged: true,
       actif: true,
       value: contenu.section.element,
-      etapeId: titreEtapePrecedente.id
+      etapeId: titreEtapePrecedente.id,
     })
   })
 
   test('l’étape est modifiée et récupère l’héritage déjà présent sur l’étape précédente', () => {
     const contenu: IContenu = {
-      section: { element: 'toto' }
+      section: { element: 'toto' },
     }
     const heritageContenu: IHeritageContenu = {
-      section: { element: { actif: true, etapeId: 'firstEtapeId' } }
+      section: { element: { actif: true, etapeId: 'firstEtapeId' } },
     }
 
     const titreEtapePrecedente = {
       id: 'titreEtapePrecedenteId',
       contenu,
-      heritageContenu
+      heritageContenu,
     } as ITitreEtape
 
     const titreEtape = {
-      heritageContenu: objectClone(heritageContenu)
+      heritageContenu: objectClone(heritageContenu),
     } as ITitreEtape
     titreEtape.heritageContenu!.section.element.actif = true
     delete titreEtape.heritageContenu!.section.element.etapeId
 
-    expect(
-      heritageContenuFind(
-        'section',
-        'element',
-        titreEtape,
-        titreEtapePrecedente
-      )
-    ).toEqual({
+    expect(heritageContenuFind('section', 'element', titreEtape, titreEtapePrecedente)).toEqual({
       hasChanged: true,
       actif: true,
       value: contenu.section.element,
-      etapeId: 'firstEtapeId'
+      etapeId: 'firstEtapeId',
     })
   })
 
   test('l’héritage est désactivé si l’étape précédente n’existe plus', () => {
     const titreEtape = {
       contenu: {
-        section: { element: 'toto' }
+        section: { element: 'toto' },
       } as IContenu,
       heritageContenu: {
-        section: { element: { actif: true, etapeId: 'prevEtapeId' } }
-      } as IHeritageContenu
+        section: { element: { actif: true, etapeId: 'prevEtapeId' } },
+      } as IHeritageContenu,
     } as ITitreEtape
 
-    expect(heritageContenuFind('section', 'element', titreEtape, null)).toEqual(
-      {
-        hasChanged: true,
-        actif: false,
-        value: titreEtape.contenu!.section.element,
-        etapeId: undefined
-      }
-    )
+    expect(heritageContenuFind('section', 'element', titreEtape, null)).toEqual({
+      hasChanged: true,
+      actif: false,
+      value: titreEtape.contenu!.section.element,
+      etapeId: undefined,
+    })
   })
 })
 
 describe('retourne le contenu de l’étape en fonction de son héritage', () => {
   test('l’étape n’est pas modifiée si elle n’a pas d’étape précédente et qu’elle n’a aucun héritage d’actif', () => {
     const heritageContenu: IHeritageContenu = {
-      section: { element: { actif: false } }
+      section: { element: { actif: false } },
     }
     const titreEtape = {
       id: 'etapeId',
-      heritageContenu
+      heritageContenu,
     } as ITitreEtape
 
     expect(
       titreEtapeHeritageContenuFind([titreEtape], titreEtape, {
-        [titreEtape.id]: []
+        [titreEtape.id]: [],
       })
     ).toEqual({
       hasChanged: false,
       contenu: undefined,
-      heritageContenu
+      heritageContenu,
     })
   })
 
   test('l’étape est modifiée si elle un héritage actif et une étape précédente avec un élément d’une section en commun', () => {
     const heritageContenu: IHeritageContenu = {
-      section: { element: { actif: false } }
+      section: { element: { actif: false } },
     }
     const prevTitreEtape = {
       id: 'prevEtapeId',
       contenu: { section: { element: '2022-01-01' } } as IContenu,
-      heritageContenu
+      heritageContenu,
     } as ITitreEtape
 
     const titreEtape = {
       id: 'etapeId',
-      heritageContenu
+      heritageContenu,
     } as ITitreEtape
     titreEtape.heritageContenu!.section.element.actif = true
 
@@ -187,153 +161,117 @@ describe('retourne le contenu de l’étape en fonction de son héritage', () =>
       [prevTitreEtape.id]: [
         {
           id: 'section',
-          elements: [{ id: 'element', type: 'date' }]
-        }
+          elements: [{ id: 'element', type: 'date' }],
+        },
       ],
       [titreEtape.id]: [
         {
           id: 'section',
-          elements: [{ id: 'element', type: 'date' }]
-        }
-      ]
+          elements: [{ id: 'element', type: 'date' }],
+        },
+      ],
     }
 
-    expect(
-      titreEtapeHeritageContenuFind(
-        [prevTitreEtape, titreEtape],
-        titreEtape,
-        dictionary
-      )
-    ).toEqual({
+    expect(titreEtapeHeritageContenuFind([prevTitreEtape, titreEtape], titreEtape, dictionary)).toEqual({
       hasChanged: true,
       contenu: prevTitreEtape.contenu,
       heritageContenu: {
-        section: { element: { actif: true, etapeId: prevTitreEtape.id } }
-      }
+        section: { element: { actif: true, etapeId: prevTitreEtape.id } },
+      },
     })
   })
 
   test('l’étape est modifiée si elle un héritage actif et que son contenu est supprimé', () => {
     const heritageContenu: IHeritageContenu = {
-      section: { element: { actif: false } }
+      section: { element: { actif: false } },
     }
     const prevTitreEtape = {
       id: 'prevEtapeId',
-      heritageContenu
+      heritageContenu,
     } as ITitreEtape
 
     const titreEtape = {
       id: 'etapeId',
       contenu: { section: { element: 'toto' } } as IContenu,
-      heritageContenu
+      heritageContenu,
     } as ITitreEtape
     titreEtape.heritageContenu!.section.element.actif = true
 
     const dictionary: Record<string, DeepReadonly<Section>[]> = {
-      [prevTitreEtape.id]: [
-        { id: 'section', elements: [{ id: 'element', type: 'text' }] }
-      ],
-      [titreEtape.id]: [
-        { id: 'section', elements: [{ id: 'element', type: 'text' }] }
-      ]
+      [prevTitreEtape.id]: [{ id: 'section', elements: [{ id: 'element', type: 'text' }] }],
+      [titreEtape.id]: [{ id: 'section', elements: [{ id: 'element', type: 'text' }] }],
     }
 
-    expect(
-      titreEtapeHeritageContenuFind(
-        [prevTitreEtape, titreEtape],
-        titreEtape,
-        dictionary
-      )
-    ).toEqual({
+    expect(titreEtapeHeritageContenuFind([prevTitreEtape, titreEtape], titreEtape, dictionary)).toEqual({
       hasChanged: true,
       contenu: { section: {} },
       heritageContenu: {
-        section: { element: { actif: true, etapeId: prevTitreEtape.id } }
-      }
+        section: { element: { actif: true, etapeId: prevTitreEtape.id } },
+      },
     })
   })
 
   test('l’étape n’est pas modifiée si l’héritage est actif, la valeur est null et que le contenu de l’étape précédente est vide', () => {
     const heritageContenu: IHeritageContenu = {
-      section: { element: { actif: false, etapeId: null } }
+      section: { element: { actif: false, etapeId: null } },
     }
     const prevTitreEtape = {
       id: 'prevEtapeId',
       heritageContenu,
-      contenu: null
+      contenu: null,
     } as ITitreEtape
 
     const titreEtape = {
       id: 'etapeId',
       contenu: { section: {} } as IContenu,
-      heritageContenu
+      heritageContenu,
     } as ITitreEtape
     titreEtape.heritageContenu!.section.element.actif = true
     titreEtape.heritageContenu!.section.element.etapeId = 'prevEtapeId'
 
     const dictionary: Record<string, DeepReadonly<Section>[]> = {
-      [prevTitreEtape.id]: [
-        { id: 'section', elements: [{ id: 'element', type: 'text' }] }
-      ],
-      [titreEtape.id]: [
-        { id: 'section', elements: [{ id: 'element', type: 'text' }] }
-      ]
+      [prevTitreEtape.id]: [{ id: 'section', elements: [{ id: 'element', type: 'text' }] }],
+      [titreEtape.id]: [{ id: 'section', elements: [{ id: 'element', type: 'text' }] }],
     }
 
-    expect(
-      titreEtapeHeritageContenuFind(
-        [prevTitreEtape, titreEtape],
-        titreEtape,
-        dictionary
-      )
-    ).toEqual({
+    expect(titreEtapeHeritageContenuFind([prevTitreEtape, titreEtape], titreEtape, dictionary)).toEqual({
       hasChanged: false,
       contenu: { section: {} },
       heritageContenu: {
-        section: { element: { actif: true, etapeId: prevTitreEtape.id } }
-      }
+        section: { element: { actif: true, etapeId: prevTitreEtape.id } },
+      },
     })
   })
 
   test('l’étape n’est pas modifiée si l’héritage est actif, le contenu est vide et que la valeur de l’étape précédente est null', () => {
     const heritageContenu: IHeritageContenu = {
-      section: { element: { actif: false, etapeId: null } }
+      section: { element: { actif: false, etapeId: null } },
     }
     const prevTitreEtape = {
       id: 'prevEtapeId',
       heritageContenu,
-      contenu: { autre: {} } as IContenu
+      contenu: { autre: {} } as IContenu,
     } as ITitreEtape
 
     const titreEtape = {
       id: 'etapeId',
       contenu: null,
-      heritageContenu
+      heritageContenu,
     } as ITitreEtape
     titreEtape.heritageContenu!.section.element.actif = true
     titreEtape.heritageContenu!.section.element.etapeId = 'prevEtapeId'
 
     const dictionary: Record<string, DeepReadonly<Section>[]> = {
-      [prevTitreEtape.id]: [
-        { id: 'section', elements: [{ id: 'element', type: 'text' }] }
-      ],
-      [titreEtape.id]: [
-        { id: 'section', elements: [{ id: 'element', type: 'text' }] }
-      ]
+      [prevTitreEtape.id]: [{ id: 'section', elements: [{ id: 'element', type: 'text' }] }],
+      [titreEtape.id]: [{ id: 'section', elements: [{ id: 'element', type: 'text' }] }],
     }
 
-    expect(
-      titreEtapeHeritageContenuFind(
-        [prevTitreEtape, titreEtape],
-        titreEtape,
-        dictionary
-      )
-    ).toEqual({
+    expect(titreEtapeHeritageContenuFind([prevTitreEtape, titreEtape], titreEtape, dictionary)).toEqual({
       hasChanged: false,
       contenu: null,
       heritageContenu: {
-        section: { element: { actif: true, etapeId: prevTitreEtape.id } }
-      }
+        section: { element: { actif: true, etapeId: prevTitreEtape.id } },
+      },
     })
   })
 })
diff --git a/packages/api/src/business/utils/titre-etape-heritage-contenu-find.ts b/packages/api/src/business/utils/titre-etape-heritage-contenu-find.ts
index ff682f7b1..983e2193a 100644
--- a/packages/api/src/business/utils/titre-etape-heritage-contenu-find.ts
+++ b/packages/api/src/business/utils/titre-etape-heritage-contenu-find.ts
@@ -3,26 +3,16 @@ import { IContenuValeur, Index, ITitreEtape } from '../../types.js'
 import { DeepReadonly } from 'camino-common/src/typescript-tools.js'
 import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
 
-export const heritageContenuFind = (
-  sectionId: string,
-  elementId: string,
-  titreEtape: Pick<ITitreEtape, 'contenu' | 'heritageContenu'>,
-  prevTitreEtape?: ITitreEtape | null
-) => {
+export const heritageContenuFind = (sectionId: string, elementId: string, titreEtape: Pick<ITitreEtape, 'contenu' | 'heritageContenu'>, prevTitreEtape?: ITitreEtape | null) => {
   let hasChanged = false
-  let value = (titreEtape.contenu &&
-    titreEtape.contenu[sectionId] &&
-    titreEtape.contenu[sectionId][elementId]) as IContenuValeur
-
-  let heritage =
-    titreEtape.heritageContenu && titreEtape.heritageContenu[sectionId]
-      ? titreEtape.heritageContenu[sectionId][elementId]
-      : null
+  let value = (titreEtape.contenu && titreEtape.contenu[sectionId] && titreEtape.contenu[sectionId][elementId]) as IContenuValeur
+
+  let heritage = titreEtape.heritageContenu && titreEtape.heritageContenu[sectionId] ? titreEtape.heritageContenu[sectionId][elementId] : null
   if (!heritage) {
     // l’héritage peut ne pas exister dans le cas où un nouvel élément d’une section a été ajouté via les métas
     heritage = {
       actif: false,
-      etapeId: null
+      etapeId: null,
     }
     hasChanged = true
   }
@@ -30,23 +20,14 @@ export const heritageContenuFind = (
 
   let actif = heritage.actif
 
-  const etapeId =
-    prevHeritage?.etapeId && prevHeritage?.actif
-      ? prevHeritage.etapeId
-      : prevTitreEtape?.id
+  const etapeId = prevHeritage?.etapeId && prevHeritage?.actif ? prevHeritage.etapeId : prevTitreEtape?.id
 
   if (heritage.actif) {
     if (prevTitreEtape) {
       const oldValue = value
-      value = (prevTitreEtape.contenu &&
-        prevTitreEtape.contenu[sectionId] &&
-        prevTitreEtape.contenu[sectionId][elementId]) as IContenuValeur
-
-      if (
-        (oldValue !== undefined || value !== null) &&
-        (oldValue !== null || value !== undefined) &&
-        oldValue !== value
-      ) {
+      value = (prevTitreEtape.contenu && prevTitreEtape.contenu[sectionId] && prevTitreEtape.contenu[sectionId][elementId]) as IContenuValeur
+
+      if ((oldValue !== undefined || value !== null) && (oldValue !== null || value !== undefined) && oldValue !== value) {
         hasChanged = true
       }
     } else {
@@ -76,27 +57,9 @@ export const titreEtapeHeritageContenuFind = (
         section.elements.forEach(element => {
           // parmi les étapes précédentes,
           // trouve l'étape qui contient section / element
-          const prevTitreEtape = titreEtapes.find(
-            e =>
-              e.id !== titreEtape.id &&
-              etapeSectionsDictionary[e.id].find(
-                s =>
-                  s.id === section.id &&
-                  s.elements!.find(e => e.id === element.id)
-              )
-          )
-
-          const {
-            hasChanged: contenuHasChanged,
-            actif,
-            value,
-            etapeId
-          } = heritageContenuFind(
-            section.id,
-            element.id,
-            titreEtape,
-            prevTitreEtape
-          )
+          const prevTitreEtape = titreEtapes.find(e => e.id !== titreEtape.id && etapeSectionsDictionary[e.id].find(s => s.id === section.id && s.elements!.find(e => e.id === element.id)))
+
+          const { hasChanged: contenuHasChanged, actif, value, etapeId } = heritageContenuFind(section.id, element.id, titreEtape, prevTitreEtape)
 
           if (contenuHasChanged) {
             if (value || value === 0 || value === false) {
@@ -132,7 +95,7 @@ export const titreEtapeHeritageContenuFind = (
     {
       contenu: titreEtape.contenu,
       heritageContenu: titreEtape.heritageContenu,
-      hasChanged: false
+      hasChanged: false,
     }
   )
 }
diff --git a/packages/api/src/business/utils/titre-etape-heritage-props-find.test.ts b/packages/api/src/business/utils/titre-etape-heritage-props-find.test.ts
index dbf132879..45d323c11 100644
--- a/packages/api/src/business/utils/titre-etape-heritage-props-find.test.ts
+++ b/packages/api/src/business/utils/titre-etape-heritage-props-find.test.ts
@@ -1,14 +1,6 @@
-import {
-  IEntreprise,
-  IHeritageProps,
-  ITitreEtape,
-  ITitrePoint
-} from '../../types.js'
-
-import {
-  titreEtapeHeritagePropsFind,
-  titreEtapePropsIds
-} from './titre-etape-heritage-props-find.js'
+import { IEntreprise, IHeritageProps, ITitreEtape, ITitrePoint } from '../../types.js'
+
+import { titreEtapeHeritagePropsFind, titreEtapePropsIds } from './titre-etape-heritage-props-find.js'
 
 import { objectClone } from '../../tools/index.js'
 import { describe, test, expect } from 'vitest'
@@ -22,12 +14,12 @@ describe('retourne l’étape en fonction de son héritage', () => {
         acc[prop] = { actif: false, etapeId: null }
 
         return acc
-      }, {} as IHeritageProps)
+      }, {} as IHeritageProps),
     } as ITitreEtape
 
     expect(titreEtapeHeritagePropsFind(titreEtape)).toEqual({
       hasChanged: false,
-      titreEtape
+      titreEtape,
     })
   })
 
@@ -35,43 +27,35 @@ describe('retourne l’étape en fonction de son héritage', () => {
     ['surface', 3, 2],
     ['duree', 10, 20],
     ['dateDebut', '2020-01-01', '2023-01-01'],
-    ['dateFin', '2021-01-01', '2021-03-01']
-  ])(
-    'l’étape est modifiée si elle a une étape précédente et qu’elle au moins un héritage non renseigné',
-    (propId, heritageValeur, etapeValeur) => {
-      const titreEtapePrecedente = {
-        id: 'titreEtapePrecedenteId',
-        heritageProps: titreEtapePropsIds.reduce((acc, prop) => {
-          acc[prop] = { actif: false, etapeId: null }
-
-          return acc
-        }, {} as IHeritageProps)
-      } as ITitreEtape
-      // @ts-ignore
-      titreEtapePrecedente[propId] = heritageValeur
-
-      const titreEtape = objectClone(titreEtapePrecedente) as ITitreEtape
-      titreEtape.heritageProps![propId].actif = true
-      // @ts-ignore
-      titreEtape[propId] = etapeValeur
-      titreEtape.id = 'titreEtapeId'
-
-      const titreEtapeNew = objectClone(titreEtape) as ITitreEtape
-      // @ts-ignore
-      titreEtapeNew[propId] = heritageValeur
-      titreEtapePropsIds.forEach(
-        prop =>
-          (titreEtapeNew.heritageProps![prop].etapeId = titreEtapePrecedente.id)
-      )
-
-      expect(
-        titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
-      ).toEqual({
-        hasChanged: true,
-        titreEtape: titreEtapeNew
-      })
-    }
-  )
+    ['dateFin', '2021-01-01', '2021-03-01'],
+  ])('l’étape est modifiée si elle a une étape précédente et qu’elle au moins un héritage non renseigné', (propId, heritageValeur, etapeValeur) => {
+    const titreEtapePrecedente = {
+      id: 'titreEtapePrecedenteId',
+      heritageProps: titreEtapePropsIds.reduce((acc, prop) => {
+        acc[prop] = { actif: false, etapeId: null }
+
+        return acc
+      }, {} as IHeritageProps),
+    } as ITitreEtape
+    // @ts-ignore
+    titreEtapePrecedente[propId] = heritageValeur
+
+    const titreEtape = objectClone(titreEtapePrecedente) as ITitreEtape
+    titreEtape.heritageProps![propId].actif = true
+    // @ts-ignore
+    titreEtape[propId] = etapeValeur
+    titreEtape.id = 'titreEtapeId'
+
+    const titreEtapeNew = objectClone(titreEtape) as ITitreEtape
+    // @ts-ignore
+    titreEtapeNew[propId] = heritageValeur
+    titreEtapePropsIds.forEach(prop => (titreEtapeNew.heritageProps![prop].etapeId = titreEtapePrecedente.id))
+
+    expect(titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)).toEqual({
+      hasChanged: true,
+      titreEtape: titreEtapeNew,
+    })
+  })
 
   test('l’étape n’est pas modifiée si pas de changement sur les titulaires', () => {
     const titreEtapePrecedente = {
@@ -81,61 +65,48 @@ describe('retourne l’étape en fonction de son héritage', () => {
         acc[prop] = { actif: false, etapeId: null }
 
         return acc
-      }, {} as IHeritageProps)
+      }, {} as IHeritageProps),
     } as ITitreEtape
 
     const titreEtape = objectClone(titreEtapePrecedente) as ITitreEtape
     titreEtape.heritageProps!.titulaires.actif = true
     titreEtape.id = 'titreEtapeId'
-    titreEtapePropsIds.forEach(
-      prop =>
-        (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id)
-    )
-
-    expect(
-      titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
-    ).toEqual({
+    titreEtapePropsIds.forEach(prop => (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id))
+
+    expect(titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)).toEqual({
       hasChanged: false,
-      titreEtape
+      titreEtape,
     })
   })
 
-  test.each(['titulaires', 'amodiataires'])(
-    'l’étape est modifiée si changement sur les $propId',
-    propId => {
-      const titreEtapePrecedente = {
-        id: 'titreEtapePrecedenteId',
-        heritageProps: titreEtapePropsIds.reduce((acc, prop) => {
-          acc[prop] = { actif: false, etapeId: null }
-
-          return acc
-        }, {} as IHeritageProps)
-      } as ITitreEtape
-      // @ts-ignore
-      titreEtapePrecedente[propId] = [{ id: 'toto' }, { id: 'tata' }]
-
-      const titreEtape = objectClone(titreEtapePrecedente) as ITitreEtape
-      titreEtape.heritageProps![propId].actif = true
-      titreEtape.id = 'titreEtapeId'
-      titreEtapePropsIds.forEach(
-        prop =>
-          (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id)
-      )
-      // @ts-ignore
-      titreEtape[propId] = [{ id: 'haha' }, { id: 'toto' }]
-
-      const titreEtapeNew = objectClone(titreEtape) as ITitreEtape
-      // @ts-ignore
-      titreEtapeNew[propId] = [{ id: 'toto' }, { id: 'tata' }]
-
-      expect(
-        titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
-      ).toEqual({
-        hasChanged: true,
-        titreEtape: titreEtapeNew
-      })
-    }
-  )
+  test.each(['titulaires', 'amodiataires'])('l’étape est modifiée si changement sur les $propId', propId => {
+    const titreEtapePrecedente = {
+      id: 'titreEtapePrecedenteId',
+      heritageProps: titreEtapePropsIds.reduce((acc, prop) => {
+        acc[prop] = { actif: false, etapeId: null }
+
+        return acc
+      }, {} as IHeritageProps),
+    } as ITitreEtape
+    // @ts-ignore
+    titreEtapePrecedente[propId] = [{ id: 'toto' }, { id: 'tata' }]
+
+    const titreEtape = objectClone(titreEtapePrecedente) as ITitreEtape
+    titreEtape.heritageProps![propId].actif = true
+    titreEtape.id = 'titreEtapeId'
+    titreEtapePropsIds.forEach(prop => (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id))
+    // @ts-ignore
+    titreEtape[propId] = [{ id: 'haha' }, { id: 'toto' }]
+
+    const titreEtapeNew = objectClone(titreEtape) as ITitreEtape
+    // @ts-ignore
+    titreEtapeNew[propId] = [{ id: 'toto' }, { id: 'tata' }]
+
+    expect(titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)).toEqual({
+      hasChanged: true,
+      titreEtape: titreEtapeNew,
+    })
+  })
 
   test('l’étape est modifiée si changement sur les substances', () => {
     const titreEtapePrecedente = {
@@ -144,27 +115,22 @@ describe('retourne l’étape en fonction de son héritage', () => {
         acc[prop] = { actif: false, etapeId: null }
 
         return acc
-      }, {} as IHeritageProps)
+      }, {} as IHeritageProps),
     } as ITitreEtape
     titreEtapePrecedente.substances = ['auru', 'arge']
 
     const titreEtape = objectClone(titreEtapePrecedente) as ITitreEtape
     titreEtape.heritageProps!.substances.actif = true
     titreEtape.id = 'titreEtapeId'
-    titreEtapePropsIds.forEach(
-      prop =>
-        (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id)
-    )
+    titreEtapePropsIds.forEach(prop => (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id))
     titreEtape.substances = ['nacl', 'arge']
 
     const titreEtapeNew = objectClone(titreEtape) as ITitreEtape
     titreEtapeNew.substances = ['auru', 'arge']
 
-    expect(
-      titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
-    ).toEqual({
+    expect(titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)).toEqual({
       hasChanged: true,
-      titreEtape: titreEtapeNew
+      titreEtape: titreEtapeNew,
     })
   })
 
@@ -176,26 +142,21 @@ describe('retourne l’étape en fonction de son héritage', () => {
         acc[prop] = { actif: false, etapeId: null }
 
         return acc
-      }, {} as IHeritageProps)
+      }, {} as IHeritageProps),
     } as ITitreEtape
 
     const titreEtape = objectClone(titreEtapePrecedente) as ITitreEtape
     titreEtape.heritageProps!.titulaires.actif = true
     titreEtape.titulaires = [{ id: 'haha' }, { id: 'toto' }] as IEntreprise[]
     titreEtape.id = 'titreEtapeId'
-    titreEtapePropsIds.forEach(
-      prop =>
-        (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id)
-    )
+    titreEtapePropsIds.forEach(prop => (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id))
 
     const titreEtapeNew = objectClone(titreEtape) as ITitreEtape
     titreEtapeNew.titulaires = [{ id: 'toto' }] as IEntreprise[]
 
-    expect(
-      titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
-    ).toEqual({
+    expect(titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)).toEqual({
       hasChanged: true,
-      titreEtape: titreEtapeNew
+      titreEtape: titreEtapeNew,
     })
   })
 
@@ -207,56 +168,41 @@ describe('retourne l’étape en fonction de son héritage', () => {
         acc[prop] = { actif: true, etapeId: 'premiereEtapeId' }
 
         return acc
-      }, {} as IHeritageProps)
+      }, {} as IHeritageProps),
     } as ITitreEtape
 
     const titreEtape = objectClone(titreEtapePrecedente) as ITitreEtape
     titreEtape.id = 'titreEtapeId'
-    titreEtapePropsIds.forEach(
-      prop =>
-        (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id)
-    )
+    titreEtapePropsIds.forEach(prop => (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id))
 
     const titreEtapeNew = objectClone(titreEtape) as ITitreEtape
-    titreEtapePropsIds.forEach(
-      prop => (titreEtapeNew.heritageProps![prop].etapeId = 'premiereEtapeId')
-    )
+    titreEtapePropsIds.forEach(prop => (titreEtapeNew.heritageProps![prop].etapeId = 'premiereEtapeId'))
 
-    expect(
-      titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
-    ).toEqual({
+    expect(titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)).toEqual({
       hasChanged: true,
-      titreEtape: titreEtapeNew
+      titreEtape: titreEtapeNew,
     })
   })
 
   test('l’étape n’est pas modifiée si pas de changement sur les points', () => {
     const titreEtapePrecedente = {
       id: 'titreEtapePrecedenteId',
-      points: [
-        { coordonnees: { x: 1, y: 2 } },
-        { coordonnees: { x: 2, y: 3 } }
-      ] as unknown as ITitrePoint[],
+      points: [{ coordonnees: { x: 1, y: 2 } }, { coordonnees: { x: 2, y: 3 } }] as unknown as ITitrePoint[],
       heritageProps: titreEtapePropsIds.reduce((acc, prop) => {
         acc[prop] = { actif: false, etapeId: null }
 
         return acc
-      }, {} as IHeritageProps)
+      }, {} as IHeritageProps),
     } as ITitreEtape
 
     const titreEtape = objectClone(titreEtapePrecedente) as ITitreEtape
     titreEtape.heritageProps!.points.actif = true
     titreEtape.id = 'titreEtapeId'
-    titreEtapePropsIds.forEach(
-      prop =>
-        (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id)
-    )
-
-    expect(
-      titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
-    ).toEqual({
+    titreEtapePropsIds.forEach(prop => (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id))
+
+    expect(titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)).toEqual({
       hasChanged: false,
-      titreEtape
+      titreEtape,
     })
   })
 
@@ -265,13 +211,13 @@ describe('retourne l’étape en fonction de son héritage', () => {
       id: 'titreEtapePrecedenteId',
       points: [
         { id: '1', coordonnees: { x: 1, y: 2 }, references: [{ id: '23' }] },
-        { id: '2', coordonnees: { x: 2, y: 3 }, references: [] }
+        { id: '2', coordonnees: { x: 2, y: 3 }, references: [] },
       ] as unknown as ITitrePoint[],
       heritageProps: titreEtapePropsIds.reduce((acc, prop) => {
         acc[prop] = { actif: false, etapeId: null }
 
         return acc
-      }, {} as IHeritageProps)
+      }, {} as IHeritageProps),
     } as ITitreEtape
 
     const titreEtape = objectClone(titreEtapePrecedente) as ITitreEtape
@@ -279,12 +225,9 @@ describe('retourne l’étape en fonction de son héritage', () => {
     titreEtape.id = 'titreEtapeId'
     titreEtape.points = [
       { id: '3', coordonnees: { x: 1, y: 2 } },
-      { id: '4', coordonnees: { x: 2, y: 4 } }
+      { id: '4', coordonnees: { x: 2, y: 4 } },
     ] as unknown as ITitrePoint[]
-    titreEtapePropsIds.forEach(
-      prop =>
-        (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id)
-    )
+    titreEtapePropsIds.forEach(prop => (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id))
 
     const newTitreEtape = objectClone(titreEtape) as ITitreEtape
     newTitreEtape.points = objectClone(titreEtapePrecedente.points)
@@ -292,12 +235,8 @@ describe('retourne l’étape en fonction de son héritage', () => {
     const result = titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
 
     expect(result.hasChanged).toBeTruthy()
-    expect(result.titreEtape.points![0].id).not.toEqual(
-      newTitreEtape.points![0].id
-    )
-    expect(result.titreEtape.points![0].references[0].id).not.toEqual(
-      newTitreEtape.points![0].references[0].id
-    )
+    expect(result.titreEtape.points![0].id).not.toEqual(newTitreEtape.points![0].id)
+    expect(result.titreEtape.points![0].references[0].id).not.toEqual(newTitreEtape.points![0].references[0].id)
   })
 
   test('l’étape est modifiée si changement d’incertitude', () => {
@@ -308,26 +247,21 @@ describe('retourne l’étape en fonction de son héritage', () => {
         acc[prop] = { actif: false, etapeId: null }
 
         return acc
-      }, {} as IHeritageProps)
+      }, {} as IHeritageProps),
     } as ITitreEtape
 
     const titreEtape = objectClone(titreEtapePrecedente) as ITitreEtape
     titreEtape.heritageProps!.surface.actif = true
     titreEtape.incertitudes = {}
     titreEtape.id = 'titreEtapeId'
-    titreEtapePropsIds.forEach(
-      prop =>
-        (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id)
-    )
+    titreEtapePropsIds.forEach(prop => (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id))
 
     const newTitreEtape = objectClone(titreEtape) as ITitreEtape
     newTitreEtape.incertitudes = { surface: true }
 
-    expect(
-      titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
-    ).toEqual({
+    expect(titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)).toEqual({
       hasChanged: true,
-      titreEtape: newTitreEtape
+      titreEtape: newTitreEtape,
     })
   })
 
@@ -338,26 +272,21 @@ describe('retourne l’étape en fonction de son héritage', () => {
         acc[prop] = { actif: false, etapeId: null }
 
         return acc
-      }, {} as IHeritageProps)
+      }, {} as IHeritageProps),
     } as ITitreEtape
 
     const titreEtape = objectClone(titreEtapePrecedente) as ITitreEtape
     titreEtape.heritageProps!.surface.actif = true
     titreEtape.incertitudes = { surface: true }
     titreEtape.id = 'titreEtapeId'
-    titreEtapePropsIds.forEach(
-      prop =>
-        (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id)
-    )
+    titreEtapePropsIds.forEach(prop => (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id))
 
     const newTitreEtape = objectClone(titreEtape) as ITitreEtape
     newTitreEtape.incertitudes = null
 
-    expect(
-      titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
-    ).toEqual({
+    expect(titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)).toEqual({
       hasChanged: true,
-      titreEtape: newTitreEtape
+      titreEtape: newTitreEtape,
     })
   })
 
@@ -369,26 +298,21 @@ describe('retourne l’étape en fonction de son héritage', () => {
         acc[prop] = { actif: false, etapeId: null }
 
         return acc
-      }, {} as IHeritageProps)
+      }, {} as IHeritageProps),
     } as ITitreEtape
 
     const titreEtape = objectClone(titreEtapePrecedente) as ITitreEtape
     titreEtape.heritageProps!.surface.actif = true
     titreEtape.incertitudes = null
     titreEtape.id = 'titreEtapeId'
-    titreEtapePropsIds.forEach(
-      prop =>
-        (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id)
-    )
+    titreEtapePropsIds.forEach(prop => (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id))
 
     const newTitreEtape = objectClone(titreEtape) as ITitreEtape
     newTitreEtape.incertitudes = { surface: true }
 
-    expect(
-      titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
-    ).toEqual({
+    expect(titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)).toEqual({
       hasChanged: true,
-      titreEtape: newTitreEtape
+      titreEtape: newTitreEtape,
     })
   })
 
@@ -399,7 +323,7 @@ describe('retourne l’étape en fonction de son héritage', () => {
         acc[prop] = { actif: false, etapeId: null }
 
         return acc
-      }, {} as IHeritageProps)
+      }, {} as IHeritageProps),
     } as ITitreEtape
 
     const titreEtape = objectClone(titreEtapePrecedente)
@@ -407,18 +331,13 @@ describe('retourne l’étape en fonction de son héritage', () => {
     titreEtape.id = 'titreEtapeId'
     titreEtape.incertitudes = { date: true }
 
-    titreEtapePropsIds.forEach(
-      prop =>
-        (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id)
-    )
+    titreEtapePropsIds.forEach(prop => (titreEtape.heritageProps![prop].etapeId = titreEtapePrecedente.id))
 
     const newTitreEtape = objectClone(titreEtape)
 
-    expect(
-      titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
-    ).toEqual({
+    expect(titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)).toEqual({
       hasChanged: false,
-      titreEtape: newTitreEtape
+      titreEtape: newTitreEtape,
     })
   })
 
@@ -429,7 +348,7 @@ describe('retourne l’étape en fonction de son héritage', () => {
         acc[prop] = { actif: true, etapeId: 'prevTitreEtapeId' }
 
         return acc
-      }, {} as IHeritageProps)
+      }, {} as IHeritageProps),
     } as ITitreEtape
 
     const newTitreEtape = objectClone(titreEtape) as ITitreEtape
@@ -441,7 +360,7 @@ describe('retourne l’étape en fonction de son héritage', () => {
 
     expect(titreEtapeHeritagePropsFind(titreEtape, null)).toEqual({
       hasChanged: true,
-      titreEtape: newTitreEtape
+      titreEtape: newTitreEtape,
     })
   })
 
@@ -453,11 +372,11 @@ describe('retourne l’étape en fonction de son héritage', () => {
         acc[prop] = { actif: false, etapeId: null }
 
         return acc
-      }, {} as IHeritageProps)
+      }, {} as IHeritageProps),
     } as ITitreEtape
 
     const titreEtape = {
-      id: 'titreEtapeId'
+      id: 'titreEtapeId',
     } as ITitreEtape
 
     const newTitreEtape = objectClone(titreEtape) as ITitreEtape
@@ -467,11 +386,9 @@ describe('retourne l’étape en fonction de son héritage', () => {
       return acc
     }, {} as IHeritageProps)
 
-    expect(
-      titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)
-    ).toEqual({
+    expect(titreEtapeHeritagePropsFind(titreEtape, titreEtapePrecedente)).toEqual({
       hasChanged: true,
-      titreEtape: newTitreEtape
+      titreEtape: newTitreEtape,
     })
   })
 })
diff --git a/packages/api/src/business/utils/titre-etape-heritage-props-find.ts b/packages/api/src/business/utils/titre-etape-heritage-props-find.ts
index e3afb386c..e4d4974eb 100644
--- a/packages/api/src/business/utils/titre-etape-heritage-props-find.ts
+++ b/packages/api/src/business/utils/titre-etape-heritage-props-find.ts
@@ -1,30 +1,12 @@
-import {
-  ITitreEtape,
-  IEntreprise,
-  ITitrePoint,
-  ITitreIncertitudes,
-  ITitreEntreprise
-} from '../../types.js'
+import { ITitreEtape, IEntreprise, ITitrePoint, ITitreIncertitudes, ITitreEntreprise } from '../../types.js'
 import { objectClone } from '../../tools/index.js'
 import { idGenerate } from '../../database/models/_format/id-create.js'
 import { SubstanceLegaleId } from 'camino-common/src/static/substancesLegales.js'
 import { CaminoDate } from 'camino-common/src/date.js'
 
-const titreEtapePropsIds: (keyof ITitreEtape)[] = [
-  'points',
-  'titulaires',
-  'amodiataires',
-  'substances',
-  'surface',
-  'dateFin',
-  'dateDebut',
-  'duree'
-]
-
-const titrePointsIdsUpdate = (
-  titrePoints: ITitrePoint[],
-  newTitreEtapeId: string
-) =>
+const titreEtapePropsIds: (keyof ITitreEtape)[] = ['points', 'titulaires', 'amodiataires', 'substances', 'surface', 'dateFin', 'dateDebut', 'duree']
+
+const titrePointsIdsUpdate = (titrePoints: ITitrePoint[], newTitreEtapeId: string) =>
   titrePoints.map(p => {
     p.id = idGenerate()
     p.titreEtapeId = newTitreEtapeId
@@ -39,69 +21,41 @@ const titrePointsIdsUpdate = (
     return p
   })
 
-const propertyArrayCheck = (
-  newValue: IPropValueArray,
-  prevValue: IPropValueArray,
-  propId: string
-) => {
+const propertyArrayCheck = (newValue: IPropValueArray, prevValue: IPropValueArray, propId: string) => {
   if (prevValue?.length !== newValue?.length) {
     return false
   }
 
   if (prevValue?.length && newValue?.length) {
     if (propId === 'points') {
-      const comparator = ({ coordonnees }: ITitrePoint) =>
-        `(${coordonnees.x}, ${coordonnees.y})`
+      const comparator = ({ coordonnees }: ITitrePoint) => `(${coordonnees.x}, ${coordonnees.y})`
 
-      return (
-        (newValue as ITitrePoint[]).map(comparator).sort().toString() ===
-        (prevValue as ITitrePoint[]).map(comparator).sort().toString()
-      )
+      return (newValue as ITitrePoint[]).map(comparator).sort().toString() === (prevValue as ITitrePoint[]).map(comparator).sort().toString()
     } else if (propId === 'substances') {
       return newValue.toString() === prevValue.toString()
     } else if (['titulaires', 'amodiataires'].includes(propId)) {
-      const comparator = (propValueArray: ITitreEntreprise) =>
-        propValueArray.id + propValueArray.operateur
+      const comparator = (propValueArray: ITitreEntreprise) => propValueArray.id + propValueArray.operateur
 
-      return (
-        (newValue as ITitreEntreprise[]).map(comparator).sort().toString() ===
-        (prevValue as ITitreEntreprise[]).map(comparator).sort().toString()
-      )
+      return (newValue as ITitreEntreprise[]).map(comparator).sort().toString() === (prevValue as ITitreEntreprise[]).map(comparator).sort().toString()
     }
   }
 
   return true
 }
 
-type IPropValueArray =
-  | undefined
-  | null
-  | IEntreprise[]
-  | ITitrePoint[]
-  | SubstanceLegaleId[]
+type IPropValueArray = undefined | null | IEntreprise[] | ITitrePoint[] | SubstanceLegaleId[]
 
 type IPropValue = number | string | IPropValueArray
 
-const titreEtapePropCheck = (
-  propId: string,
-  oldValue?: IPropValue | null,
-  newValue?: IPropValue | null
-) => {
+const titreEtapePropCheck = (propId: string, oldValue?: IPropValue | null, newValue?: IPropValue | null) => {
   if (['titulaires', 'amodiataires', 'substances', 'points'].includes(propId)) {
-    return propertyArrayCheck(
-      oldValue as IPropValueArray,
-      newValue as IPropValueArray,
-      propId
-    )
+    return propertyArrayCheck(oldValue as IPropValueArray, newValue as IPropValueArray, propId)
   }
 
   return oldValue === newValue
 }
 
-const titreEtapeHeritagePropsFind = (
-  titreEtape: ITitreEtape,
-  prevTitreEtape?: ITitreEtape | null
-) => {
+const titreEtapeHeritagePropsFind = (titreEtape: ITitreEtape, prevTitreEtape?: ITitreEtape | null) => {
   let hasChanged = false
 
   let newTitreEtape = titreEtape
@@ -121,14 +75,9 @@ const titreEtapeHeritagePropsFind = (
       newTitreEtape.heritageProps![propId] = { actif: false, etapeId: null }
     }
 
-    const prevHeritage = prevTitreEtape?.heritageProps
-      ? prevTitreEtape?.heritageProps[propId]
-      : null
+    const prevHeritage = prevTitreEtape?.heritageProps ? prevTitreEtape?.heritageProps[propId] : null
 
-    const etapeId =
-      prevHeritage?.etapeId && prevHeritage?.actif
-        ? prevHeritage.etapeId
-        : prevTitreEtape?.id
+    const etapeId = prevHeritage?.etapeId && prevHeritage?.actif ? prevHeritage.etapeId : prevTitreEtape?.id
 
     if (heritage?.actif) {
       if (prevTitreEtape) {
@@ -140,10 +89,7 @@ const titreEtapeHeritagePropsFind = (
           newTitreEtape = objectClone(newTitreEtape)
 
           if (propId === 'points') {
-            newTitreEtape.points = titrePointsIdsUpdate(
-              newValue as ITitrePoint[],
-              newTitreEtape.id
-            )
+            newTitreEtape.points = titrePointsIdsUpdate(newValue as ITitrePoint[], newTitreEtape.id)
           } else if (propId === 'amodiataires' || propId === 'titulaires') {
             newTitreEtape[propId] = newValue as IEntreprise[]
           } else if (propId === 'substances') {
@@ -157,38 +103,24 @@ const titreEtapeHeritagePropsFind = (
 
         const incertitudePropId = propId as keyof ITitreIncertitudes
 
-        if (
-          newTitreEtape.incertitudes &&
-          prevTitreEtape.incertitudes &&
-          newTitreEtape.incertitudes[incertitudePropId] !==
-            prevTitreEtape.incertitudes[incertitudePropId]
-        ) {
+        if (newTitreEtape.incertitudes && prevTitreEtape.incertitudes && newTitreEtape.incertitudes[incertitudePropId] !== prevTitreEtape.incertitudes[incertitudePropId]) {
           hasChanged = true
           newTitreEtape = objectClone(newTitreEtape)
-          newTitreEtape.incertitudes![incertitudePropId] =
-            prevTitreEtape.incertitudes[incertitudePropId]
+          newTitreEtape.incertitudes![incertitudePropId] = prevTitreEtape.incertitudes[incertitudePropId]
         } else if (newTitreEtape.incertitudes && !prevTitreEtape.incertitudes) {
           newTitreEtape = objectClone(newTitreEtape)
-          if (
-            newTitreEtape.incertitudes &&
-            newTitreEtape.incertitudes[incertitudePropId]
-          ) {
+          if (newTitreEtape.incertitudes && newTitreEtape.incertitudes[incertitudePropId]) {
             hasChanged = true
             delete newTitreEtape.incertitudes[incertitudePropId]
             if (!Object.keys(newTitreEtape.incertitudes).length) {
               newTitreEtape.incertitudes = null
             }
           }
-        } else if (
-          prevTitreEtape.incertitudes &&
-          prevTitreEtape.incertitudes[incertitudePropId] &&
-          !newTitreEtape.incertitudes
-        ) {
+        } else if (prevTitreEtape.incertitudes && prevTitreEtape.incertitudes[incertitudePropId] && !newTitreEtape.incertitudes) {
           hasChanged = true
           newTitreEtape = objectClone(newTitreEtape)
           newTitreEtape.incertitudes = {}
-          newTitreEtape.incertitudes![incertitudePropId] =
-            prevTitreEtape.incertitudes[incertitudePropId]
+          newTitreEtape.incertitudes![incertitudePropId] = prevTitreEtape.incertitudes[incertitudePropId]
         }
       } else {
         // l’étape précédente a été supprimée, il faut donc désactiver l’héritage
diff --git a/packages/api/src/business/utils/titre-etapes-sort.test.ts b/packages/api/src/business/utils/titre-etapes-sort.test.ts
index 9f9878a50..84782e37b 100644
--- a/packages/api/src/business/utils/titre-etapes-sort.test.ts
+++ b/packages/api/src/business/utils/titre-etapes-sort.test.ts
@@ -1,10 +1,6 @@
 import { ITitreEtape } from '../../types.js'
 
-import {
-  titreEtapesSortAscByDate,
-  titreEtapesSortAscByOrdre,
-  titreEtapesSortDescByOrdre
-} from './titre-etapes-sort.js'
+import { titreEtapesSortAscByDate, titreEtapesSortAscByOrdre, titreEtapesSortDescByOrdre } from './titre-etapes-sort.js'
 import { newDemarcheId } from '../../database/models/_format/id-create.js'
 import { vi, describe, test, expect } from 'vitest'
 import { toCaminoDate } from 'camino-common/src/date.js'
@@ -14,12 +10,12 @@ import { ETAPES_TYPES } from 'camino-common/src/static/etapesTypes.js'
 
 const titreEtapesSortedDescResult = [
   { typeId: 'dpu', ordre: 2, date: '1988-03-11' },
-  { typeId: 'dex', ordre: 1, date: '1988-03-06' }
+  { typeId: 'dex', ordre: 1, date: '1988-03-06' },
 ] as ITitreEtape[]
 
 const titreEtapesSortedAsc = [
   { typeId: 'dex', ordre: 1, date: '1988-03-06' },
-  { typeId: 'dpu', ordre: 2, date: '1988-03-11' }
+  { typeId: 'dpu', ordre: 2, date: '1988-03-11' },
 ] as ITitreEtape[]
 
 const titreEtapesSortedDesc = titreEtapesSortedAsc.slice().reverse()
@@ -29,192 +25,137 @@ console.warn = vi.fn()
 
 describe('trie les étapes', () => {
   test('des étapes organisées par ordre décroissant sont triées par ordre croissant', () => {
-    expect(titreEtapesSortAscByOrdre(titreEtapesSortedDesc)).toMatchObject(
-      titreEtapesSortedAsc
-    )
+    expect(titreEtapesSortAscByOrdre(titreEtapesSortedDesc)).toMatchObject(titreEtapesSortedAsc)
   })
 
   test('des étapes organisées par ordre croissant restent triées par ordre croissant', () => {
-    expect(titreEtapesSortAscByOrdre(titreEtapesSortedAsc)).toMatchObject(
-      titreEtapesSortedAsc
-    )
+    expect(titreEtapesSortAscByOrdre(titreEtapesSortedAsc)).toMatchObject(titreEtapesSortedAsc)
   })
 
   test('des étapes organisées par ordre croissant sont triées par ordre décroissant', () => {
-    expect(titreEtapesSortDescByOrdre(titreEtapesSortedAsc)).toMatchObject(
-      titreEtapesSortedDescResult
-    )
+    expect(titreEtapesSortDescByOrdre(titreEtapesSortedAsc)).toMatchObject(titreEtapesSortedDescResult)
   })
 
   test('des étapes organisées par ordre décroissant restent triées par ordre décroissant', () => {
-    expect(titreEtapesSortDescByOrdre(titreEtapesSortedDesc)).toMatchObject(
-      titreEtapesSortedDescResult
-    )
+    expect(titreEtapesSortDescByOrdre(titreEtapesSortedDesc)).toMatchObject(titreEtapesSortedDescResult)
   })
 
   test('des étapes organisées par date décroissante sont triées par date croissante', () => {
-    expect(
-      titreEtapesSortAscByDate(
-        titreEtapesSortedDesc,
-        newDemarcheId(),
-        'oct',
-        'prh'
-      )
-    ).toMatchObject(titreEtapesSortedAsc)
+    expect(titreEtapesSortAscByDate(titreEtapesSortedDesc, newDemarcheId(), 'oct', 'prh')).toMatchObject(titreEtapesSortedAsc)
   })
 
   test('des étapes organisées par date croissante restent triées par date croissante', () => {
-    expect(
-      titreEtapesSortAscByDate(
-        titreEtapesSortedAsc,
-        newDemarcheId(),
-        'oct',
-        'prh'
-      )
-    ).toMatchObject(titreEtapesSortedAsc)
+    expect(titreEtapesSortAscByDate(titreEtapesSortedAsc, newDemarcheId(), 'oct', 'prh')).toMatchObject(titreEtapesSortedAsc)
   })
 
   test('des étapes avec les mêmes dates organisées par ordre décroissant sont triées par ordre croissant', () => {
-    const titreEtapesMemesDatesOrdreDesc: Pick<
-      ITitreEtape,
-      'ordre' | 'typeId' | 'statutId' | 'date' | 'contenu' | 'titreDemarcheId'
-    >[] = [
+    const titreEtapesMemesDatesOrdreDesc: Pick<ITitreEtape, 'ordre' | 'typeId' | 'statutId' | 'date' | 'contenu' | 'titreDemarcheId'>[] = [
       {
         typeId: 'dex',
         ordre: 2,
         date: toCaminoDate('1988-03-06'),
         titreDemarcheId: newDemarcheId(),
-        statutId: 'fai'
+        statutId: 'fai',
       },
       {
         typeId: 'dpu',
         ordre: 1,
         date: toCaminoDate('1988-03-06'),
         titreDemarcheId: newDemarcheId(),
-        statutId: 'fav'
-      }
+        statutId: 'fav',
+      },
     ]
 
-    const titreEtapesMemesDatesOrdreAscResult = titreEtapesMemesDatesOrdreDesc
-      .slice()
-      .reverse()
-
-    expect(
-      titreEtapesSortAscByDate(
-        titreEtapesMemesDatesOrdreDesc,
-        newDemarcheId(),
-        'oct',
-        'arm'
-      )
-    ).toMatchObject(titreEtapesMemesDatesOrdreAscResult)
+    const titreEtapesMemesDatesOrdreAscResult = titreEtapesMemesDatesOrdreDesc.slice().reverse()
+
+    expect(titreEtapesSortAscByDate(titreEtapesMemesDatesOrdreDesc, newDemarcheId(), 'oct', 'arm')).toMatchObject(titreEtapesMemesDatesOrdreAscResult)
   })
 
   test('des étapes avec les mêmes dates sont triées par ordre de type croissant', () => {
     const titreDemarcheId = newDemarcheId('1')
-    const titreEtapesMemesDatesOrdreEtapesTypesDesc: Pick<
-      ITitreEtape,
-      'ordre' | 'typeId' | 'statutId' | 'date' | 'contenu' | 'titreDemarcheId'
-    >[] = [
+    const titreEtapesMemesDatesOrdreEtapesTypesDesc: Pick<ITitreEtape, 'ordre' | 'typeId' | 'statutId' | 'date' | 'contenu' | 'titreDemarcheId'>[] = [
       {
         typeId: ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
         ordre: 2,
         date: toCaminoDate('1988-03-06'),
         titreDemarcheId,
-        statutId: 'fav'
+        statutId: 'fav',
       },
       {
         typeId: ETAPES_TYPES.classementSansSuite,
         ordre: 2,
         date: toCaminoDate('1988-03-06'),
         titreDemarcheId,
-        statutId: 'fav'
+        statutId: 'fav',
       },
       {
         typeId: ETAPES_TYPES.decisionAdministrative,
         ordre: 2,
         date: toCaminoDate('1988-03-06'),
         titreDemarcheId,
-        statutId: 'fav'
-      }
+        statutId: 'fav',
+      },
     ]
-    expect(
-      titreEtapesSortAscByDate(
-        titreEtapesMemesDatesOrdreEtapesTypesDesc,
-        titreDemarcheId,
-        DEMARCHES_TYPES_IDS.Retrait,
-        TITRES_TYPES_IDS.AUTORISATION_D_EXPLOITATION_METAUX
-      )
-    ).toMatchObject([
+    expect(titreEtapesSortAscByDate(titreEtapesMemesDatesOrdreEtapesTypesDesc, titreDemarcheId, DEMARCHES_TYPES_IDS.Retrait, TITRES_TYPES_IDS.AUTORISATION_D_EXPLOITATION_METAUX)).toMatchObject([
       {
         typeId: ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
         ordre: 2,
         date: '1988-03-06',
         statutId: 'fav',
-        titreDemarcheId
+        titreDemarcheId,
       },
       {
         typeId: ETAPES_TYPES.decisionAdministrative,
         ordre: 2,
         date: '1988-03-06',
         statutId: 'fav',
-        titreDemarcheId
+        titreDemarcheId,
       },
       {
         typeId: ETAPES_TYPES.classementSansSuite,
         ordre: 2,
         date: '1988-03-06',
         statutId: 'fav',
-        titreDemarcheId
-      }
+        titreDemarcheId,
+      },
     ])
   })
 
   test('tri selon l’arbre si les étapes ont la même date', () => {
-    const etapes: Pick<
-      ITitreEtape,
-      'ordre' | 'typeId' | 'statutId' | 'date' | 'contenu' | 'titreDemarcheId'
-    >[] = [
+    const etapes: Pick<ITitreEtape, 'ordre' | 'typeId' | 'statutId' | 'date' | 'contenu' | 'titreDemarcheId'>[] = [
       {
         typeId: 'pfd',
         date: toCaminoDate('2020-01-01'),
         statutId: 'fai',
-        titreDemarcheId: newDemarcheId()
+        titreDemarcheId: newDemarcheId(),
       },
       {
         typeId: 'mfr',
         date: toCaminoDate('2020-01-01'),
         statutId: 'fai',
-        titreDemarcheId: newDemarcheId()
+        titreDemarcheId: newDemarcheId(),
       },
       {
         typeId: 'mdp',
         date: toCaminoDate('2020-01-01'),
         statutId: 'fai',
-        titreDemarcheId: newDemarcheId()
-      }
+        titreDemarcheId: newDemarcheId(),
+      },
     ]
 
-    const result = titreEtapesSortAscByDate(
-      etapes,
-      newDemarcheId(),
-      DEMARCHES_TYPES_IDS.Octroi,
-      TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX
-    )
+    const result = titreEtapesSortAscByDate(etapes, newDemarcheId(), DEMARCHES_TYPES_IDS.Octroi, TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX)
     expect(result[0].typeId).toEqual('pfd')
     expect(result[1].typeId).toEqual('mfr')
     expect(result[2].typeId).toEqual('mdp')
   })
 
   test("retourne une erreur si le type d'étape est absent dans la définition", () => {
-    const etapes: Pick<
-      ITitreEtape,
-      'ordre' | 'typeId' | 'statutId' | 'date' | 'contenu' | 'titreDemarcheId'
-    >[] = [
+    const etapes: Pick<ITitreEtape, 'ordre' | 'typeId' | 'statutId' | 'date' | 'contenu' | 'titreDemarcheId'>[] = [
       {
         typeId: 'mcr',
         date: toCaminoDate('2020-01-01'),
         statutId: 'fai',
-        titreDemarcheId: newDemarcheId()
+        titreDemarcheId: newDemarcheId(),
       },
       {
         // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -222,23 +163,18 @@ describe('trie les étapes', () => {
         typeId: 'bof',
         date: toCaminoDate('2020-01-01'),
         statutId: 'fai',
-        titreDemarcheId: newDemarcheId()
+        titreDemarcheId: newDemarcheId(),
       },
       {
         typeId: 'vfd',
         date: toCaminoDate('2020-01-01'),
         statutId: 'fai',
-        titreDemarcheId: newDemarcheId()
-      }
+        titreDemarcheId: newDemarcheId(),
+      },
     ]
 
-    expect(() =>
-      titreEtapesSortAscByDate(
-        etapes,
-        newDemarcheId(),
-        DEMARCHES_TYPES_IDS.Octroi,
-        TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX
-      )
-    ).toThrowErrorMatchingInlineSnapshot(`"l'état bof est inconnu"`)
+    expect(() => titreEtapesSortAscByDate(etapes, newDemarcheId(), DEMARCHES_TYPES_IDS.Octroi, TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX)).toThrowErrorMatchingInlineSnapshot(
+      `"l'état bof est inconnu"`
+    )
   })
 })
diff --git a/packages/api/src/business/utils/titre-etapes-sort.ts b/packages/api/src/business/utils/titre-etapes-sort.ts
index 0027a1806..cc2389b80 100644
--- a/packages/api/src/business/utils/titre-etapes-sort.ts
+++ b/packages/api/src/business/utils/titre-etapes-sort.ts
@@ -1,9 +1,5 @@
 import { DemarcheId, ITitreEtape } from '../../types.js'
-import {
-  demarcheDefinitionFind,
-  IDemarcheDefinitionRestrictions,
-  isDemarcheDefinitionMachine
-} from '../rules-demarches/definitions.js'
+import { demarcheDefinitionFind, IDemarcheDefinitionRestrictions, isDemarcheDefinitionMachine } from '../rules-demarches/definitions.js'
 import { toMachineEtapes } from '../rules-demarches/machine-common.js'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
 import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
@@ -11,61 +7,28 @@ import { getEtapesTDE } from 'camino-common/src/static/titresTypes_demarchesType
 import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
 
 // classe les étapes selon leur ordre inverse: 3, 2, 1.
-export const titreEtapesSortDescByOrdre = <
-  T extends Pick<ITitreEtape, 'ordre'>
->(
-  titreEtapes: T[]
-): T[] => titreEtapes.slice().sort((a, b) => b.ordre! - a.ordre!)
+export const titreEtapesSortDescByOrdre = <T extends Pick<ITitreEtape, 'ordre'>>(titreEtapes: T[]): T[] => titreEtapes.slice().sort((a, b) => b.ordre! - a.ordre!)
 
 // classe les étapes selon leur ordre: 1, 2, 3, …
-export const titreEtapesSortAscByOrdre = <T extends Pick<ITitreEtape, 'ordre'>>(
-  titreEtapes: T[]
-): T[] => titreEtapes.slice().sort((a, b) => a.ordre! - b.ordre!)
+export const titreEtapesSortAscByOrdre = <T extends Pick<ITitreEtape, 'ordre'>>(titreEtapes: T[]): T[] => titreEtapes.slice().sort((a, b) => a.ordre! - b.ordre!)
 
 // classe les étapes selon leur dates, ordre et etapesTypes.ordre le cas échéant
-export const titreEtapesSortAscByDate = <
-  T extends Pick<
-    ITitreEtape,
-    'ordre' | 'typeId' | 'statutId' | 'date' | 'contenu' | 'titreDemarcheId'
-  >
->(
+export const titreEtapesSortAscByDate = <T extends Pick<ITitreEtape, 'ordre' | 'typeId' | 'statutId' | 'date' | 'contenu' | 'titreDemarcheId'>>(
   titreEtapes: T[],
   demarcheId: DemarcheId,
   demarcheTypeId: DemarcheTypeId,
   titreTypeId: TitreTypeId
 ): T[] => {
-  let demarcheDefinitionRestrictions = undefined as
-    | IDemarcheDefinitionRestrictions
-    | undefined
-
-  const demarcheDefinition = demarcheDefinitionFind(
-    titreTypeId,
-    demarcheTypeId,
-    titreEtapes,
-    demarcheId
-  )
+  let demarcheDefinitionRestrictions = undefined as IDemarcheDefinitionRestrictions | undefined
+
+  const demarcheDefinition = demarcheDefinitionFind(titreTypeId, demarcheTypeId, titreEtapes, demarcheId)
   if (isDemarcheDefinitionMachine(demarcheDefinition)) {
-    const etapes = demarcheDefinition.machine.orderMachine(
-      toMachineEtapes(titreEtapes)
-    )
+    const etapes = demarcheDefinition.machine.orderMachine(toMachineEtapes(titreEtapes))
     if (!demarcheDefinition.machine.isEtapesOk(etapes)) {
-      console.error(
-        `impossible de trouver un ordre pour la démarche '${
-          titreEtapes[0]?.titreDemarcheId
-        }' où ces étapes sont valides ${JSON.stringify(etapes)}`
-      )
+      console.error(`impossible de trouver un ordre pour la démarche '${titreEtapes[0]?.titreDemarcheId}' où ces étapes sont valides ${JSON.stringify(etapes)}`)
     }
 
-    return etapes
-      .map(etape =>
-        titreEtapes.find(
-          te =>
-            te.date === etape.date &&
-            te.typeId === etape.etapeTypeId &&
-            te.statutId === etape.etapeStatutId
-        )
-      )
-      .filter(isNotNullNorUndefined)
+    return etapes.map(etape => titreEtapes.find(te => te.date === etape.date && te.typeId === etape.etapeTypeId && te.statutId === etape.etapeStatutId)).filter(isNotNullNorUndefined)
   } else {
     demarcheDefinitionRestrictions = demarcheDefinition?.restrictions
 
@@ -84,9 +47,7 @@ export const titreEtapesSortAscByDate = <
         const bRestriction = demarcheDefinitionRestrictions[b.typeId]
 
         if (!bRestriction) {
-          console.error(
-            `${demarcheId}: impossible de trier l’étape car son type ${b.typeId} n’existe pas dans les définitions`
-          )
+          console.error(`${demarcheId}: impossible de trier l’étape car son type ${b.typeId} n’existe pas dans les définitions`)
 
           return -1
         }
@@ -94,20 +55,14 @@ export const titreEtapesSortAscByDate = <
         const aRestriction = demarcheDefinitionRestrictions[a.typeId]
 
         if (!aRestriction) {
-          console.error(
-            `${demarcheId}: impossible de trier l’étape car son type ${a.typeId} n’existe pas dans les définitions`
-          )
+          console.error(`${demarcheId}: impossible de trier l’étape car son type ${a.typeId} n’existe pas dans les définitions`)
 
           return -1
         }
 
-        const bJusteApresA = bRestriction.justeApres
-          .flat(2)
-          .find(b => b.etapeTypeId === a.typeId)
+        const bJusteApresA = bRestriction.justeApres.flat(2).find(b => b.etapeTypeId === a.typeId)
 
-        const aJusteApresB = aRestriction.justeApres
-          .flat(2)
-          .find(a => a.etapeTypeId === b.typeId)
+        const aJusteApresB = aRestriction.justeApres.flat(2).find(a => a.etapeTypeId === b.typeId)
 
         if (bJusteApresA && !aJusteApresB) {
           return -1
@@ -134,9 +89,7 @@ export const titreEtapesSortAscByDate = <
       const bTypeIndex = etapes.findIndex(e => e === b.typeId)
 
       if (aTypeIndex === -1 || bTypeIndex === -1) {
-        console.warn(
-          `${demarcheId}: les étapes ${a.typeId} ou ${b.typeId} ne devraient pas être possible pour une démarche de type ${demarcheTypeId}`
-        )
+        console.warn(`${demarcheId}: les étapes ${a.typeId} ou ${b.typeId} ne devraient pas être possible pour une démarche de type ${demarcheTypeId}`)
 
         return a.ordre! - b.ordre!
       }
diff --git a/packages/api/src/business/utils/titre-slug-and-relations-update.test.integration.ts b/packages/api/src/business/utils/titre-slug-and-relations-update.test.integration.ts
index 132385943..d579cb0b2 100644
--- a/packages/api/src/business/utils/titre-slug-and-relations-update.test.integration.ts
+++ b/packages/api/src/business/utils/titre-slug-and-relations-update.test.integration.ts
@@ -20,11 +20,11 @@ const titreAdd = async (titre: ITitre) =>
       type: { type: { id: {} } },
       demarches: {
         etapes: {
-          points: { references: { id: {} } }
-        }
+          points: { references: { id: {} } },
+        },
       },
-      activites: { id: {} }
-    }
+      activites: { id: {} },
+    },
   })
 
 describe('vérifie la mis à jour des slugs sur les relations d’un titre', () => {
@@ -35,7 +35,7 @@ describe('vérifie la mis à jour des slugs sur les relations d’un titre', ()
       nom: 'titre-nom',
       typeId: 'arm',
       propsTitreEtapesIds: {},
-      slug: 'toto'
+      slug: 'toto',
     } as ITitre)
 
     const { hasChanged, slug } = await titreSlugAndRelationsUpdate(titre)
@@ -53,7 +53,7 @@ describe('vérifie la mis à jour des slugs sur les relations d’un titre', ()
       nom: 'titre-nom',
       typeId: 'arm',
       propsTitreEtapesIds: {},
-      slug: 'm-ar-titre-nom-0000'
+      slug: 'm-ar-titre-nom-0000',
     } as ITitre)
 
     const { hasChanged, slug } = await titreSlugAndRelationsUpdate(titre)
@@ -70,16 +70,14 @@ describe('vérifie la mis à jour des slugs sur les relations d’un titre', ()
     const titrePojo = {
       nom: 'titre-nom',
       typeId: 'arm',
-      propsTitreEtapesIds: {}
+      propsTitreEtapesIds: {},
     } as ITitre
 
     let titre = await titreAdd(objectClone(titrePojo))
     const { slug: firstSlug } = await titreSlugAndRelationsUpdate(titre)
     titre = await titreAdd(titrePojo)
 
-    const { hasChanged, slug: secondSlug } = await titreSlugAndRelationsUpdate(
-      titre
-    )
+    const { hasChanged, slug: secondSlug } = await titreSlugAndRelationsUpdate(titre)
     expect(hasChanged).toEqual(true)
     expect(secondSlug).not.toEqual(firstSlug)
     expect(secondSlug.startsWith(firstSlug)).toBeTruthy()
@@ -91,16 +89,14 @@ describe('vérifie la mis à jour des slugs sur les relations d’un titre', ()
     const titrePojo = {
       nom: 'titre-nom',
       typeId: 'arm',
-      propsTitreEtapesIds: {}
+      propsTitreEtapesIds: {},
     } as ITitre
 
     let titre = await titreAdd(objectClone(titrePojo))
     const { slug: firstSlug } = await titreSlugAndRelationsUpdate(titre)
     titre = await titreAdd({ ...titrePojo, slug: `${firstSlug}-123123` })
 
-    const { hasChanged, slug: secondSlug } = await titreSlugAndRelationsUpdate(
-      titre
-    )
+    const { hasChanged, slug: secondSlug } = await titreSlugAndRelationsUpdate(titre)
     expect(hasChanged).toEqual(false)
     expect(secondSlug).toEqual(`${firstSlug}-123123`)
   })
@@ -117,9 +113,9 @@ describe('vérifie la mis à jour des slugs sur les relations d’un titre', ()
         {
           typeId: 'oct',
           statutId: 'dep',
-          slug: 'slug'
-        }
-      ]
+          slug: 'slug',
+        },
+      ],
     } as ITitre)
 
     const { slug, hasChanged } = await titreSlugAndRelationsUpdate(titre)
@@ -127,11 +123,7 @@ describe('vérifie la mis à jour des slugs sur les relations d’un titre', ()
     expect(hasChanged).toEqual(true)
     expect(slug).toEqual(titre.slug)
 
-    const titreDb = await titreGet(
-      titre.id,
-      { fields: { demarches: { id: {} } } },
-      userSuper
-    )
+    const titreDb = await titreGet(titre.id, { fields: { demarches: { id: {} } } }, userSuper)
     expect(titreDb!.slug).toEqual(slug)
     expect(titreDb!.demarches![0].slug).toEqual('m-ar-titre-nom-0000-oct01')
   })
diff --git a/packages/api/src/business/utils/titre-slug-and-relations-update.ts b/packages/api/src/business/utils/titre-slug-and-relations-update.ts
index 7982e73c8..81293ebfa 100644
--- a/packages/api/src/business/utils/titre-slug-and-relations-update.ts
+++ b/packages/api/src/business/utils/titre-slug-and-relations-update.ts
@@ -1,14 +1,6 @@
 import slugify from '@sindresorhus/slugify'
 
-import {
-  DemarcheId,
-  ITitre,
-  ITitreActivite,
-  ITitreDemarche,
-  ITitreEtape,
-  ITitrePoint,
-  ITitrePointReference
-} from '../../types.js'
+import { DemarcheId, ITitre, ITitreActivite, ITitreDemarche, ITitreEtape, ITitrePoint, ITitrePointReference } from '../../types.js'
 
 import titreDemarcheSortAsc from './titre-elements-sort-asc.js'
 import { titreEtapesSortAscByOrdre } from './titre-etapes-sort.js'
@@ -18,96 +10,43 @@ import { userSuper } from '../../database/user-super.js'
 import cryptoRandomString from 'crypto-random-string'
 import { titreDemarcheUpdate } from '../../database/queries/titres-demarches.js'
 import { titreEtapeUpdate } from '../../database/queries/titres-etapes.js'
-import {
-  titrePointReferenceUpdate,
-  titrePointUpdate
-} from '../../database/queries/titres-points.js'
+import { titrePointReferenceUpdate, titrePointUpdate } from '../../database/queries/titres-points.js'
 import { titreActiviteUpdate } from '../../database/queries/titres-activites.js'
 import { UserNotNull } from 'camino-common/src/roles'
-import {
-  getDomaineId,
-  getTitreTypeType
-} from 'camino-common/src/static/titresTypes.js'
+import { getDomaineId, getTitreTypeType } from 'camino-common/src/static/titresTypes.js'
 
 const titreSlugFind = (titre: ITitre) => {
   const { typeId, nom } = titre
-  const demarcheOctroiDateDebut = titreDemarcheOctroiDateDebutFind(
-    titre.demarches
-  )
-
-  return slugify(
-    `${getDomaineId(typeId)}-${getTitreTypeType(
-      typeId
-    )}-${nom}-${demarcheOctroiDateDebut.slice(0, 4)}`
-  )
+  const demarcheOctroiDateDebut = titreDemarcheOctroiDateDebutFind(titre.demarches)
+
+  return slugify(`${getDomaineId(typeId)}-${getTitreTypeType(typeId)}-${nom}-${demarcheOctroiDateDebut.slice(0, 4)}`)
 }
 
-const titreDemarcheSlugFind = (
-  titreDemarche: ITitreDemarche,
-  titre: ITitre
-) => {
-  const titreDemarcheTypeOrder =
-    titreDemarcheSortAsc(
-      titre.demarches!.filter(d => d.typeId === titreDemarche.typeId)
-    ).findIndex(d => d === titreDemarche) + 1
-
-  return `${titre.slug}-${titreDemarche.typeId}${titreDemarcheTypeOrder
-    .toString()
-    .padStart(2, '0')}`
+const titreDemarcheSlugFind = (titreDemarche: ITitreDemarche, titre: ITitre) => {
+  const titreDemarcheTypeOrder = titreDemarcheSortAsc(titre.demarches!.filter(d => d.typeId === titreDemarche.typeId)).findIndex(d => d === titreDemarche) + 1
+
+  return `${titre.slug}-${titreDemarche.typeId}${titreDemarcheTypeOrder.toString().padStart(2, '0')}`
 }
 
-const titreDemarcheEtapeSlugFind = (
-  titreEtape: ITitreEtape,
-  titreDemarche: ITitreDemarche
-) => titreEtapeSlugFind(titreEtape, titreDemarche, titreDemarche.etapes!)
-
-const titreEtapeSlugFind = (
-  titreEtape: ITitreEtape,
-  titreDemarche: ITitreDemarche,
-  etapes: ITitreEtape[]
-) => {
-  const titreEtapeTypeOrder =
-    titreEtapesSortAscByOrdre(
-      etapes.filter(e => e.typeId === titreEtape.typeId)
-    ).findIndex(e => e === titreEtape) + 1
-
-  return `${titreDemarche.slug}-${titreEtape.typeId}${titreEtapeTypeOrder
-    .toString()
-    .padStart(2, '0')}`
+const titreDemarcheEtapeSlugFind = (titreEtape: ITitreEtape, titreDemarche: ITitreDemarche) => titreEtapeSlugFind(titreEtape, titreDemarche, titreDemarche.etapes!)
+
+const titreEtapeSlugFind = (titreEtape: ITitreEtape, titreDemarche: ITitreDemarche, etapes: ITitreEtape[]) => {
+  const titreEtapeTypeOrder = titreEtapesSortAscByOrdre(etapes.filter(e => e.typeId === titreEtape.typeId)).findIndex(e => e === titreEtape) + 1
+
+  return `${titreDemarche.slug}-${titreEtape.typeId}${titreEtapeTypeOrder.toString().padStart(2, '0')}`
 }
 
 const titrePointSlugFind = (titrePoint: ITitrePoint, titreEtape: ITitreEtape) =>
-  `${titreEtape.slug}-g${titrePoint.groupe
-    .toString()
-    .padStart(2, '0')}-c${titrePoint.contour
-    .toString()
-    .padStart(2, '0')}-p${titrePoint.point.toString().padStart(3, '0')}`
-
-const titrePointReferenceSlugFind = (
-  titrePointReference: ITitrePointReference,
-  titrePoint: ITitrePoint
-) => `${titrePoint.slug}-${titrePointReference.geoSystemeId}`
-
-const titreActiviteSlugFind = (titreActivite: ITitreActivite, titre: ITitre) =>
-  `${titre.slug}-${titreActivite.typeId}-${
-    titreActivite.annee
-  }-${titreActivite.periodeId.toString().padStart(2, '0')}`
+  `${titreEtape.slug}-g${titrePoint.groupe.toString().padStart(2, '0')}-c${titrePoint.contour.toString().padStart(2, '0')}-p${titrePoint.point.toString().padStart(3, '0')}`
+
+const titrePointReferenceSlugFind = (titrePointReference: ITitrePointReference, titrePoint: ITitrePoint) => `${titrePoint.slug}-${titrePointReference.geoSystemeId}`
+
+const titreActiviteSlugFind = (titreActivite: ITitreActivite, titre: ITitre) => `${titre.slug}-${titreActivite.typeId}-${titreActivite.annee}-${titreActivite.periodeId.toString().padStart(2, '0')}`
 
 interface ITitreRelation<T extends string | DemarcheId = string> {
   name: string
   slugFind: (...args: any[]) => string
-  update:
-    | ((
-        id: T,
-        element: { slug: string },
-        user: UserNotNull
-      ) => Promise<{ id: T }>)
-    | ((
-        id: T,
-        element: { slug: string },
-        user: UserNotNull,
-        titreId: string
-      ) => Promise<{ id: T }>)
+  update: ((id: T, element: { slug: string }, user: UserNotNull) => Promise<{ id: T }>) | ((id: T, element: { slug: string }, user: UserNotNull, titreId: string) => Promise<{ id: T }>)
   relations?: ITitreRelation[]
 }
 
@@ -130,26 +69,22 @@ const titreRelations: (ITitreRelation<DemarcheId> | ITitreRelation)[] = [
               {
                 name: 'references',
                 update: titrePointReferenceUpdate,
-                slugFind: titrePointReferenceSlugFind
-              }
-            ]
-          }
-        ]
-      }
-    ]
+                slugFind: titrePointReferenceSlugFind,
+              },
+            ],
+          },
+        ],
+      },
+    ],
   },
   {
     name: 'activites',
     update: titreActiviteUpdate,
-    slugFind: titreActiviteSlugFind
-  }
+    slugFind: titreActiviteSlugFind,
+  },
 ]
 
-const relationsSlugsUpdate = async (
-  parent: any,
-  relations: (ITitreRelation<DemarcheId> | ITitreRelation)[],
-  titreId: string
-): Promise<boolean> => {
+const relationsSlugsUpdate = async (parent: any, relations: (ITitreRelation<DemarcheId> | ITitreRelation)[], titreId: string): Promise<boolean> => {
   let hasChanged = false
   for (const relation of relations) {
     for (const element of parent[relation.name]) {
@@ -159,12 +94,7 @@ const relationsSlugsUpdate = async (
         hasChanged = true
       }
       if (relation.relations) {
-        hasChanged =
-          (await relationsSlugsUpdate(
-            { ...element, slug },
-            relation.relations,
-            titreId
-          )) || hasChanged
+        hasChanged = (await relationsSlugsUpdate({ ...element, slug }, relation.relations, titreId)) || hasChanged
       }
     }
   }
@@ -172,24 +102,14 @@ const relationsSlugsUpdate = async (
   return hasChanged
 }
 
-export const titreSlugAndRelationsUpdate = async (
-  titre: ITitre
-): Promise<{ hasChanged: boolean; slug: string }> => {
+export const titreSlugAndRelationsUpdate = async (titre: ITitre): Promise<{ hasChanged: boolean; slug: string }> => {
   let slug = titreSlugFind(titre)
   let doublonTitreId: string | null = null
   let hasChanged = false
 
-  const titreWithTheSameSlug = await titresGet(
-    { slugs: [slug] },
-    { fields: { id: {} } },
-    userSuper
-  )
-
-  if (
-    titreWithTheSameSlug?.length > 1 ||
-    (titreWithTheSameSlug?.length === 1 &&
-      titreWithTheSameSlug[0].id !== titre.id)
-  ) {
+  const titreWithTheSameSlug = await titresGet({ slugs: [slug] }, { fields: { id: {} } }, userSuper)
+
+  if (titreWithTheSameSlug?.length > 1 || (titreWithTheSameSlug?.length === 1 && titreWithTheSameSlug[0].id !== titre.id)) {
     if (!titre.slug?.startsWith(slug)) {
       slug += `-${cryptoRandomString({ length: 8 })}`
       doublonTitreId = titreWithTheSameSlug[0].id
@@ -203,12 +123,7 @@ export const titreSlugAndRelationsUpdate = async (
     hasChanged = true
   }
 
-  hasChanged =
-    (await relationsSlugsUpdate(
-      { ...titre, slug },
-      titreRelations,
-      titre.id
-    )) || hasChanged
+  hasChanged = (await relationsSlugsUpdate({ ...titre, slug }, titreRelations, titre.id)) || hasChanged
 
   return { hasChanged, slug }
 }
diff --git a/packages/api/src/business/utils/titre-valide-check.test.ts b/packages/api/src/business/utils/titre-valide-check.test.ts
index f7c120dfe..f0ece9fa1 100644
--- a/packages/api/src/business/utils/titre-valide-check.test.ts
+++ b/packages/api/src/business/utils/titre-valide-check.test.ts
@@ -9,81 +9,58 @@ import { vi, describe, test, expect } from 'vitest'
 
 vi.mock('../rules/titre-statut-id-find', () => ({
   __esModule: true,
-  titreStatutIdFind: vi.fn()
+  titreStatutIdFind: vi.fn(),
 }))
 
 vi.mock('./titre-demarches-etapes-rebuild', () => ({
   __esModule: true,
-  titreDemarchesEtapesRebuild: vi.fn()
+  titreDemarchesEtapesRebuild: vi.fn(),
 }))
 
 const titreStatutIdFindMock = vi.mocked(titreStatutIdFind, true)
 
-const titreDemarchesEtapesRebuildMock = vi.mocked(
-  titreDemarchesEtapesRebuild,
-  true
-)
+const titreDemarchesEtapesRebuildMock = vi.mocked(titreDemarchesEtapesRebuild, true)
 
 describe("vérifie la validité d'un titre pendant une période en fonction des phases des démarches", () => {
   test('retourne vrai si le titre est valide pour la période qui commence avant la date de début et termine après la date de fin', () => {
-    expect(
-      titreValideCheck(titreDemarches, '2005-01-01', '2025-01-01', 'pxm')
-    ).toEqual(true)
+    expect(titreValideCheck(titreDemarches, '2005-01-01', '2025-01-01', 'pxm')).toEqual(true)
   })
 
   test('retourne vrai si le titre est valide pour la période qui commence avant la date de début et termine avant la date de fin', () => {
-    expect(
-      titreValideCheck(titreDemarches, '2005-01-01', '2015-01-01', 'pxm')
-    ).toEqual(true)
+    expect(titreValideCheck(titreDemarches, '2005-01-01', '2015-01-01', 'pxm')).toEqual(true)
   })
 
   test("retourne faux si le titre n'est pas valide pour la période qui commence avant la date de début et termine avant la date de début", () => {
-    expect(
-      titreValideCheck(titreDemarches, '2000-01-01', '2005-01-01', 'pxm')
-    ).toEqual(false)
+    expect(titreValideCheck(titreDemarches, '2000-01-01', '2005-01-01', 'pxm')).toEqual(false)
   })
 
   test('retourne vrai si le titre est valide pour la période qui commence avant la date de fin et termine avant la date de fin', () => {
-    expect(
-      titreValideCheck(titreDemarches, '2015-01-01', '2016-01-01', 'pxm')
-    ).toEqual(true)
+    expect(titreValideCheck(titreDemarches, '2015-01-01', '2016-01-01', 'pxm')).toEqual(true)
   })
 
   test('retourne vrai si le titre est valide pour la période qui commence avant la date de fin et termine après la date de fin', () => {
-    expect(
-      titreValideCheck(titreDemarches, '2015-10-01', '2025-01-01', 'pxm')
-    ).toEqual(true)
+    expect(titreValideCheck(titreDemarches, '2015-10-01', '2025-01-01', 'pxm')).toEqual(true)
   })
 
   test("retourne faux si le titre n'est pas valide pour la période qui commence après la date de fin", () => {
-    expect(
-      titreValideCheck(titreDemarches, '2025-01-01', '2030-01-01', 'pxm')
-    ).toEqual(false)
+    expect(titreValideCheck(titreDemarches, '2025-01-01', '2030-01-01', 'pxm')).toEqual(false)
   })
 
   test('retourne vrai si le titre est en modification en instance au moment de la date de début', () => {
     titreDemarchesEtapesRebuildMock.mockReturnValue([] as ITitreDemarche[])
     titreStatutIdFindMock.mockReturnValue('mod')
-    expect(
-      titreValideCheck(titreDemarches, '2020-01-01', '2020-12-31', 'pxm')
-    ).toEqual(true)
+    expect(titreValideCheck(titreDemarches, '2020-01-01', '2020-12-31', 'pxm')).toEqual(true)
   })
 
   test("retourne faux si le titre n'est pas en modification en instance au moment de la date de début", () => {
     titreDemarchesEtapesRebuildMock.mockReturnValue([] as ITitreDemarche[])
     titreStatutIdFindMock.mockReturnValue('ech')
-    expect(
-      titreValideCheck(titreDemarches, '2020-01-01', '2020-12-31', 'pxm')
-    ).toEqual(false)
+    expect(titreValideCheck(titreDemarches, '2020-01-01', '2020-12-31', 'pxm')).toEqual(false)
   })
 
   test('retourne vrai si le titre est échu et a une démarche déposée', () => {
-    titreDemarchesEtapesRebuildMock.mockReturnValue(
-      titreDemarches as ITitreDemarche[]
-    )
+    titreDemarchesEtapesRebuildMock.mockReturnValue(titreDemarches as ITitreDemarche[])
     titreStatutIdFindMock.mockReturnValue('ech')
-    expect(
-      titreValideCheck(titreDemarches, '2020-01-01', '2020-12-31', 'pxm', true)
-    ).toEqual(true)
+    expect(titreValideCheck(titreDemarches, '2020-01-01', '2020-12-31', 'pxm', true)).toEqual(true)
   })
 })
diff --git a/packages/api/src/business/utils/titre-valide-check.ts b/packages/api/src/business/utils/titre-valide-check.ts
index 7b8590b3a..be2741790 100644
--- a/packages/api/src/business/utils/titre-valide-check.ts
+++ b/packages/api/src/business/utils/titre-valide-check.ts
@@ -12,29 +12,13 @@ import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
  * @param titreTypeId - id du type de titre
  * @param hasDemarcheDeposee - si un titre échu avec une démarche déposée doit être pris en compte
  */
-export const titreValideCheck = (
-  titreDemarches: ITitreDemarche[],
-  dateDebut: string,
-  dateFin: string,
-  titreTypeId: TitreTypeId,
-  hasDemarcheDeposee = false
-) => {
+export const titreValideCheck = (titreDemarches: ITitreDemarche[], dateDebut: string, dateFin: string, titreTypeId: TitreTypeId, hasDemarcheDeposee = false) => {
   const demarches = titreDemarches.filter(d => !d.type!.travaux)
 
   // si le titre a une phase entre dateDebut et dateFin
-  if (
-    demarches.some(
-      ({ phase }) =>
-        phase && dateDebut <= phase.dateFin && dateFin >= phase.dateDebut
-    )
-  )
-    return true
+  if (demarches.some(({ phase }) => phase && dateDebut <= phase.dateFin && dateFin >= phase.dateDebut)) return true
 
-  const newTitreDemarches = titreDemarchesEtapesRebuild(
-    dateDebut,
-    demarches,
-    titreTypeId
-  )
+  const newTitreDemarches = titreDemarchesEtapesRebuild(dateDebut, demarches, titreTypeId)
 
   // si le titre a le statut "modification en instance" au moment de dateDebut
   const titreStatutId = titreStatutIdFind(dateDebut, newTitreDemarches)
@@ -46,12 +30,7 @@ export const titreValideCheck = (
   // - le titre a le statut échu
   // - le titre a plusieurs démarches
   // - la dernière démarche a le statut déposée
-  if (
-    hasDemarcheDeposee &&
-    titreStatutId === 'ech' &&
-    newTitreDemarches.length > 1 &&
-    newTitreDemarches[0].statutId === 'dep'
-  ) {
+  if (hasDemarcheDeposee && titreStatutId === 'ech' && newTitreDemarches.length > 1 && newTitreDemarches[0].statutId === 'dep') {
     return true
   }
 
diff --git a/packages/api/src/business/utils/urls-get.test.ts b/packages/api/src/business/utils/urls-get.test.ts
index 3e2604de3..c1b55bcce 100644
--- a/packages/api/src/business/utils/urls-get.test.ts
+++ b/packages/api/src/business/utils/urls-get.test.ts
@@ -3,31 +3,11 @@ import { describe, test, expect } from 'vitest'
 import { CaminoAnnee, toCaminoAnnee } from 'camino-common/src/date.js'
 
 describe('activitesUrlGet', () => {
-  test.each<
-    [
-      (
-        | { typesIds?: string[]; statutsIds?: string[]; annees?: CaminoAnnee[] }
-        | undefined
-      ),
-      string
-    ]
-  >([
-    [
-      undefined,
-      'https://camino.beta.gouv.fr/activites?page=1&intervalle=200&ordre=asc'
-    ],
-    [
-      { typesIds: ['toto'] },
-      'https://camino.beta.gouv.fr/activites?page=1&intervalle=200&ordre=asc&typesIds=toto'
-    ],
-    [
-      { typesIds: ['toto', 'tata'] },
-      'https://camino.beta.gouv.fr/activites?page=1&intervalle=200&ordre=asc&typesIds=toto%2Ctata'
-    ],
-    [
-      { typesIds: ['toto'], annees: [toCaminoAnnee(2010)] },
-      'https://camino.beta.gouv.fr/activites?page=1&intervalle=200&ordre=asc&typesIds=toto&annees=2010'
-    ]
+  test.each<[{ typesIds?: string[]; statutsIds?: string[]; annees?: CaminoAnnee[] } | undefined, string]>([
+    [undefined, 'https://camino.beta.gouv.fr/activites?page=1&intervalle=200&ordre=asc'],
+    [{ typesIds: ['toto'] }, 'https://camino.beta.gouv.fr/activites?page=1&intervalle=200&ordre=asc&typesIds=toto'],
+    [{ typesIds: ['toto', 'tata'] }, 'https://camino.beta.gouv.fr/activites?page=1&intervalle=200&ordre=asc&typesIds=toto%2Ctata'],
+    [{ typesIds: ['toto'], annees: [toCaminoAnnee(2010)] }, 'https://camino.beta.gouv.fr/activites?page=1&intervalle=200&ordre=asc&typesIds=toto&annees=2010'],
   ])('test la construction de l url des activités', (params, url) => {
     expect(activitesUrlGet(params)).toEqual(url)
   })
diff --git a/packages/api/src/business/utils/urls-get.ts b/packages/api/src/business/utils/urls-get.ts
index 4bf141638..de19b5071 100644
--- a/packages/api/src/business/utils/urls-get.ts
+++ b/packages/api/src/business/utils/urls-get.ts
@@ -1,28 +1,18 @@
 import { CaminoAnnee } from 'camino-common/src/date.js'
 
-export const titreUrlGet = (titreId: string) =>
-  `${process.env.OAUTH_URL}/titres/${titreId}`
+export const titreUrlGet = (titreId: string) => `${process.env.OAUTH_URL}/titres/${titreId}`
 
-export const activiteUrlGet = (activiteId: string) =>
-  `${process.env.OAUTH_URL}/activites/${activiteId}`
+export const activiteUrlGet = (activiteId: string) => `${process.env.OAUTH_URL}/activites/${activiteId}`
 
-export const activitesUrlGet = (params?: {
-  typesIds?: string[]
-  statutsIds?: string[]
-  annees?: CaminoAnnee[]
-}): string => {
-  const url = new URL(
-    `${process.env.OAUTH_URL ?? 'https://camino.beta.gouv.fr'}/activites`
-  )
+export const activitesUrlGet = (params?: { typesIds?: string[]; statutsIds?: string[]; annees?: CaminoAnnee[] }): string => {
+  const url = new URL(`${process.env.OAUTH_URL ?? 'https://camino.beta.gouv.fr'}/activites`)
 
   url.searchParams.append('page', '1')
   url.searchParams.append('intervalle', '200')
   url.searchParams.append('ordre', 'asc')
 
   if (params && Object.keys(params).length) {
-    Object.entries(params).forEach(([key, values]) =>
-      url.searchParams.append(key, values.join(','))
-    )
+    Object.entries(params).forEach(([key, values]) => url.searchParams.append(key, values.join(',')))
   }
 
   return url.href
diff --git a/packages/api/src/business/validations/__mocks__/contenu-dates-check-contenus.ts b/packages/api/src/business/validations/__mocks__/contenu-dates-check-contenus.ts
index a68a8c659..a9c3a26ed 100644
--- a/packages/api/src/business/validations/__mocks__/contenu-dates-check-contenus.ts
+++ b/packages/api/src/business/validations/__mocks__/contenu-dates-check-contenus.ts
@@ -5,26 +5,19 @@ const sections = [
     id: 'section',
     elements: [
       { id: 'date', type: 'date' },
-      { id: 'mot', type: 'string' }
-    ]
-  }
+      { id: 'mot', type: 'string' },
+    ],
+  },
 ] as ISection[]
 
-const sectionsSansElement = [
-  { id: 'section-sans-elements', elements: null }
-] as ISection[]
+const sectionsSansElement = [{ id: 'section-sans-elements', elements: null }] as ISection[]
 
 const contenuDatesValides = {
-  section: { date: '2000-01-01', mot: 'coucou' }
+  section: { date: '2000-01-01', mot: 'coucou' },
 } as IContenu
 
 const contenuDatesInvalides = {
-  section: { date: '2000-42-42', mot: 'coucou' }
+  section: { date: '2000-42-42', mot: 'coucou' },
 } as IContenu
 
-export {
-  sections,
-  sectionsSansElement,
-  contenuDatesValides,
-  contenuDatesInvalides
-}
+export { sections, sectionsSansElement, contenuDatesValides, contenuDatesInvalides }
diff --git a/packages/api/src/business/validations/__mocks__/contenu-numbers-check-contenus.ts b/packages/api/src/business/validations/__mocks__/contenu-numbers-check-contenus.ts
index c7590bd24..78615a0a3 100644
--- a/packages/api/src/business/validations/__mocks__/contenu-numbers-check-contenus.ts
+++ b/packages/api/src/business/validations/__mocks__/contenu-numbers-check-contenus.ts
@@ -1,19 +1,15 @@
 import { ISection } from '../../../types.js'
 
-const sections = [
-  { id: 'section', elements: [{ id: 'number', type: 'number' }] }
-] as ISection[]
+const sections = [{ id: 'section', elements: [{ id: 'number', type: 'number' }] }] as ISection[]
 
-const sectionsSansElement = [
-  { id: 'section-sans-elements', elements: null }
-] as ISection[]
+const sectionsSansElement = [{ id: 'section-sans-elements', elements: null }] as ISection[]
 
 const contenuNumber = { section: { number: 123 } }
 
 const contenuNumberNeg = {
   section: {
-    number: -1
-  }
+    number: -1,
+  },
 }
 
 export { sections, sectionsSansElement, contenuNumber, contenuNumberNeg }
diff --git a/packages/api/src/business/validations/__mocks__/titre-etape-numbers-validate.ts b/packages/api/src/business/validations/__mocks__/titre-etape-numbers-validate.ts
index 956fc9c58..5004dc95a 100644
--- a/packages/api/src/business/validations/__mocks__/titre-etape-numbers-validate.ts
+++ b/packages/api/src/business/validations/__mocks__/titre-etape-numbers-validate.ts
@@ -5,31 +5,23 @@ const titreEtapesSections = [
     id: 'section',
     elements: [
       { id: 'nombre', type: 'number' },
-      { id: 'mot', type: 'string' }
-    ]
-  }
+      { id: 'mot', type: 'string' },
+    ],
+  },
 ] as ISection[]
 
-const titreEtapesSectionsSansElement = [
-  { id: 'section-sans-elements', elements: null }
-] as ISection[]
+const titreEtapesSectionsSansElement = [{ id: 'section-sans-elements', elements: null }] as ISection[]
 
 const titreEtapeSansContenu = { duree: 1, contenu: null } as ITitreEtape
 
 const titreEtapeNombresValides = {
   duree: 1,
-  contenu: { section: { nombre: 1 } }
+  contenu: { section: { nombre: 1 } },
 } as unknown as ITitreEtape
 
 const titreEtapeNombresNegatifs = {
   duree: -1,
-  contenu: { section: { nombre: -1 } }
+  contenu: { section: { nombre: -1 } },
 } as unknown as ITitreEtape
 
-export {
-  titreEtapesSections,
-  titreEtapesSectionsSansElement,
-  titreEtapeSansContenu,
-  titreEtapeNombresValides,
-  titreEtapeNombresNegatifs
-}
+export { titreEtapesSections, titreEtapesSectionsSansElement, titreEtapeSansContenu, titreEtapeNombresValides, titreEtapeNombresNegatifs }
diff --git a/packages/api/src/business/validations/__mocks__/titre-etape-points-validate.ts b/packages/api/src/business/validations/__mocks__/titre-etape-points-validate.ts
index 068af80e7..c557a8564 100644
--- a/packages/api/src/business/validations/__mocks__/titre-etape-points-validate.ts
+++ b/packages/api/src/business/validations/__mocks__/titre-etape-points-validate.ts
@@ -5,8 +5,8 @@ const titreEtapePointsValides = [
     point: 'point',
     contour: 'contour',
     groupe: 'group',
-    references: [{ coordonnees: { x: 1, y: 2 } }]
-  }
+    references: [{ coordonnees: { x: 1, y: 2 } }],
+  },
 ] as unknown as ITitrePoint[]
 
 const titreEtapePointsReferenceManquante = [
@@ -14,8 +14,8 @@ const titreEtapePointsReferenceManquante = [
     point: 'point-ref-manquante',
     contour: 'contour-ref-manquante',
     groupe: 'group-ref-manquante',
-    references: [{}]
-  }
+    references: [{}],
+  },
 ] as unknown as ITitrePoint[]
 
 export { titreEtapePointsValides, titreEtapePointsReferenceManquante }
diff --git a/packages/api/src/business/validations/documents-types-validate.test.ts b/packages/api/src/business/validations/documents-types-validate.test.ts
index 2592027dc..7ff0e3cfa 100644
--- a/packages/api/src/business/validations/documents-types-validate.test.ts
+++ b/packages/api/src/business/validations/documents-types-validate.test.ts
@@ -15,16 +15,12 @@ describe('teste documentsTypesValidate', () => {
   })
 
   test('tous les documents sont optionnels', () => {
-    const errors = documentsTypesValidate([], [
-      { id: 'arr', optionnel: true }
-    ] as DocumentType[])
+    const errors = documentsTypesValidate([], [{ id: 'arr', optionnel: true }] as DocumentType[])
     expect(errors).toHaveLength(0)
   })
 
   test('il manque un document obligatoire', () => {
-    const errors = documentsTypesValidate(null, [
-      { id: 'arr', optionnel: false }
-    ] as DocumentType[])
+    const errors = documentsTypesValidate(null, [{ id: 'arr', optionnel: false }] as DocumentType[])
     expect(errors).toHaveLength(1)
   })
 
@@ -34,8 +30,8 @@ describe('teste documentsTypesValidate', () => {
         {
           typeId: 'arr',
           fichier: true,
-          fichierTypeId: 'pdf'
-        }
+          fichierTypeId: 'pdf',
+        },
       ] as IDocument[],
       [{ id: 'arr', optionnel: false }] as DocumentType[]
     )
@@ -48,8 +44,8 @@ describe('teste documentsTypesValidate', () => {
         {
           typeId: 'arr',
           fichierTypeId: 'pdf',
-          date: '2002-10-10'
-        }
+          date: '2002-10-10',
+        },
       ] as IDocument[],
       [{ id: 'arr', optionnel: false }] as DocumentType[]
     )
@@ -63,8 +59,8 @@ describe('teste documentsTypesValidate', () => {
           typeId: 'arr',
           fichier: true,
           fichierTypeId: 'pdf',
-          date: '2002-10-10'
-        }
+          date: '2002-10-10',
+        },
       ] as IDocument[],
       [{ id: 'arr', optionnel: false }] as DocumentType[]
     )
diff --git a/packages/api/src/business/validations/documents-types-validate.ts b/packages/api/src/business/validations/documents-types-validate.ts
index e1baab01f..2840f48af 100644
--- a/packages/api/src/business/validations/documents-types-validate.ts
+++ b/packages/api/src/business/validations/documents-types-validate.ts
@@ -1,24 +1,14 @@
 import { IDocument } from '../../types.js'
 import { DocumentType } from 'camino-common/src/static/documentsTypes.js'
 
-export const documentsTypesValidate = (
-  documents?: IDocument[] | null,
-  documentsTypes?: DocumentType[]
-) => {
+export const documentsTypesValidate = (documents?: IDocument[] | null, documentsTypes?: DocumentType[]) => {
   const errors = [] as string[]
 
   if (documentsTypes) {
     documentsTypes
       .filter(dt => !dt.optionnel)
       .forEach(dt => {
-        if (
-          !documents?.find(
-            d =>
-              d.typeId === dt.id &&
-              !!(d.fichier || d.fichierNouveau || d.uri || d.url) &&
-              d.date
-          )
-        ) {
+        if (!documents?.find(d => d.typeId === dt.id && !!(d.fichier || d.fichierNouveau || d.uri || d.url) && d.date)) {
           errors.push(`le document "${dt.id}" est obligatoire`)
         }
       })
diff --git a/packages/api/src/business/validations/titre-activite-complete-check.ts b/packages/api/src/business/validations/titre-activite-complete-check.ts
index 423ea0fb0..059b7fbd3 100644
--- a/packages/api/src/business/validations/titre-activite-complete-check.ts
+++ b/packages/api/src/business/validations/titre-activite-complete-check.ts
@@ -3,22 +3,12 @@ import { IContenu, IDocument, ISection } from '../../types.js'
 import { documentsTypesValidate } from './documents-types-validate.js'
 import { DocumentType } from 'camino-common/src/static/documentsTypes.js'
 
-export const titreActiviteCompleteCheck = (
-  sections: ISection[],
-  contenu?: IContenu | null,
-  documents?: IDocument[] | null,
-  documentsTypes?: DocumentType[]
-) => {
+export const titreActiviteCompleteCheck = (sections: ISection[], contenu?: IContenu | null, documents?: IDocument[] | null, documentsTypes?: DocumentType[]) => {
   const activiteComplete = sections.every(s =>
     s.elements?.every(
       e =>
         e.optionnel ||
-        (contenu &&
-          (e.type === 'checkboxes'
-            ? (contenu[s.id][e.id] as string[]).length
-            : contenu[s.id][e.id] !== undefined &&
-              contenu[s.id][e.id] !== null &&
-              contenu[s.id][e.id] !== ''))
+        (contenu && (e.type === 'checkboxes' ? (contenu[s.id][e.id] as string[]).length : contenu[s.id][e.id] !== undefined && contenu[s.id][e.id] !== null && contenu[s.id][e.id] !== ''))
     )
   )
 
diff --git a/packages/api/src/business/validations/titre-activite-deletion-validate.ts b/packages/api/src/business/validations/titre-activite-deletion-validate.ts
index 435ffab5e..050ad013d 100644
--- a/packages/api/src/business/validations/titre-activite-deletion-validate.ts
+++ b/packages/api/src/business/validations/titre-activite-deletion-validate.ts
@@ -1,8 +1,6 @@
 import { ITitreActivite } from '../../types.js'
 
-export const titreActiviteDeletionValidate = (
-  titreActivite: ITitreActivite
-) => {
+export const titreActiviteDeletionValidate = (titreActivite: ITitreActivite) => {
   const errors = [] as string[]
 
   if (!titreActivite.suppression) {
diff --git a/packages/api/src/business/validations/titre-activite-input-validate.ts b/packages/api/src/business/validations/titre-activite-input-validate.ts
index dd80fec14..ba6c15f36 100644
--- a/packages/api/src/business/validations/titre-activite-input-validate.ts
+++ b/packages/api/src/business/validations/titre-activite-input-validate.ts
@@ -6,10 +6,7 @@ import { contenuDatesCheck } from './utils/contenu-dates-check.js'
 
 const datePropsNames = ['date'] as [keyof ITitreActivite]
 
-export const titreActiviteInputValidate = (
-  titreActivite: ITitreActivite,
-  activiteSections: ISection[]
-) => {
+export const titreActiviteInputValidate = (titreActivite: ITitreActivite, activiteSections: ISection[]) => {
   const errors = []
 
   // 1. le format des dates est correct
@@ -19,10 +16,7 @@ export const titreActiviteInputValidate = (
   }
 
   if (titreActivite.contenu && activiteSections) {
-    const errorsSections = contenuDatesCheck(
-      activiteSections,
-      titreActivite.contenu
-    )
+    const errorsSections = contenuDatesCheck(activiteSections, titreActivite.contenu)
     if (errorsSections) {
       errors.push(errorsSections)
     }
@@ -30,10 +24,7 @@ export const titreActiviteInputValidate = (
 
   // 3. les champs number n'ont pas de durée négative
   if (titreActivite.contenu && activiteSections) {
-    const errorsContenu = contenuNumbersCheck(
-      activiteSections,
-      titreActivite.contenu
-    )
+    const errorsContenu = contenuNumbersCheck(activiteSections, titreActivite.contenu)
     if (errorsContenu) {
       errors.push(errorsContenu)
     }
diff --git a/packages/api/src/business/validations/titre-demarche-etat-validate.test.ts b/packages/api/src/business/validations/titre-demarche-etat-validate.test.ts
index 887ead279..44ef6265b 100644
--- a/packages/api/src/business/validations/titre-demarche-etat-validate.test.ts
+++ b/packages/api/src/business/validations/titre-demarche-etat-validate.test.ts
@@ -12,9 +12,9 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
         typeId: 'arm',
         type: {
           id: 'arm',
-          contenuIds: []
+          contenuIds: [],
         } as unknown as ITitreType,
-        demarches: [{ typeId: 'oct' }]
+        demarches: [{ typeId: 'oct' }],
       } as ITitre,
       { typeId: 'mfr', date: '2030-01-01' } as ITitreEtape,
       newDemarcheId(),
@@ -31,16 +31,14 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
         typeId: 'arm',
         type: {
           id: 'arm',
-          contenuIds: []
+          contenuIds: [],
         } as unknown as ITitreType,
-        demarches: [{ typeId: 'pro' }, { typeId: 'oct' }]
+        demarches: [{ typeId: 'pro' }, { typeId: 'oct' }],
       } as ITitre,
       { typeId: 'mdp', statutId: 'fai', date: '2022-05-04' } as ITitreEtape,
       newDemarcheId(),
 
-      [
-        { id: '1', typeId: 'mfr', statutId: 'fai', date: '2022-05-03' }
-      ] as ITitreEtape[]
+      [{ id: '1', typeId: 'mfr', statutId: 'fai', date: '2022-05-03' }] as ITitreEtape[]
     )
 
     expect(valid).toHaveLength(0)
@@ -53,21 +51,21 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
         typeId: 'arm',
         type: {
           id: 'arm',
-          contenuIds: []
+          contenuIds: [],
         } as unknown as ITitreType,
-        demarches: [{ typeId: 'oct' }]
+        demarches: [{ typeId: 'oct' }],
       } as ITitre,
       {
         id: '1',
         typeId: 'mfr',
         statutId: 'fai',
-        date: '2022-05-04'
+        date: '2022-05-04',
       } as ITitreEtape,
       newDemarcheId(),
 
       [
         { id: '1', typeId: 'mfr', date: '2022-05-03', statutId: 'fai' },
-        { id: '2', typeId: 'mdp', date: '2022-05-04', statutId: 'fai' }
+        { id: '2', typeId: 'mdp', date: '2022-05-04', statutId: 'fai' },
       ] as ITitreEtape[]
     )
 
@@ -81,9 +79,9 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
         typeId: 'arm',
         type: {
           id: 'arm',
-          contenuIds: []
+          contenuIds: [],
         } as unknown as ITitreType,
-        demarches: [{ typeId: 'oct' }]
+        demarches: [{ typeId: 'oct' }],
       } as ITitre,
       { id: '1', typeId: 'mfr' } as ITitreEtape,
       newDemarcheId(),
@@ -102,9 +100,9 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
         typeId: 'arm',
         type: {
           id: 'arm',
-          contenuIds: []
+          contenuIds: [],
         } as unknown as ITitreType,
-        demarches: [{ typeId: 'oct' }]
+        demarches: [{ typeId: 'oct' }],
       } as ITitre,
       { id: '1', typeId: 'mfr' } as ITitreEtape,
       newDemarcheId(),
@@ -123,9 +121,9 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
           typeId: 'arm',
           type: {
             id: 'arm',
-            contenuIds: []
+            contenuIds: [],
           } as unknown as ITitreType,
-          demarches: [{ typeId: 'pro' }]
+          demarches: [{ typeId: 'pro' }],
         } as ITitre,
         { id: '1', typeId: 'mfr' } as ITitreEtape,
         newDemarcheId(),
@@ -141,8 +139,8 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
           typeId: 'arm',
           type: {
             id: 'arm',
-            contenuIds: []
-          } as unknown as ITitreType
+            contenuIds: [],
+          } as unknown as ITitreType,
         } as ITitre,
         { id: '1', typeId: 'mfr' } as ITitreEtape,
         newDemarcheId(),
@@ -159,9 +157,9 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
         typeId: 'arm',
         type: {
           id: 'arm',
-          contenuIds: []
+          contenuIds: [],
         } as unknown as ITitreType,
-        demarches: [{ typeId: 'oct' }]
+        demarches: [{ typeId: 'oct' }],
       } as ITitre,
       { id: '1', typeId: 'mfr' } as ITitreEtape,
       newDemarcheId(),
@@ -180,7 +178,7 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
         typeId: 'arm',
         type: {
           id: 'arm',
-          contenuIds: []
+          contenuIds: [],
         } as unknown as ITitreType,
         demarches: [
           {
@@ -188,12 +186,10 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
             type: {
               id: 'oct',
               nom: 'oct',
-              etapesTypes: [
-                { id: 'mfr', titreTypeId: 'arm', demarcheTypeId: 'oct' }
-              ]
-            } as IDemarcheType
-          }
-        ]
+              etapesTypes: [{ id: 'mfr', titreTypeId: 'arm', demarcheTypeId: 'oct' }],
+            } as IDemarcheType,
+          },
+        ],
       } as ITitre,
       { typeId: 'mfr', date: '1030-01-01', statutId: 'fai' } as ITitreEtape,
       newDemarcheId()
@@ -209,9 +205,9 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
         typeId: 'axm',
         type: {
           id: 'axm',
-          contenuIds: []
+          contenuIds: [],
         } as unknown as ITitreType,
-        demarches: [{ typeId: 'oct' }]
+        demarches: [{ typeId: 'oct' }],
       } as ITitre,
       { typeId: 'mfr', statutId: 'aco', date: '2030-01-01' } as ITitreEtape,
       newDemarcheId()
@@ -227,9 +223,9 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
         typeId: 'axm',
         type: {
           id: 'axm',
-          contenuIds: []
+          contenuIds: [],
         } as unknown as ITitreType,
-        demarches: [{ typeId: 'oct' }]
+        demarches: [{ typeId: 'oct' }],
       } as ITitre,
       { typeId: 'mfr', statutId: 'aco' } as ITitreEtape,
       newDemarcheId(),
@@ -247,16 +243,16 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
         typeId: 'axm',
         type: {
           id: 'axm',
-          contenuIds: []
+          contenuIds: [],
         } as unknown as ITitreType,
-        demarches: [{ typeId: 'oct' }]
+        demarches: [{ typeId: 'oct' }],
       } as ITitre,
       { id: '1', typeId: 'mfr', statutId: 'aco' } as ITitreEtape,
       newDemarcheId(),
 
       [
         { id: '1', typeId: 'mfr', statutId: 'aco' },
-        { id: '2', typeId: 'dae' }
+        { id: '2', typeId: 'dae' },
       ] as ITitreEtape[]
     )
 
@@ -271,16 +267,16 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
           typeId: 'axm',
           type: {
             id: 'axm',
-            contenuIds: []
+            contenuIds: [],
           } as unknown as ITitreType,
-          demarches: [{ typeId: 'oct' }]
+          demarches: [{ typeId: 'oct' }],
         } as ITitre,
         { id: '3', typeId: 'mfr', statutId: 'aco' } as ITitreEtape,
         newDemarcheId(),
 
         [
           { id: '1', typeId: 'mfr', statutId: 'aco' },
-          { id: '2', typeId: 'dae' }
+          { id: '2', typeId: 'dae' },
         ] as ITitreEtape[]
       )
     ).toContain('il y a déjà une demande en construction')
@@ -294,38 +290,30 @@ describe('teste titreDemarcheUpdatedEtatValidate', () => {
           typeId: 'axm',
           type: {
             id: 'axm',
-            contenuIds: []
+            contenuIds: [],
           } as unknown as ITitreType,
-          demarches: [{ typeId: 'oct' }]
+          demarches: [{ typeId: 'oct' }],
         } as ITitre,
         {
           typeId: 'aaa',
           date: '2022-01-01',
-          statutId: 'fai'
+          statutId: 'fai',
         } as unknown as ITitreEtape,
         newDemarcheId(),
 
         [
           {
             id: '1',
-            typeId:
-              EtapesTypesEtapesStatuts.demande.EN_CONSTRUCTION.etapeTypeId,
-            statutId:
-              EtapesTypesEtapesStatuts.demande.EN_CONSTRUCTION.etapeStatutId,
-            date: '2021-01-01'
+            typeId: EtapesTypesEtapesStatuts.demande.EN_CONSTRUCTION.etapeTypeId,
+            statutId: EtapesTypesEtapesStatuts.demande.EN_CONSTRUCTION.etapeStatutId,
+            date: '2021-01-01',
           },
           {
             id: '2',
-            typeId:
-              EtapesTypesEtapesStatuts
-                .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-                .REQUIS.etapeTypeId,
-            statutId:
-              EtapesTypesEtapesStatuts
-                .decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_
-                .REQUIS.etapeStatutId,
-            date: '2021-01-02'
-          }
+            typeId: EtapesTypesEtapesStatuts.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.REQUIS.etapeTypeId,
+            statutId: EtapesTypesEtapesStatuts.decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_.REQUIS.etapeStatutId,
+            date: '2021-01-02',
+          },
         ] as ITitreEtape[]
       )
     ).toContain('la démarche n’est pas valide')
diff --git a/packages/api/src/business/validations/titre-demarche-etat-validate.ts b/packages/api/src/business/validations/titre-demarche-etat-validate.ts
index 1742cafed..972c9d0c0 100644
--- a/packages/api/src/business/validations/titre-demarche-etat-validate.ts
+++ b/packages/api/src/business/validations/titre-demarche-etat-validate.ts
@@ -1,17 +1,7 @@
 // valide la date et la position de l'étape en fonction des autres étapes
-import type {
-  ITitre,
-  ITitreEtape,
-  IDemarcheType,
-  ITitreDemarche,
-  DemarcheId
-} from '../../types.js'
-
-import {
-  demarcheDefinitionFind,
-  IDemarcheDefinitionRestrictions,
-  isDemarcheDefinitionMachine
-} from '../rules-demarches/definitions.js'
+import type { ITitre, ITitreEtape, IDemarcheType, ITitreDemarche, DemarcheId } from '../../types.js'
+
+import { demarcheDefinitionFind, IDemarcheDefinitionRestrictions, isDemarcheDefinitionMachine } from '../rules-demarches/definitions.js'
 import { contenusTitreEtapesIdsFind } from '../utils/props-titre-etapes-ids-find.js'
 import { titreEtapesSortAscByDate } from '../utils/titre-etapes-sort.js'
 import { titreEtapeEtatValidate } from './titre-etape-etat-validate.js'
@@ -21,11 +11,7 @@ import { titreEtapeTypeAndStatusValidate } from './titre-etape-type-and-status-v
 import { contenuFormat } from '../../api/rest/titre-contenu.js'
 import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
 
-const titreDemarcheEtapesBuild = (
-  titreEtape: ITitreEtape,
-  suppression: boolean,
-  titreDemarcheEtapes?: ITitreEtape[] | null
-) => {
+const titreDemarcheEtapesBuild = (titreEtape: ITitreEtape, suppression: boolean, titreDemarcheEtapes?: ITitreEtape[] | null) => {
   if (!titreDemarcheEtapes?.length) {
     return [titreEtape]
   }
@@ -65,12 +51,7 @@ export const titreDemarcheEtatValidate = (
   // qu’on puisse la mettre avec son nouveau etapeTypeId à la nouvelle date souhaitée
   // et que les étapes après celle-ci soient toujours possibles
 
-  titreEtapes = titreEtapesSortAscByDate(
-    titreEtapes,
-    titreDemarche.id,
-    demarcheTypeId,
-    titre.typeId
-  )
+  titreEtapes = titreEtapesSortAscByDate(titreEtapes, titreDemarche.id, demarcheTypeId, titre.typeId)
 
   // on copie la démarche car on va les modifier en ajoutant les étapes une à une
   const demarche = objectClone(titreDemarche)
@@ -81,23 +62,14 @@ export const titreDemarcheEtatValidate = (
     const etapes = titreEtapes.slice(0, i)
     demarche.etapes = etapes
 
-    const contenusTitreEtapesIds = contenusTitreEtapesIdsFind(
-      titre.titreStatutId!,
-      [demarche],
-      titre.type!.contenuIds
-    )
+    const contenusTitreEtapesIds = contenusTitreEtapesIdsFind(titre.titreStatutId!, [demarche], titre.type!.contenuIds)
 
     let contenu = null
     if (contenusTitreEtapesIds) {
       contenu = contenuFormat({ demarches: [demarche], contenusTitreEtapesIds })
     }
 
-    const titreEtapeErrors = titreEtapeEtatValidate(
-      demarcheDefinitionRestrictions,
-      titreEtapes[i].typeId!,
-      etapes,
-      contenu
-    )
+    const titreEtapeErrors = titreEtapeEtatValidate(demarcheDefinitionRestrictions, titreEtapes[i].typeId!, etapes, contenu)
 
     if (titreEtapeErrors.length) {
       return titreEtapeErrors
@@ -117,25 +89,14 @@ export const titreDemarcheUpdatedEtatValidate = (
   titreDemarcheEtapes?: ITitreEtape[] | null,
   suppression = false
 ) => {
-  let titreDemarcheEtapesNew = titreDemarcheEtapesBuild(
-    titreEtape,
-    suppression,
-    titreDemarcheEtapes
-  )
-  const demarcheDefinition = demarcheDefinitionFind(
-    titre.typeId,
-    demarcheType.id,
-    titreDemarcheEtapesNew,
-    demarcheId
-  )
+  let titreDemarcheEtapesNew = titreDemarcheEtapesBuild(titreEtape, suppression, titreDemarcheEtapes)
+  const demarcheDefinition = demarcheDefinitionFind(titre.typeId, demarcheType.id, titreDemarcheEtapesNew, demarcheId)
   const titreDemarchesErrors: string[] = []
 
   // vérifie que la démarche existe dans le titre
   const titreDemarche = titre.demarches?.find(d => d.typeId === demarcheType.id)
   if (!titreDemarche) {
-    throw new Error(
-      'le titre ne contient pas la démarche en cours de modification'
-    )
+    throw new Error('le titre ne contient pas la démarche en cours de modification')
   }
   // pas de validation pour les démarches qui n'ont pas d'arbre d’instructions
   if (!demarcheDefinition) {
@@ -143,23 +104,14 @@ export const titreDemarcheUpdatedEtatValidate = (
       return []
     }
     // le type d'étape correspond à la démarche et au type de titre
-    const titreEtapeTypeAndStatusErrors = titreEtapeTypeAndStatusValidate(
-      titreEtape.typeId,
-      titreEtape.statutId,
-      titreDemarche.type!.etapesTypes,
-      titreDemarche.type!.nom
-    )
+    const titreEtapeTypeAndStatusErrors = titreEtapeTypeAndStatusValidate(titreEtape.typeId, titreEtape.statutId, titreDemarche.type!.etapesTypes, titreDemarche.type!.nom)
     titreDemarchesErrors.push(...titreEtapeTypeAndStatusErrors)
 
     return titreDemarchesErrors
   }
 
   // si on essaye d’ajouter ou de modifier une demande non déposée
-  if (
-    titreEtape.typeId === 'mfr' &&
-    titreEtape.statutId !== 'fai' &&
-    !suppression
-  ) {
+  if (titreEtape.typeId === 'mfr' && titreEtape.statutId !== 'fai' && !suppression) {
     const etapesDemande = titreDemarcheEtapes?.filter(te => te.typeId === 'mfr')
 
     // si c’est la création de la première demande, pas besoin de faire de vérification avec l’arbre
@@ -175,19 +127,13 @@ export const titreDemarcheUpdatedEtatValidate = (
     return ['il y a déjà une demande en construction']
   } else {
     // on supprime les étapes en construction de la liste des étapes, car elle ne doivent pas ếtre prises en compte par l’arbre
-    titreDemarcheEtapesNew = titreDemarcheEtapesNew.filter(
-      te => te.statutId !== 'aco'
-    )
+    titreDemarcheEtapesNew = titreDemarcheEtapesNew.filter(te => te.statutId !== 'aco')
   }
 
   // vérifie que toutes les étapes existent dans l’arbre
   if (isDemarcheDefinitionMachine(demarcheDefinition)) {
     try {
-      const ok = demarcheDefinition.machine.isEtapesOk(
-        demarcheDefinition.machine.orderMachine(
-          toMachineEtapes(titreDemarcheEtapesNew)
-        )
-      )
+      const ok = demarcheDefinition.machine.isEtapesOk(demarcheDefinition.machine.orderMachine(toMachineEtapes(titreDemarcheEtapesNew)))
       if (!ok) {
         titreDemarchesErrors.push('la démarche n’est pas valide')
       }
@@ -197,33 +143,18 @@ export const titreDemarcheUpdatedEtatValidate = (
     }
   } else {
     // le type d'étape correspond à la démarche et au type de titre
-    const titreEtapeTypeAndStatusErrors = titreEtapeTypeAndStatusValidate(
-      titreEtape.typeId,
-      titreEtape.statutId,
-      titreDemarche.type!.etapesTypes,
-      titreDemarche.type!.nom
-    )
+    const titreEtapeTypeAndStatusErrors = titreEtapeTypeAndStatusValidate(titreEtape.typeId, titreEtape.statutId, titreDemarche.type!.etapesTypes, titreDemarche.type!.nom)
     titreDemarchesErrors.push(...titreEtapeTypeAndStatusErrors)
 
     const etapeTypeIdsValid = Object.keys(demarcheDefinition.restrictions)
 
-    const etapeInconnue = titreDemarcheEtapesNew.find(
-      etape => !etapeTypeIdsValid.includes(etape.typeId!)
-    )
+    const etapeInconnue = titreDemarcheEtapesNew.find(etape => !etapeTypeIdsValid.includes(etape.typeId!))
     if (etapeInconnue) {
       return [`l’étape ${etapeInconnue.typeId} n’existe pas dans l’arbre`]
     }
 
     // On vérifie que la nouvelle démarche respecte son arbre d’instructions
-    titreDemarchesErrors.push(
-      ...titreDemarcheEtatValidate(
-        demarcheDefinition.restrictions,
-        demarcheType.id,
-        titreDemarche,
-        titreDemarcheEtapesNew,
-        titre
-      )
-    )
+    titreDemarchesErrors.push(...titreDemarcheEtatValidate(demarcheDefinition.restrictions, demarcheType.id, titreDemarche, titreDemarcheEtapesNew, titre))
   }
 
   return titreDemarchesErrors
diff --git a/packages/api/src/business/validations/titre-demarche-updation-validate.ts b/packages/api/src/business/validations/titre-demarche-updation-validate.ts
index 81eaa9169..456018166 100644
--- a/packages/api/src/business/validations/titre-demarche-updation-validate.ts
+++ b/packages/api/src/business/validations/titre-demarche-updation-validate.ts
@@ -1,18 +1,10 @@
 import { ITitreDemarche } from '../../types.js'
 
-export const titreDemarcheUpdationValidate = async (
-  titreDemarcheNew: ITitreDemarche,
-  titreDemarcheOld: ITitreDemarche
-) => {
+export const titreDemarcheUpdationValidate = async (titreDemarcheNew: ITitreDemarche, titreDemarcheOld: ITitreDemarche) => {
   const errors = [] as string[]
 
-  if (
-    titreDemarcheNew.typeId !== titreDemarcheOld.typeId &&
-    titreDemarcheOld.etapes?.length
-  ) {
-    errors.push(
-      'impossible de modifier le type d’une démarche si celle-ci a déjà une ou plusieurs étapes'
-    )
+  if (titreDemarcheNew.typeId !== titreDemarcheOld.typeId && titreDemarcheOld.etapes?.length) {
+    errors.push('impossible de modifier le type d’une démarche si celle-ci a déjà une ou plusieurs étapes')
   }
 
   return errors
diff --git a/packages/api/src/business/validations/titre-etape-etat-validate.test.ts b/packages/api/src/business/validations/titre-etape-etat-validate.test.ts
index 0e2d54285..1ba9b3e24 100644
--- a/packages/api/src/business/validations/titre-etape-etat-validate.test.ts
+++ b/packages/api/src/business/validations/titre-etape-etat-validate.test.ts
@@ -1,37 +1,20 @@
 import { ITitreEtape } from '../../types.js'
 
-import {
-  etapesSuivantesEnAttenteGet,
-  titreEtapeTypeIdRestrictionsFind
-} from './titre-etape-etat-validate.js'
+import { etapesSuivantesEnAttenteGet, titreEtapeTypeIdRestrictionsFind } from './titre-etape-etat-validate.js'
 import { restrictionsArmRet } from '../rules-demarches/arm/ret.js'
 import { etatInformationsGet } from '../rules-demarches/etat-cycles.js'
 import { describe, test, expect } from 'vitest'
 describe('teste etapesSuivantesEnAttenteGet', () => {
   test('retourne la seule étape déjà effectuée', () => {
     const etapes = [{ typeId: 'ide' }] as ITitreEtape[]
-    const etapesEnAttente = etapesSuivantesEnAttenteGet(
-      etapes,
-      etapes,
-      [],
-      restrictionsArmRet
-    )
+    const etapesEnAttente = etapesSuivantesEnAttenteGet(etapes, etapes, [], restrictionsArmRet)
     expect(etapesEnAttente).toHaveLength(1)
     expect(etapesEnAttente[0]).toEqual({ typeId: 'ide' })
   })
 
   test('retourne la dernière étape d’un arbre avec un seul acteur', () => {
-    const etapes = [
-      { typeId: 'ide' },
-      { typeId: 'mni' },
-      { typeId: 'css' }
-    ] as ITitreEtape[]
-    const etapesEnAttente = etapesSuivantesEnAttenteGet(
-      etapes,
-      etapes,
-      [],
-      restrictionsArmRet
-    )
+    const etapes = [{ typeId: 'ide' }, { typeId: 'mni' }, { typeId: 'css' }] as ITitreEtape[]
+    const etapesEnAttente = etapesSuivantesEnAttenteGet(etapes, etapes, [], restrictionsArmRet)
     expect(etapesEnAttente).toHaveLength(1)
     expect(etapesEnAttente[0]).toEqual({ typeId: 'css' })
   })
@@ -42,8 +25,8 @@ describe('teste etapesSuivantesEnAttenteGet', () => {
       mfr: { justeApres: [] },
       mdp: { justeApres: [] },
       mno: {
-        justeApres: [[{ etapeTypeId: 'mfr' }, { etapeTypeId: 'mdp' }]]
-      }
+        justeApres: [[{ etapeTypeId: 'mfr' }, { etapeTypeId: 'mdp' }]],
+      },
     })
     expect(etapesEnAttente).toHaveLength(2)
     expect(etapesEnAttente[0]).toEqual({ typeId: 'mfr' })
@@ -51,17 +34,13 @@ describe('teste etapesSuivantesEnAttenteGet', () => {
   })
 
   test('retourne la dernière étape après la fusion de 2 chemins parallèles', () => {
-    const etapes = [
-      { typeId: 'ide1' },
-      { typeId: 'ide2' },
-      { typeId: 'mno' }
-    ] as ITitreEtape[]
+    const etapes = [{ typeId: 'ide1' }, { typeId: 'ide2' }, { typeId: 'mno' }] as ITitreEtape[]
     const etapesEnAttente = etapesSuivantesEnAttenteGet(etapes, etapes, [], {
       ide1: { justeApres: [] },
       ide2: { justeApres: [] },
       mno: {
-        justeApres: [[{ etapeTypeId: 'ide1' }, { etapeTypeId: 'ide2' }]]
-      }
+        justeApres: [[{ etapeTypeId: 'ide1' }, { etapeTypeId: 'ide2' }]],
+      },
     })
     expect(etapesEnAttente).toHaveLength(1)
     expect(etapesEnAttente[0]).toEqual({ typeId: 'mno' })
@@ -71,37 +50,32 @@ describe('teste etapesSuivantesEnAttenteGet', () => {
     const etapesEnAttente = etapesSuivantesEnAttenteGet(etapes, etapes, [], {
       ide: { separation: ['css'], justeApres: [] },
       mno1: {
-        justeApres: [[{ etapeTypeId: 'ide' }]]
+        justeApres: [[{ etapeTypeId: 'ide' }]],
       },
       mno2: {
-        justeApres: [[{ etapeTypeId: 'ide' }]]
+        justeApres: [[{ etapeTypeId: 'ide' }]],
       },
       css: {
-        justeApres: [[{ etapeTypeId: 'mno1' }, { etapeTypeId: 'mno2' }]]
-      }
+        justeApres: [[{ etapeTypeId: 'mno1' }, { etapeTypeId: 'mno2' }]],
+      },
     })
     expect(etapesEnAttente).toHaveLength(2)
     expect(etapesEnAttente[0]).toEqual({ typeId: 'ide' })
     expect(etapesEnAttente[1]).toEqual({ typeId: 'mno1' })
   })
   test('retourne l’étape sur la dernière étape sur le chemin commun', () => {
-    const etapes = [
-      { typeId: 'ide' },
-      { typeId: 'mno1' },
-      { typeId: 'mno2' },
-      { typeId: 'css' }
-    ] as ITitreEtape[]
+    const etapes = [{ typeId: 'ide' }, { typeId: 'mno1' }, { typeId: 'mno2' }, { typeId: 'css' }] as ITitreEtape[]
     const etapesEnAttente = etapesSuivantesEnAttenteGet(etapes, etapes, [], {
       ide: { separation: ['css'], justeApres: [] },
       mno1: {
-        justeApres: [[{ etapeTypeId: 'ide' }]]
+        justeApres: [[{ etapeTypeId: 'ide' }]],
       },
       mno2: {
-        justeApres: [[{ etapeTypeId: 'ide' }]]
+        justeApres: [[{ etapeTypeId: 'ide' }]],
       },
       css: {
-        justeApres: [[{ etapeTypeId: 'mno1' }, { etapeTypeId: 'mno2' }]]
-      }
+        justeApres: [[{ etapeTypeId: 'mno1' }, { etapeTypeId: 'mno2' }]],
+      },
     })
     expect(etapesEnAttente).toHaveLength(1)
     expect(etapesEnAttente[0]).toEqual({ typeId: 'css' })
@@ -113,8 +87,8 @@ describe('teste etapesSuivantesEnAttenteGet', () => {
       ...etatInformationsGet('mif-mcr', 'rif-mcr', {
         etapeTypeId: 'mcr',
         separation: ['eof'],
-        justeApres: [[{ etapeTypeId: 'vfd' }]]
-      })
+        justeApres: [[{ etapeTypeId: 'vfd' }]],
+      }),
     })
     expect(etapesEnAttente).toHaveLength(1)
     expect(etapesEnAttente[0]).toEqual({ typeId: 'mif-mcr' })
@@ -125,14 +99,14 @@ describe('teste etapesSuivantesEnAttenteGet', () => {
     const etapesEnAttente = etapesSuivantesEnAttenteGet(etapes, etapes, [], {
       dex: { justeApres: [], separation: [] },
       mno1: {
-        justeApres: [[{ etapeTypeId: 'dex' }]]
+        justeApres: [[{ etapeTypeId: 'dex' }]],
       },
       mno2: {
-        justeApres: [[{ etapeTypeId: 'dex' }]]
+        justeApres: [[{ etapeTypeId: 'dex' }]],
       },
       mno3: {
-        justeApres: [[{ etapeTypeId: 'dex' }]]
-      }
+        justeApres: [[{ etapeTypeId: 'dex' }]],
+      },
     })
     expect(etapesEnAttente).toHaveLength(2)
     expect(etapesEnAttente[0]).toEqual({ typeId: 'dex' })
@@ -141,11 +115,6 @@ describe('teste etapesSuivantesEnAttenteGet', () => {
 
 describe('teste titreEtapeTypeIdRestrictionsFind', () => {
   test('émet une erreur si l’étape est inconnue', () => {
-    expect(() =>
-      titreEtapeTypeIdRestrictionsFind(
-        { dex: { justeApres: [], separation: [] } },
-        'aaa'
-      )
-    ).toThrowError()
+    expect(() => titreEtapeTypeIdRestrictionsFind({ dex: { justeApres: [], separation: [] } }, 'aaa')).toThrowError()
   })
 })
diff --git a/packages/api/src/business/validations/titre-etape-etat-validate.ts b/packages/api/src/business/validations/titre-etape-etat-validate.ts
index b3edeb8d6..f02b12d8b 100644
--- a/packages/api/src/business/validations/titre-etape-etat-validate.ts
+++ b/packages/api/src/business/validations/titre-etape-etat-validate.ts
@@ -1,19 +1,9 @@
 // valide la date et la position de l'étape en fonction des autres étapes
 import { ITitreEtape, IContenu, Index } from '../../types.js'
 
-import {
-  ITitreCondition,
-  IContenuElementCondition,
-  IEtapeTypeIdCondition,
-  IDemarcheDefinitionRestrictions,
-  IDemarcheDefinitionRestrictionsProps
-} from '../rules-demarches/definitions.js'
-
-const contenuConditionMatch = (
-  condition: IContenuElementCondition,
-  obj: Index<any> | null,
-  keys: string[] | null = null
-) => {
+import { ITitreCondition, IContenuElementCondition, IEtapeTypeIdCondition, IDemarcheDefinitionRestrictions, IDemarcheDefinitionRestrictionsProps } from '../rules-demarches/definitions.js'
+
+const contenuConditionMatch = (condition: IContenuElementCondition, obj: Index<any> | null, keys: string[] | null = null) => {
   // si les conditions sont testées plusieurs fois, (dans une boucle par ex)
   // alors les clés de l'objet de condition peuvent être passées optionnellement
   // pour ne pas les recalculer à chaque fois
@@ -40,43 +30,21 @@ const contenuConditionMatch = (
   })
 }
 
-const sameContenuCheck = (
-  conditionTitre: ITitreCondition,
-  contenu: IContenu | null
-) =>
-  conditionTitre.contenu &&
-  Object.keys(conditionTitre.contenu).every(key =>
-    contenuConditionMatch(
-      conditionTitre.contenu[key],
-      contenu ? contenu[key] : null
-    )
-  )
+const sameContenuCheck = (conditionTitre: ITitreCondition, contenu: IContenu | null) =>
+  conditionTitre.contenu && Object.keys(conditionTitre.contenu).every(key => contenuConditionMatch(conditionTitre.contenu[key], contenu ? contenu[key] : null))
 
-const titreEtapeTypeIdRestrictionsFind = (
-  demarcheDefinitionRestrictions: IDemarcheDefinitionRestrictions,
-  etapeTypeId: string
-) => {
+const titreEtapeTypeIdRestrictionsFind = (demarcheDefinitionRestrictions: IDemarcheDefinitionRestrictions, etapeTypeId: string) => {
   const etapeTypeIdDefinitions = demarcheDefinitionRestrictions[etapeTypeId]
 
   if (etapeTypeIdDefinitions) {
     return etapeTypeIdDefinitions
   }
 
-  throw new Error(
-    `l’étape ${etapeTypeId} n’existe pas dans cet arbre d’instructions`
-  )
+  throw new Error(`l’étape ${etapeTypeId} n’existe pas dans cet arbre d’instructions`)
 }
 
-const etapesEnAttenteGet = (
-  etapeTypeIdDefinitions: IDemarcheDefinitionRestrictions,
-  titreDemarcheEtapes: ITitreEtape[]
-) => {
-  return etapesSuivantesEnAttenteGet(
-    titreDemarcheEtapes,
-    titreDemarcheEtapes,
-    [],
-    etapeTypeIdDefinitions
-  )
+const etapesEnAttenteGet = (etapeTypeIdDefinitions: IDemarcheDefinitionRestrictions, titreDemarcheEtapes: ITitreEtape[]) => {
+  return etapesSuivantesEnAttenteGet(titreDemarcheEtapes, titreDemarcheEtapes, [], etapeTypeIdDefinitions)
 }
 
 const etapesSuivantesEnAttenteGet = (
@@ -93,24 +61,15 @@ const etapesSuivantesEnAttenteGet = (
   const etapesSuivantes = titreDemarcheEtapesSuivantes.slice(1)
 
   if (!etapesEnAttente || !etapesEnAttente.length) {
-    return etapesSuivantesEnAttenteGet(
-      titreDemarcheEtapes,
-      etapesSuivantes,
-      [etapeCourante],
-      etapeTypeIdDefinitions
-    )
+    return etapesSuivantesEnAttenteGet(titreDemarcheEtapes, etapesSuivantes, [etapeCourante], etapeTypeIdDefinitions)
   }
 
-  const etapeCouranteConditions = etapeTypeIdDefinitions[
-    etapeCourante.typeId
-  ] as IDemarcheDefinitionRestrictionsProps
+  const etapeCouranteConditions = etapeTypeIdDefinitions[etapeCourante.typeId] as IDemarcheDefinitionRestrictionsProps
 
   // on cherche quelles étapes en attente ont permis d’atteindre cette étape
   if (etapeCouranteConditions.justeApres) {
     etapesEnAttente.forEach(etape => {
-      const predicatCheck = etapeCouranteConditions!
-        .justeApres!.flat()
-        .find(c => c?.etapeTypeId === etape.typeId)
+      const predicatCheck = etapeCouranteConditions!.justeApres!.flat().find(c => c?.etapeTypeId === etape.typeId)
 
       if (predicatCheck) {
         // si cette étape a permis d’atteindre l’étape courante, alors on la remplace dans les étapes en attente
@@ -118,9 +77,7 @@ const etapesSuivantesEnAttenteGet = (
           const etapeSeparationHas = etapeTypeIdDefinitions[e.typeId]
 
           if (etapeSeparationHas && etapeSeparationHas.separation) {
-            return !etapeSeparationHas.separation!.includes(
-              etapeCourante.typeId!
-            )
+            return !etapeSeparationHas.separation!.includes(etapeCourante.typeId!)
           }
 
           return e.typeId !== etape.typeId
@@ -131,16 +88,10 @@ const etapesSuivantesEnAttenteGet = (
 
   if (etapeCouranteConditions.apres) {
     titreDemarcheEtapes.forEach(etape => {
-      const predicatCheck = etapeCouranteConditions
-        .apres!.flat()
-        .find(c => c?.etapeTypeId === etape.typeId)
+      const predicatCheck = etapeCouranteConditions.apres!.flat().find(c => c?.etapeTypeId === etape.typeId)
 
       if (predicatCheck) {
-        if (
-          (etapeCouranteConditions.justeApres.length &&
-            etapeCouranteConditions.justeApres[0].length) ||
-          !etapeCouranteConditions.final
-        ) {
+        if ((etapeCouranteConditions.justeApres.length && etapeCouranteConditions.justeApres[0].length) || !etapeCouranteConditions.final) {
           etapesEnAttente = etapesEnAttente.filter(
             e =>
               !etapeCouranteConditions.justeApres
@@ -157,20 +108,10 @@ const etapesSuivantesEnAttenteGet = (
   }
   etapesEnAttente.push(etapeCourante)
 
-  return etapesSuivantesEnAttenteGet(
-    titreDemarcheEtapes,
-    etapesSuivantes,
-    etapesEnAttente,
-    etapeTypeIdDefinitions
-  )
+  return etapesSuivantesEnAttenteGet(titreDemarcheEtapes, etapesSuivantes, etapesEnAttente, etapeTypeIdDefinitions)
 }
 
-const etapeTypeIdConditionsCheck = (
-  contenu: IContenu | null,
-  titreEtapesEnAttente: ITitreEtape[],
-  conditions: IEtapeTypeIdCondition[][],
-  titreDemarcheEtapes: ITitreEtape[]
-) =>
+const etapeTypeIdConditionsCheck = (contenu: IContenu | null, titreEtapesEnAttente: ITitreEtape[], conditions: IEtapeTypeIdCondition[][], titreDemarcheEtapes: ITitreEtape[]) =>
   conditions.some(condition =>
     condition.every(c => {
       if (c.titre && !sameContenuCheck(c.titre, contenu)) {
@@ -202,80 +143,28 @@ const etapesEnAttenteToString = (titreEtapesEnAttente: ITitreEtape[]) =>
     .map(t => `"${t}"`)
     .join(', ')
 
-const titreEtapeEtatValidate = (
-  etapeTypeIdDefinitions: IDemarcheDefinitionRestrictions,
-  etapeTypeId: string,
-  titreDemarcheEtapes: ITitreEtape[],
-  contenu: IContenu | null
-) => {
+const titreEtapeEtatValidate = (etapeTypeIdDefinitions: IDemarcheDefinitionRestrictions, etapeTypeId: string, titreDemarcheEtapes: ITitreEtape[], contenu: IContenu | null) => {
   const errors = []
-  const titreEtapesEnAttente = etapesEnAttenteGet(
-    etapeTypeIdDefinitions,
-    titreDemarcheEtapes
-  )
+  const titreEtapesEnAttente = etapesEnAttenteGet(etapeTypeIdDefinitions, titreDemarcheEtapes)
 
   if (titreEtapesEnAttente.find(e => e.typeId === etapeTypeId)) {
-    errors.push(
-      `l’étape "${etapeTypeId}" ne peut-être effecutée 2 fois d’affilée`
-    )
+    errors.push(`l’étape "${etapeTypeId}" ne peut-être effecutée 2 fois d’affilée`)
   }
 
-  const titreEtapeRestrictions = titreEtapeTypeIdRestrictionsFind(
-    etapeTypeIdDefinitions,
-    etapeTypeId
-  )
+  const titreEtapeRestrictions = titreEtapeTypeIdRestrictionsFind(etapeTypeIdDefinitions, etapeTypeId)
 
   const { avant, apres, justeApres } = titreEtapeRestrictions
 
-  if (
-    !errors.length &&
-    avant &&
-    etapeTypeIdConditionsCheck(
-      contenu,
-      titreDemarcheEtapes,
-      avant,
-      titreDemarcheEtapes
-    )
-  ) {
-    errors.push(
-      `l’étape "${etapeTypeId}" n’est plus possible après ${etapesEnAttenteToString(
-        titreEtapesEnAttente
-      )}`
-    )
+  if (!errors.length && avant && etapeTypeIdConditionsCheck(contenu, titreDemarcheEtapes, avant, titreDemarcheEtapes)) {
+    errors.push(`l’étape "${etapeTypeId}" n’est plus possible après ${etapesEnAttenteToString(titreEtapesEnAttente)}`)
   }
 
-  if (
-    !errors.length &&
-    apres &&
-    !etapeTypeIdConditionsCheck(
-      contenu,
-      titreDemarcheEtapes,
-      apres,
-      titreDemarcheEtapes
-    )
-  ) {
-    errors.push(
-      `l’étape "${etapeTypeId}" n’est pas possible après ${etapesEnAttenteToString(
-        titreEtapesEnAttente
-      )}`
-    )
+  if (!errors.length && apres && !etapeTypeIdConditionsCheck(contenu, titreDemarcheEtapes, apres, titreDemarcheEtapes)) {
+    errors.push(`l’étape "${etapeTypeId}" n’est pas possible après ${etapesEnAttenteToString(titreEtapesEnAttente)}`)
   }
 
-  if (
-    !errors.length &&
-    justeApres.length &&
-    !etapeTypeIdConditionsCheck(
-      contenu,
-      titreEtapesEnAttente,
-      justeApres,
-      titreDemarcheEtapes
-    )
-  ) {
-    errors.push(
-      `l’étape "${etapeTypeId}" n’est pas possible juste après ${etapesEnAttenteToString(
-        titreEtapesEnAttente
-      )}`
-    )
+  if (!errors.length && justeApres.length && !etapeTypeIdConditionsCheck(contenu, titreEtapesEnAttente, justeApres, titreDemarcheEtapes)) {
+    errors.push(`l’étape "${etapeTypeId}" n’est pas possible juste après ${etapesEnAttenteToString(titreEtapesEnAttente)}`)
   }
 
   if (!errors.length) {
@@ -289,8 +178,4 @@ const titreEtapeEtatValidate = (
   return errors
 }
 
-export {
-  titreEtapeEtatValidate,
-  etapesSuivantesEnAttenteGet,
-  titreEtapeTypeIdRestrictionsFind
-}
+export { titreEtapeEtatValidate, etapesSuivantesEnAttenteGet, titreEtapeTypeIdRestrictionsFind }
diff --git a/packages/api/src/business/validations/titre-etape-points-validate.test.ts b/packages/api/src/business/validations/titre-etape-points-validate.test.ts
index a98e90d48..500cce484 100644
--- a/packages/api/src/business/validations/titre-etape-points-validate.test.ts
+++ b/packages/api/src/business/validations/titre-etape-points-validate.test.ts
@@ -1,9 +1,6 @@
 import { titreEtapePointsValidate } from './titre-etape-points-validate.js'
 
-import {
-  titreEtapePointsValides,
-  titreEtapePointsReferenceManquante
-} from './__mocks__/titre-etape-points-validate.js'
+import { titreEtapePointsValides, titreEtapePointsReferenceManquante } from './__mocks__/titre-etape-points-validate.js'
 import { describe, test, expect } from 'vitest'
 describe("vérifie la validité des coordonnées des points d'une étape", () => {
   test('les points ont des coordonnées de référence', () => {
@@ -11,10 +8,6 @@ describe("vérifie la validité des coordonnées des points d'une étape", () =>
   })
 
   test("les points n'ont pas de coordonnées de référence", () => {
-    expect(
-      titreEtapePointsValidate(titreEtapePointsReferenceManquante)
-    ).toMatch(
-      /coordonnées du point point-ref-manquante \/ contour contour-ref-manquante \/ groupe group-ref-manquante manquantes/
-    )
+    expect(titreEtapePointsValidate(titreEtapePointsReferenceManquante)).toMatch(/coordonnées du point point-ref-manquante \/ contour contour-ref-manquante \/ groupe group-ref-manquante manquantes/)
   })
 })
diff --git a/packages/api/src/business/validations/titre-etape-points-validate.ts b/packages/api/src/business/validations/titre-etape-points-validate.ts
index 7162f3327..153adc5db 100644
--- a/packages/api/src/business/validations/titre-etape-points-validate.ts
+++ b/packages/api/src/business/validations/titre-etape-points-validate.ts
@@ -2,14 +2,8 @@ import { ITitrePoint } from '../../types.js'
 
 export const titreEtapePointsValidate = (titrePoints: ITitrePoint[]) => {
   const errors = titrePoints.reduce((errors: string[], point) => {
-    if (
-      !point.references.every(
-        ref => ref.coordonnees && ref.coordonnees.x && ref.coordonnees.y
-      )
-    ) {
-      errors.push(
-        `coordonnées du point ${point.point} / contour ${point.contour} / groupe ${point.groupe} manquantes`
-      )
+    if (!point.references.every(ref => ref.coordonnees && ref.coordonnees.x && ref.coordonnees.y)) {
+      errors.push(`coordonnées du point ${point.point} / contour ${point.contour} / groupe ${point.groupe} manquantes`)
     }
 
     // TODO:
diff --git a/packages/api/src/business/validations/titre-etape-type-and-status-validate.test.ts b/packages/api/src/business/validations/titre-etape-type-and-status-validate.test.ts
index 2ff226e8f..1a111d20e 100644
--- a/packages/api/src/business/validations/titre-etape-type-and-status-validate.test.ts
+++ b/packages/api/src/business/validations/titre-etape-type-and-status-validate.test.ts
@@ -4,13 +4,10 @@ import { titreEtapeTypeAndStatusValidate } from './titre-etape-type-and-status-v
 import { titreEtapeDemarcheEtapeTypeFind } from '../utils/titre-etape-demarche-etape-type-find.js'
 import { vi, describe, test, expect } from 'vitest'
 vi.mock('../utils/titre-etape-demarche-etape-type-find', () => ({
-  titreEtapeDemarcheEtapeTypeFind: vi.fn()
+  titreEtapeDemarcheEtapeTypeFind: vi.fn(),
 }))
 
-const titreEtapeDemarcheEtapeTypeFindMock = vi.mocked(
-  titreEtapeDemarcheEtapeTypeFind,
-  true
-)
+const titreEtapeDemarcheEtapeTypeFindMock = vi.mocked(titreEtapeDemarcheEtapeTypeFind, true)
 
 describe("valide le type et le statut d'une étape en fonction du type de titre et du type de démarche", () => {
   test('le statut est obligatoire', () => {
@@ -20,8 +17,8 @@ describe("valide le type et le statut d'une étape en fonction du type de titre
         undefined,
         [
           {
-            id: 'mdp'
-          }
+            id: 'mdp',
+          },
         ] as IEtapeType[],
         ''
       )
@@ -29,7 +26,7 @@ describe("valide le type et le statut d'une étape en fonction du type de titre
   })
   test("le type et le statut de l'étape correspondent au type de titre et de démarche", () => {
     titreEtapeDemarcheEtapeTypeFindMock.mockReturnValue({
-      id: 'mdp'
+      id: 'mdp',
     } as IEtapeType)
 
     expect(
@@ -38,8 +35,8 @@ describe("valide le type et le statut d'une étape en fonction du type de titre
         'fai',
         [
           {
-            id: 'mdp'
-          }
+            id: 'mdp',
+          },
         ] as IEtapeType[],
         ''
       )
@@ -48,7 +45,7 @@ describe("valide le type et le statut d'une étape en fonction du type de titre
 
   test("le statut de l'étape ne correspond pas au type de titre et de démarche", () => {
     titreEtapeDemarcheEtapeTypeFindMock.mockReturnValue({
-      id: 'mdp'
+      id: 'mdp',
     } as IEtapeType)
     expect(
       titreEtapeTypeAndStatusValidate(
@@ -56,14 +53,12 @@ describe("valide le type et le statut d'une étape en fonction du type de titre
         'rej',
         [
           {
-            id: 'mdp'
-          }
+            id: 'mdp',
+          },
         ] as IEtapeType[],
         'toto'
       )
-    ).toEqual([
-      'statut de l\'étape "rej" invalide pour une type d\'étape mdp pour une démarche de type toto'
-    ])
+    ).toEqual(['statut de l\'étape "rej" invalide pour une type d\'étape mdp pour une démarche de type toto'])
   })
 
   test("le statut de l'étape ne correspond pas au type de titre et de démarche", () => {
@@ -76,8 +71,8 @@ describe("valide le type et le statut d'une étape en fonction du type de titre
         'rej',
         [
           {
-            id: 'mdp'
-          }
+            id: 'mdp',
+          },
         ] as IEtapeType[],
         'toto'
       )
diff --git a/packages/api/src/business/validations/titre-etape-type-and-status-validate.ts b/packages/api/src/business/validations/titre-etape-type-and-status-validate.ts
index 8ffbdcb18..d9c1f2e35 100644
--- a/packages/api/src/business/validations/titre-etape-type-and-status-validate.ts
+++ b/packages/api/src/business/validations/titre-etape-type-and-status-validate.ts
@@ -6,33 +6,20 @@ import { getEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStat
 import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts.js'
 import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
 
-export const titreEtapeTypeAndStatusValidate = (
-  etapeTypeId: EtapeTypeId,
-  etapeStatutId: EtapeStatutId | undefined,
-  etapesTypes: IEtapeType[],
-  demarcheTypeNom: string
-) => {
+export const titreEtapeTypeAndStatusValidate = (etapeTypeId: EtapeTypeId, etapeStatutId: EtapeStatutId | undefined, etapesTypes: IEtapeType[], demarcheTypeNom: string) => {
   try {
     if (!etapeStatutId) {
       return [`le statut est obligatoire`]
     }
 
-    const etapeType = titreEtapeDemarcheEtapeTypeFind(
-      etapeTypeId,
-      etapesTypes,
-      demarcheTypeNom
-    )
+    const etapeType = titreEtapeDemarcheEtapeTypeFind(etapeTypeId, etapesTypes, demarcheTypeNom)
 
     const etapesStatuts = getEtapesStatuts(etapeType.id)
 
-    const titreEtapeStatut = etapesStatuts.find(
-      etapeStatut => etapeStatut.id === etapeStatutId
-    )
+    const titreEtapeStatut = etapesStatuts.find(etapeStatut => etapeStatut.id === etapeStatutId)
 
     if (!titreEtapeStatut) {
-      return [
-        `statut de l'étape "${etapeStatutId}" invalide pour une type d'étape ${etapeTypeId} pour une démarche de type ${demarcheTypeNom}`
-      ]
+      return [`statut de l'étape "${etapeStatutId}" invalide pour une type d'étape ${etapeTypeId} pour une démarche de type ${demarcheTypeNom}`]
     }
 
     return []
diff --git a/packages/api/src/business/validations/titre-etape-updation-validate.test.ts b/packages/api/src/business/validations/titre-etape-updation-validate.test.ts
index d587b8ca5..0457c141d 100644
--- a/packages/api/src/business/validations/titre-etape-updation-validate.test.ts
+++ b/packages/api/src/business/validations/titre-etape-updation-validate.test.ts
@@ -1,14 +1,6 @@
-import {
-  ITitreEtape,
-  ITitreDemarche,
-  ITitrePoint,
-  ITitre
-} from '../../types.js'
+import { ITitreEtape, ITitreDemarche, ITitrePoint, ITitre } from '../../types.js'
 
-import {
-  titreEtapeCompleteValidate,
-  titreEtapeUpdationValidate
-} from './titre-etape-updation-validate.js'
+import { titreEtapeCompleteValidate, titreEtapeUpdationValidate } from './titre-etape-updation-validate.js'
 import { SubstanceLegaleId } from 'camino-common/src/static/substancesLegales.js'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
 import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
@@ -22,36 +14,23 @@ describe('valide l’étape avant de l’enregistrer', () => {
     [[], 'mfr', 'prm', false],
     [['auru'], 'mfr', 'arm', false],
     [['auru'], 'mfr', 'axm', false],
-    [[], 'mfr', 'axm', true]
-  ])(
-    'teste la complétude des substances',
-    (substances, etapeType, titreType, error) => {
-      const titreEtape = {
-        substances,
-        typeId: etapeType
-      } as ITitreEtape
+    [[], 'mfr', 'axm', true],
+  ])('teste la complétude des substances', (substances, etapeType, titreType, error) => {
+    const titreEtape = {
+      substances,
+      typeId: etapeType,
+    } as ITitreEtape
 
-      const errors = titreEtapeCompleteValidate(
-        titreEtape,
-        titreType,
-        'oct',
-        [],
-        [],
-        null,
-        [],
-        null,
-        []
-      )
+    const errors = titreEtapeCompleteValidate(titreEtape, titreType, 'oct', [], [], null, [], null, [])
 
-      const errorLabel = 'au moins une substance doit être renseignée'
+    const errorLabel = 'au moins une substance doit être renseignée'
 
-      if (error) {
-        expect(errors).toContain(errorLabel)
-      } else {
-        expect(errors).not.toContain(errorLabel)
-      }
+    if (error) {
+      expect(errors).toContain(errorLabel)
+    } else {
+      expect(errors).not.toContain(errorLabel)
     }
-  )
+  })
 
   test.each<[ITitrePoint[], EtapeTypeId, TitreTypeId, boolean]>([
     [[], 'mfr', 'arm', true],
@@ -60,40 +39,27 @@ describe('valide l’étape avant de l’enregistrer', () => {
     [[], 'mfr', 'prm', false],
     [[{}, {}, {}, {}] as ITitrePoint[], 'mfr', 'arm', false],
     [[{}, {}, {}, {}] as ITitrePoint[], 'mfr', 'axm', false],
-    [[{}, {}, {}] as ITitrePoint[], 'mfr', 'axm', true]
-  ])(
-    'teste la complétude du périmètre',
-    (points, etapeType, titreType, error) => {
-      const titreEtape = {
-        points,
-        typeId: etapeType
-      } as ITitreEtape
+    [[{}, {}, {}] as ITitrePoint[], 'mfr', 'axm', true],
+  ])('teste la complétude du périmètre', (points, etapeType, titreType, error) => {
+    const titreEtape = {
+      points,
+      typeId: etapeType,
+    } as ITitreEtape
 
-      const errors = titreEtapeCompleteValidate(
-        titreEtape,
-        titreType,
-        'oct',
-        [],
-        [],
-        null,
-        [],
-        null,
-        []
-      )
+    const errors = titreEtapeCompleteValidate(titreEtape, titreType, 'oct', [], [], null, [], null, [])
 
-      const errorLabel = 'le périmètre doit comporter au moins 4 points'
-      if (error) {
-        expect(errors).toContain(errorLabel)
-      } else {
-        expect(errors).not.toContain(errorLabel)
-      }
+    const errorLabel = 'le périmètre doit comporter au moins 4 points'
+    if (error) {
+      expect(errors).toContain(errorLabel)
+    } else {
+      expect(errors).not.toContain(errorLabel)
     }
-  )
+  })
 
   test('une ARM mécanisée a des documents obligatoires supplémentaires', () => {
     const titreEtape = {
       typeId: 'mfr',
-      contenu: { arm: { mecanise: true } }
+      contenu: { arm: { mecanise: true } },
     } as unknown as ITitreEtape
 
     const errors = titreEtapeCompleteValidate(
@@ -104,7 +70,7 @@ describe('valide l’étape avant de l’enregistrer', () => {
       [
         { id: 'doe', optionnel: true, nom: 'doe' },
         { id: 'dep', optionnel: true, nom: 'doe' },
-        { id: 'tot', optionnel: true, nom: 'tot' }
+        { id: 'tot', optionnel: true, nom: 'tot' },
       ],
       null,
       [],
@@ -124,36 +90,23 @@ describe('valide l’étape avant de l’enregistrer', () => {
     [0, 'mfr', 'prm', false],
     [0, 'rde', 'arm', false],
     [3, 'mfr', 'arm', false],
-    [3, 'mfr', 'axm', false]
-  ])(
-    'teste la complétude de la durée',
-    (duree, etapeType, titreType, error) => {
-      const titreEtape = {
-        duree,
-        typeId: etapeType
-      } as ITitreEtape
+    [3, 'mfr', 'axm', false],
+  ])('teste la complétude de la durée', (duree, etapeType, titreType, error) => {
+    const titreEtape = {
+      duree,
+      typeId: etapeType,
+    } as ITitreEtape
 
-      const errors = titreEtapeCompleteValidate(
-        titreEtape,
-        titreType,
-        'oct',
-        [],
-        [],
-        null,
-        [],
-        null,
-        []
-      )
+    const errors = titreEtapeCompleteValidate(titreEtape, titreType, 'oct', [], [], null, [], null, [])
 
-      const errorLabel = 'la durée doit être renseignée'
+    const errorLabel = 'la durée doit être renseignée'
 
-      if (error) {
-        expect(errors).toContain(errorLabel)
-      } else {
-        expect(errors).not.toContain(errorLabel)
-      }
+    if (error) {
+      expect(errors).toContain(errorLabel)
+    } else {
+      expect(errors).not.toContain(errorLabel)
     }
-  )
+  })
 
   test("une ARM ou une AXM ne peuvent pas recevoir d'amodiataires", () => {
     const titreDemarche = {} as unknown as ITitreDemarche
@@ -161,103 +114,47 @@ describe('valide l’étape avant de l’enregistrer', () => {
     // ARM
     let titreEtape = {
       typeId: 'mfr',
-      amodiataires: []
+      amodiataires: [],
     } as unknown as ITitreEtape
 
     let titre = {
       id: 'foo',
-      typeId: 'arm'
+      typeId: 'arm',
     } as unknown as ITitre
 
-    let errors = titreEtapeUpdationValidate(
-      titreEtape,
-      titreDemarche,
-      titre,
-      [],
-      [],
-      [],
-      [],
-      [],
-      [],
-      userSuper
-    )
-    expect(errors).not.toContain(
-      "une autorisation de recherche ne peut pas inclure d'amodiataires"
-    )
-    expect(errors).not.toContain(
-      "une autorisation d'exploitation ne peut pas inclure d'amodiataires"
-    )
+    let errors = titreEtapeUpdationValidate(titreEtape, titreDemarche, titre, [], [], [], [], [], [], userSuper)
+    expect(errors).not.toContain("une autorisation de recherche ne peut pas inclure d'amodiataires")
+    expect(errors).not.toContain("une autorisation d'exploitation ne peut pas inclure d'amodiataires")
 
     titreEtape = {
       typeId: 'mfr',
-      amodiataires: [{ id: 'foo', nom: 'bar', operateur: true }]
+      amodiataires: [{ id: 'foo', nom: 'bar', operateur: true }],
     } as unknown as ITitreEtape
 
-    errors = titreEtapeUpdationValidate(
-      titreEtape,
-      titreDemarche,
-      titre,
-      [],
-      [],
-      [],
-      [],
-      [],
-      [],
-      userSuper
-    )
-    expect(errors).toContain(
-      "une autorisation de recherche ne peut pas inclure d'amodiataires"
-    )
+    errors = titreEtapeUpdationValidate(titreEtape, titreDemarche, titre, [], [], [], [], [], [], userSuper)
+    expect(errors).toContain("une autorisation de recherche ne peut pas inclure d'amodiataires")
 
     // AXM
     titreEtape = {
       typeId: 'mfr',
-      amodiataires: []
+      amodiataires: [],
     } as unknown as ITitreEtape
 
     titre = {
       id: 'foo',
-      typeId: 'axm'
+      typeId: 'axm',
     } as unknown as ITitre
 
-    errors = titreEtapeUpdationValidate(
-      titreEtape,
-      titreDemarche,
-      titre,
-      [],
-      [],
-      [],
-      [],
-      [],
-      [],
-      userSuper
-    )
-    expect(errors).not.toContain(
-      "une autorisation d'exploitation ne peut pas inclure d'amodiataires"
-    )
-    expect(errors).not.toContain(
-      "une autorisation de recherche ne peut pas inclure d'amodiataires"
-    )
+    errors = titreEtapeUpdationValidate(titreEtape, titreDemarche, titre, [], [], [], [], [], [], userSuper)
+    expect(errors).not.toContain("une autorisation d'exploitation ne peut pas inclure d'amodiataires")
+    expect(errors).not.toContain("une autorisation de recherche ne peut pas inclure d'amodiataires")
 
     titreEtape = {
       typeId: 'mfr',
-      amodiataires: [{ id: 'foo', nom: 'bar', operateur: true }]
+      amodiataires: [{ id: 'foo', nom: 'bar', operateur: true }],
     } as unknown as ITitreEtape
 
-    errors = titreEtapeUpdationValidate(
-      titreEtape,
-      titreDemarche,
-      titre,
-      [],
-      [],
-      [],
-      [],
-      [],
-      [],
-      userSuper
-    )
-    expect(errors).toContain(
-      "une autorisation d'exploitation ne peut pas inclure d'amodiataires"
-    )
+    errors = titreEtapeUpdationValidate(titreEtape, titreDemarche, titre, [], [], [], [], [], [], userSuper)
+    expect(errors).toContain("une autorisation d'exploitation ne peut pas inclure d'amodiataires")
   })
 })
diff --git a/packages/api/src/business/validations/titre-etape-updation-validate.ts b/packages/api/src/business/validations/titre-etape-updation-validate.ts
index b70d155f3..0b505d83e 100644
--- a/packages/api/src/business/validations/titre-etape-updation-validate.ts
+++ b/packages/api/src/business/validations/titre-etape-updation-validate.ts
@@ -1,12 +1,4 @@
-import {
-  ITitreEtape,
-  ITitreDemarche,
-  ITitre,
-  ISection,
-  IDocument,
-  IContenu,
-  ITitreEntreprise
-} from '../../types.js'
+import { ITitreEtape, ITitreDemarche, ITitre, ISection, IDocument, IContenu, ITitreEntreprise } from '../../types.js'
 
 import { titreEtapePointsValidate } from './titre-etape-points-validate.js'
 import { titreDemarcheUpdatedEtatValidate } from './titre-demarche-etat-validate.js'
@@ -18,26 +10,15 @@ import { contenuDatesCheck } from './utils/contenu-dates-check.js'
 import { documentsTypesValidate } from './documents-types-validate.js'
 import { documentTypeIdsBySdomZonesGet } from '../../api/graphql/resolvers/_titre-etape.js'
 import { objectClone } from '../../tools/index.js'
-import {
-  canEditAmodiataires,
-  canEditDates,
-  canEditDuree,
-  canEditTitulaires,
-  dureeOptionalCheck
-} from 'camino-common/src/permissions/titres-etapes.js'
+import { canEditAmodiataires, canEditDates, canEditDuree, canEditTitulaires, dureeOptionalCheck } from 'camino-common/src/permissions/titres-etapes.js'
 import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import {
-  DocumentType,
-  DocumentsTypes
-} from 'camino-common/src/static/documentsTypes.js'
+import { DocumentType, DocumentsTypes } from 'camino-common/src/static/documentsTypes.js'
 import { User } from 'camino-common/src/roles.js'
 import { SDOMZoneId } from 'camino-common/src/static/sdom.js'
 const numberProps = ['duree', 'surface'] as unknown as [keyof ITitreEtape]
 
-const dateProps = ['date', 'dateDebut', 'dateFin'] as unknown as [
-  keyof ITitreEtape
-]
+const dateProps = ['date', 'dateDebut', 'dateFin'] as unknown as [keyof ITitreEtape]
 
 export const titreEtapeUpdationValidate = (
   titreEtape: ITitreEtape,
@@ -55,24 +36,15 @@ export const titreEtapeUpdationValidate = (
   const errors = []
 
   // le champ heritageContenu est cohérent avec les sections
-  const errorsHeritageContenu = heritageContenuValidate(
-    sections,
-    titreEtape.heritageContenu
-  )
+  const errorsHeritageContenu = heritageContenuValidate(sections, titreEtape.heritageContenu)
 
   errors.push(...errorsHeritageContenu)
 
-  if (
-    !(titreEtape.heritageProps?.duree?.actif ?? false) &&
-    !canEditDuree(titre.typeId, titreDemarche.typeId) &&
-    (titreEtape.duree ?? 0) !== (titreEtapeOld?.duree ?? 0)
-  ) {
+  if (!(titreEtape.heritageProps?.duree?.actif ?? false) && !canEditDuree(titre.typeId, titreDemarche.typeId) && (titreEtape.duree ?? 0) !== (titreEtapeOld?.duree ?? 0)) {
     errors.push('impossible d’éditer la durée')
   }
 
-  if (
-    !canEditDates(titre.typeId, titreDemarche.typeId, titreEtape.typeId, user)
-  ) {
+  if (!canEditDates(titre.typeId, titreDemarche.typeId, titreEtape.typeId, user)) {
     if ((titreEtape.dateDebut ?? '') !== (titreEtapeOld?.dateDebut ?? '')) {
       errors.push('impossible d’éditer la date de début')
     }
@@ -84,30 +56,16 @@ export const titreEtapeUpdationValidate = (
   if (titreEtapeOld && !titreEtapeOld.titulaires) {
     throw new Error('les titulaires ne sont pas chargés')
   }
-  if (
-    !canEditTitulaires(titre.typeId, user) &&
-    entreprisesHaveChanged(titreEtape.titulaires, titreEtapeOld?.titulaires)
-  ) {
-    errors.push(
-      `une autorisation ${
-        titre.typeId === 'arm' ? 'de recherche' : "d'exploitation"
-      } ne peut pas inclure de titulaires`
-    )
+  if (!canEditTitulaires(titre.typeId, user) && entreprisesHaveChanged(titreEtape.titulaires, titreEtapeOld?.titulaires)) {
+    errors.push(`une autorisation ${titre.typeId === 'arm' ? 'de recherche' : "d'exploitation"} ne peut pas inclure de titulaires`)
   }
 
   if (titreEtapeOld && !titreEtapeOld.amodiataires) {
     throw new Error('les amodiataires ne sont pas chargés')
   }
 
-  if (
-    !canEditAmodiataires(titre.typeId, user) &&
-    entreprisesHaveChanged(titreEtape.amodiataires, titreEtapeOld?.amodiataires)
-  ) {
-    errors.push(
-      `une autorisation ${
-        titre.typeId === 'arm' ? 'de recherche' : "d'exploitation"
-      } ne peut pas inclure d'amodiataires`
-    )
+  if (!canEditAmodiataires(titre.typeId, user) && entreprisesHaveChanged(titreEtape.amodiataires, titreEtapeOld?.amodiataires)) {
+    errors.push(`une autorisation ${titre.typeId === 'arm' ? 'de recherche' : "d'exploitation"} ne peut pas inclure d'amodiataires`)
   }
 
   if (sections.length) {
@@ -154,19 +112,7 @@ export const titreEtapeUpdationValidate = (
 
   // 4. si l’étape n’est pas en cours de construction
   if (titreEtape.statutId !== 'aco') {
-    errors.push(
-      ...titreEtapeCompleteValidate(
-        titreEtape,
-        titre.typeId,
-        titreDemarche.typeId,
-        sections,
-        documentsTypes,
-        documents,
-        justificatifsTypes,
-        justificatifs,
-        sdomZones
-      )
-    )
+    errors.push(...titreEtapeCompleteValidate(titreEtape, titre.typeId, titreDemarche.typeId, sections, documentsTypes, documents, justificatifsTypes, justificatifs, sdomZones))
   }
 
   if (errors.length) {
@@ -195,36 +141,22 @@ export const titreEtapeCompleteValidate = (
 
   // les décisions annexes sont complètes
   if (titreEtape.decisionsAnnexesSections) {
-    errors.push(
-      ...contenuCompleteValidate(
-        titreEtape.decisionsAnnexesSections,
-        titreEtape.decisionsAnnexesContenu
-      )
-    )
+    errors.push(...contenuCompleteValidate(titreEtape.decisionsAnnexesSections, titreEtape.decisionsAnnexesContenu))
   }
 
   const dts = (objectClone(documentsTypes) || []) as DocumentType[]
   if (sdomZones?.length) {
     // Ajoute les documents obligatoires en fonction des zones du SDOM
-    const documentTypeIds = documentTypeIdsBySdomZonesGet(
-      sdomZones,
-      titreTypeId,
-      demarcheTypeId,
-      titreEtape.typeId
-    )
-
-    documentTypeIds?.forEach(dtId =>
-      dts.push({ id: dtId, nom: DocumentsTypes[dtId].nom, optionnel: false })
-    )
+    const documentTypeIds = documentTypeIdsBySdomZonesGet(sdomZones, titreTypeId, demarcheTypeId, titreEtape.typeId)
+
+    documentTypeIds?.forEach(dtId => dts.push({ id: dtId, nom: DocumentsTypes[dtId].nom, optionnel: false }))
   }
 
   // les fichiers obligatoires sont tous renseignés et complets
   if (dts!.length) {
     // ajoute des documents obligatoires pour les arm mécanisées
     if (titreTypeId === 'arm' && titreEtape.contenu && titreEtape.contenu.arm) {
-      dts
-        .filter(dt => ['doe', 'dep'].includes(dt.id))
-        .forEach(dt => (dt.optionnel = !titreEtape.contenu?.arm.mecanise))
+      dts.filter(dt => ['doe', 'dep'].includes(dt.id)).forEach(dt => (dt.optionnel = !titreEtape.contenu?.arm.mecanise))
     }
     const documentsErrors = documentsTypesValidate(documents, dts)
     if (documentsErrors.length) {
@@ -236,12 +168,8 @@ export const titreEtapeCompleteValidate = (
   const justificatifsTypesIds = [] as string[]
   if (justificatifs?.length) {
     for (const justificatif of justificatifs) {
-      if (
-        !justificatifsTypes.map(({ id }) => id).includes(justificatif!.typeId)
-      ) {
-        errors.push(
-          `impossible de lier un justificatif de type ${justificatif!.typeId}`
-        )
+      if (!justificatifsTypes.map(({ id }) => id).includes(justificatif!.typeId)) {
+        errors.push(`impossible de lier un justificatif de type ${justificatif!.typeId}`)
       }
       justificatifsTypesIds.push(justificatif!.typeId)
     }
@@ -264,40 +192,23 @@ export const titreEtapeCompleteValidate = (
     }
 
     // il doit exister au moins une substance
-    if (
-      !titreEtape.substances ||
-      !titreEtape.substances.length ||
-      !titreEtape.substances.some(substanceId => !!substanceId)
-    ) {
+    if (!titreEtape.substances || !titreEtape.substances.length || !titreEtape.substances.some(substanceId => !!substanceId)) {
       errors.push('au moins une substance doit être renseignée')
     }
   }
 
-  if (
-    !titreEtape.duree &&
-    !dureeOptionalCheck(titreEtape.typeId, demarcheTypeId, titreTypeId)
-  ) {
+  if (!titreEtape.duree && !dureeOptionalCheck(titreEtape.typeId, demarcheTypeId, titreTypeId)) {
     errors.push('la durée doit être renseignée')
   }
 
   return errors
 }
 
-const titreEtapeUpdationBusinessValidate = (
-  titreEtape: ITitreEtape,
-  titreDemarche: ITitreDemarche,
-  titre: ITitre
-) => {
+const titreEtapeUpdationBusinessValidate = (titreEtape: ITitreEtape, titreDemarche: ITitreDemarche, titre: ITitre) => {
   const errors = []
   // 1. la date de l'étape est possible
   // en fonction de l'ordre des types d'étapes de la démarche
-  const demarcheUpdatedErrors = titreDemarcheUpdatedEtatValidate(
-    titreDemarche.type!,
-    titre,
-    titreEtape,
-    titreDemarche.id,
-    titreDemarche.etapes!
-  )
+  const demarcheUpdatedErrors = titreDemarcheUpdatedEtatValidate(titreDemarche.type!, titre, titreEtape, titreDemarche.id, titreDemarche.etapes!)
   if (demarcheUpdatedErrors.length) {
     errors.push(...demarcheUpdatedErrors)
   }
@@ -313,24 +224,13 @@ const titreEtapeUpdationBusinessValidate = (
   return errors
 }
 
-const contenuCompleteValidate = (
-  sections: ISection[],
-  contenu: IContenu | null | undefined
-): string[] => {
+const contenuCompleteValidate = (sections: ISection[], contenu: IContenu | null | undefined): string[] => {
   const errors: string[] = []
   sections.forEach(s =>
     s.elements?.forEach(e => {
       if (!e.optionnel && !['radio', 'checkbox'].includes(e.type)) {
-        if (
-          !contenu ||
-          !contenu[s.id] ||
-          contenu[s.id][e.id] === undefined ||
-          contenu[s.id][e.id] === null ||
-          contenu[s.id][e.id] === ''
-        ) {
-          errors.push(
-            `l’élément "${e.nom}" de la section "${s.nom}" est obligatoire`
-          )
+        if (!contenu || !contenu[s.id] || contenu[s.id][e.id] === undefined || contenu[s.id][e.id] === null || contenu[s.id][e.id] === '') {
+          errors.push(`l’élément "${e.nom}" de la section "${s.nom}" est obligatoire`)
         }
       }
     })
@@ -339,10 +239,7 @@ const contenuCompleteValidate = (
   return errors
 }
 
-const entreprisesHaveChanged = (
-  newValue: ITitreEntreprise[] | undefined | null,
-  oldValue: ITitreEntreprise[] | undefined | null
-): boolean => {
+const entreprisesHaveChanged = (newValue: ITitreEntreprise[] | undefined | null, oldValue: ITitreEntreprise[] | undefined | null): boolean => {
   if (!newValue && !oldValue) {
     return false
   }
@@ -355,8 +252,5 @@ const entreprisesHaveChanged = (
     return false
   }
 
-  return newValue.some(
-    (v, i) =>
-      oldValue?.[i].id !== v.id || oldValue?.[i].operateur !== v.operateur
-  )
+  return newValue.some((v, i) => oldValue?.[i].id !== v.id || oldValue?.[i].operateur !== v.operateur)
 }
diff --git a/packages/api/src/business/validations/titre-links-validate.ts b/packages/api/src/business/validations/titre-links-validate.ts
index 9b90088a3..32672d4ee 100644
--- a/packages/api/src/business/validations/titre-links-validate.ts
+++ b/packages/api/src/business/validations/titre-links-validate.ts
@@ -1,12 +1,7 @@
 import { ITitre, ITitreDemarche } from '../../types.js'
 import { getLinkConfig } from 'camino-common/src/permissions/titres.js'
 
-export const checkTitreLinks = (
-  titre: Pick<ITitre, 'typeId'>,
-  titreFromIds: string[],
-  titresFrom: ITitre[],
-  demarches: ITitreDemarche[]
-) => {
+export const checkTitreLinks = (titre: Pick<ITitre, 'typeId'>, titreFromIds: string[], titresFrom: ITitre[], demarches: ITitreDemarche[]) => {
   const linkConfig = getLinkConfig(titre.typeId, demarches)
   if (!linkConfig) {
     throw new Error('ce titre ne peut pas être lié à d’autres titres')
@@ -22,9 +17,7 @@ export const checkTitreLinks = (
 
   if (linkConfig) {
     if (titresFrom.some(({ typeId }) => typeId !== linkConfig.typeId)) {
-      throw new Error(
-        `un titre de type ${titre.typeId} ne peut-être lié qu’à un titre de type ${linkConfig.typeId}`
-      )
+      throw new Error(`un titre de type ${titre.typeId} ne peut-être lié qu’à un titre de type ${linkConfig.typeId}`)
     }
   }
 }
diff --git a/packages/api/src/business/validations/utilisateur-updation-validate.test.ts b/packages/api/src/business/validations/utilisateur-updation-validate.test.ts
index 02a86f1f6..00d95f332 100644
--- a/packages/api/src/business/validations/utilisateur-updation-validate.test.ts
+++ b/packages/api/src/business/validations/utilisateur-updation-validate.test.ts
@@ -11,32 +11,26 @@ const users: Record<Role, UserNotNull> = {
   editeur: {
     ...testBlankUser,
     role: 'editeur',
-    administrationId: 'aut-97300-01'
+    administrationId: 'aut-97300-01',
   },
   lecteur: {
     ...testBlankUser,
     role: 'lecteur',
-    administrationId: 'aut-97300-01'
+    administrationId: 'aut-97300-01',
   },
   entreprise: { ...testBlankUser, role: 'entreprise', entreprises: [] },
   'bureau d’études': {
     ...testBlankUser,
     role: 'bureau d’études',
-    entreprises: []
+    entreprises: [],
   },
-  defaut: { ...testBlankUser, role: 'defaut' }
+  defaut: { ...testBlankUser, role: 'defaut' },
 }
 
 const fakeAdministrationId = 'fakeAdminId' as AdministrationId
 
 test('utilisateurUpdationValidate privilege escalation forbidden', () => {
-  expect(() =>
-    utilisateurUpdationValidate(
-      users.defaut,
-      { ...users.defaut, role: 'super', entreprises: [] },
-      users.defaut
-    )
-  ).toThrowErrorMatchingInlineSnapshot(
+  expect(() => utilisateurUpdationValidate(users.defaut, { ...users.defaut, role: 'super', entreprises: [] }, users.defaut)).toThrowErrorMatchingInlineSnapshot(
     '"droits insuffisants pour modifier les rôles"'
   )
   expect(() =>
@@ -46,13 +40,11 @@ test('utilisateurUpdationValidate privilege escalation forbidden', () => {
         ...users.admin,
         role: 'super',
         entreprises: [],
-        administrationId: undefined
+        administrationId: undefined,
       },
       users.admin
     )
-  ).toThrowErrorMatchingInlineSnapshot(
-    '"droits insuffisants pour modifier les rôles"'
-  )
+  ).toThrowErrorMatchingInlineSnapshot('"droits insuffisants pour modifier les rôles"')
   expect(() =>
     utilisateurUpdationValidate(
       users.lecteur,
@@ -60,13 +52,11 @@ test('utilisateurUpdationValidate privilege escalation forbidden', () => {
         ...users.lecteur,
         role: 'super',
         entreprises: [],
-        administrationId: undefined
+        administrationId: undefined,
       },
       users.lecteur
     )
-  ).toThrowErrorMatchingInlineSnapshot(
-    '"droits insuffisants pour modifier les rôles"'
-  )
+  ).toThrowErrorMatchingInlineSnapshot('"droits insuffisants pour modifier les rôles"')
   expect(() =>
     utilisateurUpdationValidate(
       users.editeur,
@@ -74,29 +64,15 @@ test('utilisateurUpdationValidate privilege escalation forbidden', () => {
         ...users.editeur,
         role: 'super',
         entreprises: [],
-        administrationId: undefined
+        administrationId: undefined,
       },
       users.editeur
     )
-  ).toThrowErrorMatchingInlineSnapshot(
+  ).toThrowErrorMatchingInlineSnapshot('"droits insuffisants pour modifier les rôles"')
+  expect(() => utilisateurUpdationValidate(users.entreprise, { ...users.entreprise, role: 'super', entreprises: [] }, users.entreprise)).toThrowErrorMatchingInlineSnapshot(
     '"droits insuffisants pour modifier les rôles"'
   )
-  expect(() =>
-    utilisateurUpdationValidate(
-      users.entreprise,
-      { ...users.entreprise, role: 'super', entreprises: [] },
-      users.entreprise
-    )
-  ).toThrowErrorMatchingInlineSnapshot(
-    '"droits insuffisants pour modifier les rôles"'
-  )
-  expect(() =>
-    utilisateurUpdationValidate(
-      users['bureau d’études'],
-      { ...users['bureau d’études'], role: 'super', entreprises: [] },
-      users.entreprise
-    )
-  ).toThrowErrorMatchingInlineSnapshot(
+  expect(() => utilisateurUpdationValidate(users['bureau d’études'], { ...users['bureau d’études'], role: 'super', entreprises: [] }, users.entreprise)).toThrowErrorMatchingInlineSnapshot(
     '"droits insuffisants pour modifier les rôles"'
   )
 
@@ -107,39 +83,33 @@ test('utilisateurUpdationValidate privilege escalation forbidden', () => {
         ...users.editeur,
         role: 'entreprise',
         administrationId: undefined,
-        entreprises: [{ id: newEntrepriseId('id') }]
+        entreprises: [{ id: newEntrepriseId('id') }],
       },
       users.editeur
     )
-  ).toThrowErrorMatchingInlineSnapshot(
-    '"droits insuffisants pour modifier les rôles"'
-  )
+  ).toThrowErrorMatchingInlineSnapshot('"droits insuffisants pour modifier les rôles"')
   expect(() =>
     utilisateurUpdationValidate(
       users.defaut,
       {
         ...users.defaut,
         role: 'entreprise',
-        entreprises: [{ id: newEntrepriseId('id') }]
+        entreprises: [{ id: newEntrepriseId('id') }],
       },
       users.defaut
     )
-  ).toThrowErrorMatchingInlineSnapshot(
-    '"droits insuffisants pour modifier les rôles"'
-  )
+  ).toThrowErrorMatchingInlineSnapshot('"droits insuffisants pour modifier les rôles"')
 })
 
 test('utilisateurUpdationValidate incorrect users throw error', () => {
-  expect(() =>
-    utilisateurUpdationValidate(users.super, { role: 'super' }, undefined)
-  ).toThrowErrorMatchingInlineSnapshot('"utilisateur incorrect"')
+  expect(() => utilisateurUpdationValidate(users.super, { role: 'super' }, undefined)).toThrowErrorMatchingInlineSnapshot('"utilisateur incorrect"')
   expect(() =>
     utilisateurUpdationValidate(
       users.super,
       {
         role: 'super',
         email: 'toto@gmail.com',
-        entreprises: [{ id: newEntrepriseId('entrepriseId') }]
+        entreprises: [{ id: newEntrepriseId('entrepriseId') }],
       },
       undefined
     )
@@ -150,22 +120,20 @@ test('utilisateurUpdationValidate incorrect users throw error', () => {
       {
         role: 'super',
         email: 'toto@gmail.com',
-        administrationId: 'aut-97300-01'
+        administrationId: 'aut-97300-01',
       },
       undefined
     )
   ).toThrowErrorMatchingInlineSnapshot('"utilisateur incorrect"')
 
-  expect(() =>
-    utilisateurUpdationValidate(users.super, { role: 'defaut' }, undefined)
-  ).toThrowErrorMatchingInlineSnapshot('"utilisateur incorrect"')
+  expect(() => utilisateurUpdationValidate(users.super, { role: 'defaut' }, undefined)).toThrowErrorMatchingInlineSnapshot('"utilisateur incorrect"')
   expect(() =>
     utilisateurUpdationValidate(
       users.super,
       {
         role: 'defaut',
         email: 'toto@gmail.com',
-        entreprises: [{ id: newEntrepriseId('entrepriseId') }]
+        entreprises: [{ id: newEntrepriseId('entrepriseId') }],
       },
       undefined
     )
@@ -176,22 +144,20 @@ test('utilisateurUpdationValidate incorrect users throw error', () => {
       {
         role: 'defaut',
         email: 'toto@gmail.com',
-        administrationId: 'aut-97300-01'
+        administrationId: 'aut-97300-01',
       },
       undefined
     )
   ).toThrowErrorMatchingInlineSnapshot('"utilisateur incorrect"')
 
-  expect(() =>
-    utilisateurUpdationValidate(users.super, { role: 'admin' }, undefined)
-  ).toThrowErrorMatchingInlineSnapshot('"utilisateur incorrect"')
+  expect(() => utilisateurUpdationValidate(users.super, { role: 'admin' }, undefined)).toThrowErrorMatchingInlineSnapshot('"utilisateur incorrect"')
   expect(() =>
     utilisateurUpdationValidate(
       users.super,
       {
         role: 'admin',
         email: 'toto@gmail.com',
-        entreprises: [{ id: newEntrepriseId('entrepriseId') }]
+        entreprises: [{ id: newEntrepriseId('entrepriseId') }],
       },
       undefined
     )
@@ -202,22 +168,14 @@ test('utilisateurUpdationValidate incorrect users throw error', () => {
       {
         role: 'admin',
         email: 'toto@gmail.com',
-        administrationId: fakeAdministrationId
+        administrationId: fakeAdministrationId,
       },
       undefined
     )
   ).toThrowErrorMatchingInlineSnapshot('"utilisateur incorrect"')
 
-  expect(() =>
-    utilisateurUpdationValidate(users.super, { role: 'entreprise' }, undefined)
-  ).toThrowErrorMatchingInlineSnapshot('"utilisateur incorrect"')
-  expect(() =>
-    utilisateurUpdationValidate(
-      users.super,
-      { role: 'entreprise', email: 'toto@gmail.com', entreprises: [] },
-      undefined
-    )
-  ).toThrowErrorMatchingInlineSnapshot('"utilisateur incorrect"')
+  expect(() => utilisateurUpdationValidate(users.super, { role: 'entreprise' }, undefined)).toThrowErrorMatchingInlineSnapshot('"utilisateur incorrect"')
+  expect(() => utilisateurUpdationValidate(users.super, { role: 'entreprise', email: 'toto@gmail.com', entreprises: [] }, undefined)).toThrowErrorMatchingInlineSnapshot('"utilisateur incorrect"')
   expect(() =>
     utilisateurUpdationValidate(
       users.super,
@@ -225,19 +183,13 @@ test('utilisateurUpdationValidate incorrect users throw error', () => {
         role: 'entreprise',
         email: 'toto@gmail.com',
         administrationId: fakeAdministrationId,
-        entreprises: [{ id: newEntrepriseId('entrepriseId') }]
+        entreprises: [{ id: newEntrepriseId('entrepriseId') }],
       },
       undefined
     )
   ).toThrowErrorMatchingInlineSnapshot('"utilisateur incorrect"')
 
-  expect(() =>
-    utilisateurUpdationValidate(
-      users.super,
-      { role: 'super', email: 'toto@gmail.com', entreprises: [] },
-      undefined
-    )
-  ).toThrowErrorMatchingInlineSnapshot('"l\'utilisateur n\'existe pas"')
+  expect(() => utilisateurUpdationValidate(users.super, { role: 'super', email: 'toto@gmail.com', entreprises: [] }, undefined)).toThrowErrorMatchingInlineSnapshot('"l\'utilisateur n\'existe pas"')
 
   expect(() =>
     utilisateurUpdationValidate(
@@ -246,13 +198,13 @@ test('utilisateurUpdationValidate incorrect users throw error', () => {
         role: 'editeur',
         administrationId: 'aut-97300-01',
         email: 'toto@gmail.com',
-        entreprises: []
+        entreprises: [],
       },
       {
         ...testBlankUser,
         id: 'fakeId',
         role: 'admin',
-        administrationId: 'aut-97300-01'
+        administrationId: 'aut-97300-01',
       }
     )
   ).toThrowErrorMatchingInlineSnapshot('"droits insuffisants"')
@@ -263,13 +215,13 @@ test('utilisateurUpdationValidate incorrect users throw error', () => {
         role: 'admin',
         administrationId: 'aut-97300-01',
         email: 'toto@gmail.com',
-        entreprises: []
+        entreprises: [],
       },
       {
         ...testBlankUser,
         id: 'fakeId',
         role: 'editeur',
-        administrationId: 'aut-97300-01'
+        administrationId: 'aut-97300-01',
       }
     )
   ).toThrowErrorMatchingInlineSnapshot('"droits insuffisants"')
@@ -280,13 +232,13 @@ test('utilisateurUpdationValidate incorrect users throw error', () => {
         role: 'editeur',
         administrationId: 'aut-mrae-guyane-01',
         email: 'toto@gmail.com',
-        entreprises: []
+        entreprises: [],
       },
       {
         ...testBlankUser,
         id: 'fakeId',
         role: 'editeur',
-        administrationId: 'aut-97300-01'
+        administrationId: 'aut-97300-01',
       }
     )
   ).toThrowErrorMatchingInlineSnapshot('"droits insuffisants"')
@@ -297,33 +249,21 @@ test('utilisateurUpdationValidate incorrect users throw error', () => {
         role: 'editeur',
         administrationId: 'aut-97300-01',
         email: 'toto@gmail.com',
-        entreprises: []
+        entreprises: [],
       },
       {
         ...testBlankUser,
         id: 'fakeId',
         role: 'editeur',
-        administrationId: 'aut-mrae-guyane-01'
+        administrationId: 'aut-mrae-guyane-01',
       }
     )
   ).toThrowErrorMatchingInlineSnapshot('"droits insuffisants"')
 
-  expect(() =>
-    utilisateurUpdationValidate(
-      users.editeur,
-      { ...users.editeur, administrationId: 'dea-reunion-01', entreprises: [] },
-      { ...users.editeur }
-    )
-  ).toThrowErrorMatchingInlineSnapshot(
+  expect(() => utilisateurUpdationValidate(users.editeur, { ...users.editeur, administrationId: 'dea-reunion-01', entreprises: [] }, { ...users.editeur })).toThrowErrorMatchingInlineSnapshot(
     '"droits insuffisants pour modifier les administrations"'
   )
-  expect(() =>
-    utilisateurUpdationValidate(
-      users.lecteur,
-      { ...users.lecteur, administrationId: 'dea-reunion-01', entreprises: [] },
-      { ...users.lecteur }
-    )
-  ).toThrowErrorMatchingInlineSnapshot(
+  expect(() => utilisateurUpdationValidate(users.lecteur, { ...users.lecteur, administrationId: 'dea-reunion-01', entreprises: [] }, { ...users.lecteur })).toThrowErrorMatchingInlineSnapshot(
     '"droits insuffisants pour modifier les administrations"'
   )
 
@@ -332,23 +272,19 @@ test('utilisateurUpdationValidate incorrect users throw error', () => {
       users.entreprise,
       {
         ...users.entreprise,
-        entreprises: [{ id: newEntrepriseId('newEntreprise') }]
+        entreprises: [{ id: newEntrepriseId('newEntreprise') }],
       },
       { ...users.entreprise }
     )
-  ).toThrowErrorMatchingInlineSnapshot(
-    '"droits insuffisants pour modifier les entreprises"'
-  )
+  ).toThrowErrorMatchingInlineSnapshot('"droits insuffisants pour modifier les entreprises"')
   expect(() =>
     utilisateurUpdationValidate(
       users['bureau d’études'],
       {
         ...users['bureau d’études'],
-        entreprises: [{ id: newEntrepriseId('newEntreprise') }]
+        entreprises: [{ id: newEntrepriseId('newEntreprise') }],
       },
       { ...users['bureau d’études'] }
     )
-  ).toThrowErrorMatchingInlineSnapshot(
-    '"droits insuffisants pour modifier les entreprises"'
-  )
+  ).toThrowErrorMatchingInlineSnapshot('"droits insuffisants pour modifier les entreprises"')
 })
diff --git a/packages/api/src/business/validations/utilisateur-updation-validate.ts b/packages/api/src/business/validations/utilisateur-updation-validate.ts
index 2af1194e0..921e956a0 100644
--- a/packages/api/src/business/validations/utilisateur-updation-validate.ts
+++ b/packages/api/src/business/validations/utilisateur-updation-validate.ts
@@ -11,69 +11,37 @@ import {
   isEntrepriseOrBureauDEtude,
   isDefautRole,
   isSuperRole,
-  isRole
+  isRole,
 } from 'camino-common/src/roles.js'
-import {
-  canEditUtilisateur,
-  getAssignableRoles
-} from 'camino-common/src/permissions/utilisateurs.js'
+import { canEditUtilisateur, getAssignableRoles } from 'camino-common/src/permissions/utilisateurs.js'
 import { equalStringArrays } from '../../tools/index.js'
 import { emailCheck } from '../../tools/email-check.js'
 import { isAdministrationId } from 'camino-common/src/static/administrations.js'
 
-const isUser = (
-  utilisateur: Pick<
-    IUtilisateur,
-    'email' | 'role' | 'administrationId' | 'entreprises'
-  >
-): utilisateur is UserNotNull => {
+const isUser = (utilisateur: Pick<IUtilisateur, 'email' | 'role' | 'administrationId' | 'entreprises'>): utilisateur is UserNotNull => {
   if (!utilisateur.email || !emailCheck(utilisateur.email)) {
     return false
   }
   if (!isRole(utilisateur.role)) {
     return false
   }
-  if (
-    (isSuperRole(utilisateur.role) || isDefautRole(utilisateur.role)) &&
-    utilisateur.administrationId === undefined &&
-    utilisateur.entreprises?.length === 0
-  ) {
+  if ((isSuperRole(utilisateur.role) || isDefautRole(utilisateur.role)) && utilisateur.administrationId === undefined && utilisateur.entreprises?.length === 0) {
     return true
   }
 
-  if (
-    isAdministrationRole(utilisateur.role) &&
-    isAdministrationId(utilisateur.administrationId) &&
-    utilisateur.entreprises?.length === 0
-  ) {
+  if (isAdministrationRole(utilisateur.role) && isAdministrationId(utilisateur.administrationId) && utilisateur.entreprises?.length === 0) {
     return true
   }
-  if (
-    isEntrepriseOrBureauDetudeRole(utilisateur.role) &&
-    utilisateur.administrationId === undefined &&
-    (utilisateur.entreprises?.length ?? 0) > 0
-  ) {
+  if (isEntrepriseOrBureauDetudeRole(utilisateur.role) && utilisateur.administrationId === undefined && (utilisateur.entreprises?.length ?? 0) > 0) {
     return true
   }
 
   return false
 }
 
-const userIsCorrect = (
-  utilisateur: Pick<
-    IUtilisateur,
-    'email' | 'role' | 'administrationId' | 'entreprises'
-  >
-): boolean => isUser(utilisateur)
+const userIsCorrect = (utilisateur: Pick<IUtilisateur, 'email' | 'role' | 'administrationId' | 'entreprises'>): boolean => isUser(utilisateur)
 
-export const utilisateurUpdationValidate = (
-  user: User,
-  utilisateur: Pick<
-    IUtilisateur,
-    'email' | 'role' | 'administrationId' | 'entreprises'
-  >,
-  utilisateurOld: User
-) => {
+export const utilisateurUpdationValidate = (user: User, utilisateur: Pick<IUtilisateur, 'email' | 'role' | 'administrationId' | 'entreprises'>, utilisateurOld: User) => {
   if (!userIsCorrect(utilisateur)) {
     throw new Error('utilisateur incorrect')
   }
@@ -82,35 +50,23 @@ export const utilisateurUpdationValidate = (
     throw new Error("l'utilisateur n'existe pas")
   }
 
-  if (
-    !canEditUtilisateur(user, utilisateurOld) ||
-    (isUser(utilisateur) && !canEditUtilisateur(user, utilisateur))
-  ) {
+  if (!canEditUtilisateur(user, utilisateurOld) || (isUser(utilisateur) && !canEditUtilisateur(user, utilisateur))) {
     throw new Error('droits insuffisants')
   }
 
   if (!isSuper(user)) {
-    if (
-      utilisateur.role !== utilisateurOld.role &&
-      !getAssignableRoles(user).includes(utilisateur.role)
-    ) {
+    if (utilisateur.role !== utilisateurOld.role && !getAssignableRoles(user).includes(utilisateur.role)) {
       throw new Error('droits insuffisants pour modifier les rôles')
     }
 
-    if (
-      isAdministration(utilisateurOld) &&
-      utilisateur.administrationId !== utilisateurOld.administrationId
-    ) {
+    if (isAdministration(utilisateurOld) && utilisateur.administrationId !== utilisateurOld.administrationId) {
       throw new Error('droits insuffisants pour modifier les administrations')
     }
 
     if (
       !isAdministrationAdmin(user) &&
       isEntrepriseOrBureauDEtude(utilisateurOld) &&
-      !equalStringArrays(
-        utilisateurOld.entreprises.map(({ id }) => id).sort(),
-        (utilisateur.entreprises ?? []).map(({ id }) => id).sort()
-      )
+      !equalStringArrays(utilisateurOld.entreprises.map(({ id }) => id).sort(), (utilisateur.entreprises ?? []).map(({ id }) => id).sort())
     ) {
       throw new Error('droits insuffisants pour modifier les entreprises')
     }
diff --git a/packages/api/src/business/validations/utils/contenu-dates-check.test.ts b/packages/api/src/business/validations/utils/contenu-dates-check.test.ts
index 18f6fdcab..254222a81 100644
--- a/packages/api/src/business/validations/utils/contenu-dates-check.test.ts
+++ b/packages/api/src/business/validations/utils/contenu-dates-check.test.ts
@@ -1,17 +1,10 @@
 import { contenuDatesCheck } from './contenu-dates-check.js'
 import { describe, test, expect } from 'vitest'
-import {
-  sections,
-  sectionsSansElement,
-  contenuDatesValides,
-  contenuDatesInvalides
-} from '../__mocks__/contenu-dates-check-contenus.js'
+import { sections, sectionsSansElement, contenuDatesValides, contenuDatesInvalides } from '../__mocks__/contenu-dates-check-contenus.js'
 
 describe("vérifie la validité des propriétés dont le type est date d'une étape", () => {
   test("la sections n'a pas d'éléments", () => {
-    expect(contenuDatesCheck(sectionsSansElement, contenuDatesValides)).toEqual(
-      null
-    )
+    expect(contenuDatesCheck(sectionsSansElement, contenuDatesValides)).toEqual(null)
   })
 
   test('les propriétés de type date ne contiennent pas de valeur négative', () => {
@@ -19,8 +12,6 @@ describe("vérifie la validité des propriétés dont le type est date d'une ét
   })
 
   test("les dates n'ont pas de coordonnées de référence", () => {
-    expect(contenuDatesCheck(sections, contenuDatesInvalides)).toBe(
-      'le champ "date" n\'est pas une date valide'
-    )
+    expect(contenuDatesCheck(sections, contenuDatesInvalides)).toBe('le champ "date" n\'est pas une date valide')
   })
 })
diff --git a/packages/api/src/business/validations/utils/contenu-dates-check.ts b/packages/api/src/business/validations/utils/contenu-dates-check.ts
index 9bb8cee10..a6582f881 100644
--- a/packages/api/src/business/validations/utils/contenu-dates-check.ts
+++ b/packages/api/src/business/validations/utils/contenu-dates-check.ts
@@ -7,13 +7,9 @@ export const contenuDatesCheck = (sections: ISection[], contenu: IContenu) => {
       section.elements && contenu[section.id]
         ? section.elements.reduce((errors, element) => {
             if (element.type === 'date' && contenu[section.id][element.id]) {
-              const dateCheck = dateValidate(
-                contenu[section.id][element.id] as string
-              )
+              const dateCheck = dateValidate(contenu[section.id][element.id] as string)
               if (!dateCheck.valid) {
-                errors.push(
-                  `le champ "${element.id}" n'est pas une date valide`
-                )
+                errors.push(`le champ "${element.id}" n'est pas une date valide`)
               }
             }
 
diff --git a/packages/api/src/business/validations/utils/contenu-numbers-check.test.ts b/packages/api/src/business/validations/utils/contenu-numbers-check.test.ts
index 1ecef08b3..1fae14a5b 100644
--- a/packages/api/src/business/validations/utils/contenu-numbers-check.test.ts
+++ b/packages/api/src/business/validations/utils/contenu-numbers-check.test.ts
@@ -1,17 +1,10 @@
 import { contenuNumbersCheck } from './contenu-numbers-check.js'
-import {
-  contenuNumber,
-  contenuNumberNeg,
-  sections,
-  sectionsSansElement
-} from '../__mocks__/contenu-numbers-check-contenus.js'
+import { contenuNumber, contenuNumberNeg, sections, sectionsSansElement } from '../__mocks__/contenu-numbers-check-contenus.js'
 import { describe, test, expect } from 'vitest'
 
 describe('vérifie la validité du contenu de type nombre', () => {
   test("la sections n'a pas d'éléments", () => {
-    expect(contenuNumbersCheck(sectionsSansElement, contenuNumber)).toEqual(
-      null
-    )
+    expect(contenuNumbersCheck(sectionsSansElement, contenuNumber)).toEqual(null)
   })
 
   test('un champ de section dont le type est un nombre et qui a une valeur positive est validée', () => {
@@ -19,8 +12,6 @@ describe('vérifie la validité du contenu de type nombre', () => {
   })
 
   test('un champ de section dont le type est un nombre et qui a une valeur négative retourne une erreur', () => {
-    expect(contenuNumbersCheck(sections, contenuNumberNeg)).toEqual(
-      'le champ "number" ne peut pas avoir une valeur négative'
-    )
+    expect(contenuNumbersCheck(sections, contenuNumberNeg)).toEqual('le champ "number" ne peut pas avoir une valeur négative')
   })
 })
diff --git a/packages/api/src/business/validations/utils/contenu-numbers-check.ts b/packages/api/src/business/validations/utils/contenu-numbers-check.ts
index e9908d7ef..5187c7339 100644
--- a/packages/api/src/business/validations/utils/contenu-numbers-check.ts
+++ b/packages/api/src/business/validations/utils/contenu-numbers-check.ts
@@ -1,22 +1,12 @@
 import { IContenu, ISection } from '../../../types.js'
 
-export const contenuNumbersCheck = (
-  sections: ISection[],
-  contenu: IContenu
-) => {
+export const contenuNumbersCheck = (sections: ISection[], contenu: IContenu) => {
   const errors = sections.reduce((errors: string[], section) => {
     if (!section.elements) return errors
 
     return section.elements.reduce((errors, element) => {
-      if (
-        element.type === 'number' &&
-        contenu[section.id] &&
-        contenu[section.id][element.id] &&
-        contenu[section.id][element.id]! < 0
-      ) {
-        errors.push(
-          `le champ "${element.id}" ne peut pas avoir une valeur négative`
-        )
+      if (element.type === 'number' && contenu[section.id] && contenu[section.id][element.id] && contenu[section.id][element.id]! < 0) {
+        errors.push(`le champ "${element.id}" ne peut pas avoir une valeur négative`)
       }
 
       return errors
diff --git a/packages/api/src/business/validations/utils/heritage-contenu-validate.test.ts b/packages/api/src/business/validations/utils/heritage-contenu-validate.test.ts
index 05aabcd2d..4eec6f064 100644
--- a/packages/api/src/business/validations/utils/heritage-contenu-validate.test.ts
+++ b/packages/api/src/business/validations/utils/heritage-contenu-validate.test.ts
@@ -10,54 +10,31 @@ describe('vérifie la structure json de heritageContenu', () => {
     expect(heritageContenuValidate([], {})).toHaveLength(0)
     expect(heritageContenuValidate(null, {})).toHaveLength(0)
     expect(heritageContenuValidate([], null)).toHaveLength(0)
-    expect(
-      heritageContenuValidate(
-        [{ id: 'section', elements: [{ id: 'element' }] as ISectionElement[] }],
-        { section: { element: { actif: true } } }
-      )
-    ).toHaveLength(0)
-    expect(
-      heritageContenuValidate(
-        [{ id: 'section', elements: [{ id: 'element' }] as ISectionElement[] }],
-        { section: { element: { actif: false } } }
-      )
-    ).toHaveLength(0)
+    expect(heritageContenuValidate([{ id: 'section', elements: [{ id: 'element' }] as ISectionElement[] }], { section: { element: { actif: true } } })).toHaveLength(0)
+    expect(heritageContenuValidate([{ id: 'section', elements: [{ id: 'element' }] as ISectionElement[] }], { section: { element: { actif: false } } })).toHaveLength(0)
   })
 
   test('la structure n’est pas correcte car l’héritage est absent', () => {
-    expect(
-      heritageContenuValidate(
-        [{ id: 'section', elements: [{ id: 'element' }] as ISectionElement[] }],
-        null
-      )
-    ).toContain('la section "section" n’a pas d’héritage')
+    expect(heritageContenuValidate([{ id: 'section', elements: [{ id: 'element' }] as ISectionElement[] }], null)).toContain('la section "section" n’a pas d’héritage')
   })
 
   test('la structure n’est pas correcte car il y a une section manquante', () => {
-    expect(
-      heritageContenuValidate(
-        [{ id: 'section', elements: [{ id: 'element' }] as ISectionElement[] }],
-        {}
-      )
-    ).toContain('la section "section" n’a pas d’héritage')
+    expect(heritageContenuValidate([{ id: 'section', elements: [{ id: 'element' }] as ISectionElement[] }], {})).toContain('la section "section" n’a pas d’héritage')
   })
 
   test('la structure n’est pas correcte car il y a une section en trop', () => {
     expect(
       heritageContenuValidate([], {
-        section: { element: { actif: true } }
+        section: { element: { actif: true } },
       })
     ).toContain('la section "section" est inconnue')
   })
 
   test('la structure n’est pas correcte car il y a un element inconnu dans une section', () => {
     expect(
-      heritageContenuValidate(
-        [{ id: 'section', elements: [{ id: 'element' }] as ISectionElement[] }],
-        {
-          section: { element: { actif: true }, toto: { actif: true } }
-        }
-      )
+      heritageContenuValidate([{ id: 'section', elements: [{ id: 'element' }] as ISectionElement[] }], {
+        section: { element: { actif: true }, toto: { actif: true } },
+      })
     ).toContain('l’élement "toto" de la section "section" est inconnu')
   })
 
@@ -67,11 +44,11 @@ describe('vérifie la structure json de heritageContenu', () => {
         [
           {
             id: 'section',
-            elements: [{ id: 'element' }, { id: 'toto' }] as ISectionElement[]
-          }
+            elements: [{ id: 'element' }, { id: 'toto' }] as ISectionElement[],
+          },
         ],
         {
-          section: { element: { actif: true } }
+          section: { element: { actif: true } },
         }
       )
     ).toContain('l’élement "toto" de la section "section" n’a pas d’héritage')
@@ -79,29 +56,19 @@ describe('vérifie la structure json de heritageContenu', () => {
 
   test('la structure n’est pas correcte car il y a un champ en trop dans un élément', () => {
     expect(
-      heritageContenuValidate(
-        [{ id: 'section', elements: [{ id: 'element' }] as ISectionElement[] }],
-        {
-          // @ts-ignore
-          section: { element: { actif: true, toto: 1 } }
-        }
-      )
-    ).toContain(
-      'le champ "toto" de l’élement "element" de la section "section" est inconnu'
-    )
+      heritageContenuValidate([{ id: 'section', elements: [{ id: 'element' }] as ISectionElement[] }], {
+        // @ts-ignore
+        section: { element: { actif: true, toto: 1 } },
+      })
+    ).toContain('le champ "toto" de l’élement "element" de la section "section" est inconnu')
   })
 
   test('la structure n’est pas correcte car le champ actif d’un élément n’est pas un booléen', () => {
     expect(
-      heritageContenuValidate(
-        [{ id: 'section', elements: [{ id: 'element' }] as ISectionElement[] }],
-        {
-          // @ts-ignore
-          section: { element: { actif: 'toto' } }
-        }
-      )
-    ).toContain(
-      'le champ "actif" de l’élement "element" de la section "section" doit être un booléen'
-    )
+      heritageContenuValidate([{ id: 'section', elements: [{ id: 'element' }] as ISectionElement[] }], {
+        // @ts-ignore
+        section: { element: { actif: 'toto' } },
+      })
+    ).toContain('le champ "actif" de l’élement "element" de la section "section" doit être un booléen')
   })
 })
diff --git a/packages/api/src/business/validations/utils/heritage-contenu-validate.ts b/packages/api/src/business/validations/utils/heritage-contenu-validate.ts
index 99420593f..b306926ee 100644
--- a/packages/api/src/business/validations/utils/heritage-contenu-validate.ts
+++ b/packages/api/src/business/validations/utils/heritage-contenu-validate.ts
@@ -1,15 +1,9 @@
 import { ISection, IHeritageContenu } from '../../../types.js'
 
-export const heritageContenuValidate = (
-  sections?: ISection[] | null,
-  heritageContenu?: IHeritageContenu | null
-) => {
+export const heritageContenuValidate = (sections?: ISection[] | null, heritageContenu?: IHeritageContenu | null) => {
   const errors = [] as string[]
 
-  if (
-    (!heritageContenu || !Object.keys(heritageContenu).length) &&
-    !sections?.length
-  ) {
+  if ((!heritageContenu || !Object.keys(heritageContenu).length) && !sections?.length) {
     return errors
   }
 
@@ -25,19 +19,13 @@ export const heritageContenuValidate = (
         const heritageElement = heritageSection[element.id]
 
         if (!heritageElement) {
-          errors.push(
-            `l’élement "${element.id}" de la section "${section.id}" n’a pas d’héritage`
-          )
+          errors.push(`l’élement "${element.id}" de la section "${section.id}" n’a pas d’héritage`)
         } else {
           Object.keys(heritageElement).forEach(attribute => {
             if (attribute !== 'actif') {
-              errors.push(
-                `le champ "${attribute}" de l’élement "${element.id}" de la section "${section.id}" est inconnu`
-              )
+              errors.push(`le champ "${attribute}" de l’élement "${element.id}" de la section "${section.id}" est inconnu`)
             } else if (typeof heritageElement.actif !== 'boolean') {
-              errors.push(
-                `le champ "actif" de l’élement "${element.id}" de la section "${section.id}" doit être un booléen`
-              )
+              errors.push(`le champ "actif" de l’élement "${element.id}" de la section "${section.id}" doit être un booléen`)
             }
           })
         }
@@ -53,9 +41,7 @@ export const heritageContenuValidate = (
       } else {
         Object.keys(heritageContenu[sectionId]).forEach(elementId => {
           if (!section.elements?.find(e => e.id === elementId)) {
-            errors.push(
-              `l’élement "${elementId}" de la section "${sectionId}" est inconnu`
-            )
+            errors.push(`l’élement "${elementId}" de la section "${sectionId}" est inconnu`)
           }
         })
       }
diff --git a/packages/api/src/business/validations/utils/props-dates-check.ts b/packages/api/src/business/validations/utils/props-dates-check.ts
index cd4b53a1f..e62787db6 100644
--- a/packages/api/src/business/validations/utils/props-dates-check.ts
+++ b/packages/api/src/business/validations/utils/props-dates-check.ts
@@ -10,10 +10,7 @@ import { ITitreActivite, ITitreEtape } from '../../../types.js'
  *
  */
 
-export const propsDatesCheck = <T extends ITitreActivite | ITitreEtape>(
-  propsNames: [keyof T],
-  element: T
-) => {
+export const propsDatesCheck = <T extends ITitreActivite | ITitreEtape>(propsNames: [keyof T], element: T) => {
   const errors = propsNames.reduce((errors: string[], propId) => {
     if (element[propId]) {
       const dateCheck = dateValidate(element[propId] as unknown as string)
diff --git a/packages/api/src/business/validations/utils/props-numbers-check.ts b/packages/api/src/business/validations/utils/props-numbers-check.ts
index dfcd27172..3f8d141d6 100644
--- a/packages/api/src/business/validations/utils/props-numbers-check.ts
+++ b/packages/api/src/business/validations/utils/props-numbers-check.ts
@@ -1,9 +1,7 @@
 export const propsNumbersCheck = <T>(props: [keyof T], element: T) => {
   const errors = props.reduce((errors: string[], prop) => {
     if (element[prop] && (element[prop] as unknown as number) < 0) {
-      errors.push(
-        `le champ "${String(prop)}" ne peut pas avoir une valeur négative`
-      )
+      errors.push(`le champ "${String(prop)}" ne peut pas avoir une valeur négative`)
     }
 
     return errors
diff --git a/packages/api/src/config/logger.test.ts b/packages/api/src/config/logger.test.ts
index 620304f9b..1eb3df38b 100644
--- a/packages/api/src/config/logger.test.ts
+++ b/packages/api/src/config/logger.test.ts
@@ -1,10 +1,6 @@
 import { newDateFormated } from './logger.js'
 import { test, expect } from 'vitest'
 test('newDateFormated', () => {
-  expect(
-    newDateFormated(new Date('2020-06-02T13:35:11.366Z'))
-  ).toMatchInlineSnapshot(`"2020-06-02 13:35:11"`)
-  expect(
-    newDateFormated(new Date('2020-06-02T01:02:03.123Z'))
-  ).toMatchInlineSnapshot(`"2020-06-02 01:02:03"`)
+  expect(newDateFormated(new Date('2020-06-02T13:35:11.366Z'))).toMatchInlineSnapshot(`"2020-06-02 13:35:11"`)
+  expect(newDateFormated(new Date('2020-06-02T01:02:03.123Z'))).toMatchInlineSnapshot(`"2020-06-02 01:02:03"`)
 })
diff --git a/packages/api/src/config/logger.ts b/packages/api/src/config/logger.ts
index 203991781..54eb4bf39 100644
--- a/packages/api/src/config/logger.ts
+++ b/packages/api/src/config/logger.ts
@@ -1,7 +1,6 @@
 /* eslint no-console: 0 */
 
-const numberToDoubleCharString = (param: number): string =>
-  param.toString(10).padStart(2, '0')
+const numberToDoubleCharString = (param: number): string => param.toString(10).padStart(2, '0')
 // TODO 2022-07-13: move to common?
 export const newDateFormated = (date = new Date()): string => {
   const year = date.getFullYear()
@@ -11,35 +10,13 @@ export const newDateFormated = (date = new Date()): string => {
   const minute = numberToDoubleCharString(date.getMinutes())
   const seconds = numberToDoubleCharString(date.getSeconds())
 
-  return (
-    year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + seconds
-  )
+  return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + seconds
 }
 
 export const consoleOverride = (color = true) => {
-  console.info = (...args) =>
-    console.log(
-      newDateFormated(),
-      color ? ' [\x1b[32minfo\x1b[0m]' : ' [info]',
-      ...args
-    )
-  console.warn = (...args) =>
-    console.log(
-      newDateFormated(),
-      color ? ' [\x1b[33mwarn\x1b[0m]' : ' [warn]',
-      ...args
-    )
-  console.error = (...args) =>
-    console.log(
-      newDateFormated(),
-      color ? '[\x1b[31merror\x1b[0m]' : '[error]',
-      ...args
-    )
+  console.info = (...args) => console.log(newDateFormated(), color ? ' [\x1b[32minfo\x1b[0m]' : ' [info]', ...args)
+  console.warn = (...args) => console.log(newDateFormated(), color ? ' [\x1b[33mwarn\x1b[0m]' : ' [warn]', ...args)
+  console.error = (...args) => console.log(newDateFormated(), color ? '[\x1b[31merror\x1b[0m]' : '[error]', ...args)
   // TODO 2022-07-13 Not used in the application...
-  console.debug = (...args) =>
-    console.log(
-      newDateFormated(),
-      color ? '[\x1b[36mdebug\x1b[0m]' : '[debug]',
-      ...args
-    )
+  console.debug = (...args) => console.log(newDateFormated(), color ? '[\x1b[36mdebug\x1b[0m]' : '[debug]', ...args)
 }
diff --git a/packages/api/src/config/proj4.ts b/packages/api/src/config/proj4.ts
index 4e4ec409f..5dc59f528 100644
--- a/packages/api/src/config/proj4.ts
+++ b/packages/api/src/config/proj4.ts
@@ -4,10 +4,5 @@ import { sortedGeoSystemes } from 'camino-common/src/static/geoSystemes.js'
 export const geoSystemesInit = () => {
   // initialise les définitions proj4
   // utilisées dans /tools/geo-convert
-  proj4.defs(
-    sortedGeoSystemes.map(geoSysteme => [
-      `EPSG:${geoSysteme.id}`,
-      geoSysteme.definitionProj4
-    ])
-  )
+  proj4.defs(sortedGeoSystemes.map(geoSysteme => [`EPSG:${geoSysteme.id}`, geoSysteme.definitionProj4]))
 }
diff --git a/packages/api/src/database/init.ts b/packages/api/src/database/init.ts
index fdcfa67a9..884164768 100644
--- a/packages/api/src/database/init.ts
+++ b/packages/api/src/database/init.ts
@@ -6,13 +6,9 @@ import { daily } from '../business/daily.js'
 export const databaseInit = async () => {
   await knex.migrate.latest()
   await knex.table('administrations__titresTypes__titresStatuts').truncate()
-  await knex
-    .table('administrations__titresTypes__titresStatuts')
-    .insert(toDbATT())
+  await knex.table('administrations__titresTypes__titresStatuts').insert(toDbATT())
   await knex.table('administrations__titresTypes__etapesTypes').truncate()
-  await knex
-    .table('administrations__titresTypes__etapesTypes')
-    .insert(toDbATE())
+  await knex.table('administrations__titresTypes__etapesTypes').insert(toDbATE())
   if (process.env.CAMINO_STAGE) {
     // pas de await pour ne pas bloquer le démarrage de l’appli
     daily()
diff --git a/packages/api/src/database/models/_format/id-create.ts b/packages/api/src/database/models/_format/id-create.ts
index 0939c657f..ae8a4b5a5 100644
--- a/packages/api/src/database/models/_format/id-create.ts
+++ b/packages/api/src/database/models/_format/id-create.ts
@@ -1,8 +1,7 @@
 import cryptoRandomString from 'crypto-random-string'
 import { DemarcheId } from '../../../types.js'
 
-export const idGenerate = <T extends string = string>(): T =>
-  cryptoRandomString({ length: 24, type: 'alphanumeric' }) as T
+export const idGenerate = <T extends string = string>(): T => cryptoRandomString({ length: 24, type: 'alphanumeric' }) as T
 
 // TODO 2022-09-13 il faudrait ajouter un préfixe dédié aux démarche à l’id.
 // pour pouvoir utiliser « is » de Typescript et controler qu’on ne met pas n’importe quel string dans cette méthode
diff --git a/packages/api/src/database/models/_format/titre-etape-heritage.ts b/packages/api/src/database/models/_format/titre-etape-heritage.ts
index a06ef8812..64b2a91c9 100644
--- a/packages/api/src/database/models/_format/titre-etape-heritage.ts
+++ b/packages/api/src/database/models/_format/titre-etape-heritage.ts
@@ -12,11 +12,7 @@ const heritagePropsFormat = async (heritageProps: IHeritageProps) => {
         fields[propId] = { id: {} }
       }
 
-      const titreEtape = await titreEtapeGet(
-        heritageProps[propId].etapeId!,
-        { fields },
-        userSuper
-      )
+      const titreEtape = await titreEtapeGet(heritageProps[propId].etapeId!, { fields }, userSuper)
 
       heritageProps[propId].etape = titreEtape
     }
@@ -31,11 +27,7 @@ const heritageContenuFormat = async (heritageContenu: IHeritageContenu) => {
     if (heritageContenu[sectionId]) {
       for (const elementId of Object.keys(heritageContenu[sectionId])) {
         if (heritageContenu[sectionId][elementId].etapeId) {
-          const titreEtape = await titreEtapeGet(
-            heritageContenu[sectionId][elementId].etapeId!,
-            { fields },
-            userSuper
-          )
+          const titreEtape = await titreEtapeGet(heritageContenu[sectionId][elementId].etapeId!, { fields }, userSuper)
 
           heritageContenu[sectionId][elementId].etape = titreEtape
         }
diff --git a/packages/api/src/database/models/activites-types--documents-types.ts b/packages/api/src/database/models/activites-types--documents-types.ts
index 11a1eeb1f..9c89e22d0 100644
--- a/packages/api/src/database/models/activites-types--documents-types.ts
+++ b/packages/api/src/database/models/activites-types--documents-types.ts
@@ -14,8 +14,8 @@ class ActivitesTypesDocumentsTypes extends Model {
     properties: {
       activiteTypeId: { type: 'string', maxLength: 3 },
       documentTypeId: { type: 'string', maxLength: 3 },
-      optionnel: { type: ['boolean', 'null'] }
-    }
+      optionnel: { type: ['boolean', 'null'] },
+    },
   }
 
   public static idColumn = ['activiteTypeId', 'documentTypeId']
diff --git a/packages/api/src/database/models/activites-types--pays.ts b/packages/api/src/database/models/activites-types--pays.ts
index 648feb21c..9eec64834 100644
--- a/packages/api/src/database/models/activites-types--pays.ts
+++ b/packages/api/src/database/models/activites-types--pays.ts
@@ -13,8 +13,8 @@ class ActivitesTypesPays extends Model {
 
     properties: {
       activiteTypeId: { type: 'string', maxLength: 3 },
-      paysId: { type: 'string', maxLength: 3 }
-    }
+      paysId: { type: 'string', maxLength: 3 },
+    },
   }
 
   public static idColumn = ['activiteTypeId', 'paysId']
diff --git a/packages/api/src/database/models/activites-types--titres-types.ts b/packages/api/src/database/models/activites-types--titres-types.ts
index fe10b8ad6..66c4e3d89 100644
--- a/packages/api/src/database/models/activites-types--titres-types.ts
+++ b/packages/api/src/database/models/activites-types--titres-types.ts
@@ -12,8 +12,8 @@ class ActivitesTypesTitresTypes extends Model {
 
     properties: {
       activiteTypeId: { type: 'string', maxLength: 3 },
-      titreTypeId: { type: 'string', maxLength: 3 }
-    }
+      titreTypeId: { type: 'string', maxLength: 3 },
+    },
   }
 
   public static idColumn = ['activiteTypeId', 'titreTypeId']
diff --git a/packages/api/src/database/models/activites-types.ts b/packages/api/src/database/models/activites-types.ts
index 02a3f7852..3c54db394 100644
--- a/packages/api/src/database/models/activites-types.ts
+++ b/packages/api/src/database/models/activites-types.ts
@@ -22,8 +22,8 @@ class ActivitesTypes extends Model {
       frequenceId: { type: 'string', maxLength: 3 },
       dateDebut: { type: 'string' },
       delaiMois: { type: 'integer' },
-      ordre: { type: 'integer' }
-    }
+      ordre: { type: 'integer' },
+    },
   }
 
   static relationMappings = () => ({
@@ -34,10 +34,10 @@ class ActivitesTypes extends Model {
         from: 'activitesTypes.id',
         through: {
           from: 'activitesTypes__titresTypes.activiteTypeId',
-          to: 'activitesTypes__titresTypes.titreTypeId'
+          to: 'activitesTypes__titresTypes.titreTypeId',
         },
-        to: 'titresTypes.id'
-      }
+        to: 'titresTypes.id',
+      },
     },
 
     administrations: {
@@ -48,18 +48,18 @@ class ActivitesTypes extends Model {
         through: {
           from: 'administrations__activitesTypes.activiteTypeId',
           to: 'administrations__activitesTypes.administrationId',
-          extra: ['modificationInterdit', 'lectureInterdit']
+          extra: ['modificationInterdit', 'lectureInterdit'],
         },
-        to: 'administrations.id'
-      }
+        to: 'administrations.id',
+      },
     },
     activitesTypesPays: {
       relation: Model.HasManyRelation,
       modelClass: ActivitesTypesPays,
       join: {
         from: 'activitesTypes.id',
-        to: 'activitesTypes__pays.activiteTypeId'
-      }
+        to: 'activitesTypes__pays.activiteTypeId',
+      },
     },
     administrationsEmails: {
       relation: Model.ManyToManyRelation,
@@ -69,10 +69,10 @@ class ActivitesTypes extends Model {
         through: {
           from: 'administrations__activitesTypes__emails.activiteTypeId',
           to: 'administrations__activitesTypes__emails.administrationId',
-          extra: ['email']
+          extra: ['email'],
         },
-        to: 'administrations.id'
-      }
+        to: 'administrations.id',
+      },
     },
 
     documentsTypes: {
@@ -83,17 +83,17 @@ class ActivitesTypes extends Model {
         through: {
           from: 'activitesTypes__documentsTypes.activiteTypeId',
           to: 'activitesTypes__documentsTypes.documentTypeId',
-          extra: ['optionnel']
+          extra: ['optionnel'],
         },
-        to: 'documentsTypes.id'
-      }
-    }
+        to: 'documentsTypes.id',
+      },
+    },
   })
 
   public static modifiers: Modifiers = {
     orderAsc: builder => {
       builder.orderBy('activitesTypes.ordre', 'asc')
-    }
+    },
   }
 }
 
diff --git a/packages/api/src/database/models/administrations-activites-types-emails.ts b/packages/api/src/database/models/administrations-activites-types-emails.ts
index 3d3cc6e8a..93b80e2d6 100644
--- a/packages/api/src/database/models/administrations-activites-types-emails.ts
+++ b/packages/api/src/database/models/administrations-activites-types-emails.ts
@@ -2,8 +2,7 @@ import { Model } from 'objection'
 
 import { IAdministrationActiviteTypeEmail } from '../../types.js'
 
-interface AdministrationsActivitesTypesEmails
-  extends IAdministrationActiviteTypeEmail {}
+interface AdministrationsActivitesTypesEmails extends IAdministrationActiviteTypeEmail {}
 
 class AdministrationsActivitesTypesEmails extends Model {
   public static tableName = 'administrations__activitesTypes__emails'
@@ -15,8 +14,8 @@ class AdministrationsActivitesTypesEmails extends Model {
     properties: {
       administrationId: { type: 'string', maxLength: 64 },
       activiteTypeId: { type: 'string', maxLength: 3 },
-      email: { type: 'string' }
-    }
+      email: { type: 'string' },
+    },
   }
 
   public static idColumn = ['administrationId', 'activiteTypeId']
diff --git a/packages/api/src/database/models/administrations-activites-types.ts b/packages/api/src/database/models/administrations-activites-types.ts
index 58ceb9c7f..04ed33f86 100644
--- a/packages/api/src/database/models/administrations-activites-types.ts
+++ b/packages/api/src/database/models/administrations-activites-types.ts
@@ -15,8 +15,8 @@ class AdministrationsActivitesTypes extends Model {
       administrationId: { type: 'string', maxLength: 64 },
       activiteTypeId: { type: 'string', maxLength: 3 },
       lectureInterdit: { type: 'boolean' },
-      modificationInterdit: { type: 'boolean' }
-    }
+      modificationInterdit: { type: 'boolean' },
+    },
   }
 
   public static idColumn = ['administrationId', 'activiteTypeId']
diff --git a/packages/api/src/database/models/administrations-titres-types-etapes-types.ts b/packages/api/src/database/models/administrations-titres-types-etapes-types.ts
index ab7abfdd0..a4682fd28 100644
--- a/packages/api/src/database/models/administrations-titres-types-etapes-types.ts
+++ b/packages/api/src/database/models/administrations-titres-types-etapes-types.ts
@@ -3,22 +3,14 @@ import { IAdministrationTitreTypeEtapeType } from '../../types.js'
 import TitresTypes from './titres-types.js'
 import EtapesTypes from './etapes-types.js'
 
-interface AdministrationsTitresTypesEtapesTypes
-  extends IAdministrationTitreTypeEtapeType {}
+interface AdministrationsTitresTypesEtapesTypes extends IAdministrationTitreTypeEtapeType {}
 
 class AdministrationsTitresTypesEtapesTypes extends Model {
   public static tableName = 'administrations__titresTypes__etapesTypes'
 
   public static jsonSchema = {
     type: 'object',
-    required: [
-      'administrationId',
-      'titreTypeId',
-      'etapeTypeId',
-      'lectureInterdit',
-      'creationInterdit',
-      'modificationInterdit'
-    ],
+    required: ['administrationId', 'titreTypeId', 'etapeTypeId', 'lectureInterdit', 'creationInterdit', 'modificationInterdit'],
 
     properties: {
       administrationId: { type: 'string', maxLength: 64 },
@@ -26,8 +18,8 @@ class AdministrationsTitresTypesEtapesTypes extends Model {
       etapeTypeId: { type: 'string', maxLength: 3 },
       lectureInterdit: { type: 'boolean' },
       creationInterdit: { type: 'boolean' },
-      modificationInterdit: { type: 'boolean' }
-    }
+      modificationInterdit: { type: 'boolean' },
+    },
   }
 
   public static idColumn = ['administrationId', 'titreTypeId', 'etapeTypeId']
@@ -38,8 +30,8 @@ class AdministrationsTitresTypesEtapesTypes extends Model {
       modelClass: TitresTypes,
       join: {
         from: 'administrations__titresTypes__etapesTypes.titreTypeId',
-        to: 'titresTypes.id'
-      }
+        to: 'titresTypes.id',
+      },
     },
 
     etapeType: {
@@ -47,21 +39,15 @@ class AdministrationsTitresTypesEtapesTypes extends Model {
       modelClass: EtapesTypes,
       join: {
         from: 'administrations__titresTypes__etapesTypes.etapeTypeId',
-        to: 'etapesTypes.id'
-      }
-    }
+        to: 'etapesTypes.id',
+      },
+    },
   })
 
   public static modifiers: Modifiers = {
     orderAsc: builder => {
-      builder
-        .joinRelated('titreType.domaine')
-        .orderBy('titreType:domaine.id')
-        .joinRelated('titreType.type')
-        .orderBy('titreType:type.nom')
-        .joinRelated('etapeType')
-        .orderBy('etapeType.nom')
-    }
+      builder.joinRelated('titreType.domaine').orderBy('titreType:domaine.id').joinRelated('titreType.type').orderBy('titreType:type.nom').joinRelated('etapeType').orderBy('etapeType.nom')
+    },
   }
 }
 
diff --git a/packages/api/src/database/models/administrations-titres-types-titres-statuts.ts b/packages/api/src/database/models/administrations-titres-types-titres-statuts.ts
index ec5c062a2..61a80c10c 100644
--- a/packages/api/src/database/models/administrations-titres-types-titres-statuts.ts
+++ b/packages/api/src/database/models/administrations-titres-types-titres-statuts.ts
@@ -2,22 +2,14 @@ import { Model, Modifiers } from 'objection'
 import { IAdministrationTitreTypeTitreStatut } from '../../types.js'
 import TitresTypes from './titres-types.js'
 
-interface AdministrationsTitresTypesTitresStatuts
-  extends IAdministrationTitreTypeTitreStatut {}
+interface AdministrationsTitresTypesTitresStatuts extends IAdministrationTitreTypeTitreStatut {}
 
 class AdministrationsTitresTypesTitresStatuts extends Model {
   public static tableName = 'administrations__titresTypes__titresStatuts'
 
   public static jsonSchema = {
     type: 'object',
-    required: [
-      'administrationId',
-      'titreTypeId',
-      'titreStatutId',
-      'titresModificationInterdit',
-      'demarchesModificationInterdit',
-      'etapesModificationInterdit'
-    ],
+    required: ['administrationId', 'titreTypeId', 'titreStatutId', 'titresModificationInterdit', 'demarchesModificationInterdit', 'etapesModificationInterdit'],
 
     properties: {
       administrationId: { type: 'string', maxLength: 64 },
@@ -25,8 +17,8 @@ class AdministrationsTitresTypesTitresStatuts extends Model {
       titreStatutId: { type: 'string', maxLength: 3 },
       titresModificationInterdit: { type: 'boolean' },
       demarchesModificationInterdit: { type: 'boolean' },
-      etapesModificationInterdit: { type: 'boolean' }
-    }
+      etapesModificationInterdit: { type: 'boolean' },
+    },
   }
 
   public static idColumn = ['administrationId', 'titreTypeId', 'titreStatutId']
@@ -37,19 +29,15 @@ class AdministrationsTitresTypesTitresStatuts extends Model {
       modelClass: TitresTypes,
       join: {
         from: 'administrations__titresTypes__titresStatuts.titreTypeId',
-        to: 'titresTypes.id'
-      }
-    }
+        to: 'titresTypes.id',
+      },
+    },
   })
 
   public static modifiers: Modifiers = {
     orderAsc: builder => {
-      return builder
-        .joinRelated('titreType.domaine')
-        .orderBy('titreType:domaine.id')
-        .joinRelated('titreType.type')
-        .orderBy('titreType:type.nom')
-    }
+      return builder.joinRelated('titreType.domaine').orderBy('titreType:domaine.id').joinRelated('titreType.type').orderBy('titreType:type.nom')
+    },
   }
 }
 
diff --git a/packages/api/src/database/models/administrations.ts b/packages/api/src/database/models/administrations.ts
index 26e601089..13a6d7205 100644
--- a/packages/api/src/database/models/administrations.ts
+++ b/packages/api/src/database/models/administrations.ts
@@ -17,8 +17,8 @@ class Administrations extends Model {
     required: ['id'],
 
     properties: {
-      id: { type: 'string', maxLength: 64 }
-    }
+      id: { type: 'string', maxLength: 64 },
+    },
   }
 
   static relationMappings = () => ({
@@ -27,8 +27,8 @@ class Administrations extends Model {
       modelClass: AdministrationsTitresTypesTitresStatuts,
       join: {
         from: 'administrations.id',
-        to: 'administrations__titresTypes__titresStatuts.administrationId'
-      }
+        to: 'administrations__titresTypes__titresStatuts.administrationId',
+      },
     },
 
     titresTypesEtapesTypes: {
@@ -36,8 +36,8 @@ class Administrations extends Model {
       modelClass: AdministrationsTitresTypesEtapesTypes,
       join: {
         from: 'administrations.id',
-        to: 'administrations__titresTypes__etapesTypes.administrationId'
-      }
+        to: 'administrations__titresTypes__etapesTypes.administrationId',
+      },
     },
 
     utilisateurs: {
@@ -45,8 +45,8 @@ class Administrations extends Model {
       modelClass: Utilisateurs,
       join: {
         from: 'administrations.id',
-        to: 'utilisateurs.administrationId'
-      }
+        to: 'utilisateurs.administrationId',
+      },
     },
 
     activitesTypes: {
@@ -57,10 +57,10 @@ class Administrations extends Model {
         through: {
           from: 'administrations__activitesTypes.administrationId',
           to: 'administrations__activitesTypes.activiteTypeId',
-          extra: ['modificationInterdit', 'lectureInterdit']
+          extra: ['modificationInterdit', 'lectureInterdit'],
         },
-        to: 'activitesTypes.id'
-      }
+        to: 'activitesTypes.id',
+      },
     },
 
     activitesTypesEmails: {
@@ -71,11 +71,11 @@ class Administrations extends Model {
         through: {
           from: 'administrations__activitesTypes__emails.administrationId',
           to: 'administrations__activitesTypes__emails.activiteTypeId',
-          extra: ['email']
+          extra: ['email'],
         },
-        to: 'activitesTypes.id'
-      }
-    }
+        to: 'activitesTypes.id',
+      },
+    },
   })
 }
 
diff --git a/packages/api/src/database/models/caches.ts b/packages/api/src/database/models/caches.ts
index 3d549f74b..4c17e6149 100644
--- a/packages/api/src/database/models/caches.ts
+++ b/packages/api/src/database/models/caches.ts
@@ -13,8 +13,8 @@ class Caches extends Model {
 
     properties: {
       id: { type: 'string', maxLength: 128 },
-      valeur: { type: 'object' }
-    }
+      valeur: { type: 'object' },
+    },
   }
 }
 
diff --git a/packages/api/src/database/models/communes.ts b/packages/api/src/database/models/communes.ts
index ad5272626..a34d8d959 100644
--- a/packages/api/src/database/models/communes.ts
+++ b/packages/api/src/database/models/communes.ts
@@ -14,8 +14,8 @@ class Communes extends Model {
     properties: {
       id: { type: 'string', maxLength: 8 },
       nom: { type: 'string' },
-      departementId: { type: 'string' }
-    }
+      departementId: { type: 'string' },
+    },
   }
 }
 
diff --git a/packages/api/src/database/models/demarches-types.ts b/packages/api/src/database/models/demarches-types.ts
index 256af7027..2d980a19e 100644
--- a/packages/api/src/database/models/demarches-types.ts
+++ b/packages/api/src/database/models/demarches-types.ts
@@ -21,8 +21,8 @@ class DemarchesTypes extends Model {
       substances: { type: ['boolean', 'null'] },
       titulaires: { type: ['boolean', 'null'] },
       renouvelable: { type: ['boolean', 'null'] },
-      exception: { type: ['boolean', 'null'] }
-    }
+      exception: { type: ['boolean', 'null'] },
+    },
   }
 
   static relationMappings = () => ({
@@ -38,18 +38,18 @@ class DemarchesTypes extends Model {
           extra: {
             ordre: 'ordre',
             titreTypeId: 'titreTypeId',
-            sectionsSpecifiques: 'sections'
-          }
+            sectionsSpecifiques: 'sections',
+          },
         },
-        to: 'etapesTypes.id'
-      }
-    }
+        to: 'etapesTypes.id',
+      },
+    },
   })
 
   public static modifiers: Modifiers = {
     orderAsc: builder => {
       builder.orderBy('ordre', 'asc')
-    }
+    },
   }
 }
 
diff --git a/packages/api/src/database/models/documents-types.ts b/packages/api/src/database/models/documents-types.ts
index 6ce8c9617..4348001fd 100644
--- a/packages/api/src/database/models/documents-types.ts
+++ b/packages/api/src/database/models/documents-types.ts
@@ -15,8 +15,8 @@ class DocumentsTypes extends Model {
     properties: {
       id: { type: 'string', maxLength: 3 },
       nom: { type: 'string', maxLength: 128 },
-      description: { type: ['string', 'null'] }
-    }
+      description: { type: ['string', 'null'] },
+    },
   }
 
   static relationMappings = () => ({
@@ -28,11 +28,11 @@ class DocumentsTypes extends Model {
         through: {
           from: 'activitesTypes__documentsTypes.documentTypeId',
           to: 'activitesTypes__documentsTypes.activiteTypeId',
-          extra: ['optionnel']
+          extra: ['optionnel'],
         },
-        to: 'activitesTypes.id'
-      }
-    }
+        to: 'activitesTypes.id',
+      },
+    },
   })
 }
 
diff --git a/packages/api/src/database/models/documents.ts b/packages/api/src/database/models/documents.ts
index ccfa095d7..c6173df77 100644
--- a/packages/api/src/database/models/documents.ts
+++ b/packages/api/src/database/models/documents.ts
@@ -29,8 +29,8 @@ class Document extends Model {
       jorf: { type: ['string', 'null'] },
       nor: { type: ['string', 'null'] },
       publicLecture: { type: ['boolean', 'null'] },
-      entreprisesLecture: { type: ['boolean', 'null'] }
-    }
+      entreprisesLecture: { type: ['boolean', 'null'] },
+    },
   }
 
   static relationMappings = () => ({
@@ -39,8 +39,8 @@ class Document extends Model {
       modelClass: DocumentsTypes,
       join: {
         from: 'documents.typeId',
-        to: 'documentsTypes.id'
-      }
+        to: 'documentsTypes.id',
+      },
     },
 
     etape: {
@@ -48,8 +48,8 @@ class Document extends Model {
       modelClass: TitresEtapes,
       join: {
         from: 'documents.titreEtapeId',
-        to: 'titresEtapes.id'
-      }
+        to: 'titresEtapes.id',
+      },
     },
 
     activite: {
@@ -57,8 +57,8 @@ class Document extends Model {
       modelClass: TitresActivites,
       join: {
         from: 'documents.titreActiviteId',
-        to: 'titresActivites.id'
-      }
+        to: 'titresActivites.id',
+      },
     },
 
     entreprise: {
@@ -66,8 +66,8 @@ class Document extends Model {
       modelClass: Entreprises,
       join: {
         from: 'documents.entrepriseId',
-        to: 'entreprises.id'
-      }
+        to: 'entreprises.id',
+      },
     },
 
     // justificatifs
@@ -78,11 +78,11 @@ class Document extends Model {
         from: 'documents.id',
         through: {
           from: 'titresEtapesJustificatifs.documentId',
-          to: 'titresEtapesJustificatifs.titreEtapeId'
+          to: 'titresEtapesJustificatifs.titreEtapeId',
         },
-        to: 'titresEtapes.id'
-      }
-    }
+        to: 'titresEtapes.id',
+      },
+    },
   })
 
   public $formatDatabaseJson(json: Pojo): Pojo {
diff --git a/packages/api/src/database/models/domaines.ts b/packages/api/src/database/models/domaines.ts
index 9eb8fbfb1..7b0707bb0 100644
--- a/packages/api/src/database/models/domaines.ts
+++ b/packages/api/src/database/models/domaines.ts
@@ -15,8 +15,8 @@ class Domaines extends Model {
     properties: {
       id: { type: 'string', maxLength: 1 },
       nom: { type: 'string' },
-      ordre: { type: 'integer' }
-    }
+      ordre: { type: 'integer' },
+    },
   }
 
   static relationMappings = () => ({
@@ -25,9 +25,9 @@ class Domaines extends Model {
       modelClass: TitresTypes,
       join: {
         from: 'domaines.id',
-        to: 'titresTypes.domaineId'
-      }
-    }
+        to: 'titresTypes.domaineId',
+      },
+    },
 
     // ça pourrait servir, mais…
     // types: {
@@ -47,7 +47,7 @@ class Domaines extends Model {
   public static modifiers: Modifiers = {
     orderAsc: builder => {
       builder.orderBy('ordre', 'asc')
-    }
+    },
   }
 }
 
diff --git a/packages/api/src/database/models/entreprises-etablissements.ts b/packages/api/src/database/models/entreprises-etablissements.ts
index 1b2f733e0..41c62f81a 100644
--- a/packages/api/src/database/models/entreprises-etablissements.ts
+++ b/packages/api/src/database/models/entreprises-etablissements.ts
@@ -17,14 +17,14 @@ class EntreprisesEtablissements extends Model {
       nom: { type: ['string', 'null'] },
       legalSiret: { type: ['string', 'null'] },
       dateDebut: { type: 'string' },
-      dateFin: { type: ['string', 'null'] }
-    }
+      dateFin: { type: ['string', 'null'] },
+    },
   }
 
   public static modifiers: Modifiers = {
     orderDesc: builder => {
       builder.orderBy('dateDebut', 'desc')
-    }
+    },
   }
 }
 
diff --git a/packages/api/src/database/models/entreprises.ts b/packages/api/src/database/models/entreprises.ts
index 7b84fd184..5fb161266 100644
--- a/packages/api/src/database/models/entreprises.ts
+++ b/packages/api/src/database/models/entreprises.ts
@@ -31,8 +31,8 @@ class Entreprises extends Model {
       email: { type: ['string', 'null'] },
       telephone: { type: ['string', 'null'] },
       url: { type: ['string', 'null'] },
-      archive: { type: 'boolean' }
-    }
+      archive: { type: 'boolean' },
+    },
   }
 
   static relationMappings = () => ({
@@ -41,8 +41,8 @@ class Entreprises extends Model {
       modelClass: EntreprisesEtablissements,
       join: {
         from: 'entreprises.id',
-        to: 'entreprisesEtablissements.entrepriseId'
-      }
+        to: 'entreprisesEtablissements.entrepriseId',
+      },
     },
 
     utilisateurs: {
@@ -52,10 +52,10 @@ class Entreprises extends Model {
         from: 'entreprises.id',
         through: {
           from: 'utilisateurs__entreprises.entrepriseId',
-          to: 'utilisateurs__entreprises.utilisateurId'
+          to: 'utilisateurs__entreprises.utilisateurId',
         },
-        to: 'utilisateurs.id'
-      }
+        to: 'utilisateurs.id',
+      },
     },
 
     titulaireTitres: {
@@ -65,10 +65,10 @@ class Entreprises extends Model {
         from: 'entreprises.id',
         through: {
           from: 'titresTitulaires.entrepriseId',
-          to: 'titresTitulaires.titreEtapeId'
+          to: 'titresTitulaires.titreEtapeId',
         },
-        to: ref('titres.propsTitreEtapesIds:titulaires').castText()
-      }
+        to: ref('titres.propsTitreEtapesIds:titulaires').castText(),
+      },
     },
 
     amodiataireTitres: {
@@ -78,10 +78,10 @@ class Entreprises extends Model {
         from: 'entreprises.id',
         through: {
           from: 'titresAmodiataires.entrepriseId',
-          to: 'titresAmodiataires.titreEtapeId'
+          to: 'titresAmodiataires.titreEtapeId',
         },
-        to: ref('titres.propsTitreEtapesIds:amodiataires').castText()
-      }
+        to: ref('titres.propsTitreEtapesIds:amodiataires').castText(),
+      },
     },
 
     documents: {
@@ -89,9 +89,9 @@ class Entreprises extends Model {
       modelClass: Document,
       join: {
         from: 'entreprises.id',
-        to: 'documents.entrepriseId'
-      }
-    }
+        to: 'documents.entrepriseId',
+      },
+    },
   })
 
   public $parseJson(json: Pojo) {
@@ -102,7 +102,7 @@ class Entreprises extends Model {
 
     if (json.utilisateursIds) {
       json.utilisateurs = json.utilisateursIds.map((id: string) => ({
-        id
+        id,
       }))
 
       delete json.utilisateursIds
diff --git a/packages/api/src/database/models/etapes-types--justificatifs-types.ts b/packages/api/src/database/models/etapes-types--justificatifs-types.ts
index 662be15d3..60d663ad7 100644
--- a/packages/api/src/database/models/etapes-types--justificatifs-types.ts
+++ b/packages/api/src/database/models/etapes-types--justificatifs-types.ts
@@ -14,8 +14,8 @@ class EtapesTypesJustificatifsTypes extends Model {
       etapeTypeId: { type: 'string', maxLength: 3 },
       documentTypeId: { type: 'string', maxLength: 3 },
       optionnel: { type: 'boolean' },
-      description: { type: ['string', 'null'] }
-    }
+      description: { type: ['string', 'null'] },
+    },
   }
 
   public static idColumn = ['etapeTypeId', 'documentTypeId']
diff --git a/packages/api/src/database/models/etapes-types.ts b/packages/api/src/database/models/etapes-types.ts
index aa480e989..e66ff1aaa 100644
--- a/packages/api/src/database/models/etapes-types.ts
+++ b/packages/api/src/database/models/etapes-types.ts
@@ -24,8 +24,8 @@ class EtapesTypes extends Model {
       unique: { type: ['boolean', 'null'] },
       ordre: { type: 'integer' },
       publicLecture: { type: 'boolean' },
-      entreprisesLecture: { type: 'boolean' }
-    }
+      entreprisesLecture: { type: 'boolean' },
+    },
   }
 
   static relationMappings = () => ({
@@ -34,8 +34,8 @@ class EtapesTypes extends Model {
       modelClass: AdministrationsTitresTypesEtapesTypes,
       join: {
         from: 'etapesTypes.id',
-        to: 'administrations__titresTypes__etapesTypes.etapeTypeId'
-      }
+        to: 'administrations__titresTypes__etapesTypes.etapeTypeId',
+      },
     },
 
     justificatifsTypes: {
@@ -48,18 +48,18 @@ class EtapesTypes extends Model {
           to: 'etapesTypes__justificatifsTypes.documentTypeId',
           extra: {
             optionnel: 'optionnel',
-            descriptionSpecifique: 'description'
-          }
+            descriptionSpecifique: 'description',
+          },
         },
-        to: 'documentsTypes.id'
-      }
-    }
+        to: 'documentsTypes.id',
+      },
+    },
   })
 
   public static modifiers: Modifiers = {
     orderAsc: builder => {
       builder.orderBy('etapesTypes.ordre', 'asc')
-    }
+    },
   }
 }
 
diff --git a/packages/api/src/database/models/forets.ts b/packages/api/src/database/models/forets.ts
index 7dd33897b..8481f288e 100644
--- a/packages/api/src/database/models/forets.ts
+++ b/packages/api/src/database/models/forets.ts
@@ -12,8 +12,8 @@ class Forets extends Model {
 
     properties: {
       id: { type: 'string', maxLength: 30 },
-      nom: { type: 'string' }
-    }
+      nom: { type: 'string' },
+    },
   }
 }
 
diff --git a/packages/api/src/database/models/journaux.ts b/packages/api/src/database/models/journaux.ts
index 813ccd0d3..359d8d869 100644
--- a/packages/api/src/database/models/journaux.ts
+++ b/packages/api/src/database/models/journaux.ts
@@ -20,8 +20,8 @@ class Journaux extends Model {
       elementId: { type: 'string' },
       titreId: { type: 'string' },
       operation: { enum: ['create', 'update', 'delete'] },
-      differences: { type: ['object', 'null'] }
-    }
+      differences: { type: ['object', 'null'] },
+    },
   }
 
   static relationMappings = () => ({
@@ -30,17 +30,17 @@ class Journaux extends Model {
       modelClass: Utilisateurs,
       join: {
         from: 'journaux.utilisateurId',
-        to: 'utilisateurs.id'
-      }
+        to: 'utilisateurs.id',
+      },
     },
     titre: {
       relation: Model.BelongsToOneRelation,
       modelClass: Titres,
       join: {
         from: 'journaux.titreId',
-        to: 'titres.id'
-      }
-    }
+        to: 'titres.id',
+      },
+    },
   })
 
   async $beforeInsert(queryContext: any) {
diff --git a/packages/api/src/database/models/titres--titres.ts b/packages/api/src/database/models/titres--titres.ts
index 330bdcef0..6a55e811b 100644
--- a/packages/api/src/database/models/titres--titres.ts
+++ b/packages/api/src/database/models/titres--titres.ts
@@ -13,8 +13,8 @@ class TitresTitres extends Model {
     required: ['titreFromId', 'titreToId'],
     properties: {
       titreFromId: { type: 'string' },
-      titreToId: { type: 'string' }
-    }
+      titreToId: { type: 'string' },
+    },
   }
 
   public static idColumn = ['titreFromId', 'titreToId']
diff --git a/packages/api/src/database/models/titres-activites.ts b/packages/api/src/database/models/titres-activites.ts
index b5afb2e06..fbe145c11 100644
--- a/packages/api/src/database/models/titres-activites.ts
+++ b/packages/api/src/database/models/titres-activites.ts
@@ -16,14 +16,7 @@ class TitresActivites extends Model {
   public static jsonSchema = {
     type: 'object',
 
-    required: [
-      'titreId',
-      'date',
-      'typeId',
-      'activiteStatutId',
-      'periodeId',
-      'annee'
-    ],
+    required: ['titreId', 'date', 'typeId', 'activiteStatutId', 'periodeId', 'annee'],
 
     properties: {
       id: { type: 'string' },
@@ -37,8 +30,8 @@ class TitresActivites extends Model {
       activiteStatutId: { type: 'string', maxLength: 3 },
       periodeId: { type: 'integer' },
       annee: { type: 'integer' },
-      sections: {}
-    }
+      sections: {},
+    },
   }
 
   static relationMappings = () => ({
@@ -47,8 +40,8 @@ class TitresActivites extends Model {
       modelClass: ActivitesTypes,
       join: {
         from: 'titresActivites.typeId',
-        to: 'activitesTypes.id'
-      }
+        to: 'activitesTypes.id',
+      },
     },
 
     titre: {
@@ -56,8 +49,8 @@ class TitresActivites extends Model {
       modelClass: Titres,
       join: {
         from: 'titresActivites.titreId',
-        to: 'titres.id'
-      }
+        to: 'titres.id',
+      },
     },
 
     utilisateur: {
@@ -65,8 +58,8 @@ class TitresActivites extends Model {
       modelClass: Utilisateurs,
       join: {
         from: 'titresActivites.utilisateurId',
-        to: 'utilisateurs.id'
-      }
+        to: 'utilisateurs.id',
+      },
     },
 
     documentsTypes: {
@@ -74,8 +67,8 @@ class TitresActivites extends Model {
       modelClass: DocumentsTypes,
       join: {
         from: 'titresActivites.typeId',
-        to: 'activitesTypes__documentsTypes.activiteTypeId'
-      }
+        to: 'activitesTypes__documentsTypes.activiteTypeId',
+      },
     },
 
     documents: {
@@ -83,19 +76,15 @@ class TitresActivites extends Model {
       modelClass: Document,
       join: {
         from: 'titresActivites.id',
-        to: 'documents.titreActiviteId'
-      }
-    }
+        to: 'documents.titreActiviteId',
+      },
+    },
   })
 
   public static modifiers: Modifiers = {
     orderDesc: builder => {
-      builder
-        .joinRelated('type')
-        .orderByRaw(
-          "date desc, array_position(array['ann','tri','men']::varchar[], type.frequence_id), type.ordre"
-        )
-    }
+      builder.joinRelated('type').orderByRaw("date desc, array_position(array['ann','tri','men']::varchar[], type.frequence_id), type.ordre")
+    },
   }
 
   async $beforeInsert(context: QueryContext) {
@@ -103,9 +92,7 @@ class TitresActivites extends Model {
       this.id = idGenerate()
     }
     if (!this.slug && this.titreId && this.typeId && this.periodeId) {
-      this.slug = `${this.titreId}-${this.typeId}-${this.annee}-${this.periodeId
-        .toString()
-        .padStart(2, '0')}`
+      this.slug = `${this.titreId}-${this.typeId}-${this.annee}-${this.periodeId.toString().padStart(2, '0')}`
     }
 
     return super.$beforeInsert(context)
diff --git a/packages/api/src/database/models/titres-communes.ts b/packages/api/src/database/models/titres-communes.ts
index dd29e8e40..d3c14c382 100644
--- a/packages/api/src/database/models/titres-communes.ts
+++ b/packages/api/src/database/models/titres-communes.ts
@@ -12,8 +12,8 @@ class TitresCommunes extends Model {
 
     properties: {
       communeId: { type: 'string', maxLength: 8 },
-      titreEtapeId: { type: 'string', maxLength: 128 }
-    }
+      titreEtapeId: { type: 'string', maxLength: 128 },
+    },
   }
 
   public static idColumn = ['communeId', 'titreEtapeId']
diff --git a/packages/api/src/database/models/titres-demarches.ts b/packages/api/src/database/models/titres-demarches.ts
index 1e7027567..7377b7084 100644
--- a/packages/api/src/database/models/titres-demarches.ts
+++ b/packages/api/src/database/models/titres-demarches.ts
@@ -29,8 +29,8 @@ class TitresDemarches extends Model {
       statutId: { type: 'string', maxLength: 3 },
       ordre: { type: 'integer' },
       description: { type: ['string', 'null'] },
-      archive: { type: 'boolean' }
-    }
+      archive: { type: 'boolean' },
+    },
   }
 
   static relationMappings = () => ({
@@ -40,8 +40,8 @@ class TitresDemarches extends Model {
       join: {
         from: 'titresDemarches.typeId',
         to: 'demarchesTypes.id',
-        extra: { titreId: 'titresDemarches.titreId' }
-      }
+        extra: { titreId: 'titresDemarches.titreId' },
+      },
     },
 
     // todo: pourquoi ne pas utiliser la relation `titre` ?
@@ -52,10 +52,10 @@ class TitresDemarches extends Model {
         from: 'titresDemarches.titreId',
         through: {
           from: 'titres.id',
-          to: 'titres.typeId'
+          to: 'titres.typeId',
         },
-        to: 'titresTypes.id'
-      }
+        to: 'titresTypes.id',
+      },
     },
 
     titre: {
@@ -63,8 +63,8 @@ class TitresDemarches extends Model {
       modelClass: Titres,
       join: {
         from: 'titresDemarches.titreId',
-        to: 'titres.id'
-      }
+        to: 'titres.id',
+      },
     },
 
     etapes: {
@@ -72,8 +72,8 @@ class TitresDemarches extends Model {
       modelClass: TitresEtapes,
       join: {
         from: 'titresDemarches.id',
-        to: 'titresEtapes.titreDemarcheId'
-      }
+        to: 'titresEtapes.titreDemarcheId',
+      },
     },
 
     phase: {
@@ -81,8 +81,8 @@ class TitresDemarches extends Model {
       modelClass: TitresPhases,
       join: {
         from: 'titresDemarches.id',
-        to: 'titresPhases.titreDemarcheId'
-      }
+        to: 'titresPhases.titreDemarcheId',
+      },
     },
 
     parents: {
@@ -92,10 +92,10 @@ class TitresDemarches extends Model {
         from: 'titresDemarches.id',
         through: {
           from: 'titresDemarchesLiens.enfantTitreDemarcheId',
-          to: 'titresDemarchesLiens.parentTitreDemarcheId'
+          to: 'titresDemarchesLiens.parentTitreDemarcheId',
         },
-        to: 'titresDemarches.id'
-      }
+        to: 'titresDemarches.id',
+      },
     },
 
     enfants: {
@@ -105,17 +105,17 @@ class TitresDemarches extends Model {
         from: 'titresDemarches.id',
         through: {
           from: 'titresDemarchesLiens.parentTitreDemarcheId',
-          to: 'titresDemarchesLiens.enfantTitreDemarcheId'
+          to: 'titresDemarchesLiens.enfantTitreDemarcheId',
         },
-        to: 'titresDemarches.id'
-      }
-    }
+        to: 'titresDemarches.id',
+      },
+    },
   })
 
   public static modifiers: Modifiers = {
     orderDesc: builder => {
       builder.orderBy('ordre', 'desc')
-    }
+    },
   }
 
   async $beforeInsert(context: QueryContext) {
diff --git a/packages/api/src/database/models/titres-etapes-justificatifs.ts b/packages/api/src/database/models/titres-etapes-justificatifs.ts
index 9602fc754..04b85b5c7 100644
--- a/packages/api/src/database/models/titres-etapes-justificatifs.ts
+++ b/packages/api/src/database/models/titres-etapes-justificatifs.ts
@@ -14,8 +14,8 @@ class TitresEtapesJustificatifs extends Model {
 
     properties: {
       documentId: { type: 'string', maxLength: 128 },
-      titreEtapeId: { type: 'string', maxLength: 128 }
-    }
+      titreEtapeId: { type: 'string', maxLength: 128 },
+    },
   }
 
   public static idColumn = ['documentId', 'titreEtapeId']
@@ -26,17 +26,17 @@ class TitresEtapesJustificatifs extends Model {
       modelClass: TitresEtapes,
       join: {
         from: 'titresEtapesJustificatifs.titreEtapeId',
-        to: 'titresEtapes.id'
-      }
+        to: 'titresEtapes.id',
+      },
     },
     document: {
       relation: Model.BelongsToOneRelation,
       modelClass: Document,
       join: {
         from: 'titresEtapesJustificatifs.documentId',
-        to: 'documents.id'
-      }
-    }
+        to: 'documents.id',
+      },
+    },
   })
 }
 
diff --git a/packages/api/src/database/models/titres-etapes.ts b/packages/api/src/database/models/titres-etapes.ts
index c661490e2..9fb072816 100644
--- a/packages/api/src/database/models/titres-etapes.ts
+++ b/packages/api/src/database/models/titres-etapes.ts
@@ -2,10 +2,7 @@ import { Model, Pojo, QueryContext } from 'objection'
 
 import { ITitreEtape, ITitrePoint } from '../../types.js'
 
-import {
-  heritagePropsFormat,
-  heritageContenuFormat
-} from './_format/titre-etape-heritage.js'
+import { heritagePropsFormat, heritageContenuFormat } from './_format/titre-etape-heritage.js'
 import { idGenerate } from './_format/id-create.js'
 import EtapesTypes from './etapes-types.js'
 import TitresDemarches from './titres-demarches.js'
@@ -51,8 +48,8 @@ class TitresEtapes extends Model {
       substances: { type: ['array', 'null'] },
       secteursMaritime: { type: ['array', 'null'] },
       administrationsLocales: { type: ['array', 'null'] },
-      sdomZones: { type: ['array', 'null'] }
-    }
+      sdomZones: { type: ['array', 'null'] },
+    },
   }
 
   static relationMappings = () => ({
@@ -61,8 +58,8 @@ class TitresEtapes extends Model {
       modelClass: EtapesTypes,
       join: {
         from: 'titresEtapes.typeId',
-        to: 'etapesTypes.id'
-      }
+        to: 'etapesTypes.id',
+      },
     },
 
     demarche: {
@@ -70,8 +67,8 @@ class TitresEtapes extends Model {
       modelClass: TitresDemarches,
       join: {
         from: 'titresEtapes.titreDemarcheId',
-        to: 'titresDemarches.id'
-      }
+        to: 'titresDemarches.id',
+      },
     },
 
     points: {
@@ -79,8 +76,8 @@ class TitresEtapes extends Model {
       modelClass: TitresPoints,
       join: {
         from: 'titresEtapes.id',
-        to: 'titresPoints.titreEtapeId'
-      }
+        to: 'titresPoints.titreEtapeId',
+      },
     },
 
     titulaires: {
@@ -91,10 +88,10 @@ class TitresEtapes extends Model {
         through: {
           from: 'titresTitulaires.titreEtapeId',
           to: 'titresTitulaires.entrepriseId',
-          extra: ['operateur']
+          extra: ['operateur'],
         },
-        to: 'entreprises.id'
-      }
+        to: 'entreprises.id',
+      },
     },
 
     amodiataires: {
@@ -105,10 +102,10 @@ class TitresEtapes extends Model {
         through: {
           from: 'titresAmodiataires.titreEtapeId',
           to: 'titresAmodiataires.entrepriseId',
-          extra: ['operateur']
+          extra: ['operateur'],
         },
-        to: 'entreprises.id'
-      }
+        to: 'entreprises.id',
+      },
     },
 
     documents: {
@@ -116,8 +113,8 @@ class TitresEtapes extends Model {
       modelClass: Document,
       join: {
         from: 'titresEtapes.id',
-        to: 'documents.titreEtapeId'
-      }
+        to: 'documents.titreEtapeId',
+      },
     },
 
     justificatifs: {
@@ -127,10 +124,10 @@ class TitresEtapes extends Model {
         from: 'titresEtapes.id',
         through: {
           from: 'titresEtapesJustificatifs.titreEtapeId',
-          to: 'titresEtapesJustificatifs.documentId'
+          to: 'titresEtapesJustificatifs.documentId',
         },
-        to: 'documents.id'
-      }
+        to: 'documents.id',
+      },
     },
 
     communes: {
@@ -141,10 +138,10 @@ class TitresEtapes extends Model {
         through: {
           from: 'titresCommunes.titreEtapeId',
           to: 'titresCommunes.communeId',
-          extra: ['surface']
+          extra: ['surface'],
         },
-        to: 'communes.id'
-      }
+        to: 'communes.id',
+      },
     },
 
     forets: {
@@ -154,19 +151,19 @@ class TitresEtapes extends Model {
         from: 'titresEtapes.id',
         through: {
           from: 'titresForets.titreEtapeId',
-          to: 'titresForets.foretId'
+          to: 'titresForets.foretId',
         },
-        to: 'forets.id'
-      }
+        to: 'forets.id',
+      },
     },
     journaux: {
       relation: Model.HasManyRelation,
       modelClass: Journaux,
       join: {
         from: 'titresEtapes.id',
-        to: 'journaux.elementId'
-      }
-    }
+        to: 'journaux.elementId',
+      },
+    },
   })
 
   async $beforeInsert(context: QueryContext) {
@@ -229,11 +226,7 @@ class TitresEtapes extends Model {
 
     if (json.incertitudes) {
       Object.keys(json.incertitudes).forEach(id => {
-        if (
-          !json.incertitudes[id] ||
-          !(json[id] || json[id] === 0) ||
-          (Array.isArray(json[id]) && !json[id].length)
-        ) {
+        if (!json.incertitudes[id] || !(json[id] || json[id] === 0) || (Array.isArray(json[id]) && !json[id].length)) {
           delete json.incertitudes[id]
         }
       })
diff --git a/packages/api/src/database/models/titres-forets.ts b/packages/api/src/database/models/titres-forets.ts
index b5adcb5cc..f4ed6c3b2 100644
--- a/packages/api/src/database/models/titres-forets.ts
+++ b/packages/api/src/database/models/titres-forets.ts
@@ -12,8 +12,8 @@ class TitresForets extends Model {
 
     properties: {
       foretId: { type: 'string', maxLength: 8 },
-      titreEtapeId: { type: 'string', maxLength: 128 }
-    }
+      titreEtapeId: { type: 'string', maxLength: 128 },
+    },
   }
 
   public static idColumn = ['foretId', 'titreEtapeId']
diff --git a/packages/api/src/database/models/titres-incertitudes.ts b/packages/api/src/database/models/titres-incertitudes.ts
index d269a8484..d8f2cd43b 100644
--- a/packages/api/src/database/models/titres-incertitudes.ts
+++ b/packages/api/src/database/models/titres-incertitudes.ts
@@ -21,8 +21,8 @@ class TitresIncertitudes extends Model {
       substances: { type: ['null', 'boolean'] },
       titulaires: { type: ['null', 'boolean'] },
       amodiataires: { type: ['null', 'boolean'] },
-      administrations: { type: ['null', 'boolean'] }
-    }
+      administrations: { type: ['null', 'boolean'] },
+    },
   }
 
   public static idColumn = 'titreEtapeId'
diff --git a/packages/api/src/database/models/titres-phases.ts b/packages/api/src/database/models/titres-phases.ts
index 107355747..3fffd25fc 100644
--- a/packages/api/src/database/models/titres-phases.ts
+++ b/packages/api/src/database/models/titres-phases.ts
@@ -14,8 +14,8 @@ class TitresPhases extends Model {
       titreDemarcheId: { type: 'string', maxLength: 128 },
       phaseStatutId: { type: 'string', maxLength: 3 },
       dateDebut: { type: 'string' },
-      dateFin: { type: 'string' }
-    }
+      dateFin: { type: 'string' },
+    },
   }
 
   public static idColumn = 'titreDemarcheId'
diff --git a/packages/api/src/database/models/titres-points-references.ts b/packages/api/src/database/models/titres-points-references.ts
index 091411cc3..55b03b1ee 100644
--- a/packages/api/src/database/models/titres-points-references.ts
+++ b/packages/api/src/database/models/titres-points-references.ts
@@ -21,11 +21,11 @@ class TitresPointsReferences extends Model {
         type: 'object',
         properties: {
           x: { type: 'number' },
-          y: { type: 'number' }
-        }
+          y: { type: 'number' },
+        },
       },
-      opposable: { type: ['boolean', 'null'] }
-    }
+      opposable: { type: ['boolean', 'null'] },
+    },
   }
 
   public static jsonAttributes = []
@@ -33,7 +33,7 @@ class TitresPointsReferences extends Model {
   public static modifiers: Modifiers = {
     orderAsc: builder => {
       builder.orderBy('geoSystemeId', 'asc')
-    }
+    },
   }
 
   async $beforeInsert(context: QueryContext) {
diff --git a/packages/api/src/database/models/titres-points.ts b/packages/api/src/database/models/titres-points.ts
index 3e15ebb27..0ee4c7004 100644
--- a/packages/api/src/database/models/titres-points.ts
+++ b/packages/api/src/database/models/titres-points.ts
@@ -21,15 +21,15 @@ class TitresPoints extends Model {
       description: { type: ['string', 'null'] },
       coordonnees: {
         type: 'object',
-        properties: { x: { type: 'number' }, y: { type: 'number' } }
+        properties: { x: { type: 'number' }, y: { type: 'number' } },
       },
       groupe: { type: 'integer' },
       contour: { type: 'integer' },
       point: { type: 'integer' },
       lot: { type: ['integer', 'null'] },
       securite: { type: ['boolean', 'null'] },
-      subsidiaire: { type: ['boolean', 'null'] }
-    }
+      subsidiaire: { type: ['boolean', 'null'] },
+    },
   }
 
   static relationMappings = () => ({
@@ -38,37 +38,23 @@ class TitresPoints extends Model {
       modelClass: TitresPointsReferences,
       join: {
         from: 'titresPoints.id',
-        to: 'titresPointsReferences.titrePointId'
-      }
-    }
+        to: 'titresPointsReferences.titrePointId',
+      },
+    },
   })
 
   public static modifiers: Modifiers = {
     orderAsc: builder => {
-      builder.orderBy([
-        { column: 'groupe' },
-        { column: 'contour' },
-        { column: 'point' }
-      ])
-    }
+      builder.orderBy([{ column: 'groupe' }, { column: 'contour' }, { column: 'point' }])
+    },
   }
 
   async $beforeInsert(context: QueryContext) {
     if (!this.id) {
       this.id = idGenerate()
     }
-    if (
-      !this.slug &&
-      this.titreEtapeId &&
-      this.groupe &&
-      this.contour &&
-      this.point
-    ) {
-      this.slug = `${this.titreEtapeId}-g${this.groupe
-        .toString()
-        .padStart(2, '0')}-c${this.contour
-        .toString()
-        .padStart(2, '0')}-p${this.point.toString().padStart(3, '0')}`
+    if (!this.slug && this.titreEtapeId && this.groupe && this.contour && this.point) {
+      this.slug = `${this.titreEtapeId}-g${this.groupe.toString().padStart(2, '0')}-c${this.contour.toString().padStart(2, '0')}-p${this.point.toString().padStart(3, '0')}`
     }
 
     return super.$beforeInsert(context)
diff --git a/packages/api/src/database/models/titres-types--demarches-types-etapes-types-justificatifs-types.ts b/packages/api/src/database/models/titres-types--demarches-types-etapes-types-justificatifs-types.ts
index b5e7b5002..691a9548b 100644
--- a/packages/api/src/database/models/titres-types--demarches-types-etapes-types-justificatifs-types.ts
+++ b/packages/api/src/database/models/titres-types--demarches-types-etapes-types-justificatifs-types.ts
@@ -1,21 +1,14 @@
 import { Model } from 'objection'
 import { ITitreTypeDemarcheTypeEtapeTypeJustificatifType } from '../../types.js'
 
-interface TitresTypesDemarchesTypesEtapesTypesJustificatifsTypes
-  extends ITitreTypeDemarcheTypeEtapeTypeJustificatifType {}
+interface TitresTypesDemarchesTypesEtapesTypesJustificatifsTypes extends ITitreTypeDemarcheTypeEtapeTypeJustificatifType {}
 
 class TitresTypesDemarchesTypesEtapesTypesJustificatifsTypes extends Model {
-  public static tableName =
-    'titresTypes__demarchesTypes__etapesTypes__justificatifsT'
+  public static tableName = 'titresTypes__demarchesTypes__etapesTypes__justificatifsT'
 
   public static jsonSchema = {
     type: 'object',
-    required: [
-      'titreTypeId',
-      'demarcheTypeId',
-      'etapeTypeId',
-      'documentTypeId'
-    ],
+    required: ['titreTypeId', 'demarcheTypeId', 'etapeTypeId', 'documentTypeId'],
 
     properties: {
       titreTypeId: { type: 'string', maxLength: 3 },
@@ -23,16 +16,11 @@ class TitresTypesDemarchesTypesEtapesTypesJustificatifsTypes extends Model {
       etapeTypeId: { type: 'string', maxLength: 3 },
       documentTypeId: { type: 'string', maxLength: 3 },
       optionnel: { type: 'boolean' },
-      description: { type: ['string', 'null'] }
-    }
+      description: { type: ['string', 'null'] },
+    },
   }
 
-  public static idColumn = [
-    'titreTypeId',
-    'demarcheTypeId',
-    'etapeTypeId',
-    'documentTypeId'
-  ]
+  public static idColumn = ['titreTypeId', 'demarcheTypeId', 'etapeTypeId', 'documentTypeId']
 }
 
 export default TitresTypesDemarchesTypesEtapesTypesJustificatifsTypes
diff --git a/packages/api/src/database/models/titres-types--demarches-types-etapes-types.ts b/packages/api/src/database/models/titres-types--demarches-types-etapes-types.ts
index a0d51ec08..3fb324729 100644
--- a/packages/api/src/database/models/titres-types--demarches-types-etapes-types.ts
+++ b/packages/api/src/database/models/titres-types--demarches-types-etapes-types.ts
@@ -4,8 +4,7 @@ import EtapesTypes from './etapes-types.js'
 import DocumentsTypes from './documents-types.js'
 import DemarchesTypes from './demarches-types.js'
 
-interface TitresTypesDemarchesTypesEtapesTypes
-  extends ITitreTypeDemarcheTypeEtapeType {}
+interface TitresTypesDemarchesTypesEtapesTypes extends ITitreTypeDemarcheTypeEtapeType {}
 
 class TitresTypesDemarchesTypesEtapesTypes extends Model {
   public static tableName = 'titresTypes__demarchesTypes__etapesTypes'
@@ -19,8 +18,8 @@ class TitresTypesDemarchesTypesEtapesTypes extends Model {
       demarcheTypeId: { type: 'string', maxLength: 3 },
       etapeTypeId: { type: 'string', maxLength: 3 },
       ordre: { type: 'integer' },
-      sections: {}
-    }
+      sections: {},
+    },
   }
 
   public static idColumn = ['titreTypeId', 'demarcheTypeId', 'etapeTypeId']
@@ -31,8 +30,8 @@ class TitresTypesDemarchesTypesEtapesTypes extends Model {
       modelClass: EtapesTypes,
       join: {
         from: 'titresTypes__demarchesTypes__etapesTypes.etapeTypeId',
-        to: 'etapesTypes.id'
-      }
+        to: 'etapesTypes.id',
+      },
     },
 
     demarcheType: {
@@ -40,31 +39,27 @@ class TitresTypesDemarchesTypesEtapesTypes extends Model {
       modelClass: DemarchesTypes,
       join: {
         from: 'titresTypes__demarchesTypes__etapesTypes.demarcheTypeId',
-        to: 'demarchesTypes.id'
-      }
+        to: 'demarchesTypes.id',
+      },
     },
 
     justificatifsTypes: {
       relation: Model.ManyToManyRelation,
       modelClass: DocumentsTypes,
       join: {
-        from: [
-          'titresTypes__demarchesTypes__etapesTypes.titreTypeId',
-          'titresTypes__demarchesTypes__etapesTypes.demarcheTypeId',
-          'titresTypes__demarchesTypes__etapesTypes.etapeTypeId'
-        ],
+        from: ['titresTypes__demarchesTypes__etapesTypes.titreTypeId', 'titresTypes__demarchesTypes__etapesTypes.demarcheTypeId', 'titresTypes__demarchesTypes__etapesTypes.etapeTypeId'],
         through: {
           from: [
             'titresTypes__demarchesTypes__etapesTypes__justificatifsT.titreTypeId',
             'titresTypes__demarchesTypes__etapesTypes__justificatifsT.demarcheTypeId',
-            'titresTypes__demarchesTypes__etapesTypes__justificatifsT.etapeTypeId'
+            'titresTypes__demarchesTypes__etapesTypes__justificatifsT.etapeTypeId',
           ],
           to: 'titresTypes__demarchesTypes__etapesTypes__justificatifsT.documentTypeId',
-          extra: ['optionnel']
+          extra: ['optionnel'],
         },
-        to: 'documentsTypes.id'
-      }
-    }
+        to: 'documentsTypes.id',
+      },
+    },
   })
 }
 
diff --git a/packages/api/src/database/models/titres-types-types.ts b/packages/api/src/database/models/titres-types-types.ts
index 47eb7c92c..bce60b13b 100644
--- a/packages/api/src/database/models/titres-types-types.ts
+++ b/packages/api/src/database/models/titres-types-types.ts
@@ -15,8 +15,8 @@ class TitresTypesTypes extends Model {
     properties: {
       id: { type: 'string', maxLength: 3 },
       nom: { type: 'string' },
-      ordre: { type: 'integer' }
-    }
+      ordre: { type: 'integer' },
+    },
   }
 
   static relationMappings = () => ({
@@ -25,15 +25,15 @@ class TitresTypesTypes extends Model {
       modelClass: TitresTypes,
       join: {
         from: 'titresTypesTypes.id',
-        to: 'titresTypes.typeId'
-      }
-    }
+        to: 'titresTypes.typeId',
+      },
+    },
   })
 
   public static modifiers: Modifiers = {
     orderAsc: builder => {
       builder.orderBy('ordre', 'asc')
-    }
+    },
   }
 }
 
diff --git a/packages/api/src/database/models/titres-types.ts b/packages/api/src/database/models/titres-types.ts
index 6a180561a..083a37c23 100644
--- a/packages/api/src/database/models/titres-types.ts
+++ b/packages/api/src/database/models/titres-types.ts
@@ -19,8 +19,8 @@ class TitresTypes extends Model {
       typeId: { type: 'string', maxLength: 3 },
       domaineId: { type: 'string', maxLength: 3 },
       archive: { type: ['boolean', 'null'] },
-      contenuIds: { type: ['object', 'null'] }
-    }
+      contenuIds: { type: ['object', 'null'] },
+    },
   }
 
   static relationMappings = () => ({
@@ -29,8 +29,8 @@ class TitresTypes extends Model {
       modelClass: TitresTypesTypes,
       join: {
         from: 'titresTypes.typeId',
-        to: 'titresTypesTypes.id'
-      }
+        to: 'titresTypesTypes.id',
+      },
     },
 
     domaine: {
@@ -38,15 +38,15 @@ class TitresTypes extends Model {
       modelClass: Domaines,
       join: {
         from: 'titresTypes.domaineId',
-        to: 'domaines.id'
-      }
-    }
+        to: 'domaines.id',
+      },
+    },
   })
 
   public static modifiers: Modifiers = {
     orderAsc: builder => {
       builder.joinRelated('type').orderBy('type.ordre', 'asc')
-    }
+    },
   }
 }
 
diff --git a/packages/api/src/database/models/titres.ts b/packages/api/src/database/models/titres.ts
index 772ecba04..f31a3ed65 100644
--- a/packages/api/src/database/models/titres.ts
+++ b/packages/api/src/database/models/titres.ts
@@ -13,10 +13,7 @@ import { idGenerate } from './_format/id-create.js'
 import slugify from '@sindresorhus/slugify'
 import cryptoRandomString from 'crypto-random-string'
 import TitresActivites from './titres-activites.js'
-import {
-  getDomaineId,
-  getTitreTypeType
-} from 'camino-common/src/static/titresTypes.js'
+import { getDomaineId, getTitreTypeType } from 'camino-common/src/static/titresTypes.js'
 
 export interface DBTitre extends ITitre {
   archive: boolean
@@ -43,25 +40,25 @@ class Titres extends Model {
       propsTitreEtapesIds: { type: 'object' },
       coordonnees: {
         type: ['object', 'null'],
-        properties: { x: { type: 'number' }, y: { type: 'number' } }
+        properties: { x: { type: 'number' }, y: { type: 'number' } },
       },
       doublonTitreId: { type: ['string', 'null'] },
       archive: { type: 'boolean' },
-      references: { type: ['array', 'null'] }
-    }
+      references: { type: ['array', 'null'] },
+    },
   }
 
   static relationMappings = () => ({
     type: {
       relation: Model.BelongsToOneRelation,
       modelClass: Types,
-      join: { from: 'titres.typeId', to: 'titresTypes.id' }
+      join: { from: 'titres.typeId', to: 'titresTypes.id' },
     },
 
     demarches: {
       relation: Model.HasManyRelation,
       modelClass: TitresDemarches,
-      join: { from: 'titres.id', to: 'titresDemarches.titreId' }
+      join: { from: 'titres.id', to: 'titresDemarches.titreId' },
     },
 
     surfaceEtape: {
@@ -69,8 +66,8 @@ class Titres extends Model {
       modelClass: TitresEtapes,
       join: {
         from: ref('titres.propsTitreEtapesIds:surface').castText(),
-        to: 'titresEtapes.id'
-      }
+        to: 'titresEtapes.id',
+      },
     },
 
     substancesEtape: {
@@ -78,8 +75,8 @@ class Titres extends Model {
       modelClass: TitresEtapes,
       join: {
         from: ref('titres.propsTitreEtapesIds:substances').castText(),
-        to: 'titresEtapes.id'
-      }
+        to: 'titresEtapes.id',
+      },
     },
 
     points: {
@@ -87,8 +84,8 @@ class Titres extends Model {
       modelClass: TitresPoints,
       join: {
         from: ref('titres.propsTitreEtapesIds:points').castText(),
-        to: 'titresPoints.titreEtapeId'
-      }
+        to: 'titresPoints.titreEtapeId',
+      },
     },
 
     pointsEtape: {
@@ -96,8 +93,8 @@ class Titres extends Model {
       modelClass: TitresEtapes,
       join: {
         from: ref('titres.propsTitreEtapesIds:points').castText(),
-        to: 'titresEtapes.id'
-      }
+        to: 'titresEtapes.id',
+      },
     },
 
     titulaires: {
@@ -108,10 +105,10 @@ class Titres extends Model {
         through: {
           from: 'titresTitulaires.titreEtapeId',
           to: 'titresTitulaires.entrepriseId',
-          extra: ['operateur']
+          extra: ['operateur'],
         },
-        to: 'entreprises.id'
-      }
+        to: 'entreprises.id',
+      },
     },
 
     amodiataires: {
@@ -122,10 +119,10 @@ class Titres extends Model {
         through: {
           from: 'titresAmodiataires.titreEtapeId',
           to: 'titresAmodiataires.entrepriseId',
-          extra: ['operateur']
+          extra: ['operateur'],
         },
-        to: 'entreprises.id'
-      }
+        to: 'entreprises.id',
+      },
     },
 
     communes: {
@@ -137,10 +134,10 @@ class Titres extends Model {
         through: {
           from: 'titresCommunes.titreEtapeId',
           to: 'titresCommunes.communeId',
-          extra: ['surface']
+          extra: ['surface'],
         },
-        to: 'communes.id'
-      }
+        to: 'communes.id',
+      },
     },
 
     forets: {
@@ -151,22 +148,22 @@ class Titres extends Model {
         from: ref('titres.propsTitreEtapesIds:points').castText(),
         through: {
           from: 'titresForets.titreEtapeId',
-          to: 'titresForets.foretId'
+          to: 'titresForets.foretId',
         },
-        to: 'forets.id'
-      }
+        to: 'forets.id',
+      },
     },
     activites: {
       relation: Model.HasManyRelation,
       modelClass: TitresActivites,
-      join: { from: 'titres.id', to: 'titresActivites.titreId' }
+      join: { from: 'titres.id', to: 'titresActivites.titreId' },
     },
 
     doublonTitre: {
       relation: Model.BelongsToOneRelation,
       modelClass: Titres,
-      join: { from: 'titres.doublonTitreId', to: 'titres.id' }
-    }
+      join: { from: 'titres.doublonTitreId', to: 'titres.id' },
+    },
   })
 
   async $beforeInsert(context: QueryContext) {
@@ -175,9 +172,7 @@ class Titres extends Model {
     }
 
     if (!this.slug && this.typeId && this.nom) {
-      this.slug = `${getDomaineId(this.typeId)}-${getTitreTypeType(
-        this.typeId
-      )}-${slugify(this.nom)}-${cryptoRandomString({ length: 4 })}`
+      this.slug = `${getDomaineId(this.typeId)}-${getTitreTypeType(this.typeId)}-${slugify(this.nom)}-${cryptoRandomString({ length: 4 })}`
     }
 
     return super.$beforeInsert(context)
diff --git a/packages/api/src/database/models/utilisateurs--titres.ts b/packages/api/src/database/models/utilisateurs--titres.ts
index b6c08cc27..2b9f1c2d8 100644
--- a/packages/api/src/database/models/utilisateurs--titres.ts
+++ b/packages/api/src/database/models/utilisateurs--titres.ts
@@ -13,8 +13,8 @@ class UtilisateursTitres extends Model {
 
     properties: {
       utilisateurId: { type: 'string' },
-      titreId: { type: 'string' }
-    }
+      titreId: { type: 'string' },
+    },
   }
 
   public static idColumn = ['utilisateurId', 'titreId']
@@ -25,9 +25,9 @@ class UtilisateursTitres extends Model {
       modelClass: Utilisateurs,
       join: {
         from: 'utilisateurs__titres.utilisateurId',
-        to: 'utilisateurs.id'
-      }
-    }
+        to: 'utilisateurs.id',
+      },
+    },
   })
 }
 
diff --git a/packages/api/src/database/models/utilisateurs.ts b/packages/api/src/database/models/utilisateurs.ts
index 038a8bd94..d980c884f 100644
--- a/packages/api/src/database/models/utilisateurs.ts
+++ b/packages/api/src/database/models/utilisateurs.ts
@@ -22,8 +22,8 @@ class Utilisateurs extends Model {
       telephoneMobile: { type: ['string', 'null'] },
       role: { type: 'string' },
       preferences: { type: ['object', 'null'] },
-      administrationId: { type: ['string', 'null'] }
-    }
+      administrationId: { type: ['string', 'null'] },
+    },
   }
 
   static relationMappings = () => ({
@@ -34,10 +34,10 @@ class Utilisateurs extends Model {
         from: 'utilisateurs.id',
         through: {
           from: 'utilisateurs__entreprises.utilisateurId',
-          to: 'utilisateurs__entreprises.entrepriseId'
+          to: 'utilisateurs__entreprises.entrepriseId',
         },
-        to: 'entreprises.id'
-      }
+        to: 'entreprises.id',
+      },
     },
 
     administration: {
@@ -45,9 +45,9 @@ class Utilisateurs extends Model {
       modelClass: Administrations,
       join: {
         from: 'utilisateurs.administrationId',
-        to: 'administrations.id'
-      }
-    }
+        to: 'administrations.id',
+      },
+    },
   })
 
   public $parseJson(json: Pojo) {
diff --git a/packages/api/src/database/queries/_options.ts b/packages/api/src/database/queries/_options.ts
index ef4579c70..6a9dc2fda 100644
--- a/packages/api/src/database/queries/_options.ts
+++ b/packages/api/src/database/queries/_options.ts
@@ -1,17 +1,17 @@
 const points = {
-  graph: `references`
+  graph: `references`,
 }
 
 const titresDemarchesPhases = {
-  graph: 'statut'
+  graph: 'statut',
 }
 
 const demarchesTypes = {
-  graph: `[etapesTypes]`
+  graph: `[etapesTypes]`,
 }
 
 const titresTypes = {
-  graph: `[type]`
+  graph: `[type]`,
 }
 
 const documentsRelateTrue = ['type']
@@ -22,62 +22,51 @@ const documents = {
   update: {
     insertMissing: true,
     relate: documentsRelateTrue,
-    unrelate: documentsRelateFalse
-  }
+    unrelate: documentsRelateFalse,
+  },
 }
 
 const entreprisesEtablissements = {
-  update: { insertMissing: true }
+  update: { insertMissing: true },
 }
 
 const entreprisesRelateTrue = [] as string[]
-const entreprisesRelateFalse = [
-  ...documentsRelateFalse.map(k => `documents.${k}`)
-]
+const entreprisesRelateFalse = [...documentsRelateFalse.map(k => `documents.${k}`)]
 
 const entreprises = {
   graph: `[utilisateurs, etablissements(orderDesc), documents.${documents.graph}]`,
   update: {
     insertMissing: true,
     relate: entreprisesRelateTrue,
-    unrelate: entreprisesRelateTrue
-  }
+    unrelate: entreprisesRelateTrue,
+  },
 }
 
 const utilisateursRelateTrue = ['entreprises']
 
-const utilisateursRelateFalse = [
-  ...entreprisesRelateFalse.map(k => `entreprises.${k}`)
-]
+const utilisateursRelateFalse = [...entreprisesRelateFalse.map(k => `entreprises.${k}`)]
 
 const utilisateurs = {
   graph: `[administration.activitesTypes, entreprises.etablissements]`,
   update: {
     relate: utilisateursRelateTrue,
     unrelate: utilisateursRelateTrue,
-    noDelete: utilisateursRelateFalse
-  }
+    noDelete: utilisateursRelateFalse,
+  },
 }
 
 const utilisateursTitres = {
-  graph: `[utilisateur]`
+  graph: `[utilisateur]`,
 }
 
 const administrations = {
   graph: `[utilisateurs, titresTypesTitresStatuts, titresTypesEtapesTypes]`,
   update: {
-    insertMissing: true
-  }
+    insertMissing: true,
+  },
 }
 
-const titresEtapesRelateTrue = [
-  'type',
-  'titulaires',
-  'amodiataires',
-  'communes',
-  'forets',
-  'justificatifs'
-]
+const titresEtapesRelateTrue = ['type', 'titulaires', 'amodiataires', 'communes', 'forets', 'justificatifs']
 
 const titresEtapesRelateFalse = [
   'titulaires.etablissements',
@@ -87,7 +76,7 @@ const titresEtapesRelateFalse = [
   'amodiataires.etablissements',
   'amodiataires.utilisateurs',
   ...documentsRelateFalse.map(k => `documents.${k}`),
-  ...documentsRelateFalse.map(k => `justificatifs.${k}`)
+  ...documentsRelateFalse.map(k => `justificatifs.${k}`),
 ]
 
 const titresEtapes = {
@@ -107,25 +96,15 @@ const titresEtapes = {
     noInsert: titresEtapesRelateFalse,
     noUpdate: titresEtapesRelateFalse,
     noDelete: titresEtapesRelateFalse,
-    insertMissing: true
-  }
+    insertMissing: true,
+  },
 }
 
 const titresTypesRelateFalse = ['type']
 
-const titresDemarchesRelateTrue = [
-  'type',
-  'enfants',
-  'parents',
-  'phase',
-  ...titresEtapesRelateTrue.map(k => `etapes.${k}`)
-]
+const titresDemarchesRelateTrue = ['type', 'enfants', 'parents', 'phase', ...titresEtapesRelateTrue.map(k => `etapes.${k}`)]
 
-const titresDemarchesRelateFalse = [
-  'type.etapesTypes',
-  'titreType',
-  ...titresTypesRelateFalse.map(k => `titreType.${k}`)
-]
+const titresDemarchesRelateFalse = ['type.etapesTypes', 'titreType', ...titresTypesRelateFalse.map(k => `titreType.${k}`)]
 
 const titresDemarches = {
   graph: `[
@@ -143,19 +122,13 @@ const titresDemarches = {
     noInsert: titresDemarchesRelateFalse,
     noUpdate: titresDemarchesRelateFalse,
     noDelete: titresDemarchesRelateFalse,
-    insertMissing: true
-  }
+    insertMissing: true,
+  },
 }
 
-const activitesTypesRelateTrue = [
-  'titresTypes',
-  'administrations',
-  'documentsTypes'
-]
+const activitesTypesRelateTrue = ['titresTypes', 'administrations', 'documentsTypes']
 
-const activitesTypesRelateFalse = [
-  ...titresTypesRelateFalse.map(k => `type.titresTypes.${k}`)
-]
+const activitesTypesRelateFalse = [...titresTypesRelateFalse.map(k => `type.titresTypes.${k}`)]
 
 const activitesTypes = {
   graph: `[titresTypes, administrations, documentsTypes]`,
@@ -166,16 +139,13 @@ const activitesTypes = {
     noInsert: activitesTypesRelateFalse,
     noUpdate: activitesTypesRelateFalse,
     noDelete: activitesTypesRelateFalse,
-    insertMissing: false
-  }
+    insertMissing: false,
+  },
 }
 
 const titresActivitesRelateTrue = ['type', 'utilisateur']
 
-const titresActivitesRelateFalse = [
-  ...activitesTypesRelateFalse.map(k => `type.${k}`),
-  ...documents.update.relate.map(k => `documents.${k}`)
-]
+const titresActivitesRelateFalse = [...activitesTypesRelateFalse.map(k => `type.${k}`), ...documents.update.relate.map(k => `documents.${k}`)]
 
 const titresActivites = {
   graph: `[type.${activitesTypes.graph}, utilisateur]`,
@@ -185,19 +155,15 @@ const titresActivites = {
     noInsert: titresActivitesRelateFalse,
     noUpdate: titresActivitesRelateFalse,
     noDelete: titresActivitesRelateFalse,
-    insertMissing: true
-  }
+    insertMissing: true,
+  },
 }
 
 const domaines = {
-  graph: `[titresTypes(orderAsc).${titresTypes.graph}]`
+  graph: `[titresTypes(orderAsc).${titresTypes.graph}]`,
 }
 
-const titresRelateTrue = [
-  'type',
-  ...titresActivitesRelateTrue.map(k => `activites.${k}`),
-  ...titresDemarchesRelateTrue.map(k => `demarches.${k}`)
-]
+const titresRelateTrue = ['type', ...titresActivitesRelateTrue.map(k => `activites.${k}`), ...titresDemarchesRelateTrue.map(k => `demarches.${k}`)]
 
 const titresRelateFalse = [
   ...titresTypesRelateFalse.map(k => `type.${k}`),
@@ -217,7 +183,7 @@ const titresRelateFalse = [
   'amodiataires.utilisateurs',
   'surfaceEtape',
   ...titresActivitesRelateFalse.map(k => `activites.${k}`),
-  ...titresDemarchesRelateFalse.map(k => `demarches.${k}`)
+  ...titresDemarchesRelateFalse.map(k => `demarches.${k}`),
 ]
 
 const titres = {
@@ -237,12 +203,12 @@ const titres = {
     noInsert: titresRelateFalse,
     noUpdate: titresRelateFalse,
     noDelete: titresRelateFalse,
-    insertMissing: true
-  }
+    insertMissing: true,
+  },
 }
 
 const journaux = {
-  graph: `[utilisateur.${utilisateurs.graph}]`
+  graph: `[utilisateur.${utilisateurs.graph}]`,
 }
 
 export default {
@@ -262,5 +228,5 @@ export default {
   titresTypes,
   utilisateurs,
   utilisateursTitres,
-  journaux
+  journaux,
 }
diff --git a/packages/api/src/database/queries/_titres-filters.ts b/packages/api/src/database/queries/_titres-filters.ts
index e5c046ddf..242ae293b 100644
--- a/packages/api/src/database/queries/_titres-filters.ts
+++ b/packages/api/src/database/queries/_titres-filters.ts
@@ -5,29 +5,18 @@ import { stringSplit } from './_utils.js'
 import Titres from '../models/titres.js'
 import TitresDemarches from '../models/titres-demarches.js'
 import TitresActivites from '../models/titres-activites.js'
-import {
-  DepartementId,
-  departements as departementsStatic
-} from 'camino-common/src/static/departement.js'
-import {
-  RegionId,
-  regions as regionsStatic
-} from 'camino-common/src/static/region.js'
+import { DepartementId, departements as departementsStatic } from 'camino-common/src/static/departement.js'
+import { RegionId, regions as regionsStatic } from 'camino-common/src/static/region.js'
 import { isPaysId } from 'camino-common/src/static/pays.js'
-import {
-  FacadesMaritimes,
-  getSecteurs
-} from 'camino-common/src/static/facades.js'
+import { FacadesMaritimes, getSecteurs } from 'camino-common/src/static/facades.js'
 import { onlyUnique } from 'camino-common/src/typescript-tools.js'
 
 type ITitreTableName = 'titres' | 'titre'
 type ITitreRootName = 'titres' | 'titresDemarches' | 'titresActivites'
 
-const jointureFormat = (name: string, jointure: string) =>
-  name === 'titre' ? `titre.${jointure}` : jointure
+const jointureFormat = (name: string, jointure: string) => (name === 'titre' ? `titre.${jointure}` : jointure)
 
-const fieldFormat = (name: string, field: string) =>
-  name === 'titre' ? `titre:${field}` : field
+const fieldFormat = (name: string, field: string) => (name === 'titre' ? `titre:${field}` : field)
 
 // name: nom de la table ou de la relation sur laquelle s'effectue la requête
 // - 'titres' depuis la table 'titres'
@@ -49,7 +38,7 @@ export const titresFiltersQueryModify = (
     communes,
     departements,
     regions,
-    facadesMaritimes
+    facadesMaritimes,
   }: {
     ids?: string[] | null
     perimetre?: number[] | null
@@ -67,10 +56,7 @@ export const titresFiltersQueryModify = (
     regions?: RegionId[] | null
     facadesMaritimes?: FacadesMaritimes[] | null
   } = {},
-  q:
-    | QueryBuilder<Titres, Titres[]>
-    | QueryBuilder<TitresDemarches, TitresDemarches[]>
-    | QueryBuilder<TitresActivites, TitresActivites[]>,
+  q: QueryBuilder<Titres, Titres[]> | QueryBuilder<TitresDemarches, TitresDemarches[]> | QueryBuilder<TitresActivites, TitresActivites[]>,
   name: ITitreTableName = 'titres',
   root: ITitreRootName = 'titres'
 ) => {
@@ -80,10 +66,7 @@ export const titresFiltersQueryModify = (
 
   if (perimetre?.length === 4) {
     q.leftJoinRelated(jointureFormat(name, 'points'))
-    q.whereRaw(
-      `('(' || ? || ',' || ? || '),(' || ? || ',' || ? || ')')::box @> ?? `,
-      [...perimetre, 'points.coordonnees']
-    )
+    q.whereRaw(`('(' || ? || ',' || ? || '),(' || ? || ',' || ? || ')')::box @> ?? `, [...perimetre, 'points.coordonnees'])
     q.groupBy('titres.id')
   }
 
@@ -92,21 +75,11 @@ export const titresFiltersQueryModify = (
       q.leftJoinRelated('titre')
     }
 
-    q.whereRaw(
-      `SUBSTRING( ${name}.type_id, 3, 1 ) in (${domainesIds
-        .map(() => '?')
-        .join(',')})`,
-      domainesIds
-    )
+    q.whereRaw(`SUBSTRING( ${name}.type_id, 3, 1 ) in (${domainesIds.map(() => '?').join(',')})`, domainesIds)
   }
 
   if (typesIds) {
-    q.whereRaw(
-      `SUBSTRING( ${name}.type_id, 1, 2 ) in (${typesIds
-        .map(() => '?')
-        .join(',')})`,
-      typesIds
-    )
+    q.whereRaw(`SUBSTRING( ${name}.type_id, 1, 2 ) in (${typesIds.map(() => '?').join(',')})`, typesIds)
   }
 
   if (statutsIds) {
@@ -126,9 +99,7 @@ export const titresFiltersQueryModify = (
 
     q.where(b => {
       substancesIds.forEach(s => {
-        b.orWhereRaw(`?? @> '["${s}"]'::jsonb`, [
-          fieldFormat(name, 'substancesEtape.substances')
-        ])
+        b.orWhereRaw(`?? @> '["${s}"]'::jsonb`, [fieldFormat(name, 'substancesEtape.substances')])
       })
     })
   }
@@ -151,35 +122,20 @@ export const titresFiltersQueryModify = (
     }
 
     q.where(b => {
-      b.whereRaw(`LOWER(??) LIKE LOWER(?)`, [
-        `${name}.nom`,
-        `%${noms}%`
-      ]).orWhereRaw(`LOWER(??) LIKE LOWER(?)`, [`${name}.slug`, `%${noms}%`])
+      b.whereRaw(`LOWER(??) LIKE LOWER(?)`, [`${name}.nom`, `%${noms}%`]).orWhereRaw(`LOWER(??) LIKE LOWER(?)`, [`${name}.slug`, `%${noms}%`])
     })
   }
 
   if (entreprises) {
     const entreprisesArray = stringSplit(entreprises)
 
-    let fields = [
-      'titulaires:etablissements.nom',
-      'titulaires.nom',
-      'titulaires.id',
-      'amodiataires:etablissements.nom',
-      'amodiataires.nom',
-      'amodiataires.id'
-    ]
+    let fields = ['titulaires:etablissements.nom', 'titulaires.nom', 'titulaires.id', 'amodiataires:etablissements.nom', 'amodiataires.nom', 'amodiataires.id']
 
     if (name === 'titre') {
       fields = fields.map(field => fieldFormat(name, field))
     }
 
-    q.leftJoinRelated(
-      jointureFormat(
-        name,
-        '[titulaires.etablissements, amodiataires.etablissements]'
-      )
-    )
+    q.leftJoinRelated(jointureFormat(name, '[titulaires.etablissements, amodiataires.etablissements]'))
       .where(b => {
         entreprisesArray.forEach(s => {
           fields.forEach(f => {
@@ -189,17 +145,8 @@ export const titresFiltersQueryModify = (
       })
       .groupBy(`${root}.id`)
       .havingRaw(
-        `(${entreprisesArray
-          .map(
-            () =>
-              'count(*) filter (where ' +
-              fields.map(() => 'lower(??) like ?').join(' or ') +
-              ') > 0'
-          )
-          .join(') and (')})`,
-        entreprisesArray.flatMap(e =>
-          fields.flatMap(f => [f, `%${e.toLowerCase()}%`])
-        )
+        `(${entreprisesArray.map(() => 'count(*) filter (where ' + fields.map(() => 'lower(??) like ?').join(' or ') + ') > 0').join(') and (')})`,
+        entreprisesArray.flatMap(e => fields.flatMap(f => [f, `%${e.toLowerCase()}%`]))
       )
   }
 
@@ -226,54 +173,27 @@ export const titresFiltersQueryModify = (
   if (territoires) {
     const territoiresArray = stringSplit(territoires)
 
-    const departementIds: DepartementId[] = territoiresArray.flatMap(
-      territoire => {
-        const result: DepartementId[] = []
-        if (isPaysId(territoire)) {
-          result.push(
-            ...regionsStatic
-              .filter(({ paysId }) => paysId === territoire)
-              .flatMap(({ id }) =>
-                departementsStatic
-                  .filter(({ regionId }) => id === regionId)
-                  .map(({ id }) => id)
-              )
-          )
-        } else {
-          result.push(
-            ...regionsStatic
-              .filter(({ nom }) =>
-                nom.toLowerCase().includes(territoire.toLowerCase())
-              )
-              .flatMap(({ id }) =>
-                departementsStatic
-                  .filter(({ regionId }) => id === regionId)
-                  .map(({ id }) => id)
-              )
-          )
-
-          result.push(
-            ...departementsStatic
-              .filter(
-                ({ nom, id }) =>
-                  nom.toLowerCase().includes(territoire.toLowerCase()) ||
-                  id === territoire
-              )
-              .map(({ id }) => id)
-          )
-        }
-
-        return result
+    const departementIds: DepartementId[] = territoiresArray.flatMap(territoire => {
+      const result: DepartementId[] = []
+      if (isPaysId(territoire)) {
+        result.push(...regionsStatic.filter(({ paysId }) => paysId === territoire).flatMap(({ id }) => departementsStatic.filter(({ regionId }) => id === regionId).map(({ id }) => id)))
+      } else {
+        result.push(
+          ...regionsStatic
+            .filter(({ nom }) => nom.toLowerCase().includes(territoire.toLowerCase()))
+            .flatMap(({ id }) => departementsStatic.filter(({ regionId }) => id === regionId).map(({ id }) => id))
+        )
+
+        result.push(...departementsStatic.filter(({ nom, id }) => nom.toLowerCase().includes(territoire.toLowerCase()) || id === territoire).map(({ id }) => id))
       }
-    )
+
+      return result
+    })
 
     q.leftJoinRelated(jointureFormat(name, 'communes'))
       .where(b => {
         territoiresArray.forEach(t => {
-          b.orWhereRaw(`lower(??) like ?`, [
-            fieldFormat(name, 'communes.nom'),
-            `%${t.toLowerCase()}%`
-          ])
+          b.orWhereRaw(`lower(??) like ?`, [fieldFormat(name, 'communes.nom'), `%${t.toLowerCase()}%`])
           b.orWhereRaw(`?? = ?`, [fieldFormat(name, 'communes.id'), t])
         })
         b.orWhereIn(fieldFormat(name, 'communes.departementId'), departementIds)
@@ -286,10 +206,7 @@ export const titresFiltersQueryModify = (
     q.leftJoinRelated(`${jointureFormat(name, 'communes')} as communesFilter`)
       .where(b => {
         communesArray.forEach(t => {
-          b.orWhereRaw(`lower(??) like ?`, [
-            fieldFormat(name, 'communesFilter.nom'),
-            `%${t.toLowerCase()}%`
-          ])
+          b.orWhereRaw(`lower(??) like ?`, [fieldFormat(name, 'communesFilter.nom'), `%${t.toLowerCase()}%`])
           b.orWhereRaw(`?? = ?`, [fieldFormat(name, 'communesFilter.id'), t])
         })
       })
@@ -301,21 +218,12 @@ export const titresFiltersQueryModify = (
   }
 
   if (regions) {
-    departementIds.push(
-      ...departementsStatic
-        .filter(({ regionId }) => regions.includes(regionId))
-        .map(({ id }) => id)
-    )
+    departementIds.push(...departementsStatic.filter(({ regionId }) => regions.includes(regionId)).map(({ id }) => id))
   }
 
   if (departementIds.length > 0) {
-    q.leftJoinRelated(
-      `${jointureFormat(name, 'communes')} as departementsFilter`
-    )
-      .whereIn(
-        fieldFormat(name, 'departementsFilter.departementId'),
-        departementIds.filter(onlyUnique)
-      )
+    q.leftJoinRelated(`${jointureFormat(name, 'communes')} as departementsFilter`)
+      .whereIn(fieldFormat(name, 'departementsFilter.departementId'), departementIds.filter(onlyUnique))
       .groupBy(`${root}.id`)
   }
 
@@ -325,11 +233,6 @@ export const titresFiltersQueryModify = (
       q.leftJoinRelated('titre')
     }
     q.leftJoinRelated(jointureFormat(name, 'pointsEtape'))
-    q.whereRaw(
-      `?? \\?| array[${secteurs
-        .map(secteur => `E'${secteur.replaceAll("'", "\\'")}'`)
-        .join(',')}]`,
-      fieldFormat(name, 'pointsEtape.secteursMaritime')
-    )
+    q.whereRaw(`?? \\?| array[${secteurs.map(secteur => `E'${secteur.replaceAll("'", "\\'")}'`).join(',')}]`, fieldFormat(name, 'pointsEtape.secteursMaritime'))
   }
 }
diff --git a/packages/api/src/database/queries/_utils.test.ts b/packages/api/src/database/queries/_utils.test.ts
index 14fb9dc0b..62ec4b170 100644
--- a/packages/api/src/database/queries/_utils.test.ts
+++ b/packages/api/src/database/queries/_utils.test.ts
@@ -20,14 +20,8 @@ describe('sépare les groupes de mots', () => {
     ['Saint-Élie', ['Saint-Élie']],
     ['"Saint-Élie"', ['Saint-Élie']],
     ["'Saint-Élie'", ['Saint-Élie']],
-    [
-      'andalousite / sillimanite / kyanite - (cyanite - disthène)',
-      ['andalousite', 'sillimanite', 'kyanite', 'cyanite', 'disthène']
-    ],
-    [
-      'cendres volcaniques riches en silice',
-      ['cendres', 'volcaniques', 'riches', 'en', 'silice']
-    ],
+    ['andalousite / sillimanite / kyanite - (cyanite - disthène)', ['andalousite', 'sillimanite', 'kyanite', 'cyanite', 'disthène']],
+    ['cendres volcaniques riches en silice', ['cendres', 'volcaniques', 'riches', 'en', 'silice']],
     ['2013-0021-MI', ['2013-0021-MI']],
     ['\\2013-0021-MI', ['2013-0021-MI']],
     ['DEB 2013-0021-MI', ['DEB', '2013-0021-MI']],
@@ -38,11 +32,8 @@ describe('sépare les groupes de mots', () => {
     ['TEREGA (TIGF)', ['TEREGA', 'TIGF']],
     ['EnCore (E&P) Limited', ['EnCore', 'E&P', 'Limited']],
     ['nom1, nom2, nom3', ['nom1', 'nom2', 'nom3']],
-    ['nom1*nom2', ['nom1*nom2']]
-  ])(
-    'convertit la chaîne de caractères $input en liste de mots : $output',
-    (input, output) => {
-      expect(stringSplit(input)).toEqual(output)
-    }
-  )
+    ['nom1*nom2', ['nom1*nom2']],
+  ])('convertit la chaîne de caractères $input en liste de mots : $output', (input, output) => {
+    expect(stringSplit(input)).toEqual(output)
+  })
 })
diff --git a/packages/api/src/database/queries/administrations.ts b/packages/api/src/database/queries/administrations.ts
index 1c9d3291d..beea9967f 100644
--- a/packages/api/src/database/queries/administrations.ts
+++ b/packages/api/src/database/queries/administrations.ts
@@ -1,10 +1,4 @@
-import {
-  IAdministrationActiviteType,
-  IAdministrationActiviteTypeEmail,
-  IAdministrationTitreTypeEtapeType,
-  IAdministrationTitreTypeTitreStatut,
-  IFields
-} from '../../types.js'
+import { IAdministrationActiviteType, IAdministrationActiviteTypeEmail, IAdministrationTitreTypeEtapeType, IAdministrationTitreTypeTitreStatut, IFields } from '../../types.js'
 
 import graphBuild from './graph/build.js'
 import { fieldsFormat } from './graph/fields-format.js'
@@ -18,13 +12,8 @@ import AdministrationsActivitesTypes from '../models/administrations-activites-t
 import AdministrationsActivitesTypesEmails from '../models/administrations-activites-types-emails.js'
 import { User } from 'camino-common/src/roles'
 
-const administrationsQueryBuild = (
-  { fields }: { fields?: IFields },
-  user: User
-) => {
-  const graph = fields
-    ? graphBuild(fields, 'administrations', fieldsFormat)
-    : options.administrations.graph
+const administrationsQueryBuild = ({ fields }: { fields?: IFields }, user: User) => {
+  const graph = fields ? graphBuild(fields, 'administrations', fieldsFormat) : options.administrations.graph
 
   const q = Administrations.query().withGraphFetched(graph)
 
@@ -33,97 +22,45 @@ const administrationsQueryBuild = (
   return q
 }
 
-const administrationGet = async (
-  id: string,
-  { fields }: { fields?: IFields },
-  user: User
-) => {
+const administrationGet = async (id: string, { fields }: { fields?: IFields }, user: User) => {
   const q = administrationsQueryBuild({ fields }, user)
 
   return q.findById(id)
 }
 
-const administrationsGet = async (
-  { fields }: { fields?: IFields },
-  user: User
-) => {
+const administrationsGet = async ({ fields }: { fields?: IFields }, user: User) => {
   return administrationsQueryBuild({ fields }, user)
 }
 
-const administrationTitreTypeTitreStatutUpsert = async (
-  administrationTitreTypeTitreStatut: IAdministrationTitreTypeTitreStatut
-) =>
-  AdministrationsTitresTypesTitresStatuts.query().upsertGraph(
-    administrationTitreTypeTitreStatut,
-    { insertMissing: true }
-  )
-
-const administrationTitreTypeTitreStatutDelete = async (
-  administrationId: string,
-  titreTypeId: string,
-  statutTypeId: string
-) =>
-  AdministrationsTitresTypesTitresStatuts.query().deleteById([
-    administrationId,
-    titreTypeId,
-    statutTypeId
-  ])
-
-const administrationTitreTypeEtapeTypeUpsert = async (
-  administrationTitreTypeEtapeType: IAdministrationTitreTypeEtapeType
-) =>
-  AdministrationsTitresTypesEtapesTypes.query().upsertGraph(
-    administrationTitreTypeEtapeType,
-    { insertMissing: true }
-  )
-
-const administrationTitreTypeEtapeTypeDelete = async (
-  administrationId: string,
-  titreTypeId: string,
-  etapeTypeId: string
-) =>
-  AdministrationsTitresTypesEtapesTypes.query().deleteById([
-    administrationId,
-    titreTypeId,
-    etapeTypeId
-  ])
-
-const administrationActiviteTypeUpsert = async (
-  administrationActiviteType: IAdministrationActiviteType
-) =>
-  AdministrationsActivitesTypes.query().upsertGraph(
-    administrationActiviteType,
-    {
-      insertMissing: true
-    }
-  )
-
-const administrationActiviteTypeDelete = async (
-  administrationId: string,
-  ActiviteTypeId: string
-) =>
-  AdministrationsActivitesTypes.query().deleteById([
-    administrationId,
-    ActiviteTypeId
-  ])
-
-const administrationActiviteTypeEmailCreate = async (
-  administrationActiviteTypeEmail: IAdministrationActiviteTypeEmail
-) =>
-  AdministrationsActivitesTypesEmails.query().insertGraph(
-    administrationActiviteTypeEmail
-  )
-
-const administrationActiviteTypeEmailDelete = async (
-  administrationActiviteTypeEmail: IAdministrationActiviteTypeEmail
-) => {
-  const { activiteTypeId, administrationId, email } =
-    administrationActiviteTypeEmail
+const administrationTitreTypeTitreStatutUpsert = async (administrationTitreTypeTitreStatut: IAdministrationTitreTypeTitreStatut) =>
+  AdministrationsTitresTypesTitresStatuts.query().upsertGraph(administrationTitreTypeTitreStatut, { insertMissing: true })
+
+const administrationTitreTypeTitreStatutDelete = async (administrationId: string, titreTypeId: string, statutTypeId: string) =>
+  AdministrationsTitresTypesTitresStatuts.query().deleteById([administrationId, titreTypeId, statutTypeId])
+
+const administrationTitreTypeEtapeTypeUpsert = async (administrationTitreTypeEtapeType: IAdministrationTitreTypeEtapeType) =>
+  AdministrationsTitresTypesEtapesTypes.query().upsertGraph(administrationTitreTypeEtapeType, { insertMissing: true })
+
+const administrationTitreTypeEtapeTypeDelete = async (administrationId: string, titreTypeId: string, etapeTypeId: string) =>
+  AdministrationsTitresTypesEtapesTypes.query().deleteById([administrationId, titreTypeId, etapeTypeId])
+
+const administrationActiviteTypeUpsert = async (administrationActiviteType: IAdministrationActiviteType) =>
+  AdministrationsActivitesTypes.query().upsertGraph(administrationActiviteType, {
+    insertMissing: true,
+  })
+
+const administrationActiviteTypeDelete = async (administrationId: string, ActiviteTypeId: string) => AdministrationsActivitesTypes.query().deleteById([administrationId, ActiviteTypeId])
+
+const administrationActiviteTypeEmailCreate = async (administrationActiviteTypeEmail: IAdministrationActiviteTypeEmail) =>
+  AdministrationsActivitesTypesEmails.query().insertGraph(administrationActiviteTypeEmail)
+
+const administrationActiviteTypeEmailDelete = async (administrationActiviteTypeEmail: IAdministrationActiviteTypeEmail) => {
+  const { activiteTypeId, administrationId, email } = administrationActiviteTypeEmail
 
   return AdministrationsActivitesTypesEmails.query().delete().where({
     activite_type_id: activiteTypeId,
     administration_id: administrationId,
-    email
+    email,
   })
 }
 
@@ -137,5 +74,5 @@ export {
   administrationActiviteTypeUpsert,
   administrationActiviteTypeDelete,
   administrationActiviteTypeEmailCreate,
-  administrationActiviteTypeEmailDelete
+  administrationActiviteTypeEmailDelete,
 }
diff --git a/packages/api/src/database/queries/caches.ts b/packages/api/src/database/queries/caches.ts
index db9e1b542..7cfafa9f3 100644
--- a/packages/api/src/database/queries/caches.ts
+++ b/packages/api/src/database/queries/caches.ts
@@ -4,7 +4,6 @@ import { Caches } from '../models/caches.js'
 
 const cacheGet = async (id: ICacheId) => Caches.query().findById(id)
 
-const cacheUpsert = async (cache: ICache) =>
-  Caches.query().upsertGraph(cache, { insertMissing: true })
+const cacheUpsert = async (cache: ICache) => Caches.query().upsertGraph(cache, { insertMissing: true })
 
 export { cacheGet, cacheUpsert }
diff --git a/packages/api/src/database/queries/documents.ts b/packages/api/src/database/queries/documents.ts
index 2b09ccbae..ce8baa7c1 100644
--- a/packages/api/src/database/queries/documents.ts
+++ b/packages/api/src/database/queries/documents.ts
@@ -10,14 +10,8 @@ import Document from '../models/documents.js'
 import { documentsQueryModify } from './permissions/documents.js'
 import { User } from 'camino-common/src/roles'
 
-const documentGet = async (
-  documentId: string,
-  { fields }: { fields?: IFields },
-  user: User
-) => {
-  const graph = fields
-    ? graphBuild(fields, 'documents', fieldsFormat)
-    : options.documents.graph
+const documentGet = async (documentId: string, { fields }: { fields?: IFields }, user: User) => {
+  const graph = fields ? graphBuild(fields, 'documents', fieldsFormat) : options.documents.graph
 
   const q = Document.query().withGraphFetched(graph)
 
@@ -28,14 +22,8 @@ const documentGet = async (
   return document as IDocument
 }
 
-const documentsGet = async (
-  { ids, entreprisesIds }: { ids?: string[]; entreprisesIds?: string[] },
-  { fields }: { fields?: IFields },
-  user: User
-) => {
-  const graph = fields
-    ? graphBuild(fields, 'documents', fieldsFormat)
-    : options.documents.graph
+const documentsGet = async ({ ids, entreprisesIds }: { ids?: string[]; entreprisesIds?: string[] }, { fields }: { fields?: IFields }, user: User) => {
+  const graph = fields ? graphBuild(fields, 'documents', fieldsFormat) : options.documents.graph
 
   const q = Document.query().withGraphFetched(graph)
 
@@ -52,27 +40,16 @@ const documentsGet = async (
   return q
 }
 
-const documentCreate = async (document: IDocument, tr?: Transaction) =>
-  Document.query(tr)
-    .withGraphFetched(options.documents.graph)
-    .insertAndFetch(document)
+const documentCreate = async (document: IDocument, tr?: Transaction) => Document.query(tr).withGraphFetched(options.documents.graph).insertAndFetch(document)
 
-const documentUpsert = async (document: IDocument, tr?: Transaction) =>
-  Document.query(tr)
-    .upsertGraph(document, options.documents.update)
-    .withGraphFetched(options.documents.graph)
-    .returning('*')
+const documentUpsert = async (document: IDocument, tr?: Transaction) => Document.query(tr).upsertGraph(document, options.documents.update).withGraphFetched(options.documents.graph).returning('*')
 
 const documentUpdate = async (id: string, props: Partial<IDocument>) =>
   Document.query()
     .withGraphFetched(options.documents.graph)
     .patchAndFetchById(id, { ...props, id })
 
-const documentDelete = async (id: string, tr?: Transaction) =>
-  Document.query(tr)
-    .deleteById(id)
-    .withGraphFetched(options.documents.graph)
-    .returning('*')
+const documentDelete = async (id: string, tr?: Transaction) => Document.query(tr).deleteById(id).withGraphFetched(options.documents.graph).returning('*')
 
 const documentIdUpdate = async (documentOldId: string, document: IDocument) => {
   const knex = Document.knex()
@@ -84,11 +61,4 @@ const documentIdUpdate = async (documentOldId: string, document: IDocument) => {
   })
 }
 
-export {
-  documentGet,
-  documentsGet,
-  documentCreate,
-  documentUpdate,
-  documentDelete,
-  documentIdUpdate
-}
+export { documentGet, documentsGet, documentCreate, documentUpdate, documentDelete, documentIdUpdate }
diff --git a/packages/api/src/database/queries/entreprises-etablissements.ts b/packages/api/src/database/queries/entreprises-etablissements.ts
index 702900b79..31419c398 100644
--- a/packages/api/src/database/queries/entreprises-etablissements.ts
+++ b/packages/api/src/database/queries/entreprises-etablissements.ts
@@ -4,30 +4,13 @@ import options from './_options.js'
 
 import EntrepriseEtablissements from '../models/entreprises-etablissements.js'
 
-const entrepriseEtablissementGet = async (id: string) =>
-  EntrepriseEtablissements.query().findById(id)
+const entrepriseEtablissementGet = async (id: string) => EntrepriseEtablissements.query().findById(id)
 
-const entreprisesEtablissementsGet = async () =>
-  EntrepriseEtablissements.query()
+const entreprisesEtablissementsGet = async () => EntrepriseEtablissements.query()
 
-const entreprisesEtablissementsUpsert = async (
-  entreprisesEtablissements: IEntrepriseEtablissement[]
-) =>
-  EntrepriseEtablissements.query().upsertGraph(
-    entreprisesEtablissements,
-    options.entreprisesEtablissements.update
-  )
+const entreprisesEtablissementsUpsert = async (entreprisesEtablissements: IEntrepriseEtablissement[]) =>
+  EntrepriseEtablissements.query().upsertGraph(entreprisesEtablissements, options.entreprisesEtablissements.update)
 
-const entreprisesEtablissementsDelete = async (
-  entreprisesEtablissementsIds: string[]
-) =>
-  EntrepriseEtablissements.query()
-    .delete()
-    .whereIn('id', entreprisesEtablissementsIds)
+const entreprisesEtablissementsDelete = async (entreprisesEtablissementsIds: string[]) => EntrepriseEtablissements.query().delete().whereIn('id', entreprisesEtablissementsIds)
 
-export {
-  entrepriseEtablissementGet,
-  entreprisesEtablissementsGet,
-  entreprisesEtablissementsUpsert,
-  entreprisesEtablissementsDelete
-}
+export { entrepriseEtablissementGet, entreprisesEtablissementsGet, entreprisesEtablissementsUpsert, entreprisesEtablissementsDelete }
diff --git a/packages/api/src/database/queries/entreprises.ts b/packages/api/src/database/queries/entreprises.ts
index cae4616bc..9345a08d8 100644
--- a/packages/api/src/database/queries/entreprises.ts
+++ b/packages/api/src/database/queries/entreprises.ts
@@ -10,20 +10,13 @@ import { stringSplit } from './_utils.js'
 import Entreprises from '../models/entreprises.js'
 import { entreprisesQueryModify } from './permissions/entreprises.js'
 import { utilisateurGet } from './utilisateurs.js'
-import {
-  isSuper,
-  isEntreprise,
-  isAdministrationAdmin,
-  isAdministrationEditeur,
-  isBureauDEtudes,
-  User
-} from 'camino-common/src/roles.js'
+import { isSuper, isEntreprise, isAdministrationAdmin, isAdministrationEditeur, isBureauDEtudes, User } from 'camino-common/src/roles.js'
 import { canCreateTitre } from 'camino-common/src/permissions/titres.js'
 
 const entreprisesFiltersQueryModify = (
   {
     noms,
-    archive
+    archive,
   }: {
     noms?: string | null
     archive?: boolean | null
@@ -34,12 +27,7 @@ const entreprisesFiltersQueryModify = (
     const nomsArray = stringSplit(noms)
 
     if (nomsArray) {
-      const fields = [
-        'entreprises.id',
-        'entreprises.nom',
-        'etablissements.nom',
-        'etablissements.legalSiret'
-      ]
+      const fields = ['entreprises.id', 'entreprises.nom', 'etablissements.nom', 'etablissements.legalSiret']
 
       q.leftJoinRelated('etablissements')
       q.groupBy('entreprises.id')
@@ -59,13 +47,8 @@ const entreprisesFiltersQueryModify = (
   }
 }
 
-const entreprisesQueryBuild = (
-  { fields }: { fields?: IFields },
-  user: User
-) => {
-  const graph = fields
-    ? graphBuild(fields, 'entreprises', fieldsFormat)
-    : options.entreprises.graph
+const entreprisesQueryBuild = ({ fields }: { fields?: IFields }, user: User) => {
+  const graph = fields ? graphBuild(fields, 'entreprises', fieldsFormat) : options.entreprises.graph
 
   const q = Entreprises.query().withGraphFetched(graph)
 
@@ -77,7 +60,7 @@ const entreprisesQueryBuild = (
 const entreprisesCount = async (
   {
     noms,
-    archive
+    archive,
   }: {
     noms?: string | null
     archive?: boolean | null
@@ -93,11 +76,7 @@ const entreprisesCount = async (
   return q.resultSize()
 }
 
-const entrepriseGet = async (
-  id: string,
-  { fields }: { fields?: IFields },
-  user: User
-) => {
+const entrepriseGet = async (id: string, { fields }: { fields?: IFields }, user: User) => {
   const q = entreprisesQueryBuild({ fields }, user)
 
   return (await q.findById(id)) as IEntreprise
@@ -110,7 +89,7 @@ const entreprisesGet = async (
     ordre,
     colonne,
     noms,
-    archive
+    archive,
   }: {
     page?: number | null
     intervalle?: number | null
@@ -152,24 +131,13 @@ const entreprisesGet = async (
   return q
 }
 
-const entreprisesUpsert = async (entreprises: IEntreprise[]) =>
-  Entreprises.query()
-    .withGraphFetched(options.entreprises.graph)
-    .upsertGraph(entreprises, options.entreprises.update)
+const entreprisesUpsert = async (entreprises: IEntreprise[]) => Entreprises.query().withGraphFetched(options.entreprises.graph).upsertGraph(entreprises, options.entreprises.update)
 
-const entrepriseUpsert = async (entreprise: IEntreprise) =>
-  Entreprises.query()
-    .withGraphFetched(options.entreprises.graph)
-    .upsertGraph(entreprise, options.entreprises.update)
-    .returning('*')
+const entrepriseUpsert = async (entreprise: IEntreprise) => Entreprises.query().withGraphFetched(options.entreprises.graph).upsertGraph(entreprise, options.entreprises.update).returning('*')
 
-const entrepriseDelete = async (id: string) =>
-  Entreprises.query().deleteById(id).first().returning('*')
+const entrepriseDelete = async (id: string) => Entreprises.query().deleteById(id).first().returning('*')
 
-const titreDemandeEntreprisesGet = async (
-  { fields }: { fields?: IFields },
-  user: User
-) => {
+const titreDemandeEntreprisesGet = async ({ fields }: { fields?: IFields }, user: User) => {
   if (!user) return []
 
   if (isSuper(user)) {
@@ -183,11 +151,7 @@ const titreDemandeEntreprisesGet = async (
   }
 
   if (isEntreprise(user) || isBureauDEtudes(user)) {
-    const utilisateur = await utilisateurGet(
-      user.id,
-      { fields: { entreprises: fields ?? { id: {} } } },
-      user
-    )
+    const utilisateur = await utilisateurGet(user.id, { fields: { entreprises: fields ?? { id: {} } } }, user)
 
     if (!utilisateur || !utilisateur.entreprises) return []
 
@@ -197,12 +161,4 @@ const titreDemandeEntreprisesGet = async (
   return []
 }
 
-export {
-  entrepriseGet,
-  entreprisesGet,
-  entreprisesCount,
-  entreprisesUpsert,
-  entrepriseUpsert,
-  entrepriseDelete,
-  titreDemandeEntreprisesGet
-}
+export { entrepriseGet, entreprisesGet, entreprisesCount, entreprisesUpsert, entrepriseUpsert, entrepriseDelete, titreDemandeEntreprisesGet }
diff --git a/packages/api/src/database/queries/graph/build.ts b/packages/api/src/database/queries/graph/build.ts
index c73c0f7c0..386de1dd1 100644
--- a/packages/api/src/database/queries/graph/build.ts
+++ b/packages/api/src/database/queries/graph/build.ts
@@ -41,16 +41,10 @@ const fieldsToArray = (fields: IFields, format: IFieldsFormat) => {
 // - parent: (string) le nom du parent
 // - format: (function)
 // out: string "[cle1, cle2.[cle3, cle4]]"
-const fieldsToString = (
-  fields: IFields,
-  parent: string,
-  format: IFieldsFormat
-) => {
+const fieldsToString = (fields: IFields, parent: string, format: IFieldsFormat) => {
   const fieldsArray = fieldsToArray(format(fields, parent), format)
 
-  return fieldsArray.length > 1
-    ? `[${fieldsArray.join(', ')}]`
-    : fieldsArray.toString()
+  return fieldsArray.length > 1 ? `[${fieldsArray.join(', ')}]` : fieldsArray.toString()
 }
 
 // optimise la requête Sql en demandant uniquement les champs
@@ -62,11 +56,7 @@ const fieldsToString = (
 // out: string de graph pour la requête avec objection
 
 // TODO: à refactoriser. est-ce que le paramètre root sert encore à quelque chose ?
-const graphBuild = (
-  fields: IFields,
-  root = 'root',
-  format: IFieldsFormat = (fields: IFields) => fields
-) => {
+const graphBuild = (fields: IFields, root = 'root', format: IFieldsFormat = (fields: IFields) => fields) => {
   fields = objectClone(fields)
 
   // in: AST de la requête GraphQl
diff --git a/packages/api/src/database/queries/graph/fields-add.ts b/packages/api/src/database/queries/graph/fields-add.ts
index 7c359bf3e..0c5ef58da 100644
--- a/packages/api/src/database/queries/graph/fields-add.ts
+++ b/packages/api/src/database/queries/graph/fields-add.ts
@@ -5,7 +5,7 @@ import { IFields } from '../../../types.js'
 export const fieldsTitreAdd = (fields: IFields) => {
   if (!fields.titre) {
     fields.titre = {
-      id: {}
+      id: {},
     }
   }
 
@@ -39,12 +39,7 @@ export const titresFieldsAdd = (fields: IFields) => {
     }
   }
 
-  if (
-    fields.secteursMaritime ||
-    fields.administrationsLocale ||
-    fields.administrations ||
-    fields.sdomZones
-  ) {
+  if (fields.secteursMaritime || fields.administrationsLocale || fields.administrations || fields.sdomZones) {
     if (!fields.pointsEtape) {
       fields.pointsEtape = { id: {} }
     }
diff --git a/packages/api/src/database/queries/graph/fields-format.ts b/packages/api/src/database/queries/graph/fields-format.ts
index 2459cabe1..7204745ad 100644
--- a/packages/api/src/database/queries/graph/fields-format.ts
+++ b/packages/api/src/database/queries/graph/fields-format.ts
@@ -1,12 +1,5 @@
 const fieldsOrderDesc = ['etablissements', 'demarches', 'activites']
-const fieldsOrderAsc = [
-  'domaines',
-  'points',
-  'references',
-  'etapesTypes',
-  'titresTypes',
-  'titresTypesEtapesTypes'
-]
+const fieldsOrderAsc = ['domaines', 'points', 'references', 'etapesTypes', 'titresTypes', 'titresTypesEtapesTypes']
 const fieldsToRemove = ['coordonnees', 'incertitudes', 'heritageProps']
 const titreFieldsToRemove: string[] = ['geojsonCentre', 'references']
 const geoFieldsToReplace = ['geojsonPoints', 'geojsonMultiPolygon']
@@ -20,18 +13,13 @@ const graphTitreAdministrationsFormat = (fields: IFields, type: string) => {
   if (!fields.administrations) return
 
   fields[`administrations${type}`] = {
-    ...fields.administrations
+    ...fields.administrations,
   }
 }
 
 // ajoute des propriétés requises par /database/queries/_format
 export const fieldsFormat = (fields: IFields, parent: string) => {
-  const isParentTitre = [
-    'titres',
-    'titre',
-    'amodiataireTitres',
-    'titulaireTitres'
-  ].includes(parent)
+  const isParentTitre = ['titres', 'titre', 'amodiataireTitres', 'titulaireTitres'].includes(parent)
 
   // ajoute la propriété `titreType` sur les démarches
   if (fields.demarches && !fields.demarches.titreType) {
@@ -46,11 +34,7 @@ export const fieldsFormat = (fields: IFields, parent: string) => {
 
   // ajoute la propriété `etapesTypes` sur les démarches
   // pour pouvoir récupérer les types spécifiques
-  if (
-    fields.demarches &&
-    fields.demarches.type &&
-    !fields.demarches.type.etapesTypes
-  ) {
+  if (fields.demarches && fields.demarches.type && !fields.demarches.type.etapesTypes) {
     fields.demarches.type.etapesTypes = { id: {} }
   }
 
@@ -144,11 +128,7 @@ export const fieldsFormat = (fields: IFields, parent: string) => {
   // on a besoin des activités si elles sont absentes
   // pour calculer le nombre d'activités par type
   if (!fields.activites) {
-    if (
-      fields.activitesDeposees ||
-      fields.activitesEnConstruction ||
-      fields.activitesAbsentes
-    ) {
+    if (fields.activitesDeposees || fields.activitesEnConstruction || fields.activitesAbsentes) {
       fields.activites = { id: {} }
     }
   }
diff --git a/packages/api/src/database/queries/journaux.ts b/packages/api/src/database/queries/journaux.ts
index 616e55de9..984f47ee0 100644
--- a/packages/api/src/database/queries/journaux.ts
+++ b/packages/api/src/database/queries/journaux.ts
@@ -1,12 +1,6 @@
 import Journaux from '../models/journaux.js'
 import { create } from 'jsondiffpatch'
-import {
-  Model,
-  PartialModelGraph,
-  RelationExpression,
-  Transaction,
-  UpsertGraphOptions
-} from 'objection'
+import { Model, PartialModelGraph, RelationExpression, Transaction, UpsertGraphOptions } from 'objection'
 import { journauxQueryModify } from './permissions/journaux.js'
 import { IFields } from '../../types.js'
 import graphBuild from './graph/build.js'
@@ -17,28 +11,18 @@ import { User } from 'camino-common/src/roles'
 
 const diffPatcher = create({
   // on filtre certaines proprietés qu’on ne souhaite pas voir apparaitre dans les journaux
-  propertyFilter: (name: string) =>
-    !['slug', 'ordre', 'demarche', 'heritageProps'].includes(name)
+  propertyFilter: (name: string) => !['slug', 'ordre', 'demarche', 'heritageProps'].includes(name),
 })
 
-export const journauxGet = async (
-  params: IJournauxQueryParams,
-  { fields }: { fields?: IFields },
-  user: User
-) => {
-  const graph = fields
-    ? graphBuild(fields, 'journaux', fieldsFormat)
-    : options.journaux.graph
+export const journauxGet = async (params: IJournauxQueryParams, { fields }: { fields?: IFields }, user: User) => {
+  const graph = fields ? graphBuild(fields, 'journaux', fieldsFormat) : options.journaux.graph
 
   const q = Journaux.query().withGraphFetched(graph)
   q.modify(journauxQueryModify, user)
 
   if (params.recherche) {
     q.leftJoinRelated('titre as titreRecherche')
-    q.whereRaw(`lower(??) like ?`, [
-      'titreRecherche.nom',
-      `%${params.recherche.toLowerCase()}%`
-    ])
+    q.whereRaw(`lower(??) like ?`, ['titreRecherche.nom', `%${params.recherche.toLowerCase()}%`])
   }
 
   if (params.titreId) {
@@ -50,13 +34,7 @@ export const journauxGet = async (
   return q.page(params.page - 1, params.intervalle)
 }
 
-export const deleteJournalCreate = async (
-  id: string,
-  model: typeof Model,
-  userId: string,
-  titreId: string,
-  trx?: Transaction
-) => {
+export const deleteJournalCreate = async (id: string, model: typeof Model, userId: string, titreId: string, trx?: Transaction) => {
   const oldValue = await model.query(trx).findById(id)
 
   await Journaux.query(trx).insert({
@@ -64,35 +42,23 @@ export const deleteJournalCreate = async (
     operation: 'delete',
     utilisateurId: userId,
     titreId,
-    differences: diffPatcher.diff(oldValue, {})
+    differences: diffPatcher.diff(oldValue, {}),
   })
 }
 
-export const createJournalCreate = async (
-  id: string,
-  userId: string,
-  titreId: string
-) => {
+export const createJournalCreate = async (id: string, userId: string, titreId: string) => {
   await Journaux.query().insert({
     elementId: id,
     operation: 'create',
     utilisateurId: userId,
-    titreId
+    titreId,
   })
 }
 
-export const patchJournalCreate = async <T extends Model>(
-  id: string,
-  partialEntity: Partial<T>,
-  model: typeof Model,
-  userId: string,
-  titreId: string
-): Promise<T> => {
+export const patchJournalCreate = async <T extends Model>(id: string, partialEntity: Partial<T>, model: typeof Model, userId: string, titreId: string): Promise<T> => {
   const oldValue = await model.query().findById(id)
 
-  const oldPartialValue = (
-    Object.keys(partialEntity) as Array<keyof Model>
-  ).reduce((result, key) => {
+  const oldPartialValue = (Object.keys(partialEntity) as Array<keyof Model>).reduce((result, key) => {
     result[key] = oldValue![key]
 
     return result
@@ -100,7 +66,7 @@ export const patchJournalCreate = async <T extends Model>(
 
   const result = await model.query().patchAndFetchById(id, {
     ...partialEntity,
-    id
+    id,
   })
 
   const differences = diffPatcher.diff(oldPartialValue, partialEntity)
@@ -111,7 +77,7 @@ export const patchJournalCreate = async <T extends Model>(
       utilisateurId: userId,
       operation: 'update',
       differences,
-      titreId
+      titreId,
     })
   }
 
@@ -127,20 +93,11 @@ export const upsertJournalCreate = async <T extends Model>(
   userId: string,
   titreId: string
 ): Promise<T> => {
-  const oldValue = id
-    ? await model
-        .query()
-        .findById(id)
-        .withGraphFetched(relations)
-        .returning('*')
-    : undefined
+  const oldValue = id ? await model.query().findById(id).withGraphFetched(relations).returning('*') : undefined
 
   // on ne peut pas utiliser returning('*'),
   // car certains attributs de entity restent présents alors qu’ils sont enlevés avant l’enregistrement
-  const newModel = await model
-    .query()
-    .upsertGraph(entity, options)
-    .returning('id')
+  const newModel = await model.query().upsertGraph(entity, options).returning('id')
 
   const newValue = await model
     .query()
@@ -166,7 +123,7 @@ export const upsertJournalCreate = async <T extends Model>(
     utilisateurId: userId,
     operation,
     differences,
-    titreId
+    titreId,
   })
 
   return newValue as T
diff --git a/packages/api/src/database/queries/metas-activites.ts b/packages/api/src/database/queries/metas-activites.ts
index f387fb42c..9fae510d8 100644
--- a/packages/api/src/database/queries/metas-activites.ts
+++ b/packages/api/src/database/queries/metas-activites.ts
@@ -10,17 +10,13 @@ import ActivitesTypesDocumentsTypes from '../models/activites-types--documents-t
 import ActivitesTypesPays from '../models/activites-types--pays.js'
 
 export const activitesTypesGet = async ({ fields }: { fields?: IFields }) => {
-  const graph = fields
-    ? graphBuild(fields, 'activitesTypes', fieldsFormat)
-    : options.activitesTypes.graph
+  const graph = fields ? graphBuild(fields, 'activitesTypes', fieldsFormat) : options.activitesTypes.graph
 
   return ActivitesTypes.query().withGraphFetched(graph).modify('orderAsc')
 }
 
-export const activitesTypesTitresTypesGet = async () =>
-  ActivitesTypesTitresTypes.query()
+export const activitesTypesTitresTypesGet = async () => ActivitesTypesTitresTypes.query()
 
-export const activitesTypesDocumentsTypesGet = async () =>
-  ActivitesTypesDocumentsTypes.query()
+export const activitesTypesDocumentsTypesGet = async () => ActivitesTypesDocumentsTypes.query()
 
 export const activitesTypesPaysGet = async () => ActivitesTypesPays.query()
diff --git a/packages/api/src/database/queries/metas.ts b/packages/api/src/database/queries/metas.ts
index 95cfc3240..11b4418a7 100644
--- a/packages/api/src/database/queries/metas.ts
+++ b/packages/api/src/database/queries/metas.ts
@@ -24,37 +24,27 @@ import { sortedDemarchesStatuts } from 'camino-common/src/static/demarchesStatut
 import { toDocuments } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.js'
 import { User } from 'camino-common/src/roles.js'
 
-const titresTypesTypesGet = async () =>
-  TitresTypesTypes.query().orderBy('ordre')
+const titresTypesTypesGet = async () => TitresTypesTypes.query().orderBy('ordre')
 
 const domainesGet = async (_: never, { fields }: { fields?: IFields }) => {
-  const graph = fields
-    ? graphBuild(fields, 'titre', fieldsFormat)
-    : options.domaines.graph
+  const graph = fields ? graphBuild(fields, 'titre', fieldsFormat) : options.domaines.graph
 
   return Domaines.query().withGraphFetched(graph).orderBy('ordre')
 }
 
 const titresTypesGet = async (_: never, { fields }: { fields?: IFields }) => {
-  const graph = fields
-    ? graphBuild(fields, 'titresTypes', fieldsFormat)
-    : options.titresTypes.graph
+  const graph = fields ? graphBuild(fields, 'titresTypes', fieldsFormat) : options.titresTypes.graph
 
   return TitresTypes.query().withGraphFetched(graph).orderBy('id')
 }
 
-const titresTypesDemarchesTypesEtapesTypesGet = async () =>
-  TitresTypesDemarchesTypesEtapesTypes.query().orderBy([
-    'titreTypeId',
-    'demarcheTypeId',
-    'etapeTypeId'
-  ])
+const titresTypesDemarchesTypesEtapesTypesGet = async () => TitresTypesDemarchesTypesEtapesTypes.query().orderBy(['titreTypeId', 'demarcheTypeId', 'etapeTypeId'])
 
 const titreTypeDemarcheTypeEtapeTypeGet = async (
   {
     titreTypeId,
     demarcheTypeId,
-    etapeTypeId
+    etapeTypeId,
   }: {
     titreTypeId: string
     demarcheTypeId: string
@@ -62,30 +52,17 @@ const titreTypeDemarcheTypeEtapeTypeGet = async (
   },
   { fields }: { fields?: IFields }
 ) => {
-  const graph = fields
-    ? graphBuild(fields, 'titresTypesDemarchesTypesEtapesTypes', fieldsFormat)
-    : []
+  const graph = fields ? graphBuild(fields, 'titresTypesDemarchesTypesEtapesTypes', fieldsFormat) : []
 
-  return TitresTypesDemarchesTypesEtapesTypes.query()
-    .findById([titreTypeId, demarcheTypeId, etapeTypeId])
-    .withGraphFetched(graph)
+  return TitresTypesDemarchesTypesEtapesTypes.query().findById([titreTypeId, demarcheTypeId, etapeTypeId]).withGraphFetched(graph)
 }
 
 const titresTypesDemarchesTypesEtapesTypesJustificatifsTypesGet = async () =>
-  TitresTypesDemarchesTypesEtapesTypesJustificatifsTypes.query().orderBy([
-    'titreTypeId',
-    'demarcheTypeId',
-    'etapeTypeId',
-    'documentTypeId'
-  ])
+  TitresTypesDemarchesTypesEtapesTypesJustificatifsTypes.query().orderBy(['titreTypeId', 'demarcheTypeId', 'etapeTypeId', 'documentTypeId'])
 
 const etapesTypesDocumentsTypesGet = () => toDocuments()
 
-const etapesTypesJustificatifsTypesGet = async () =>
-  EtapesTypesJustificatifsTypes.query().orderBy([
-    'etapeTypeId',
-    'documentTypeId'
-  ])
+const etapesTypesJustificatifsTypesGet = async () => EtapesTypesJustificatifsTypes.query().orderBy(['etapeTypeId', 'documentTypeId'])
 
 const demarchesStatutsGet = () => sortedDemarchesStatuts
 
@@ -93,7 +70,7 @@ const etapesTypesGet = async (
   {
     titreDemarcheId,
     titreEtapeId,
-    travaux
+    travaux,
   }: {
     titreDemarcheId?: string
     titreEtapeId?: string
@@ -110,16 +87,14 @@ const etapesTypesGet = async (
     etapesTypesQueryModify(q, user, {
       titreDemarcheId,
       titreEtapeId,
-      uniqueCheck
+      uniqueCheck,
     })
   } else {
     q.orderBy('ordre')
   }
 
   if (travaux === false || travaux === true) {
-    const travauxQuery = TitresTypesDemarchesTypesEtapesTypes.query()
-      .leftJoinRelated('demarcheType')
-      .whereRaw('?? = ??', ['etapeTypeId', 'etapesTypes.id'])
+    const travauxQuery = TitresTypesDemarchesTypesEtapesTypes.query().leftJoinRelated('demarcheType').whereRaw('?? = ??', ['etapeTypeId', 'etapesTypes.id'])
     if (travaux) {
       travauxQuery.where('demarcheType.travaux', travaux)
     } else {
@@ -139,13 +114,7 @@ const etapeTypeGet = async (id: string, { fields }: { fields?: IFields }) => {
 
 const devisesGet = () => sortedDevises
 
-const documentsTypesGet = async ({
-  repertoire,
-  typeId
-}: {
-  repertoire?: IDocumentRepertoire
-  typeId?: string
-}) => {
+const documentsTypesGet = async ({ repertoire, typeId }: { repertoire?: IDocumentRepertoire; typeId?: string }) => {
   const q = DocumentsTypes.query().orderBy('nom')
 
   q.select('documentsTypes.*')
@@ -169,17 +138,11 @@ const documentsTypesGet = async ({
       if (typeId) {
         q.join('etapesTypes__justificatifsTypes as et_jt', b => {
           b.on(knex.raw('?? = ?', ['et_jt.etapeTypeId', typeId]))
-          b.on(
-            knex.raw('?? = ??', ['et_jt.documentTypeId', 'documentsTypes.id'])
-          )
+          b.on(knex.raw('?? = ??', ['et_jt.documentTypeId', 'documentsTypes.id']))
         })
         q.select(raw('?? is true', ['et_jt.optionnel']).as('optionnel'))
       } else {
-        q.join(
-          'entreprises__documentsTypes as e_dt',
-          'e_dt.documentTypeId',
-          'documentsTypes.id'
-        )
+        q.join('entreprises__documentsTypes as e_dt', 'e_dt.documentTypeId', 'documentsTypes.id')
       }
     }
   }
@@ -187,8 +150,7 @@ const documentsTypesGet = async ({
   return q
 }
 
-const documentTypeGet = async (id: string) =>
-  DocumentsTypes.query().findById(id)
+const documentTypeGet = async (id: string) => DocumentsTypes.query().findById(id)
 
 export {
   domainesGet,
@@ -204,5 +166,5 @@ export {
   titreTypeDemarcheTypeEtapeTypeGet,
   titresTypesDemarchesTypesEtapesTypesJustificatifsTypesGet,
   etapesTypesDocumentsTypesGet,
-  etapesTypesJustificatifsTypesGet
+  etapesTypesJustificatifsTypesGet,
 }
diff --git a/packages/api/src/database/queries/permissions/administrations.test.integration.ts b/packages/api/src/database/queries/permissions/administrations.test.integration.ts
index 659a56fd2..7cf3baa3d 100644
--- a/packages/api/src/database/queries/permissions/administrations.test.integration.ts
+++ b/packages/api/src/database/queries/permissions/administrations.test.integration.ts
@@ -1,23 +1,12 @@
 import { dbManager } from '../../../../tests/db-manager.js'
-import {
-  IUtilisateur,
-  IAdministration,
-  ITitre,
-  formatUser
-} from '../../../types.js'
+import { IUtilisateur, IAdministration, ITitre, formatUser } from '../../../types.js'
 
 import Titres from '../../models/titres.js'
 import Utilisateurs from '../../models/utilisateurs.js'
 import AdministrationsActivitesTypesEmails from '../../models/administrations-activites-types-emails.js'
 import Administrations from '../../models/administrations.js'
-import {
-  AdministrationId,
-  Administrations as CommonAdministrations
-} from 'camino-common/src/static/administrations.js'
-import {
-  administrationsTitresQuery,
-  administrationsQueryModify
-} from './administrations.js'
+import { AdministrationId, Administrations as CommonAdministrations } from 'camino-common/src/static/administrations.js'
+import { administrationsTitresQuery, administrationsQueryModify } from './administrations.js'
 import { idGenerate } from '../../models/_format/id-create.js'
 import options from '../_options.js'
 import { expect, test, describe, afterAll, beforeAll, vi } from 'vitest'
@@ -39,42 +28,33 @@ describe('administrationsTitresQuery', () => {
     ['ope-brgm-01', false],
     ['ope-onf-973-01', true],
     ['pre-97302-01', true],
-    ['ope-ptmg-973-01', true]
-  ])(
-    "Vérifie l'écriture de la requête sur les titres dont une administration a des droits sur le type",
-    async (administrationId, visible) => {
-      await Titres.query().delete()
-
-      const mockTitre = {
-        id: 'monTitreId',
-        nom: 'monTitreNom',
-        titreStatutId: 'ech',
-        typeId: 'arm'
-      } as ITitre
-
-      await Titres.query().insertGraph(mockTitre)
-
-      const administrationQuery = administrationsTitresQuery(
-        administrationId,
-        'titres',
-        {
-          isGestionnaire: true,
-          isAssociee: true
-        }
-      )
-
-      const q = Titres.query()
-        .where('id', 'monTitreId')
-        .andWhereRaw('exists(?)', [administrationQuery])
-
-      const titreRes = await q.first()
-      if (visible) {
-        expect(titreRes).toMatchObject(mockTitre)
-      } else {
-        expect(titreRes).toBeUndefined()
-      }
+    ['ope-ptmg-973-01', true],
+  ])("Vérifie l'écriture de la requête sur les titres dont une administration a des droits sur le type", async (administrationId, visible) => {
+    await Titres.query().delete()
+
+    const mockTitre = {
+      id: 'monTitreId',
+      nom: 'monTitreNom',
+      titreStatutId: 'ech',
+      typeId: 'arm',
+    } as ITitre
+
+    await Titres.query().insertGraph(mockTitre)
+
+    const administrationQuery = administrationsTitresQuery(administrationId, 'titres', {
+      isGestionnaire: true,
+      isAssociee: true,
+    })
+
+    const q = Titres.query().where('id', 'monTitreId').andWhereRaw('exists(?)', [administrationQuery])
+
+    const titreRes = await q.first()
+    if (visible) {
+      expect(titreRes).toMatchObject(mockTitre)
+    } else {
+      expect(titreRes).toBeUndefined()
     }
-  )
+  })
 })
 
 describe('administrationsQueryModify', () => {
@@ -86,13 +66,13 @@ describe('administrationsQueryModify', () => {
     await AdministrationsActivitesTypesEmails.query().insert({
       administrationId: mockAdministration.id,
       email,
-      activiteTypeId: 'grx'
+      activiteTypeId: 'grx',
     })
 
     await AdministrationsActivitesTypesEmails.query().insert({
       administrationId: mockAdministration.id,
       email: 'foo@bar.cc',
-      activiteTypeId: 'grx'
+      activiteTypeId: 'grx',
     })
 
     const mockUser: IUtilisateur = {
@@ -100,21 +80,13 @@ describe('administrationsQueryModify', () => {
       id: idGenerate(),
       role: 'super',
       email: 'email' + idGenerate(),
-      dateCreation: '2022-05-12'
+      dateCreation: '2022-05-12',
     }
 
-    await Utilisateurs.query().insertGraph(
-      mockUser,
-      options.utilisateurs.update
-    )
-
-    const q = administrationsQueryModify(
-      Administrations.query().where('id', mockAdministration.id),
-      formatUser(mockUser)
-    )
-    const res = (await q
-      .withGraphFetched({ activitesTypesEmails: {} })
-      .first()) as IAdministration
+    await Utilisateurs.query().insertGraph(mockUser, options.utilisateurs.update)
+
+    const q = administrationsQueryModify(Administrations.query().where('id', mockAdministration.id), formatUser(mockUser))
+    const res = (await q.withGraphFetched({ activitesTypesEmails: {} }).first()) as IAdministration
     expect(res.activitesTypesEmails).toHaveLength(2)
   })
 })
diff --git a/packages/api/src/database/queries/permissions/administrations.ts b/packages/api/src/database/queries/permissions/administrations.ts
index 4438477b5..00a8c82aa 100644
--- a/packages/api/src/database/queries/permissions/administrations.ts
+++ b/packages/api/src/database/queries/permissions/administrations.ts
@@ -11,15 +11,9 @@ import { getTitreTypeIdsByAdministration } from 'camino-common/src/static/admini
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
 
 const administrationsQueryModify = (
-  q: QueryBuilder<
-    AdministrationsModel,
-    AdministrationsModel | AdministrationsModel[]
-  >,
+  q: QueryBuilder<AdministrationsModel, AdministrationsModel | AdministrationsModel[]>,
   user: User
-): QueryBuilder<
-  AdministrationsModel,
-  AdministrationsModel | AdministrationsModel[]
-> => {
+): QueryBuilder<AdministrationsModel, AdministrationsModel | AdministrationsModel[]> => {
   q.select('administrations.*')
 
   if (isSuper(user)) {
@@ -27,41 +21,24 @@ const administrationsQueryModify = (
   }
 
   q.modifyGraph('utilisateurs', b => {
-    utilisateursQueryModify(
-      b as QueryBuilder<Utilisateurs, Utilisateurs | Utilisateurs[]>,
-      user
-    )
+    utilisateursQueryModify(b as QueryBuilder<Utilisateurs, Utilisateurs | Utilisateurs[]>, user)
   })
 
   return q
 }
 
-const administrationsLocalesModify = (
-  q: QueryBuilder<
-    AdministrationsModel,
-    AdministrationsModel | AdministrationsModel[]
-  >,
-  administrationId: AdministrationId,
-  titreAlias: string
-) => {
-  q.joinRaw(
-    `left join titres_etapes as t_e on t_e.id = "${titreAlias}"."props_titre_etapes_ids" ->> 'points' and t_e.administrations_locales @> '"${administrationId}"'::jsonb`
-  )
+const administrationsLocalesModify = (q: QueryBuilder<AdministrationsModel, AdministrationsModel | AdministrationsModel[]>, administrationId: AdministrationId, titreAlias: string) => {
+  q.joinRaw(`left join titres_etapes as t_e on t_e.id = "${titreAlias}"."props_titre_etapes_ids" ->> 'points' and t_e.administrations_locales @> '"${administrationId}"'::jsonb`)
 }
 
 const administrationsActivitesModify = (
-  q: QueryBuilder<
-    AdministrationsModel,
-    AdministrationsModel | AdministrationsModel[]
-  >,
+  q: QueryBuilder<AdministrationsModel, AdministrationsModel | AdministrationsModel[]>,
 
   { lecture, modification }: { lecture?: boolean; modification?: boolean }
 ) => {
   q.leftJoin('administrations__activitesTypes as a_at', b => {
     b.on(knex.raw('?? = ??', ['a_at.administrationId', 'administrations.id']))
-    b.andOn(
-      knex.raw('?? = ??', ['a_at.activiteTypeId', 'titresActivites.typeId'])
-    )
+    b.andOn(knex.raw('?? = ??', ['a_at.activiteTypeId', 'titresActivites.typeId']))
     b.andOn(c => {
       if (lecture) {
         c.orOn(knex.raw('?? is true', ['a_at.lectureInterdit']))
@@ -77,16 +54,9 @@ const administrationsActivitesModify = (
 const administrationsTitresQuery = (
   administrationId: AdministrationId,
   titreAlias: string,
-  {
-    isGestionnaire,
-    isAssociee,
-    isLocale
-  }: { isGestionnaire?: boolean; isAssociee?: boolean; isLocale?: boolean } = {}
+  { isGestionnaire, isAssociee, isLocale }: { isGestionnaire?: boolean; isAssociee?: boolean; isLocale?: boolean } = {}
 ) => {
-  const q = AdministrationsModel.query().where(
-    'administrations.id',
-    administrationId
-  )
+  const q = AdministrationsModel.query().where('administrations.id', administrationId)
 
   if (isLocale) {
     q.modify(administrationsLocalesModify, administrationId, titreAlias)
@@ -94,9 +64,7 @@ const administrationsTitresQuery = (
 
   q.where(c => {
     if (isGestionnaire || isAssociee) {
-      const titreTypeIds: TitreTypeId[] = getTitreTypeIdsByAdministration(
-        administrationId
-      )
+      const titreTypeIds: TitreTypeId[] = getTitreTypeIdsByAdministration(administrationId)
         .filter(att => {
           if (isGestionnaire && att.gestionnaire) {
             return true
@@ -110,9 +78,7 @@ const administrationsTitresQuery = (
         .map(({ titreTypeId }) => titreTypeId)
 
       if (titreTypeIds.length) {
-        c.orWhereRaw(`?? in (${titreTypeIds.map(t => `'${t}'`).join(',')})`, [
-          `${titreAlias}.typeId`
-        ])
+        c.orWhereRaw(`?? in (${titreTypeIds.map(t => `'${t}'`).join(',')})`, [`${titreAlias}.typeId`])
       } else {
         c.orWhereRaw('false')
       }
@@ -127,32 +93,15 @@ const administrationsTitresQuery = (
 }
 
 const administrationsTitresTypesTitresStatutsModify = (
-  q: QueryBuilder<
-    AdministrationsModel,
-    AdministrationsModel | AdministrationsModel[]
-  >,
+  q: QueryBuilder<AdministrationsModel, AdministrationsModel | AdministrationsModel[]>,
   type: 'titres' | 'demarches' | 'etapes',
   titreAlias: string,
-  conditionsAdd?: (
-    b: QueryBuilder<
-      AdministrationsModel,
-      AdministrationsModel | AdministrationsModel[]
-    >
-  ) => void
+  conditionsAdd?: (b: QueryBuilder<AdministrationsModel, AdministrationsModel | AdministrationsModel[]>) => void
 ) => {
   q.leftJoin('administrations__titresTypes__titresStatuts as a_tt_ts', b => {
-    b.on(
-      knex.raw('?? = ??', ['a_tt_ts.administrationId', 'administrations.id'])
-    )
-    b.andOn(
-      knex.raw('?? = ??', ['a_tt_ts.titreTypeId', `${titreAlias}.typeId`])
-    )
-    b.andOn(
-      knex.raw('?? = ??', [
-        'a_tt_ts.titreStatutId',
-        `${titreAlias}.titreStatutId`
-      ])
-    )
+    b.on(knex.raw('?? = ??', ['a_tt_ts.administrationId', 'administrations.id']))
+    b.andOn(knex.raw('?? = ??', ['a_tt_ts.titreTypeId', `${titreAlias}.typeId`]))
+    b.andOn(knex.raw('?? = ??', ['a_tt_ts.titreStatutId', `${titreAlias}.titreStatutId`]))
     b.andOn(knex.raw('?? is true', [`a_tt_ts.${type}ModificationInterdit`]))
   })
 
@@ -167,18 +116,13 @@ const administrationsTitresTypesTitresStatutsModify = (
 // l'utilisateur est dans au moins une administration
 // qui n'a pas de restriction 'creationInterdit' sur ce type d'étape / type de titre
 const administrationsTitresTypesEtapesTypesModify = (
-  q: QueryBuilder<
-    AdministrationsModel,
-    AdministrationsModel | AdministrationsModel[]
-  >,
+  q: QueryBuilder<AdministrationsModel, AdministrationsModel | AdministrationsModel[]>,
   type: 'lecture' | 'modification' | 'creation',
   titreTypeIdColumn: string,
   etapeTypeIdColumn: string
 ) => {
   q.leftJoin('administrations__titresTypes__etapesTypes as a_tt_et', b => {
-    b.on(
-      knex.raw('?? = ??', ['a_tt_et.administrationId', 'administrations.id'])
-    )
+    b.on(knex.raw('?? = ??', ['a_tt_et.administrationId', 'administrations.id']))
     b.andOn(knex.raw('?? = ??', ['a_tt_et.titreTypeId', titreTypeIdColumn]))
     b.andOn(knex.raw('?? = ??', ['a_tt_et.etapeTypeId', etapeTypeIdColumn]))
     b.andOn(knex.raw('?? is true', [`a_tt_et.${type}Interdit`]))
@@ -191,5 +135,5 @@ export {
   administrationsTitresTypesTitresStatutsModify,
   administrationsTitresTypesEtapesTypesModify,
   administrationsTitresQuery,
-  administrationsActivitesModify
+  administrationsActivitesModify,
 }
diff --git a/packages/api/src/database/queries/permissions/documents.test.integration.ts b/packages/api/src/database/queries/permissions/documents.test.integration.ts
index ef2eebfb6..a6dcc3987 100644
--- a/packages/api/src/database/queries/permissions/documents.test.integration.ts
+++ b/packages/api/src/database/queries/permissions/documents.test.integration.ts
@@ -30,42 +30,39 @@ afterAll(async () => {
 describe('documentSupprimer', () => {
   test.each<[EtapeStatutId, boolean]>([
     ['aco', true],
-    ['fai', false]
-  ])(
-    'vérifie la possibilité de supprimer un document optionnel ou non d’une étape (utilisateur super)',
-    async (statutId, suppression) => {
-      // suppression de la clé étrangère sur la démarche pour ne pas avoir à tout créer
-      await TitresEtapes.query().delete()
-      await Document.query().delete()
-      await knex.schema.alterTable(TitresEtapes.tableName, table => {
-        table.dropColumns('titreDemarcheId')
-      })
-
-      await knex.schema.alterTable(TitresEtapes.tableName, table => {
-        table.string('titreDemarcheId').index().notNullable()
-      })
-
-      await TitresEtapes.query().insertGraph({
-        id: 'titreEtapeId',
-        typeId: 'dpu',
-        titreDemarcheId: newDemarcheId('titreDemarcheId'),
-        date: toCaminoDate('2022-01-01'),
-        statutId
-      })
-
-      const documentId = 'document-id'
-      await documentCreate({
-        id: documentId,
-        typeId: 'dec',
-        date: toCaminoDate('2023-01-12'),
-        titreEtapeId: 'titreEtapeId'
-      })
-
-      const documentRes = await documentGet(documentId, {}, userSuper)
-
-      expect(documentRes.suppression).toBe(suppression)
-    }
-  )
+    ['fai', false],
+  ])('vérifie la possibilité de supprimer un document optionnel ou non d’une étape (utilisateur super)', async (statutId, suppression) => {
+    // suppression de la clé étrangère sur la démarche pour ne pas avoir à tout créer
+    await TitresEtapes.query().delete()
+    await Document.query().delete()
+    await knex.schema.alterTable(TitresEtapes.tableName, table => {
+      table.dropColumns('titreDemarcheId')
+    })
+
+    await knex.schema.alterTable(TitresEtapes.tableName, table => {
+      table.string('titreDemarcheId').index().notNullable()
+    })
+
+    await TitresEtapes.query().insertGraph({
+      id: 'titreEtapeId',
+      typeId: 'dpu',
+      titreDemarcheId: newDemarcheId('titreDemarcheId'),
+      date: toCaminoDate('2022-01-01'),
+      statutId,
+    })
+
+    const documentId = 'document-id'
+    await documentCreate({
+      id: documentId,
+      typeId: 'dec',
+      date: toCaminoDate('2023-01-12'),
+      titreEtapeId: 'titreEtapeId',
+    })
+
+    const documentRes = await documentGet(documentId, {}, userSuper)
+
+    expect(documentRes.suppression).toBe(suppression)
+  })
 
   test.each<[boolean | undefined, ActivitesStatutId, boolean]>([
     [true, 'enc', true],
@@ -73,51 +70,48 @@ describe('documentSupprimer', () => {
     [undefined, 'enc', true],
     [true, 'dep', true],
     [false, 'dep', false],
-    [undefined, 'dep', false]
-  ])(
-    'vérifie la possibilité de supprimer un document optionnel ou non d’une activité (utilisateur super)',
-    async (optionnel, activiteStatutId, suppression) => {
-      // suppression de la clé étrangère sur le titre pour ne pas avoir à tout créer
-      await TitresActivites.query().delete()
-      await Document.query().delete()
-      await ActivitesTypesDocumentsTypes.query().delete()
-      await knex.schema.alterTable(TitresActivites.tableName, table => {
-        table.dropColumns('titreId')
-      })
-
-      await knex.schema.alterTable(TitresActivites.tableName, table => {
-        table.string('titreId').index().notNullable()
-      })
-
-      await TitresActivites.query().insertGraph({
-        id: 'titreActiviteId',
-        typeId: 'grx',
-        titreId: '',
-        date: getCurrent(),
-        activiteStatutId,
-        periodeId: 1,
-        annee: 2000
-      })
-
-      const documentId = 'document-id'
-      await documentCreate({
-        id: documentId,
-        typeId: 'dec',
-        date: toCaminoDate('2023-01-12'),
-        titreActiviteId: 'titreActiviteId'
-      })
-
-      await ActivitesTypesDocumentsTypes.query().insertGraph({
-        activiteTypeId: 'grx',
-        documentTypeId: 'dec',
-        optionnel
-      })
-
-      const documentRes = await documentGet(documentId, {}, userSuper)
-
-      expect(documentRes.suppression).toBe(suppression)
-    }
-  )
+    [undefined, 'dep', false],
+  ])('vérifie la possibilité de supprimer un document optionnel ou non d’une activité (utilisateur super)', async (optionnel, activiteStatutId, suppression) => {
+    // suppression de la clé étrangère sur le titre pour ne pas avoir à tout créer
+    await TitresActivites.query().delete()
+    await Document.query().delete()
+    await ActivitesTypesDocumentsTypes.query().delete()
+    await knex.schema.alterTable(TitresActivites.tableName, table => {
+      table.dropColumns('titreId')
+    })
+
+    await knex.schema.alterTable(TitresActivites.tableName, table => {
+      table.string('titreId').index().notNullable()
+    })
+
+    await TitresActivites.query().insertGraph({
+      id: 'titreActiviteId',
+      typeId: 'grx',
+      titreId: '',
+      date: getCurrent(),
+      activiteStatutId,
+      periodeId: 1,
+      annee: 2000,
+    })
+
+    const documentId = 'document-id'
+    await documentCreate({
+      id: documentId,
+      typeId: 'dec',
+      date: toCaminoDate('2023-01-12'),
+      titreActiviteId: 'titreActiviteId',
+    })
+
+    await ActivitesTypesDocumentsTypes.query().insertGraph({
+      activiteTypeId: 'grx',
+      documentTypeId: 'dec',
+      optionnel,
+    })
+
+    const documentRes = await documentGet(documentId, {}, userSuper)
+
+    expect(documentRes.suppression).toBe(suppression)
+  })
 })
 
 describe('etapeTypeDocumentTypeUsedCheck', () => {
@@ -138,7 +132,7 @@ describe('etapeTypeDocumentTypeUsedCheck', () => {
       typeId: 'dpu',
       titreDemarcheId: newDemarcheId('titreDemarcheId'),
       date: toCaminoDate('2022-01-01'),
-      statutId: 'aco'
+      statutId: 'aco',
     })
 
     const documentId = 'document-id'
@@ -146,7 +140,7 @@ describe('etapeTypeDocumentTypeUsedCheck', () => {
       id: documentId,
       typeId: 'dec',
       date: toCaminoDate('2023-01-12'),
-      titreEtapeId: 'titreEtapeId'
+      titreEtapeId: 'titreEtapeId',
     })
 
     const check = await etapeTypeDocumentTypeUsedCheck('dpu', 'dec')
@@ -171,7 +165,7 @@ describe('etapeTypeDocumentTypeUsedCheck', () => {
       typeId: 'dpu',
       titreDemarcheId: newDemarcheId('titreDemarcheId'),
       date: toCaminoDate('2022-01-01'),
-      statutId: 'aco'
+      statutId: 'aco',
     })
 
     const documentId = 'document-id'
@@ -179,7 +173,7 @@ describe('etapeTypeDocumentTypeUsedCheck', () => {
       id: documentId,
       typeId: 'arr',
       date: toCaminoDate('2023-01-12'),
-      titreEtapeId: 'titreEtapeId'
+      titreEtapeId: 'titreEtapeId',
     })
 
     const check = await etapeTypeDocumentTypeUsedCheck('dpu', 'dec')
diff --git a/packages/api/src/database/queries/permissions/documents.ts b/packages/api/src/database/queries/permissions/documents.ts
index 863ac249d..1e3f44453 100644
--- a/packages/api/src/database/queries/permissions/documents.ts
+++ b/packages/api/src/database/queries/permissions/documents.ts
@@ -3,18 +3,10 @@ import { QueryBuilder, raw } from 'objection'
 import Documents from '../../models/documents.js'
 import TitresEtapesJustificatifs from '../../models/titres-etapes-justificatifs.js'
 import ActivitesTypesDocumentsTypes from '../../models/activites-types--documents-types.js'
-import {
-  isBureauDEtudes,
-  isDefault,
-  isEntreprise,
-  User
-} from 'camino-common/src/roles.js'
+import { isBureauDEtudes, isDefault, isEntreprise, User } from 'camino-common/src/roles.js'
 import TitresEtapes from '../../models/titres-etapes.js'
 
-const documentsQueryModify = (
-  q: QueryBuilder<Documents, Documents | Documents[]>,
-  user: User
-) => {
+const documentsQueryModify = (q: QueryBuilder<Documents, Documents | Documents[]>, user: User) => {
   q.select('documents.*')
 
   q.joinRelated('type')
@@ -49,10 +41,7 @@ const documentsQueryModify = (
           c.where(d => {
             d.orWhere(e => {
               e.orWhereIn('etape:demarche:titre:titulaires.id', entreprisesIds)
-              e.orWhereIn(
-                'etape:demarche:titre:amodiataires.id',
-                entreprisesIds
-              )
+              e.orWhereIn('etape:demarche:titre:amodiataires.id', entreprisesIds)
             })
 
             d.orWhere(e => {
@@ -67,73 +56,35 @@ const documentsQueryModify = (
     })
   }
 
+  q.select(raw('(not exists(?))', [titreEtapeJustificatifsQuery]).as('modification'))
   q.select(
-    raw('(not exists(?))', [titreEtapeJustificatifsQuery]).as('modification')
-  )
-  q.select(
-    raw('(not exists(?) and not exists(?) and not exists(?))', [
-      titreEtapeJustificatifsQuery,
-      documentTypeActiviteTypeQuery(
-        'documents.typeId',
-        'documents.titreActiviteId'
-      ),
-      etapeStatutNotAco()
-    ]).as('suppression')
+    raw('(not exists(?) and not exists(?) and not exists(?))', [titreEtapeJustificatifsQuery, documentTypeActiviteTypeQuery('documents.typeId', 'documents.titreActiviteId'), etapeStatutNotAco()]).as(
+      'suppression'
+    )
   )
 }
-const etapeStatutNotAco = () =>
-  TitresEtapes.query()
-    .whereRaw('?? = ??', ['id', 'documents.titreEtapeId'])
-    .andWhereRaw('?? != ?', ['titresEtapes.statutId', 'aco'])
-
-const titreEtapeJustificatifsQuery = TitresEtapesJustificatifs.query()
-  .alias('documentsModification')
-  .whereRaw('?? = ??', ['documentsModification.documentId', 'documents.id'])
-
-const documentTypeActiviteTypeQuery = (
-  typeIdAlias: string,
-  activiteIdAlias: string
-) =>
+const etapeStatutNotAco = () => TitresEtapes.query().whereRaw('?? = ??', ['id', 'documents.titreEtapeId']).andWhereRaw('?? != ?', ['titresEtapes.statutId', 'aco'])
+
+const titreEtapeJustificatifsQuery = TitresEtapesJustificatifs.query().alias('documentsModification').whereRaw('?? = ??', ['documentsModification.documentId', 'documents.id'])
+
+const documentTypeActiviteTypeQuery = (typeIdAlias: string, activiteIdAlias: string) =>
   ActivitesTypesDocumentsTypes.query()
     .leftJoin('titresActivites', 'titresActivites.id', activiteIdAlias)
     .whereRaw('?? = ??', ['activiteTypeId', 'titresActivites.typeId'])
     .andWhereRaw('?? = ??', ['documentTypeId', typeIdAlias])
     .andWhereRaw('?? is not true', ['optionnel'])
-    .andWhereRaw('?? not in (?, ?)', [
-      'titresActivites.activiteStatutId',
-      'abs',
-      'enc'
-    ])
-
-const etapeTypeDocumentTypeUsedCheck = async (
-  etapeTypeId: string,
-  documentTypeId: string
-) => {
-  const res = await Documents.query()
-    .joinRelated('etape')
-    .where('etape.typeId', etapeTypeId)
-    .andWhere('documents.typeId', documentTypeId)
-    .resultSize()
+    .andWhereRaw('?? not in (?, ?)', ['titresActivites.activiteStatutId', 'abs', 'enc'])
+
+const etapeTypeDocumentTypeUsedCheck = async (etapeTypeId: string, documentTypeId: string) => {
+  const res = await Documents.query().joinRelated('etape').where('etape.typeId', etapeTypeId).andWhere('documents.typeId', documentTypeId).resultSize()
 
   return res !== 0
 }
 
-const etapeTypeJustificatifTypeUsedCheck = async (
-  etapeTypeId: string,
-  documentTypeId: string
-) => {
-  const res = await TitresEtapesJustificatifs.query()
-    .joinRelated('etape')
-    .joinRelated('document')
-    .where('etape.typeId', etapeTypeId)
-    .andWhere('document.typeId', documentTypeId)
-    .resultSize()
+const etapeTypeJustificatifTypeUsedCheck = async (etapeTypeId: string, documentTypeId: string) => {
+  const res = await TitresEtapesJustificatifs.query().joinRelated('etape').joinRelated('document').where('etape.typeId', etapeTypeId).andWhere('document.typeId', documentTypeId).resultSize()
 
   return res !== 0
 }
 
-export {
-  documentsQueryModify,
-  etapeTypeDocumentTypeUsedCheck,
-  etapeTypeJustificatifTypeUsedCheck
-}
+export { documentsQueryModify, etapeTypeDocumentTypeUsedCheck, etapeTypeJustificatifTypeUsedCheck }
diff --git a/packages/api/src/database/queries/permissions/entreprises.ts b/packages/api/src/database/queries/permissions/entreprises.ts
index d1f684559..119515f43 100644
--- a/packages/api/src/database/queries/permissions/entreprises.ts
+++ b/packages/api/src/database/queries/permissions/entreprises.ts
@@ -12,10 +12,7 @@ import { utilisateursQueryModify } from './utilisateurs.js'
 import { documentsQueryModify } from './documents.js'
 import { User } from 'camino-common/src/roles.js'
 
-const entreprisesQueryModify = (
-  q: QueryBuilder<Entreprises, Entreprises | Entreprises[]>,
-  user: User
-) => {
+const entreprisesQueryModify = (q: QueryBuilder<Entreprises, Entreprises | Entreprises[]>, user: User) => {
   q.select('entreprises.*')
 
   q.modifyGraph('titulaireTitres', a =>
@@ -33,30 +30,17 @@ const entreprisesQueryModify = (
   )
 
   q.modifyGraph('utilisateurs', b => {
-    utilisateursQueryModify(
-      b as QueryBuilder<Utilisateurs, Utilisateurs | Utilisateurs[]>,
-      user
-    )
+    utilisateursQueryModify(b as QueryBuilder<Utilisateurs, Utilisateurs | Utilisateurs[]>, user)
   })
 
   q.modifyGraph('documents', b => {
-    documentsQueryModify(
-      b as QueryBuilder<Documents, Documents | Documents[]>,
-      user
-    )
+    documentsQueryModify(b as QueryBuilder<Documents, Documents | Documents[]>, user)
   })
 
   return q
 }
 
-const entreprisesTitresQuery = (
-  entreprisesIds: string[],
-  titreAlias: string,
-  {
-    isTitulaire,
-    isAmodiataire
-  }: { isTitulaire?: boolean; isAmodiataire?: boolean } = {}
-) => {
+const entreprisesTitresQuery = (entreprisesIds: string[], titreAlias: string, { isTitulaire, isAmodiataire }: { isTitulaire?: boolean; isAmodiataire?: boolean } = {}) => {
   const q = Entreprises.query().whereIn('entreprises.id', entreprisesIds)
 
   if (isTitulaire) {
@@ -80,35 +64,15 @@ const entreprisesTitresQuery = (
   return q
 }
 
-const entreprisesTitulairesModify = (
-  q: QueryBuilder<Entreprises, Entreprises | Entreprises[]>,
-  entreprisesIds: string[],
-  titreAlias: string
-) => {
+const entreprisesTitulairesModify = (q: QueryBuilder<Entreprises, Entreprises | Entreprises[]>, entreprisesIds: string[], titreAlias: string) => {
   q.leftJoin('titresTitulaires as t_t', b => {
-    b.on(
-      knex.raw('?? ->> ? = ??', [
-        `${titreAlias}.propsTitreEtapesIds`,
-        'titulaires',
-        't_t.titreEtapeId'
-      ])
-    ).onIn('t_t.entrepriseId', entreprisesIds)
+    b.on(knex.raw('?? ->> ? = ??', [`${titreAlias}.propsTitreEtapesIds`, 'titulaires', 't_t.titreEtapeId'])).onIn('t_t.entrepriseId', entreprisesIds)
   })
 }
 
-const entreprisesAmodiatairesModify = (
-  q: QueryBuilder<Entreprises, Entreprises | Entreprises[]>,
-  entreprisesIds: string[],
-  titreAlias: string
-) => {
+const entreprisesAmodiatairesModify = (q: QueryBuilder<Entreprises, Entreprises | Entreprises[]>, entreprisesIds: string[], titreAlias: string) => {
   q.leftJoin('titresAmodiataires as t_a', b => {
-    b.on(
-      knex.raw('?? ->> ? = ??', [
-        `${titreAlias}.propsTitreEtapesIds`,
-        'amodiataires',
-        't_a.titreEtapeId'
-      ])
-    ).onIn('t_a.entrepriseId', entreprisesIds)
+    b.on(knex.raw('?? ->> ? = ??', [`${titreAlias}.propsTitreEtapesIds`, 'amodiataires', 't_a.titreEtapeId'])).onIn('t_a.entrepriseId', entreprisesIds)
   })
 }
 
diff --git a/packages/api/src/database/queries/permissions/journaux.ts b/packages/api/src/database/queries/permissions/journaux.ts
index bc01bfcd9..152f4d634 100644
--- a/packages/api/src/database/queries/permissions/journaux.ts
+++ b/packages/api/src/database/queries/permissions/journaux.ts
@@ -7,10 +7,7 @@ import { titresQueryModify } from './titres.js'
 import Titres from '../../models/titres.js'
 import { isSuper, User } from 'camino-common/src/roles.js'
 
-export const journauxQueryModify = (
-  q: QueryBuilder<Journaux, Journaux | Journaux[]>,
-  user: User
-) => {
+export const journauxQueryModify = (q: QueryBuilder<Journaux, Journaux | Journaux[]>, user: User) => {
   q.select('journaux.*')
 
   // Les journaux sont uniquement visibles par les super
@@ -19,10 +16,7 @@ export const journauxQueryModify = (
   }
 
   q.modifyGraph('utilisateur', b => {
-    utilisateursQueryModify(
-      b as QueryBuilder<Utilisateurs, Utilisateurs | Utilisateurs[]>,
-      user
-    )
+    utilisateursQueryModify(b as QueryBuilder<Utilisateurs, Utilisateurs | Utilisateurs[]>, user)
   })
 
   q.modifyGraph('titre', b => {
diff --git a/packages/api/src/database/queries/permissions/metas.ts b/packages/api/src/database/queries/permissions/metas.ts
index ef85068ea..d096c9365 100644
--- a/packages/api/src/database/queries/permissions/metas.ts
+++ b/packages/api/src/database/queries/permissions/metas.ts
@@ -8,17 +8,8 @@ import EtapesTypes from '../../models/etapes-types.js'
 import TitresEtapes from '../../models/titres-etapes.js'
 import TitresTypesDemarchesTypesEtapesTypes from '../../models/titres-types--demarches-types-etapes-types.js'
 
-import {
-  administrationsTitresTypesTitresStatutsModify,
-  administrationsTitresTypesEtapesTypesModify,
-  administrationsTitresQuery
-} from './administrations.js'
-import {
-  isBureauDEtudes,
-  isDefault,
-  isEntreprise,
-  User
-} from 'camino-common/src/roles.js'
+import { administrationsTitresTypesTitresStatutsModify, administrationsTitresTypesEtapesTypesModify, administrationsTitresQuery } from './administrations.js'
+import { isBureauDEtudes, isDefault, isEntreprise, User } from 'camino-common/src/roles.js'
 import { AdministrationId } from 'camino-common/src/static/administrations.js'
 import { TITRES_TYPES_IDS_DEMAT } from 'camino-common/src/permissions/titres.js'
 
@@ -29,46 +20,21 @@ import { TITRES_TYPES_IDS_DEMAT } from 'camino-common/src/permissions/titres.js'
 // - 'titresModification.id': id du titre sur lequel l'utilisateur a des droits
 // - 'demarchesModification.id': id de la démarche
 // - 't_d_e.etapeTypeId': id du type d'étape'
-const administrationsEtapesTypesPropsQuery = (
-  administrationId: AdministrationId,
-  type: 'modification' | 'creation'
-) =>
+const administrationsEtapesTypesPropsQuery = (administrationId: AdministrationId, type: 'modification' | 'creation') =>
   TitresTypesDemarchesTypesEtapesTypes.query()
     .alias('t_d_e')
     .select(raw('true'))
-    .leftJoin(
-      'titres as titresModification',
-      raw('?? = ??', ['t_d_e.titreTypeId', 'titresModification.typeId'])
-    )
+    .leftJoin('titres as titresModification', raw('?? = ??', ['t_d_e.titreTypeId', 'titresModification.typeId']))
     .leftJoin('titresDemarches as demarchesModification', b => {
-      b.on(
-        knex.raw('?? = ??', [
-          'demarchesModification.typeId',
-          't_d_e.demarcheTypeId'
-        ])
-      ).andOn(
-        knex.raw('?? = ??', [
-          'demarchesModification.titreId',
-          'titresModification.id'
-        ])
-      )
+      b.on(knex.raw('?? = ??', ['demarchesModification.typeId', 't_d_e.demarcheTypeId'])).andOn(knex.raw('?? = ??', ['demarchesModification.titreId', 'titresModification.id']))
     })
     .whereExists(
       administrationsTitresQuery(administrationId, 'titres_modification', {
         isGestionnaire: true,
-        isLocale: true
+        isLocale: true,
       })
-        .modify(
-          administrationsTitresTypesTitresStatutsModify,
-          'etapes',
-          'titresModification'
-        )
-        .modify(
-          administrationsTitresTypesEtapesTypesModify,
-          type,
-          't_d_e.titreTypeId',
-          't_d_e.etapeTypeId'
-        )
+        .modify(administrationsTitresTypesTitresStatutsModify, 'etapes', 'titresModification')
+        .modify(administrationsTitresTypesEtapesTypesModify, type, 't_d_e.titreTypeId', 't_d_e.etapeTypeId')
     )
 
 const entreprisesEtapesTypesPropsQuery = (entreprisesIds: string[]) =>
@@ -90,7 +56,7 @@ const etapesTypesQueryModify = (
   {
     titreDemarcheId,
     titreEtapeId,
-    uniqueCheck
+    uniqueCheck,
   }: {
     titreDemarcheId?: string
     titreEtapeId?: string
@@ -103,10 +69,7 @@ const etapesTypesQueryModify = (
   // -> restreint aux types d'étapes du type de la démarche
 
   if (titreDemarcheId) {
-    q.leftJoin(
-      'titresDemarches as td',
-      raw('?? = ?', ['td.id', titreDemarcheId])
-    )
+    q.leftJoin('titresDemarches as td', raw('?? = ?', ['td.id', titreDemarcheId]))
     q.leftJoin('titres as t', 't.id', 'td.titreId')
     q.leftJoin('titresTypes__demarchesTypes__etapesTypes as tde', b => {
       b.on(knex.raw('?? = ??', ['tde.etapeTypeId', 'etapesTypes.id']))
@@ -127,10 +90,7 @@ const etapesTypesQueryModify = (
       q.where(b => {
         b.whereRaw('?? is not true', ['etapesTypes.unique'])
         b.orWhere(c => {
-          const d = TitresEtapes.query()
-            .where({ titreDemarcheId })
-            .where('archive', false)
-            .whereRaw('?? = ??', ['typeId', 'etapesTypes.id'])
+          const d = TitresEtapes.query().where({ titreDemarcheId }).where('archive', false).whereRaw('?? = ??', ['typeId', 'etapesTypes.id'])
 
           if (titreEtapeId) {
             d.whereNot('id', titreEtapeId)
@@ -157,8 +117,4 @@ const etapesTypesQueryModify = (
   // fileCreate('dev/tmp/etapes-types.sql', format(q.toKnexQuery().toString()))
 }
 
-export {
-  administrationsEtapesTypesPropsQuery,
-  entreprisesEtapesTypesPropsQuery,
-  etapesTypesQueryModify
-}
+export { administrationsEtapesTypesPropsQuery, entreprisesEtapesTypesPropsQuery, etapesTypesQueryModify }
diff --git a/packages/api/src/database/queries/permissions/titres-activites.ts b/packages/api/src/database/queries/permissions/titres-activites.ts
index bf04b15a3..f5bb09c22 100644
--- a/packages/api/src/database/queries/permissions/titres-activites.ts
+++ b/packages/api/src/database/queries/permissions/titres-activites.ts
@@ -7,57 +7,35 @@ import Documents from '../../models/documents.js'
 import TitresActivites from '../../models/titres-activites.js'
 
 import { documentsQueryModify } from './documents.js'
-import {
-  administrationsTitresQuery,
-  administrationsActivitesModify
-} from './administrations.js'
+import { administrationsTitresQuery, administrationsActivitesModify } from './administrations.js'
 import { entreprisesTitresQuery } from './entreprises.js'
-import {
-  isAdministration,
-  isAdministrationAdmin,
-  isAdministrationEditeur,
-  isEntreprise,
-  isSuper,
-  User
-} from 'camino-common/src/roles.js'
+import { isAdministration, isAdministrationAdmin, isAdministrationEditeur, isEntreprise, isSuper, User } from 'camino-common/src/roles.js'
 
 const activiteStatuts = [
   {
     id: 'abs',
-    name: 'activitesAbsentes'
+    name: 'activitesAbsentes',
   },
   {
     id: 'enc',
-    name: 'activitesEnConstruction'
+    name: 'activitesEnConstruction',
   },
   {
     id: 'dep',
-    name: 'activitesDeposees'
-  }
+    name: 'activitesDeposees',
+  },
 ]
 
-const titreActivitesCount = (
-  q: QueryBuilder<Titres, Titres | Titres[]>,
-  user: User
-) => {
+const titreActivitesCount = (q: QueryBuilder<Titres, Titres | Titres[]>, user: User) => {
   q.groupBy('titres.id')
 
   if (isSuper(user) || isAdministration(user) || isEntreprise(user)) {
-    const titresActivitesCountQuery = TitresActivites.query()
-      .alias('activitesCount')
-      .select('activitesCount.titreId')
-      .leftJoinRelated('titre')
+    const titresActivitesCountQuery = TitresActivites.query().alias('activitesCount').select('activitesCount.titreId').leftJoinRelated('titre')
 
     activiteStatuts.forEach(({ id, name }) => {
       q.select(`activitesCountJoin.${name}`)
 
-      titresActivitesCountQuery.select(
-        raw('count(??) FILTER (WHERE ?? = ?)', [
-          'activitesCount.activiteStatutId',
-          'activitesCount.activiteStatutId',
-          id
-        ]).as(name)
-      )
+      titresActivitesCountQuery.select(raw('count(??) FILTER (WHERE ?? = ?)', ['activitesCount.activiteStatutId', 'activitesCount.activiteStatutId', id]).as(name))
     })
 
     if (!isSuper(user)) {
@@ -67,21 +45,11 @@ const titreActivitesCount = (
           administrationsTitresQuery(user.administrationId, 'titre', {
             isGestionnaire: true,
             isAssociee: true,
-            isLocale: true
+            isLocale: true,
           })
             .leftJoin('administrations__activitesTypes as a_at', b => {
-              b.on(
-                knex.raw('?? = ??', [
-                  'a_at.administrationId',
-                  'administrations.id'
-                ])
-              )
-              b.andOn(
-                knex.raw('?? = ??', [
-                  'a_at.activiteTypeId',
-                  'activitesCount.typeId'
-                ])
-              )
+              b.on(knex.raw('?? = ??', ['a_at.administrationId', 'administrations.id']))
+              b.andOn(knex.raw('?? = ??', ['a_at.activiteTypeId', 'activitesCount.typeId']))
             })
             .whereRaw('?? is not true', ['a_at.lectureInterdit'])
         )
@@ -91,7 +59,7 @@ const titreActivitesCount = (
         titresActivitesCountQuery.whereExists(
           entreprisesTitresQuery(entreprisesIds, 'titre', {
             isTitulaire: true,
-            isAmodiataire: true
+            isAmodiataire: true,
           })
         )
       } else {
@@ -101,10 +69,7 @@ const titreActivitesCount = (
 
     titresActivitesCountQuery.groupBy('activitesCount.titreId')
 
-    q.leftJoin(
-      titresActivitesCountQuery.as('activitesCountJoin'),
-      raw('?? = ??', ['activitesCountJoin.titreId', 'titres.id'])
-    )
+    q.leftJoin(titresActivitesCountQuery.as('activitesCountJoin'), raw('?? = ??', ['activitesCountJoin.titreId', 'titres.id']))
   } else {
     // les utilisateurs non-authentifiés ou défaut ne peuvent voir aucune activité
     activiteStatuts.forEach(({ name }) => {
@@ -119,11 +84,7 @@ const titreActivitesCount = (
   return q
 }
 
-const titresActivitesQueryModify = (
-  q: QueryBuilder<TitresActivites, TitresActivites | TitresActivites[]>,
-  user: User,
-  select = true
-) => {
+const titresActivitesQueryModify = (q: QueryBuilder<TitresActivites, TitresActivites | TitresActivites[]>, user: User, select = true) => {
   if (select) {
     q.select('titresActivites.*')
   }
@@ -135,7 +96,7 @@ const titresActivitesQueryModify = (
       administrationsTitresQuery(user.administrationId, 'titre', {
         isGestionnaire: true,
         isAssociee: true,
-        isLocale: true
+        isLocale: true,
       }).modify(administrationsActivitesModify, { lecture: true })
     )
   } else if (isEntreprise(user) && user?.entreprises?.length) {
@@ -145,7 +106,7 @@ const titresActivitesQueryModify = (
     q.whereExists(
       entreprisesTitresQuery(entreprisesIds, 'titre', {
         isTitulaire: true,
-        isAmodiataire: true
+        isAmodiataire: true,
       })
     )
   } else if (!isSuper(user)) {
@@ -154,19 +115,13 @@ const titresActivitesQueryModify = (
   }
 
   q.modifyGraph('documents', b => {
-    documentsQueryModify(
-      b as QueryBuilder<Documents, Documents | Documents[]>,
-      user
-    )
+    documentsQueryModify(b as QueryBuilder<Documents, Documents | Documents[]>, user)
   })
 
   return q
 }
 
-const titresActivitesPropsQueryModify = (
-  q: QueryBuilder<TitresActivites, TitresActivites | TitresActivites[]>,
-  user: User
-) => {
+const titresActivitesPropsQueryModify = (q: QueryBuilder<TitresActivites, TitresActivites | TitresActivites[]>, user: User) => {
   q.select('titresActivites.*')
 
   if (isSuper(user)) {
@@ -176,11 +131,11 @@ const titresActivitesPropsQueryModify = (
       q.select(
         administrationsTitresQuery(user.administrationId, 'titre', {
           isGestionnaire: true,
-          isLocale: true
+          isLocale: true,
         })
           .modify(administrationsActivitesModify, {
             lecture: true,
-            modification: true
+            modification: true,
           })
           .select(raw('true'))
           .as('modification')
@@ -191,13 +146,7 @@ const titresActivitesPropsQueryModify = (
   } else if (isEntreprise(user) && user?.entreprises?.length) {
     // vérifie que l'utilisateur a les droits d'édition sur l'activité
     // l'activité doit avoir un statut `absente ou `en cours`
-    q.select(
-      raw('(case when ?? in (?, ?) then true else false end)', [
-        'titresActivites.activiteStatutId',
-        'abs',
-        'enc'
-      ]).as('modification')
-    )
+    q.select(raw('(case when ?? in (?, ?) then true else false end)', ['titresActivites.activiteStatutId', 'abs', 'enc']).as('modification'))
   }
 
   if (!isSuper(user)) {
@@ -209,8 +158,4 @@ const titresActivitesPropsQueryModify = (
   return q
 }
 
-export {
-  titresActivitesQueryModify,
-  titresActivitesPropsQueryModify,
-  titreActivitesCount
-}
+export { titresActivitesQueryModify, titresActivitesPropsQueryModify, titreActivitesCount }
diff --git a/packages/api/src/database/queries/permissions/titres-demarches.test.integration.ts b/packages/api/src/database/queries/permissions/titres-demarches.test.integration.ts
index c7e426b24..af7d0e050 100644
--- a/packages/api/src/database/queries/permissions/titres-demarches.test.integration.ts
+++ b/packages/api/src/database/queries/permissions/titres-demarches.test.integration.ts
@@ -4,10 +4,7 @@ import Titres from '../../models/titres.js'
 import { idGenerate, newDemarcheId } from '../../models/_format/id-create.js'
 import { userSuper } from '../../user-super.js'
 import TitresDemarches from '../../models/titres-demarches.js'
-import {
-  titreDemarcheSuppressionSelectQuery,
-  titresDemarchesQueryModify
-} from './titres-demarches.js'
+import { titreDemarcheSuppressionSelectQuery, titresDemarchesQueryModify } from './titres-demarches.js'
 import TitresEtapes from '../../models/titres-etapes.js'
 import { Administrations } from 'camino-common/src/static/administrations.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
@@ -32,142 +29,131 @@ describe('titresDemarchesQueryModify', () => {
       [
         {
           role: 'admin',
-          administrationId: Administrations['dea-guyane-01'].id
+          administrationId: Administrations['dea-guyane-01'].id,
         },
-        true
+        true,
       ],
       [
         {
           role: 'editeur',
-          administrationId: Administrations['dea-guyane-01'].id
+          administrationId: Administrations['dea-guyane-01'].id,
         },
-        true
+        true,
       ],
       [
         {
           role: 'lecteur',
-          administrationId: Administrations['dea-guyane-01'].id
+          administrationId: Administrations['dea-guyane-01'].id,
         },
-        false
+        false,
       ],
       [{ role: 'entreprise', entreprises: [] }, false],
       [{ role: 'defaut' }, false],
-      [undefined, false]
-    ])(
-      'un utilisateur $user peut supprimer $suppression une démarche qui n’a pas d’étape',
-      async (user, suppression) => {
-        const titreId = idGenerate()
-        await Titres.query().insert([
-          {
-            id: titreId,
-            nom: titreId,
-            titreStatutId: 'val',
-            typeId: 'arm',
-            archive: false
-          }
-        ])
-
-        const titreDemarcheId = newDemarcheId()
-        await TitresDemarches.query().insert([
-          {
-            id: titreDemarcheId,
-            typeId: 'oct',
-            statutId: 'eco',
-            titreId,
-            archive: false
-          }
-        ])
-        const q = TitresDemarches.query()
-        q.select(
-          titreDemarcheSuppressionSelectQuery(
-            'titresDemarches',
-            user ? { ...user, ...testBlankUser } : undefined
-          ).as('suppression')
-        )
-        const titreDemarche = await q.findById(titreDemarcheId)
-
-        expect(titreDemarche).toBeTruthy()
-        expect(titreDemarche!.suppression).toBe(suppression)
-      }
-    )
+      [undefined, false],
+    ])('un utilisateur $user peut supprimer $suppression une démarche qui n’a pas d’étape', async (user, suppression) => {
+      const titreId = idGenerate()
+      await Titres.query().insert([
+        {
+          id: titreId,
+          nom: titreId,
+          titreStatutId: 'val',
+          typeId: 'arm',
+          archive: false,
+        },
+      ])
+
+      const titreDemarcheId = newDemarcheId()
+      await TitresDemarches.query().insert([
+        {
+          id: titreDemarcheId,
+          typeId: 'oct',
+          statutId: 'eco',
+          titreId,
+          archive: false,
+        },
+      ])
+      const q = TitresDemarches.query()
+      q.select(titreDemarcheSuppressionSelectQuery('titresDemarches', user ? { ...user, ...testBlankUser } : undefined).as('suppression'))
+      const titreDemarche = await q.findById(titreDemarcheId)
+
+      expect(titreDemarche).toBeTruthy()
+      expect(titreDemarche!.suppression).toBe(suppression)
+    })
 
     test.each<[TestUser | undefined, boolean]>([
       [{ role: 'super' }, true],
       [
         {
           role: 'admin',
-          administrationId: Administrations['dea-guyane-01'].id
+          administrationId: Administrations['dea-guyane-01'].id,
         },
-        false
+        false,
       ],
       [
         {
           role: 'editeur',
-          administrationId: Administrations['dea-guyane-01'].id
+          administrationId: Administrations['dea-guyane-01'].id,
         },
-        false
+        false,
       ],
       [
         {
           role: 'lecteur',
-          administrationId: Administrations['dea-guyane-01'].id
+          administrationId: Administrations['dea-guyane-01'].id,
         },
-        false
+        false,
       ],
       [{ role: 'entreprise', entreprises: [] }, false],
       [{ role: 'defaut' }, false],
-      [undefined, false]
-    ])(
-      'un utilisateur $role peut supprimer une démarche qui a au moins une étape',
-      async (user, suppression) => {
-        const titreId = idGenerate()
-        await Titres.query().insert([
-          {
-            id: titreId,
-            nom: titreId,
-            titreStatutId: 'val',
-            typeId: 'arm',
-            archive: false
-          }
-        ])
-
-        const titreDemarcheId = newDemarcheId()
-        await TitresDemarches.query().insert([
-          {
-            id: titreDemarcheId,
-            typeId: 'oct',
-            statutId: 'eco',
-            titreId,
-            archive: false
-          }
-        ])
-
-        await TitresEtapes.query().insert({
-          titreDemarcheId,
-          date: toCaminoDate('2020-12-23'),
-          typeId: 'mfr',
-          statutId: 'fai'
-        })
-
-        const q = TitresDemarches.query()
-        q.select(
-          titreDemarcheSuppressionSelectQuery(
-            'titresDemarches',
-            user
-              ? {
-                  ...testBlankUser,
-                  ...user
-                }
-              : undefined
-          ).as('suppression')
-        )
-
-        const titreDemarche = await q.findById(titreDemarcheId)
-
-        expect(titreDemarche).toBeTruthy()
-        expect(titreDemarche!.suppression).toBe(suppression)
-      }
-    )
+      [undefined, false],
+    ])('un utilisateur $role peut supprimer une démarche qui a au moins une étape', async (user, suppression) => {
+      const titreId = idGenerate()
+      await Titres.query().insert([
+        {
+          id: titreId,
+          nom: titreId,
+          titreStatutId: 'val',
+          typeId: 'arm',
+          archive: false,
+        },
+      ])
+
+      const titreDemarcheId = newDemarcheId()
+      await TitresDemarches.query().insert([
+        {
+          id: titreDemarcheId,
+          typeId: 'oct',
+          statutId: 'eco',
+          titreId,
+          archive: false,
+        },
+      ])
+
+      await TitresEtapes.query().insert({
+        titreDemarcheId,
+        date: toCaminoDate('2020-12-23'),
+        typeId: 'mfr',
+        statutId: 'fai',
+      })
+
+      const q = TitresDemarches.query()
+      q.select(
+        titreDemarcheSuppressionSelectQuery(
+          'titresDemarches',
+          user
+            ? {
+                ...testBlankUser,
+                ...user,
+              }
+            : undefined
+        ).as('suppression')
+      )
+
+      const titreDemarche = await q.findById(titreDemarcheId)
+
+      expect(titreDemarche).toBeTruthy()
+      expect(titreDemarche!.suppression).toBe(suppression)
+    })
   })
   describe('titresDemarchesArchive', () => {
     test('Vérifie si le statut archivé masque la démarche du titre', async () => {
@@ -178,8 +164,8 @@ describe('titresDemarchesQueryModify', () => {
           nom: titreId,
           titreStatutId: 'val',
           typeId: 'arm',
-          archive: false
-        }
+          archive: false,
+        },
       ])
 
       const titreDemarcheId = newDemarcheId()
@@ -190,20 +176,17 @@ describe('titresDemarchesQueryModify', () => {
           typeId: 'oct',
           statutId: 'eco',
           titreId,
-          archive: false
+          archive: false,
         },
         {
           id: archivedTitreDemarcheId,
           typeId: 'oct',
           statutId: 'eco',
           titreId,
-          archive: true
-        }
-      ])
-      const q = TitresDemarches.query().whereIn('titresDemarches.id', [
-        titreDemarcheId,
-        archivedTitreDemarcheId
+          archive: true,
+        },
       ])
+      const q = TitresDemarches.query().whereIn('titresDemarches.id', [titreDemarcheId, archivedTitreDemarcheId])
       titresDemarchesQueryModify(q, userSuper)
 
       const titresDemarches = await q
diff --git a/packages/api/src/database/queries/permissions/titres-demarches.ts b/packages/api/src/database/queries/permissions/titres-demarches.ts
index 8dd178d7b..608435c26 100644
--- a/packages/api/src/database/queries/permissions/titres-demarches.ts
+++ b/packages/api/src/database/queries/permissions/titres-demarches.ts
@@ -5,62 +5,29 @@ import TitresEtapes from '../../models/titres-etapes.js'
 import TitresDemarches from '../../models/titres-demarches.js'
 
 import { titresEtapesQueryModify } from './titres-etapes.js'
-import {
-  titresQueryModify,
-  titresDemarchesAdministrationsModificationQuery
-} from './titres.js'
+import { titresQueryModify, titresDemarchesAdministrationsModificationQuery } from './titres.js'
 import { administrationsTitresQuery } from './administrations.js'
 import { entreprisesTitresQuery } from './entreprises.js'
-import {
-  isSuper,
-  isAdministration,
-  isEntreprise,
-  isAdministrationAdmin,
-  isAdministrationEditeur,
-  isBureauDEtudes,
-  User
-} from 'camino-common/src/roles.js'
-
-export const titresDemarchesQueryModify = (
-  q: QueryBuilder<TitresDemarches, TitresDemarches | TitresDemarches[]>,
-  user: User
-) => {
-  q.select('titresDemarches.*')
-    .where('titresDemarches.archive', false)
-    .leftJoinRelated('[titre, type]')
+import { isSuper, isAdministration, isEntreprise, isAdministrationAdmin, isAdministrationEditeur, isBureauDEtudes, User } from 'camino-common/src/roles.js'
+
+export const titresDemarchesQueryModify = (q: QueryBuilder<TitresDemarches, TitresDemarches | TitresDemarches[]>, user: User) => {
+  q.select('titresDemarches.*').where('titresDemarches.archive', false).leftJoinRelated('[titre, type]')
 
   if (!isSuper(user)) {
-    q.whereExists(
-      titresQueryModify(
-        (
-          TitresDemarches.relatedQuery('titre') as QueryBuilder<
-            Titres,
-            Titres | Titres[]
-          >
-        ).alias('titres'),
-        user
-      )
-    )
+    q.whereExists(titresQueryModify((TitresDemarches.relatedQuery('titre') as QueryBuilder<Titres, Titres | Titres[]>).alias('titres'), user))
 
     q.where(b => {
       b.orWhere('titresDemarches.publicLecture', true)
 
       if (isAdministration(user)) {
-        const administrationTitre = administrationsTitresQuery(
-          user.administrationId,
-          'titre',
-          {
-            isGestionnaire: true,
-            isAssociee: true,
-            isLocale: true
-          }
-        )
+        const administrationTitre = administrationsTitresQuery(user.administrationId, 'titre', {
+          isGestionnaire: true,
+          isAssociee: true,
+          isLocale: true,
+        })
 
         b.orWhereExists(administrationTitre)
-      } else if (
-        (isEntreprise(user) || isBureauDEtudes(user)) &&
-        user.entreprises?.length
-      ) {
+      } else if ((isEntreprise(user) || isBureauDEtudes(user)) && user.entreprises?.length) {
         const entreprisesIds = user.entreprises.map(e => e.id)
 
         b.orWhere(c => {
@@ -69,7 +36,7 @@ export const titresDemarchesQueryModify = (
           c.whereExists(
             entreprisesTitresQuery(entreprisesIds, 'titre', {
               isTitulaire: true,
-              isAmodiataire: true
+              isAmodiataire: true,
             })
           )
         })
@@ -78,41 +45,25 @@ export const titresDemarchesQueryModify = (
   }
 
   q.modify(titreDemarcheModificationSelectQuery, 'titresDemarches', user)
-  q.select(
-    titreDemarcheSuppressionSelectQuery('titresDemarches', user).as(
-      'suppression'
-    )
-  )
+  q.select(titreDemarcheSuppressionSelectQuery('titresDemarches', user).as('suppression'))
 
   q.modifyGraph('etapes', b => {
-    titresEtapesQueryModify(
-      b as QueryBuilder<TitresEtapes, TitresEtapes | TitresEtapes[]>,
-      user
-    )
+    titresEtapesQueryModify(b as QueryBuilder<TitresEtapes, TitresEtapes | TitresEtapes[]>, user)
   })
 
-  q.modifyGraph('titre', a =>
-    titresQueryModify(a as QueryBuilder<Titres, Titres | Titres[]>, user)
-  )
+  q.modifyGraph('titre', a => titresQueryModify(a as QueryBuilder<Titres, Titres | Titres[]>, user))
 
   // fileCreate('sql.sql', format(q.toKnexQuery().toString()))
 
   return q
 }
 
-const titreDemarcheModificationSelectQuery = (
-  q: QueryBuilder<TitresDemarches, TitresDemarches | TitresDemarches[]>,
-  demarcheAlias: string,
-  user: User
-): void => {
+const titreDemarcheModificationSelectQuery = (q: QueryBuilder<TitresDemarches, TitresDemarches | TitresDemarches[]>, demarcheAlias: string, user: User): void => {
   let modificationQuery = raw('false')
   if (isSuper(user)) {
     modificationQuery = raw('true')
   } else if (isAdministrationAdmin(user) || isAdministrationEditeur(user)) {
-    modificationQuery = titresDemarchesAdministrationsModificationQuery(
-      user.administrationId,
-      'type'
-    ).whereRaw('?? = ??', ['titresModification.id', 'titresDemarches.titreId'])
+    modificationQuery = titresDemarchesAdministrationsModificationQuery(user.administrationId, 'type').whereRaw('?? = ??', ['titresModification.id', 'titresDemarches.titreId'])
 
     q.groupBy(`${demarcheAlias}.id`, 'type.travaux')
   }
@@ -120,10 +71,7 @@ const titreDemarcheModificationSelectQuery = (
   q.select(modificationQuery.as('modification'))
 }
 
-export const titreDemarcheSuppressionSelectQuery = (
-  demarcheAlias: string,
-  user: User
-): RawBuilder => {
+export const titreDemarcheSuppressionSelectQuery = (demarcheAlias: string, user: User): RawBuilder => {
   if (isSuper(user)) {
     return raw('true')
   }
@@ -133,11 +81,8 @@ export const titreDemarcheSuppressionSelectQuery = (
       TitresEtapes.query()
         .alias('titresEtapesSuppression')
         .select('titresEtapesSuppression.id')
-        .whereRaw('?? = ??', [
-          `${demarcheAlias}.id`,
-          'titresEtapesSuppression.titreDemarcheId'
-        ])
-        .first()
+        .whereRaw('?? = ??', [`${demarcheAlias}.id`, 'titresEtapesSuppression.titreDemarcheId'])
+        .first(),
     ])
   }
 
diff --git a/packages/api/src/database/queries/permissions/titres-etapes.test.integration.ts b/packages/api/src/database/queries/permissions/titres-etapes.test.integration.ts
index 4c8e74fb7..7a2538454 100644
--- a/packages/api/src/database/queries/permissions/titres-etapes.test.integration.ts
+++ b/packages/api/src/database/queries/permissions/titres-etapes.test.integration.ts
@@ -29,8 +29,8 @@ describe('titresEtapesQueryModify', () => {
           nom: titreId,
           titreStatutId: 'val',
           typeId: 'arm',
-          archive: false
-        }
+          archive: false,
+        },
       ])
 
       const titreDemarcheId = newDemarcheId()
@@ -39,7 +39,7 @@ describe('titresEtapesQueryModify', () => {
         typeId: 'oct',
         statutId: 'eco',
         titreId,
-        archive: false
+        archive: false,
       })
       const titreEtapeId = idGenerate()
       const archivedTitreEtapeId = idGenerate()
@@ -50,7 +50,7 @@ describe('titresEtapesQueryModify', () => {
           typeId: 'mfr',
           statutId: 'aco',
           titreDemarcheId,
-          archive: false
+          archive: false,
         },
         {
           id: archivedTitreEtapeId,
@@ -58,8 +58,8 @@ describe('titresEtapesQueryModify', () => {
           typeId: 'mfr',
           statutId: 'aco',
           titreDemarcheId,
-          archive: true
-        }
+          archive: true,
+        },
       ])
       const q = TitresEtapes.query()
       titresEtapesQueryModify(q, userSuper)
diff --git a/packages/api/src/database/queries/permissions/titres-etapes.ts b/packages/api/src/database/queries/permissions/titres-etapes.ts
index 5c6045fd3..804f005eb 100644
--- a/packages/api/src/database/queries/permissions/titres-etapes.ts
+++ b/packages/api/src/database/queries/permissions/titres-etapes.ts
@@ -5,60 +5,30 @@ import TitresEtapes from '../../models/titres-etapes.js'
 import Entreprises from '../../models/entreprises.js'
 
 import { documentsQueryModify } from './documents.js'
-import {
-  administrationsEtapesTypesPropsQuery,
-  entreprisesEtapesTypesPropsQuery
-} from './metas.js'
-import {
-  administrationsTitresTypesEtapesTypesModify,
-  administrationsTitresQuery
-} from './administrations.js'
-import {
-  entreprisesQueryModify,
-  entreprisesTitresQuery
-} from './entreprises.js'
+import { administrationsEtapesTypesPropsQuery, entreprisesEtapesTypesPropsQuery } from './metas.js'
+import { administrationsTitresTypesEtapesTypesModify, administrationsTitresQuery } from './administrations.js'
+import { entreprisesQueryModify, entreprisesTitresQuery } from './entreprises.js'
 import { titresDemarchesQueryModify } from './titres-demarches.js'
 import TitresDemarches from '../../models/titres-demarches.js'
 import Journaux from '../../models/journaux.js'
 import { journauxQueryModify } from './journaux.js'
-import {
-  isAdministration,
-  isAdministrationAdmin,
-  isAdministrationEditeur,
-  isBureauDEtudes,
-  isEntreprise,
-  isSuper,
-  User
-} from 'camino-common/src/roles.js'
+import { isAdministration, isAdministrationAdmin, isAdministrationEditeur, isBureauDEtudes, isEntreprise, isSuper, User } from 'camino-common/src/roles.js'
 
 const titreEtapeModificationQueryBuild = (user: User) => {
   if (isSuper(user)) {
     return raw('true')
   } else if (isAdministrationAdmin(user) || isAdministrationEditeur(user)) {
-    return administrationsEtapesTypesPropsQuery(
-      user.administrationId,
-      'modification'
-    )
-      .whereRaw('?? = ??', [
-        'demarchesModification.id',
-        'titresEtapes.titreDemarcheId'
-      ])
+    return administrationsEtapesTypesPropsQuery(user.administrationId, 'modification')
+      .whereRaw('?? = ??', ['demarchesModification.id', 'titresEtapes.titreDemarcheId'])
       .whereRaw('?? = ??', ['t_d_e.etapeTypeId', 'titresEtapes.typeId'])
-  } else if (
-    (isEntreprise(user) || isBureauDEtudes(user)) &&
-    user.entreprises?.length
-  ) {
-    return entreprisesEtapesTypesPropsQuery(
-      user.entreprises.map(({ id }) => id)
-    ).whereRaw('?? = ??', ['titresEtapes.id', 'e_te.id'])
+  } else if ((isEntreprise(user) || isBureauDEtudes(user)) && user.entreprises?.length) {
+    return entreprisesEtapesTypesPropsQuery(user.entreprises.map(({ id }) => id)).whereRaw('?? = ??', ['titresEtapes.id', 'e_te.id'])
   }
 
   return raw('false')
 }
 
-const specifiquesAdd = (
-  q: QueryBuilder<TitresEtapes, TitresEtapes | TitresEtapes[]>
-) => {
+const specifiquesAdd = (q: QueryBuilder<TitresEtapes, TitresEtapes | TitresEtapes[]>) => {
   // sections spécifiques
   q.leftJoin('titresTypes__demarchesTypes__etapesTypes as tde', b => {
     b.andOn('tde.titreTypeId', 'demarche:titre.typeId')
@@ -69,19 +39,16 @@ const specifiquesAdd = (
   q.groupBy('tde.sections')
 
   // justificatifs spécifiques
-  q.leftJoin(
-    'titresTypes__demarchesTypes__etapesTypes__justificatifsT as tdef',
-    b => {
-      b.andOn('tdef.titreTypeId', 'demarche:titre.typeId')
-      b.andOn('tdef.demarcheTypeId', 'demarche.typeId')
-      b.andOn('tdef.etapeTypeId', 'type.id')
-    }
-  )
+  q.leftJoin('titresTypes__demarchesTypes__etapesTypes__justificatifsT as tdef', b => {
+    b.andOn('tdef.titreTypeId', 'demarche:titre.typeId')
+    b.andOn('tdef.demarcheTypeId', 'demarche.typeId')
+    b.andOn('tdef.etapeTypeId', 'type.id')
+  })
   q.leftJoin('documentsTypes as dt2', 'dt2.id', 'tdef.documentTypeId')
   q.select(
-    raw(
-      "COALESCE(json_agg(json_build_object('id', dt2.id,'nom', dt2.nom, 'optionnel', tdef.optionnel, 'description', tdef.description)) FILTER (WHERE dt2.id IS NOT NULL), '[]')"
-    ).as('justificatifsTypesSpecifiques')
+    raw("COALESCE(json_agg(json_build_object('id', dt2.id,'nom', dt2.nom, 'optionnel', tdef.optionnel, 'description', tdef.description)) FILTER (WHERE dt2.id IS NOT NULL), '[]')").as(
+      'justificatifsTypesSpecifiques'
+    )
   )
   q.groupBy('titresEtapes.id')
 
@@ -95,13 +62,8 @@ const specifiquesAdd = (
  * @params user - utilisateur connecté
  * @returns une requête d'étape(s)
  */
-export const titresEtapesQueryModify = (
-  q: QueryBuilder<TitresEtapes, TitresEtapes | TitresEtapes[]>,
-  user: User
-) => {
-  q.select('titresEtapes.*')
-    .where('titresEtapes.archive', false)
-    .leftJoinRelated('[demarche.titre, type]')
+export const titresEtapesQueryModify = (q: QueryBuilder<TitresEtapes, TitresEtapes | TitresEtapes[]>, user: User) => {
+  q.select('titresEtapes.*').where('titresEtapes.archive', false).leftJoinRelated('[demarche.titre, type]')
 
   q = specifiquesAdd(q)
 
@@ -115,18 +77,10 @@ export const titresEtapesQueryModify = (
           administrationsTitresQuery(user.administrationId, 'demarche:titre', {
             isGestionnaire: true,
             isAssociee: true,
-            isLocale: true
-          }).modify(
-            administrationsTitresTypesEtapesTypesModify,
-            'lecture',
-            'demarche:titre.typeId',
-            'titresEtapes.typeId'
-          )
+            isLocale: true,
+          }).modify(administrationsTitresTypesEtapesTypesModify, 'lecture', 'demarche:titre.typeId', 'titresEtapes.typeId')
         )
-      } else if (
-        (isEntreprise(user) || isBureauDEtudes(user)) &&
-        user.entreprises?.length
-      ) {
+      } else if ((isEntreprise(user) || isBureauDEtudes(user)) && user.entreprises?.length) {
         const entreprisesIds = user.entreprises.map(a => a.id)
 
         b.orWhere(c => {
@@ -135,7 +89,7 @@ export const titresEtapesQueryModify = (
           c.whereExists(
             entreprisesTitresQuery(entreprisesIds, 'demarche:titre', {
               isTitulaire: true,
-              isAmodiataire: true
+              isAmodiataire: true,
             })
           )
         })
@@ -147,45 +101,27 @@ export const titresEtapesQueryModify = (
   q.select(titreEtapeModificationQueryBuild(user).as('modification'))
 
   q.modifyGraph('demarche', b => {
-    titresDemarchesQueryModify(
-      b as QueryBuilder<TitresDemarches, TitresDemarches | TitresDemarches[]>,
-      user
-    )
+    titresDemarchesQueryModify(b as QueryBuilder<TitresDemarches, TitresDemarches | TitresDemarches[]>, user)
   })
 
   q.modifyGraph('documents', b => {
-    documentsQueryModify(
-      b as QueryBuilder<Documents, Documents | Documents[]>,
-      user
-    )
+    documentsQueryModify(b as QueryBuilder<Documents, Documents | Documents[]>, user)
   })
 
   q.modifyGraph('justificatifs', b => {
-    documentsQueryModify(
-      b as QueryBuilder<Documents, Documents | Documents[]>,
-      user
-    )
+    documentsQueryModify(b as QueryBuilder<Documents, Documents | Documents[]>, user)
   })
 
   q.modifyGraph('titulaires', b => {
-    entreprisesQueryModify(
-      b as QueryBuilder<Entreprises, Entreprises | Entreprises[]>,
-      user
-    ).select('titresTitulaires.operateur')
+    entreprisesQueryModify(b as QueryBuilder<Entreprises, Entreprises | Entreprises[]>, user).select('titresTitulaires.operateur')
   })
 
   q.modifyGraph('amodiataires', b => {
-    entreprisesQueryModify(
-      b as QueryBuilder<Entreprises, Entreprises | Entreprises[]>,
-      user
-    ).select('titresAmodiataires.operateur')
+    entreprisesQueryModify(b as QueryBuilder<Entreprises, Entreprises | Entreprises[]>, user).select('titresAmodiataires.operateur')
   })
 
   q.modifyGraph('journaux', b => {
-    journauxQueryModify(
-      b as QueryBuilder<Journaux, Journaux | Journaux[]>,
-      user
-    )
+    journauxQueryModify(b as QueryBuilder<Journaux, Journaux | Journaux[]>, user)
   })
 
   return q
diff --git a/packages/api/src/database/queries/permissions/titres.test.integration.ts b/packages/api/src/database/queries/permissions/titres.test.integration.ts
index 380eeebf7..0a85309f9 100644
--- a/packages/api/src/database/queries/permissions/titres.test.integration.ts
+++ b/packages/api/src/database/queries/permissions/titres.test.integration.ts
@@ -4,13 +4,7 @@ import { dbManager } from '../../../../tests/db-manager.js'
 
 import Titres from '../../models/titres.js'
 import { idGenerate } from '../../models/_format/id-create.js'
-import {
-  titresArmEnDemandeQuery,
-  titresConfidentielSelect,
-  titresModificationSelectQuery,
-  titresQueryModify,
-  titresVisibleByEntrepriseQuery
-} from './titres.js'
+import { titresArmEnDemandeQuery, titresConfidentielSelect, titresModificationSelectQuery, titresQueryModify, titresVisibleByEntrepriseQuery } from './titres.js'
 import AdministrationsTitresTypesTitresStatuts from '../../models/administrations-titres-types-titres-statuts.js'
 import { userSuper } from '../../user-super.js'
 import { AdministrationRole } from 'camino-common/src/roles.js'
@@ -39,48 +33,45 @@ describe('titresQueryModify', () => {
       [false, false, false],
       [false, true, false],
       [true, false, false],
-      [true, true, true]
-    ])(
-      'Vérifie la visibilité d’un titre par une entreprise',
-      async (entreprisesLecture, withTitulaire, visible) => {
-        const mockEntreprise1 = {
-          id: idGenerate(),
-          nom: 'monEntrepriseNom'
-        } as IEntreprise
-
-        const etapeId = idGenerate()
-
-        const mockTitre: Omit<ITitre, 'id'> = {
-          nom: 'titre1',
-          typeId: 'arm',
-          entreprisesLecture,
-          propsTitreEtapesIds: { titulaires: etapeId },
-          demarches: [
-            {
-              typeId: 'oct',
-              etapes: [
-                {
-                  id: etapeId,
-                  date: '2020-01-01',
-                  typeId: 'mfr',
-                  statutId: 'fai',
-                  titulaires: withTitulaire ? [mockEntreprise1] : []
-                }
-              ]
-            } as ITitreDemarche
-          ]
-        }
-
-        await Titres.query().insertGraph(mockTitre)
-
-        const q = Titres.query()
-        titresVisibleByEntrepriseQuery(q, [mockEntreprise1.id])
-
-        const res = await q
-
-        expect(res).toHaveLength(visible ? 1 : 0)
+      [true, true, true],
+    ])('Vérifie la visibilité d’un titre par une entreprise', async (entreprisesLecture, withTitulaire, visible) => {
+      const mockEntreprise1 = {
+        id: idGenerate(),
+        nom: 'monEntrepriseNom',
+      } as IEntreprise
+
+      const etapeId = idGenerate()
+
+      const mockTitre: Omit<ITitre, 'id'> = {
+        nom: 'titre1',
+        typeId: 'arm',
+        entreprisesLecture,
+        propsTitreEtapesIds: { titulaires: etapeId },
+        demarches: [
+          {
+            typeId: 'oct',
+            etapes: [
+              {
+                id: etapeId,
+                date: '2020-01-01',
+                typeId: 'mfr',
+                statutId: 'fai',
+                titulaires: withTitulaire ? [mockEntreprise1] : [],
+              },
+            ],
+          } as ITitreDemarche,
+        ],
       }
-    )
+
+      await Titres.query().insertGraph(mockTitre)
+
+      const q = Titres.query()
+      titresVisibleByEntrepriseQuery(q, [mockEntreprise1.id])
+
+      const res = await q
+
+      expect(res).toHaveLength(visible ? 1 : 0)
+    })
   })
 
   describe('titresArmEnDemandeQuery', () => {
@@ -91,7 +82,7 @@ describe('titresQueryModify', () => {
       demarcheTypeId = 'oct',
       demarcheStatutId = 'ins',
       etapeTypeId = 'mcr',
-      etapeStatutId = 'fav'
+      etapeStatutId = 'fav',
     }: {
       visible: boolean
       titreTypeId?: string
@@ -113,18 +104,16 @@ describe('titresQueryModify', () => {
               {
                 typeId: etapeTypeId,
                 statutId: etapeStatutId,
-                date: '2020-01-01'
-              }
-            ]
-          }
-        ]
+                date: '2020-01-01',
+              },
+            ],
+          },
+        ],
       } as ITitre
 
       const titre = await Titres.query().insertGraph(mockTitre)
 
-      const res = await Titres.query()
-        .where('id', titre.id)
-        .modify(titresArmEnDemandeQuery)
+      const res = await Titres.query().where('id', titre.id).modify(titresArmEnDemandeQuery)
 
       expect(res).toHaveLength(visible ? 1 : 0)
     }
@@ -133,62 +122,44 @@ describe('titresQueryModify', () => {
       ['axm', 'val', false],
       ['axm', 'dmi', false],
       ['arm', 'val', false],
-      ['arm', 'dmi', true]
-    ])(
-      'Vérifie si le titre est une ARM en cours de demande',
-      async (titreTypeId, titreStatutId, visible) => {
-        await titresArmEnDemandeQueryTest({
-          visible,
-          titreTypeId,
-          titreStatutId
-        })
-      }
-    )
+      ['arm', 'dmi', true],
+    ])('Vérifie si le titre est une ARM en cours de demande', async (titreTypeId, titreStatutId, visible) => {
+      await titresArmEnDemandeQueryTest({
+        visible,
+        titreTypeId,
+        titreStatutId,
+      })
+    })
 
     test.each<[DemarcheTypeId, DemarcheStatutId, boolean]>([
       ['pro', 'dep', false],
       ['pro', 'ins', false],
       ['oct', 'dep', false],
-      ['oct', 'ins', true]
-    ])(
-      'Vérifie si la démarche est un octroi en cours d’instruction',
-      async (demarcheTypeId, demarcheStatutId, visible) => {
-        await titresArmEnDemandeQueryTest({
-          visible,
-          demarcheTypeId,
-          demarcheStatutId
-        })
-      }
-    )
+      ['oct', 'ins', true],
+    ])('Vérifie si la démarche est un octroi en cours d’instruction', async (demarcheTypeId, demarcheStatutId, visible) => {
+      await titresArmEnDemandeQueryTest({
+        visible,
+        demarcheTypeId,
+        demarcheStatutId,
+      })
+    })
 
     test.each<[EtapeTypeId, EtapeStatutId, boolean]>([
       ['mdp', 'fai', false],
       ['mdp', 'fav', false],
       ['mcr', 'fai', false],
-      ['mcr', 'fav', true]
-    ])(
-      'Vérifie si il y a une « Recevabilité de la demande » favorable',
-      async (etapeTypeId, etapeStatutId, visible) => {
-        await titresArmEnDemandeQueryTest({
-          visible,
-          etapeTypeId,
-          etapeStatutId
-        })
-      }
-    )
+      ['mcr', 'fav', true],
+    ])('Vérifie si il y a une « Recevabilité de la demande » favorable', async (etapeTypeId, etapeStatutId, visible) => {
+      await titresArmEnDemandeQueryTest({
+        visible,
+        etapeTypeId,
+        etapeStatutId,
+      })
+    })
   })
 
   describe('titresConfidentielQuery', () => {
-    test.each<
-      [
-        boolean | undefined,
-        boolean,
-        boolean,
-        TitreTypeId,
-        TitreStatutId,
-        boolean
-      ]
-    >([
+    test.each<[boolean | undefined, boolean, boolean, TitreTypeId, TitreStatutId, boolean]>([
       [false, false, false, 'arm', 'dmi', true],
       [false, false, true, 'arm', 'dmi', true],
       [undefined, true, false, 'arm', 'dmi', true],
@@ -197,107 +168,92 @@ describe('titresQueryModify', () => {
       [false, false, false, 'arm', 'val', false],
       [true, false, false, 'arm', 'dmi', false],
       [true, false, true, 'arm', 'dmi', false],
-      [true, true, false, 'arm', 'dmi', false]
-    ])(
-      'Vérifie si le titre est confidentiel',
-      async (
+      [true, true, false, 'arm', 'dmi', false],
+    ])('Vérifie si le titre est confidentiel', async (publicLecture, entreprisesLecture, withTitulaire, typeId, statutId, confidentiel) => {
+      const mockEntreprise1 = {
+        id: idGenerate(),
+        nom: 'monEntrepriseNom',
+      } as IEntreprise
+
+      const etapeId = idGenerate()
+
+      const id = idGenerate()
+
+      const mockTitre: ITitre = {
+        id,
+        nom: 'titre1',
+        typeId,
+        titreStatutId: statutId,
         publicLecture,
         entreprisesLecture,
-        withTitulaire,
-        typeId,
-        statutId,
-        confidentiel
-      ) => {
-        const mockEntreprise1 = {
-          id: idGenerate(),
-          nom: 'monEntrepriseNom'
-        } as IEntreprise
-
-        const etapeId = idGenerate()
-
-        const id = idGenerate()
-
-        const mockTitre: ITitre = {
-          id,
-          nom: 'titre1',
-          typeId,
-          titreStatutId: statutId,
-          publicLecture,
-          entreprisesLecture,
-          propsTitreEtapesIds: { titulaires: etapeId },
-          demarches: [
-            {
-              typeId: 'oct',
-              statutId: 'ins',
-              etapes: [
-                {
-                  id: etapeId,
-                  date: '2020-01-01',
-                  typeId: 'mcr',
-                  statutId: 'fav',
-                  titulaires: withTitulaire ? [mockEntreprise1] : []
-                }
-              ]
-            } as ITitreDemarche
-          ]
-        }
-
-        await Titres.query().insertGraph(mockTitre)
-
-        const q = Titres.query()
-          .where('id', id)
-          .modify(titresConfidentielSelect, [mockEntreprise1.id])
-
-        const res = await q
-
-        expect(res).toHaveLength(1)
-        if (confidentiel) {
-          expect(res[0].confidentiel).toBeTruthy()
-        } else {
-          expect(res[0].confidentiel).toBeFalsy()
-        }
+        propsTitreEtapesIds: { titulaires: etapeId },
+        demarches: [
+          {
+            typeId: 'oct',
+            statutId: 'ins',
+            etapes: [
+              {
+                id: etapeId,
+                date: '2020-01-01',
+                typeId: 'mcr',
+                statutId: 'fav',
+                titulaires: withTitulaire ? [mockEntreprise1] : [],
+              },
+            ],
+          } as ITitreDemarche,
+        ],
       }
-    )
+
+      await Titres.query().insertGraph(mockTitre)
+
+      const q = Titres.query().where('id', id).modify(titresConfidentielSelect, [mockEntreprise1.id])
+
+      const res = await q
+
+      expect(res).toHaveLength(1)
+      if (confidentiel) {
+        expect(res[0].confidentiel).toBeTruthy()
+      } else {
+        expect(res[0].confidentiel).toBeFalsy()
+      }
+    })
   })
 
   describe('titresModificationSelectQuery', () => {
     test.each<[AdministrationRole, boolean]>([
       ['admin', true],
       ['editeur', true],
-      ['lecteur', false]
-    ])(
-      'un utilisateur $role d’une administration gestionnaire peut modifier un titre',
-      async (role, modification) => {
-        await Titres.query().insert({
-          nom: idGenerate(),
-          titreStatutId: 'val',
-          typeId: 'arm'
-        })
+      ['lecteur', false],
+    ])('un utilisateur $role d’une administration gestionnaire peut modifier un titre', async (role, modification) => {
+      await Titres.query().insert({
+        nom: idGenerate(),
+        titreStatutId: 'val',
+        typeId: 'arm',
+      })
 
-        const administrationId = 'ope-ptmg-973-01'
+      const administrationId = 'ope-ptmg-973-01'
 
-        await AdministrationsTitresTypesTitresStatuts.query().delete()
+      await AdministrationsTitresTypesTitresStatuts.query().delete()
 
-        const q = Titres.query()
-        q.select(
-          titresModificationSelectQuery(q, {
-            role,
-            ...testBlankUser,
-            administrationId
-          }).as('modification')
-        )
+      const q = Titres.query()
+      q.select(
+        titresModificationSelectQuery(q, {
+          role,
+          ...testBlankUser,
+          administrationId,
+        }).as('modification')
+      )
 
-        const titre = await q.first()
+      const titre = await q.first()
 
-        expect(titre?.modification).toBe(modification)
-      }
-    )
+      expect(titre?.modification).toBe(modification)
+    })
 
     test('une administration non gestionnaire ne peut pas modifier un titre', async () => {
       await Titres.query().insert({
         nom: idGenerate(),
         titreStatutId: 'val',
-        typeId: 'arm'
+        typeId: 'arm',
       })
 
       const administrationId = 'pre-97302-01'
@@ -310,7 +266,7 @@ describe('titresQueryModify', () => {
           nom: '',
           prenom: '',
           role: 'admin',
-          administrationId
+          administrationId,
         }).as('modification')
       )
 
@@ -323,27 +279,20 @@ describe('titresQueryModify', () => {
       [userSuper, true],
       [{ role: 'entreprise', entreprises: [] }, false],
       [{ role: 'lecteur', administrationId: 'dea-guyane-01' }, false],
-      [{ role: 'defaut' }, false]
-    ])(
-      'Vérifie si un profil $role peut modifier un titre',
-      async (user, modification) => {
-        await Titres.query().insert({
-          nom: idGenerate(),
-          titreStatutId: 'val',
-          typeId: 'arm'
-        })
-        const q = Titres.query()
-        q.select(
-          titresModificationSelectQuery(q, { ...user, ...testBlankUser }).as(
-            'modification'
-          )
-        )
-
-        const titre = await q.first()
-
-        expect(titre?.modification).toBe(modification)
-      }
-    )
+      [{ role: 'defaut' }, false],
+    ])('Vérifie si un profil $role peut modifier un titre', async (user, modification) => {
+      await Titres.query().insert({
+        nom: idGenerate(),
+        titreStatutId: 'val',
+        typeId: 'arm',
+      })
+      const q = Titres.query()
+      q.select(titresModificationSelectQuery(q, { ...user, ...testBlankUser }).as('modification'))
+
+      const titre = await q.first()
+
+      expect(titre?.modification).toBe(modification)
+    })
   })
 
   describe('titresArchive', () => {
@@ -356,15 +305,15 @@ describe('titresQueryModify', () => {
           nom: archivedTitreId,
           titreStatutId: 'val',
           typeId: 'arm',
-          archive: true
+          archive: true,
         },
         {
           id: titreId,
           nom: titreId,
           titreStatutId: 'val',
           typeId: 'arm',
-          archive: false
-        }
+          archive: false,
+        },
       ])
 
       const q = Titres.query().whereIn('id', [archivedTitreId, titreId])
diff --git a/packages/api/src/database/queries/permissions/titres.ts b/packages/api/src/database/queries/permissions/titres.ts
index a2f3729fe..2e962d679 100644
--- a/packages/api/src/database/queries/permissions/titres.ts
+++ b/packages/api/src/database/queries/permissions/titres.ts
@@ -8,89 +8,48 @@ import TitresDemarches from '../../models/titres-demarches.js'
 import TitresActivites from '../../models/titres-activites.js'
 import Entreprises from '../../models/entreprises.js'
 
-import {
-  titresActivitesQueryModify,
-  titresActivitesPropsQueryModify,
-  titreActivitesCount
-} from './titres-activites.js'
+import { titresActivitesQueryModify, titresActivitesPropsQueryModify, titreActivitesCount } from './titres-activites.js'
 import { titresDemarchesQueryModify } from './titres-demarches.js'
-import {
-  administrationsTitresTypesTitresStatutsModify,
-  administrationsTitresQuery
-} from './administrations.js'
-import {
-  entreprisesQueryModify,
-  entreprisesTitresQuery
-} from './entreprises.js'
+import { administrationsTitresTypesTitresStatutsModify, administrationsTitresQuery } from './administrations.js'
+import { entreprisesQueryModify, entreprisesTitresQuery } from './entreprises.js'
 import TitresEtapes from '../../models/titres-etapes.js'
 import AdministrationsModel from '../../models/administrations.js'
 import UtilisateursTitres from '../../models/utilisateurs--titres.js'
-import {
-  isAdministration,
-  isAdministrationAdmin,
-  isAdministrationEditeur,
-  isBureauDEtudes,
-  isEntreprise,
-  isSuper,
-  User
-} from 'camino-common/src/roles.js'
-import {
-  AdministrationId,
-  Administrations
-} from 'camino-common/src/static/administrations.js'
-
-const titresDemarchesAdministrationsModificationQuery = (
-  administrationId: AdministrationId,
-  demarcheTypeAlias: string
-) => {
-  const administrationQuery = administrationsTitresQuery(
-    administrationId,
-    'titres_modification',
-    {
-      isGestionnaire: true,
-      isLocale: true
-    }
-  )
+import { isAdministration, isAdministrationAdmin, isAdministrationEditeur, isBureauDEtudes, isEntreprise, isSuper, User } from 'camino-common/src/roles.js'
+import { AdministrationId, Administrations } from 'camino-common/src/static/administrations.js'
 
-  administrationsTitresTypesTitresStatutsModify(
-    administrationQuery,
-    'demarches',
-    'titresModification',
-    b => {
-      if (['dre', 'dea'].includes(Administrations[administrationId].typeId)) {
-        // Les DREALs peuvent créer des travaux
-        b.orWhere(`${demarcheTypeAlias}.travaux`, true)
-      } else {
-        // Pour les démarches du droit minier, on conserve le comportement standard
-        b.andWhereRaw('?? is not true', [`${demarcheTypeAlias}.travaux`])
-      }
+const titresDemarchesAdministrationsModificationQuery = (administrationId: AdministrationId, demarcheTypeAlias: string) => {
+  const administrationQuery = administrationsTitresQuery(administrationId, 'titres_modification', {
+    isGestionnaire: true,
+    isLocale: true,
+  })
+
+  administrationsTitresTypesTitresStatutsModify(administrationQuery, 'demarches', 'titresModification', b => {
+    if (['dre', 'dea'].includes(Administrations[administrationId].typeId)) {
+      // Les DREALs peuvent créer des travaux
+      b.orWhere(`${demarcheTypeAlias}.travaux`, true)
+    } else {
+      // Pour les démarches du droit minier, on conserve le comportement standard
+      b.andWhereRaw('?? is not true', [`${demarcheTypeAlias}.travaux`])
     }
-  )
+  })
 
-  return Titres.query()
-    .alias('titresModification')
-    .select(raw('true'))
-    .whereExists(administrationQuery)
+  return Titres.query().alias('titresModification').select(raw('true')).whereExists(administrationQuery)
 }
 
-export const titresVisibleByEntrepriseQuery = (
-  q: QueryBuilder<Titres, Titres | Titres[]>,
-  entreprisesIds: string[]
-) => {
+export const titresVisibleByEntrepriseQuery = (q: QueryBuilder<Titres, Titres | Titres[]>, entreprisesIds: string[]) => {
   q.where('titres.entreprisesLecture', true)
 
   // titres dont il est titulaire ou amodiataire
   q.whereExists(
     entreprisesTitresQuery(entreprisesIds, 'titres', {
       isTitulaire: true,
-      isAmodiataire: true
+      isAmodiataire: true,
     })
   )
 }
 
-export const titresArmEnDemandeQuery = (
-  q: QueryBuilder<Titres, Titres | Titres[]>
-) => {
+export const titresArmEnDemandeQuery = (q: QueryBuilder<Titres, Titres | Titres[]>) => {
   // Le titre doit être une ARM en demande initiale avec une « Recevabilité de la demande » favorable
   q.where('titres.typeId', 'arm')
   q.where('titres.titreStatutId', 'dmi')
@@ -110,10 +69,7 @@ export const titresArmEnDemandeQuery = (
   )
 }
 
-export const titresConfidentielSelect = (
-  q: QueryBuilder<Titres, Titres | Titres[]>,
-  entreprisesIds: string[]
-) =>
+export const titresConfidentielSelect = (q: QueryBuilder<Titres, Titres | Titres[]>, entreprisesIds: string[]) =>
   // ajoute la colonne « confidentiel » si la demande n’est normalement pas visible par l’entreprise mais l’est car
   // c’est une demande en cours
   q.select(
@@ -127,15 +83,12 @@ export const titresConfidentielSelect = (
       .as('confidentiel')
   )
 
-export const titresModificationSelectQuery = (
-  q: QueryBuilder<Titres, Titres | Titres[]>,
-  user: User
-): QueryBuilder<AdministrationsModel> | RawBuilder => {
+export const titresModificationSelectQuery = (q: QueryBuilder<Titres, Titres | Titres[]>, user: User): QueryBuilder<AdministrationsModel> | RawBuilder => {
   if (isSuper(user)) {
     return raw('true')
   } else if (isAdministrationAdmin(user) || isAdministrationEditeur(user)) {
     return administrationsTitresQuery(user.administrationId, 'titres', {
-      isGestionnaire: true
+      isGestionnaire: true,
     })
       .modify(administrationsTitresTypesTitresStatutsModify, 'titres', 'titres')
       .select(raw('true'))
@@ -144,11 +97,7 @@ export const titresModificationSelectQuery = (
   return raw('false')
 }
 
-const titresQueryModify = (
-  q: QueryBuilder<Titres, Titres | Titres[]>,
-  user: User,
-  demandeEnCours?: boolean | null
-) => {
+const titresQueryModify = (q: QueryBuilder<Titres, Titres | Titres[]>, user: User, demandeEnCours?: boolean | null) => {
   q.select('titres.*').where('titres.archive', false)
 
   // si
@@ -161,10 +110,7 @@ const titresQueryModify = (
       b.where('titres.publicLecture', true)
 
       // si l'utilisateur est `entreprise`
-      if (
-        (isEntreprise(user) || isBureauDEtudes(user)) &&
-        user.entreprises?.length
-      ) {
+      if ((isEntreprise(user) || isBureauDEtudes(user)) && user.entreprises?.length) {
         const entreprisesIds = user.entreprises.map(e => e.id)
 
         b.orWhere(c => {
@@ -188,7 +134,7 @@ const titresQueryModify = (
           administrationsTitresQuery(user.administrationId, 'titres', {
             isGestionnaire: true,
             isAssociee: true,
-            isLocale: true
+            isLocale: true,
           })
         )
       }
@@ -210,10 +156,7 @@ const titresQueryModify = (
     )
   }
 
-  if (
-    (isEntreprise(user) || isBureauDEtudes(user)) &&
-    user.entreprises?.length
-  ) {
+  if ((isEntreprise(user) || isBureauDEtudes(user)) && user.entreprises?.length) {
     if (demandeEnCours) {
       q.modify(
         titresConfidentielSelect,
@@ -224,38 +167,23 @@ const titresQueryModify = (
 
   // visibilité des étapes
   q.modifyGraph('demarches', b => {
-    titresDemarchesQueryModify(
-      b as QueryBuilder<TitresDemarches, TitresDemarches | TitresDemarches[]>,
-      user
-    )
+    titresDemarchesQueryModify(b as QueryBuilder<TitresDemarches, TitresDemarches | TitresDemarches[]>, user)
   })
 
   titreActivitesCount(q, user)
 
   // visibilité des activités
   q.modifyGraph('activites', b => {
-    titresActivitesQueryModify(
-      b as QueryBuilder<TitresActivites, TitresActivites | TitresActivites[]>,
-      user
-    )
-    titresActivitesPropsQueryModify(
-      b as QueryBuilder<TitresActivites, TitresActivites | TitresActivites[]>,
-      user
-    )
+    titresActivitesQueryModify(b as QueryBuilder<TitresActivites, TitresActivites | TitresActivites[]>, user)
+    titresActivitesPropsQueryModify(b as QueryBuilder<TitresActivites, TitresActivites | TitresActivites[]>, user)
   })
 
   q.modifyGraph('titulaires', b => {
-    entreprisesQueryModify(
-      b as QueryBuilder<Entreprises, Entreprises | Entreprises[]>,
-      user
-    ).select('titresTitulaires.operateur')
+    entreprisesQueryModify(b as QueryBuilder<Entreprises, Entreprises | Entreprises[]>, user).select('titresTitulaires.operateur')
   })
 
   q.modifyGraph('amodiataires', b => {
-    entreprisesQueryModify(
-      b as QueryBuilder<Entreprises, Entreprises | Entreprises[]>,
-      user
-    ).select('titresAmodiataires.operateur')
+    entreprisesQueryModify(b as QueryBuilder<Entreprises, Entreprises | Entreprises[]>, user).select('titresAmodiataires.operateur')
   })
 
   // visibilité du doublonTitre
diff --git a/packages/api/src/database/queries/permissions/utilisateurs.test.integration.ts b/packages/api/src/database/queries/permissions/utilisateurs.test.integration.ts
index facb7eebc..e2ea8cb19 100644
--- a/packages/api/src/database/queries/permissions/utilisateurs.test.integration.ts
+++ b/packages/api/src/database/queries/permissions/utilisateurs.test.integration.ts
@@ -26,7 +26,7 @@ const mockUser: IUtilisateur = {
   nom: 'utilisateurNom',
   email: 'utilisateurEmail',
   administrationId: mockAdministration.id,
-  dateCreation: '2022-05-12'
+  dateCreation: '2022-05-12',
 }
 
 describe('utilisateursQueryModify', () => {
@@ -36,21 +36,14 @@ describe('utilisateursQueryModify', () => {
     [{ role: 'editeur', administrationId: mockAdministration.id }, true],
     [{ role: 'lecteur', administrationId: mockAdministration.id }, true],
     [{ role: 'entreprise', entreprises: [] }, true],
-    [{ role: 'defaut' }, false]
-  ])(
-    "Vérifie l'écriture de la requête sur un utilisateur",
-    async (user, voit) => {
-      const utilisateurs = await utilisateursGet(
-        { noms: mockUser.nom },
-        {},
-        { ...user, ...testBlankUser }
-      )
-      if (voit) {
-        expect(utilisateurs).toHaveLength(1)
-        expect(utilisateurs[0]).toMatchSnapshot()
-      } else {
-        expect(utilisateurs).toHaveLength(0)
-      }
+    [{ role: 'defaut' }, false],
+  ])("Vérifie l'écriture de la requête sur un utilisateur", async (user, voit) => {
+    const utilisateurs = await utilisateursGet({ noms: mockUser.nom }, {}, { ...user, ...testBlankUser })
+    if (voit) {
+      expect(utilisateurs).toHaveLength(1)
+      expect(utilisateurs[0]).toMatchSnapshot()
+    } else {
+      expect(utilisateurs).toHaveLength(0)
     }
-  )
+  })
 })
diff --git a/packages/api/src/database/queries/permissions/utilisateurs.ts b/packages/api/src/database/queries/permissions/utilisateurs.ts
index 0f60c5881..5b0f9f23f 100644
--- a/packages/api/src/database/queries/permissions/utilisateurs.ts
+++ b/packages/api/src/database/queries/permissions/utilisateurs.ts
@@ -3,19 +3,9 @@ import { QueryBuilder } from 'objection'
 import Utilisateurs from '../../models/utilisateurs.js'
 import Entreprises from '../../models/entreprises.js'
 import { entreprisesQueryModify } from './entreprises.js'
-import {
-  isAdministrationEditeur,
-  isAdministrationLecteur,
-  isBureauDEtudes,
-  isDefault,
-  isEntreprise,
-  User
-} from 'camino-common/src/roles.js'
+import { isAdministrationEditeur, isAdministrationLecteur, isBureauDEtudes, isDefault, isEntreprise, User } from 'camino-common/src/roles.js'
 
-export const utilisateursQueryModify = (
-  q: QueryBuilder<Utilisateurs, Utilisateurs | Utilisateurs[]>,
-  user: User
-) => {
+export const utilisateursQueryModify = (q: QueryBuilder<Utilisateurs, Utilisateurs | Utilisateurs[]>, user: User) => {
   q.select('utilisateurs.*')
 
   q.whereNotNull('utilisateurs.email')
@@ -24,22 +14,12 @@ export const utilisateursQueryModify = (
     // un utilisateur 'editeur' ou 'lecteur'
     // ne voit que les utilisateurs de son administration
     q.where('utilisateurs.administrationId', user.administrationId)
-  } else if (
-    (isEntreprise(user) || isBureauDEtudes(user)) &&
-    user.entreprises.length
-  ) {
+  } else if ((isEntreprise(user) || isBureauDEtudes(user)) && user.entreprises.length) {
     // un utilisateur entreprise
     // ne voit que les utilisateurs de son entreprise
     const entreprisesIds = user.entreprises.map(e => e.id)
 
-    q.whereExists(
-      (
-        Utilisateurs.relatedQuery('entreprises') as QueryBuilder<
-          Entreprises,
-          Entreprises | Entreprises[]
-        >
-      ).whereIn('entreprises.id', entreprisesIds)
-    )
+    q.whereExists((Utilisateurs.relatedQuery('entreprises') as QueryBuilder<Entreprises, Entreprises | Entreprises[]>).whereIn('entreprises.id', entreprisesIds))
   } else if (user && isDefault(user)) {
     // un utilisateur "defaut" ne voit que son propre profil
     q.where('id', user.id)
@@ -48,12 +28,7 @@ export const utilisateursQueryModify = (
     q.where(false)
   }
 
-  q.modifyGraph('entreprises', u =>
-    entreprisesQueryModify(
-      u as QueryBuilder<Entreprises, Entreprises | Entreprises[]>,
-      user
-    )
-  )
+  q.modifyGraph('entreprises', u => entreprisesQueryModify(u as QueryBuilder<Entreprises, Entreprises | Entreprises[]>, user))
 
   return q
 }
diff --git a/packages/api/src/database/queries/titres-activites.test.integration.ts b/packages/api/src/database/queries/titres-activites.test.integration.ts
index b390ae48f..3f8ac8869 100644
--- a/packages/api/src/database/queries/titres-activites.test.integration.ts
+++ b/packages/api/src/database/queries/titres-activites.test.integration.ts
@@ -25,7 +25,7 @@ describe('teste les requêtes sur les activités', () => {
       id: titreId,
       nom: idGenerate(),
       titreStatutId: 'val',
-      typeId: 'arm'
+      typeId: 'arm',
     })
 
     const titreActiviteId = 'titreActiviteId'
@@ -36,7 +36,7 @@ describe('teste les requêtes sur les activités', () => {
       date: getCurrent(),
       activiteStatutId: 'dep',
       periodeId: 1,
-      annee: 2000
+      annee: 2000,
     })
 
     const adminDGALN: UserNotNull = {
@@ -45,14 +45,10 @@ describe('teste les requêtes sur les activités', () => {
       nom: 'utilisateurNom',
       prenom: 'utilisateurPrenom',
       email: 'utilisateurEmail',
-      administrationId: 'min-mtes-dgaln-01'
+      administrationId: 'min-mtes-dgaln-01',
     }
 
-    const actual = await titresActivitesGet(
-      {},
-      { fields: { id: {} } },
-      adminDGALN
-    )
+    const actual = await titresActivitesGet({}, { fields: { id: {} } }, adminDGALN)
 
     expect(actual).toHaveLength(1)
     expect(actual[0].id).toEqual(titreActiviteId)
diff --git a/packages/api/src/database/queries/titres-activites.ts b/packages/api/src/database/queries/titres-activites.ts
index eeb4f17f7..1b84a4d18 100644
--- a/packages/api/src/database/queries/titres-activites.ts
+++ b/packages/api/src/database/queries/titres-activites.ts
@@ -1,12 +1,6 @@
 import { raw, QueryBuilder, RawBuilder } from 'objection'
 
-import {
-  ITitreActivite,
-  IFields,
-  ITitreActiviteColonneId,
-  Index,
-  IColonne
-} from '../../types.js'
+import { ITitreActivite, IFields, ITitreActiviteColonneId, Index, IColonne } from '../../types.js'
 
 import options from './_options.js'
 import { fieldsFormat } from './graph/fields-format.js'
@@ -15,15 +9,8 @@ import graphBuild from './graph/build.js'
 
 import { titresFiltersQueryModify } from './_titres-filters.js'
 import TitresActivites from '../models/titres-activites.js'
-import {
-  titresActivitesQueryModify,
-  titresActivitesPropsQueryModify
-} from './permissions/titres-activites.js'
-import {
-  isAdministrationAdmin,
-  isAdministrationEditeur,
-  User
-} from 'camino-common/src/roles.js'
+import { titresActivitesQueryModify, titresActivitesPropsQueryModify } from './permissions/titres-activites.js'
+import { isAdministrationAdmin, isAdministrationEditeur, User } from 'camino-common/src/roles.js'
 
 /**
  * Modifie la requête en fonction des paramètres de filtre
@@ -53,7 +40,7 @@ const titresActivitesFiltersQueryModify = (
     titresTerritoires,
     titresTypesIds,
     titresDomainesIds,
-    titresStatutsIds
+    titresStatutsIds,
   }: {
     typesIds?: string[] | null
     statutsIds?: string[] | null
@@ -94,7 +81,7 @@ const titresActivitesFiltersQueryModify = (
       entreprisesIds: titresEntreprisesIds,
       substancesIds: titresSubstancesIds,
       references: titresReferences,
-      territoires: titresTerritoires
+      territoires: titresTerritoires,
     },
     q,
     'titre',
@@ -111,13 +98,8 @@ const titresActivitesFiltersQueryModify = (
  *
  */
 
-const titreActivitesQueryBuild = (
-  { fields }: { fields?: IFields },
-  user: User
-) => {
-  const graph = fields
-    ? graphBuild(fieldsTitreAdd(fields), 'activite', fieldsFormat)
-    : options.titresActivites.graph
+const titreActivitesQueryBuild = ({ fields }: { fields?: IFields }, user: User) => {
+  const graph = fields ? graphBuild(fieldsTitreAdd(fields), 'activite', fieldsFormat) : options.titresActivites.graph
 
   const q = TitresActivites.query().withGraphFetched(graph)
 
@@ -126,11 +108,7 @@ const titreActivitesQueryBuild = (
 
   // dans titresActivitesPropsQueryModify quand on est une administration on utilise les 3 colonnes suivantes pour une sous requête.
   if (isAdministrationAdmin(user) || isAdministrationEditeur(user)) {
-    q.groupBy(
-      'titresActivites.id',
-      'titre.type_id',
-      'titre.propsTitreEtapesIds'
-    )
+    q.groupBy('titresActivites.id', 'titre.type_id', 'titre.propsTitreEtapesIds')
   }
 
   return q
@@ -146,11 +124,7 @@ const titreActivitesQueryBuild = (
  *
  */
 
-const titreActiviteGet = async (
-  id: string,
-  { fields }: { fields?: IFields },
-  user: User
-) => {
+const titreActiviteGet = async (id: string, { fields }: { fields?: IFields }, user: User) => {
   const q = titreActivitesQueryBuild({ fields }, user)
 
   if (!q) return undefined
@@ -167,13 +141,13 @@ const titresActivitesColonnes = {
   titre: {
     id: 'titre.nom',
     relation: 'titre',
-    groupBy: true
+    groupBy: true,
   },
   titreDomaine: { id: 'titre.domaineId', relation: 'titre', groupBy: true },
   titreType: {
     id: 'titre:type:type.nom',
     relation: 'titre.type.type',
-    groupBy: true
+    groupBy: true,
   },
   titreStatut: { id: 'titre.titreStatutId', relation: 'titre', groupBy: true },
   titulaires: {
@@ -184,11 +158,11 @@ const titresActivitesColonnes = {
     order by "titre:titulaires"."nom"
   )`),
     relation: 'titre.titulaires',
-    groupBy: false
+    groupBy: false,
   },
   annee: { id: 'annee' },
   periode: { id: 'periodeId' },
-  statut: { id: 'activiteStatutId' }
+  statut: { id: 'activiteStatutId' },
 } as Index<IColonne<string | RawBuilder>>
 
 /**
@@ -231,7 +205,7 @@ const titresActivitesGet = async (
     titresTypesIds,
     titresDomainesIds,
     titresStatutsIds,
-    titresIds
+    titresIds,
   }: {
     page?: number | null
     intervalle?: number | null
@@ -266,7 +240,7 @@ const titresActivitesGet = async (
       titresTerritoires,
       titresTypesIds,
       titresDomainesIds,
-      titresStatutsIds
+      titresStatutsIds,
     },
     q
   )
@@ -330,7 +304,7 @@ const titresActivitesCount = async (
     titresTerritoires,
     titresTypesIds,
     titresDomainesIds,
-    titresStatutsIds
+    titresStatutsIds,
   }: {
     typesIds?: string[] | null
     statutsIds?: string[] | null
@@ -361,7 +335,7 @@ const titresActivitesCount = async (
       titresTerritoires,
       titresTypesIds,
       titresDomainesIds,
-      titresStatutsIds
+      titresStatutsIds,
     },
     q
   )
@@ -372,34 +346,14 @@ const titresActivitesCount = async (
 }
 
 const titresActivitesUpsert = async (titreActivites: ITitreActivite[]) =>
-  TitresActivites.query()
-    .withGraphFetched(options.titresActivites.graph)
-    .upsertGraph(titreActivites, options.titresActivites.update)
-
-const titreActiviteUpdate = async (
-  id: string,
-  titreActivite: Partial<ITitreActivite>
-) => TitresActivites.query().patchAndFetchById(id, { ...titreActivite, id })
-
-const titreActiviteDelete = async (
-  id: string,
-  { fields }: { fields?: IFields }
-) => {
-  const graph = fields
-    ? graphBuild(fieldsTitreAdd(fields), 'activite', fieldsFormat)
-    : options.titresActivites.graph
-
-  return TitresActivites.query()
-    .withGraphFetched(graph)
-    .deleteById(id)
-    .returning('*')
-}
+  TitresActivites.query().withGraphFetched(options.titresActivites.graph).upsertGraph(titreActivites, options.titresActivites.update)
 
-export {
-  titreActiviteGet,
-  titresActivitesCount,
-  titresActivitesUpsert,
-  titresActivitesGet,
-  titreActiviteUpdate,
-  titreActiviteDelete
+const titreActiviteUpdate = async (id: string, titreActivite: Partial<ITitreActivite>) => TitresActivites.query().patchAndFetchById(id, { ...titreActivite, id })
+
+const titreActiviteDelete = async (id: string, { fields }: { fields?: IFields }) => {
+  const graph = fields ? graphBuild(fieldsTitreAdd(fields), 'activite', fieldsFormat) : options.titresActivites.graph
+
+  return TitresActivites.query().withGraphFetched(graph).deleteById(id).returning('*')
 }
+
+export { titreActiviteGet, titresActivitesCount, titresActivitesUpsert, titresActivitesGet, titreActiviteUpdate, titreActiviteDelete }
diff --git a/packages/api/src/database/queries/titres-demarches.test.integration.ts b/packages/api/src/database/queries/titres-demarches.test.integration.ts
index c60f9768f..e85e4f414 100644
--- a/packages/api/src/database/queries/titres-demarches.test.integration.ts
+++ b/packages/api/src/database/queries/titres-demarches.test.integration.ts
@@ -22,13 +22,13 @@ describe('teste les requêtes sur les démarches', () => {
       const titre = await Titres.query().insert({
         nom: idGenerate(),
         titreStatutId: 'val',
-        typeId: 'arm'
+        typeId: 'arm',
       })
 
       const demarche = await TitresDemarches.query().insert({
         titreId: titre.id,
         typeId: 'oct',
-        statutId: 'eco'
+        statutId: 'eco',
       })
       expect(demarche.archive).toBeFalsy()
 
@@ -37,16 +37,14 @@ describe('teste les requêtes sur les démarches', () => {
           titreDemarcheId: demarche.id,
           typeId: 'mfr',
           statutId: 'aco',
-          date: toCaminoDate('2020-02-02')
+          date: toCaminoDate('2020-02-02'),
         })
         expect(etape.archive).toBeFalsy()
       }
 
       await titreDemarcheArchive(demarche.id)
 
-      const archiveDemarche = await TitresDemarches.query()
-        .findById(demarche.id)
-        .withGraphFetched('etapes')
+      const archiveDemarche = await TitresDemarches.query().findById(demarche.id).withGraphFetched('etapes')
 
       expect(archiveDemarche).not.toBeUndefined()
       expect(archiveDemarche?.archive).toBe(true)
diff --git a/packages/api/src/database/queries/titres-demarches.ts b/packages/api/src/database/queries/titres-demarches.ts
index afef011dd..22d4df117 100644
--- a/packages/api/src/database/queries/titres-demarches.ts
+++ b/packages/api/src/database/queries/titres-demarches.ts
@@ -1,33 +1,19 @@
 import { Transaction, QueryBuilder, RawBuilder, raw } from 'objection'
 
-import {
-  ITitreDemarche,
-  ITitreEtapeFiltre,
-  ITitreDemarcheColonneId,
-  IColonne,
-  IFields,
-  Index,
-  DemarcheId
-} from '../../types.js'
+import { ITitreDemarche, ITitreEtapeFiltre, ITitreDemarcheColonneId, IColonne, IFields, Index, DemarcheId } from '../../types.js'
 
 import options from './_options.js'
 import { fieldsFormat } from './graph/fields-format.js'
 import graphBuild from './graph/build.js'
 import { fieldsTitreAdd } from './graph/fields-add.js'
 
-import TitresDemarches, {
-  DBTitresDemarches
-} from '../models/titres-demarches.js'
+import TitresDemarches, { DBTitresDemarches } from '../models/titres-demarches.js'
 import { titresDemarchesQueryModify } from './permissions/titres-demarches.js'
 import { titresFiltersQueryModify } from './_titres-filters.js'
 import TitresEtapes from '../models/titres-etapes.js'
 import { User } from 'camino-common/src/roles'
 
-const etapesIncluesExcluesBuild = (
-  q: QueryBuilder<TitresDemarches, TitresDemarches[]>,
-  etapes: ITitreEtapeFiltre[],
-  mode: 'etapesInclues' | 'etapesExclues'
-) => {
+const etapesIncluesExcluesBuild = (q: QueryBuilder<TitresDemarches, TitresDemarches[]>, etapes: ITitreEtapeFiltre[], mode: 'etapesInclues' | 'etapesExclues') => {
   const raw = etapes
     .map(({ statutId, dateDebut, dateFin }) => {
       const statutCond = statutId ? 'and etapes.statut_id = ?' : ''
@@ -75,7 +61,7 @@ const titresDemarchesFiltersQueryModify = (
     titresSubstancesIds,
     titresReferences,
     titresTerritoires,
-    travaux
+    travaux,
   }: {
     typesIds?: string[] | null
     statutsIds?: string[] | null
@@ -136,7 +122,7 @@ const titresDemarchesFiltersQueryModify = (
       entreprisesIds: titresEntreprisesIds,
       substancesIds: titresSubstancesIds,
       references: titresReferences,
-      territoires: titresTerritoires
+      territoires: titresTerritoires,
     },
     q,
     'titre',
@@ -144,13 +130,8 @@ const titresDemarchesFiltersQueryModify = (
   )
 }
 
-const titresDemarchesQueryBuild = (
-  { fields }: { fields?: IFields },
-  user: User
-) => {
-  const graph = fields
-    ? graphBuild(fieldsTitreAdd(fields), 'demarches', fieldsFormat)
-    : options.titresDemarches.graph
+const titresDemarchesQueryBuild = ({ fields }: { fields?: IFields }, user: User) => {
+  const graph = fields ? graphBuild(fieldsTitreAdd(fields), 'demarches', fieldsFormat) : options.titresDemarches.graph
 
   const q = TitresDemarches.query().withGraphFetched(graph)
 
@@ -174,7 +155,7 @@ const titresDemarchesCount = async (
     titresSubstancesIds,
     titresReferences,
     titresTerritoires,
-    travaux
+    travaux,
   }: {
     typesIds?: string[] | null
     statutsIds?: string[] | null
@@ -211,7 +192,7 @@ const titresDemarchesCount = async (
       titresSubstancesIds,
       titresReferences,
       titresTerritoires,
-      travaux
+      travaux,
     },
     q
   )
@@ -223,12 +204,12 @@ const titresDemarchesColonnes = {
   titreNom: { id: 'titre.nom', relation: 'titre' },
   titreDomaine: {
     id: raw(`SUBSTRING( titre.type_id, 3, 1 )`),
-    relation: 'titre'
+    relation: 'titre',
   },
   titreType: { id: 'titre:type:type.nom', relation: 'titre.type.type' },
   titreStatut: { id: 'titre.titreStatutId', relation: 'titre' },
   type: { id: 'titresDemarches.typeId' },
-  statut: { id: 'titresDemarches.statutId' }
+  statut: { id: 'titresDemarches.statutId' },
 } as Index<IColonne<string | RawBuilder>>
 
 const titresDemarchesGet = async (
@@ -250,7 +231,7 @@ const titresDemarchesGet = async (
     titresSubstancesIds,
     titresReferences,
     titresTerritoires,
-    travaux
+    travaux,
   }: {
     intervalle?: number | null
     page?: number | null
@@ -291,7 +272,7 @@ const titresDemarchesGet = async (
       titresSubstancesIds,
       titresReferences,
       titresTerritoires,
-      travaux
+      travaux,
     },
     q
   )
@@ -331,11 +312,7 @@ const titresDemarchesGet = async (
   return q
 }
 
-const titreDemarcheGet = async (
-  titreDemarcheId: string,
-  { fields }: { fields?: IFields },
-  user: User
-) => {
+const titreDemarcheGet = async (titreDemarcheId: string, { fields }: { fields?: IFields }, user: User) => {
   const q = titresDemarchesQueryBuild({ fields }, user)
 
   return q
@@ -351,52 +328,23 @@ const titreDemarcheGet = async (
  * @param titreDemarche - démarche à créer
  * @returns la nouvelle démarche
  */
-const titreDemarcheCreate = async (
-  titreDemarche: Omit<ITitreDemarche, 'id'>
-): Promise<ITitreDemarche> =>
-  TitresDemarches.query().insertAndFetch(titreDemarche)
-
-const titreDemarcheDelete = async (id: string, trx?: Transaction) =>
-  TitresDemarches.query(trx)
-    .deleteById(id)
-    .withGraphFetched(options.titresDemarches.graph)
-    .returning('*')
-
-const titreDemarcheUpdate = async (
-  id: DemarcheId,
-  titreDemarche: Partial<DBTitresDemarches>
-): Promise<TitresDemarches> => {
+const titreDemarcheCreate = async (titreDemarche: Omit<ITitreDemarche, 'id'>): Promise<ITitreDemarche> => TitresDemarches.query().insertAndFetch(titreDemarche)
+
+const titreDemarcheDelete = async (id: string, trx?: Transaction) => TitresDemarches.query(trx).deleteById(id).withGraphFetched(options.titresDemarches.graph).returning('*')
+
+const titreDemarcheUpdate = async (id: DemarcheId, titreDemarche: Partial<DBTitresDemarches>): Promise<TitresDemarches> => {
   return TitresDemarches.query().patchAndFetchById(id, { ...titreDemarche, id })
 }
 
-const titreDemarcheUpsert = async (
-  titreDemarche: ITitreDemarche,
-  trx?: Transaction
-) =>
-  TitresDemarches.query(trx)
-    .upsertGraph(titreDemarche, options.titresDemarches.update)
-    .withGraphFetched(options.titresDemarches.graph)
-    .returning('*')
+const titreDemarcheUpsert = async (titreDemarche: ITitreDemarche, trx?: Transaction) =>
+  TitresDemarches.query(trx).upsertGraph(titreDemarche, options.titresDemarches.update).withGraphFetched(options.titresDemarches.graph).returning('*')
 
 export const titreDemarcheArchive = async (id: string) => {
   // archive la démarche
   await TitresDemarches.query().patch({ archive: true }).where('id', id)
 
   // archive les étapes de la démarche
-  await TitresEtapes.query()
-    .patch({ archive: true })
-    .whereIn(
-      'titreDemarcheId',
-      TitresDemarches.query().select('id').where('id', id)
-    )
+  await TitresEtapes.query().patch({ archive: true }).whereIn('titreDemarcheId', TitresDemarches.query().select('id').where('id', id))
 }
 
-export {
-  titresDemarchesGet,
-  titresDemarchesCount,
-  titreDemarcheGet,
-  titreDemarcheCreate,
-  titreDemarcheUpdate,
-  titreDemarcheUpsert,
-  titreDemarcheDelete
-}
+export { titresDemarchesGet, titresDemarchesCount, titreDemarcheGet, titreDemarcheCreate, titreDemarcheUpdate, titreDemarcheUpsert, titreDemarcheDelete }
diff --git a/packages/api/src/database/queries/titres-etapes.ts b/packages/api/src/database/queries/titres-etapes.ts
index 3aebe82dc..b4a143021 100644
--- a/packages/api/src/database/queries/titres-etapes.ts
+++ b/packages/api/src/database/queries/titres-etapes.ts
@@ -6,20 +6,11 @@ import { fieldsFormat } from './graph/fields-format.js'
 import TitresEtapes, { DBTitresEtapes } from '../models/titres-etapes.js'
 import TitresEtapesJustificatifs from '../models/titres-etapes-justificatifs.js'
 import { titresEtapesQueryModify } from './permissions/titres-etapes.js'
-import {
-  createJournalCreate,
-  patchJournalCreate,
-  upsertJournalCreate
-} from './journaux.js'
+import { createJournalCreate, patchJournalCreate, upsertJournalCreate } from './journaux.js'
 import { User, UserNotNull } from 'camino-common/src/roles'
 
-const titresEtapesQueryBuild = (
-  { fields }: { fields?: IFields },
-  user: User
-) => {
-  const graph = fields
-    ? graphBuild(fields, 'etapes', fieldsFormat)
-    : options.titresEtapes.graph
+const titresEtapesQueryBuild = ({ fields }: { fields?: IFields }, user: User) => {
+  const graph = fields ? graphBuild(fields, 'etapes', fieldsFormat) : options.titresEtapes.graph
 
   const q = TitresEtapes.query().withGraphFetched(graph)
 
@@ -31,11 +22,7 @@ const titresEtapesQueryBuild = (
 }
 
 // utilisé dans le daily et le resolver des documents uniquement
-const titreEtapeGet = async (
-  titreEtapeId: string,
-  { fields, fetchHeritage }: { fields?: IFields; fetchHeritage?: boolean },
-  user: User
-) => {
+const titreEtapeGet = async (titreEtapeId: string, { fields, fetchHeritage }: { fields?: IFields; fetchHeritage?: boolean }, user: User) => {
   const q = titresEtapesQueryBuild({ fields }, user)
 
   q.context({ fetchHeritage })
@@ -53,7 +40,7 @@ const titresEtapesGet = async (
   {
     titresEtapesIds,
     etapesTypesIds,
-    titresDemarchesIds
+    titresDemarchesIds,
   }: {
     titresEtapesIds?: string[] | null
     etapesTypesIds?: string[] | null
@@ -81,62 +68,24 @@ const titresEtapesGet = async (
   return q
 }
 
-const titreEtapeCreate = async (
-  titreEtape: Omit<ITitreEtape, 'id'>,
-  user: UserNotNull,
-  titreId: string
-) => {
-  const newValue = await TitresEtapes.query()
-    .insertAndFetch(titreEtape)
-    .withGraphFetched(options.titresEtapes.graph)
+const titreEtapeCreate = async (titreEtape: Omit<ITitreEtape, 'id'>, user: UserNotNull, titreId: string) => {
+  const newValue = await TitresEtapes.query().insertAndFetch(titreEtape).withGraphFetched(options.titresEtapes.graph)
 
   await createJournalCreate(newValue.id, user.id, titreId)
 
   return newValue
 }
 
-const titreEtapeUpdate = async (
-  id: string,
-  titreEtape: Partial<DBTitresEtapes>,
-  user: UserNotNull,
-  titreId: string
-): Promise<TitresEtapes> => {
-  return patchJournalCreate<TitresEtapes>(
-    id,
-    titreEtape,
-    TitresEtapes,
-    user.id,
-    titreId
-  )
+const titreEtapeUpdate = async (id: string, titreEtape: Partial<DBTitresEtapes>, user: UserNotNull, titreId: string): Promise<TitresEtapes> => {
+  return patchJournalCreate<TitresEtapes>(id, titreEtape, TitresEtapes, user.id, titreId)
 }
 
-const titreEtapeUpsert = async (
-  titreEtape: Partial<Pick<ITitreEtape, 'id'>> & Omit<ITitreEtape, 'id'>,
-  user: UserNotNull,
-  titreId: string
-) =>
-  upsertJournalCreate<TitresEtapes>(
-    titreEtape.id,
-    titreEtape,
-    TitresEtapes,
-    options.titresEtapes.update,
-    options.titresEtapes.graph,
-    user.id,
-    titreId
-  )
-
-const titresEtapesJustificatifsUpsert = async (
-  titresEtapesJustificatifs: ITitreEtapeJustificatif[]
-) =>
+const titreEtapeUpsert = async (titreEtape: Partial<Pick<ITitreEtape, 'id'>> & Omit<ITitreEtape, 'id'>, user: UserNotNull, titreId: string) =>
+  upsertJournalCreate<TitresEtapes>(titreEtape.id, titreEtape, TitresEtapes, options.titresEtapes.update, options.titresEtapes.graph, user.id, titreId)
+
+const titresEtapesJustificatifsUpsert = async (titresEtapesJustificatifs: ITitreEtapeJustificatif[]) =>
   TitresEtapesJustificatifs.query().upsertGraph(titresEtapesJustificatifs, {
-    insertMissing: true
+    insertMissing: true,
   })
 
-export {
-  titresEtapesGet,
-  titreEtapeGet,
-  titreEtapeCreate,
-  titreEtapeUpdate,
-  titreEtapeUpsert,
-  titresEtapesJustificatifsUpsert
-}
+export { titresEtapesGet, titreEtapeGet, titreEtapeCreate, titreEtapeUpdate, titreEtapeUpsert, titresEtapesJustificatifsUpsert }
diff --git a/packages/api/src/database/queries/titres-phases.ts b/packages/api/src/database/queries/titres-phases.ts
index a72160294..210513383 100644
--- a/packages/api/src/database/queries/titres-phases.ts
+++ b/packages/api/src/database/queries/titres-phases.ts
@@ -4,16 +4,14 @@ import options from './_options.js'
 
 import TitresPhases from '../models/titres-phases.js'
 
-const titresPhasesGet = async () =>
-  TitresPhases.query().withGraphFetched(options.titresDemarchesPhases.graph)
+const titresPhasesGet = async () => TitresPhases.query().withGraphFetched(options.titresDemarchesPhases.graph)
 
 const titrePhasesUpsert = async (titrePhases: ITitrePhase[]) =>
   TitresPhases.query().upsertGraph(titrePhases, {
     insertMissing: true,
-    noDelete: true
+    noDelete: true,
   })
 
-const titrePhasesDelete = async (titrePhasesIds: string[]) =>
-  TitresPhases.query().delete().whereIn('titreDemarcheId', titrePhasesIds)
+const titrePhasesDelete = async (titrePhasesIds: string[]) => TitresPhases.query().delete().whereIn('titreDemarcheId', titrePhasesIds)
 
 export { titresPhasesGet, titrePhasesUpsert, titrePhasesDelete }
diff --git a/packages/api/src/database/queries/titres-points.ts b/packages/api/src/database/queries/titres-points.ts
index 73624a070..95e4b3c27 100644
--- a/packages/api/src/database/queries/titres-points.ts
+++ b/packages/api/src/database/queries/titres-points.ts
@@ -5,28 +5,16 @@ import options from './_options.js'
 import TitresPoints from '../models/titres-points.js'
 import TitresPointsReferences from '../models/titres-points-references.js'
 
-const titresPointsGet = async () =>
-  TitresPoints.query().withGraphFetched(options.points.graph)
+const titresPointsGet = async () => TitresPoints.query().withGraphFetched(options.points.graph)
 
-const titrePointUpdate = async (id: string, titrePoint: Partial<ITitrePoint>) =>
-  TitresPoints.query().patchAndFetchById(id, { ...titrePoint, id })
+const titrePointUpdate = async (id: string, titrePoint: Partial<ITitrePoint>) => TitresPoints.query().patchAndFetchById(id, { ...titrePoint, id })
 
-const titrePointReferenceCreate = async (
-  titrePointReference: ITitrePointReference
-) => TitresPointsReferences.query().insert(titrePointReference)
+const titrePointReferenceCreate = async (titrePointReference: ITitrePointReference) => TitresPointsReferences.query().insert(titrePointReference)
 
-const titrePointReferenceUpdate = async (
-  id: string,
-  titrePointReference: Partial<ITitrePointReference>
-) =>
+const titrePointReferenceUpdate = async (id: string, titrePointReference: Partial<ITitrePointReference>) =>
   TitresPointsReferences.query().patchAndFetchById(id, {
     ...titrePointReference,
-    id
+    id,
   })
 
-export {
-  titresPointsGet,
-  titrePointUpdate,
-  titrePointReferenceCreate,
-  titrePointReferenceUpdate
-}
+export { titresPointsGet, titrePointUpdate, titrePointReferenceCreate, titrePointReferenceUpdate }
diff --git a/packages/api/src/database/queries/titres-titres.ts b/packages/api/src/database/queries/titres-titres.ts
index 5c9892f7a..42c82752b 100644
--- a/packages/api/src/database/queries/titres-titres.ts
+++ b/packages/api/src/database/queries/titres-titres.ts
@@ -10,7 +10,7 @@ export const linkTitres = async (link: LinkTitre): Promise<void> => {
     await TitresTitres.query().insert(
       link.linkFrom.map(titreFromId => ({
         titreFromId,
-        titreToId: link.linkTo
+        titreToId: link.linkTo,
       }))
     )
   }
diff --git a/packages/api/src/database/queries/titres.test.integration.ts b/packages/api/src/database/queries/titres.test.integration.ts
index d43f26c7b..16465b1f3 100644
--- a/packages/api/src/database/queries/titres.test.integration.ts
+++ b/packages/api/src/database/queries/titres.test.integration.ts
@@ -22,7 +22,7 @@ describe('teste les requêtes sur les titres', () => {
       const titre = await Titres.query().insert({
         nom: idGenerate(),
         titreStatutId: 'val',
-        typeId: 'arm'
+        typeId: 'arm',
       })
       expect(titre.archive).toBeFalsy()
 
@@ -30,7 +30,7 @@ describe('teste les requêtes sur les titres', () => {
         const demarche = await TitresDemarches.query().insert({
           titreId: titre.id,
           typeId: 'oct',
-          statutId: 'eco'
+          statutId: 'eco',
         })
         expect(demarche.archive).toBeFalsy()
 
@@ -39,7 +39,7 @@ describe('teste les requêtes sur les titres', () => {
             titreDemarcheId: demarche.id,
             typeId: 'mfr',
             statutId: 'aco',
-            date: toCaminoDate('2020-02-02')
+            date: toCaminoDate('2020-02-02'),
           })
           expect(etape.archive).toBeFalsy()
         }
@@ -52,19 +52,13 @@ describe('teste les requêtes sur les titres', () => {
       expect(archiveTitre).not.toBeUndefined()
       expect(archiveTitre?.archive).toBe(true)
 
-      const archiveDemarches = await TitresDemarches.query().where(
-        'titreId',
-        archiveTitre!.id
-      )
+      const archiveDemarches = await TitresDemarches.query().where('titreId', archiveTitre!.id)
       expect(archiveDemarches).toHaveLength(3)
 
       for (const demarche of archiveDemarches) {
         expect(demarche.archive).toBe(true)
 
-        const archiveEtapes = await TitresEtapes.query().where(
-          'titreDemarcheId',
-          demarche.id
-        )
+        const archiveEtapes = await TitresEtapes.query().where('titreDemarcheId', demarche.id)
         expect(archiveEtapes).toHaveLength(3)
 
         for (const etape of archiveDemarches) {
diff --git a/packages/api/src/database/queries/titres.ts b/packages/api/src/database/queries/titres.ts
index 04af603ba..d0e1c576b 100644
--- a/packages/api/src/database/queries/titres.ts
+++ b/packages/api/src/database/queries/titres.ts
@@ -1,12 +1,6 @@
 import { raw, RawBuilder, Transaction } from 'objection'
 
-import {
-  IColonne,
-  IFields,
-  Index,
-  ITitre,
-  ITitreColonneId
-} from '../../types.js'
+import { IColonne, IFields, Index, ITitre, ITitreColonneId } from '../../types.js'
 
 import options from './_options.js'
 import graphBuild from './graph/build.js'
@@ -32,14 +26,8 @@ import { FacadesMaritimes } from 'camino-common/src/static/facades.js'
  * @returns la requête
  *
  */
-const titresQueryBuild = (
-  { fields }: { fields?: IFields },
-  user: User,
-  demandeEnCours?: boolean | null
-) => {
-  const graph = fields
-    ? graphBuild(titresFieldsAdd(fields), 'titre', fieldsFormat)
-    : options.titres.graph
+const titresQueryBuild = ({ fields }: { fields?: IFields }, user: User, demandeEnCours?: boolean | null) => {
+  const graph = fields ? graphBuild(titresFieldsAdd(fields), 'titre', fieldsFormat) : options.titres.graph
 
   const q = Titres.query().withGraphFetched(graph)
 
@@ -57,11 +45,7 @@ const titresQueryBuild = (
  * @returns un titre
  *
  */
-const titreGet = async (
-  id: string,
-  { fields, fetchHeritage }: { fields?: IFields; fetchHeritage?: boolean },
-  user: User
-): Promise<DBTitre | undefined> => {
+const titreGet = async (id: string, { fields, fetchHeritage }: { fields?: IFields; fetchHeritage?: boolean }, user: User): Promise<DBTitre | undefined> => {
   const q = titresQueryBuild({ fields }, user)
 
   q.context({ fetchHeritage })
@@ -84,8 +68,8 @@ const titresColonnes = {
   titulaires: {
     id: raw(`STRING_AGG("titulaires"."nom", ' ; ')`),
     relation: 'titulaires',
-    groupBy: []
-  }
+    groupBy: [],
+  },
 } as Index<IColonne<string | RawBuilder>>
 
 /**
@@ -119,7 +103,7 @@ const titresGet = async (
     regions,
     facadesMaritimes,
     slugs,
-    demandeEnCours
+    demandeEnCours,
   }: {
     intervalle?: number | null
     page?: number | null
@@ -168,7 +152,7 @@ const titresGet = async (
       communes,
       departements,
       regions,
-      facadesMaritimes
+      facadesMaritimes,
     },
     q
   )
@@ -194,11 +178,7 @@ const titresGet = async (
     // dans le tri sur les activités
     // sinon les résultats 'null' apparaissent toujours en premier
     if (colonne === 'activites') {
-      q.orderByRaw(
-        `"activites_absentes" + "activites_en_construction" ${
-          ordre === 'asc' ? 'asc nulls first' : 'desc nulls last'
-        }`
-      )
+      q.orderByRaw(`"activites_absentes" + "activites_en_construction" ${ordre === 'asc' ? 'asc nulls first' : 'desc nulls last'}`)
     } else if (colonne === 'coordonnees') {
       q.orderByRaw(`"coordonnees" notnull ${ordre}`)
     } else {
@@ -206,10 +186,7 @@ const titresGet = async (
     }
   } else {
     if (noms?.length) {
-      q.orderByRaw(
-        'case when LOWER(titres.nom) LIKE LOWER(?) then 0 else 1 end, titres.nom',
-        [`${noms}%`]
-      )
+      q.orderByRaw('case when LOWER(titres.nom) LIKE LOWER(?) then 0 else 1 end, titres.nom', [`${noms}%`])
     } else {
       q.orderBy('titres.nom')
     }
@@ -251,7 +228,7 @@ const titresCount = async (
     departements,
     regions,
     facadesMaritimes,
-    demandeEnCours
+    demandeEnCours,
   }: {
     ids?: string[] | null
     domainesIds?: string[] | null
@@ -289,7 +266,7 @@ const titresCount = async (
       communes,
       departements,
       regions,
-      facadesMaritimes
+      facadesMaritimes,
     },
     q
   )
@@ -306,21 +283,13 @@ const titresCount = async (
  * @returns le nouveau titre
  *
  */
-const titreCreate = async (
-  titre: Omit<ITitre, 'id'>,
-  { fields }: { fields?: IFields }
-): Promise<DBTitre> => {
-  const graph = fields
-    ? graphBuild(titresFieldsAdd(fields), 'titre', fieldsFormat)
-    : options.titres.graph
-
-  return Titres.query()
-    .withGraphFetched(graph)
-    .insertGraph(titre, options.titres.update)
+const titreCreate = async (titre: Omit<ITitre, 'id'>, { fields }: { fields?: IFields }): Promise<DBTitre> => {
+  const graph = fields ? graphBuild(titresFieldsAdd(fields), 'titre', fieldsFormat) : options.titres.graph
+
+  return Titres.query().withGraphFetched(graph).insertGraph(titre, options.titres.update)
 }
 
-const titreUpdate = async (id: string, titre: Partial<DBTitre>) =>
-  Titres.query().patchAndFetchById(id, { ...titre, id })
+const titreUpdate = async (id: string, titre: Partial<DBTitre>) => Titres.query().patchAndFetchById(id, { ...titre, id })
 
 export const titreArchive = async (id: string) => {
   // archive le titre
@@ -330,33 +299,15 @@ export const titreArchive = async (id: string) => {
   await TitresDemarches.query().patch({ archive: true }).where('titreId', id)
 
   // archive les étapes des démarches du titre
-  await TitresEtapes.query()
-    .patch({ archive: true })
-    .whereIn(
-      'titreDemarcheId',
-      TitresDemarches.query().select('id').where('titreId', id)
-    )
+  await TitresEtapes.query().patch({ archive: true }).whereIn('titreDemarcheId', TitresDemarches.query().select('id').where('titreId', id))
 }
 
-const titreUpsert = async (
-  titre: ITitre,
-  { fields }: { fields?: IFields },
-  tr?: Transaction
-) => {
-  const graph = fields
-    ? graphBuild(titresFieldsAdd(fields), 'titre', fieldsFormat)
-    : options.titres.graph
+const titreUpsert = async (titre: ITitre, { fields }: { fields?: IFields }, tr?: Transaction) => {
+  const graph = fields ? graphBuild(titresFieldsAdd(fields), 'titre', fieldsFormat) : options.titres.graph
 
   const q = Titres.query(tr).withGraphFetched(graph)
 
   return q.upsertGraph(titre, options.titres.update)
 }
 
-export {
-  titreGet,
-  titresGet,
-  titresCount,
-  titreUpdate,
-  titreCreate,
-  titreUpsert
-}
+export { titreGet, titresGet, titresCount, titreUpdate, titreCreate, titreUpsert }
diff --git a/packages/api/src/database/queries/utilisateurs.ts b/packages/api/src/database/queries/utilisateurs.ts
index d0c13fda6..851bc2df8 100644
--- a/packages/api/src/database/queries/utilisateurs.ts
+++ b/packages/api/src/database/queries/utilisateurs.ts
@@ -1,13 +1,6 @@
 import { RawBuilder, QueryBuilder } from 'objection'
 
-import {
-  IFields,
-  IUtilisateursColonneId,
-  IColonne,
-  IUtilisateurTitre,
-  IUtilisateur,
-  formatUser
-} from '../../types.js'
+import { IFields, IUtilisateursColonneId, IColonne, IUtilisateurTitre, IUtilisateur, formatUser } from '../../types.js'
 
 import options from './_options.js'
 import graphBuild from './graph/build.js'
@@ -22,15 +15,13 @@ import { Role, User } from 'camino-common/src/roles.js'
 const userGet = async (userId?: string): Promise<User> => {
   if (!userId) return null
 
-  const user = await Utilisateurs.query()
-    .withGraphFetched('[entreprises]')
-    .findById(userId)
+  const user = await Utilisateurs.query().withGraphFetched('[entreprises]').findById(userId)
   if (user) {
     const q = utilisateursQueryBuild(
       {
         fields: {
-          entreprises: { id: {} }
-        }
+          entreprises: { id: {} },
+        },
       },
       formatUser(user)
     )
@@ -44,13 +35,8 @@ const userGet = async (userId?: string): Promise<User> => {
   return undefined
 }
 
-const utilisateursQueryBuild = (
-  { fields }: { fields?: IFields },
-  user: User
-) => {
-  const graph = fields
-    ? graphBuild(fields, 'utilisateur', fieldsFormat)
-    : options.utilisateurs.graph
+const utilisateursQueryBuild = ({ fields }: { fields?: IFields }, user: User) => {
+  const graph = fields ? graphBuild(fields, 'utilisateur', fieldsFormat) : options.utilisateurs.graph
 
   const q = Utilisateurs.query().withGraphFetched(graph)
 
@@ -66,7 +52,7 @@ const utilisateursFiltersQueryModify = (
     administrationIds,
     roles,
     noms,
-    emails
+    emails,
   }: {
     ids?: string[]
     entrepriseIds?: string[]
@@ -100,10 +86,7 @@ const utilisateursFiltersQueryModify = (
     nomsArray.forEach(s => {
       q.where(b => {
         fields.forEach(f => {
-          b.orWhereRaw(`lower(??) like ?`, [
-            `utilisateurs.${f}`,
-            `%${s.toLowerCase()}%`
-          ])
+          b.orWhereRaw(`lower(??) like ?`, [`utilisateurs.${f}`, `%${s.toLowerCase()}%`])
         })
       })
     })
@@ -111,10 +94,7 @@ const utilisateursFiltersQueryModify = (
 
   if (emails) {
     q.where(b => {
-      b.whereRaw(`LOWER(??) LIKE LOWER(?)`, [
-        'utilisateurs.email',
-        `%${emails}%`
-      ])
+      b.whereRaw(`LOWER(??) LIKE LOWER(?)`, ['utilisateurs.email', `%${emails}%`])
     })
   }
 
@@ -123,17 +103,14 @@ const utilisateursFiltersQueryModify = (
 
 const userByEmailGet = async (email: string | null | undefined) => {
   if (email) {
-    const user: IUtilisateur | undefined = await Utilisateurs.query()
-      .withGraphFetched('[entreprises]')
-      .where('utilisateurs.email', email)
-      .first()
+    const user: IUtilisateur | undefined = await Utilisateurs.query().withGraphFetched('[entreprises]').where('utilisateurs.email', email).first()
 
     if (user) {
       const q = utilisateursQueryBuild(
         {
           fields: {
-            entreprises: { id: {} }
-          }
+            entreprises: { id: {} },
+          },
         },
         formatUser(user)
       )
@@ -145,11 +122,7 @@ const userByEmailGet = async (email: string | null | undefined) => {
   return undefined
 }
 
-const utilisateurGet = async (
-  id: string,
-  { fields }: { fields?: IFields } = {},
-  user: User
-) => {
+const utilisateurGet = async (id: string, { fields }: { fields?: IFields } = {}, user: User) => {
   const q = utilisateursQueryBuild({ fields }, user)
 
   return q.findById(id)
@@ -158,14 +131,11 @@ const utilisateurGet = async (
 // lien = administration ou entreprise(s) en relation avec l'utilisateur :
 // on trie sur la concaténation du nom de l'administration
 // avec l'aggrégation ordonnée(STRING_AGG) des noms des entreprises
-const utilisateursColonnes: Record<
-  IUtilisateursColonneId,
-  IColonne<string | RawBuilder>
-> = {
+const utilisateursColonnes: Record<IUtilisateursColonneId, IColonne<string | RawBuilder>> = {
   nom: { id: 'nom' },
   prenom: { id: 'prenom' },
   email: { id: 'email' },
-  role: { id: 'role' }
+  role: { id: 'role' },
 }
 const utilisateursGet = async (
   {
@@ -178,7 +148,7 @@ const utilisateursGet = async (
     administrationIds,
     roles,
     noms,
-    emails
+    emails,
   }: {
     intervalle?: number | null
     page?: number | null
@@ -203,7 +173,7 @@ const utilisateursGet = async (
       administrationIds,
       roles,
       noms,
-      emails
+      emails,
     },
     q
   )
@@ -232,7 +202,7 @@ const utilisateursCount = async (
     administrationIds,
     roles,
     noms,
-    emails
+    emails,
   }: {
     ids?: string[]
     entrepriseIds?: string[]
@@ -246,61 +216,32 @@ const utilisateursCount = async (
 ) => {
   const q = utilisateursQueryBuild({ fields }, user)
 
-  utilisateursFiltersQueryModify(
-    { ids, entrepriseIds, administrationIds, roles, noms, emails },
-    q
-  )
+  utilisateursFiltersQueryModify({ ids, entrepriseIds, administrationIds, roles, noms, emails }, q)
 
   return q.resultSize()
 }
 
-const utilisateurCreate = async (
-  utilisateur: IUtilisateur,
-  { fields }: { fields?: IFields }
-) =>
+const utilisateurCreate = async (utilisateur: IUtilisateur, { fields }: { fields?: IFields }) =>
   Utilisateurs.query()
     .insertGraph(utilisateur, options.utilisateurs.update)
-    .withGraphFetched(
-      fields
-        ? graphBuild(fields, 'utilisateur', fieldsFormat)
-        : options.utilisateurs.graph
-    )
+    .withGraphFetched(fields ? graphBuild(fields, 'utilisateur', fieldsFormat) : options.utilisateurs.graph)
     .first()
 
-const utilisateurUpsert = async (
-  utilisateur: IUtilisateur,
-  { fields }: { fields?: IFields }
-) =>
+const utilisateurUpsert = async (utilisateur: IUtilisateur, { fields }: { fields?: IFields }) =>
   Utilisateurs.query()
     .upsertGraphAndFetch(utilisateur, options.utilisateurs.update)
-    .withGraphFetched(
-      fields
-        ? graphBuild(fields, 'utilisateur', fieldsFormat)
-        : options.utilisateurs.graph
-    )
+    .withGraphFetched(fields ? graphBuild(fields, 'utilisateur', fieldsFormat) : options.utilisateurs.graph)
 
-const utilisateurUpdate = async (
-  id: string,
-  utilisateur: Partial<IUtilisateur>
-) => Utilisateurs.query().patch(utilisateur).findById(id)
+const utilisateurUpdate = async (id: string, utilisateur: Partial<IUtilisateur>) => Utilisateurs.query().patch(utilisateur).findById(id)
 
-const utilisateurTitreCreate = async (utilisateurTitre: IUtilisateurTitre) =>
-  UtilisateursTitres.query().insert(utilisateurTitre)
+const utilisateurTitreCreate = async (utilisateurTitre: IUtilisateurTitre) => UtilisateursTitres.query().insert(utilisateurTitre)
 
-const utilisateurTitreDelete = async (utilisateurId: string, titreId: string) =>
-  UtilisateursTitres.query().deleteById([utilisateurId, titreId])
+const utilisateurTitreDelete = async (utilisateurId: string, titreId: string) => UtilisateursTitres.query().deleteById([utilisateurId, titreId])
 
-const utilisateursTitresGet = async (
-  titreId: string,
-  { fields }: { fields?: IFields }
-) =>
+const utilisateursTitresGet = async (titreId: string, { fields }: { fields?: IFields }) =>
   UtilisateursTitres.query()
     .where('titreId', titreId)
-    .withGraphFetched(
-      fields
-        ? graphBuild(fields, 'utilisateursTitres', fieldsFormat)
-        : options.utilisateursTitres.graph
-    )
+    .withGraphFetched(fields ? graphBuild(fields, 'utilisateursTitres', fieldsFormat) : options.utilisateursTitres.graph)
 
 export {
   userGet,
@@ -313,5 +254,5 @@ export {
   utilisateurUpdate,
   utilisateurTitreCreate,
   utilisateurTitreDelete,
-  utilisateursTitresGet
+  utilisateursTitresGet,
 }
diff --git a/packages/api/src/database/user-super.ts b/packages/api/src/database/user-super.ts
index 9085f1754..eef533c81 100644
--- a/packages/api/src/database/user-super.ts
+++ b/packages/api/src/database/user-super.ts
@@ -5,5 +5,5 @@ export const userSuper: UserNotNull = {
   email: 'camino@beta.gouv.fr',
   nom: 'Camino',
   prenom: '',
-  role: 'super'
+  role: 'super',
 }
diff --git a/packages/api/src/dev/database/utilisateurs-to-keycloak-format.ts b/packages/api/src/dev/database/utilisateurs-to-keycloak-format.ts
index 5a5f7c274..6a722d5f5 100644
--- a/packages/api/src/dev/database/utilisateurs-to-keycloak-format.ts
+++ b/packages/api/src/dev/database/utilisateurs-to-keycloak-format.ts
@@ -18,21 +18,18 @@ export const main = async () => {
         // @ts-ignore
         hashedSaltedValue: u.motDePasse,
         hashIterations: 10,
-        type: 'password'
-      }
+        type: 'password',
+      },
     ],
     firstName: u.nom,
     lastName: u.prenom,
     email: u.email,
     clientRoles: {
-      account: ['manage-account', 'manage-account-links', 'view-profile']
-    }
+      account: ['manage-account', 'manage-account-links', 'view-profile'],
+    },
   }))
 
-  writeFileSync(
-    'keycloak.json',
-    JSON.stringify({ realm: 'Camino', users: kcUsers }, null, 2)
-  )
+  writeFileSync('keycloak.json', JSON.stringify({ realm: 'Camino', users: kcUsers }, null, 2))
 
   process.exit(0)
 }
diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts
index 34021b4b7..9b0235fd2 100644
--- a/packages/api/src/index.ts
+++ b/packages/api/src/index.ts
@@ -20,11 +20,7 @@ import { rest } from './server/rest.js'
 import { graphql } from './server/graphql.js'
 import { authJwt } from './server/auth-jwt.js'
 import { authBasic } from './server/auth-basic.js'
-import {
-  restUpload,
-  graphqlUpload,
-  uploadAllowedMiddleware
-} from './server/upload.js'
+import { restUpload, graphqlUpload, uploadAllowedMiddleware } from './server/upload.js'
 import { databaseInit } from './database/init.js'
 
 import { consoleOverride } from './config/logger.js'
@@ -44,7 +40,7 @@ filesInit().then(() => {
     if (process.env.API_SENTRY_URL) {
       Sentry.init({
         dsn: process.env.API_SENTRY_URL,
-        environment: process.env.ENV === 'prod' ? 'production' : process.env.ENV
+        environment: process.env.ENV === 'prod' ? 'production' : process.env.ENV,
       })
       app.use(Sentry.Handlers.requestHandler())
     }
@@ -57,25 +53,16 @@ filesInit().then(() => {
       skip: (request: any, _response: any) => {
         // On n'applique pas de rate limiting sur le televersement des fichiers
         return request.url.startsWith('/televersement')
-      }
+      },
     })
 
-    app.use(
-      cors({ credentials: true, exposedHeaders: ['Content-disposition'] }),
-      compression(),
-      limiter,
-      authJwt,
-      authBasic,
-      userLoader,
-      cookieParser(),
-      connectedCatcher
-    )
+    app.use(cors({ credentials: true, exposedHeaders: ['Content-disposition'] }), compression(), limiter, authJwt, authBasic, userLoader, cookieParser(), connectedCatcher)
 
     app.get('/stream/version', async (_req, res) => {
       const headers = {
         'Content-Type': 'text/event-stream',
         Connection: 'keep-alive',
-        'Cache-Control': 'no-cache'
+        'Cache-Control': 'no-cache',
       }
 
       res.writeHead(200, headers)
diff --git a/packages/api/src/knex/config.ts b/packages/api/src/knex/config.ts
index 261806c42..0d03ca586 100644
--- a/packages/api/src/knex/config.ts
+++ b/packages/api/src/knex/config.ts
@@ -9,20 +9,17 @@ export const connection = {
   port: Number(process.env.PGPORT),
   database: process.env.PGDATABASE,
   user: process.env.PGUSER,
-  password: process.env.PGPASSWORD
+  password: process.env.PGPASSWORD,
 }
 
 export const knexConfig = {
   client: 'pg',
   connection,
   migrations: {
-    directory: [
-      join(__dirname, './migrations-schema'),
-      join(__dirname, './migrations-data')
-    ],
+    directory: [join(__dirname, './migrations-schema'), join(__dirname, './migrations-data')],
     stub: join(__dirname, './migration-stub.ts'),
     extension: 'ts',
-    loadExtensions: ['.ts']
+    loadExtensions: ['.ts'],
   },
-  ...knexSnakeCaseMappers()
+  ...knexSnakeCaseMappers(),
 }
diff --git a/packages/api/src/knex/db-manager-config.ts b/packages/api/src/knex/db-manager-config.ts
index f12f8eb3f..a41249977 100644
--- a/packages/api/src/knex/db-manager-config.ts
+++ b/packages/api/src/knex/db-manager-config.ts
@@ -5,6 +5,6 @@ export const dbManagerConfig = {
   knex: knexConfig,
   dbManager: {
     superUser: connection.user,
-    superPassword: connection.password
-  }
+    superPassword: connection.password,
+  },
 }
diff --git a/packages/api/src/knex/migrate.ts b/packages/api/src/knex/migrate.ts
index 54348f1d7..26735277c 100644
--- a/packages/api/src/knex/migrate.ts
+++ b/packages/api/src/knex/migrate.ts
@@ -10,13 +10,7 @@ const run = async () => {
       console.info(chalk.cyan(`already up to date\n`))
     }
 
-    console.info(
-      chalk.green(
-        `batch ${latestBatchNo} run: ${latestLog.length} migrations \n`
-      ) +
-        chalk.cyan(latestLog.join('\n')) +
-        '\n'
-    )
+    console.info(chalk.green(`batch ${latestBatchNo} run: ${latestLog.length} migrations \n`) + chalk.cyan(latestLog.join('\n')) + '\n')
 
     console.info('migrations terminées')
     process.exit()
diff --git a/packages/api/src/knex/migrations-data/20211103110922_etapes_statuts_complet_add.ts b/packages/api/src/knex/migrations-data/20211103110922_etapes_statuts_complet_add.ts
index 2a395b52f..b7523be35 100644
--- a/packages/api/src/knex/migrations-data/20211103110922_etapes_statuts_complet_add.ts
+++ b/packages/api/src/knex/migrations-data/20211103110922_etapes_statuts_complet_add.ts
@@ -4,47 +4,35 @@ export const up = async (knex: Knex) => {
     {
       id: 'com',
       nom: 'complet',
-      couleur: 'success'
+      couleur: 'success',
     },
     {
       id: 'inc',
       nom: 'incomplet',
-      couleur: 'error'
-    }
+      couleur: 'error',
+    },
   ])
 
   await knex('etapes_types__etapes_statuts').insert([
     {
       etape_type_id: 'mcp',
       etape_statut_id: 'com',
-      ordre: 1
+      ordre: 1,
     },
     {
       etape_type_id: 'mcp',
       etape_statut_id: 'inc',
-      ordre: 2
-    }
+      ordre: 2,
+    },
   ])
 
-  await knex('titres_etapes')
-    .where('type_id', 'mcp')
-    .where('statut_id', 'fav')
-    .update('statut_id', 'com')
+  await knex('titres_etapes').where('type_id', 'mcp').where('statut_id', 'fav').update('statut_id', 'com')
 
-  await knex('titres_etapes')
-    .where('type_id', 'mcp')
-    .where('statut_id', 'def')
-    .update('statut_id', 'inc')
+  await knex('titres_etapes').where('type_id', 'mcp').where('statut_id', 'def').update('statut_id', 'inc')
 
-  await knex('etapes_types__etapes_statuts')
-    .where('etape_type_id', 'mcp')
-    .where('etape_statut_id', 'fav')
-    .del()
+  await knex('etapes_types__etapes_statuts').where('etape_type_id', 'mcp').where('etape_statut_id', 'fav').del()
 
-  return knex('etapes_types__etapes_statuts')
-    .where('etape_type_id', 'mcp')
-    .where('etape_statut_id', 'def')
-    .del()
+  return knex('etapes_types__etapes_statuts').where('etape_type_id', 'mcp').where('etape_statut_id', 'def').del()
 }
 
 export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20211103135837_titres_etapes_incertitudes_clean.ts b/packages/api/src/knex/migrations-data/20211103135837_titres_etapes_incertitudes_clean.ts
index dd6a37d52..bfdd556c6 100644
--- a/packages/api/src/knex/migrations-data/20211103135837_titres_etapes_incertitudes_clean.ts
+++ b/packages/api/src/knex/migrations-data/20211103135837_titres_etapes_incertitudes_clean.ts
@@ -2,9 +2,7 @@ import { Knex } from 'knex'
 import TitresEtapes from '../../database/models/titres-etapes.js'
 
 export const up = async (knex: Knex) => {
-  const titresEtapes: any[] = await TitresEtapes.query().withGraphFetched(
-    '[titulaires, amodiataires, points, substances]'
-  )
+  const titresEtapes: any[] = await TitresEtapes.query().withGraphFetched('[titulaires, amodiataires, points, substances]')
 
   for (const titreEtape of titresEtapes) {
     let updated = false
@@ -12,11 +10,7 @@ export const up = async (knex: Knex) => {
     // copier/coller du traitement effectué dans le model TitresEtapes
     if (titreEtape.incertitudes) {
       Object.keys(titreEtape.incertitudes).forEach(id => {
-        if (
-          !titreEtape.incertitudes[id] ||
-          !(titreEtape[id] || titreEtape[id] === 0) ||
-          (Array.isArray(titreEtape[id]) && !titreEtape[id].length)
-        ) {
+        if (!titreEtape.incertitudes[id] || !(titreEtape[id] || titreEtape[id] === 0) || (Array.isArray(titreEtape[id]) && !titreEtape[id].length)) {
           delete titreEtape.incertitudes[id]
           updated = true
         }
@@ -27,9 +21,7 @@ export const up = async (knex: Knex) => {
         updated = true
       }
       if (updated) {
-        await knex('titres_etapes')
-          .where('id', titreEtape.id)
-          .update('incertitudes', titreEtape.incertitudes)
+        await knex('titres_etapes').where('id', titreEtape.id).update('incertitudes', titreEtape.incertitudes)
 
         console.info(`Incertitudes nettoyées ${titreEtape.slug}`)
       }
diff --git a/packages/api/src/knex/migrations-data/20211116154026_demarches_statuts_travaux_finpolicemines_add.ts b/packages/api/src/knex/migrations-data/20211116154026_demarches_statuts_travaux_finpolicemines_add.ts
index e5fad4f8b..14bd75403 100644
--- a/packages/api/src/knex/migrations-data/20211116154026_demarches_statuts_travaux_finpolicemines_add.ts
+++ b/packages/api/src/knex/migrations-data/20211116154026_demarches_statuts_travaux_finpolicemines_add.ts
@@ -6,8 +6,8 @@ export const up = async (knex: Knex) => {
       nom: 'fin de la police des mines',
       description: 'Fin de la police des mines',
       couleur: 'success',
-      ordre: 11
-    }
+      ordre: 11,
+    },
   ])
 }
 
diff --git a/packages/api/src/knex/migrations-data/20211123084623_metas_travaux_publi_recueil_acte_admin_add.ts b/packages/api/src/knex/migrations-data/20211123084623_metas_travaux_publi_recueil_acte_admin_add.ts
index df1021cf6..0a918c60b 100644
--- a/packages/api/src/knex/migrations-data/20211123084623_metas_travaux_publi_recueil_acte_admin_add.ts
+++ b/packages/api/src/knex/migrations-data/20211123084623_metas_travaux_publi_recueil_acte_admin_add.ts
@@ -9,7 +9,7 @@ export const up = async (knex: Knex) => {
       titreTypeId: t.id,
       demarcheTypeId,
       etapeTypeId,
-      ordre: 230
+      ordre: 230,
     })
   }
 }
diff --git a/packages/api/src/knex/migrations-data/20211201135203_etapes_travaux_arrete_ouverture_travaux_miniers_add.ts b/packages/api/src/knex/migrations-data/20211201135203_etapes_travaux_arrete_ouverture_travaux_miniers_add.ts
index 555aca0e8..387956592 100644
--- a/packages/api/src/knex/migrations-data/20211201135203_etapes_travaux_arrete_ouverture_travaux_miniers_add.ts
+++ b/packages/api/src/knex/migrations-data/20211201135203_etapes_travaux_arrete_ouverture_travaux_miniers_add.ts
@@ -11,15 +11,15 @@ export const up = async (knex: Knex) => {
     nom: "arrêté d'ouverture des travaux miniers",
     description: "Arrêté d'ouverture des travaux miniers",
     ordre: 1028,
-    fondamentale: false
+    fondamentale: false,
   })
 
   await knex('etapes_types__etapes_statuts').insert([
     {
       etapeTypeId,
       etapeStatutId: 'fai',
-      ordre: 0
-    }
+      ordre: 0,
+    },
   ])
 
   for (const t of titresTypes) {
@@ -27,7 +27,7 @@ export const up = async (knex: Knex) => {
       titreTypeId: t.id,
       demarcheTypeId,
       etapeTypeId,
-      ordre: 260
+      ordre: 260,
     })
   }
 }
diff --git a/packages/api/src/knex/migrations-data/20211215100715_utilisateurs-camino-create.ts b/packages/api/src/knex/migrations-data/20211215100715_utilisateurs-camino-create.ts
index c0a9e64e2..8b284beaf 100644
--- a/packages/api/src/knex/migrations-data/20211215100715_utilisateurs-camino-create.ts
+++ b/packages/api/src/knex/migrations-data/20211215100715_utilisateurs-camino-create.ts
@@ -5,7 +5,7 @@ import { userSuper } from '../../database/user-super.js'
 export const up = async (knex: Knex) => {
   await knex('utilisateurs').insert({
     ...userSuper,
-    motDePasse: idGenerate()
+    motDePasse: idGenerate(),
   })
 }
 export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220104133620_etapes_travaux_porter_connaissance_add.ts b/packages/api/src/knex/migrations-data/20220104133620_etapes_travaux_porter_connaissance_add.ts
index 249b4b4a8..e7a042047 100644
--- a/packages/api/src/knex/migrations-data/20220104133620_etapes_travaux_porter_connaissance_add.ts
+++ b/packages/api/src/knex/migrations-data/20220104133620_etapes_travaux_porter_connaissance_add.ts
@@ -13,15 +13,15 @@ export const up = async (knex: Knex) => {
     nom: 'porter-à-connaissance',
     description: 'Porter-à-connaissance',
     ordre: 1029,
-    fondamentale: false
+    fondamentale: false,
   })
 
   await knex('etapes_types__etapes_statuts').insert([
     {
       etapeTypeId,
       etapeStatutId: 'fai',
-      ordre: 0
-    }
+      ordre: 0,
+    },
   ])
 
   for (const t of titresTypes) {
@@ -29,7 +29,7 @@ export const up = async (knex: Knex) => {
       titreTypeId: t.id,
       demarcheTypeId,
       etapeTypeId,
-      ordre: 240
+      ordre: 240,
     })
   }
 }
diff --git a/packages/api/src/knex/migrations-data/20220119122515_document_type_jpa_migrate.ts b/packages/api/src/knex/migrations-data/20220119122515_document_type_jpa_migrate.ts
index efb0ff6da..7d49757e1 100644
--- a/packages/api/src/knex/migrations-data/20220119122515_document_type_jpa_migrate.ts
+++ b/packages/api/src/knex/migrations-data/20220119122515_document_type_jpa_migrate.ts
@@ -5,41 +5,28 @@ import fileRename from '../../tools/file-rename.js'
 import { documentFilePathFind } from '../../tools/documents/document-path-find.js'
 
 export const up = async (knex: Knex) => {
-  await knex('titres_types__demarches_types__etapes_types__justificatifs_t')
-    .where('document_type_id', 'jpa')
-    .delete()
+  await knex('titres_types__demarches_types__etapes_types__justificatifs_t').where('document_type_id', 'jpa').delete()
 
-  await knex(
-    'titres_types__demarches_types__etapes_types__documents_types'
-  ).insert({
+  await knex('titres_types__demarches_types__etapes_types__documents_types').insert({
     titreTypeId: 'arm',
     demarcheTypeId: 'oct',
     etapeTypeId: 'mfr',
-    documentTypeId: 'jpa'
+    documentTypeId: 'jpa',
   })
 
-  const titreEtapeJustificatifs: any[] = await TitresEtapesJustificatifs.query()
-    .leftJoinRelated('document')
-    .where('document.typeId', 'jpa')
-    .withGraphFetched('[document, etape]')
+  const titreEtapeJustificatifs: any[] = await TitresEtapesJustificatifs.query().leftJoinRelated('document').where('document.typeId', 'jpa').withGraphFetched('[document, etape]')
 
   for (const titreEtapeJustificatif of titreEtapeJustificatifs) {
-    await TitresEtapesJustificatifs.query()
-      .delete()
-      .where('titreEtapeId', titreEtapeJustificatif.titreEtapeId)
-      .where('documentId', titreEtapeJustificatif.documentId)
+    await TitresEtapesJustificatifs.query().delete().where('titreEtapeId', titreEtapeJustificatif.titreEtapeId).where('documentId', titreEtapeJustificatif.documentId)
 
-    await Document.query().patchAndFetchById(
-      titreEtapeJustificatif.documentId,
-      { entrepriseId: null, titreEtapeId: titreEtapeJustificatif.titreEtapeId }
-    )
+    await Document.query().patchAndFetchById(titreEtapeJustificatif.documentId, { entrepriseId: null, titreEtapeId: titreEtapeJustificatif.titreEtapeId })
 
     const pathFrom = await documentFilePathFind(titreEtapeJustificatif.document)
     const pathTo = await documentFilePathFind(
       {
         ...titreEtapeJustificatif.document,
         entrepriseId: undefined,
-        titreEtapeId: titreEtapeJustificatif.titreEtapeId
+        titreEtapeId: titreEtapeJustificatif.titreEtapeId,
       },
       true
     )
diff --git a/packages/api/src/knex/migrations-data/20220127132757_etapes_types_clean.ts b/packages/api/src/knex/migrations-data/20220127132757_etapes_types_clean.ts
index 3c48d871c..d00030633 100644
--- a/packages/api/src/knex/migrations-data/20220127132757_etapes_types_clean.ts
+++ b/packages/api/src/knex/migrations-data/20220127132757_etapes_types_clean.ts
@@ -6,69 +6,35 @@ import { deleteJournalCreate } from '../../database/queries/journaux.js'
 
 export const up = async (knex: Knex) => {
   // Supprime l’étape DSL « Demande de l’accord du propriétaire du sol »
-  await knex('titres_types__demarches_types__etapes_types')
-    .where('etape_type_id', 'dsl')
-    .delete()
+  await knex('titres_types__demarches_types__etapes_types').where('etape_type_id', 'dsl').delete()
 
-  const etapesDsl: any[] = await titresEtapesGet(
-    { etapesTypesIds: ['dsl'] },
-    { fields: { demarche: {} } },
-    userSuper
-  )
+  const etapesDsl: any[] = await titresEtapesGet({ etapesTypesIds: ['dsl'] }, { fields: { demarche: {} } }, userSuper)
   for (const etapeDsl of etapesDsl) {
-    await deleteJournalCreate(
-      etapeDsl.id,
-      TitresEtapes,
-      userSuper.id,
-      etapeDsl.demarche.titreId
-    )
+    await deleteJournalCreate(etapeDsl.id, TitresEtapes, userSuper.id, etapeDsl.demarche.titreId)
     await TitresEtapes.query().delete().where('id', etapeDsl.id)
   }
 
-  await knex('administrations__titres_types__etapes_types')
-    .where('etape_type_id', 'dsl')
-    .delete()
+  await knex('administrations__titres_types__etapes_types').where('etape_type_id', 'dsl').delete()
 
-  await knex('etapes_types__etapes_statuts')
-    .where('etape_type_id', 'dsl')
-    .delete()
+  await knex('etapes_types__etapes_statuts').where('etape_type_id', 'dsl').delete()
 
   await knex('etapes_types').where('id', 'dsl').delete()
 
   // supprime l’eof « Expertise de l’ONF » des AXM et son cycle d’informations
-  await knex('titres_types__demarches_types__etapes_types')
-    .whereIn('etape_type_id', ['eof', 'rio', 'mio'])
-    .where('demarche_type_id', 'oct')
-    .where('titre_type_id', 'axm')
-    .delete()
+  await knex('titres_types__demarches_types__etapes_types').whereIn('etape_type_id', ['eof', 'rio', 'mio']).where('demarche_type_id', 'oct').where('titre_type_id', 'axm').delete()
 
   // Supprime l’étape QAE « Demande d’examen au cas par cas »
-  await knex('titres_types__demarches_types__etapes_types')
-    .where('etape_type_id', 'qae')
-    .delete()
+  await knex('titres_types__demarches_types__etapes_types').where('etape_type_id', 'qae').delete()
 
-  const etapesQae: any[] = await titresEtapesGet(
-    { etapesTypesIds: ['qae'] },
-    { fields: { demarche: {} } },
-    userSuper
-  )
+  const etapesQae: any[] = await titresEtapesGet({ etapesTypesIds: ['qae'] }, { fields: { demarche: {} } }, userSuper)
   for (const etapeQae of etapesQae) {
-    await deleteJournalCreate(
-      etapeQae.id,
-      TitresEtapes,
-      userSuper.id,
-      etapeQae.demarche.titreId
-    )
+    await deleteJournalCreate(etapeQae.id, TitresEtapes, userSuper.id, etapeQae.demarche.titreId)
     await TitresEtapes.query().delete().where('id', etapeQae.id)
   }
 
-  await knex('administrations__titres_types__etapes_types')
-    .where('etape_type_id', 'qae')
-    .delete()
+  await knex('administrations__titres_types__etapes_types').where('etape_type_id', 'qae').delete()
 
-  await knex('etapes_types__etapes_statuts')
-    .where('etape_type_id', 'qae')
-    .delete()
+  await knex('etapes_types__etapes_statuts').where('etape_type_id', 'qae').delete()
 
   await knex('etapes_types').where('id', 'qae').delete()
 }
diff --git a/packages/api/src/knex/migrations-data/20220404145904_titres_activites_wrp_masse_delete.ts b/packages/api/src/knex/migrations-data/20220404145904_titres_activites_wrp_masse_delete.ts
index 4b5a03db9..a74ea77be 100644
--- a/packages/api/src/knex/migrations-data/20220404145904_titres_activites_wrp_masse_delete.ts
+++ b/packages/api/src/knex/migrations-data/20220404145904_titres_activites_wrp_masse_delete.ts
@@ -13,14 +13,10 @@ export const up = async (knex: Knex) => {
     }
 
     if (activite.sections) {
-      const section = activite.sections.find(
-        (s: { id: string }) => s.id === 'renseignementsProduction'
-      )
+      const section = activite.sections.find((s: { id: string }) => s.id === 'renseignementsProduction')
 
       if (section) {
-        section.elements = section.elements.filter(
-          (element: { id: string }) => element.id !== 'masseGranulatsExtrait'
-        )
+        section.elements = section.elements.filter((element: { id: string }) => element.id !== 'masseGranulatsExtrait')
 
         updated = true
       }
diff --git a/packages/api/src/knex/migrations-data/20220427064929_titres_etapes_asl_heritage_clean.ts b/packages/api/src/knex/migrations-data/20220427064929_titres_etapes_asl_heritage_clean.ts
index 717843444..9ae53f3f8 100644
--- a/packages/api/src/knex/migrations-data/20220427064929_titres_etapes_asl_heritage_clean.ts
+++ b/packages/api/src/knex/migrations-data/20220427064929_titres_etapes_asl_heritage_clean.ts
@@ -1,17 +1,13 @@
 import { Knex } from 'knex'
 export const up = async (knex: Knex) => {
-  const etapeIds = (
-    await knex('titres_etapes').where('type_id', 'asl').select('id')
-  ).map(({ id }) => id)
+  const etapeIds = (await knex('titres_etapes').where('type_id', 'asl').select('id')).map(({ id }) => id)
 
   await knex('titres_substances').whereIn('titre_etape_id', etapeIds).delete()
   await knex('titres_titulaires').whereIn('titre_etape_id', etapeIds).delete()
   await knex('titres_amodiataires').whereIn('titre_etape_id', etapeIds).delete()
   await knex('titres_points').whereIn('titre_etape_id', etapeIds).delete()
 
-  return knex('titres_etapes')
-    .where('type_id', 'asl')
-    .update({ heritage_props: null })
+  return knex('titres_etapes').where('type_id', 'asl').update({ heritage_props: null })
 }
 
 export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220519123402_supprime-mid-rid.ts b/packages/api/src/knex/migrations-data/20220519123402_supprime-mid-rid.ts
index ee873f1de..dc23ceba8 100644
--- a/packages/api/src/knex/migrations-data/20220519123402_supprime-mid-rid.ts
+++ b/packages/api/src/knex/migrations-data/20220519123402_supprime-mid-rid.ts
@@ -2,15 +2,9 @@ import { Knex } from 'knex'
 export const up = async (knex: Knex) => {
   const etapeTypeIds = ['mid', 'rid']
 
-  await knex('administrations__titresTypes__etapesTypes')
-    .whereIn('etapeTypeId', etapeTypeIds)
-    .delete()
-  await knex('etapesTypes__etapesStatuts')
-    .whereIn('etapeTypeId', etapeTypeIds)
-    .delete()
-  await knex('titresTypes__demarchesTypes__etapesTypes')
-    .whereIn('etapeTypeId', etapeTypeIds)
-    .delete()
+  await knex('administrations__titresTypes__etapesTypes').whereIn('etapeTypeId', etapeTypeIds).delete()
+  await knex('etapesTypes__etapesStatuts').whereIn('etapeTypeId', etapeTypeIds).delete()
+  await knex('titresTypes__demarchesTypes__etapesTypes').whereIn('etapeTypeId', etapeTypeIds).delete()
   await knex('etapesTypes').whereIn('id', etapeTypeIds).delete()
 }
 
diff --git a/packages/api/src/knex/migrations-data/20220609145836_fix-substances-ordre.ts b/packages/api/src/knex/migrations-data/20220609145836_fix-substances-ordre.ts
index 7360769e7..05d3a8f2f 100644
--- a/packages/api/src/knex/migrations-data/20220609145836_fix-substances-ordre.ts
+++ b/packages/api/src/knex/migrations-data/20220609145836_fix-substances-ordre.ts
@@ -1,27 +1,13 @@
 import { Knex } from 'knex'
 const mostImportantSubstances = ['auru', 'nacl']
-const leastImportantSubstances = [
-  'tmas',
-  'suco',
-  'scor',
-  'oooo',
-  'rxxx',
-  'trxx'
-]
+const leastImportantSubstances = ['tmas', 'suco', 'scor', 'oooo', 'rxxx', 'trxx']
 
 export const up = async (knex: Knex) => {
-  const titresEtapesSubstances = await knex('titres_substances')
-    .select('titre_etape_id')
-    .count('titre_etape_id')
-    .whereNull('ordre')
-    .groupBy('titre_etape_id')
+  const titresEtapesSubstances = await knex('titres_substances').select('titre_etape_id').count('titre_etape_id').whereNull('ordre').groupBy('titre_etape_id')
   for (let i = 0; i < titresEtapesSubstances.length; i++) {
     const titreEtapeSubstances = titresEtapesSubstances[i]
     if (titreEtapeSubstances.count !== '1') {
-      const entries = await knex('titres_substances').where(
-        'titre_etape_id',
-        titreEtapeSubstances.titreEtapeId
-      )
+      const entries = await knex('titres_substances').where('titre_etape_id', titreEtapeSubstances.titreEtapeId)
       const sorted = entries.sort((entry1, entry2) => {
         if (mostImportantSubstances.includes(entry1.substanceId)) {
           return -1
@@ -43,10 +29,7 @@ export const up = async (knex: Knex) => {
 
       for (let j = 0; j < sorted.length; j++) {
         const titreEtapeSubstance = sorted[j]
-        await knex('titres_substances')
-          .where('titre_etape_id', titreEtapeSubstance.titreEtapeId)
-          .andWhere('substanceId', titreEtapeSubstance.substanceId)
-          .update('ordre', j)
+        await knex('titres_substances').where('titre_etape_id', titreEtapeSubstance.titreEtapeId).andWhere('substanceId', titreEtapeSubstance.substanceId).update('ordre', j)
       }
     }
   }
diff --git a/packages/api/src/knex/migrations-data/20220615122602_bureau-etudes-create.ts b/packages/api/src/knex/migrations-data/20220615122602_bureau-etudes-create.ts
index ffc3d5e1a..ad68a0ba0 100644
--- a/packages/api/src/knex/migrations-data/20220615122602_bureau-etudes-create.ts
+++ b/packages/api/src/knex/migrations-data/20220615122602_bureau-etudes-create.ts
@@ -1,7 +1,4 @@
 import { Knex } from 'knex'
-export const up = (knex: Knex) =>
-  knex('utilisateurs')
-    .whereIn('id', ['c7142a', '38cbc5', '24414c', '40bf91', '95177f'])
-    .update({ role: 'bureau d’études' })
+export const up = (knex: Knex) => knex('utilisateurs').whereIn('id', ['c7142a', '38cbc5', '24414c', '40bf91', '95177f']).update({ role: 'bureau d’études' })
 
 export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220704122231_remove-plg.ts b/packages/api/src/knex/migrations-data/20220704122231_remove-plg.ts
index 534c117aa..d1b3e723d 100644
--- a/packages/api/src/knex/migrations-data/20220704122231_remove-plg.ts
+++ b/packages/api/src/knex/migrations-data/20220704122231_remove-plg.ts
@@ -1,8 +1,6 @@
 import { Knex } from 'knex'
 export const up = async (knex: Knex) => {
-  await knex('etapesTypes__documentsTypes')
-    .where('documentTypeId', 'plg')
-    .delete()
+  await knex('etapesTypes__documentsTypes').where('documentTypeId', 'plg').delete()
   await knex('documentsTypes').where('id', 'plg').delete()
 }
 
diff --git a/packages/api/src/knex/migrations-data/20220706130330_demarches-types-fusion-concession.ts b/packages/api/src/knex/migrations-data/20220706130330_demarches-types-fusion-concession.ts
index 43ca6b62d..46afef1b0 100644
--- a/packages/api/src/knex/migrations-data/20220706130330_demarches-types-fusion-concession.ts
+++ b/packages/api/src/knex/migrations-data/20220706130330_demarches-types-fusion-concession.ts
@@ -2,21 +2,21 @@ import { Knex } from 'knex'
 export const up = async (knex: Knex) => {
   await knex('titres_types__demarches_types').insert({
     titreTypeId: 'cxm',
-    demarcheTypeId: 'fus'
+    demarcheTypeId: 'fus',
   })
 
   await knex('titres_types__demarches_types__etapes_types').insert({
     titreTypeId: 'cxm',
     demarcheTypeId: 'fus',
     etapeTypeId: 'dex',
-    ordre: 100
+    ordre: 100,
   })
 
   await knex('titres_types__demarches_types__etapes_types').insert({
     titreTypeId: 'cxm',
     demarcheTypeId: 'fus',
     etapeTypeId: 'dpu',
-    ordre: 200
+    ordre: 200,
   })
 }
 export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20220726122406_activites-fiscales-unites-fix.ts b/packages/api/src/knex/migrations-data/20220726122406_activites-fiscales-unites-fix.ts
index c203eadeb..2bd7e485c 100644
--- a/packages/api/src/knex/migrations-data/20220726122406_activites-fiscales-unites-fix.ts
+++ b/packages/api/src/knex/migrations-data/20220726122406_activites-fiscales-unites-fix.ts
@@ -1,9 +1,6 @@
 import { UniteId } from 'camino-common/src/static/unites.js'
 import { Knex } from 'knex'
-const {
-  SUBSTANCES_FISCALES_IDS,
-  SubstancesFiscale
-} = require('camino-common/src/static/substancesFiscales')
+const { SUBSTANCES_FISCALES_IDS, SubstancesFiscale } = require('camino-common/src/static/substancesFiscales')
 const { Unites } = require('camino-common/src/static/unites')
 export const up = async (knex: Knex) => {
   const activites: {
@@ -24,15 +21,9 @@ export const up = async (knex: Knex) => {
 
     let updated = false
 
-    const substancesNeedFix = [
-      SUBSTANCES_FISCALES_IDS['pyrite de fer'],
-      SUBSTANCES_FISCALES_IDS['minerais de fer'],
-      SUBSTANCES_FISCALES_IDS['schistes carbobitumineux et schistes bitumineux']
-    ]
+    const substancesNeedFix = [SUBSTANCES_FISCALES_IDS['pyrite de fer'], SUBSTANCES_FISCALES_IDS['minerais de fer'], SUBSTANCES_FISCALES_IDS['schistes carbobitumineux et schistes bitumineux']]
 
-    const sectionSubstancesFiscales = activite.sections?.find(
-      section => section.id === 'substancesFiscales'
-    )
+    const sectionSubstancesFiscales = activite.sections?.find(section => section.id === 'substancesFiscales')
 
     if (sectionSubstancesFiscales) {
       for (const element of sectionSubstancesFiscales.elements) {
diff --git a/packages/api/src/knex/migrations-data/20220816140444_substances-ordre-required.ts b/packages/api/src/knex/migrations-data/20220816140444_substances-ordre-required.ts
index 9363c025e..680ca8eff 100644
--- a/packages/api/src/knex/migrations-data/20220816140444_substances-ordre-required.ts
+++ b/packages/api/src/knex/migrations-data/20220816140444_substances-ordre-required.ts
@@ -4,28 +4,20 @@ export const up = async (knex: Knex) => {
 
   const titresSubstances: any[] = await knex('titres_substances')
 
-  const groupByTitres: Record<string, any> = titresSubstances.reduce(
-    (acc, ts) => {
-      if (!acc[ts.titreEtapeId]) {
-        acc[ts.titreEtapeId] = []
-      }
-      acc[ts.titreEtapeId].push(ts)
+  const groupByTitres: Record<string, any> = titresSubstances.reduce((acc, ts) => {
+    if (!acc[ts.titreEtapeId]) {
+      acc[ts.titreEtapeId] = []
+    }
+    acc[ts.titreEtapeId].push(ts)
 
-      return acc
-    },
-    {}
-  )
+    return acc
+  }, {})
 
   for (const titreSubstances of Object.values(groupByTitres)) {
-    titreSubstances.sort(
-      (a: { ordre: number }, b: { ordre: number }) => a.ordre - b.ordre
-    )
+    titreSubstances.sort((a: { ordre: number }, b: { ordre: number }) => a.ordre - b.ordre)
     for (let index = 0; index < titreSubstances.length; index++) {
       const ts = titreSubstances[index]
-      await knex('titres_substances')
-        .where('titreEtapeId', ts.titreEtapeId)
-        .where('substanceId', ts.substanceId)
-        .update('ordre', index)
+      await knex('titres_substances').where('titreEtapeId', ts.titreEtapeId).where('substanceId', ts.substanceId).update('ordre', index)
     }
   }
 }
diff --git a/packages/api/src/knex/migrations-data/20220830145751_document-notice-impact-fix.ts b/packages/api/src/knex/migrations-data/20220830145751_document-notice-impact-fix.ts
index c33f16fb7..855a8a199 100644
--- a/packages/api/src/knex/migrations-data/20220830145751_document-notice-impact-fix.ts
+++ b/packages/api/src/knex/migrations-data/20220830145751_document-notice-impact-fix.ts
@@ -1,21 +1,17 @@
 import { Knex } from 'knex'
 export const up = async (knex: Knex) => {
   await knex('documentsTypes').insert({ id: 'nip', nom: 'Notice d’impact' })
-  await knex('titresTypes__demarchesTypes__etapesTypes__documentsTypes').insert(
-    {
-      titreTypeId: 'axm',
-      demarcheTypeId: 'oct',
-      etapeTypeId: 'mfr',
-      documentTypeId: 'nip',
-      optionnel: true
-    }
-  )
+  await knex('titresTypes__demarchesTypes__etapesTypes__documentsTypes').insert({
+    titreTypeId: 'axm',
+    demarcheTypeId: 'oct',
+    etapeTypeId: 'mfr',
+    documentTypeId: 'nip',
+    optionnel: true,
+  })
 
   const noticesIncidences = await knex('documents').where('typeId', 'noi')
   for (const noticeIncidence of noticesIncidences) {
-    const etape = await knex('titresEtapes')
-      .where('id', noticeIncidence.titreEtapeId)
-      .first()
+    const etape = await knex('titresEtapes').where('id', noticeIncidence.titreEtapeId).first()
     if (etape && etape.slug.startsWith('m-ax-')) {
       await knex('documents')
         .where('id', noticeIncidence.id)
diff --git a/packages/api/src/knex/migrations-data/20220905150740_change-la-visibilite-des-titres-stockage-souterrain.ts b/packages/api/src/knex/migrations-data/20220905150740_change-la-visibilite-des-titres-stockage-souterrain.ts
index 16863ee2c..c35fd27b7 100644
--- a/packages/api/src/knex/migrations-data/20220905150740_change-la-visibilite-des-titres-stockage-souterrain.ts
+++ b/packages/api/src/knex/migrations-data/20220905150740_change-la-visibilite-des-titres-stockage-souterrain.ts
@@ -1,11 +1,8 @@
 import { Knex } from 'knex'
 export const up = async (knex: Knex) => {
-  await knex('titresTypes__titresStatuts')
-    .whereLike('titreTypeId', '%s')
-    .whereIn('titreStatutId', ['val', 'ech', 'dmi', 'mod'])
-    .update({
-      publicLecture: true
-    })
+  await knex('titresTypes__titresStatuts').whereLike('titreTypeId', '%s').whereIn('titreStatutId', ['val', 'ech', 'dmi', 'mod']).update({
+    publicLecture: true,
+  })
 }
 
 export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-data/20230207101630_domaine-indetermine-delete.ts b/packages/api/src/knex/migrations-data/20230207101630_domaine-indetermine-delete.ts
index 0ef03ea19..54240b321 100644
--- a/packages/api/src/knex/migrations-data/20230207101630_domaine-indetermine-delete.ts
+++ b/packages/api/src/knex/migrations-data/20230207101630_domaine-indetermine-delete.ts
@@ -1,12 +1,8 @@
 import { Knex } from 'knex'
 
 export const up = async (knex: Knex) => {
-  await knex.raw(
-    "delete from titres_types__demarches_types__etapes_types where titre_type_id like '%i'"
-  )
-  await knex.raw(
-    "delete from titres_types__demarches_types where titre_type_id like '%i'"
-  )
+  await knex.raw("delete from titres_types__demarches_types__etapes_types where titre_type_id like '%i'")
+  await knex.raw("delete from titres_types__demarches_types where titre_type_id like '%i'")
   await knex.raw("delete from titres_types where domaine_id = 'i'")
   await knex.raw("delete from domaines where id = 'i'")
 }
diff --git a/packages/api/src/knex/migrations-schema/20180521000001_domaines_types_statuts.ts b/packages/api/src/knex/migrations-schema/20180521000001_domaines_types_statuts.ts
index 9f4ef61b7..579a1fc00 100644
--- a/packages/api/src/knex/migrations-schema/20180521000001_domaines_types_statuts.ts
+++ b/packages/api/src/knex/migrations-schema/20180521000001_domaines_types_statuts.ts
@@ -15,16 +15,8 @@ export const up = (knex: Knex) =>
     })
     .createTable('titresTypes', table => {
       table.string('id', 3).primary().notNullable()
-      table
-        .string('domaineId', 1)
-        .index()
-        .references('domaines.id')
-        .notNullable()
-      table
-        .string('typeId', 3)
-        .index()
-        .references('titresTypesTypes.id')
-        .notNullable()
+      table.string('domaineId', 1).index().references('domaines.id').notNullable()
+      table.string('typeId', 3).index().references('titresTypesTypes.id').notNullable()
       table.specificType('contenuIds', 'jsonb[]')
       table.boolean('archive')
       table.unique(['domaineId', 'typeId'])
@@ -37,24 +29,10 @@ export const up = (knex: Knex) =>
       table.integer('ordre')
     })
     .createTable('titresTypes__titresStatuts', table => {
-      table
-        .string('titreTypeId')
-        .index()
-        .references('titresTypes.id')
-        .notNullable()
-      table
-        .string('titreStatutId')
-        .index()
-        .references('titresStatuts.id')
-        .notNullable()
+      table.string('titreTypeId').index().references('titresTypes.id').notNullable()
+      table.string('titreStatutId').index().references('titresStatuts.id').notNullable()
       table.boolean('publicLecture')
       table.primary(['titreTypeId', 'titreStatutId'])
     })
 
-export const down = (knex: Knex) =>
-  knex.schema
-    .dropTable('titresTypesTypes')
-    .dropTable('domaines')
-    .dropTable('titresTypes__titresStatuts')
-    .dropTable('titresTypes')
-    .dropTable('titresStatuts')
+export const down = (knex: Knex) => knex.schema.dropTable('titresTypesTypes').dropTable('domaines').dropTable('titresTypes__titresStatuts').dropTable('titresTypes').dropTable('titresStatuts')
diff --git a/packages/api/src/knex/migrations-schema/20180521000002_demarches_etapes.ts b/packages/api/src/knex/migrations-schema/20180521000002_demarches_etapes.ts
index f41663091..a95006ca7 100644
--- a/packages/api/src/knex/migrations-schema/20180521000002_demarches_etapes.ts
+++ b/packages/api/src/knex/migrations-schema/20180521000002_demarches_etapes.ts
@@ -15,16 +15,8 @@ export const up = (knex: Knex) => {
       table.boolean('auto')
     })
     .createTable('titresTypes__demarchesTypes', table => {
-      table
-        .string('titreTypeId', 3)
-        .index()
-        .references('titresTypes.id')
-        .notNullable()
-      table
-        .string('demarcheTypeId', 3)
-        .index()
-        .references('demarchesTypes.id')
-        .notNullable()
+      table.string('titreTypeId', 3).index().references('titresTypes.id').notNullable()
+      table.string('demarcheTypeId', 3).index().references('demarchesTypes.id').notNullable()
       table.integer('dureeMax')
       table.boolean('acceptationImplicite')
       table.string('delaiImplicite')
@@ -65,22 +57,10 @@ export const up = (knex: Knex) => {
       table.boolean('entreprisesLecture')
     })
     .createTable('titresTypes__demarchesTypes__etapesTypes', table => {
-      table
-        .string('titreTypeId', 3)
-        .index()
-        .references('titresTypes.id')
-        .notNullable()
+      table.string('titreTypeId', 3).index().references('titresTypes.id').notNullable()
       table.integer('ordre')
-      table
-        .string('demarcheTypeId', 7)
-        .index()
-        .references('demarchesTypes.id')
-        .notNullable()
-      table
-        .string('etapeTypeId', 3)
-        .index()
-        .references('etapesTypes.id')
-        .notNullable()
+      table.string('demarcheTypeId', 7).index().references('demarchesTypes.id').notNullable()
+      table.string('etapeTypeId', 3).index().references('etapesTypes.id').notNullable()
       table.specificType('sections', 'jsonb[]')
       table.primary(['titreTypeId', 'demarcheTypeId', 'etapeTypeId'])
     })
@@ -91,16 +71,8 @@ export const up = (knex: Knex) => {
       table.string('couleur', 16).notNullable()
     })
     .createTable('etapesTypes__etapesStatuts', table => {
-      table
-        .string('etapeTypeId', 3)
-        .index()
-        .references('etapesTypes.id')
-        .notNullable()
-      table
-        .string('etapeStatutId', 3)
-        .index()
-        .references('etapesStatuts.id')
-        .notNullable()
+      table.string('etapeTypeId', 3).index().references('etapesTypes.id').notNullable()
+      table.string('etapeStatutId', 3).index().references('etapesStatuts.id').notNullable()
       table.integer('ordre')
       table.primary(['etapeTypeId', 'etapeStatutId'])
     })
@@ -110,71 +82,32 @@ export const up = (knex: Knex) => {
       table.text('description')
     })
     .createTable('etapesTypes__documentsTypes', table => {
-      table
-        .string('etapeTypeId', 3)
-        .index()
-        .references('etapesTypes.id')
-        .notNullable()
-        .onDelete('CASCADE')
-      table
-        .string('documentTypeId', 3)
-        .index()
-        .references('documentsTypes.id')
-        .notNullable()
+      table.string('etapeTypeId', 3).index().references('etapesTypes.id').notNullable().onDelete('CASCADE')
+      table.string('documentTypeId', 3).index().references('documentsTypes.id').notNullable()
       table.boolean('optionnel')
       table.text('description')
       table.primary(['etapeTypeId', 'documentTypeId'])
     })
-    .createTable(
-      'titresTypes__demarchesTypes__etapesTypes__documentsTypes',
-      table => {
-        table.string('titreTypeId', 3).index().notNullable()
-        table.string('demarcheTypeId', 7).index().notNullable()
-        table.string('etapeTypeId', 3).index().notNullable()
-        table
-          .string('documentTypeId', 3)
-          .index()
-          .references('documentsTypes.id')
-          .notNullable()
-        table.boolean('optionnel')
-        table.text('description')
-        table.primary([
-          'titreTypeId',
-          'demarcheTypeId',
-          'etapeTypeId',
-          'documentTypeId'
-        ])
-        table
-          .foreign(['titreTypeId', 'demarcheTypeId', 'etapeTypeId'])
-          .references(['titreTypeId', 'demarcheTypeId', 'etapeTypeId'])
-          .inTable('titresTypes__demarchesTypes__etapesTypes')
-      }
-    )
-    .createTable(
-      'titresTypes__demarchesTypes__etapesTypes__justificatifsT',
-      table => {
-        table.string('titreTypeId', 3).index().notNullable()
-        table.string('demarcheTypeId', 7).index().notNullable()
-        table.string('etapeTypeId', 3).index().notNullable()
-        table
-          .string('documentTypeId', 3)
-          .index()
-          .references('documentsTypes.id')
-          .notNullable()
-        table.boolean('optionnel')
-        table.text('description')
-        table.primary([
-          'titreTypeId',
-          'demarcheTypeId',
-          'etapeTypeId',
-          'documentTypeId'
-        ])
-        table
-          .foreign(['titreTypeId', 'demarcheTypeId', 'etapeTypeId'])
-          .references(['titreTypeId', 'demarcheTypeId', 'etapeTypeId'])
-          .inTable('titresTypes__demarchesTypes__etapesTypes')
-      }
-    )
+    .createTable('titresTypes__demarchesTypes__etapesTypes__documentsTypes', table => {
+      table.string('titreTypeId', 3).index().notNullable()
+      table.string('demarcheTypeId', 7).index().notNullable()
+      table.string('etapeTypeId', 3).index().notNullable()
+      table.string('documentTypeId', 3).index().references('documentsTypes.id').notNullable()
+      table.boolean('optionnel')
+      table.text('description')
+      table.primary(['titreTypeId', 'demarcheTypeId', 'etapeTypeId', 'documentTypeId'])
+      table.foreign(['titreTypeId', 'demarcheTypeId', 'etapeTypeId']).references(['titreTypeId', 'demarcheTypeId', 'etapeTypeId']).inTable('titresTypes__demarchesTypes__etapesTypes')
+    })
+    .createTable('titresTypes__demarchesTypes__etapesTypes__justificatifsT', table => {
+      table.string('titreTypeId', 3).index().notNullable()
+      table.string('demarcheTypeId', 7).index().notNullable()
+      table.string('etapeTypeId', 3).index().notNullable()
+      table.string('documentTypeId', 3).index().references('documentsTypes.id').notNullable()
+      table.boolean('optionnel')
+      table.text('description')
+      table.primary(['titreTypeId', 'demarcheTypeId', 'etapeTypeId', 'documentTypeId'])
+      table.foreign(['titreTypeId', 'demarcheTypeId', 'etapeTypeId']).references(['titreTypeId', 'demarcheTypeId', 'etapeTypeId']).inTable('titresTypes__demarchesTypes__etapesTypes')
+    })
 }
 
 export const down = (knex: Knex) => {
diff --git a/packages/api/src/knex/migrations-schema/20180521000003_unites.ts b/packages/api/src/knex/migrations-schema/20180521000003_unites.ts
index 812888fbd..d387b990e 100644
--- a/packages/api/src/knex/migrations-schema/20180521000003_unites.ts
+++ b/packages/api/src/knex/migrations-schema/20180521000003_unites.ts
@@ -26,9 +26,4 @@ export const up = (knex: Knex) =>
       table.string('nom').notNullable()
     })
 
-export const down = (knex: Knex) =>
-  knex.schema
-    .dropTable('devises')
-    .dropTable('geoSystemes')
-    .dropTable('unites')
-    .dropTable('referencesTypes')
+export const down = (knex: Knex) => knex.schema.dropTable('devises').dropTable('geoSystemes').dropTable('unites').dropTable('referencesTypes')
diff --git a/packages/api/src/knex/migrations-schema/20180521000004_substances.ts b/packages/api/src/knex/migrations-schema/20180521000004_substances.ts
index 00443f58f..ac620282a 100644
--- a/packages/api/src/knex/migrations-schema/20180521000004_substances.ts
+++ b/packages/api/src/knex/migrations-schema/20180521000004_substances.ts
@@ -12,17 +12,9 @@ export const up = (knex: Knex) => {
     .createTable('substancesLegales', table => {
       table.string('id').primary()
       table.string('nom').notNullable()
-      table
-        .string('domaineId', 1)
-        .notNullable()
-        .index()
-        .references('domaines.id')
+      table.string('domaineId', 1).notNullable().index().references('domaines.id')
       table.text('description')
-      table
-        .string('substanceLegaleCodeId')
-        .index()
-        .references('substancesLegalesCodes.id')
-        .notNullable()
+      table.string('substanceLegaleCodeId').index().references('substancesLegalesCodes.id').notNullable()
     })
     .createTable('substances', table => {
       table.string('id', 4).primary()
@@ -32,26 +24,13 @@ export const up = (knex: Knex) => {
       table.string('description', 2048)
     })
     .createTable('substances__substancesLegales', table => {
-      table
-        .string('substanceId')
-        .index()
-        .references('substances.id')
-        .notNullable()
-        .onDelete('CASCADE')
-      table
-        .string('substanceLegaleId')
-        .index()
-        .references('substancesLegales.id')
-        .notNullable()
+      table.string('substanceId').index().references('substances.id').notNullable().onDelete('CASCADE')
+      table.string('substanceLegaleId').index().references('substancesLegales.id').notNullable()
       table.primary(['substanceId', 'substanceLegaleId'])
     })
     .createTable('substancesFiscales', table => {
       table.string('id', 4).primary()
-      table
-        .string('substanceLegaleId')
-        .index()
-        .references('substancesLegales.id')
-        .notNullable()
+      table.string('substanceLegaleId').index().references('substancesLegales.id').notNullable()
       table.string('uniteId').index().references('unites.id').notNullable()
       table.string('redevanceUniteId').index().references('unites.id')
       table.string('nom').notNullable()
@@ -60,9 +39,5 @@ export const up = (knex: Knex) => {
 }
 
 export const down = (knex: Knex) => {
-  return knex.schema
-    .dropTable('substances__substancesLegales')
-    .dropTable('substances')
-    .dropTable('substancesLegales')
-    .dropTable('substancesLegalesCodes')
+  return knex.schema.dropTable('substances__substancesLegales').dropTable('substances').dropTable('substancesLegales').dropTable('substancesLegalesCodes')
 }
diff --git a/packages/api/src/knex/migrations-schema/20180521000005_territoires.ts b/packages/api/src/knex/migrations-schema/20180521000005_territoires.ts
index 5a34510d1..e3a587989 100644
--- a/packages/api/src/knex/migrations-schema/20180521000005_territoires.ts
+++ b/packages/api/src/knex/migrations-schema/20180521000005_territoires.ts
@@ -21,11 +21,7 @@ export const up = (knex: Knex) => {
     .createTable('communes', table => {
       table.string('id', 5).primary()
       table.string('nom').notNullable()
-      table
-        .string('departementId', 3)
-        .notNullable()
-        .index()
-        .references('departements.id')
+      table.string('departementId', 3).notNullable().index().references('departements.id')
     })
     .createTable('forets', table => {
       table.string('id', 30).primary()
@@ -34,10 +30,5 @@ export const up = (knex: Knex) => {
 }
 
 export const down = (knex: Knex) => {
-  return knex.schema
-    .dropTable('communes')
-    .dropTable('departements')
-    .dropTable('regions')
-    .dropTable('pays')
-    .dropTable('forets')
+  return knex.schema.dropTable('communes').dropTable('departements').dropTable('regions').dropTable('pays').dropTable('forets')
 }
diff --git a/packages/api/src/knex/migrations-schema/20180521000006_calendrier.ts b/packages/api/src/knex/migrations-schema/20180521000006_calendrier.ts
index 4027b3f58..642dbc2a2 100644
--- a/packages/api/src/knex/migrations-schema/20180521000006_calendrier.ts
+++ b/packages/api/src/knex/migrations-schema/20180521000006_calendrier.ts
@@ -25,8 +25,5 @@ export const up = (knex: Knex) => {
 }
 
 export const down = (knex: Knex) => {
-  return knex.schema
-    .dropTable('mois')
-    .dropTable('trimestres')
-    .dropTable('frequences')
+  return knex.schema.dropTable('mois').dropTable('trimestres').dropTable('frequences')
 }
diff --git a/packages/api/src/knex/migrations-schema/20180521000007_metas_activites.ts b/packages/api/src/knex/migrations-schema/20180521000007_metas_activites.ts
index c53fa915b..d9ee6c05b 100644
--- a/packages/api/src/knex/migrations-schema/20180521000007_metas_activites.ts
+++ b/packages/api/src/knex/migrations-schema/20180521000007_metas_activites.ts
@@ -5,11 +5,7 @@ export const up = (knex: Knex) =>
       table.string('id', 3).primary()
       table.string('nom').notNullable()
       table.specificType('sections', 'jsonb[]').notNullable()
-      table
-        .string('frequenceId', 3)
-        .notNullable()
-        .index()
-        .references('frequences.id')
+      table.string('frequenceId', 3).notNullable().index().references('frequences.id')
       table.string('dateDebut').notNullable()
       table.integer('delaiMois')
       table.string('satisfaction_url')
@@ -18,40 +14,18 @@ export const up = (knex: Knex) =>
       table.text('description')
     })
     .createTable('activitesTypes__titresTypes', table => {
-      table
-        .string('titreTypeId', 3)
-        .index()
-        .references('titresTypes.id')
-        .notNullable()
-      table
-        .string('activiteTypeId', 3)
-        .index()
-        .references('activitesTypes.id')
-        .notNullable()
+      table.string('titreTypeId', 3).index().references('titresTypes.id').notNullable()
+      table.string('activiteTypeId', 3).index().references('activitesTypes.id').notNullable()
       table.primary(['activiteTypeId', 'titreTypeId'])
     })
     .createTable('activitesTypes__pays', table => {
       table.string('paysId', 3).notNullable().index().references('pays.id')
-      table
-        .string('activiteTypeId', 3)
-        .index()
-        .references('activitesTypes.id')
-        .notNullable()
-        .onDelete('CASCADE')
+      table.string('activiteTypeId', 3).index().references('activitesTypes.id').notNullable().onDelete('CASCADE')
       table.primary(['paysId', 'activiteTypeId'])
     })
     .createTable('activitesTypes__documentsTypes', table => {
-      table
-        .string('activiteTypeId', 3)
-        .index()
-        .references('activitesTypes.id')
-        .notNullable()
-        .onDelete('CASCADE')
-      table
-        .string('documentTypeId', 3)
-        .index()
-        .references('documentsTypes.id')
-        .notNullable()
+      table.string('activiteTypeId', 3).index().references('activitesTypes.id').notNullable().onDelete('CASCADE')
+      table.string('documentTypeId', 3).index().references('documentsTypes.id').notNullable()
       table.boolean('optionnel')
       table.primary(['activiteTypeId', 'documentTypeId'])
     })
@@ -62,9 +36,4 @@ export const up = (knex: Knex) =>
     })
 
 export const down = (knex: Knex) =>
-  knex.schema
-    .dropTable('activitesTypes__pays')
-    .dropTable('activitesTypes__documentsTypes')
-    .dropTable('activitesTypes__titresTypes')
-    .dropTable('activitesTypes')
-    .dropTable('activitesStatuts')
+  knex.schema.dropTable('activitesTypes__pays').dropTable('activitesTypes__documentsTypes').dropTable('activitesTypes__titresTypes').dropTable('activitesTypes').dropTable('activitesStatuts')
diff --git a/packages/api/src/knex/migrations-schema/20180521000008_metas_travaux.ts b/packages/api/src/knex/migrations-schema/20180521000008_metas_travaux.ts
index 958949338..b620cd320 100644
--- a/packages/api/src/knex/migrations-schema/20180521000008_metas_travaux.ts
+++ b/packages/api/src/knex/migrations-schema/20180521000008_metas_travaux.ts
@@ -14,45 +14,20 @@ export const up = (knex: Knex) =>
       table.integer('ordre').notNullable()
     })
     .createTable('travauxTypes__travauxEtapesTypes', table => {
-      table
-        .string('travauxTypeId', 3)
-        .index()
-        .references('travauxTypes.id')
-        .notNullable()
-      table
-        .string('travauxEtapeTypeId', 3)
-        .index()
-        .references('travauxEtapesTypes.id')
-        .notNullable()
+      table.string('travauxTypeId', 3).index().references('travauxTypes.id').notNullable()
+      table.string('travauxEtapeTypeId', 3).index().references('travauxEtapesTypes.id').notNullable()
       table.integer('ordre').notNullable()
       table.primary(['travauxTypeId', 'travauxEtapeTypeId'])
     })
     .createTable('travauxEtapesTypes__etapesStatuts', table => {
-      table
-        .string('travauxEtapeTypeId', 3)
-        .index()
-        .references('travauxEtapesTypes.id')
-        .notNullable()
-      table
-        .string('etapeStatutId', 3)
-        .index()
-        .references('etapesStatuts.id')
-        .notNullable()
+      table.string('travauxEtapeTypeId', 3).index().references('travauxEtapesTypes.id').notNullable()
+      table.string('etapeStatutId', 3).index().references('etapesStatuts.id').notNullable()
       table.integer('ordre')
       table.primary(['travauxEtapeTypeId', 'etapeStatutId'])
     })
     .createTable('travauxEtapesTypes__documentsTypes', table => {
-      table
-        .string('travauxEtapeTypeId', 3)
-        .index()
-        .references('travauxEtapesTypes.id')
-        .notNullable()
-        .onDelete('CASCADE')
-      table
-        .string('documentTypeId', 3)
-        .index()
-        .references('documentsTypes.id')
-        .notNullable()
+      table.string('travauxEtapeTypeId', 3).index().references('travauxEtapesTypes.id').notNullable().onDelete('CASCADE')
+      table.string('documentTypeId', 3).index().references('documentsTypes.id').notNullable()
       table.boolean('optionnel')
       table.primary(['travauxEtapeTypeId', 'documentTypeId'])
     })
diff --git a/packages/api/src/knex/migrations-schema/20180521000009_repertoire.ts b/packages/api/src/knex/migrations-schema/20180521000009_repertoire.ts
index 68649577c..df88a855a 100644
--- a/packages/api/src/knex/migrations-schema/20180521000009_repertoire.ts
+++ b/packages/api/src/knex/migrations-schema/20180521000009_repertoire.ts
@@ -21,38 +21,19 @@ export const up = (knex: Knex) =>
     })
     .createTable('entreprisesEtablissements', table => {
       table.string('id', 64).primary()
-      table
-        .string('entrepriseId', 64)
-        .index()
-        .references('entreprises.id')
-        .notNullable()
-        .onDelete('CASCADE')
+      table.string('entrepriseId', 64).index().references('entreprises.id').notNullable().onDelete('CASCADE')
       table.string('nom')
       table.string('legalSiret')
       table.string('dateDebut', 10)
       table.string('dateFin', 10)
     })
     .createTable('entreprises__documentsTypes', table => {
-      table
-        .string('documentTypeId', 3)
-        .index()
-        .references('documentsTypes.id')
-        .notNullable()
+      table.string('documentTypeId', 3).index().references('documentsTypes.id').notNullable()
       table.primary(['documentTypeId'])
     })
     .createTable('entreprises__titresTypes', table => {
-      table
-        .string('entrepriseId')
-        .index()
-        .references('entreprises.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
-        .notNullable()
-      table
-        .string('titreTypeId')
-        .index()
-        .references('titresTypes.id')
-        .notNullable()
+      table.string('entrepriseId').index().references('entreprises.id').onUpdate('CASCADE').onDelete('CASCADE').notNullable()
+      table.string('titreTypeId').index().references('titresTypes.id').notNullable()
       table.boolean('titresCreation')
       table.primary(['entrepriseId', 'titreTypeId'])
     })
@@ -63,11 +44,7 @@ export const up = (knex: Knex) =>
     })
     .createTable('administrations', table => {
       table.string('id', 64).primary()
-      table
-        .string('typeId')
-        .index()
-        .references('administrationsTypes.id')
-        .notNullable()
+      table.string('typeId').index().references('administrationsTypes.id').notNullable()
       table.string('nom').notNullable()
       table.string('abreviation', 255)
       table.string('service')
@@ -83,81 +60,33 @@ export const up = (knex: Knex) =>
       table.string('regionId').index().references('regions.id')
     })
     .createTable('administrations__titresTypes', table => {
-      table
-        .string('administrationId')
-        .index()
-        .references('administrations.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
-        .notNullable()
-      table
-        .string('titreTypeId')
-        .index()
-        .references('titresTypes.id')
-        .notNullable()
+      table.string('administrationId').index().references('administrations.id').onUpdate('CASCADE').onDelete('CASCADE').notNullable()
+      table.string('titreTypeId').index().references('titresTypes.id').notNullable()
       table.boolean('gestionnaire')
       table.boolean('associee')
       table.primary(['administrationId', 'titreTypeId'])
     })
     .createTable('administrations__titresTypes__titresStatuts', table => {
-      table
-        .string('administrationId')
-        .index()
-        .references('administrations.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
-        .notNullable()
-      table
-        .string('titreTypeId')
-        .index()
-        .references('titresTypes.id')
-        .notNullable()
-      table
-        .string('titreStatutId')
-        .index()
-        .references('titresStatuts.id')
-        .notNullable()
+      table.string('administrationId').index().references('administrations.id').onUpdate('CASCADE').onDelete('CASCADE').notNullable()
+      table.string('titreTypeId').index().references('titresTypes.id').notNullable()
+      table.string('titreStatutId').index().references('titresStatuts.id').notNullable()
       table.boolean('titresModificationInterdit')
       table.boolean('demarchesModificationInterdit')
       table.boolean('etapesModificationInterdit')
       table.primary(['administrationId', 'titreTypeId', 'titreStatutId'])
     })
     .createTable('administrations__titresTypes__etapesTypes', table => {
-      table
-        .string('administrationId')
-        .index()
-        .references('administrations.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
-        .notNullable()
-      table
-        .string('titreTypeId')
-        .index()
-        .references('titresTypes.id')
-        .notNullable()
-      table
-        .string('etapeTypeId')
-        .index()
-        .references('etapesTypes.id')
-        .notNullable()
+      table.string('administrationId').index().references('administrations.id').onUpdate('CASCADE').onDelete('CASCADE').notNullable()
+      table.string('titreTypeId').index().references('titresTypes.id').notNullable()
+      table.string('etapeTypeId').index().references('etapesTypes.id').notNullable()
       table.boolean('lectureInterdit')
       table.boolean('creationInterdit')
       table.boolean('modificationInterdit')
       table.primary(['administrationId', 'titreTypeId', 'etapeTypeId'])
     })
     .createTable('administrations__activitesTypes', table => {
-      table
-        .string('activiteTypeId', 3)
-        .index()
-        .references('activitesTypes.id')
-        .notNullable()
-        .onDelete('CASCADE')
-      table
-        .string('administrationId', 64)
-        .notNullable()
-        .index()
-        .references('administrations.id')
-        .onDelete('CASCADE')
+      table.string('activiteTypeId', 3).index().references('activitesTypes.id').notNullable().onDelete('CASCADE')
+      table.string('administrationId', 64).notNullable().index().references('administrations.id').onDelete('CASCADE')
       table.boolean('modificationInterdit')
       table.boolean('lectureInterdit')
       table.primary(['administrationId', 'activiteTypeId'])
@@ -176,51 +105,21 @@ export const up = (knex: Knex) =>
       table.string('telephoneFixe')
       table.string('telephoneMobile')
       table.string('refreshToken')
-      table
-        .string('permissionId', 12)
-        .index()
-        .references('permissions.id')
-        .notNullable()
+      table.string('permissionId', 12).index().references('permissions.id').notNullable()
       table.json('preferences')
       table.boolean('newsletter')
     })
     .createTable('utilisateurs__entreprises', table => {
-      table
-        .string('utilisateurId', 64)
-        .index()
-        .references('utilisateurs.id')
-        .onDelete('CASCADE')
-      table
-        .string('entrepriseId', 64)
-        .index()
-        .references('entreprises.id')
-        .onDelete('CASCADE')
+      table.string('utilisateurId', 64).index().references('utilisateurs.id').onDelete('CASCADE')
+      table.string('entrepriseId', 64).index().references('entreprises.id').onDelete('CASCADE')
     })
     .createTable('utilisateurs__administrations', table => {
-      table
-        .string('utilisateurId', 64)
-        .index()
-        .references('utilisateurs.id')
-        .onDelete('CASCADE')
-      table
-        .string('administrationId', 64)
-        .index()
-        .references('administrations.id')
-        .onDelete('CASCADE')
-        .onUpdate('CASCADE')
+      table.string('utilisateurId', 64).index().references('utilisateurs.id').onDelete('CASCADE')
+      table.string('administrationId', 64).index().references('administrations.id').onDelete('CASCADE').onUpdate('CASCADE')
     })
     .createTable('etapesTypes__justificatifsTypes', table => {
-      table
-        .string('etapeTypeId', 3)
-        .index()
-        .references('etapesTypes.id')
-        .notNullable()
-        .onDelete('CASCADE')
-      table
-        .string('documentTypeId', 3)
-        .index()
-        .references('entreprises__documentsTypes.documentTypeId')
-        .notNullable()
+      table.string('etapeTypeId', 3).index().references('etapesTypes.id').notNullable().onDelete('CASCADE')
+      table.string('documentTypeId', 3).index().references('entreprises__documentsTypes.documentTypeId').notNullable()
       table.boolean('optionnel')
       table.text('description')
       table.primary(['etapeTypeId', 'documentTypeId'])
diff --git a/packages/api/src/knex/migrations-schema/20180522000001_titres.ts b/packages/api/src/knex/migrations-schema/20180522000001_titres.ts
index 8f4bb63c0..c1c069cf0 100644
--- a/packages/api/src/knex/migrations-schema/20180522000001_titres.ts
+++ b/packages/api/src/knex/migrations-schema/20180522000001_titres.ts
@@ -6,12 +6,7 @@ export const up = (knex: Knex) =>
     table.string('nom').notNullable()
     table.string('typeId', 3).index().references('titresTypes.id').notNullable()
     table.string('domaineId', 1).index().references('domaines.id').notNullable()
-    table
-      .string('statutId', 3)
-      .index()
-      .references('titresStatuts.id')
-      .notNullable()
-      .defaultTo('ind')
+    table.string('statutId', 3).index().references('titresStatuts.id').notNullable().defaultTo('ind')
     table.string('dateDebut', 10)
     table.string('dateFin', 10)
     table.string('dateDemande', 10)
diff --git a/packages/api/src/knex/migrations-schema/20180522000002_titres_demarches_etapes.ts b/packages/api/src/knex/migrations-schema/20180522000002_titres_demarches_etapes.ts
index ae664e75f..8a6f73960 100644
--- a/packages/api/src/knex/migrations-schema/20180522000002_titres_demarches_etapes.ts
+++ b/packages/api/src/knex/migrations-schema/20180522000002_titres_demarches_etapes.ts
@@ -5,48 +5,23 @@ export const up = (knex: Knex) => {
       table.string('id', 128).primary()
       table.string('slug').index()
       table.string('titreId', 128).notNullable().index()
-      table
-        .foreign('titreId')
-        .references('titres.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
-      table
-        .string('typeId', 3)
-        .notNullable()
-        .index()
-        .references('demarchesTypes.id')
-      table
-        .string('statutId', 3)
-        .notNullable()
-        .index()
-        .references('demarchesStatuts.id')
-        .defaultTo('ind')
+      table.foreign('titreId').references('titres.id').onUpdate('CASCADE').onDelete('CASCADE')
+      table.string('typeId', 3).notNullable().index().references('demarchesTypes.id')
+      table.string('statutId', 3).notNullable().index().references('demarchesStatuts.id').defaultTo('ind')
       table.boolean('publicLecture').defaultTo(false)
       table.boolean('entreprisesLecture').defaultTo(false)
       table.integer('ordre').defaultTo('0')
     })
     .createTable('titresDemarchesLiens', table => {
       table.string('enfantTitreDemarcheId', 128).index()
-      table
-        .foreign('enfantTitreDemarcheId')
-        .references('titresDemarches.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
+      table.foreign('enfantTitreDemarcheId').references('titresDemarches.id').onUpdate('CASCADE').onDelete('CASCADE')
       table.string('parentTitreDemarcheId', 128).index()
-      table
-        .foreign('parentTitreDemarcheId')
-        .references('titresDemarches.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
+      table.foreign('parentTitreDemarcheId').references('titresDemarches.id').onUpdate('CASCADE').onDelete('CASCADE')
       table.primary(['enfantTitreDemarcheId', 'parentTitreDemarcheId'])
     })
     .createTable('titresPhases', table => {
       table.string('titreDemarcheId', 128).primary()
-      table
-        .foreign('titreDemarcheId')
-        .references('titresDemarches.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
+      table.foreign('titreDemarcheId').references('titresDemarches.id').onUpdate('CASCADE').onDelete('CASCADE')
       table.string('statutId', 3).notNullable().references('phasesStatuts.id')
       table.string('dateDebut', 10)
       table.string('dateFin', 10)
@@ -55,21 +30,9 @@ export const up = (knex: Knex) => {
       table.string('id', 128).primary()
       table.string('slug').index()
       table.string('titreDemarcheId', 128).notNullable().index()
-      table
-        .foreign('titreDemarcheId')
-        .references('titresDemarches.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
-      table
-        .string('typeId', 3)
-        .notNullable()
-        .index()
-        .references('etapesTypes.id')
-      table
-        .string('statutId', 3)
-        .notNullable()
-        .index()
-        .references('etapesStatuts.id')
+      table.foreign('titreDemarcheId').references('titresDemarches.id').onUpdate('CASCADE').onDelete('CASCADE')
+      table.string('typeId', 3).notNullable().index().references('etapesTypes.id')
+      table.string('statutId', 3).notNullable().index().references('etapesStatuts.id')
       table.integer('ordre')
       table.string('date', 10).notNullable()
       table.string('dateDebut', 10)
@@ -84,9 +47,5 @@ export const up = (knex: Knex) => {
 }
 
 export const down = (knex: Knex) => {
-  return knex.schema
-    .dropTable('titresEtapes')
-    .dropTable('titresPhases')
-    .dropTable('titresDemarchesLiens')
-    .dropTable('titresDemarches')
+  return knex.schema.dropTable('titresEtapes').dropTable('titresPhases').dropTable('titresDemarchesLiens').dropTable('titresDemarches')
 }
diff --git a/packages/api/src/knex/migrations-schema/20180522000003_titres_etapes_substances_emprises.ts b/packages/api/src/knex/migrations-schema/20180522000003_titres_etapes_substances_emprises.ts
index ebe932365..410737896 100644
--- a/packages/api/src/knex/migrations-schema/20180522000003_titres_etapes_substances_emprises.ts
+++ b/packages/api/src/knex/migrations-schema/20180522000003_titres_etapes_substances_emprises.ts
@@ -2,16 +2,8 @@ import { Knex } from 'knex'
 export const up = (knex: Knex) => {
   return knex.schema.createTable('titresSubstances', table => {
     table.string('titreEtapeId', 128).notNullable().index()
-    table
-      .foreign('titreEtapeId')
-      .references('titresEtapes.id')
-      .onUpdate('CASCADE')
-      .onDelete('CASCADE')
-    table
-      .string('substanceId', 4)
-      .index()
-      .references('substances.id')
-      .notNullable()
+    table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
+    table.string('substanceId', 4).index().references('substances.id').notNullable()
     table.integer('ordre')
     table.primary(['titreEtapeId', 'substanceId'])
   })
diff --git a/packages/api/src/knex/migrations-schema/20180522000004_titres_etapes_utilisateurs_titulaires_amodiataires_administrations.ts b/packages/api/src/knex/migrations-schema/20180522000004_titres_etapes_utilisateurs_titulaires_amodiataires_administrations.ts
index aacd02765..0652883a5 100644
--- a/packages/api/src/knex/migrations-schema/20180522000004_titres_etapes_utilisateurs_titulaires_amodiataires_administrations.ts
+++ b/packages/api/src/knex/migrations-schema/20180522000004_titres_etapes_utilisateurs_titulaires_amodiataires_administrations.ts
@@ -3,70 +3,29 @@ export const up = (knex: Knex) => {
   return knex.schema
     .createTable('titresTitulaires', table => {
       table.string('titreEtapeId', 128).notNullable().index()
-      table
-        .foreign('titreEtapeId')
-        .references('titresEtapes.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
-      table
-        .string('entrepriseId', 64)
-        .index()
-        .references('entreprises.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
-        .notNullable()
+      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
+      table.string('entrepriseId', 64).index().references('entreprises.id').onUpdate('CASCADE').onDelete('CASCADE').notNullable()
       table.boolean('operateur')
       table.primary(['titreEtapeId', 'entrepriseId'])
     })
     .createTable('titresAmodiataires', table => {
-      table
-        .string('titreEtapeId', 128)
-        .index()
-        .references('titresEtapes.id')
-        .notNullable()
-        .onDelete('CASCADE')
-      table
-        .string('entrepriseId', 64)
-        .index()
-        .references('entreprises.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
-        .notNullable()
+      table.string('titreEtapeId', 128).index().references('titresEtapes.id').notNullable().onDelete('CASCADE')
+      table.string('entrepriseId', 64).index().references('entreprises.id').onUpdate('CASCADE').onDelete('CASCADE').notNullable()
       table.boolean('operateur')
       table.primary(['titreEtapeId', 'entrepriseId'])
     })
 
     .createTable('titresAdministrationsGestionnaires', table => {
       table.string('titreId', 128).notNullable().index()
-      table
-        .foreign('titreId')
-        .references('titres.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
-      table
-        .string('administrationId', 64)
-        .index()
-        .references('administrations.id')
-        .notNullable()
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
+      table.foreign('titreId').references('titres.id').onUpdate('CASCADE').onDelete('CASCADE')
+      table.string('administrationId', 64).index().references('administrations.id').notNullable().onUpdate('CASCADE').onDelete('CASCADE')
       table.boolean('associee')
       table.primary(['titreId', 'administrationId'])
     })
     .createTable('titresAdministrationsLocales', table => {
       table.string('titreEtapeId', 128).notNullable().index()
-      table
-        .foreign('titreEtapeId')
-        .references('titresEtapes.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
-      table
-        .string('administrationId', 64)
-        .index()
-        .references('administrations.id')
-        .notNullable()
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
+      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
+      table.string('administrationId', 64).index().references('administrations.id').notNullable().onUpdate('CASCADE').onDelete('CASCADE')
       table.boolean('associee')
       table.boolean('coordinateur')
       table.primary(['titreEtapeId', 'administrationId'])
@@ -74,9 +33,5 @@ export const up = (knex: Knex) => {
 }
 
 export const down = (knex: Knex) => {
-  return knex.schema
-    .dropTable('titresAdministrationsLocales')
-    .dropTable('titresAdministrationsGestionnaires')
-    .dropTable('titresAmodiataires')
-    .dropTable('titresTitulaires')
+  return knex.schema.dropTable('titresAdministrationsLocales').dropTable('titresAdministrationsGestionnaires').dropTable('titresAmodiataires').dropTable('titresTitulaires')
 }
diff --git a/packages/api/src/knex/migrations-schema/20180522000005_titres_etapes_points.ts b/packages/api/src/knex/migrations-schema/20180522000005_titres_etapes_points.ts
index 1de3fa148..4a390d96b 100644
--- a/packages/api/src/knex/migrations-schema/20180522000005_titres_etapes_points.ts
+++ b/packages/api/src/knex/migrations-schema/20180522000005_titres_etapes_points.ts
@@ -5,11 +5,7 @@ export const up = (knex: Knex) => {
       table.string('id').primary()
       table.string('slug').index()
       table.string('titreEtapeId', 128).notNullable().index()
-      table
-        .foreign('titreEtapeId')
-        .references('titresEtapes.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
+      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
       table.specificType('coordonnees', 'POINT').notNullable()
       table.integer('groupe').notNullable()
       table.integer('contour').notNullable()
@@ -23,12 +19,7 @@ export const up = (knex: Knex) => {
     .createTable('titresPointsReferences', table => {
       table.string('id').primary()
       table.string('slug').index()
-      table
-        .string('titrePointId')
-        .index()
-        .references('titresPoints.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
+      table.string('titrePointId').index().references('titresPoints.id').onUpdate('CASCADE').onDelete('CASCADE')
       table.string('geoSystemeId', 5).notNullable()
       table.specificType('coordonnees', 'POINT').notNullable()
       table.boolean('opposable')
@@ -36,7 +27,5 @@ export const up = (knex: Knex) => {
 }
 
 export const down = (knex: Knex) => {
-  return knex.schema
-    .dropTable('titresPointsReferences')
-    .dropTable('titresPoints')
+  return knex.schema.dropTable('titresPointsReferences').dropTable('titresPoints')
 }
diff --git a/packages/api/src/knex/migrations-schema/20180522000006_titres_etapes_territoires.ts b/packages/api/src/knex/migrations-schema/20180522000006_titres_etapes_territoires.ts
index d5e03f98c..fed407eee 100644
--- a/packages/api/src/knex/migrations-schema/20180522000006_titres_etapes_territoires.ts
+++ b/packages/api/src/knex/migrations-schema/20180522000006_titres_etapes_territoires.ts
@@ -3,30 +3,17 @@ export const up = (knex: Knex) =>
   knex.schema
     .createTable('titresCommunes', table => {
       table.string('titreEtapeId', 128).notNullable().index()
-      table
-        .foreign('titreEtapeId')
-        .references('titresEtapes.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
-      table
-        .string('communeId', 8)
-        .notNullable()
-        .index()
-        .references('communes.id')
+      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
+      table.string('communeId', 8).notNullable().index().references('communes.id')
       table.integer('surface')
       table.primary(['titreEtapeId', 'communeId'])
     })
     .createTable('titresForets', table => {
       table.string('titreEtapeId', 128).notNullable().index()
-      table
-        .foreign('titreEtapeId')
-        .references('titresEtapes.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
+      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
       table.string('foretId', 8).notNullable().index().references('forets.id')
       table.integer('surface')
       table.primary(['titreEtapeId', 'foretId'])
     })
 
-export const down = (knex: Knex) =>
-  knex.schema.dropTable('titresCommunes').dropTable('titresForets')
+export const down = (knex: Knex) => knex.schema.dropTable('titresCommunes').dropTable('titresForets')
diff --git a/packages/api/src/knex/migrations-schema/20180522000009_titres_references.ts b/packages/api/src/knex/migrations-schema/20180522000009_titres_references.ts
index 570dc65a6..c0fd25c1c 100644
--- a/packages/api/src/knex/migrations-schema/20180522000009_titres_references.ts
+++ b/packages/api/src/knex/migrations-schema/20180522000009_titres_references.ts
@@ -2,16 +2,8 @@ import { Knex } from 'knex'
 export const up = (knex: Knex) => {
   return knex.schema.createTable('titresReferences', table => {
     table.string('titreId', 128).notNullable().index()
-    table
-      .foreign('titreId')
-      .references('titres.id')
-      .onUpdate('CASCADE')
-      .onDelete('CASCADE')
-    table
-      .string('typeId', 3)
-      .index()
-      .references('referencesTypes.id')
-      .notNullable()
+    table.foreign('titreId').references('titres.id').onUpdate('CASCADE').onDelete('CASCADE')
+    table.string('typeId', 3).index().references('referencesTypes.id').notNullable()
     table.string('nom')
     table.primary(['titreId', 'typeId', 'nom'])
   })
diff --git a/packages/api/src/knex/migrations-schema/20181106000002_titres_activites.ts b/packages/api/src/knex/migrations-schema/20181106000002_titres_activites.ts
index 7abd0b170..fa5ddc96e 100644
--- a/packages/api/src/knex/migrations-schema/20181106000002_titres_activites.ts
+++ b/packages/api/src/knex/migrations-schema/20181106000002_titres_activites.ts
@@ -3,27 +3,14 @@ export const up = (knex: Knex) =>
   knex.schema.createTable('titresActivites', table => {
     table.string('id').primary()
     table.string('slug').index()
-    table
-      .string('titreId', 128)
-      .index()
-      .references('titres.id')
-      .onDelete('CASCADE')
-      .onUpdate('CASCADE')
+    table.string('titreId', 128).index().references('titres.id').onDelete('CASCADE').onUpdate('CASCADE')
     table.string('utilisateurId', 128).index().references('utilisateurs.id')
     table.string('date', 10)
     table.string('dateSaisie', 10)
     table.jsonb('contenu')
     table.specificType('sections', 'jsonb[]')
-    table
-      .string('typeId', 3)
-      .index()
-      .references('activitesTypes.id')
-      .notNullable()
-    table
-      .string('statutId', 3)
-      .index()
-      .references('activitesStatuts.id')
-      .notNullable()
+    table.string('typeId', 3).index().references('activitesTypes.id').notNullable()
+    table.string('statutId', 3).index().references('activitesStatuts.id').notNullable()
     table.integer('annee', 4)
     table.integer('periodeId', 2)
     table.boolean('suppression')
diff --git a/packages/api/src/knex/migrations-schema/20181106000004_titres_travaux.ts b/packages/api/src/knex/migrations-schema/20181106000004_titres_travaux.ts
index 1f567f0b7..fc842f107 100644
--- a/packages/api/src/knex/migrations-schema/20181106000004_titres_travaux.ts
+++ b/packages/api/src/knex/migrations-schema/20181106000004_titres_travaux.ts
@@ -4,35 +4,17 @@ export const up = (knex: Knex) =>
     .createTable('titresTravaux', table => {
       table.string('id', 128).primary()
       table.string('slug').index()
-      table
-        .string('titreId', 128)
-        .index()
-        .references('titres.id')
-        .onDelete('CASCADE')
-        .onUpdate('CASCADE')
-      table
-        .string('statutId', 3)
-        .index()
-        .references('demarchesStatuts.id')
-        .defaultTo('ind')
+      table.string('titreId', 128).index().references('titres.id').onDelete('CASCADE').onUpdate('CASCADE')
+      table.string('statutId', 3).index().references('demarchesStatuts.id').defaultTo('ind')
       table.string('typeId', 3).index().references('travauxTypes.id')
       table.integer('ordre')
     })
     .createTable('titresTravauxEtapes', table => {
       table.string('id').primary()
       table.string('slug').index()
-      table
-        .string('titreTravauxId', 128)
-        .index()
-        .references('titresTravaux.id')
-        .onDelete('CASCADE')
-        .onUpdate('CASCADE')
+      table.string('titreTravauxId', 128).index().references('titresTravaux.id').onDelete('CASCADE').onUpdate('CASCADE')
       table.string('statutId', 3).index().references('etapesStatuts.id')
-      table
-        .string('typeId', 3)
-        .index()
-        .references('travauxEtapesTypes.id')
-        .notNullable()
+      table.string('typeId', 3).index().references('travauxEtapesTypes.id').notNullable()
       table.string('date', 10)
       table.integer('duree')
       table.float('surface')
diff --git a/packages/api/src/knex/migrations-schema/20181106000006_documents.ts b/packages/api/src/knex/migrations-schema/20181106000006_documents.ts
index 1929824af..6fdc9a62e 100644
--- a/packages/api/src/knex/migrations-schema/20181106000006_documents.ts
+++ b/packages/api/src/knex/migrations-schema/20181106000006_documents.ts
@@ -3,37 +3,17 @@ export const up = (knex: Knex) =>
   knex.schema
     .createTable('documents', table => {
       table.string('id').primary()
-      table
-        .string('typeId', 3)
-        .index()
-        .references('documentsTypes.id')
-        .notNullable()
+      table.string('typeId', 3).index().references('documentsTypes.id').notNullable()
       table.string('date', 10).notNullable()
       table.string('entrepriseId', 64).index()
-      table
-        .foreign('entrepriseId')
-        .references('entreprises.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
+      table.foreign('entrepriseId').references('entreprises.id').onUpdate('CASCADE').onDelete('CASCADE')
       table.string('titreEtapeId', 128).index()
-      table
-        .foreign('titreEtapeId')
-        .references('titresEtapes.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
+      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
       table.string('description', 1024)
       table.string('titreActiviteId', 128).index()
-      table
-        .foreign('titreActiviteId')
-        .references('titresActivites.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
+      table.foreign('titreActiviteId').references('titresActivites.id').onUpdate('CASCADE').onDelete('CASCADE')
       table.string('titreTravauxEtapeId', 128).index()
-      table
-        .foreign('titreTravauxEtapeId')
-        .references('titresTravauxEtapes.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
+      table.foreign('titreTravauxEtapeId').references('titresTravauxEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
       table.boolean('fichier')
       table.string('fichierTypeId', 3)
       table.string('url', 1024)
@@ -45,20 +25,9 @@ export const up = (knex: Knex) =>
     })
     .createTable('titresEtapesJustificatifs', table => {
       table.string('titreEtapeId', 128).index()
-      table
-        .foreign('titreEtapeId')
-        .references('titresEtapes.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
-      table
-        .string('documentId')
-        .index()
-        .references('documents.id')
-        .notNullable()
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
+      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
+      table.string('documentId').index().references('documents.id').notNullable().onUpdate('CASCADE').onDelete('CASCADE')
       table.primary(['titreEtapeId', 'documentId'])
     })
 
-export const down = (knex: Knex) =>
-  knex.schema.dropTable('titresEtapesJustificatifs').dropTable('documents')
+export const down = (knex: Knex) => knex.schema.dropTable('titresEtapesJustificatifs').dropTable('documents')
diff --git a/packages/api/src/knex/migrations-schema/20210930103844_titres_administrations.ts b/packages/api/src/knex/migrations-schema/20210930103844_titres_administrations.ts
index 6df1c3240..95d439481 100644
--- a/packages/api/src/knex/migrations-schema/20210930103844_titres_administrations.ts
+++ b/packages/api/src/knex/migrations-schema/20210930103844_titres_administrations.ts
@@ -1,21 +1,11 @@
 import { Knex } from 'knex'
 export const up = async (knex: Knex) => {
-  await knex.schema.table('titresAdministrationsLocales', table =>
-    table.dropColumn('coordinateur')
-  )
+  await knex.schema.table('titresAdministrationsLocales', table => table.dropColumn('coordinateur'))
 
   return knex.schema.createTable('titresAdministrations', table => {
     table.string('titreId', 128).notNullable().index()
-    table
-      .foreign('titreId')
-      .references('titres.id')
-      .onUpdate('CASCADE')
-      .onDelete('CASCADE')
-    table
-      .string('administrationId', 128)
-      .index()
-      .references('administrations.id')
-      .notNullable()
+    table.foreign('titreId').references('titres.id').onUpdate('CASCADE').onDelete('CASCADE')
+    table.string('administrationId', 128).index().references('administrations.id').notNullable()
     table.primary(['titreId', 'administrationId'])
   })
 }
diff --git a/packages/api/src/knex/migrations-schema/20211019161848_administrations-activites-types-emails-create.ts b/packages/api/src/knex/migrations-schema/20211019161848_administrations-activites-types-emails-create.ts
index 358106896..a45d45fce 100644
--- a/packages/api/src/knex/migrations-schema/20211019161848_administrations-activites-types-emails-create.ts
+++ b/packages/api/src/knex/migrations-schema/20211019161848_administrations-activites-types-emails-create.ts
@@ -1,29 +1,15 @@
 import { Knex } from 'knex'
 export const up = async (knex: Knex) => {
-  await knex.schema.createTable(
-    'administrations__activitesTypes__emails',
-    table => {
-      table
-        .string('activiteTypeId', 3)
-        .index()
-        .references('activitesTypes.id')
-        .notNullable()
-        .onDelete('CASCADE')
-      table
-        .string('administrationId', 64)
-        .notNullable()
-        .index()
-        .references('administrations.id')
-        .onDelete('CASCADE')
-      table.string('email')
-      table.primary(['administrationId', 'activiteTypeId', 'email'])
-    }
-  )
+  await knex.schema.createTable('administrations__activitesTypes__emails', table => {
+    table.string('activiteTypeId', 3).index().references('activitesTypes.id').notNullable().onDelete('CASCADE')
+    table.string('administrationId', 64).notNullable().index().references('administrations.id').onDelete('CASCADE')
+    table.string('email')
+    table.primary(['administrationId', 'activiteTypeId', 'email'])
+  })
 
   return knex.schema.table('activitesTypes', table => {
     table.dropColumn('email')
   })
 }
 
-export const down = (knex: Knex) =>
-  knex.schema.dropTable('administrations__activitesTypes__emails')
+export const down = (knex: Knex) => knex.schema.dropTable('administrations__activitesTypes__emails')
diff --git a/packages/api/src/knex/migrations-schema/20211027103109_logs_column_titreId_add.ts b/packages/api/src/knex/migrations-schema/20211027103109_logs_column_titreId_add.ts
index 1358a4cde..06e7b7f9a 100644
--- a/packages/api/src/knex/migrations-schema/20211027103109_logs_column_titreId_add.ts
+++ b/packages/api/src/knex/migrations-schema/20211027103109_logs_column_titreId_add.ts
@@ -5,11 +5,7 @@ export const up = async (knex: Knex) => {
 
   return knex.schema.table('journaux', table => {
     table.string('titreId', 128).notNullable().index()
-    table
-      .foreign('titreId')
-      .references('titres.id')
-      .onUpdate('CASCADE')
-      .onDelete('CASCADE')
+    table.foreign('titreId').references('titres.id').onUpdate('CASCADE').onDelete('CASCADE')
   })
 }
 
diff --git a/packages/api/src/knex/migrations-schema/20211110153616_sdom-zones-create.ts b/packages/api/src/knex/migrations-schema/20211110153616_sdom-zones-create.ts
index 4a092ad8c..7a5bbbbf6 100644
--- a/packages/api/src/knex/migrations-schema/20211110153616_sdom-zones-create.ts
+++ b/packages/api/src/knex/migrations-schema/20211110153616_sdom-zones-create.ts
@@ -7,19 +7,10 @@ export const up = (knex: Knex) =>
     })
     .createTable('titres__sdomZones', table => {
       table.string('titreEtapeId', 128).notNullable().index()
-      table
-        .foreign('titreEtapeId')
-        .references('titresEtapes.id')
-        .onUpdate('CASCADE')
-        .onDelete('CASCADE')
-      table
-        .string('sdomZoneId', 30)
-        .notNullable()
-        .index()
-        .references('sdomZones.id')
+      table.foreign('titreEtapeId').references('titresEtapes.id').onUpdate('CASCADE').onDelete('CASCADE')
+      table.string('sdomZoneId', 30).notNullable().index().references('sdomZones.id')
       table.integer('surface')
       table.primary(['titreEtapeId', 'sdomZoneId'])
     })
 
-export const down = (knex: Knex) =>
-  knex.schema.dropTable('sdomZones').dropTable('titres__sdomZones')
+export const down = (knex: Knex) => knex.schema.dropTable('sdomZones').dropTable('titres__sdomZones')
diff --git a/packages/api/src/knex/migrations-schema/20211123162004_utilisateurs-titres_create.ts b/packages/api/src/knex/migrations-schema/20211123162004_utilisateurs-titres_create.ts
index 84f980a6f..b0697d653 100644
--- a/packages/api/src/knex/migrations-schema/20211123162004_utilisateurs-titres_create.ts
+++ b/packages/api/src/knex/migrations-schema/20211123162004_utilisateurs-titres_create.ts
@@ -1,14 +1,9 @@
 import { Knex } from 'knex'
 export const up = (knex: Knex) =>
   knex.schema.createTable('utilisateurs__titres', table => {
-    table
-      .string('utilisateurId')
-      .index()
-      .references('utilisateurs.id')
-      .onDelete('CASCADE')
+    table.string('utilisateurId').index().references('utilisateurs.id').onDelete('CASCADE')
     table.string('titreId').index().references('titres.id').onDelete('CASCADE')
     table.primary(['utilisateurId', 'titreId'])
   })
 
-export const down = (knex: Knex) =>
-  knex.schema.dropTable('utilisateurs__titres')
+export const down = (knex: Knex) => knex.schema.dropTable('utilisateurs__titres')
diff --git a/packages/api/src/knex/migrations-schema/20220609145846_fix-substances-ordre-required.ts b/packages/api/src/knex/migrations-schema/20220609145846_fix-substances-ordre-required.ts
index 97a9aff9c..5518fbc8e 100644
--- a/packages/api/src/knex/migrations-schema/20220609145846_fix-substances-ordre-required.ts
+++ b/packages/api/src/knex/migrations-schema/20220609145846_fix-substances-ordre-required.ts
@@ -1,12 +1,8 @@
 import { Knex } from 'knex'
 export const up = async (knex: Knex) => {
-  await knex.raw(
-    'CREATE UNIQUE INDEX titre_etape_id_ordre_unique on titres_substances(titre_etape_id, ordre) WHERE ordre IS NOT NULL'
-  )
+  await knex.raw('CREATE UNIQUE INDEX titre_etape_id_ordre_unique on titres_substances(titre_etape_id, ordre) WHERE ordre IS NOT NULL')
 
-  return knex.raw(
-    'CREATE UNIQUE INDEX titre_etape_id_unique on titres_substances(titre_etape_id) WHERE ordre IS NULL'
-  )
+  return knex.raw('CREATE UNIQUE INDEX titre_etape_id_unique on titres_substances(titre_etape_id) WHERE ordre IS NULL')
 }
 
 export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220616132604_utilisateurs-administrations-delete.ts b/packages/api/src/knex/migrations-schema/20220616132604_utilisateurs-administrations-delete.ts
index b1c8c0383..0398ba462 100644
--- a/packages/api/src/knex/migrations-schema/20220616132604_utilisateurs-administrations-delete.ts
+++ b/packages/api/src/knex/migrations-schema/20220616132604_utilisateurs-administrations-delete.ts
@@ -4,17 +4,10 @@ export const up = async (knex: Knex) => {
     table.string('administrationId').index().references('administrations.id')
   })
 
-  const utilisateursAdministrations = await knex(
-    'utilisateurs__administrations'
-  )
+  const utilisateursAdministrations = await knex('utilisateurs__administrations')
 
-  for (const {
-    utilisateurId,
-    administrationId
-  } of utilisateursAdministrations) {
-    await knex('utilisateurs')
-      .where('id', utilisateurId)
-      .update({ administrationId })
+  for (const { utilisateurId, administrationId } of utilisateursAdministrations) {
+    await knex('utilisateurs').where('id', utilisateurId).update({ administrationId })
   }
 
   return knex.schema.dropTable('utilisateurs__administrations')
diff --git a/packages/api/src/knex/migrations-schema/20220816143105_substances-delete.ts b/packages/api/src/knex/migrations-schema/20220816143105_substances-delete.ts
index 5670b41f0..3c3e4544d 100644
--- a/packages/api/src/knex/migrations-schema/20220816143105_substances-delete.ts
+++ b/packages/api/src/knex/migrations-schema/20220816143105_substances-delete.ts
@@ -7,39 +7,26 @@ export const up = async (knex: Knex) => {
 
   await knex.raw('DROP INDEX titre_etape_id_unique')
   await knex.raw('DROP INDEX titre_etape_id_ordre_unique')
-  await knex.raw(
-    'CREATE UNIQUE INDEX titre_etape_id_ordre_unique on titres_substances(titre_etape_id, ordre)'
-  )
+  await knex.raw('CREATE UNIQUE INDEX titre_etape_id_ordre_unique on titres_substances(titre_etape_id, ordre)')
 
   await knex.schema.dropTable('substances__substances_legales')
   await knex.schema.dropTable('substances_legales')
   await knex.schema.dropTable('substances')
 
-  await knex('titres_substances')
-    .where('substance_id', 'suco')
-    .update({ substance_id: 'scoc' })
+  await knex('titres_substances').where('substance_id', 'suco').update({ substance_id: 'scoc' })
 
-  await knex('titres_substances')
-    .where('substance_id', 'scor')
-    .update({ substance_id: 'scoc' })
+  await knex('titres_substances').where('substance_id', 'scor').update({ substance_id: 'scoc' })
 
-  await knex('titres_substances')
-    .where('substance_id', 'bitm')
-    .update({ substance_id: 'hydm' })
+  await knex('titres_substances').where('substance_id', 'bitm').update({ substance_id: 'hydm' })
 
-  await knex('titres_substances')
-    .where('substance_id', 'hydl')
-    .update({ substance_id: 'hydo' })
+  await knex('titres_substances').where('substance_id', 'hydl').update({ substance_id: 'hydo' })
 
   await knex.schema.alterTable('titres_etapes', function (table) {
     table.jsonb('substances').index()
   })
   const titresSubstances = await knex('titres_substances')
 
-  const substanceIdsByTitre: Record<
-    string,
-    { ordre: number; substanceId: string }[]
-  > = titresSubstances.reduce((acc, ts) => {
+  const substanceIdsByTitre: Record<string, { ordre: number; substanceId: string }[]> = titresSubstances.reduce((acc, ts) => {
     if (!acc[ts.titreEtapeId]) {
       acc[ts.titreEtapeId] = []
     }
@@ -52,11 +39,7 @@ export const up = async (knex: Knex) => {
     await knex('titres_etapes')
       .where('id', titreEtapeId)
       .update({
-        substances: JSON.stringify(
-          substanceIdsByTitre[titreEtapeId]
-            .sort((a, b) => a.ordre - b.ordre)
-            .map(({ substanceId }) => substanceId)
-        )
+        substances: JSON.stringify(substanceIdsByTitre[titreEtapeId].sort((a, b) => a.ordre - b.ordre).map(({ substanceId }) => substanceId)),
       })
   }
 
diff --git a/packages/api/src/knex/migrations-schema/20220825083849_territoires-create.ts b/packages/api/src/knex/migrations-schema/20220825083849_territoires-create.ts
index 313a989bd..96957b19e 100644
--- a/packages/api/src/knex/migrations-schema/20220825083849_territoires-create.ts
+++ b/packages/api/src/knex/migrations-schema/20220825083849_territoires-create.ts
@@ -1,24 +1,12 @@
 import { Knex } from 'knex'
 export const up = async (knex: Knex) => {
-  await knex.raw(
-    'alter table communes ADD COLUMN geometry geometry(Multipolygon,4326)'
-  )
-  await knex.raw(
-    'alter table forets ADD COLUMN geometry geometry(Multipolygon,4326)'
-  )
-  await knex.raw(
-    'alter table sdom_zones ADD COLUMN geometry geometry(Multipolygon,4326)'
-  )
+  await knex.raw('alter table communes ADD COLUMN geometry geometry(Multipolygon,4326)')
+  await knex.raw('alter table forets ADD COLUMN geometry geometry(Multipolygon,4326)')
+  await knex.raw('alter table sdom_zones ADD COLUMN geometry geometry(Multipolygon,4326)')
 
-  await knex.raw(
-    'CREATE INDEX index_geo_communes on communes using spgist (geometry)'
-  )
-  await knex.raw(
-    'CREATE INDEX index_geo_forets on forets using spgist (geometry)'
-  )
-  await knex.raw(
-    'CREATE INDEX index_geo_sdom_zones on sdom_zones using spgist (geometry)'
-  )
+  await knex.raw('CREATE INDEX index_geo_communes on communes using spgist (geometry)')
+  await knex.raw('CREATE INDEX index_geo_forets on forets using spgist (geometry)')
+  await knex.raw('CREATE INDEX index_geo_sdom_zones on sdom_zones using spgist (geometry)')
 
   await knex.schema.alterTable('titres_forets', table => {
     table.dropColumn('surface')
diff --git a/packages/api/src/knex/migrations-schema/20220905073826_deplace-donnees-postgis-hors-objection.ts b/packages/api/src/knex/migrations-schema/20220905073826_deplace-donnees-postgis-hors-objection.ts
index bab26cdfa..c1b5b945b 100644
--- a/packages/api/src/knex/migrations-schema/20220905073826_deplace-donnees-postgis-hors-objection.ts
+++ b/packages/api/src/knex/migrations-schema/20220905073826_deplace-donnees-postgis-hors-objection.ts
@@ -24,14 +24,8 @@ export const up = async (knex: Knex) => {
             )`
   )
 
-  await knex.raw(
-    'CREATE INDEX index_geo_communes on communes_postgis using spgist (geometry)'
-  )
-  await knex.raw(
-    'CREATE INDEX index_geo_forets on forets_postgis using spgist (geometry)'
-  )
-  await knex.raw(
-    'CREATE INDEX index_geo_sdom_zones on sdom_zones_postgis using spgist (geometry)'
-  )
+  await knex.raw('CREATE INDEX index_geo_communes on communes_postgis using spgist (geometry)')
+  await knex.raw('CREATE INDEX index_geo_forets on forets_postgis using spgist (geometry)')
+  await knex.raw('CREATE INDEX index_geo_sdom_zones on sdom_zones_postgis using spgist (geometry)')
 }
 export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220906125338_les-substances-dune-etapes-ne-sont-jamais-nul.ts b/packages/api/src/knex/migrations-schema/20220906125338_les-substances-dune-etapes-ne-sont-jamais-nul.ts
index 005627f2a..0a7597c1b 100644
--- a/packages/api/src/knex/migrations-schema/20220906125338_les-substances-dune-etapes-ne-sont-jamais-nul.ts
+++ b/packages/api/src/knex/migrations-schema/20220906125338_les-substances-dune-etapes-ne-sont-jamais-nul.ts
@@ -1,14 +1,8 @@
 import { Knex } from 'knex'
 export const up = async (knex: Knex) => {
-  await knex.raw(
-    "update titres_etapes set substances='[]'::jsonb where substances is null"
-  )
-  await knex.raw(
-    "alter table titres_etapes alter column substances set default '[]'::jsonb"
-  )
-  await knex.raw(
-    'alter table titres_etapes alter column substances set not null'
-  )
+  await knex.raw("update titres_etapes set substances='[]'::jsonb where substances is null")
+  await knex.raw("alter table titres_etapes alter column substances set default '[]'::jsonb")
+  await knex.raw('alter table titres_etapes alter column substances set not null')
 }
 
 export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20220907070928_supprime-titres-statuts.ts b/packages/api/src/knex/migrations-schema/20220907070928_supprime-titres-statuts.ts
index 7b30f3430..34952085f 100644
--- a/packages/api/src/knex/migrations-schema/20220907070928_supprime-titres-statuts.ts
+++ b/packages/api/src/knex/migrations-schema/20220907070928_supprime-titres-statuts.ts
@@ -1,23 +1,11 @@
 import { Knex } from 'knex'
 export const up = async (knex: Knex) => {
-  await knex.schema.alterTable(
-    'administrations__titres_types__titres_statuts',
-    function (table) {
-      table.dropForeign(
-        'titre_statut_id',
-        'administrations__titrestypes__titresstatuts_titrestatutid_forei'
-      )
-    }
-  )
-  await knex.schema.alterTable(
-    'titres_types__titres_statuts',
-    function (table) {
-      table.dropForeign(
-        'titre_statut_id',
-        'titrestypes__titresstatuts_titrestatutid_foreign'
-      )
-    }
-  )
+  await knex.schema.alterTable('administrations__titres_types__titres_statuts', function (table) {
+    table.dropForeign('titre_statut_id', 'administrations__titrestypes__titresstatuts_titrestatutid_forei')
+  })
+  await knex.schema.alterTable('titres_types__titres_statuts', function (table) {
+    table.dropForeign('titre_statut_id', 'titrestypes__titresstatuts_titrestatutid_foreign')
+  })
   await knex.schema.alterTable('titres', function (table) {
     table.dropForeign('statut_id', 'titres_statutid_foreign')
     table.renameColumn('statut_id', 'titre_statut_id')
diff --git a/packages/api/src/knex/migrations-schema/20221004061444_references-delete.ts b/packages/api/src/knex/migrations-schema/20221004061444_references-delete.ts
index adfd89a55..99fee9cc5 100644
--- a/packages/api/src/knex/migrations-schema/20221004061444_references-delete.ts
+++ b/packages/api/src/knex/migrations-schema/20221004061444_references-delete.ts
@@ -11,10 +11,7 @@ export const up = async (knex: Knex) => {
   await knex.schema.alterTable('titres', function (table) {
     table.jsonb('references').index()
   })
-  const titresReferences = await knex('titres_references').orderBy(
-    'referenceTypeId',
-    'nom'
-  )
+  const titresReferences = await knex('titres_references').orderBy('referenceTypeId', 'nom')
 
   const referencesByTitre = titresReferences.reduce((acc, titreReference) => {
     if (!acc[titreReference.titreId]) {
@@ -22,7 +19,7 @@ export const up = async (knex: Knex) => {
     }
     acc[titreReference.titreId].push({
       nom: titreReference.nom,
-      referenceTypeId: titreReference.referenceTypeId
+      referenceTypeId: titreReference.referenceTypeId,
     })
 
     return acc
@@ -32,18 +29,14 @@ export const up = async (knex: Knex) => {
     await knex('titres')
       .where('id', titreId)
       .update({
-        references: JSON.stringify(referencesByTitre[titreId])
+        references: JSON.stringify(referencesByTitre[titreId]),
       })
   }
 
   await knex.schema.dropTable('titresReferences')
   await knex.schema.dropTable('referencesTypes')
-  await knex.raw(
-    'update titres set "references"=\'[]\'::jsonb where "references" is null'
-  )
-  await knex.raw(
-    'alter table titres alter column "references" set default \'[]\'::jsonb'
-  )
+  await knex.raw('update titres set "references"=\'[]\'::jsonb where "references" is null')
+  await knex.raw('alter table titres alter column "references" set default \'[]\'::jsonb')
   await knex.raw('alter table titres alter column "references" set not null')
 }
 
diff --git a/packages/api/src/knex/migrations-schema/20221012121906_add-facades-maritimes.ts b/packages/api/src/knex/migrations-schema/20221012121906_add-facades-maritimes.ts
index 562efdb27..523b1dcb8 100644
--- a/packages/api/src/knex/migrations-schema/20221012121906_add-facades-maritimes.ts
+++ b/packages/api/src/knex/migrations-schema/20221012121906_add-facades-maritimes.ts
@@ -15,22 +15,12 @@ export const up = async (knex: Knex) => {
       )`
   )
 
-  await knex.raw(
-    'CREATE INDEX index_geo_secteurs_maritime on secteurs_maritime_postgis using spgist (geometry)'
-  )
+  await knex.raw('CREATE INDEX index_geo_secteurs_maritime on secteurs_maritime_postgis using spgist (geometry)')
 
   await knex.schema.createTable('titres__secteurs_maritime', table => {
     table.string('titre_etape_id', 128).notNullable().index()
-    table
-      .foreign('titre_etape_id')
-      .references('titres_etapes.id')
-      .onUpdate('CASCADE')
-      .onDelete('CASCADE')
-    table
-      .integer('secteur_maritime_id')
-      .notNullable()
-      .index()
-      .references('secteurs_maritime.id')
+    table.foreign('titre_etape_id').references('titres_etapes.id').onUpdate('CASCADE').onDelete('CASCADE')
+    table.integer('secteur_maritime_id').notNullable().index().references('secteurs_maritime.id')
     table.primary(['titre_etape_id', 'secteur_maritime_id'])
   })
 }
diff --git a/packages/api/src/knex/migrations-schema/20221017122409_tde-static.ts b/packages/api/src/knex/migrations-schema/20221017122409_tde-static.ts
index 8148e45d0..9293b1e98 100644
--- a/packages/api/src/knex/migrations-schema/20221017122409_tde-static.ts
+++ b/packages/api/src/knex/migrations-schema/20221017122409_tde-static.ts
@@ -1,17 +1,13 @@
 import { Knex } from 'knex'
 export const up = async (knex: Knex) => {
-  await knex('activites_types__documents_types')
-    .where('document_type_id', 'rwp')
-    .update({ documentTypeId: 'rgr' })
+  await knex('activites_types__documents_types').where('document_type_id', 'rwp').update({ documentTypeId: 'rgr' })
 
   await knex('documents').where('type_id', 'rwp').update({ typeId: 'rgr' })
 
   await knex('documents_types').where('id', 'rwp').delete()
 
   await knex.schema.dropTable('etapes_types__documents_types')
-  await knex.schema.dropTable(
-    'titresTypes__demarchesTypes__etapesTypes__documentsTypes'
-  )
+  await knex.schema.dropTable('titresTypes__demarchesTypes__etapesTypes__documentsTypes')
 }
 
 export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20221017132033_administrations-titres-types-delete.ts b/packages/api/src/knex/migrations-schema/20221017132033_administrations-titres-types-delete.ts
index 595d8a801..26bf12bed 100644
--- a/packages/api/src/knex/migrations-schema/20221017132033_administrations-titres-types-delete.ts
+++ b/packages/api/src/knex/migrations-schema/20221017132033_administrations-titres-types-delete.ts
@@ -1,5 +1,4 @@
 import { Knex } from 'knex'
-export const up = async (knex: Knex) =>
-  knex.schema.dropTable('administrations__titresTypes')
+export const up = async (knex: Knex) => knex.schema.dropTable('administrations__titresTypes')
 
 export const down = () => ({})
diff --git a/packages/api/src/knex/migrations-schema/20221021121056_delete-titres-administrations.ts b/packages/api/src/knex/migrations-schema/20221021121056_delete-titres-administrations.ts
index 848e4cc68..c9dfa4767 100644
--- a/packages/api/src/knex/migrations-schema/20221021121056_delete-titres-administrations.ts
+++ b/packages/api/src/knex/migrations-schema/20221021121056_delete-titres-administrations.ts
@@ -4,9 +4,7 @@ export const up = async (knex: Knex) => {
     table.jsonb('administrations_locales').index()
   })
 
-  await knex.raw(
-    "update titres set props_titre_etapes_ids = props_titre_etapes_ids  - 'administrations'"
-  )
+  await knex.raw("update titres set props_titre_etapes_ids = props_titre_etapes_ids  - 'administrations'")
   await knex.raw(`update titres_etapes te set administrations_locales = (
     select administrations from (
       select 
diff --git a/packages/api/src/knex/migrations-schema/20230201154720_mot-de-passe-remove-constraint.ts b/packages/api/src/knex/migrations-schema/20230201154720_mot-de-passe-remove-constraint.ts
index 3cc00403b..962c6f435 100644
--- a/packages/api/src/knex/migrations-schema/20230201154720_mot-de-passe-remove-constraint.ts
+++ b/packages/api/src/knex/migrations-schema/20230201154720_mot-de-passe-remove-constraint.ts
@@ -1,9 +1,7 @@
 import { Knex } from 'knex'
 
 export const up = async (knex: Knex) => {
-  await knex.raw(
-    'alter table utilisateurs alter column "mot_de_passe" drop not null'
-  )
+  await knex.raw('alter table utilisateurs alter column "mot_de_passe" drop not null')
 }
 
 export const down = () => ({})
diff --git a/packages/api/src/knex/seeding.ts b/packages/api/src/knex/seeding.ts
index 37e33eba7..6cf506733 100644
--- a/packages/api/src/knex/seeding.ts
+++ b/packages/api/src/knex/seeding.ts
@@ -2,38 +2,30 @@ import { Knex } from 'knex'
 
 const INSERT_SIZE = 3000
 
-export default (
-    func: (params: {
-      del: (table: Knex.TableDescriptor) => any
-      insert: (table: Knex.TableDescriptor, data: any[]) => any
-    }) => void
-  ) =>
-  (knex: Knex) => {
-    const del = (table: Knex.TableDescriptor) => {
-      console.info(`suppression des données de la table "${table}"`)
-
-      return knex(table).del()
-    }
-
-    const insert = (table: Knex.TableDescriptor, data: any[]) => {
-      console.info(
-        `insertion des données de la table "${table}", (${data.length} élément(s))`
-      )
+export default (func: (params: { del: (table: Knex.TableDescriptor) => any; insert: (table: Knex.TableDescriptor, data: any[]) => any }) => void) => (knex: Knex) => {
+  const del = (table: Knex.TableDescriptor) => {
+    console.info(`suppression des données de la table "${table}"`)
 
-      const arrs = []
-      for (let i = 0; i < data.length; i += INSERT_SIZE) {
-        arrs.push(data.slice(i, i + INSERT_SIZE))
-      }
+    return knex(table).del()
+  }
 
-      return Promise.all(arrs.map(arr => knex(table).insert(arr))).catch(e => {
-        // si le message d'erreur est trop long
-        // réduit la taille du message à 100 caractères
-        const problem = e.message.split(' - ').pop()
-        const message = `Table "${table}" - ${problem} - ${e.detail}`
+  const insert = (table: Knex.TableDescriptor, data: any[]) => {
+    console.info(`insertion des données de la table "${table}", (${data.length} élément(s))`)
 
-        throw new Error(message)
-      })
+    const arrs = []
+    for (let i = 0; i < data.length; i += INSERT_SIZE) {
+      arrs.push(data.slice(i, i + INSERT_SIZE))
     }
 
-    return func({ del, insert })
+    return Promise.all(arrs.map(arr => knex(table).insert(arr))).catch(e => {
+      // si le message d'erreur est trop long
+      // réduit la taille du message à 100 caractères
+      const problem = e.message.split(' - ').pop()
+      const message = `Table "${table}" - ${problem} - ${e.detail}`
+
+      throw new Error(message)
+    })
   }
+
+  return func({ del, insert })
+}
diff --git a/packages/api/src/knex/seeds/03-metas.ts b/packages/api/src/knex/seeds/03-metas.ts
index 4c49badad..2898c89cb 100644
--- a/packages/api/src/knex/seeds/03-metas.ts
+++ b/packages/api/src/knex/seeds/03-metas.ts
@@ -19,15 +19,12 @@ export const seed = seeding(async ({ insert }) => {
     insert('titresTypesTypes', titresTypesTypes),
     insert('demarchesTypes', demarchesTypes),
     insert('etapesTypes', etapesTypes),
-    insert('documentsTypes', documentsTypes)
+    insert('documentsTypes', documentsTypes),
   ])
   await Promise.all([insert('titresTypes', titresTypes)])
   await Promise.all([
-    insert(
-      'titresTypes__demarchesTypes__etapesTypes',
-      titresTypes_demarchesTypes_etapesTypes
-    ),
+    insert('titresTypes__demarchesTypes__etapesTypes', titresTypes_demarchesTypes_etapesTypes),
     insert('entreprises__documents_types', entreprises_documentsTypes),
-    insert('etapesTypes__justificatifsTypes', etapesTypes_justificatifsTypes)
+    insert('etapesTypes__justificatifsTypes', etapesTypes_justificatifsTypes),
   ])
 })
diff --git a/packages/api/src/knex/seeds/08-autorisations.ts b/packages/api/src/knex/seeds/08-autorisations.ts
index ff6047ed5..cae614e0b 100644
--- a/packages/api/src/knex/seeds/08-autorisations.ts
+++ b/packages/api/src/knex/seeds/08-autorisations.ts
@@ -13,6 +13,6 @@ export const seed = seeding(async ({ insert }) => {
   await Promise.all([
     insert('administrations__titresTypes__titresStatuts', toDbATT()),
     insert('administrations__titresTypes__etapesTypes', toDbATE()),
-    insert('administrations__activitesTypes', administrations_activitesTypes)
+    insert('administrations__activitesTypes', administrations_activitesTypes),
   ])
 })
diff --git a/packages/api/src/knex/user-add.ts b/packages/api/src/knex/user-add.ts
index 3de4700a4..f29b8ae85 100644
--- a/packages/api/src/knex/user-add.ts
+++ b/packages/api/src/knex/user-add.ts
@@ -3,10 +3,7 @@ import emailRegex from 'email-regex'
 import { IUtilisateur } from '../types.js'
 
 // TODO 2022-06-23 fixme
-export const userAdd = async (
-  knex: Knex,
-  user: Omit<IUtilisateur, 'administrationId'>
-): Promise<void> => {
+export const userAdd = async (knex: Knex, user: Omit<IUtilisateur, 'administrationId'>): Promise<void> => {
   const errors = []
 
   if (!user.email) {
diff --git a/packages/api/src/scripts/administrations-update.ts b/packages/api/src/scripts/administrations-update.ts
index b370923f2..8a842ef70 100644
--- a/packages/api/src/scripts/administrations-update.ts
+++ b/packages/api/src/scripts/administrations-update.ts
@@ -12,12 +12,10 @@ const administrationsUpdate = async () => {
   // // mise à jour de l'administrations grâce à l'API Administration
   const departementsIds = Object.values(Administrations)
     .map(a => a.departementId)
-    .filter(
-      (a: DepartementId | undefined): a is DepartementId => a !== undefined
-    )
+    .filter((a: DepartementId | undefined): a is DepartementId => a !== undefined)
     .map(departementId => ({
       departementId,
-      nom: departementId === '75' ? 'paris_ppp' : 'prefecture'
+      nom: departementId === '75' ? 'paris_ppp' : 'prefecture',
     }))
 
   const newAdministrations = await organismesDepartementsGet(departementsIds)
@@ -33,7 +31,7 @@ const administrationsUpdate = async () => {
   })
 
   const data = readFileSync('packages/common/src/administrations.ts', {
-    encoding: 'utf-8'
+    encoding: 'utf-8',
   })
 
   const startComment = '// ----- ne pas supprimer cette ligne : début'
@@ -44,10 +42,7 @@ const administrationsUpdate = async () => {
 
   const code = JSON.stringify(administrations, null, 3)
 
-  writeFileSync(
-    'packages/common/src/administrations.ts',
-    preCode + code + postCode
-  )
+  writeFileSync('packages/common/src/administrations.ts', preCode + code + postCode)
 }
 
 administrationsUpdate()
diff --git a/packages/api/src/scripts/daily.ts b/packages/api/src/scripts/daily.ts
index f247c8c74..6000da8b4 100644
--- a/packages/api/src/scripts/daily.ts
+++ b/packages/api/src/scripts/daily.ts
@@ -40,12 +40,10 @@ const tasks = async () => {
   }
 
   if (process.env.CAMINO_STAGE) {
-    const emailBody = `Résultats de ${process.env.ENV} \n${readFileSync(
-      logFile
-    ).toString()}`
+    const emailBody = `Résultats de ${process.env.ENV} \n${readFileSync(logFile).toString()}`
     await mailjetSend([process.env.ADMIN_EMAIL!], {
       Subject: `[Camino][${process.env.ENV}] Résultats du daily`,
-      'Text-part': emailBody
+      'Text-part': emailBody,
     })
   }
   console.info('Tâches quotidiennes : terminé')
diff --git a/packages/api/src/scripts/entreprises-guyane.ts b/packages/api/src/scripts/entreprises-guyane.ts
index 54fc806c5..6eb211d78 100644
--- a/packages/api/src/scripts/entreprises-guyane.ts
+++ b/packages/api/src/scripts/entreprises-guyane.ts
@@ -4,16 +4,7 @@ import { subscribeUsersToGuyaneExploitants } from '../business/entreprises-guyan
 // Retourne tous les utilisateurs 'entreprise' et 'bureau d'études' associés à des entreprises de Guyane
 subscribeUsersToGuyaneExploitants()
   .then(users => {
-    console.info(
-      users
-        .map(
-          user =>
-            `${user.email},${user.nomUtilisateur},${user.prenom},${
-              user.role
-            },${user.entreprises.join(';')}`
-        )
-        .join('\n')
-    )
+    console.info(users.map(user => `${user.email},${user.nomUtilisateur},${user.prenom},${user.role},${user.entreprises.join(';')}`).join('\n'))
     process.exit(0)
   })
   .catch(e => {
diff --git a/packages/api/src/scripts/monthly.ts b/packages/api/src/scripts/monthly.ts
index 6609fb6ee..c17e98bad 100644
--- a/packages/api/src/scripts/monthly.ts
+++ b/packages/api/src/scripts/monthly.ts
@@ -26,12 +26,10 @@ const tasks = async () => {
   }
 
   if (process.env.CAMINO_STAGE) {
-    const emailBody = `Résultats de ${process.env.ENV} \n${readFileSync(
-      logFile
-    ).toString()}`
+    const emailBody = `Résultats de ${process.env.ENV} \n${readFileSync(logFile).toString()}`
     await mailjetSend([process.env.ADMIN_EMAIL!], {
       Subject: `[Camino][${process.env.ENV}] Résultats du monthly`,
-      'Text-part': emailBody
+      'Text-part': emailBody,
     })
   }
   console.info('Tâches mensuelles : terminé')
diff --git a/packages/api/src/server/auth-basic.ts b/packages/api/src/server/auth-basic.ts
index 0e93ba2ae..b5047959a 100644
--- a/packages/api/src/server/auth-basic.ts
+++ b/packages/api/src/server/auth-basic.ts
@@ -27,32 +27,20 @@ const userQGISCredentialsCheck = async (email: string, qgisToken: string) => {
   return valid ? user : null
 }
 
-export const authBasic = async (
-  req: express.Request,
-  res: express.Response,
-  next: express.NextFunction
-) => {
+export const authBasic = async (req: express.Request, res: express.Response, next: express.NextFunction) => {
   try {
     // basic auth est activé que pour la route titres_qgis
     if (req.url.includes('titres_qgis')) {
-      const credentials = req.headers.authorization
-        ? basicAuth.parse(req.headers.authorization)
-        : null
+      const credentials = req.headers.authorization ? basicAuth.parse(req.headers.authorization) : null
       if (!credentials) {
-        res.setHeader(
-          'WWW-Authenticate',
-          'Basic realm="Authentication Required"'
-        )
+        res.setHeader('WWW-Authenticate', 'Basic realm="Authentication Required"')
         res.status(401)
         res.send('Authentication Required')
 
         return
       }
 
-      const user = await userQGISCredentialsCheck(
-        credentials.name,
-        credentials.pass
-      )
+      const user = await userQGISCredentialsCheck(credentials.name, credentials.pass)
 
       if (!user) {
         res.status(401)
diff --git a/packages/api/src/server/auth-jwt.ts b/packages/api/src/server/auth-jwt.ts
index 8d611d12e..fe85ea627 100644
--- a/packages/api/src/server/auth-jwt.ts
+++ b/packages/api/src/server/auth-jwt.ts
@@ -7,5 +7,5 @@ export const authJwt = expressJwt({
     return req.headers?.['x-forwarded-access-token'] || null
   },
   secret: process.env.JWT_SECRET || 'jwtSecret should be declared in .env',
-  algorithms: [process.env.JWT_SECRET_ALGORITHM || 'HS256']
+  algorithms: [process.env.JWT_SECRET_ALGORITHM || 'HS256'],
 })
diff --git a/packages/api/src/server/connected-catcher.ts b/packages/api/src/server/connected-catcher.ts
index 34b0fb218..9210610a4 100644
--- a/packages/api/src/server/connected-catcher.ts
+++ b/packages/api/src/server/connected-catcher.ts
@@ -3,15 +3,8 @@ import { User } from 'camino-common/src/roles.js'
 import { constants } from 'http2'
 import { CaminoRestRoutes } from 'camino-common/src/rest.js'
 
-export const connectedCatcher = async (
-  req: express.Request,
-  res: express.Response,
-  next: express.NextFunction
-) => {
-  if (
-    !req.url.includes(CaminoRestRoutes.moi) &&
-    !req.url.includes(CaminoRestRoutes.config)
-  ) {
+export const connectedCatcher = async (req: express.Request, res: express.Response, next: express.NextFunction) => {
+  if (!req.url.includes(CaminoRestRoutes.moi) && !req.url.includes(CaminoRestRoutes.config)) {
     if (req.cookies.shouldBeConnected) {
       const reqUser = req.user as User
       if (!reqUser) {
diff --git a/packages/api/src/server/graphql.ts b/packages/api/src/server/graphql.ts
index 3d84494a3..84b6ca1b8 100644
--- a/packages/api/src/server/graphql.ts
+++ b/packages/api/src/server/graphql.ts
@@ -17,11 +17,11 @@ export const graphql = graphqlHTTP(async (req: IAuthRequestHttp, res) => {
       locations: err.locations,
       message: err.message,
       path: err.path,
-      stack: err.stack ? err.stack.split('\n') : []
+      stack: err.stack ? err.stack.split('\n') : [],
     }),
     graphiql: true,
     pretty: true,
     rootValue,
-    schema
+    schema,
   }
 })
diff --git a/packages/api/src/server/rest.ts b/packages/api/src/server/rest.ts
index c3e419592..28475552c 100644
--- a/packages/api/src/server/rest.ts
+++ b/packages/api/src/server/rest.ts
@@ -3,40 +3,13 @@ import { IFormat, Index } from '../types.js'
 import express from 'express'
 import { join } from 'path'
 
-import {
-  activites,
-  demarches,
-  entreprises,
-  titre,
-  titres
-} from '../api/rest/index.js'
-import {
-  etapeFichier,
-  etapeTelecharger,
-  fichier
-} from '../api/rest/fichiers.js'
-import {
-  getTitreLiaisons,
-  postTitreLiaisons,
-  titresDREAL,
-  titresONF,
-  titresPTMG
-} from '../api/rest/titres.js'
+import { activites, demarches, entreprises, titre, titres } from '../api/rest/index.js'
+import { etapeFichier, etapeTelecharger, fichier } from '../api/rest/fichiers.js'
+import { getTitreLiaisons, postTitreLiaisons, titresDREAL, titresONF, titresPTMG } from '../api/rest/titres.js'
 import { fiscalite } from '../api/rest/entreprises.js'
-import {
-  generateQgisToken,
-  isSubscribedToNewsletter,
-  manageNewsletterSubscription,
-  moi,
-  utilisateurs
-} from '../api/rest/utilisateurs.js'
+import { generateQgisToken, isSubscribedToNewsletter, manageNewsletterSubscription, moi, utilisateurs } from '../api/rest/utilisateurs.js'
 import { logout, resetPassword } from '../api/rest/keycloak.js'
-import {
-  getDGTMStats,
-  getGranulatsMarinsStats,
-  getGuyaneStats,
-  getMinerauxMetauxMetropolesStats
-} from '../api/rest/statistiques/index.js'
+import { getDGTMStats, getGranulatsMarinsStats, getGuyaneStats, getMinerauxMetauxMetropolesStats } from '../api/rest/statistiques/index.js'
 import { CaminoRestRoutes } from 'camino-common/src/rest.js'
 import { CaminoConfig } from 'camino-common/src/static/config.js'
 import { CustomResponse } from '../api/rest/express-type.js'
@@ -47,7 +20,7 @@ const contentTypes = {
   geojson: 'application/geojson',
   xlsx: 'application/xlsx',
   pdf: 'application/pdf',
-  json: 'application/json'
+  json: 'application/json',
 } as { [id in IFormat]: string }
 
 interface IRestResolverResult {
@@ -61,7 +34,7 @@ interface IRestResolverResult {
 type IRestResolver = (
   {
     params,
-    query
+    query,
   }: {
     params: Index<unknown>
     query: Index<unknown>
@@ -71,94 +44,69 @@ type IRestResolver = (
 
 export const rest = express.Router()
 
-type ExpressRoute = (
-  req: express.Request,
-  res: express.Response,
-  next: express.NextFunction
-) => Promise<void>
-
-const restCatcher =
-  (expressCall: ExpressRoute) =>
-  async (
-    req: express.Request,
-    res: express.Response,
-    next: express.NextFunction
-  ) => {
-    try {
-      await expressCall(req, res, next)
-    } catch (e) {
-      console.error('catching error', e)
-      next(e)
-    }
+type ExpressRoute = (req: express.Request, res: express.Response, next: express.NextFunction) => Promise<void>
+
+const restCatcher = (expressCall: ExpressRoute) => async (req: express.Request, res: express.Response, next: express.NextFunction) => {
+  try {
+    await expressCall(req, res, next)
+  } catch (e) {
+    console.error('catching error', e)
+    next(e)
   }
+}
 
-const restDownload =
-  (resolver: IRestResolver) =>
-  async (
-    req: express.Request,
-    res: express.Response,
-    next: express.NextFunction
-  ) => {
-    try {
-      // TODO 2022-10-12 mieux typer
-      const user = req.user as User
-
-      const result = await resolver(
-        { query: req.query, params: req.params },
-        user
-      )
-
-      if (!result) {
-        throw new Error('erreur: aucun résultat')
-      }
+const restDownload = (resolver: IRestResolver) => async (req: express.Request, res: express.Response, next: express.NextFunction) => {
+  try {
+    // TODO 2022-10-12 mieux typer
+    const user = req.user as User
+
+    const result = await resolver({ query: req.query, params: req.params }, user)
+
+    if (!result) {
+      throw new Error('erreur: aucun résultat')
+    }
+
+    const { nom, format, contenu, filePath, buffer } = result
 
-      const { nom, format, contenu, filePath, buffer } = result
-
-      res.header(
-        'Content-disposition',
-        `inline; filename=${encodeURIComponent(nom)}`
-      )
-      res.header('Content-Type', contentTypes[format])
-
-      if (filePath || buffer) {
-        res.header('x-sent', 'true')
-        res.header('x-timestamp', Date.now().toString())
-        const options = {
-          dotfiles: 'deny',
-          root: join(process.cwd(), 'files')
-        }
-
-        if (filePath) {
-          res.sendFile(filePath, options, err => {
-            if (err) console.error(`erreur de téléchargement ${err}`)
-            res.status(404).end()
-          })
-        }
-        if (buffer) {
-          res.header('Content-Length', `${buffer.length}`)
-          res.send(buffer)
-        }
-      } else {
-        res.send(contenu)
+    res.header('Content-disposition', `inline; filename=${encodeURIComponent(nom)}`)
+    res.header('Content-Type', contentTypes[format])
+
+    if (filePath || buffer) {
+      res.header('x-sent', 'true')
+      res.header('x-timestamp', Date.now().toString())
+      const options = {
+        dotfiles: 'deny',
+        root: join(process.cwd(), 'files'),
       }
-    } catch (e) {
-      console.error(e)
 
-      next(e)
+      if (filePath) {
+        res.sendFile(filePath, options, err => {
+          if (err) console.error(`erreur de téléchargement ${err}`)
+          res.status(404).end()
+        })
+      }
+      if (buffer) {
+        res.header('Content-Length', `${buffer.length}`)
+        res.send(buffer)
+      }
+    } else {
+      res.send(contenu)
     }
+  } catch (e) {
+    console.error(e)
+
+    next(e)
   }
+}
 
-export const config = async (
-  _req: express.Request,
-  res: CustomResponse<CaminoConfig>
-) => {
+export const config = async (_req: express.Request, res: CustomResponse<CaminoConfig>) => {
   const config: CaminoConfig = {
     sentryDsn: process.env.SENTRY_DSN,
     caminoStage: process.env.CAMINO_STAGE,
     environment: process.env.ENV ?? 'dev',
     uiHost: process.env.UI_HOST,
     matomoHost: process.env.API_MATOMO_URL,
-    matomoSiteId: process.env.API_MATOMO_ID
+    matomoSiteId: process.env.API_MATOMO_ID,
   }
 
   res.json(config)
@@ -174,24 +122,15 @@ rest.get(CaminoRestRoutes.titreSections, restCatcher(getTitresSections))
 rest.get(CaminoRestRoutes.titresONF, restCatcher(titresONF))
 rest.get(CaminoRestRoutes.titresPTMG, restCatcher(titresPTMG))
 rest.get(CaminoRestRoutes.titresDREAL, restCatcher(titresDREAL))
-rest.get(
-  CaminoRestRoutes.statistiquesMinerauxMetauxMetropole,
-  restCatcher(getMinerauxMetauxMetropolesStats)
-)
+rest.get(CaminoRestRoutes.statistiquesMinerauxMetauxMetropole, restCatcher(getMinerauxMetauxMetropolesStats))
 rest.get(CaminoRestRoutes.statistiquesGuyane, restCatcher(getGuyaneStats))
-rest.get(
-  CaminoRestRoutes.statistiquesGranulatsMarins,
-  restCatcher(getGranulatsMarinsStats)
-)
+rest.get(CaminoRestRoutes.statistiquesGranulatsMarins, restCatcher(getGranulatsMarinsStats))
 
 rest.get(CaminoRestRoutes.statistiquesDGTM, restCatcher(getDGTMStats))
 rest.get('/demarches', restDownload(demarches))
 rest.get('/activites', restDownload(activites))
 rest.post(CaminoRestRoutes.generateQgisToken, restCatcher(generateQgisToken))
-rest.post(
-  CaminoRestRoutes.newsletter,
-  restCatcher(manageNewsletterSubscription)
-)
+rest.post(CaminoRestRoutes.newsletter, restCatcher(manageNewsletterSubscription))
 rest.get(CaminoRestRoutes.moi, restCatcher(moi))
 rest.get(CaminoRestRoutes.newsletter, restCatcher(isSubscribedToNewsletter))
 rest.get('/utilisateurs', restDownload(utilisateurs))
@@ -203,20 +142,13 @@ rest.get('/etape/:etapeId/:fichierNom', restDownload(etapeFichier))
 rest.get('/deconnecter', restCatcher(logout))
 rest.get('/changerMotDePasse', restCatcher(resetPassword))
 
-rest.use(
-  (
-    err: Error,
-    _req: express.Request,
-    res: express.Response,
-    next: express.NextFunction
-  ) => {
-    if (err) {
-      res.status(500)
-      res.send({ error: err.message })
-
-      return
-    }
+rest.use((err: Error, _req: express.Request, res: express.Response, next: express.NextFunction) => {
+  if (err) {
+    res.status(500)
+    res.send({ error: err.message })
 
-    next()
+    return
   }
-)
+
+  next()
+})
diff --git a/packages/api/src/server/upload.ts b/packages/api/src/server/upload.ts
index 1ce886b00..879f10045 100644
--- a/packages/api/src/server/upload.ts
+++ b/packages/api/src/server/upload.ts
@@ -4,11 +4,7 @@ import { graphqlUploadExpress } from 'graphql-upload'
 import { isDefault, User } from 'camino-common/src/roles.js'
 
 // Téléversement REST
-const uploadAllowedMiddleware = async (
-  req: express.Request,
-  res: express.Response,
-  next: express.NextFunction
-) => {
+const uploadAllowedMiddleware = async (req: express.Request, res: express.Response, next: express.NextFunction) => {
   try {
     if (isDefault(req.user as User)) {
       res.sendStatus(403)
@@ -39,7 +35,7 @@ const restUpload = () => {
 // Téléversement graphQL
 const graphqlUpload = graphqlUploadExpress({
   maxFileSize: Infinity,
-  maxFiles: 10
+  maxFiles: 10,
 })
 
 export { restUpload, uploadAllowedMiddleware, graphqlUpload }
diff --git a/packages/api/src/server/user-loader.ts b/packages/api/src/server/user-loader.ts
index 5c03f85e8..9cb572b66 100644
--- a/packages/api/src/server/user-loader.ts
+++ b/packages/api/src/server/user-loader.ts
@@ -1,23 +1,14 @@
 import express from 'express'
 import { knex } from '../knex.js'
 import { userIdGenerate } from '../api/graphql/resolvers/utilisateurs.js'
-import {
-  userByEmailGet,
-  utilisateurCreate
-} from '../database/queries/utilisateurs.js'
+import { userByEmailGet, utilisateurCreate } from '../database/queries/utilisateurs.js'
 import { emailsSend } from '../tools/api-mailjet/emails.js'
 import { formatUser } from '../types.js'
 import { getCurrent } from 'camino-common/src/date.js'
 
-export const userLoader = async (
-  req: express.Request,
-  _res: express.Response,
-  next: express.NextFunction
-) => {
+export const userLoader = async (req: express.Request, _res: express.Response, next: express.NextFunction) => {
   try {
-    const reqUser = req.user as
-      | { email?: string; family_name?: string; given_name?: string }
-      | undefined
+    const reqUser = req.user as { email?: string; family_name?: string; given_name?: string } | undefined
     if (reqUser?.email) {
       let user = await userByEmailGet(reqUser.email)
       if (!user) {
@@ -35,7 +26,7 @@ export const userLoader = async (
             role: 'defaut',
             nom: reqUser.family_name,
             prenom: reqUser.given_name,
-            dateCreation: getCurrent()
+            dateCreation: getCurrent(),
           },
           { fields: { entreprises: { id: {} } } }
         )
@@ -45,14 +36,9 @@ export const userLoader = async (
           `Nouvel utilisateur ${user.email} créé`,
           `L'utilisateur ${user.nom} ${user.prenom} vient de se créer un compte : ${process.env.OAUTH_URL}/utilisateurs/${user.id}`
         )
-      } else if (
-        user.nom !== reqUser.family_name ||
-        user.prenom !== reqUser.given_name
-      ) {
+      } else if (user.nom !== reqUser.family_name || user.prenom !== reqUser.given_name) {
         // mise à jour du nom et du prénom de l’utilisateur
-        await knex('utilisateurs')
-          .update({ nom: reqUser.family_name, prenom: reqUser.given_name })
-          .where('email', reqUser.email)
+        await knex('utilisateurs').update({ nom: reqUser.family_name, prenom: reqUser.given_name }).where('email', reqUser.email)
         user.nom = reqUser.family_name
         user.prenom = reqUser.given_name
       }
diff --git a/packages/api/src/tools/annees-build.test.ts b/packages/api/src/tools/annees-build.test.ts
index 006f50742..6387dc529 100644
--- a/packages/api/src/tools/annees-build.test.ts
+++ b/packages/api/src/tools/annees-build.test.ts
@@ -5,8 +5,6 @@ describe('liste les années entre deux dates', () => {
     expect(anneesBuild('2022-12-07', '2020-10-05')).toEqual([])
     expect(anneesBuild('2020-12-07', '2020-10-05')).toEqual([2020])
     expect(anneesBuild('2020-12-01', '2020-12-05')).toEqual([2020])
-    expect(anneesBuild('2015-12-01', '2020-12-05')).toEqual([
-      2015, 2016, 2017, 2018, 2019, 2020
-    ])
+    expect(anneesBuild('2015-12-01', '2020-12-05')).toEqual([2015, 2016, 2017, 2018, 2019, 2020])
   })
 })
diff --git a/packages/api/src/tools/annees-build.ts b/packages/api/src/tools/annees-build.ts
index 5f26674eb..d98b56931 100644
--- a/packages/api/src/tools/annees-build.ts
+++ b/packages/api/src/tools/annees-build.ts
@@ -10,9 +10,7 @@ export const anneesBuild = (dateDebut: string, dateFin: string) => {
 
   if (anneeFin < anneeDebut) return []
 
-  const annees = [...new Array(anneeFin - anneeDebut + 1)].map(
-    (_, delta) => anneeDebut + delta
-  )
+  const annees = [...new Array(anneeFin - anneeDebut + 1)].map((_, delta) => anneeDebut + delta)
 
   return annees
 }
diff --git a/packages/api/src/tools/api-administrations/index.ts b/packages/api/src/tools/api-administrations/index.ts
index 187ce5a7c..5d7dfdc7b 100644
--- a/packages/api/src/tools/api-administrations/index.ts
+++ b/packages/api/src/tools/api-administrations/index.ts
@@ -3,11 +3,7 @@ import fetch from 'node-fetch'
 
 import errorLog from '../error-log.js'
 import { DepartementId } from 'camino-common/src/static/departement.js'
-import {
-  Administration,
-  AdministrationId,
-  AdministrationTypeId
-} from 'camino-common/src/static/administrations.js'
+import { Administration, AdministrationId, AdministrationTypeId } from 'camino-common/src/static/administrations.js'
 
 const MAX_CALLS_MINUTE = 200
 
@@ -33,22 +29,17 @@ interface IOrganisme {
 
 const organismeFetch = async (departementId: string, nom: string) => {
   if (!API_ADMINISTRATION_URL) {
-    throw new Error(
-      "impossible de se connecter à l'API administration car la variable d'environnement est absente"
-    )
+    throw new Error("impossible de se connecter à l'API administration car la variable d'environnement est absente")
   }
 
   console.info(`API administration: requête ${departementId}, ${nom}`)
 
-  const response = await fetch(
-    `${API_ADMINISTRATION_URL}/v3/departements/${departementId}/${nom}`,
-    {
-      method: 'GET',
-      headers: {
-        accept: 'application/json'
-      }
-    }
-  )
+  const response = await fetch(`${API_ADMINISTRATION_URL}/v3/departements/${departementId}/${nom}`, {
+    method: 'GET',
+    headers: {
+      accept: 'application/json',
+    },
+  })
 
   if (response.status > 400) {
     throw response.statusText
@@ -58,9 +49,7 @@ const organismeFetch = async (departementId: string, nom: string) => {
 
   // attend quelques secondes après chaque appel
   // pour ne pas dépasser les quotas
-  await new Promise(resolve =>
-    setTimeout(resolve, (60 / MAX_CALLS_MINUTE) * 1000)
-  )
+  await new Promise(resolve => setTimeout(resolve, (60 / MAX_CALLS_MINUTE) * 1000))
 
   return result
 }
@@ -96,17 +85,14 @@ const organismeFormat = (e: IOrganisme, departementId: DepartementId) => {
 
   const organisme: Administration = {
     id: p.id.replace(/prefecture|paris_ppp/, 'pre') as AdministrationId,
-    typeId: p.pivotLocal.replace(
-      /prefecture|paris_ppp/,
-      'pre'
-    ) as AdministrationTypeId,
+    typeId: p.pivotLocal.replace(/prefecture|paris_ppp/, 'pre') as AdministrationTypeId,
     nom: p.nom,
     abreviation: p.nom,
     adresse1,
     codePostal: adresses[0].codePostal,
     commune: adresses[0].commune,
     telephone: p.telephone,
-    departementId
+    departementId,
   }
   const adresse2 = adresseB ? adresseB.lignes.join(', ') : null
   if (adresse2) {
@@ -124,23 +110,16 @@ const organismeFormat = (e: IOrganisme, departementId: DepartementId) => {
   return organisme
 }
 
-const organismeDepartementGet = async (
-  departementId: DepartementId,
-  nom: string
-) => {
+const organismeDepartementGet = async (departementId: DepartementId, nom: string) => {
   const organisme = await organismeDepartementCall(departementId, nom)
 
   return organisme ? organismeFormat(organisme, departementId) : null
 }
 
-export const organismesDepartementsGet = async (
-  departementsIdsNoms: { departementId: DepartementId; nom: string }[]
-): Promise<Administration[]> => {
+export const organismesDepartementsGet = async (departementsIdsNoms: { departementId: DepartementId; nom: string }[]): Promise<Administration[]> => {
   const organismesDepartements = []
   for (const { departementId, nom } of departementsIdsNoms) {
-    organismesDepartements.push(
-      await organismeDepartementGet(departementId, nom)
-    )
+    organismesDepartements.push(await organismeDepartementGet(departementId, nom))
   }
 
   return organismesDepartements.filter((o): o is Administration => !!o)
diff --git a/packages/api/src/tools/api-insee/definitions/categories-juridiques.ts b/packages/api/src/tools/api-insee/definitions/categories-juridiques.ts
index 5f7151b01..f6167788a 100644
--- a/packages/api/src/tools/api-insee/definitions/categories-juridiques.ts
+++ b/packages/api/src/tools/api-insee/definitions/categories-juridiques.ts
@@ -1,1042 +1,1042 @@
 export default [
   {
     code: '1000',
-    nom: 'Entrepreneur individuel'
+    nom: 'Entrepreneur individuel',
   },
   {
     code: '2110',
-    nom: 'Indivision entre personnes physiques'
+    nom: 'Indivision entre personnes physiques',
   },
   {
     code: '2120',
-    nom: 'Indivision avec personne morale'
+    nom: 'Indivision avec personne morale',
   },
   {
     code: '2210',
-    nom: 'Société créée de fait entre personnes physiques'
+    nom: 'Société créée de fait entre personnes physiques',
   },
   {
     code: '2220',
-    nom: 'Société créée de fait avec personne morale'
+    nom: 'Société créée de fait avec personne morale',
   },
   {
     code: '2310',
-    nom: 'Société en participation entre personnes physiques'
+    nom: 'Société en participation entre personnes physiques',
   },
   {
     code: '2320',
-    nom: 'Société en participation avec personne morale'
+    nom: 'Société en participation avec personne morale',
   },
   {
     code: '2385',
-    nom: 'Société en participation de professions libérales'
+    nom: 'Société en participation de professions libérales',
   },
   {
     code: '2400',
-    nom: 'Fiducie'
+    nom: 'Fiducie',
   },
   {
     code: '2700',
-    nom: 'Paroisse hors zone concordataire'
+    nom: 'Paroisse hors zone concordataire',
   },
   {
     code: '2900',
-    nom: 'Autre groupement de droit privé non doté de la personnalité morale'
+    nom: 'Autre groupement de droit privé non doté de la personnalité morale',
   },
   {
     code: '3110',
-    nom: "Représentation ou agence commerciale d'état ou organisme public étranger immatriculé au RCS "
+    nom: "Représentation ou agence commerciale d'état ou organisme public étranger immatriculé au RCS ",
   },
   {
     code: '3120',
-    nom: 'Société commerciale étrangère immatriculée au RCS'
+    nom: 'Société commerciale étrangère immatriculée au RCS',
   },
   {
     code: '3205',
-    nom: 'Organisation internationale'
+    nom: 'Organisation internationale',
   },
   {
     code: '3210',
-    nom: 'État, collectivité ou établissement public étranger'
+    nom: 'État, collectivité ou établissement public étranger',
   },
   {
     code: '3220',
-    nom: 'Société étrangère non immatriculée au RCS'
+    nom: 'Société étrangère non immatriculée au RCS',
   },
   {
     code: '3290',
-    nom: 'Autre personne morale de droit étranger'
+    nom: 'Autre personne morale de droit étranger',
   },
   {
     code: '4110',
-    nom: "Établissement public national à caractère industriel ou commercial doté d'un comptable public "
+    nom: "Établissement public national à caractère industriel ou commercial doté d'un comptable public ",
   },
   {
     code: '4120',
-    nom: "Établissement public national à caractère industriel ou commercial non doté d'un comptable public "
+    nom: "Établissement public national à caractère industriel ou commercial non doté d'un comptable public ",
   },
   {
     code: '4130',
-    nom: 'Exploitant public'
+    nom: 'Exploitant public',
   },
   {
     code: '4140',
-    nom: 'Établissement public local à caractère industriel ou commercial'
+    nom: 'Établissement public local à caractère industriel ou commercial',
   },
   {
     code: '4150',
-    nom: "Régie d'une collectivité locale à caractère industriel ou commercial "
+    nom: "Régie d'une collectivité locale à caractère industriel ou commercial ",
   },
   {
     code: '4160',
-    nom: 'Institution Banque de France'
+    nom: 'Institution Banque de France',
   },
   {
     code: '5191',
-    nom: 'Société de caution mutuelle'
+    nom: 'Société de caution mutuelle',
   },
   {
     code: '5192',
-    nom: 'Société coopérative de banque populaire'
+    nom: 'Société coopérative de banque populaire',
   },
   {
     code: '5193',
-    nom: 'Caisse de crédit maritime mutuel'
+    nom: 'Caisse de crédit maritime mutuel',
   },
   {
     code: '5194',
-    nom: 'Caisse (fédérale) de crédit mutuel'
+    nom: 'Caisse (fédérale) de crédit mutuel',
   },
   {
     code: '5195',
-    nom: 'Association coopérative inscrite (droit local Alsace Moselle)'
+    nom: 'Association coopérative inscrite (droit local Alsace Moselle)',
   },
   {
     code: '5196',
-    nom: "Caisse d'épargne et de prévoyance à forme coopérative "
+    nom: "Caisse d'épargne et de prévoyance à forme coopérative ",
   },
   {
     code: '5202',
-    nom: 'Société en nom collectif'
+    nom: 'Société en nom collectif',
   },
   {
     code: '5203',
-    nom: 'Société en nom collectif coopérative'
+    nom: 'Société en nom collectif coopérative',
   },
   {
     code: '5306',
-    nom: 'Société en commandite simple'
+    nom: 'Société en commandite simple',
   },
   {
     code: '5307',
-    nom: 'Société en commandite simple coopérative'
+    nom: 'Société en commandite simple coopérative',
   },
   {
     code: '5308',
-    nom: 'Société en commandite par actions'
+    nom: 'Société en commandite par actions',
   },
   {
     code: '5309',
-    nom: 'Société en commandite par actions coopérative'
+    nom: 'Société en commandite par actions coopérative',
   },
   {
     code: '5370',
-    nom: 'Société de Participations Financières de Profession Libérale Société en commandite par actions (SPFPL SCA)'
+    nom: 'Société de Participations Financières de Profession Libérale Société en commandite par actions (SPFPL SCA)',
   },
   {
     code: '5385',
-    nom: "Société d'exercice libéral en commandite par actions "
+    nom: "Société d'exercice libéral en commandite par actions ",
   },
   {
     code: '5410',
-    nom: 'SARL nationale'
+    nom: 'SARL nationale',
   },
   {
     code: '5415',
-    nom: "SARL d'économie mixte "
+    nom: "SARL d'économie mixte ",
   },
   {
     code: '5422',
-    nom: "SARL immobilière pour le commerce et l'industrie (SICOMI) "
+    nom: "SARL immobilière pour le commerce et l'industrie (SICOMI) ",
   },
   {
     code: '5426',
-    nom: 'SARL immobilière de gestion'
+    nom: 'SARL immobilière de gestion',
   },
   {
     code: '5430',
-    nom: "SARL d'aménagement foncier et d'équipement rural (SAFER)"
+    nom: "SARL d'aménagement foncier et d'équipement rural (SAFER)",
   },
   {
     code: '5431',
-    nom: "SARL mixte d'intérêt agricole (SMIA) "
+    nom: "SARL mixte d'intérêt agricole (SMIA) ",
   },
   {
     code: '5432',
-    nom: "SARL d'intérêt collectif agricole (SICA) "
+    nom: "SARL d'intérêt collectif agricole (SICA) ",
   },
   {
     code: '5442',
-    nom: "SARL d'attribution "
+    nom: "SARL d'attribution ",
   },
   {
     code: '5443',
-    nom: 'SARL coopérative de construction'
+    nom: 'SARL coopérative de construction',
   },
   {
     code: '5451',
-    nom: 'SARL coopérative de consommation'
+    nom: 'SARL coopérative de consommation',
   },
   {
     code: '5453',
-    nom: 'SARL coopérative artisanale'
+    nom: 'SARL coopérative artisanale',
   },
   {
     code: '5454',
-    nom: "SARL coopérative d'intérêt maritime "
+    nom: "SARL coopérative d'intérêt maritime ",
   },
   {
     code: '5455',
-    nom: 'SARL coopérative de transport'
+    nom: 'SARL coopérative de transport',
   },
   {
     code: '5458',
-    nom: 'SARL coopérative ouvrière de production (SCOP)'
+    nom: 'SARL coopérative ouvrière de production (SCOP)',
   },
   {
     code: '5459',
-    nom: 'SARL union de sociétés coopératives'
+    nom: 'SARL union de sociétés coopératives',
   },
   {
     code: '5460',
-    nom: 'Autre SARL coopérative'
+    nom: 'Autre SARL coopérative',
   },
   {
     code: '5470',
-    nom: 'Société de Participations Financières de Profession Libérale Société à responsabilité limitée (SPFPL SARL)'
+    nom: 'Société de Participations Financières de Profession Libérale Société à responsabilité limitée (SPFPL SARL)',
   },
   {
     code: '5485',
-    nom: "Société d'exercice libéral à responsabilité limitée "
+    nom: "Société d'exercice libéral à responsabilité limitée ",
   },
   {
     code: '5498',
-    nom: 'SARL unipersonnelle'
+    nom: 'SARL unipersonnelle',
   },
   {
     code: '5499',
-    nom: 'Société à responsabilité limitée (sans autre indication)'
+    nom: 'Société à responsabilité limitée (sans autre indication)',
   },
   {
     code: '5505',
-    nom: "SA à participation ouvrière à conseil d'administration "
+    nom: "SA à participation ouvrière à conseil d'administration ",
   },
   {
     code: '5510',
-    nom: "SA nationale à conseil d'administration "
+    nom: "SA nationale à conseil d'administration ",
   },
   {
     code: '5515',
-    nom: "SA d'économie mixte à conseil d'administration "
+    nom: "SA d'économie mixte à conseil d'administration ",
   },
   {
     code: '5520',
-    nom: "Fonds à forme sociétale à conseil d'administration"
+    nom: "Fonds à forme sociétale à conseil d'administration",
   },
   {
     code: '5522',
-    nom: "SA immobilière pour le commerce et l'industrie (SICOMI) à conseil d'administration"
+    nom: "SA immobilière pour le commerce et l'industrie (SICOMI) à conseil d'administration",
   },
   {
     code: '5525',
-    nom: "SA immobilière d'investissement à conseil d'administration"
+    nom: "SA immobilière d'investissement à conseil d'administration",
   },
   {
     code: '5530',
-    nom: "SA d'aménagement foncier et d'équipement rural (SAFER) à conseil d'administration"
+    nom: "SA d'aménagement foncier et d'équipement rural (SAFER) à conseil d'administration",
   },
   {
     code: '5531',
-    nom: "Société anonyme mixte d'intérêt agricole (SMIA) à conseil d'administration "
+    nom: "Société anonyme mixte d'intérêt agricole (SMIA) à conseil d'administration ",
   },
   {
     code: '5532',
-    nom: "SA d'intérêt collectif agricole (SICA) à conseil d'administration"
+    nom: "SA d'intérêt collectif agricole (SICA) à conseil d'administration",
   },
   {
     code: '5542',
-    nom: "SA d'attribution à conseil d'administration"
+    nom: "SA d'attribution à conseil d'administration",
   },
   {
     code: '5543',
-    nom: "SA coopérative de construction à conseil d'administration"
+    nom: "SA coopérative de construction à conseil d'administration",
   },
   {
     code: '5546',
-    nom: "SA de HLM à conseil d'administration "
+    nom: "SA de HLM à conseil d'administration ",
   },
   {
     code: '5547',
-    nom: "SA coopérative de production de HLM à conseil d'administration "
+    nom: "SA coopérative de production de HLM à conseil d'administration ",
   },
   {
     code: '5548',
-    nom: "SA de crédit immobilier à conseil d'administration "
+    nom: "SA de crédit immobilier à conseil d'administration ",
   },
   {
     code: '5551',
-    nom: "SA coopérative de consommation à conseil d'administration "
+    nom: "SA coopérative de consommation à conseil d'administration ",
   },
   {
     code: '5552',
-    nom: "SA coopérative de commerçants-détaillants à conseil d'administration"
+    nom: "SA coopérative de commerçants-détaillants à conseil d'administration",
   },
   {
     code: '5553',
-    nom: "SA coopérative artisanale à conseil d'administration "
+    nom: "SA coopérative artisanale à conseil d'administration ",
   },
   {
     code: '5554',
-    nom: "SA coopérative (d'intérêt) maritime à conseil d'administration "
+    nom: "SA coopérative (d'intérêt) maritime à conseil d'administration ",
   },
   {
     code: '5555',
-    nom: "SA coopérative de transport à conseil d'administration"
+    nom: "SA coopérative de transport à conseil d'administration",
   },
   {
     code: '5558',
-    nom: "SA coopérative ouvrière de production (SCOP) à conseil d'administration"
+    nom: "SA coopérative ouvrière de production (SCOP) à conseil d'administration",
   },
   {
     code: '5559',
-    nom: "SA union de sociétés coopératives à conseil d'administration "
+    nom: "SA union de sociétés coopératives à conseil d'administration ",
   },
   {
     code: '5560',
-    nom: "Autre SA coopérative à conseil d'administration "
+    nom: "Autre SA coopérative à conseil d'administration ",
   },
   {
     code: '5570',
-    nom: "Société de Participations Financières de Profession Libérale Société anonyme à conseil d'administration (SPFPL SA à conseil d'administration)"
+    nom: "Société de Participations Financières de Profession Libérale Société anonyme à conseil d'administration (SPFPL SA à conseil d'administration)",
   },
   {
     code: '5585',
-    nom: "Société d'exercice libéral à forme anonyme à conseil d'administration "
+    nom: "Société d'exercice libéral à forme anonyme à conseil d'administration ",
   },
   {
     code: '5599',
-    nom: "SA à conseil d'administration (s.a.i.)"
+    nom: "SA à conseil d'administration (s.a.i.)",
   },
   {
     code: '5605',
-    nom: 'SA à participation ouvrière à directoire'
+    nom: 'SA à participation ouvrière à directoire',
   },
   {
     code: '5610',
-    nom: 'SA nationale à directoire'
+    nom: 'SA nationale à directoire',
   },
   {
     code: '5615',
-    nom: "SA d'économie mixte à directoire "
+    nom: "SA d'économie mixte à directoire ",
   },
   {
     code: '5620',
-    nom: 'Fonds à forme sociétale à directoire'
+    nom: 'Fonds à forme sociétale à directoire',
   },
   {
     code: '5622',
-    nom: "SA immobilière pour le commerce et l'industrie (SICOMI) à directoire"
+    nom: "SA immobilière pour le commerce et l'industrie (SICOMI) à directoire",
   },
   {
     code: '5625',
-    nom: "SA immobilière d'investissement à directoire "
+    nom: "SA immobilière d'investissement à directoire ",
   },
   {
     code: '5630',
-    nom: 'Safer anonyme à directoire'
+    nom: 'Safer anonyme à directoire',
   },
   {
     code: '5631',
-    nom: "SA mixte d'intérêt agricole (SMIA)"
+    nom: "SA mixte d'intérêt agricole (SMIA)",
   },
   {
     code: '5632',
-    nom: "SA d'intérêt collectif agricole (SICA)"
+    nom: "SA d'intérêt collectif agricole (SICA)",
   },
   {
     code: '5642',
-    nom: "SA d'attribution à directoire"
+    nom: "SA d'attribution à directoire",
   },
   {
     code: '5643',
-    nom: 'SA coopérative de construction à directoire'
+    nom: 'SA coopérative de construction à directoire',
   },
   {
     code: '5646',
-    nom: 'SA de HLM à directoire'
+    nom: 'SA de HLM à directoire',
   },
   {
     code: '5647',
-    nom: 'Société coopérative de production de HLM anonyme à directoire'
+    nom: 'Société coopérative de production de HLM anonyme à directoire',
   },
   {
     code: '5648',
-    nom: 'SA de crédit immobilier à directoire'
+    nom: 'SA de crédit immobilier à directoire',
   },
   {
     code: '5651',
-    nom: 'SA coopérative de consommation à directoire'
+    nom: 'SA coopérative de consommation à directoire',
   },
   {
     code: '5652',
-    nom: 'SA coopérative de commerçants-détaillants à directoire'
+    nom: 'SA coopérative de commerçants-détaillants à directoire',
   },
   {
     code: '5653',
-    nom: 'SA coopérative artisanale à directoire'
+    nom: 'SA coopérative artisanale à directoire',
   },
   {
     code: '5654',
-    nom: "SA coopérative d'intérêt maritime à directoire "
+    nom: "SA coopérative d'intérêt maritime à directoire ",
   },
   {
     code: '5655',
-    nom: 'SA coopérative de transport à directoire'
+    nom: 'SA coopérative de transport à directoire',
   },
   {
     code: '5658',
-    nom: 'SA coopérative ouvrière de production (SCOP) à directoire'
+    nom: 'SA coopérative ouvrière de production (SCOP) à directoire',
   },
   {
     code: '5659',
-    nom: 'SA union de sociétés coopératives à directoire'
+    nom: 'SA union de sociétés coopératives à directoire',
   },
   {
     code: '5660',
-    nom: 'Autre SA coopérative à directoire'
+    nom: 'Autre SA coopérative à directoire',
   },
   {
     code: '5670',
-    nom: 'Société de Participations Financières de Profession Libérale Société anonyme à Directoire (SPFPL SA à directoire)'
+    nom: 'Société de Participations Financières de Profession Libérale Société anonyme à Directoire (SPFPL SA à directoire)',
   },
   {
     code: '5685',
-    nom: "Société d'exercice libéral à forme anonyme à directoire "
+    nom: "Société d'exercice libéral à forme anonyme à directoire ",
   },
   {
     code: '5699',
-    nom: 'SA à directoire (s.a.i.)'
+    nom: 'SA à directoire (s.a.i.)',
   },
   {
     code: '5710',
-    nom: 'SAS, société par actions simplifiée'
+    nom: 'SAS, société par actions simplifiée',
   },
   {
     code: '5720',
-    nom: 'Société par actions simplifiée à associé unique ou société par actions simplifiée unipersonnelle'
+    nom: 'Société par actions simplifiée à associé unique ou société par actions simplifiée unipersonnelle',
   },
   {
     code: '5770',
-    nom: 'Société de Participations Financières de Profession Libérale Société par actions simplifiée (SPFPL SAS)'
+    nom: 'Société de Participations Financières de Profession Libérale Société par actions simplifiée (SPFPL SAS)',
   },
   {
     code: '5785',
-    nom: "Société d'exercice libéral par action simplifiée "
+    nom: "Société d'exercice libéral par action simplifiée ",
   },
   {
     code: '5800',
-    nom: 'Société européenne'
+    nom: 'Société européenne',
   },
   {
     code: '6100',
-    nom: "Caisse d'Épargne et de Prévoyance "
+    nom: "Caisse d'Épargne et de Prévoyance ",
   },
   {
     code: '6210',
-    nom: "Groupement européen d'intérêt économique (GEIE) "
+    nom: "Groupement européen d'intérêt économique (GEIE) ",
   },
   {
     code: '6220',
-    nom: "Groupement d'intérêt économique (GIE) "
+    nom: "Groupement d'intérêt économique (GIE) ",
   },
   {
     code: '6316',
-    nom: "Coopérative d'utilisation de matériel agricole en commun (CUMA) "
+    nom: "Coopérative d'utilisation de matériel agricole en commun (CUMA) ",
   },
   {
     code: '6317',
-    nom: 'Société coopérative agricole'
+    nom: 'Société coopérative agricole',
   },
   {
     code: '6318',
-    nom: 'Union de sociétés coopératives agricoles'
+    nom: 'Union de sociétés coopératives agricoles',
   },
   {
     code: '6411',
-    nom: "Société d'assurance à forme mutuelle"
+    nom: "Société d'assurance à forme mutuelle",
   },
   {
     code: '6511',
-    nom: 'Sociétés Interprofessionnelles de Soins Ambulatoires '
+    nom: 'Sociétés Interprofessionnelles de Soins Ambulatoires ',
   },
   {
     code: '6521',
-    nom: 'Société civile de placement collectif immobilier (SCPI)'
+    nom: 'Société civile de placement collectif immobilier (SCPI)',
   },
   {
     code: '6532',
-    nom: "Société civile d'intérêt collectif agricole (SICA) "
+    nom: "Société civile d'intérêt collectif agricole (SICA) ",
   },
   {
     code: '6533',
-    nom: "Groupement agricole d'exploitation en commun (GAEC) "
+    nom: "Groupement agricole d'exploitation en commun (GAEC) ",
   },
   {
     code: '6534',
-    nom: 'Groupement foncier agricole'
+    nom: 'Groupement foncier agricole',
   },
   {
     code: '6535',
-    nom: 'Groupement agricole foncier'
+    nom: 'Groupement agricole foncier',
   },
   {
     code: '6536',
-    nom: 'Groupement forestier'
+    nom: 'Groupement forestier',
   },
   {
     code: '6537',
-    nom: 'Groupement pastoral'
+    nom: 'Groupement pastoral',
   },
   {
     code: '6538',
-    nom: 'Groupement foncier et rural'
+    nom: 'Groupement foncier et rural',
   },
   {
     code: '6539',
-    nom: 'Société civile foncière'
+    nom: 'Société civile foncière',
   },
   {
     code: '6540',
-    nom: 'Société civile immobilière'
+    nom: 'Société civile immobilière',
   },
   {
     code: '6541',
-    nom: 'Société civile immobilière de construction-vente'
+    nom: 'Société civile immobilière de construction-vente',
   },
   {
     code: '6542',
-    nom: "Société civile d'attribution "
+    nom: "Société civile d'attribution ",
   },
   {
     code: '6543',
-    nom: 'Société civile coopérative de construction'
+    nom: 'Société civile coopérative de construction',
   },
   {
     code: '6544',
-    nom: "Société civile immobilière d' accession progressive à la propriété"
+    nom: "Société civile immobilière d' accession progressive à la propriété",
   },
   {
     code: '6551',
-    nom: 'Société civile coopérative de consommation'
+    nom: 'Société civile coopérative de consommation',
   },
   {
     code: '6554',
-    nom: "Société civile coopérative d'intérêt maritime "
+    nom: "Société civile coopérative d'intérêt maritime ",
   },
   {
     code: '6558',
-    nom: 'Société civile coopérative entre médecins'
+    nom: 'Société civile coopérative entre médecins',
   },
   {
     code: '6560',
-    nom: 'Autre société civile coopérative'
+    nom: 'Autre société civile coopérative',
   },
   {
     code: '6561',
-    nom: "SCP d'avocats "
+    nom: "SCP d'avocats ",
   },
   {
     code: '6562',
-    nom: "SCP d'avocats aux conseils "
+    nom: "SCP d'avocats aux conseils ",
   },
   {
     code: '6563',
-    nom: "SCP d'avoués d'appel "
+    nom: "SCP d'avoués d'appel ",
   },
   {
     code: '6564',
-    nom: "SCP d'huissiers "
+    nom: "SCP d'huissiers ",
   },
   {
     code: '6565',
-    nom: 'SCP de notaires'
+    nom: 'SCP de notaires',
   },
   {
     code: '6566',
-    nom: 'SCP de commissaires-priseurs'
+    nom: 'SCP de commissaires-priseurs',
   },
   {
     code: '6567',
-    nom: 'SCP de greffiers de tribunal de commerce'
+    nom: 'SCP de greffiers de tribunal de commerce',
   },
   {
     code: '6568',
-    nom: 'SCP de conseils juridiques'
+    nom: 'SCP de conseils juridiques',
   },
   {
     code: '6569',
-    nom: 'SCP de commissaires aux comptes'
+    nom: 'SCP de commissaires aux comptes',
   },
   {
     code: '6571',
-    nom: 'SCP de médecins'
+    nom: 'SCP de médecins',
   },
   {
     code: '6572',
-    nom: 'SCP de dentistes'
+    nom: 'SCP de dentistes',
   },
   {
     code: '6573',
-    nom: "SCP d'infirmiers "
+    nom: "SCP d'infirmiers ",
   },
   {
     code: '6574',
-    nom: 'SCP de masseurs-kinésithérapeutes'
+    nom: 'SCP de masseurs-kinésithérapeutes',
   },
   {
     code: '6575',
-    nom: "SCP de directeurs de laboratoire d'analyse médicale "
+    nom: "SCP de directeurs de laboratoire d'analyse médicale ",
   },
   {
     code: '6576',
-    nom: 'SCP de vétérinaires'
+    nom: 'SCP de vétérinaires',
   },
   {
     code: '6577',
-    nom: 'SCP de géomètres experts'
+    nom: 'SCP de géomètres experts',
   },
   {
     code: '6578',
-    nom: "SCP d'architectes "
+    nom: "SCP d'architectes ",
   },
   {
     code: '6585',
-    nom: 'Autre société civile professionnelle'
+    nom: 'Autre société civile professionnelle',
   },
   {
     code: '6588',
-    nom: 'Société civile laitière'
+    nom: 'Société civile laitière',
   },
   {
     code: '6589',
-    nom: 'Société civile de moyens'
+    nom: 'Société civile de moyens',
   },
   {
     code: '6595',
-    nom: 'Caisse locale de crédit mutuel'
+    nom: 'Caisse locale de crédit mutuel',
   },
   {
     code: '6596',
-    nom: 'Caisse de crédit agricole mutuel'
+    nom: 'Caisse de crédit agricole mutuel',
   },
   {
     code: '6597',
-    nom: "Société civile d'exploitation agricole "
+    nom: "Société civile d'exploitation agricole ",
   },
   {
     code: '6598',
-    nom: 'Exploitation agricole à responsabilité limitée'
+    nom: 'Exploitation agricole à responsabilité limitée',
   },
   {
     code: '6599',
-    nom: 'Autre société civile'
+    nom: 'Autre société civile',
   },
   {
     code: '6901',
-    nom: 'Autre personne de droit privé inscrite au registre du commerce et des sociétés'
+    nom: 'Autre personne de droit privé inscrite au registre du commerce et des sociétés',
   },
   {
     code: '7111',
-    nom: 'Autorité constitutionnelle'
+    nom: 'Autorité constitutionnelle',
   },
   {
     code: '7112',
-    nom: 'Autorité administrative ou publique indépendante'
+    nom: 'Autorité administrative ou publique indépendante',
   },
   {
     code: '7113',
-    nom: 'Ministère'
+    nom: 'Ministère',
   },
   {
     code: '7120',
-    nom: "Service central d'un ministère "
+    nom: "Service central d'un ministère ",
   },
   {
     code: '7150',
-    nom: 'Service du ministère de la Défense'
+    nom: 'Service du ministère de la Défense',
   },
   {
     code: '7160',
-    nom: "Service déconcentré à compétence nationale d'un ministère (hors Défense)"
+    nom: "Service déconcentré à compétence nationale d'un ministère (hors Défense)",
   },
   {
     code: '7171',
-    nom: "Service déconcentré de l'État à compétence (inter) régionale "
+    nom: "Service déconcentré de l'État à compétence (inter) régionale ",
   },
   {
     code: '7172',
-    nom: "Service déconcentré de l'État à compétence (inter) départementale "
+    nom: "Service déconcentré de l'État à compétence (inter) départementale ",
   },
   {
     code: '7179',
-    nom: "(Autre) Service déconcentré de l'État à compétence territoriale "
+    nom: "(Autre) Service déconcentré de l'État à compétence territoriale ",
   },
   {
     code: '7190',
-    nom: 'Ecole nationale non dotée de la personnalité morale'
+    nom: 'Ecole nationale non dotée de la personnalité morale',
   },
   {
     code: '7210',
-    nom: 'Commune et commune nouvelle'
+    nom: 'Commune et commune nouvelle',
   },
   {
     code: '7220',
-    nom: 'Département'
+    nom: 'Département',
   },
   {
     code: '7225',
-    nom: "Collectivité et territoire d'Outre Mer"
+    nom: "Collectivité et territoire d'Outre Mer",
   },
   {
     code: '7229',
-    nom: '(Autre) Collectivité territoriale'
+    nom: '(Autre) Collectivité territoriale',
   },
   {
     code: '7230',
-    nom: 'Région'
+    nom: 'Région',
   },
   {
     code: '7312',
-    nom: 'Commune associée et commune déléguée'
+    nom: 'Commune associée et commune déléguée',
   },
   {
     code: '7313',
-    nom: 'Section de commune'
+    nom: 'Section de commune',
   },
   {
     code: '7314',
-    nom: 'Ensemble urbain'
+    nom: 'Ensemble urbain',
   },
   {
     code: '7321',
-    nom: 'Association syndicale autorisée'
+    nom: 'Association syndicale autorisée',
   },
   {
     code: '7322',
-    nom: 'Association foncière urbaine'
+    nom: 'Association foncière urbaine',
   },
   {
     code: '7323',
-    nom: 'Association foncière de remembrement'
+    nom: 'Association foncière de remembrement',
   },
   {
     code: '7331',
-    nom: "Établissement public local d'enseignement "
+    nom: "Établissement public local d'enseignement ",
   },
   {
     code: '7340',
-    nom: 'Pôle métropolitain'
+    nom: 'Pôle métropolitain',
   },
   {
     code: '7341',
-    nom: 'Secteur de commune'
+    nom: 'Secteur de commune',
   },
   {
     code: '7342',
-    nom: 'District urbain'
+    nom: 'District urbain',
   },
   {
     code: '7343',
-    nom: 'Communauté urbaine'
+    nom: 'Communauté urbaine',
   },
   {
     code: '7344',
-    nom: 'Métropole'
+    nom: 'Métropole',
   },
   {
     code: '7345',
-    nom: 'Syndicat intercommunal à vocation multiple (SIVOM)'
+    nom: 'Syndicat intercommunal à vocation multiple (SIVOM)',
   },
   {
     code: '7346',
-    nom: 'Communauté de communes'
+    nom: 'Communauté de communes',
   },
   {
     code: '7347',
-    nom: 'Communauté de villes'
+    nom: 'Communauté de villes',
   },
   {
     code: '7348',
-    nom: "Communauté d'agglomération "
+    nom: "Communauté d'agglomération ",
   },
   {
     code: '7349',
-    nom: 'Autre établissement public local de coopération non spécialisé ou entente'
+    nom: 'Autre établissement public local de coopération non spécialisé ou entente',
   },
   {
     code: '7351',
-    nom: 'Institution interdépartementale ou entente'
+    nom: 'Institution interdépartementale ou entente',
   },
   {
     code: '7352',
-    nom: 'Institution interrégionale ou entente'
+    nom: 'Institution interrégionale ou entente',
   },
   {
     code: '7353',
-    nom: 'Syndicat intercommunal à vocation unique (SIVU)'
+    nom: 'Syndicat intercommunal à vocation unique (SIVU)',
   },
   {
     code: '7354',
-    nom: 'Syndicat mixte fermé'
+    nom: 'Syndicat mixte fermé',
   },
   {
     code: '7355',
-    nom: 'Syndicat mixte ouvert'
+    nom: 'Syndicat mixte ouvert',
   },
   {
     code: '7356',
-    nom: 'Commission syndicale pour la gestion des biens indivis des communes'
+    nom: 'Commission syndicale pour la gestion des biens indivis des communes',
   },
   {
     code: '7357',
-    nom: "Pôle d'équilibre territorial et rural (PETR)"
+    nom: "Pôle d'équilibre territorial et rural (PETR)",
   },
   {
     code: '7361',
-    nom: "Centre communal d'action sociale "
+    nom: "Centre communal d'action sociale ",
   },
   {
     code: '7362',
-    nom: 'Caisse des écoles'
+    nom: 'Caisse des écoles',
   },
   {
     code: '7363',
-    nom: 'Caisse de crédit municipal'
+    nom: 'Caisse de crédit municipal',
   },
   {
     code: '7364',
-    nom: "Établissement d'hospitalisation "
+    nom: "Établissement d'hospitalisation ",
   },
   {
     code: '7365',
-    nom: 'Syndicat inter hospitalier'
+    nom: 'Syndicat inter hospitalier',
   },
   {
     code: '7366',
-    nom: 'Établissement public local social et médico-social'
+    nom: 'Établissement public local social et médico-social',
   },
   {
     code: '7367',
-    nom: "Centre Intercommunal d'action sociale (CIAS)"
+    nom: "Centre Intercommunal d'action sociale (CIAS)",
   },
   {
     code: '7371',
-    nom: "Office public d'habitation à loyer modéré (OPHLM) "
+    nom: "Office public d'habitation à loyer modéré (OPHLM) ",
   },
   {
     code: '7372',
-    nom: "Service départemental d'incendie et de secours (SDIS)"
+    nom: "Service départemental d'incendie et de secours (SDIS)",
   },
   {
     code: '7373',
-    nom: 'Établissement public local culturel'
+    nom: 'Établissement public local culturel',
   },
   {
     code: '7378',
-    nom: "Régie d'une collectivité locale à caractère administratif "
+    nom: "Régie d'une collectivité locale à caractère administratif ",
   },
   {
     code: '7379',
-    nom: '(Autre) Établissement public administratif local'
+    nom: '(Autre) Établissement public administratif local',
   },
   {
     code: '7381',
-    nom: 'Organisme consulaire'
+    nom: 'Organisme consulaire',
   },
   {
     code: '7382',
-    nom: "Établissement public national ayant fonction d'administration centrale "
+    nom: "Établissement public national ayant fonction d'administration centrale ",
   },
   {
     code: '7383',
-    nom: 'Établissement public national à caractère scientifique culturel et professionnel'
+    nom: 'Établissement public national à caractère scientifique culturel et professionnel',
   },
   {
     code: '7384',
-    nom: "Autre établissement public national d'enseignement "
+    nom: "Autre établissement public national d'enseignement ",
   },
   {
     code: '7385',
-    nom: 'Autre établissement public national administratif à compétence territoriale limitée'
+    nom: 'Autre établissement public national administratif à compétence territoriale limitée',
   },
   {
     code: '7389',
-    nom: 'Établissement public national à caractère administratif'
+    nom: 'Établissement public national à caractère administratif',
   },
   {
     code: '7410',
-    nom: "Groupement d'intérêt public (GIP) "
+    nom: "Groupement d'intérêt public (GIP) ",
   },
   {
     code: '7430',
-    nom: "Établissement public des cultes d'Alsace-Lorraine "
+    nom: "Établissement public des cultes d'Alsace-Lorraine ",
   },
   {
     code: '7450',
-    nom: 'Etablissement public administratif, cercle et foyer dans les armées'
+    nom: 'Etablissement public administratif, cercle et foyer dans les armées',
   },
   {
     code: '7470',
-    nom: 'Groupement de coopération sanitaire à gestion publique'
+    nom: 'Groupement de coopération sanitaire à gestion publique',
   },
   {
     code: '7490',
-    nom: 'Autre personne morale de droit administratif'
+    nom: 'Autre personne morale de droit administratif',
   },
   {
     code: '8110',
-    nom: 'Régime général de la Sécurité Sociale'
+    nom: 'Régime général de la Sécurité Sociale',
   },
   {
     code: '8120',
-    nom: 'Régime spécial de Sécurité Sociale'
+    nom: 'Régime spécial de Sécurité Sociale',
   },
   {
     code: '8130',
-    nom: 'Institution de retraite complémentaire'
+    nom: 'Institution de retraite complémentaire',
   },
   {
     code: '8140',
-    nom: 'Mutualité sociale agricole'
+    nom: 'Mutualité sociale agricole',
   },
   {
     code: '8150',
-    nom: 'Régime maladie des non-salariés non agricoles'
+    nom: 'Régime maladie des non-salariés non agricoles',
   },
   {
     code: '8160',
-    nom: 'Régime vieillesse ne dépendant pas du régime général de la Sécurité Sociale'
+    nom: 'Régime vieillesse ne dépendant pas du régime général de la Sécurité Sociale',
   },
   {
     code: '8170',
-    nom: "Régime d'assurance chômage "
+    nom: "Régime d'assurance chômage ",
   },
   {
     code: '8190',
-    nom: 'Autre régime de prévoyance sociale'
+    nom: 'Autre régime de prévoyance sociale',
   },
   {
     code: '8210',
-    nom: 'Mutuelle'
+    nom: 'Mutuelle',
   },
   {
     code: '8250',
-    nom: 'Assurance mutuelle agricole'
+    nom: 'Assurance mutuelle agricole',
   },
   {
     code: '8290',
-    nom: 'Autre organisme mutualiste'
+    nom: 'Autre organisme mutualiste',
   },
   {
     code: '8310',
-    nom: "Comité central d'entreprise "
+    nom: "Comité central d'entreprise ",
   },
   {
     code: '8311',
-    nom: "Comité d'établissement "
+    nom: "Comité d'établissement ",
   },
   {
     code: '8410',
-    nom: 'Syndicat de salariés'
+    nom: 'Syndicat de salariés',
   },
   {
     code: '8420',
-    nom: 'Syndicat patronal'
+    nom: 'Syndicat patronal',
   },
   {
     code: '8450',
-    nom: 'Ordre professionnel ou assimilé'
+    nom: 'Ordre professionnel ou assimilé',
   },
   {
     code: '8470',
-    nom: 'Centre technique industriel ou comité professionnel du développement économique'
+    nom: 'Centre technique industriel ou comité professionnel du développement économique',
   },
   {
     code: '8490',
-    nom: 'Autre organisme professionnel'
+    nom: 'Autre organisme professionnel',
   },
   {
     code: '8510',
-    nom: 'Institution de prévoyance'
+    nom: 'Institution de prévoyance',
   },
   {
     code: '8520',
-    nom: 'Institution de retraite supplémentaire'
+    nom: 'Institution de retraite supplémentaire',
   },
   {
     code: '9110',
-    nom: 'Syndicat de copropriété'
+    nom: 'Syndicat de copropriété',
   },
   {
     code: '9150',
-    nom: 'Association syndicale libre'
+    nom: 'Association syndicale libre',
   },
   {
     code: '9210',
-    nom: 'Association non déclarée'
+    nom: 'Association non déclarée',
   },
   {
     code: '9220',
-    nom: 'Association déclarée'
+    nom: 'Association déclarée',
   },
   {
     code: '9221',
-    nom: "Association déclarée d'insertion par l'économique"
+    nom: "Association déclarée d'insertion par l'économique",
   },
   {
     code: '9222',
-    nom: 'Association intermédiaire'
+    nom: 'Association intermédiaire',
   },
   {
     code: '9223',
-    nom: "Groupement d'employeurs "
+    nom: "Groupement d'employeurs ",
   },
   {
     code: '9224',
-    nom: "Association d'avocats à responsabilité professionnelle individuelle"
+    nom: "Association d'avocats à responsabilité professionnelle individuelle",
   },
   {
     code: '9230',
-    nom: "Association déclarée, reconnue d'utilité publique"
+    nom: "Association déclarée, reconnue d'utilité publique",
   },
   {
     code: '9240',
-    nom: 'Congrégation'
+    nom: 'Congrégation',
   },
   {
     code: '9260',
-    nom: 'Association de droit local (Bas-Rhin, Haut-Rhin et Moselle)'
+    nom: 'Association de droit local (Bas-Rhin, Haut-Rhin et Moselle)',
   },
   {
     code: '9300',
-    nom: 'Fondation'
+    nom: 'Fondation',
   },
   {
     code: '9900',
-    nom: 'Autre personne morale de droit privé'
+    nom: 'Autre personne morale de droit privé',
   },
   {
     code: '9970',
-    nom: 'Groupement de coopération sanitaire à gestion privée'
-  }
+    nom: 'Groupement de coopération sanitaire à gestion privée',
+  },
 ]
diff --git a/packages/api/src/tools/api-insee/definitions/pays.ts b/packages/api/src/tools/api-insee/definitions/pays.ts
index 941b82106..585c4f035 100644
--- a/packages/api/src/tools/api-insee/definitions/pays.ts
+++ b/packages/api/src/tools/api-insee/definitions/pays.ts
@@ -1,942 +1,942 @@
 export default [
   {
     cog: '99130',
-    codeiso2: 'AD'
+    codeiso2: 'AD',
   },
   {
     cog: '99247',
-    codeiso2: 'AE'
+    codeiso2: 'AE',
   },
   {
     cog: '99212',
-    codeiso2: 'AF'
+    codeiso2: 'AF',
   },
   {
     cog: '99441',
-    codeiso2: 'AG'
+    codeiso2: 'AG',
   },
   {
     cog: '99425',
-    codeiso2: 'AI'
+    codeiso2: 'AI',
   },
   {
     cog: '99125',
-    codeiso2: 'AL'
+    codeiso2: 'AL',
   },
   {
     cog: '99252',
-    codeiso2: 'AM'
+    codeiso2: 'AM',
   },
   {
     cog: '99431',
-    codeiso2: 'AN'
+    codeiso2: 'AN',
   },
   {
     cog: '99395',
-    codeiso2: 'AO'
+    codeiso2: 'AO',
   },
   {
     cog: '99415',
-    codeiso2: 'AR'
+    codeiso2: 'AR',
   },
   {
     cog: '99505',
-    codeiso2: 'AS'
+    codeiso2: 'AS',
   },
   {
     cog: '99110',
-    codeiso2: 'AT'
+    codeiso2: 'AT',
   },
   {
     cog: '99501',
-    codeiso2: 'AU'
+    codeiso2: 'AU',
   },
   {
     cog: '99135',
-    codeiso2: 'AW'
+    codeiso2: 'AW',
   },
   {
     cog: '99253',
-    codeiso2: 'AZ'
+    codeiso2: 'AZ',
   },
   {
     cog: '99118',
-    codeiso2: 'BA'
+    codeiso2: 'BA',
   },
   {
     cog: '99434',
-    codeiso2: 'BB'
+    codeiso2: 'BB',
   },
   {
     cog: '99246',
-    codeiso2: 'BD'
+    codeiso2: 'BD',
   },
   {
     cog: '99131',
-    codeiso2: 'BE'
+    codeiso2: 'BE',
   },
   {
     cog: '99331',
-    codeiso2: 'BF'
+    codeiso2: 'BF',
   },
   {
     cog: '99111',
-    codeiso2: 'BG'
+    codeiso2: 'BG',
   },
   {
     cog: '99249',
-    codeiso2: 'BH'
+    codeiso2: 'BH',
   },
   {
     cog: '99321',
-    codeiso2: 'BI'
+    codeiso2: 'BI',
   },
   {
     cog: '99327',
-    codeiso2: 'BJ'
+    codeiso2: 'BJ',
   },
   {
     cog: '99425',
-    codeiso2: 'BM'
+    codeiso2: 'BM',
   },
   {
     cog: '99225',
-    codeiso2: 'BN'
+    codeiso2: 'BN',
   },
   {
     cog: '99418',
-    codeiso2: 'BO'
+    codeiso2: 'BO',
   },
   {
     cog: '99443',
-    codeiso2: 'BQ'
+    codeiso2: 'BQ',
   },
   {
     cog: '99416',
-    codeiso2: 'BR'
+    codeiso2: 'BR',
   },
   {
     cog: '99436',
-    codeiso2: 'BS'
+    codeiso2: 'BS',
   },
   {
     cog: '99214',
-    codeiso2: 'BT'
+    codeiso2: 'BT',
   },
   {
     cog: '99103',
-    codeiso2: 'BV'
+    codeiso2: 'BV',
   },
   {
     cog: '99347',
-    codeiso2: 'BW'
+    codeiso2: 'BW',
   },
   {
     cog: '99148',
-    codeiso2: 'BY'
+    codeiso2: 'BY',
   },
   {
     cog: '99429',
-    codeiso2: 'BZ'
+    codeiso2: 'BZ',
   },
   {
     cog: '99401',
-    codeiso2: 'CA'
+    codeiso2: 'CA',
   },
   {
     cog: '99501',
-    codeiso2: 'CC'
+    codeiso2: 'CC',
   },
   {
     cog: '99312',
-    codeiso2: 'CD'
+    codeiso2: 'CD',
   },
   {
     cog: '99323',
-    codeiso2: 'CF'
+    codeiso2: 'CF',
   },
   {
     cog: '99324',
-    codeiso2: 'CG'
+    codeiso2: 'CG',
   },
   {
     cog: '99140',
-    codeiso2: 'CH'
+    codeiso2: 'CH',
   },
   {
     cog: '99326',
-    codeiso2: 'CI'
+    codeiso2: 'CI',
   },
   {
     cog: '99502',
-    codeiso2: 'CK'
+    codeiso2: 'CK',
   },
   {
     cog: '99417',
-    codeiso2: 'CL'
+    codeiso2: 'CL',
   },
   {
     cog: '99322',
-    codeiso2: 'CM'
+    codeiso2: 'CM',
   },
   {
     cog: '99216',
-    codeiso2: 'CN'
+    codeiso2: 'CN',
   },
   {
     cog: '99419',
-    codeiso2: 'CO'
+    codeiso2: 'CO',
   },
   {
     cog: '99406',
-    codeiso2: 'CR'
+    codeiso2: 'CR',
   },
   {
     cog: '99407',
-    codeiso2: 'CU'
+    codeiso2: 'CU',
   },
   {
     cog: '99396',
-    codeiso2: 'CV'
+    codeiso2: 'CV',
   },
   {
     cog: '99444',
-    codeiso2: 'CW'
+    codeiso2: 'CW',
   },
   {
     cog: '99501',
-    codeiso2: 'CX'
+    codeiso2: 'CX',
   },
   {
     cog: '99254',
-    codeiso2: 'CY'
+    codeiso2: 'CY',
   },
   {
     cog: '99116',
-    codeiso2: 'CZ'
+    codeiso2: 'CZ',
   },
   {
     cog: '99109',
-    codeiso2: 'DE'
+    codeiso2: 'DE',
   },
   {
     cog: '99399',
-    codeiso2: 'DJ'
+    codeiso2: 'DJ',
   },
   {
     cog: '99101',
-    codeiso2: 'DK'
+    codeiso2: 'DK',
   },
   {
     cog: '99438',
-    codeiso2: 'DM'
+    codeiso2: 'DM',
   },
   {
     cog: '99408',
-    codeiso2: 'DO'
+    codeiso2: 'DO',
   },
   {
     cog: '99352',
-    codeiso2: 'DZ'
+    codeiso2: 'DZ',
   },
   {
     cog: '99420',
-    codeiso2: 'EC'
+    codeiso2: 'EC',
   },
   {
     cog: '99106',
-    codeiso2: 'EE'
+    codeiso2: 'EE',
   },
   {
     cog: '99301',
-    codeiso2: 'EG'
+    codeiso2: 'EG',
   },
   {
     cog: '99389',
-    codeiso2: 'EH'
+    codeiso2: 'EH',
   },
   {
     cog: '99317',
-    codeiso2: 'ER'
+    codeiso2: 'ER',
   },
   {
     cog: '99134',
-    codeiso2: 'ES'
+    codeiso2: 'ES',
   },
   {
     cog: '99315',
-    codeiso2: 'ET'
+    codeiso2: 'ET',
   },
   {
     cog: '99105',
-    codeiso2: 'FI'
+    codeiso2: 'FI',
   },
   {
     cog: '99508',
-    codeiso2: 'FJ'
+    codeiso2: 'FJ',
   },
   {
     cog: '99427',
-    codeiso2: 'FK'
+    codeiso2: 'FK',
   },
   {
     cog: '99516',
-    codeiso2: 'FM'
+    codeiso2: 'FM',
   },
   {
     cog: '99101',
-    codeiso2: 'FO'
+    codeiso2: 'FO',
   },
   {
     cog: '99328',
-    codeiso2: 'GA'
+    codeiso2: 'GA',
   },
   {
     cog: '99132',
-    codeiso2: 'GB'
+    codeiso2: 'GB',
   },
   {
     cog: '99435',
-    codeiso2: 'GD'
+    codeiso2: 'GD',
   },
   {
     cog: '99255',
-    codeiso2: 'GE'
+    codeiso2: 'GE',
   },
   {
     cog: '99132',
-    codeiso2: 'GG'
+    codeiso2: 'GG',
   },
   {
     cog: '99329',
-    codeiso2: 'GH'
+    codeiso2: 'GH',
   },
   {
     cog: '99133',
-    codeiso2: 'GI'
+    codeiso2: 'GI',
   },
   {
     cog: '99430',
-    codeiso2: 'GL'
+    codeiso2: 'GL',
   },
   {
     cog: '99304',
-    codeiso2: 'GM'
+    codeiso2: 'GM',
   },
   {
     cog: '99330',
-    codeiso2: 'GN'
+    codeiso2: 'GN',
   },
   {
     cog: '99314',
-    codeiso2: 'GQ'
+    codeiso2: 'GQ',
   },
   {
     cog: '99126',
-    codeiso2: 'GR'
+    codeiso2: 'GR',
   },
   {
     cog: '99427',
-    codeiso2: 'GS'
+    codeiso2: 'GS',
   },
   {
     cog: '99409',
-    codeiso2: 'GT'
+    codeiso2: 'GT',
   },
   {
     cog: '99505',
-    codeiso2: 'GU'
+    codeiso2: 'GU',
   },
   {
     cog: '99392',
-    codeiso2: 'GW'
+    codeiso2: 'GW',
   },
   {
     cog: '99428',
-    codeiso2: 'GY'
+    codeiso2: 'GY',
   },
   {
     cog: '99230',
-    codeiso2: 'HK'
+    codeiso2: 'HK',
   },
   {
     cog: '99501',
-    codeiso2: 'HM'
+    codeiso2: 'HM',
   },
   {
     cog: '99411',
-    codeiso2: 'HN'
+    codeiso2: 'HN',
   },
   {
     cog: '99119',
-    codeiso2: 'HR'
+    codeiso2: 'HR',
   },
   {
     cog: '99410',
-    codeiso2: 'HT'
+    codeiso2: 'HT',
   },
   {
     cog: '99112',
-    codeiso2: 'HU'
+    codeiso2: 'HU',
   },
   {
     cog: '99231',
-    codeiso2: 'ID'
+    codeiso2: 'ID',
   },
   {
     cog: '99136',
-    codeiso2: 'IE'
+    codeiso2: 'IE',
   },
   {
     cog: '99207',
-    codeiso2: 'IL'
+    codeiso2: 'IL',
   },
   {
     cog: '99132',
-    codeiso2: 'IM'
+    codeiso2: 'IM',
   },
   {
     cog: '99223',
-    codeiso2: 'IN'
+    codeiso2: 'IN',
   },
   {
     cog: '99308',
-    codeiso2: 'IO'
+    codeiso2: 'IO',
   },
   {
     cog: '99203',
-    codeiso2: 'IQ'
+    codeiso2: 'IQ',
   },
   {
     cog: '99204',
-    codeiso2: 'IR'
+    codeiso2: 'IR',
   },
   {
     cog: '99102',
-    codeiso2: 'IS'
+    codeiso2: 'IS',
   },
   {
     cog: '99127',
-    codeiso2: 'IT'
+    codeiso2: 'IT',
   },
   {
     cog: '99132',
-    codeiso2: 'JE'
+    codeiso2: 'JE',
   },
   {
     cog: '99426',
-    codeiso2: 'JM'
+    codeiso2: 'JM',
   },
   {
     cog: '99222',
-    codeiso2: 'JO'
+    codeiso2: 'JO',
   },
   {
     cog: '99217',
-    codeiso2: 'JP'
+    codeiso2: 'JP',
   },
   {
     cog: '99332',
-    codeiso2: 'KE'
+    codeiso2: 'KE',
   },
   {
     cog: '99257',
-    codeiso2: 'KG'
+    codeiso2: 'KG',
   },
   {
     cog: '99234',
-    codeiso2: 'KH'
+    codeiso2: 'KH',
   },
   {
     cog: '99513',
-    codeiso2: 'KI'
+    codeiso2: 'KI',
   },
   {
     cog: '99397',
-    codeiso2: 'KM'
+    codeiso2: 'KM',
   },
   {
     cog: '99442',
-    codeiso2: 'KN'
+    codeiso2: 'KN',
   },
   {
     cog: '99238',
-    codeiso2: 'KP'
+    codeiso2: 'KP',
   },
   {
     cog: '99239',
-    codeiso2: 'KR'
+    codeiso2: 'KR',
   },
   {
     cog: '99240',
-    codeiso2: 'KW'
+    codeiso2: 'KW',
   },
   {
     cog: '99425',
-    codeiso2: 'KY'
+    codeiso2: 'KY',
   },
   {
     cog: '99256',
-    codeiso2: 'KZ'
+    codeiso2: 'KZ',
   },
   {
     cog: '99241',
-    codeiso2: 'LA'
+    codeiso2: 'LA',
   },
   {
     cog: '99205',
-    codeiso2: 'LB'
+    codeiso2: 'LB',
   },
   {
     cog: '99439',
-    codeiso2: 'LC'
+    codeiso2: 'LC',
   },
   {
     cog: '99113',
-    codeiso2: 'LI'
+    codeiso2: 'LI',
   },
   {
     cog: '99235',
-    codeiso2: 'LK'
+    codeiso2: 'LK',
   },
   {
     cog: '99302',
-    codeiso2: 'LR'
+    codeiso2: 'LR',
   },
   {
     cog: '99348',
-    codeiso2: 'LS'
+    codeiso2: 'LS',
   },
   {
     cog: '99108',
-    codeiso2: 'LT'
+    codeiso2: 'LT',
   },
   {
     cog: '99137',
-    codeiso2: 'LU'
+    codeiso2: 'LU',
   },
   {
     cog: '99107',
-    codeiso2: 'LV'
+    codeiso2: 'LV',
   },
   {
     cog: '99316',
-    codeiso2: 'LY'
+    codeiso2: 'LY',
   },
   {
     cog: '99350',
-    codeiso2: 'MA'
+    codeiso2: 'MA',
   },
   {
     cog: '99138',
-    codeiso2: 'MC'
+    codeiso2: 'MC',
   },
   {
     cog: '99151',
-    codeiso2: 'MD'
+    codeiso2: 'MD',
   },
   {
     cog: '99120',
-    codeiso2: 'ME'
+    codeiso2: 'ME',
   },
   {
     cog: '99333',
-    codeiso2: 'MG'
+    codeiso2: 'MG',
   },
   {
     cog: '99515',
-    codeiso2: 'MH'
+    codeiso2: 'MH',
   },
   {
     cog: '99156',
-    codeiso2: 'MK'
+    codeiso2: 'MK',
   },
   {
     cog: '99335',
-    codeiso2: 'ML'
+    codeiso2: 'ML',
   },
   {
     cog: '99224',
-    codeiso2: 'MM'
+    codeiso2: 'MM',
   },
   {
     cog: '99242',
-    codeiso2: 'MN'
+    codeiso2: 'MN',
   },
   {
     cog: '99232',
-    codeiso2: 'MO'
+    codeiso2: 'MO',
   },
   {
     cog: '99505',
-    codeiso2: 'MP'
+    codeiso2: 'MP',
   },
   {
     cog: '99336',
-    codeiso2: 'MR'
+    codeiso2: 'MR',
   },
   {
     cog: '99425',
-    codeiso2: 'MS'
+    codeiso2: 'MS',
   },
   {
     cog: '99144',
-    codeiso2: 'MT'
+    codeiso2: 'MT',
   },
   {
     cog: '99390',
-    codeiso2: 'MU'
+    codeiso2: 'MU',
   },
   {
     cog: '99229',
-    codeiso2: 'MV'
+    codeiso2: 'MV',
   },
   {
     cog: '99334',
-    codeiso2: 'MW'
+    codeiso2: 'MW',
   },
   {
     cog: '99405',
-    codeiso2: 'MX'
+    codeiso2: 'MX',
   },
   {
     cog: '99227',
-    codeiso2: 'MY'
+    codeiso2: 'MY',
   },
   {
     cog: '99393',
-    codeiso2: 'MZ'
+    codeiso2: 'MZ',
   },
   {
     cog: '99311',
-    codeiso2: 'NA'
+    codeiso2: 'NA',
   },
   {
     cog: '99337',
-    codeiso2: 'NE'
+    codeiso2: 'NE',
   },
   {
     cog: '99501',
-    codeiso2: 'NF'
+    codeiso2: 'NF',
   },
   {
     cog: '99338',
-    codeiso2: 'NG'
+    codeiso2: 'NG',
   },
   {
     cog: '99412',
-    codeiso2: 'NI'
+    codeiso2: 'NI',
   },
   {
     cog: '99135',
-    codeiso2: 'NL'
+    codeiso2: 'NL',
   },
   {
     cog: '99103',
-    codeiso2: 'NO'
+    codeiso2: 'NO',
   },
   {
     cog: '99215',
-    codeiso2: 'NP'
+    codeiso2: 'NP',
   },
   {
     cog: '99507',
-    codeiso2: 'NR'
+    codeiso2: 'NR',
   },
   {
     cog: '99502',
-    codeiso2: 'NU'
+    codeiso2: 'NU',
   },
   {
     cog: '99502',
-    codeiso2: 'NZ'
+    codeiso2: 'NZ',
   },
   {
     cog: '99250',
-    codeiso2: 'OM'
+    codeiso2: 'OM',
   },
   {
     cog: '99413',
-    codeiso2: 'PA'
+    codeiso2: 'PA',
   },
   {
     cog: '99422',
-    codeiso2: 'PE'
+    codeiso2: 'PE',
   },
   {
     cog: '99510',
-    codeiso2: 'PG'
+    codeiso2: 'PG',
   },
   {
     cog: '99220',
-    codeiso2: 'PH'
+    codeiso2: 'PH',
   },
   {
     cog: '99213',
-    codeiso2: 'PK'
+    codeiso2: 'PK',
   },
   {
     cog: '99122',
-    codeiso2: 'PL'
+    codeiso2: 'PL',
   },
   {
     cog: '99503',
-    codeiso2: 'PN'
+    codeiso2: 'PN',
   },
   {
     cog: '99432',
-    codeiso2: 'PR'
+    codeiso2: 'PR',
   },
   {
     cog: '99261',
-    codeiso2: 'PS'
+    codeiso2: 'PS',
   },
   {
     cog: '99139',
-    codeiso2: 'PT'
+    codeiso2: 'PT',
   },
   {
     cog: '99517',
-    codeiso2: 'PW'
+    codeiso2: 'PW',
   },
   {
     cog: '99421',
-    codeiso2: 'PY'
+    codeiso2: 'PY',
   },
   {
     cog: '99248',
-    codeiso2: 'QA'
+    codeiso2: 'QA',
   },
   {
     cog: '99114',
-    codeiso2: 'RO'
+    codeiso2: 'RO',
   },
   {
     cog: '99121',
-    codeiso2: 'RS'
+    codeiso2: 'RS',
   },
   {
     cog: '99123',
-    codeiso2: 'RU'
+    codeiso2: 'RU',
   },
   {
     cog: '99340',
-    codeiso2: 'RW'
+    codeiso2: 'RW',
   },
   {
     cog: '99201',
-    codeiso2: 'SA'
+    codeiso2: 'SA',
   },
   {
     cog: '99512',
-    codeiso2: 'SB'
+    codeiso2: 'SB',
   },
   {
     cog: '99398',
-    codeiso2: 'SC'
+    codeiso2: 'SC',
   },
   {
     cog: '99343',
-    codeiso2: 'SD'
+    codeiso2: 'SD',
   },
   {
     cog: '99104',
-    codeiso2: 'SE'
+    codeiso2: 'SE',
   },
   {
     cog: '99226',
-    codeiso2: 'SG'
+    codeiso2: 'SG',
   },
   {
     cog: '99306',
-    codeiso2: 'SH'
+    codeiso2: 'SH',
   },
   {
     cog: '99145',
-    codeiso2: 'SI'
+    codeiso2: 'SI',
   },
   {
     cog: '99103',
-    codeiso2: 'SJ'
+    codeiso2: 'SJ',
   },
   {
     cog: '99117',
-    codeiso2: 'SK'
+    codeiso2: 'SK',
   },
   {
     cog: '99342',
-    codeiso2: 'SL'
+    codeiso2: 'SL',
   },
   {
     cog: '99128',
-    codeiso2: 'SM'
+    codeiso2: 'SM',
   },
   {
     cog: '99341',
-    codeiso2: 'SN'
+    codeiso2: 'SN',
   },
   {
     cog: '99318',
-    codeiso2: 'SO'
+    codeiso2: 'SO',
   },
   {
     cog: '99437',
-    codeiso2: 'SR'
+    codeiso2: 'SR',
   },
   {
     cog: '99349',
-    codeiso2: 'SS'
+    codeiso2: 'SS',
   },
   {
     cog: '99394',
-    codeiso2: 'ST'
+    codeiso2: 'ST',
   },
   {
     cog: '99414',
-    codeiso2: 'SV'
+    codeiso2: 'SV',
   },
   {
     cog: '99445',
-    codeiso2: 'SX'
+    codeiso2: 'SX',
   },
   {
     cog: '99206',
-    codeiso2: 'SY'
+    codeiso2: 'SY',
   },
   {
     cog: '99391',
-    codeiso2: 'SZ'
+    codeiso2: 'SZ',
   },
   {
     cog: '99425',
-    codeiso2: 'TC'
+    codeiso2: 'TC',
   },
   {
     cog: '99344',
-    codeiso2: 'TD'
+    codeiso2: 'TD',
   },
   {
     cog: '99345',
-    codeiso2: 'TG'
+    codeiso2: 'TG',
   },
   {
     cog: '99219',
-    codeiso2: 'TH'
+    codeiso2: 'TH',
   },
   {
     cog: '99259',
-    codeiso2: 'TJ'
+    codeiso2: 'TJ',
   },
   {
     cog: '99502',
-    codeiso2: 'TK'
+    codeiso2: 'TK',
   },
   {
     cog: '99262',
-    codeiso2: 'TL'
+    codeiso2: 'TL',
   },
   {
     cog: '99260',
-    codeiso2: 'TM'
+    codeiso2: 'TM',
   },
   {
     cog: '99351',
-    codeiso2: 'TN'
+    codeiso2: 'TN',
   },
   {
     cog: '99509',
-    codeiso2: 'TO'
+    codeiso2: 'TO',
   },
   {
     cog: '99208',
-    codeiso2: 'TR'
+    codeiso2: 'TR',
   },
   {
     cog: '99433',
-    codeiso2: 'TT'
+    codeiso2: 'TT',
   },
   {
     cog: '99511',
-    codeiso2: 'TV'
+    codeiso2: 'TV',
   },
   {
     cog: '99236',
-    codeiso2: 'TW'
+    codeiso2: 'TW',
   },
   {
     cog: '99309',
-    codeiso2: 'TZ'
+    codeiso2: 'TZ',
   },
   {
     cog: '99155',
-    codeiso2: 'UA'
+    codeiso2: 'UA',
   },
   {
     cog: '99339',
-    codeiso2: 'UG'
+    codeiso2: 'UG',
   },
   {
     cog: '99404',
-    codeiso2: 'US'
+    codeiso2: 'US',
   },
   {
     cog: '99423',
-    codeiso2: 'UY'
+    codeiso2: 'UY',
   },
   {
     cog: '99258',
-    codeiso2: 'UZ'
+    codeiso2: 'UZ',
   },
   {
     cog: '99129',
-    codeiso2: 'VA'
+    codeiso2: 'VA',
   },
   {
     cog: '99440',
-    codeiso2: 'VC'
+    codeiso2: 'VC',
   },
   {
     cog: '99424',
-    codeiso2: 'VE'
+    codeiso2: 'VE',
   },
   {
     cog: '99425',
-    codeiso2: 'VG'
+    codeiso2: 'VG',
   },
   {
     cog: '99432',
-    codeiso2: 'VI'
+    codeiso2: 'VI',
   },
   {
     cog: '99243',
-    codeiso2: 'VN'
+    codeiso2: 'VN',
   },
   {
     cog: '99514',
-    codeiso2: 'VU'
+    codeiso2: 'VU',
   },
   {
     cog: '99506',
-    codeiso2: 'WS'
+    codeiso2: 'WS',
   },
   {
     cog: '99157',
-    codeiso2: 'XK'
+    codeiso2: 'XK',
   },
   {
     cog: '99251',
-    codeiso2: 'YE'
+    codeiso2: 'YE',
   },
   {
     cog: '99303',
-    codeiso2: 'ZA'
+    codeiso2: 'ZA',
   },
   {
     cog: '99346',
-    codeiso2: 'ZM'
+    codeiso2: 'ZM',
   },
   {
     cog: '99310',
-    codeiso2: 'ZW'
-  }
+    codeiso2: 'ZW',
+  },
 ]
diff --git a/packages/api/src/tools/api-insee/definitions/voies.ts b/packages/api/src/tools/api-insee/definitions/voies.ts
index f846aec21..9d9f10094 100644
--- a/packages/api/src/tools/api-insee/definitions/voies.ts
+++ b/packages/api/src/tools/api-insee/definitions/voies.ts
@@ -1,170 +1,170 @@
 export default [
   {
     id: 'ALL',
-    nom: 'Allée'
+    nom: 'Allée',
   },
   {
     id: 'AV',
-    nom: 'Avenue'
+    nom: 'Avenue',
   },
   {
     id: 'BD',
-    nom: 'Boulevard'
+    nom: 'Boulevard',
   },
   {
     id: 'CAR',
-    nom: 'Carrefour'
+    nom: 'Carrefour',
   },
   {
     id: 'CHE',
-    nom: 'Chemin'
+    nom: 'Chemin',
   },
   {
     id: 'CHS',
-    nom: 'Chaussée'
+    nom: 'Chaussée',
   },
   {
     id: 'CITE',
-    nom: 'Cité'
+    nom: 'Cité',
   },
   {
     id: 'COR',
-    nom: 'Corniche'
+    nom: 'Corniche',
   },
   {
     id: 'CRS',
-    nom: 'Cours'
+    nom: 'Cours',
   },
   {
     id: 'DOM',
-    nom: 'Domaine'
+    nom: 'Domaine',
   },
   {
     id: 'DSC',
-    nom: 'Descente'
+    nom: 'Descente',
   },
   {
     id: 'ECA',
-    nom: 'Ecart'
+    nom: 'Ecart',
   },
   {
     id: 'ESP',
-    nom: 'Esplanade'
+    nom: 'Esplanade',
   },
   {
     id: 'FG',
-    nom: 'Faubourg'
+    nom: 'Faubourg',
   },
   {
     id: 'GR',
-    nom: 'Grande Rue'
+    nom: 'Grande Rue',
   },
   {
     id: 'HAM',
-    nom: 'Hameau'
+    nom: 'Hameau',
   },
   {
     id: 'HLE',
-    nom: 'Halle'
+    nom: 'Halle',
   },
   {
     id: 'IMP',
-    nom: 'Impasse'
+    nom: 'Impasse',
   },
   {
     id: 'LD',
-    nom: 'Lieu-dit'
+    nom: 'Lieu-dit',
   },
   {
     id: 'LOT',
-    nom: 'Lotissement'
+    nom: 'Lotissement',
   },
   {
     id: 'MAR',
-    nom: 'Marché'
+    nom: 'Marché',
   },
   {
     id: 'MTE',
-    nom: 'Montée'
+    nom: 'Montée',
   },
   {
     id: 'PAS',
-    nom: 'Passage'
+    nom: 'Passage',
   },
   {
     id: 'PL',
-    nom: 'Place'
+    nom: 'Place',
   },
   {
     id: 'PLN',
-    nom: 'Plaine'
+    nom: 'Plaine',
   },
   {
     id: 'PLT',
-    nom: 'Plateau'
+    nom: 'Plateau',
   },
   {
     id: 'PRO',
-    nom: 'Promenade'
+    nom: 'Promenade',
   },
   {
     id: 'PRV',
-    nom: 'Parvis'
+    nom: 'Parvis',
   },
   {
     id: 'QUA',
-    nom: 'Quartier'
+    nom: 'Quartier',
   },
   {
     id: 'QUAI',
-    nom: 'Quai'
+    nom: 'Quai',
   },
   {
     id: 'RES',
-    nom: 'Résidence'
+    nom: 'Résidence',
   },
   {
     id: 'RLE',
-    nom: 'Ruelle'
+    nom: 'Ruelle',
   },
   {
     id: 'ROC',
-    nom: 'Rocade'
+    nom: 'Rocade',
   },
   {
     id: 'RPT',
-    nom: 'Rond-point'
+    nom: 'Rond-point',
   },
   {
     id: 'RTE',
-    nom: 'Route'
+    nom: 'Route',
   },
   {
     id: 'RUE',
-    nom: 'Rue'
+    nom: 'Rue',
   },
   {
     id: 'SEN',
-    nom: 'Sente - Sentier'
+    nom: 'Sente - Sentier',
   },
   {
     id: 'SQ',
-    nom: 'Square'
+    nom: 'Square',
   },
   {
     id: 'TPL',
-    nom: 'Terre-plein'
+    nom: 'Terre-plein',
   },
   {
     id: 'TRA',
-    nom: 'Traverse'
+    nom: 'Traverse',
   },
   {
     id: 'VLA',
-    nom: 'Villa'
+    nom: 'Villa',
   },
   {
     id: 'VLGE',
-    nom: 'Village'
-  }
+    nom: 'Village',
+  },
 ]
diff --git a/packages/api/src/tools/api-insee/fetch.test.ts b/packages/api/src/tools/api-insee/fetch.test.ts
index c5856b447..591dad3a9 100644
--- a/packages/api/src/tools/api-insee/fetch.test.ts
+++ b/packages/api/src/tools/api-insee/fetch.test.ts
@@ -3,9 +3,7 @@ import { expect, test, vi } from 'vitest'
 import { dateAddDays, toCaminoDate } from 'camino-common/src/date.js'
 
 test('tokenInitialize', async () => {
-  const fetchMocked = vi
-    .fn()
-    .mockImplementation(() => Promise.resolve({ access_token: 'token' }))
+  const fetchMocked = vi.fn().mockImplementation(() => Promise.resolve({ access_token: 'token' }))
   const today = toCaminoDate('2023-01-12')
   const later = dateAddDays(today, 3)
   expect(await tokenInitialize(fetchMocked, today)).toEqual('token')
diff --git a/packages/api/src/tools/api-insee/fetch.ts b/packages/api/src/tools/api-insee/fetch.ts
index c899d013d..6f34b93c4 100644
--- a/packages/api/src/tools/api-insee/fetch.ts
+++ b/packages/api/src/tools/api-insee/fetch.ts
@@ -2,20 +2,10 @@
 
 import fetch from 'node-fetch'
 
-import {
-  IApiSirenQueryTypes,
-  IApiSirenQueryToken,
-  IApiSirenEtablissement,
-  IApiSirenUniteLegale
-} from './types.js'
+import { IApiSirenQueryTypes, IApiSirenQueryToken, IApiSirenEtablissement, IApiSirenUniteLegale } from './types.js'
 
 import errorLog from '../error-log.js'
-import {
-  CaminoDate,
-  dateAddDays,
-  daysBetween,
-  getCurrent
-} from 'camino-common/src/date.js'
+import { CaminoDate, dateAddDays, daysBetween, getCurrent } from 'camino-common/src/date.js'
 
 const MAX_CALLS_MINUTE = 30
 const MAX_RESULTS = 20
@@ -27,19 +17,15 @@ let apiToken: { validUntil: CaminoDate; token: string } | null = null
 const { API_INSEE_URL, API_INSEE_KEY, API_INSEE_SECRET } = process.env
 
 // VisibleForTesting
-export const tokenInitialize = async (
-  tokenFetchCall = tokenFetch,
-  today = getCurrent()
-): Promise<string> => {
-  if (apiToken && daysBetween(apiToken.validUntil, today) < 0)
-    return apiToken.token
+export const tokenInitialize = async (tokenFetchCall = tokenFetch, today = getCurrent()): Promise<string> => {
+  if (apiToken && daysBetween(apiToken.validUntil, today) < 0) return apiToken.token
 
   try {
     const result = await tokenFetchCall()
     if (result) {
       apiToken = {
         validUntil: dateAddDays(today, TOKEN_VALIDITY_IN_DAYS),
-        token: result.access_token
+        token: result.access_token,
       }
     } else {
       throw new Error('pas de token après requête')
@@ -49,11 +35,7 @@ export const tokenInitialize = async (
   } catch (e: any) {
     errorLog(
       "API Insee: impossible de générer le token de l'API INSEE ",
-      (e.header && e.header.message) ||
-        (e.fault && `${e.fault.message}: ${e.fault.description}`) ||
-        (e.error && `${e.error}: ${e.error_description}`) ||
-        e.message ||
-        e
+      (e.header && e.header.message) || (e.fault && `${e.fault.message}: ${e.fault.description}`) || (e.error && `${e.error}: ${e.error_description}`) || e.message || e
     )
 
     throw e
@@ -63,21 +45,12 @@ export const tokenInitialize = async (
 const tokenFetch = async (): Promise<IApiSirenQueryToken | null> => {
   try {
     if (!API_INSEE_URL) {
-      throw new Error(
-        "impossible de se connecter car la variable d'environnement est absente"
-      )
+      throw new Error("impossible de se connecter car la variable d'environnement est absente")
     }
 
-    console.info(
-      `API Insee: récupération du token ${API_INSEE_KEY?.substring(
-        0,
-        5
-      )}...:${API_INSEE_SECRET?.substring(0, 5)}...`
-    )
+    console.info(`API Insee: récupération du token ${API_INSEE_KEY?.substring(0, 5)}...:${API_INSEE_SECRET?.substring(0, 5)}...`)
 
-    const auth = Buffer.from(`${API_INSEE_KEY}:${API_INSEE_SECRET}`).toString(
-      'base64'
-    )
+    const auth = Buffer.from(`${API_INSEE_KEY}:${API_INSEE_SECRET}`).toString('base64')
 
     const response = await fetch(`${API_INSEE_URL}/token`, {
       method: 'POST',
@@ -85,8 +58,8 @@ const tokenFetch = async (): Promise<IApiSirenQueryToken | null> => {
       headers: {
         Accept: 'application/json',
         'Content-Type': 'application/x-www-form-urlencoded',
-        Authorization: `Basic ${auth}`
-      }
+        Authorization: `Basic ${auth}`,
+      },
     })
 
     const result = (await response.json()) as IApiSirenQueryToken
@@ -103,11 +76,7 @@ const tokenFetch = async (): Promise<IApiSirenQueryToken | null> => {
   } catch (e: any) {
     errorLog(
       `API Insee: tokenFetch `,
-      (e.header && e.header.message) ||
-        (e.fault && `${e.fault.message}: ${e.fault.description}`) ||
-        (e.error && `${e.error}: ${e.error_description}`) ||
-        e.message ||
-        e
+      (e.header && e.header.message) || (e.fault && `${e.fault.message}: ${e.fault.description}`) || (e.error && `${e.error}: ${e.error_description}`) || e.message || e
     )
 
     return null
@@ -118,30 +87,22 @@ const typeFetch = async (type: 'siren' | 'siret', q: string) => {
   const token = await tokenInitialize()
   try {
     if (!API_INSEE_URL) {
-      throw new Error(
-        "API Insee: impossible de se connecter car la variable d'environnement est absente"
-      )
+      throw new Error("API Insee: impossible de se connecter car la variable d'environnement est absente")
     }
 
     console.info(`API Insee: requête ${type}, ids: ${q}`)
 
-    const response = await fetch(
-      `${API_INSEE_URL}/entreprises/sirene/V3/${type}/?q=${q}`,
-      {
-        method: 'GET',
-        headers: {
-          Accept: 'application/json',
-          Authorization: `Bearer ${token}`
-        }
-      }
-    )
+    const response = await fetch(`${API_INSEE_URL}/entreprises/sirene/V3/${type}/?q=${q}`, {
+      method: 'GET',
+      headers: {
+        Accept: 'application/json',
+        Authorization: `Bearer ${token}`,
+      },
+    })
 
     const result = (await response.json()) as IApiSirenQueryTypes
 
-    if (
-      response.status >= 400 ||
-      (result.fault && result.fault.code === 900804)
-    ) {
+    if (response.status >= 400 || (result.fault && result.fault.code === 900804)) {
       throw result
     }
 
@@ -151,31 +112,20 @@ const typeFetch = async (type: 'siren' | 'siret', q: string) => {
 
     // attend quelques secondes après chaque appel
     // pour ne pas dépasser les quotas
-    await new Promise(resolve =>
-      setTimeout(resolve, (60 / MAX_CALLS_MINUTE) * 1000)
-    )
+    await new Promise(resolve => setTimeout(resolve, (60 / MAX_CALLS_MINUTE) * 1000))
 
     return result
   } catch (e: any) {
     errorLog(
       `API Insee: typeFetch `,
-      (e.header && e.header.message) ||
-        (e.fault && `${e.fault.message}: ${e.fault.description}`) ||
-        (e.error && `${e.error}: ${e.error_description}`) ||
-        e.message ||
-        e
+      (e.header && e.header.message) || (e.fault && `${e.fault.message}: ${e.fault.description}`) || (e.error && `${e.error}: ${e.error_description}`) || e.message || e
     )
 
     return null
   }
 }
 
-const typeMultiFetch = async (
-  type: 'siren' | 'siret',
-  field: 'etablissements' | 'unitesLegales',
-  ids: string[],
-  q: string
-) => {
+const typeMultiFetch = async (type: 'siren' | 'siret', field: 'etablissements' | 'unitesLegales', ids: string[], q: string) => {
   try {
     const result = await typeFetch(type, q)
 
@@ -183,13 +133,7 @@ const typeMultiFetch = async (
   } catch (e: any) {
     errorLog(
       `API Insee: ${type} get ${ids.join(', ')}`,
-      JSON.stringify(
-        (e.header && e.header.message) ||
-          (e.fault && `${e.fault.message}: ${e.fault.description}`) ||
-          (e.error && `${e.error}: ${e.error_description}`) ||
-          e.message ||
-          e
-      )
+      JSON.stringify((e.header && e.header.message) || (e.fault && `${e.fault.message}: ${e.fault.description}`) || (e.error && `${e.error}: ${e.error_description}`) || e.message || e)
     )
 
     return null
@@ -201,25 +145,17 @@ const batchesBuild = (ids: string[]) => {
 
   const count = Math.ceil(ids.length / MAX_RESULTS)
 
-  return [...new Array(count)].map((e, i) =>
-    ids.slice(i * MAX_RESULTS, (i + 1) * MAX_RESULTS)
-  )
+  return [...new Array(count)].map((e, i) => ids.slice(i * MAX_RESULTS, (i + 1) * MAX_RESULTS))
 }
 
 export const entreprisesEtablissementsFetch = async (ids: string[]) => {
   const batches = batchesBuild(ids)
 
-  const queryFormat = (idsBatch: string[]) =>
-    idsBatch.map(batch => `siren:${batch}`).join(' OR ')
+  const queryFormat = (idsBatch: string[]) => idsBatch.map(batch => `siren:${batch}`).join(' OR ')
 
   const results = []
   for (const batch of batches) {
-    const result = (await typeMultiFetch(
-      'siren',
-      'unitesLegales',
-      batch,
-      queryFormat(batch)
-    )) as IApiSirenUniteLegale[]
+    const result = (await typeMultiFetch('siren', 'unitesLegales', batch, queryFormat(batch))) as IApiSirenUniteLegale[]
     if (result) {
       results.push(...result)
     }
@@ -239,12 +175,7 @@ export const entreprisesFetch = async (ids: string[]) => {
 
   const results = []
   for (const batch of batches) {
-    const result = (await typeMultiFetch(
-      'siret',
-      'etablissements',
-      batch,
-      queryFormat(batch)
-    )) as IApiSirenEtablissement[]
+    const result = (await typeMultiFetch('siret', 'etablissements', batch, queryFormat(batch))) as IApiSirenEtablissement[]
     if (result) {
       results.push(...result)
     }
diff --git a/packages/api/src/tools/api-insee/format.ts b/packages/api/src/tools/api-insee/format.ts
index b2e52ff61..871a51a8c 100644
--- a/packages/api/src/tools/api-insee/format.ts
+++ b/packages/api/src/tools/api-insee/format.ts
@@ -1,10 +1,4 @@
-import {
-  IApiSirenEtablissement,
-  IApiSirenUniteLegalePeriode,
-  IApiSirenUnionUniteLegalePeriodeEtablissmentUnite,
-  IApiSirenUnionUniteLegaleEtablissmentUnite,
-  IApiSirenUniteLegale
-} from './types.js'
+import { IApiSirenEtablissement, IApiSirenUniteLegalePeriode, IApiSirenUnionUniteLegalePeriodeEtablissmentUnite, IApiSirenUnionUniteLegaleEtablissmentUnite, IApiSirenUniteLegale } from './types.js'
 import { IEntrepriseEtablissement, IEntreprise } from '../../types.js'
 
 import inseePays from './definitions/pays.js'
@@ -14,28 +8,15 @@ import inseeTypesVoies from './definitions/voies.js'
 import { checkCodePostal } from 'camino-common/src/static/departement.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 
-interface IApiSirenNomFormat
-  extends IApiSirenUnionUniteLegalePeriodeEtablissmentUnite,
-    IApiSirenUnionUniteLegaleEtablissmentUnite {}
+interface IApiSirenNomFormat extends IApiSirenUnionUniteLegalePeriodeEtablissmentUnite, IApiSirenUnionUniteLegaleEtablissmentUnite {}
 
-const nomIndividuFormat = (
-  nomUniteLegale: string,
-  prenomUsuelUniteLegale?: string | null,
-  sexeUniteLegale?: 'F' | 'M' | null
-) =>
-  `${sexeUniteLegale === 'F' ? 'MADAME' : 'MONSIEUR'} ${
-    prenomUsuelUniteLegale || ''
-  } ${nomUniteLegale}`
-
-const nomEntrepriseFormat = (
-  denominationUniteLegale?: string | null,
-  denominationUsuelle1UniteLegale?: string | null,
-  sigleUniteLegale?: string | null
-) => {
+const nomIndividuFormat = (nomUniteLegale: string, prenomUsuelUniteLegale?: string | null, sexeUniteLegale?: 'F' | 'M' | null) =>
+  `${sexeUniteLegale === 'F' ? 'MADAME' : 'MONSIEUR'} ${prenomUsuelUniteLegale || ''} ${nomUniteLegale}`
+
+const nomEntrepriseFormat = (denominationUniteLegale?: string | null, denominationUsuelle1UniteLegale?: string | null, sigleUniteLegale?: string | null) => {
   const denomination = denominationUniteLegale && denominationUniteLegale.trim()
 
-  const denominationUsuelle =
-    denominationUsuelle1UniteLegale && denominationUsuelle1UniteLegale.trim()
+  const denominationUsuelle = denominationUsuelle1UniteLegale && denominationUsuelle1UniteLegale.trim()
 
   const sigle = sigleUniteLegale && sigleUniteLegale.trim()
 
@@ -59,36 +40,14 @@ const nomEntrepriseFormat = (
 }
 
 const nomFormat = (
-  {
-    denominationUniteLegale,
-    denominationUsuelle1UniteLegale,
-    nomUniteLegale,
-    prenomUsuelUniteLegale,
-    sexeUniteLegale,
-    sigleUniteLegale
-  }: Partial<IApiSirenNomFormat>,
+  { denominationUniteLegale, denominationUsuelle1UniteLegale, nomUniteLegale, prenomUsuelUniteLegale, sexeUniteLegale, sigleUniteLegale }: Partial<IApiSirenNomFormat>,
   nomEntrepriseUsuel?: boolean
 ) =>
-  (nomUniteLegale &&
-  (!nomEntrepriseUsuel ||
-    (!denominationUniteLegale &&
-      !denominationUsuelle1UniteLegale &&
-      !sigleUniteLegale))
-    ? nomIndividuFormat(
-        nomUniteLegale!,
-        prenomUsuelUniteLegale,
-        sexeUniteLegale
-      )
-    : nomEntrepriseFormat(
-        denominationUniteLegale,
-        denominationUsuelle1UniteLegale,
-        sigleUniteLegale
-      )) || 'Indéfini'
-
-const entrepriseEtablissementFormat = (
-  uniteLegale: IApiSirenUniteLegale,
-  uniteLegalePeriode: IApiSirenUniteLegalePeriode
-) => {
+  (nomUniteLegale && (!nomEntrepriseUsuel || (!denominationUniteLegale && !denominationUsuelle1UniteLegale && !sigleUniteLegale))
+    ? nomIndividuFormat(nomUniteLegale!, prenomUsuelUniteLegale, sexeUniteLegale)
+    : nomEntrepriseFormat(denominationUniteLegale, denominationUsuelle1UniteLegale, sigleUniteLegale)) || 'Indéfini'
+
+const entrepriseEtablissementFormat = (uniteLegale: IApiSirenUniteLegale, uniteLegalePeriode: IApiSirenUniteLegalePeriode) => {
   const entrepriseId = `fr-${uniteLegale.siren}`
   const nic = uniteLegalePeriode.nicSiegeUniteLegale || 'xxxxx'
   const dateDebut = toCaminoDate(uniteLegalePeriode.dateDebut)
@@ -100,7 +59,7 @@ const entrepriseEtablissementFormat = (
     entrepriseId,
     nom,
     dateDebut,
-    legalSiret
+    legalSiret,
   } as IEntrepriseEtablissement
 
   if (uniteLegalePeriode.dateFin) {
@@ -110,36 +69,24 @@ const entrepriseEtablissementFormat = (
   return etablissement
 }
 
-export const entrepriseEtablissementsFormat = (
-  uniteLegale: IApiSirenUniteLegale
-) => {
+export const entrepriseEtablissementsFormat = (uniteLegale: IApiSirenUniteLegale) => {
   // periodesUniteLegale est un tableau
   // classé par ordre de fin chronologique décroissant
-  if (
-    !uniteLegale.periodesUniteLegale ||
-    !uniteLegale.periodesUniteLegale.length
-  ) {
+  if (!uniteLegale.periodesUniteLegale || !uniteLegale.periodesUniteLegale.length) {
     return []
   }
 
-  const entrepriseEtablissements = uniteLegale.periodesUniteLegale.map(
-    uniteLegalePeriode =>
-      entrepriseEtablissementFormat(uniteLegale, uniteLegalePeriode)
-  )
+  const entrepriseEtablissements = uniteLegale.periodesUniteLegale.map(uniteLegalePeriode => entrepriseEtablissementFormat(uniteLegale, uniteLegalePeriode))
 
   return entrepriseEtablissements
 }
 
-export const entrepriseFormat = ({
-  uniteLegale,
-  adresseEtablissement: adresse,
-  siren
-}: IApiSirenEtablissement) => {
+export const entrepriseFormat = ({ uniteLegale, adresseEtablissement: adresse, siren }: IApiSirenEtablissement) => {
   const id = `fr-${siren}`
 
   const entreprise = {
     id,
-    legalSiren: siren
+    legalSiren: siren,
   } as IEntreprise
 
   const nom = nomFormat(uniteLegale, true)
@@ -166,9 +113,7 @@ export const entrepriseFormat = ({
   }
 
   if (adresse.typeVoieEtablissement) {
-    const typeVoie = inseeTypesVoies.find(
-      t => t.id === adresse.typeVoieEtablissement
-    )
+    const typeVoie = inseeTypesVoies.find(t => t.id === adresse.typeVoieEtablissement)
     if (typeVoie) {
       entreprise.adresse += `${typeVoie.nom} `
     }
@@ -186,43 +131,31 @@ export const entrepriseFormat = ({
     try {
       entreprise.codePostal = checkCodePostal(adresse.codePostalEtablissement)
     } catch (e) {
-      console.warn(
-        `erreur lors du formatage de l'entreprise '${entreprise.id}', ${e}`
-      )
+      console.warn(`erreur lors du formatage de l'entreprise '${entreprise.id}', ${e}`)
     }
   }
 
-  const commune =
-    adresse.libelleCommuneEtablissement ||
-    adresse.libelleCommuneEtrangerEtablissement
+  const commune = adresse.libelleCommuneEtablissement || adresse.libelleCommuneEtrangerEtablissement
 
   if (commune) {
     entreprise.commune = commune
   }
 
   if (uniteLegale.categorieJuridiqueUniteLegale) {
-    const categorie = inseeCategoriesJuridiques.find(
-      c => c.code === uniteLegale.categorieJuridiqueUniteLegale
-    )
+    const categorie = inseeCategoriesJuridiques.find(c => c.code === uniteLegale.categorieJuridiqueUniteLegale)
     if (categorie) {
       entreprise.legalForme = categorie.nom
     } else {
-      console.error(
-        `API Insee: catégorie juridique introuvable : ${uniteLegale.categorieJuridiqueUniteLegale}`
-      )
+      console.error(`API Insee: catégorie juridique introuvable : ${uniteLegale.categorieJuridiqueUniteLegale}`)
     }
   }
 
   if (adresse.codePaysEtrangerEtablissement) {
-    const pays = inseePays.find(
-      p => p.cog === adresse.codePaysEtrangerEtablissement
-    )
+    const pays = inseePays.find(p => p.cog === adresse.codePaysEtrangerEtablissement)
     if (pays) {
       entreprise.paysId = pays.codeiso2
     } else {
-      console.error(
-        `API Insee: code pays introuvable: ${adresse.codePaysEtrangerEtablissement}`
-      )
+      console.error(`API Insee: code pays introuvable: ${adresse.codePaysEtrangerEtablissement}`)
     }
   } else {
     entreprise.paysId = 'FR'
diff --git a/packages/api/src/tools/api-insee/index.ts b/packages/api/src/tools/api-insee/index.ts
index f40b14f67..dd5a92ab0 100644
--- a/packages/api/src/tools/api-insee/index.ts
+++ b/packages/api/src/tools/api-insee/index.ts
@@ -4,9 +4,7 @@ import { IEntreprise, IEntrepriseEtablissement } from '../../types.js'
 
 // cherche les établissements des entreprises
 // retourne des objets du modèle EntrepriseEtablissements
-export const apiInseeEntreprisesEtablissementsGet = async (
-  sirenIds: string[]
-) => {
+export const apiInseeEntreprisesEtablissementsGet = async (sirenIds: string[]) => {
   if (!sirenIds.length) return []
 
   const entreprises = await entreprisesEtablissementsFetch(sirenIds)
@@ -40,9 +38,7 @@ export const apiInseeEntreprisesGet = async (sirenIds: string[]) => {
   }, [])
 }
 
-export const apiInseeEntrepriseAndEtablissementsGet = async (
-  sirenId: string
-) => {
+export const apiInseeEntrepriseAndEtablissementsGet = async (sirenId: string) => {
   const entreprises = await apiInseeEntreprisesGet([sirenId])
   if (!entreprises) {
     throw new Error('API Insee: erreur')
@@ -51,9 +47,7 @@ export const apiInseeEntrepriseAndEtablissementsGet = async (
   const [entreprise] = entreprises
   if (!entreprise) return null
 
-  entreprise.etablissements = await apiInseeEntreprisesEtablissementsGet([
-    sirenId
-  ])
+  entreprise.etablissements = await apiInseeEntreprisesEtablissementsGet([sirenId])
 
   return entreprise
 }
diff --git a/packages/api/src/tools/api-insee/types.ts b/packages/api/src/tools/api-insee/types.ts
index 89e6ad74e..c99eeaaa6 100644
--- a/packages/api/src/tools/api-insee/types.ts
+++ b/packages/api/src/tools/api-insee/types.ts
@@ -1,5 +1,4 @@
-export interface IApiSirenUniteLegalePeriode
-  extends IApiSirenUnionUniteLegalePeriodeEtablissmentUnite {
+export interface IApiSirenUniteLegalePeriode extends IApiSirenUnionUniteLegalePeriodeEtablissmentUnite {
   dateDebut: Date
   dateFin: Date
 }
@@ -17,9 +16,7 @@ export interface IApiSirenUnionUniteLegaleEtablissmentUnite {
   sigleUniteLegale: string | null
 }
 
-export interface IApiSirenEtablissementUnite
-  extends IApiSirenUnionUniteLegalePeriodeEtablissmentUnite,
-    IApiSirenUnionUniteLegaleEtablissmentUnite {
+export interface IApiSirenEtablissementUnite extends IApiSirenUnionUniteLegalePeriodeEtablissmentUnite, IApiSirenUnionUniteLegaleEtablissmentUnite {
   categorieEntreprise: string
   categorieJuridiqueUniteLegale: string
   dateCreationUniteLegale: Date | null
@@ -43,8 +40,7 @@ export interface IApiSirenEtablissement {
   uniteLegale: IApiSirenEtablissementUnite
 }
 
-export interface IApiSirenUniteLegale
-  extends IApiSirenUnionUniteLegaleEtablissmentUnite {
+export interface IApiSirenUniteLegale extends IApiSirenUnionUniteLegaleEtablissmentUnite {
   siren: string
   periodesUniteLegale: IApiSirenUniteLegalePeriode[]
 }
diff --git a/packages/api/src/tools/api-mailjet/emails.ts b/packages/api/src/tools/api-mailjet/emails.ts
index 98380886a..2bdd29ee8 100644
--- a/packages/api/src/tools/api-mailjet/emails.ts
+++ b/packages/api/src/tools/api-mailjet/emails.ts
@@ -6,13 +6,10 @@ import { EmailTemplateId } from './types.js'
 
 const from = {
   email: process.env.API_MAILJET_EMAIL,
-  name: 'Camino - le cadastre minier'
+  name: 'Camino - le cadastre minier',
 }
 
-export const mailjetSend = async (
-  emails: string[],
-  options: Record<string, any>
-) => {
+export const mailjetSend = async (emails: string[], options: Record<string, any>) => {
   try {
     if (!Array.isArray(emails)) {
       throw new Error(`un tableau d'emails est attendu ${emails}`)
@@ -37,54 +34,40 @@ export const mailjetSend = async (
           FromEmail: from.email,
           FromName: from.name,
           Recipients: emails.map(Email => ({ Email })),
-          ...options
-        }
-      ]
+          ...options,
+        },
+      ],
     })) as {
       body: {
         Sent: { Email: string; MessageID: string; MessageUUID: string }[]
       }
     }
 
-    console.info(
-      `Messages envoyés: ${emails.join(', ')}, MessageIDs: ${res.body.Sent.map(
-        m => m.MessageID
-      ).join(', ')}`
-    )
+    console.info(`Messages envoyés: ${emails.join(', ')}, MessageIDs: ${res.body.Sent.map(m => m.MessageID).join(', ')}`)
   } catch (e: any) {
     console.error('erreur: emailsSend', e)
     throw new Error(e)
   }
 }
 
-export const emailsSend = async (
-  emails: string[],
-  subject: string,
-  html: string
-) => {
+export const emailsSend = async (emails: string[], subject: string, html: string) => {
   if (process.env.NODE_ENV !== 'production' || process.env.ENV !== 'prod') {
-    html = `<p style="color: red">destinataire(s): ${emails.join(
-      ', '
-    )} | env: ${process.env.ENV} | node: ${process.env.NODE_ENV}</p> ${html}`
+    html = `<p style="color: red">destinataire(s): ${emails.join(', ')} | env: ${process.env.ENV} | node: ${process.env.NODE_ENV}</p> ${html}`
   }
 
   mailjetSend(emails, {
     Subject: `[Camino] ${subject}`,
     'Html-part': html,
     'Text-part': convert(html, {
-      wordwrap: 130
-    })
+      wordwrap: 130,
+    }),
   })
 }
 
-export const emailsWithTemplateSend = async (
-  emails: string[],
-  templateId: EmailTemplateId,
-  params: Record<string, string>
-) => {
+export const emailsWithTemplateSend = async (emails: string[], templateId: EmailTemplateId, params: Record<string, string>) => {
   mailjetSend(emails, {
     'Mj-TemplateID': templateId,
     'Mj-TemplateLanguage': true,
-    Vars: params
+    Vars: params,
   })
 }
diff --git a/packages/api/src/tools/api-mailjet/index.ts b/packages/api/src/tools/api-mailjet/index.ts
index c97e0f0dd..3c6060faf 100644
--- a/packages/api/src/tools/api-mailjet/index.ts
+++ b/packages/api/src/tools/api-mailjet/index.ts
@@ -3,5 +3,5 @@ import Mailjet from 'node-mailjet'
 // eslint-disable-next-line new-cap
 export const mailjet = new Mailjet({
   apiKey: process.env.API_MAILJET_KEY || 'fakeKey',
-  apiSecret: process.env.API_MAILJET_SECRET || 'fakeSecret'
+  apiSecret: process.env.API_MAILJET_SECRET || 'fakeSecret',
 })
diff --git a/packages/api/src/tools/api-mailjet/newsletter.ts b/packages/api/src/tools/api-mailjet/newsletter.ts
index dc1b31802..e1b3dae5e 100644
--- a/packages/api/src/tools/api-mailjet/newsletter.ts
+++ b/packages/api/src/tools/api-mailjet/newsletter.ts
@@ -5,35 +5,24 @@ interface IContactListAdd {
   Action: string
 }
 
-const newsLetterContactListId = Number(
-  process.env.API_MAILJET_CONTACTS_LIST_ID!
-)
-const exploitantsGuyaneContactListId = Number(
-  process.env.API_MAILJET_EXPLOITANTS_GUYANE_LIST_ID!
-)
+const newsLetterContactListId = Number(process.env.API_MAILJET_CONTACTS_LIST_ID!)
+const exploitantsGuyaneContactListId = Number(process.env.API_MAILJET_EXPLOITANTS_GUYANE_LIST_ID!)
 
-export const isSubscribedToNewsLetter = async (
-  email: string | null | undefined
-): Promise<boolean> => {
+export const isSubscribedToNewsLetter = async (email: string | null | undefined): Promise<boolean> => {
   return isSubscribed(newsLetterContactListId, email)
 }
 
-const isSubscribed = async (
-  contactListId: number,
-  email: string | null | undefined
-): Promise<boolean> => {
+const isSubscribed = async (contactListId: number, email: string | null | undefined): Promise<boolean> => {
   if (email) {
-    const recipientsResult = await mailjet
-      .get('listrecipient', { version: 'v3' })
-      .request(
-        {},
-        {
-          ContactEmail: email,
-          ContactsList: contactListId,
-          Unsub: false,
-          countOnly: true
-        }
-      )
+    const recipientsResult = await mailjet.get('listrecipient', { version: 'v3' }).request(
+      {},
+      {
+        ContactEmail: email,
+        ContactsList: contactListId,
+        Unsub: false,
+        countOnly: true,
+      }
+    )
 
     // TODO 2022-08-30 en attente d'un meilleur typage https://github.com/mailjet/mailjet-apiv3-nodejs/issues/217
     return (recipientsResult.body as { Count: number }).Count > 0
@@ -42,17 +31,13 @@ const isSubscribed = async (
   return false
 }
 
-const contactListSubscribe = async (
-  email: string,
-  contactListId: number,
-  Action: 'addforce' | 'unsub'
-) => {
+const contactListSubscribe = async (email: string, contactListId: number, Action: 'addforce' | 'unsub') => {
   const contactResult = (await mailjet
     .post('contact', { version: 'v3' })
     .id(encodeURIComponent(email))
     .action('managecontactslists')
     .request({
-      ContactsLists: [{ Action, ListID: contactListId }]
+      ContactsLists: [{ Action, ListID: contactListId }],
     })) as { body: { Data: IContactListAdd[] } }
 
   const contactListAdded = contactResult.body.Data[0]
@@ -73,33 +58,24 @@ const contactAdd = async (email: string): Promise<void> => {
 }
 
 // TODO 2022-09-27 nettoyer la liste des mails déjà sur la liste mailjet.
-export const exploitantsGuyaneSubscriberUpdate = async (
-  users: { email: string; nom: string }[]
-): Promise<void> => {
-  console.info(
-    `ajout de ${users.length} utilisateurs à la liste ${exploitantsGuyaneContactListId}`
-  )
+export const exploitantsGuyaneSubscriberUpdate = async (users: { email: string; nom: string }[]): Promise<void> => {
+  console.info(`ajout de ${users.length} utilisateurs à la liste ${exploitantsGuyaneContactListId}`)
   const contacts = users.map(user => ({
     Email: user.email,
     Name: user.nom,
     IsExcludedFromCampaigns: false,
-    Properties: 'object'
+    Properties: 'object',
   }))
   await mailjet
     .post('contact', { version: 'v3' })
     .action('managemanycontacts')
     .request({
       Contacts: contacts,
-      ContactsLists: [
-        { Action: 'addforce', ListID: exploitantsGuyaneContactListId }
-      ]
+      ContactsLists: [{ Action: 'addforce', ListID: exploitantsGuyaneContactListId }],
     })
 }
 
-export const newsletterSubscriberUpdate = async (
-  email: string | undefined | null,
-  subscribed: boolean
-): Promise<string> => {
+export const newsletterSubscriberUpdate = async (email: string | undefined | null, subscribed: boolean): Promise<string> => {
   if (!email) {
     return ''
   }
@@ -116,10 +92,7 @@ export const newsletterSubscriberUpdate = async (
       return 'email désinscrit à la newsletter'
     }
   } catch (e: any) {
-    console.error(
-      'une erreur est apparue lors de la communication avec mailjet',
-      e
-    )
+    console.error('une erreur est apparue lors de la communication avec mailjet', e)
     throw new Error(e)
   }
 }
diff --git a/packages/api/src/tools/api-mailjet/types.ts b/packages/api/src/tools/api-mailjet/types.ts
index a4b4f966d..367a43365 100644
--- a/packages/api/src/tools/api-mailjet/types.ts
+++ b/packages/api/src/tools/api-mailjet/types.ts
@@ -1,11 +1,11 @@
 export enum EmailTemplateId {
   DEMARCHE_CONFIRMATION_DEPOT = 3413770,
   ACTIVITES_NOUVELLES = 3794302,
-  ACTIVITES_RELANCE = 3785214
+  ACTIVITES_RELANCE = 3785214,
 }
 
 export const EmailAdministration = {
   ONF: 'pole.minier@onf.fr',
   PTMG: 'ptmg@ctguyane.fr',
-  DGTM: 'mc.remd.deal-guyane@developpement-durable.gouv.fr'
+  DGTM: 'mc.remd.deal-guyane@developpement-durable.gouv.fr',
 } as const
diff --git a/packages/api/src/tools/api-matomo/index.ts b/packages/api/src/tools/api-matomo/index.ts
index d323c1817..1150a6d9c 100644
--- a/packages/api/src/tools/api-matomo/index.ts
+++ b/packages/api/src/tools/api-matomo/index.ts
@@ -29,23 +29,14 @@ interface IMatomoResult {
   }
 }
 
-type IMatomoCache = Pick<
-  Statistiques,
-  | 'recherches'
-  | 'titresModifies'
-  | 'actions'
-  | 'sessionDuree'
-  | 'telechargements'
-  | 'signalements'
-  | 'reutilisations'
->
+type IMatomoCache = Pick<Statistiques, 'recherches' | 'titresModifies' | 'actions' | 'sessionDuree' | 'telechargements' | 'signalements' | 'reutilisations'>
 
 const matomoMainDataGet = async (duree: number) => {
   // Datas de la page 'Récapitulatif' des visites dans matomo
   // url
   const pathVisit = getPath('API.get', 'month', {
     date: `previous${duree}`,
-    format_metrics: 1
+    format_metrics: 1,
   })
 
   // Matomo retourne un objet dont
@@ -56,8 +47,7 @@ const matomoMainDataGet = async (duree: number) => {
   // avg_time_on_site : temps de session moyen (string)
   // nb_downloads : nombre de téléchargements
   const response = await fetch(pathVisit)
-  const matomoVisitData: IMatomoResult =
-    (await response.json()) as IMatomoResult
+  const matomoVisitData: IMatomoResult = (await response.json()) as IMatomoResult
 
   // Les clés de l’objet sont les mois { "2020-09": ...,}
   const monthsArray = Object.keys(matomoVisitData)
@@ -66,7 +56,7 @@ const matomoMainDataGet = async (duree: number) => {
   const recherches = monthsArray.map(key => {
     return {
       mois: key,
-      quantite: matomoVisitData[key].nb_searches || 0
+      quantite: matomoVisitData[key].nb_searches || 0,
     }
   })
 
@@ -74,15 +64,11 @@ const matomoMainDataGet = async (duree: number) => {
   const dataCurrent = matomoVisitData[monthsArray[monthsArray.length - 1]]
 
   // nombre d'action du dernier mois
-  const actions = dataCurrent.nb_actions_per_visit
-    ? dataCurrent.nb_actions_per_visit
-    : 0
+  const actions = dataCurrent.nb_actions_per_visit ? dataCurrent.nb_actions_per_visit : 0
   // temps de session du dernier mois
   const sessionDuree = timeFormat(dataCurrent.avg_time_on_site)
   // nombre de téléchargements du dernier mois
-  const telechargements = dataCurrent.nb_downloads
-    ? dataCurrent.nb_downloads
-    : 0
+  const telechargements = dataCurrent.nb_downloads ? dataCurrent.nb_downloads : 0
 
   return { recherches, actions, sessionDuree, telechargements }
 }
@@ -94,12 +80,11 @@ const nbEventsByLabelGet = async (label: string): Promise<number> => {
   // ces évenements ont débuté à partir de 2020
   const pathVisit = getPath('Events.getAction', 'range', {
     date: `2020-01-01,${tomorrowDate.toISOString().slice(0, 10)}`,
-    label
+    label,
   })
 
   const response = await fetch(pathVisit)
-  const matomoVisitData: IMatomoSectionData[] =
-    (await response.json()) as IMatomoSectionData[]
+  const matomoVisitData: IMatomoSectionData[] = (await response.json()) as IMatomoSectionData[]
 
   return matomoVisitData.length > 0 ? matomoVisitData[0].nb_events : 0
 }
@@ -118,10 +103,7 @@ const reutilisationsCountGet = async () => {
   return 6 + nbEvents
 }
 
-const nbEventsBySectionGet = (
-  monthData: IMatomoSectionData,
-  month: string
-): number => {
+const nbEventsBySectionGet = (monthData: IMatomoSectionData, month: string): number => {
   // Datas des évènements, catégorie 'titres-sections', actions:
   // titre-editer
   // titre-demarche_ajouter
@@ -145,7 +127,7 @@ const nbEventsBySectionGet = (
     'titre-etape_ajouter',
     'titre-etape_editer',
     'titre-etape_supprimer',
-    'titre-etape-doc_ajouter'
+    'titre-etape-doc_ajouter',
   ]
 
   //                           titre-                      |  commence par : titre-
@@ -184,34 +166,31 @@ const nbEventsBySectionGet = (
 }
 const titresModifiesCountGet = async (duree: number) => {
   const pathVisit = getPath('Events.getCategory', 'month', {
-    date: `previous${duree}`
+    date: `previous${duree}`,
   })
   const response = await fetch(pathVisit)
   const matomoVisitData: any = await response.json()
 
   // Retourne un tableau par mois
-  return Object.keys(matomoVisitData).reduce(
-    (acc: { mois: string; quantite: number }[], month) => {
-      const monthDataArray = matomoVisitData[month] as IMatomoSectionData[]
+  return Object.keys(matomoVisitData).reduce((acc: { mois: string; quantite: number }[], month) => {
+    const monthDataArray = matomoVisitData[month] as IMatomoSectionData[]
 
-      if (!monthDataArray) {
-        acc.push({ mois: month, quantite: 0 })
+    if (!monthDataArray) {
+      acc.push({ mois: month, quantite: 0 })
 
-        return acc
-      }
+      return acc
+    }
 
-      const nbEvents = monthDataArray.reduce((nbEventsByMonth, monthData) => {
-        const nbEventsBySection = nbEventsBySectionGet(monthData, month)
+    const nbEvents = monthDataArray.reduce((nbEventsByMonth, monthData) => {
+      const nbEventsBySection = nbEventsBySectionGet(monthData, month)
 
-        return nbEventsByMonth + nbEventsBySection
-      }, 0)
+      return nbEventsByMonth + nbEventsBySection
+    }, 0)
 
-      acc.push({ mois: month, quantite: nbEvents })
+    acc.push({ mois: month, quantite: nbEvents })
 
-      return acc
-    },
-    []
-  )
+    return acc
+  }, [])
 }
 
 export const matomoCacheInit = async () => {
@@ -221,14 +200,8 @@ export const matomoCacheInit = async () => {
   // nombre de mois pour lesquels on souhaite des stats
   const duree = 12
 
-  const matomoResults = await Promise.all([
-    matomoMainDataGet(duree),
-    erreursSignaleesCountGet(),
-    reutilisationsCountGet(),
-    titresModifiesCountGet(duree)
-  ])
-  const { recherches, actions, sessionDuree, telechargements } =
-    matomoResults[0]
+  const matomoResults = await Promise.all([matomoMainDataGet(duree), erreursSignaleesCountGet(), reutilisationsCountGet(), titresModifiesCountGet(duree)])
+  const { recherches, actions, sessionDuree, telechargements } = matomoResults[0]
 
   // nombre d'erreurs signalées
   const signalements = matomoResults[1]
@@ -245,12 +218,12 @@ export const matomoCacheInit = async () => {
     sessionDuree,
     telechargements,
     signalements,
-    reutilisations
+    reutilisations,
   }
 
   await cacheUpsert({
     id: 'matomo',
-    valeur: matomoCacheValue
+    valeur: matomoCacheValue,
   })
 
   return matomoCacheValue
@@ -271,22 +244,11 @@ export const timeFormat = (time: string) => {
   // sinon, ne garder que les minutes
   const index = time.search('min')
 
-  return index === -1
-    ? 0
-    : Number.parseInt(time.substring(0, index).replace(' ', ''), 10)
+  return index === -1 ? 0 : Number.parseInt(time.substring(0, index).replace(' ', ''), 10)
 }
 
-const getPath = (
-  method: string,
-  period: string,
-  params?: { [param: string]: string | number }
-) => {
-  const _params = params
-    ? Object.entries(params).reduce(
-        (acc, param) => (acc = `${acc}&${param[0]}=${param[1]}`),
-        ''
-      )
-    : ''
+const getPath = (method: string, period: string, params?: { [param: string]: string | number }) => {
+  const _params = params ? Object.entries(params).reduce((acc, param) => (acc = `${acc}&${param[0]}=${param[1]}`), '') : ''
 
   return `${process.env.API_MATOMO_URL}/index.php?expanded=1${_params}&filter_limit=-1&format=JSON&idSite=${process.env.API_MATOMO_ID}&method=${method}&module=API&period=${period}&token_auth=${process.env.API_MATOMO_TOKEN}`
 }
diff --git a/packages/api/src/tools/api-openfisca/index.ts b/packages/api/src/tools/api-openfisca/index.ts
index 89b350c45..61c05de1e 100644
--- a/packages/api/src/tools/api-openfisca/index.ts
+++ b/packages/api/src/tools/api-openfisca/index.ts
@@ -1,55 +1,31 @@
 import fetch, { Response } from 'node-fetch'
-import {
-  SubstanceFiscale,
-  SubstanceFiscaleId,
-  SubstancesFiscales
-} from 'camino-common/src/static/substancesFiscales.js'
+import { SubstanceFiscale, SubstanceFiscaleId, SubstancesFiscales } from 'camino-common/src/static/substancesFiscales.js'
 import { Unite, Unites } from 'camino-common/src/static/unites.js'
-type Attribute =
-  | 'surface_communale'
-  | 'surface_communale_proportionnee'
-  | 'taxe_guyane_brute'
-  | 'taxe_guyane_deduction'
-  | 'taxe_guyane'
-  | string
-
-export const openfiscaSubstanceFiscaleNom = (
-  substanceFiscale: SubstanceFiscale
-): string => substanceFiscale.openFisca?.nom ?? substanceFiscale.nom
-export const openfiscaSubstanceFiscaleUnite = (
-  substanceFiscale: SubstanceFiscale
-): Unite => {
-  const unite = substanceFiscale.openFisca?.unite
-    ? Unites[substanceFiscale.openFisca.unite]
-    : Unites[substanceFiscale.uniteId]
+type Attribute = 'surface_communale' | 'surface_communale_proportionnee' | 'taxe_guyane_brute' | 'taxe_guyane_deduction' | 'taxe_guyane' | string
+
+export const openfiscaSubstanceFiscaleNom = (substanceFiscale: SubstanceFiscale): string => substanceFiscale.openFisca?.nom ?? substanceFiscale.nom
+export const openfiscaSubstanceFiscaleUnite = (substanceFiscale: SubstanceFiscale): Unite => {
+  const unite = substanceFiscale.openFisca?.unite ? Unites[substanceFiscale.openFisca.unite] : Unites[substanceFiscale.uniteId]
   if (!unite.openfiscaId) {
-    throw new Error(
-      `l'unité ${unite.id} pour la substance ${substanceFiscale.id} n'est pas connue par openFisca`
-    )
+    throw new Error(`l'unité ${unite.id} pour la substance ${substanceFiscale.id} n'est pas connue par openFisca`)
   }
 
   return unite
 }
 
-export const substanceFiscaleToInput = (
-  substanceFiscale: SubstanceFiscale
-): string => {
+export const substanceFiscaleToInput = (substanceFiscale: SubstanceFiscale): string => {
   const nom = openfiscaSubstanceFiscaleNom(substanceFiscale)
   const unite = openfiscaSubstanceFiscaleUnite(substanceFiscale)
 
   return `quantite_${nom}_${unite.openfiscaId}`
 }
 
-export const redevanceCommunale = (
-  substanceFiscale: SubstanceFiscale
-): string => {
+export const redevanceCommunale = (substanceFiscale: SubstanceFiscale): string => {
   const nom = openfiscaSubstanceFiscaleNom(substanceFiscale)
 
   return `redevance_communale_des_mines_${nom}`
 }
-export const redevanceDepartementale = (
-  substanceFiscale: SubstanceFiscale
-): string => {
+export const redevanceDepartementale = (substanceFiscale: SubstanceFiscale): string => {
   const nom = openfiscaSubstanceFiscaleNom(substanceFiscale)
 
   return `redevance_departementale_des_mines_${nom}`
@@ -65,9 +41,7 @@ export interface OpenfiscaRequest extends OpenfiscaCommon {
 
 export interface OpenfiscaResponse extends OpenfiscaCommon {
   articles: {
-    [titreId_substance_commune: string]: Partial<
-      Record<Attribute, { [annee: string]: number }>
-    >
+    [titreId_substance_commune: string]: Partial<Record<Attribute, { [annee: string]: number }>>
   }
 }
 
@@ -99,24 +73,17 @@ interface OpenfiscaCommon {
   }
 }
 
-export type OpenfiscaTarifs = Record<
-  SubstanceFiscaleId,
-  { tarifDepartemental: number; tarifCommunal: number }
->
+export type OpenfiscaTarifs = Record<SubstanceFiscaleId, { tarifDepartemental: number; tarifCommunal: number }>
 export interface OpenfiscaConstants {
   substances: OpenfiscaTarifs
   tarifTaxeMinierePME: number
   tarifTaxeMiniereAutre: number
 }
 
-const apiOpenfiscaFetch = async <T>(
-  call: (apiOpenfiscaUrl: string) => Promise<Response>
-): Promise<T> => {
+const apiOpenfiscaFetch = async <T>(call: (apiOpenfiscaUrl: string) => Promise<Response>): Promise<T> => {
   const apiOpenfiscaUrl = process.env.API_OPENFISCA_URL
   if (!apiOpenfiscaUrl) {
-    throw new Error(
-      "impossible de se connecter à l'API Openfisca car la variable d'environnement est absente"
-    )
+    throw new Error("impossible de se connecter à l'API Openfisca car la variable d'environnement est absente")
   }
 
   const response = await call(apiOpenfiscaUrl)
@@ -124,22 +91,18 @@ const apiOpenfiscaFetch = async <T>(
   const result = (await response.json()) as T
 
   if (!response.ok) {
-    throw new Error(
-      `Le serveur Openfisca a retourné une erreur: ${JSON.stringify(result)}`
-    )
+    throw new Error(`Le serveur Openfisca a retourné une erreur: ${JSON.stringify(result)}`)
   }
 
   return result
 }
 
-export const apiOpenfiscaCalculate = async (
-  body: OpenfiscaRequest
-): Promise<OpenfiscaResponse> => {
+export const apiOpenfiscaCalculate = async (body: OpenfiscaRequest): Promise<OpenfiscaResponse> => {
   const call = (url: string) =>
     fetch(`${url}/calculate`, {
       method: 'post',
       headers: { 'Content-Type': 'application/json' },
-      body: JSON.stringify(body)
+      body: JSON.stringify(body),
     })
 
   return apiOpenfiscaFetch<OpenfiscaResponse>(call)
@@ -151,13 +114,11 @@ type InitSubstance = {
     tarifCommunal: number
   }
 }
-export const apiOpenfiscaConstantsFetch = async (
-  annee: number
-): Promise<OpenfiscaConstants> => {
+export const apiOpenfiscaConstantsFetch = async (annee: number): Promise<OpenfiscaConstants> => {
   const getParameter = async (parameter: string): Promise<number> => {
     const call = (url: string) =>
       fetch(`${url}/parameter/${parameter}`, {
-        headers: { 'Content-Type': 'application/json' }
+        headers: { 'Content-Type': 'application/json' },
       })
 
     const response = await apiOpenfiscaFetch<{
@@ -165,36 +126,30 @@ export const apiOpenfiscaConstantsFetch = async (
     }>(call)
 
     if (!Object.keys(response.values).includes(`${annee}-01-01`)) {
-      throw new Error(
-        `le paramètre ${parameter} n’est pas renseigné pour l’année ${annee}`
-      )
+      throw new Error(`le paramètre ${parameter} n’est pas renseigné pour l’année ${annee}`)
     }
 
     return response.values[`${annee}-01-01`]
   }
 
   const tarifTaxeMinierePME = await getParameter('taxes/guyane/categories/pme')
-  const tarifTaxeMiniereAutre = await getParameter(
-    'taxes/guyane/categories/autre'
-  )
+  const tarifTaxeMiniereAutre = await getParameter('taxes/guyane/categories/autre')
 
   const substances: InitSubstance = {}
   // TODO 2022-08-09 : faire passer la substance en parametre le jour où on fait des matrices autre que Guyane
   for (const substance of SubstancesFiscales) {
     const nom = substance.openFisca?.nom ?? substance.nom
     const tarifCommunal = await getParameter(`redevances/communales/${nom}`)
-    const tarifDepartemental = await getParameter(
-      `redevances/departementales/${nom}`
-    )
+    const tarifDepartemental = await getParameter(`redevances/departementales/${nom}`)
     substances[substance.id] = {
       tarifCommunal,
-      tarifDepartemental
+      tarifDepartemental,
     }
   }
 
   return {
     substances: substances as Required<InitSubstance>,
     tarifTaxeMinierePME,
-    tarifTaxeMiniereAutre
+    tarifTaxeMiniereAutre,
   }
 }
diff --git a/packages/api/src/tools/database-to-json/tables.ts b/packages/api/src/tools/database-to-json/tables.ts
index b8620f402..5520cd8f8 100644
--- a/packages/api/src/tools/database-to-json/tables.ts
+++ b/packages/api/src/tools/database-to-json/tables.ts
@@ -3,16 +3,16 @@ export const tables = [
   { name: 'activites_types', orderBy: ['id'] },
   {
     name: 'activites_types__documents_types',
-    orderBy: ['activite_type_id', 'document_type_id']
+    orderBy: ['activite_type_id', 'document_type_id'],
   },
   { name: 'activites_types__pays', orderBy: ['pays_id', 'activite_type_id'] },
   {
     name: 'activites_types__titres_types',
-    orderBy: ['titre_type_id', 'activite_type_id']
+    orderBy: ['titre_type_id', 'activite_type_id'],
   },
   {
     name: 'administrations__activites_types',
-    orderBy: ['activite_type_id', 'administration_id']
+    orderBy: ['activite_type_id', 'administration_id'],
   },
   // la table 'caches' n'est pas utile dans les json
   // { name: 'caches',orderBy: ['id'] },
@@ -27,7 +27,7 @@ export const tables = [
   { name: 'etapes_types', orderBy: ['id'] },
   {
     name: 'etapes_types__justificatifs_types',
-    orderBy: ['etape_type_id', 'document_type_id']
+    orderBy: ['etape_type_id', 'document_type_id'],
   },
   { name: 'forets', orderBy: ['id'] },
   { name: 'titres', orderBy: ['id'] },
@@ -37,12 +37,12 @@ export const tables = [
   { name: 'titres_demarches', orderBy: ['id'] },
   {
     name: 'titres_demarches_liens',
-    orderBy: ['enfant_titre_demarche_id', 'parent_titre_demarche_id']
+    orderBy: ['enfant_titre_demarche_id', 'parent_titre_demarche_id'],
   },
   { name: 'titres_etapes', orderBy: ['id'] },
   {
     name: 'titres_etapes_justificatifs',
-    orderBy: ['titre_etape_id', 'document_id']
+    orderBy: ['titre_etape_id', 'document_id'],
   },
   { name: 'titres_forets', orderBy: ['titre_etape_id', 'foret_id'] },
   { name: 'titres_phases', orderBy: ['titre_demarche_id', 'phase_statut_id'] },
@@ -52,21 +52,16 @@ export const tables = [
   { name: 'titres_types', orderBy: ['id'] },
   {
     name: 'titres_types__demarches_types__etapes_types',
-    orderBy: ['titre_type_id', 'demarche_type_id', 'etape_type_id']
+    orderBy: ['titre_type_id', 'demarche_type_id', 'etape_type_id'],
   },
   {
     name: 'titres_types__demarches_types__etapes_types__justificatifs_t',
-    orderBy: [
-      'titre_type_id',
-      'demarche_type_id',
-      'etape_type_id',
-      'document_type_id'
-    ]
+    orderBy: ['titre_type_id', 'demarche_type_id', 'etape_type_id', 'document_type_id'],
   },
   { name: 'titres_types_types', orderBy: ['id'] },
   { name: 'utilisateurs', orderBy: ['id'] },
   {
     name: 'utilisateurs__entreprises',
-    orderBy: ['utilisateur_id', 'entreprise_id']
-  }
+    orderBy: ['utilisateur_id', 'entreprise_id'],
+  },
 ]
diff --git a/packages/api/src/tools/demarches/definitions-check.ts b/packages/api/src/tools/demarches/definitions-check.ts
index 764d2f741..d6d8a26d8 100644
--- a/packages/api/src/tools/demarches/definitions-check.ts
+++ b/packages/api/src/tools/demarches/definitions-check.ts
@@ -1,10 +1,4 @@
-import {
-  demarchesDefinitions,
-  IDemarcheDefinition,
-  IEtapeTypeIdCondition,
-  isDemarcheDefinitionRestriction,
-  DemarcheDefinitionRestriction
-} from '../../business/rules-demarches/definitions.js'
+import { demarchesDefinitions, IDemarcheDefinition, IEtapeTypeIdCondition, isDemarcheDefinitionRestriction, DemarcheDefinitionRestriction } from '../../business/rules-demarches/definitions.js'
 import { titresDemarchesGet } from '../../database/queries/titres-demarches.js'
 import { titreDemarcheUpdatedEtatValidate } from '../../business/validations/titre-demarche-etat-validate.js'
 import { userSuper } from '../../database/user-super.js'
@@ -26,12 +20,7 @@ const etapeTypeIdsGet = (contraintes?: IEtapeTypeIdCondition[][]) => {
 }
 
 const etapesTypesIdsGet = async (titreTypeId: string, demarcheTypeId: string) =>
-  (
-    await TitresTypesDemarchesTypesEtapesTypes.query()
-      .withGraphFetched('etapeType')
-      .where('titreTypeId', titreTypeId)
-      .andWhere('demarcheTypeId', demarcheTypeId)
-  )
+  (await TitresTypesDemarchesTypesEtapesTypes.query().withGraphFetched('etapeType').where('titreTypeId', titreTypeId).andWhere('demarcheTypeId', demarcheTypeId))
     .map(tde => tde.etapeType!)
     .filter(etapeType => !etapeType.dateFin || etapeType.dateFin === '')
     .map(etapeType => etapeType.id)
@@ -39,18 +28,13 @@ const etapesTypesIdsGet = async (titreTypeId: string, demarcheTypeId: string) =>
 const tdeValidate = async () => {
   const errors = [] as string[]
 
-  const definitionsWithRestrictions = demarchesDefinitions.filter(
-    (
-      demarcheDefinition: IDemarcheDefinition
-    ): demarcheDefinition is DemarcheDefinitionRestriction =>
-      isDemarcheDefinitionRestriction(demarcheDefinition)
+  const definitionsWithRestrictions = demarchesDefinitions.filter((demarcheDefinition: IDemarcheDefinition): demarcheDefinition is DemarcheDefinitionRestriction =>
+    isDemarcheDefinitionRestriction(demarcheDefinition)
   )
 
   for (const demarcheDefinition of definitionsWithRestrictions) {
     for (const demarcheTypeId of demarcheDefinition.demarcheTypeIds) {
-      const demarcheEtatsEtapeTypeIds = Object.keys(
-        demarcheDefinition.restrictions
-      )
+      const demarcheEtatsEtapeTypeIds = Object.keys(demarcheDefinition.restrictions)
         .reduce((acc, etapeTypeId) => {
           acc.push(etapeTypeId)
           const restriction = demarcheDefinition.restrictions[etapeTypeId]
@@ -65,26 +49,19 @@ const tdeValidate = async () => {
         }, [] as string[])
         .map(type => type.split('-')[0])
 
-      const tdeEtapeTypeIds = await etapesTypesIdsGet(
-        demarcheDefinition.titreTypeId,
-        demarcheTypeId
-      )
+      const tdeEtapeTypeIds = await etapesTypesIdsGet(demarcheDefinition.titreTypeId, demarcheTypeId)
 
       // on vérifie que toutes les étapes définies dans l’arbre existent dans TDE
       demarcheEtatsEtapeTypeIds.forEach(demarcheEtatsEtapeTypeId => {
         if (!tdeEtapeTypeIds.includes(demarcheEtatsEtapeTypeId)) {
-          errors.push(
-            `titre "${demarcheDefinition.titreTypeId}" démarche "${demarcheTypeId}" étape "${demarcheEtatsEtapeTypeId}" présent dans l’arbre d’instructions mais pas dans TDE`
-          )
+          errors.push(`titre "${demarcheDefinition.titreTypeId}" démarche "${demarcheTypeId}" étape "${demarcheEtatsEtapeTypeId}" présent dans l’arbre d’instructions mais pas dans TDE`)
         }
       })
 
       // on vérifie que toutes les étapes définies dans TDE existent dans l’arbre
       tdeEtapeTypeIds.forEach(tdeEtapeTypeId => {
         if (!demarcheEtatsEtapeTypeIds.includes(tdeEtapeTypeId)) {
-          errors.push(
-            `titre "${demarcheDefinition.titreTypeId}" démarche "${demarcheTypeId}" étape "${tdeEtapeTypeId}" présent dans TDE mais pas dans l’arbre d’instructions`
-          )
+          errors.push(`titre "${demarcheDefinition.titreTypeId}" démarche "${demarcheTypeId}" étape "${tdeEtapeTypeId}" présent dans TDE mais pas dans l’arbre d’instructions`)
         }
       })
     }
@@ -93,20 +70,13 @@ const tdeValidate = async () => {
   // on vérifie qu’il existe un bloc dans l’arbre par étapes définies dans TDE
   for (const demarcheDefinition of definitionsWithRestrictions) {
     for (const demarcheTypeId of demarcheDefinition.demarcheTypeIds) {
-      const demarcheEtatsEtapeTypeIds = Object.keys(
-        demarcheDefinition.restrictions
-      )
+      const demarcheEtatsEtapeTypeIds = Object.keys(demarcheDefinition.restrictions)
 
-      const tdeEtapeTypeIds = await etapesTypesIdsGet(
-        demarcheDefinition.titreTypeId,
-        demarcheTypeId
-      )
+      const tdeEtapeTypeIds = await etapesTypesIdsGet(demarcheDefinition.titreTypeId, demarcheTypeId)
 
       tdeEtapeTypeIds.forEach(tdeEtapeTypeId => {
         if (!demarcheEtatsEtapeTypeIds.includes(tdeEtapeTypeId)) {
-          errors.push(
-            `bloc manquant "${tdeEtapeTypeId}" dans l’arbre des démarches "${demarcheTypeId}" des titres "${demarcheDefinition.titreTypeId}"`
-          )
+          errors.push(`bloc manquant "${tdeEtapeTypeId}" dans l’arbre des démarches "${demarcheTypeId}" des titres "${demarcheDefinition.titreTypeId}"`)
         }
       })
     }
@@ -123,14 +93,14 @@ const demarchesValidate = async () => {
         {
           titresTypesIds: [demarcheDefinition.titreTypeId.slice(0, 2)],
           titresDomainesIds: [demarcheDefinition.titreTypeId.slice(2)],
-          typesIds: [demarcheTypeId]
+          typesIds: [demarcheTypeId],
         },
         {
           fields: {
             titre: { id: {}, demarches: { etapes: { id: {} } } },
             etapes: { id: {} },
-            type: { etapesTypes: { id: {} } }
-          }
+            type: { etapesTypes: { id: {} } },
+          },
         },
         userSuper
       )
@@ -139,18 +109,10 @@ const demarchesValidate = async () => {
         .filter(demarche => demarche.etapes?.length)
         .forEach(demarche => {
           try {
-            const errs = titreDemarcheUpdatedEtatValidate(
-              demarche.type!,
-              demarche.titre!,
-              demarche.etapes![0],
-              demarche.id,
-              demarche.etapes!
-            )
+            const errs = titreDemarcheUpdatedEtatValidate(demarche.type!, demarche.titre!, demarche.etapes![0], demarche.id, demarche.etapes!)
 
             if (errs.length) {
-              errors.push(
-                `https://camino.beta.gouv.fr/titres/${demarche.titreId} => démarche "${demarche.typeId}" : ${errs}`
-              )
+              errors.push(`https://camino.beta.gouv.fr/titres/${demarche.titreId} => démarche "${demarche.typeId}" : ${errs}`)
 
               // console.info(
               //   '[',
diff --git a/packages/api/src/tools/demarches/etape-statut-check.ts b/packages/api/src/tools/demarches/etape-statut-check.ts
index b8d297d61..653629a20 100644
--- a/packages/api/src/tools/demarches/etape-statut-check.ts
+++ b/packages/api/src/tools/demarches/etape-statut-check.ts
@@ -16,8 +16,8 @@ export const etapeStatutCheck = async () => {
     {
       fields: {
         type: { id: {} },
-        demarche: { type: { id: {} }, titre: { id: {} } }
-      }
+        demarche: { type: { id: {} }, titre: { id: {} } },
+      },
     },
     userSuper
   )
@@ -25,23 +25,11 @@ export const etapeStatutCheck = async () => {
   let errorsNb = 0
 
   etapes.forEach(etape => {
-    const tdeExists = !!tde.find(
-      t =>
-        t.titreTypeId === etape.demarche!.titre!.typeId &&
-        t.demarcheTypeId === etape.demarche!.typeId &&
-        t.etapeTypeId === etape.typeId
-    )
+    const tdeExists = !!tde.find(t => t.titreTypeId === etape.demarche!.titre!.typeId && t.demarcheTypeId === etape.demarche!.typeId && t.etapeTypeId === etape.typeId)
     const etapesStatuts = getEtapesStatuts(etape.typeId)
 
-    if (
-      tdeExists &&
-      !etapesStatuts!.map(es => es.id).includes(etape.statutId)
-    ) {
-      console.info(
-        `erreur sur le titre https://camino.beta.gouv.fr/titres/${
-          etape.demarche!.titreId
-        }, étape « ${etape.type!.nom} » a un statut inconnu`
-      )
+    if (tdeExists && !etapesStatuts!.map(es => es.id).includes(etape.statutId)) {
+      console.info(`erreur sur le titre https://camino.beta.gouv.fr/titres/${etape.demarche!.titreId}, étape « ${etape.type!.nom} » a un statut inconnu`)
       // console.infos(
       //   `https://camino.beta.gouv.fr/titres/${etape.demarche!.titreId}, ${
       //     etape.demarche!.type!.nom
diff --git a/packages/api/src/tools/demarches/tde-check.ts b/packages/api/src/tools/demarches/tde-check.ts
index 42baf62e3..2ab4b196a 100644
--- a/packages/api/src/tools/demarches/tde-check.ts
+++ b/packages/api/src/tools/demarches/tde-check.ts
@@ -15,8 +15,8 @@ export const titreTypeDemarcheTypeEtapeTypeCheck = async () => {
     {
       fields: {
         titre: { id: {} },
-        etapes: { type: { id: {} } }
-      }
+        etapes: { type: { id: {} } },
+      },
     },
     userSuper
   )
@@ -26,21 +26,8 @@ export const titreTypeDemarcheTypeEtapeTypeCheck = async () => {
   demarches.forEach(d => {
     const etapesTypes = d.etapes?.map(({ type }) => type)
     etapesTypes?.forEach(etapeType => {
-      if (
-        !tde.find(
-          t =>
-            t.titreTypeId === d.titre!.typeId &&
-            t.demarcheTypeId === d.typeId &&
-            t.etapeTypeId === etapeType!.id
-        )
-      ) {
-        console.info(
-          `erreur sur le titre https://camino.beta.gouv.fr/titres/${
-            d.titre!.id
-          }, TDE inconnu ${d.titre!.typeId} ${d.typeId} ${etapeType!.id} (${
-            etapeType!.nom
-          })`
-        )
+      if (!tde.find(t => t.titreTypeId === d.titre!.typeId && t.demarcheTypeId === d.typeId && t.etapeTypeId === etapeType!.id)) {
+        console.info(`erreur sur le titre https://camino.beta.gouv.fr/titres/${d.titre!.id}, TDE inconnu ${d.titre!.typeId} ${d.typeId} ${etapeType!.id} (${etapeType!.nom})`)
         errorsNb++
       }
     })
diff --git a/packages/api/src/tools/demarches/tests-creation.ts b/packages/api/src/tools/demarches/tests-creation.ts
index 28eac4cf4..979534620 100644
--- a/packages/api/src/tools/demarches/tests-creation.ts
+++ b/packages/api/src/tools/demarches/tests-creation.ts
@@ -4,39 +4,27 @@ import { titresDemarchesGet } from '../../database/queries/titres-demarches.js'
 import { userSuper } from '../../database/user-super.js'
 import { titreDemarcheDepotDemandeDateFind } from '../../business/rules/titre-demarche-depot-demande-date-find.js'
 import { writeFileSync } from 'fs'
-import {
-  Etape,
-  toMachineEtapes
-} from '../../business/rules-demarches/machine-common.js'
-import {
-  demarchesDefinitions,
-  isDemarcheDefinitionMachine
-} from '../../business/rules-demarches/definitions.js'
-import {
-  dateAddDays,
-  daysBetween,
-  setDayInMonth
-} from 'camino-common/src/date.js'
+import { Etape, toMachineEtapes } from '../../business/rules-demarches/machine-common.js'
+import { demarchesDefinitions, isDemarcheDefinitionMachine } from '../../business/rules-demarches/definitions.js'
+import { dateAddDays, daysBetween, setDayInMonth } from 'camino-common/src/date.js'
 import { ETAPES_TYPES } from 'camino-common/src/static/etapesTypes.js'
 
 const writeEtapesForTest = async () => {
-  const demarcheDefinitionMachines = demarchesDefinitions.filter(
-    isDemarcheDefinitionMachine
-  )
+  const demarcheDefinitionMachines = demarchesDefinitions.filter(isDemarcheDefinitionMachine)
 
   for (const demarcheDefinition of demarcheDefinitionMachines) {
     const demarches = await titresDemarchesGet(
       {
         titresTypesIds: [demarcheDefinition.titreTypeId.slice(0, 2)],
         titresDomainesIds: [demarcheDefinition.titreTypeId.slice(2)],
-        typesIds: demarcheDefinition.demarcheTypeIds
+        typesIds: demarcheDefinition.demarcheTypeIds,
       },
       {
         fields: {
           titre: { id: {}, demarches: { etapes: { id: {} } } },
           etapes: { id: {} },
-          type: { etapesTypes: { id: {} } }
-        }
+          type: { etapesTypes: { id: {} } },
+        },
       },
       userSuper
     )
@@ -46,10 +34,7 @@ const writeEtapesForTest = async () => {
       .filter(demarche => {
         const date = titreDemarcheDepotDemandeDateFind(demarche.etapes!)
 
-        return (
-          (date ?? '') > demarcheDefinition.dateDebut &&
-          !demarcheDefinition.demarcheIdExceptions?.includes(demarche.id)
-        )
+        return (date ?? '') > demarcheDefinition.dateDebut && !demarcheDefinition.demarcheIdExceptions?.includes(demarche.id)
       })
       .filter(({ titreId }) => {
         if (
@@ -61,7 +46,7 @@ const writeEtapesForTest = async () => {
             'z0DZo6TKEvP28D6oQyAuTvwA',
             'RGOrc6hTOErMD8SBkUChbTyg',
             '8KsDiNBHR9lAHv229GIqA7fw',
-            '8pY4eoUKtuR3is8l3Vy0vmJC'
+            '8pY4eoUKtuR3is8l3Vy0vmJC',
           ].includes(titreId)
         ) {
           console.info('On ignore le titre ' + titreId)
@@ -87,32 +72,18 @@ const writeEtapesForTest = async () => {
         )
         // Pour anonymiser la date en gardant les délai en mois entre la saisine et l'apd,
         // on trouve la date de saisine et on calcule un delta random pour tomber dans le même mois
-        const firstSaisineDate =
-          etapes.find(
-            etape => etape.etapeTypeId === ETAPES_TYPES.saisineDesServices
-          )?.date ?? etapes[0].date
-        const decalageJour = daysBetween(
-          firstSaisineDate,
-          setDayInMonth(firstSaisineDate, Math.floor(Math.random() * 28))
-        )
+        const firstSaisineDate = etapes.find(etape => etape.etapeTypeId === ETAPES_TYPES.saisineDesServices)?.date ?? etapes[0].date
+        const decalageJour = daysBetween(firstSaisineDate, setDayInMonth(firstSaisineDate, Math.floor(Math.random() * 28)))
         try {
           if (!demarcheDefinition.machine.isEtapesOk(etapes)) {
-            etapes.splice(
-              0,
-              etapes.length,
-              ...demarcheDefinition.machine.orderMachine(etapes)
-            )
+            etapes.splice(0, etapes.length, ...demarcheDefinition.machine.orderMachine(etapes))
             if (!demarcheDefinition.machine.isEtapesOk(etapes)) {
-              console.warn(
-                `https://camino.beta.gouv.fr/titres/${demarche.titreId} => démarche N*${index} "${demarcheDefinition.titreTypeId}/${demarche.typeId}"`
-              )
+              console.warn(`https://camino.beta.gouv.fr/titres/${demarche.titreId} => démarche N*${index} "${demarcheDefinition.titreTypeId}/${demarche.typeId}"`)
             }
           }
         } catch (e) {
           console.error('something went wrong', e)
-          console.error(
-            `https://camino.beta.gouv.fr/titres/${demarche.titreId} => démarche N*${index} "${demarcheDefinition.titreTypeId}/${demarche.typeId}"`
-          )
+          console.error(`https://camino.beta.gouv.fr/titres/${demarche.titreId} => démarche N*${index} "${demarcheDefinition.titreTypeId}/${demarche.typeId}"`)
         }
 
         const etapesAnonymes = etapes.map(etape => {
@@ -123,13 +94,10 @@ const writeEtapesForTest = async () => {
           id: index,
           demarcheStatutId: demarche.statutId,
           demarchePublique: demarche.publicLecture ?? false,
-          etapes: etapesAnonymes
+          etapes: etapesAnonymes,
         }
       })
-    writeFileSync(
-      `src/business/rules-demarches/${demarcheDefinition.titreTypeId}/${demarcheDefinition.demarcheTypeIds[0]}.cas.json`,
-      JSON.stringify(toutesLesEtapes)
-    )
+    writeFileSync(`src/business/rules-demarches/${demarcheDefinition.titreTypeId}/${demarcheDefinition.demarcheTypeIds[0]}.cas.json`, JSON.stringify(toutesLesEtapes))
   }
 }
 
diff --git a/packages/api/src/tools/documents/_utils.ts b/packages/api/src/tools/documents/_utils.ts
index 0c8fe524c..eea6c4951 100644
--- a/packages/api/src/tools/documents/_utils.ts
+++ b/packages/api/src/tools/documents/_utils.ts
@@ -2,11 +2,7 @@ import { Index } from '../../types.js'
 
 const hashGet = (str: string) => str.split('-').pop()
 
-export const matchFuzzy = (
-  name: string,
-  index: Index<any>,
-  partGet = hashGet
-) => {
+export const matchFuzzy = (name: string, index: Index<any>, partGet = hashGet) => {
   const hash = name.split('-').pop()
 
   return Object.keys(index).reduce((r: string[], key) => {
diff --git a/packages/api/src/tools/documents/clean.ts b/packages/api/src/tools/documents/clean.ts
index 122bff972..edf0f8e57 100644
--- a/packages/api/src/tools/documents/clean.ts
+++ b/packages/api/src/tools/documents/clean.ts
@@ -11,10 +11,7 @@ export const documentsClean = async () => {
   console.info('suppression des documents orphelins')
   console.info()
 
-  const documents = await Document.query()
-    .whereNull('titreEtapeId')
-    .whereNull('titreActiviteId')
-    .whereNull('entrepriseId')
+  const documents = await Document.query().whereNull('titreEtapeId').whereNull('titreActiviteId').whereNull('entrepriseId')
 
   for (const document of documents) {
     const path = await documentFilePathFind(document)
diff --git a/packages/api/src/tools/documents/document-path-find.ts b/packages/api/src/tools/documents/document-path-find.ts
index 40d730448..8e7c3e01b 100644
--- a/packages/api/src/tools/documents/document-path-find.ts
+++ b/packages/api/src/tools/documents/document-path-find.ts
@@ -2,14 +2,10 @@ import { IDocument } from '../../types.js'
 import { documentRepertoireFind } from './document-repertoire-find.js'
 import dirCreate from '../dir-create.js'
 
-export const documentFilePathFind = async (
-  document: IDocument,
-  creation = false
-) => {
+export const documentFilePathFind = async (document: IDocument, creation = false) => {
   const repertoire = documentRepertoireFind(document)
 
-  const parentId =
-    document.titreEtapeId || document.titreActiviteId || document.entrepriseId
+  const parentId = document.titreEtapeId || document.titreActiviteId || document.entrepriseId
 
   let dirPath = `files/${repertoire}`
 
diff --git a/packages/api/src/tools/documents/document-repertoire-find.ts b/packages/api/src/tools/documents/document-repertoire-find.ts
index 432a4aca4..12211db4d 100644
--- a/packages/api/src/tools/documents/document-repertoire-find.ts
+++ b/packages/api/src/tools/documents/document-repertoire-find.ts
@@ -1,8 +1,6 @@
 import { IDocument, IDocumentRepertoire } from '../../types.js'
 
-export const documentRepertoireFind = (
-  document: IDocument
-): IDocumentRepertoire => {
+export const documentRepertoireFind = (document: IDocument): IDocumentRepertoire => {
   if (document.titreActiviteId) {
     return 'activites'
   }
diff --git a/packages/api/src/tools/documents/documents-files-check.ts b/packages/api/src/tools/documents/documents-files-check.ts
index 0caec8e14..f5fd3cd5c 100644
--- a/packages/api/src/tools/documents/documents-files-check.ts
+++ b/packages/api/src/tools/documents/documents-files-check.ts
@@ -2,24 +2,17 @@ import { Index } from '../../types.js'
 import { IndexFile } from './_types.js'
 import { matchFuzzy } from './_utils.js'
 
-export const documentsFilesCheck = (
-  documentsIndex: IndexFile,
-  filesIndex: Index<string>
-) => {
+export const documentsFilesCheck = (documentsIndex: IndexFile, filesIndex: Index<string>) => {
   const documentsFichiersMissing = Object.keys(documentsIndex)
     .filter(documentId => !filesIndex[documentId])
     .sort()
 
   if (documentsFichiersMissing.length) {
-    console.info(
-      `${documentsFichiersMissing.length} documents en base de données n'ont pas de fichiers correspondants`
-    )
+    console.info(`${documentsFichiersMissing.length} documents en base de données n'ont pas de fichiers correspondants`)
 
     documentsFichiersMissing.forEach(documentId => {
       const document = documentsIndex[documentId].document
-      console.info(
-        `-      ${documentId}.${document.fichierTypeId} -> ${document.titreEtapeId}`
-      )
+      console.info(`-      ${documentId}.${document.fichierTypeId} -> ${document.titreEtapeId}`)
 
       const matches = matchFuzzy(documentId, filesIndex)
 
@@ -30,8 +23,6 @@ export const documentsFilesCheck = (
       }
     })
   } else {
-    console.info(
-      'tous les documents en base de données ont des fichiers correspondants'
-    )
+    console.info('tous les documents en base de données ont des fichiers correspondants')
   }
 }
diff --git a/packages/api/src/tools/documents/files-document-check.ts b/packages/api/src/tools/documents/files-document-check.ts
index 7bd892468..7b6b81ddb 100644
--- a/packages/api/src/tools/documents/files-document-check.ts
+++ b/packages/api/src/tools/documents/files-document-check.ts
@@ -20,16 +20,9 @@ const contenuFilesCheck = async (filePath: string) => {
   if (repertoire !== 'demarches') {
     return false
   }
-  const etape = await titreEtapeGet(
-    etapeId,
-    { fields: { type: { id: {} } } },
-    userSuper
-  )
+  const etape = await titreEtapeGet(etapeId, { fields: { type: { id: {} } } }, userSuper)
   if (etape) {
-    const sections = etapeTypeSectionsFormat(
-      etape.type!.sections,
-      etape.sectionsSpecifiques
-    )
+    const sections = etapeTypeSectionsFormat(etape.type!.sections, etape.sectionsSpecifiques)
     const contenuFiles = contenuFilesGet(etape.contenu, sections)
 
     if (contenuFiles.includes(fileName)) {
@@ -37,10 +30,7 @@ const contenuFilesCheck = async (filePath: string) => {
     }
 
     if (etape.decisionsAnnexesSections) {
-      const decisionsAnnexesContenuFiles = contenuFilesGet(
-        etape.decisionsAnnexesContenu,
-        etape.decisionsAnnexesSections
-      )
+      const decisionsAnnexesContenuFiles = contenuFilesGet(etape.decisionsAnnexesContenu, etape.decisionsAnnexesSections)
 
       if (decisionsAnnexesContenuFiles.includes(fileName)) {
         return true
@@ -51,10 +41,7 @@ const contenuFilesCheck = async (filePath: string) => {
   return false
 }
 
-export const filesDocumentCheck = async (
-  documentsIndex: IndexFile,
-  filesIndex: Index<string>
-) => {
+export const filesDocumentCheck = async (documentsIndex: IndexFile, filesIndex: Index<string>) => {
   const filesMissing = [] as {
     name: string
     documentsHashMatches: string[]
@@ -63,35 +50,23 @@ export const filesDocumentCheck = async (
   }[]
 
   for (const fileName of Object.keys(filesIndex).sort()) {
-    if (
-      fileName &&
-      !documentsIndex[fileName] &&
-      !(await contenuFilesCheck(filesIndex[fileName]))
-    ) {
+    if (fileName && !documentsIndex[fileName] && !(await contenuFilesCheck(filesIndex[fileName]))) {
       filesMissing.push({
         name: filesIndex[fileName],
         documentsHashMatches: matchFuzzy(fileName, documentsIndex),
         filesHashMatches: matchFuzzy(fileName, filesIndex),
-        filesEtapeMatches: matchFuzzy(fileName, filesIndex, etapeGet)
+        filesEtapeMatches: matchFuzzy(fileName, filesIndex, etapeGet),
       })
     }
   }
 
   // trie les fichiers sans hash en base en premier
   filesMissing.sort(
-    (a, b) =>
-      a.documentsHashMatches.length +
-      a.filesHashMatches.length +
-      a.filesEtapeMatches.length -
-      (b.documentsHashMatches.length +
-        b.filesHashMatches.length +
-        b.filesEtapeMatches.length)
+    (a, b) => a.documentsHashMatches.length + a.filesHashMatches.length + a.filesEtapeMatches.length - (b.documentsHashMatches.length + b.filesHashMatches.length + b.filesEtapeMatches.length)
   )
 
   if (filesMissing.length) {
-    console.info(
-      `${filesMissing.length} fichiers ne correspondent à aucun document dans la base de données`
-    )
+    console.info(`${filesMissing.length} fichiers ne correspondent à aucun document dans la base de données`)
 
     filesMissing.forEach(file => {
       console.info(`- ${file.name}`)
@@ -99,39 +74,22 @@ export const filesDocumentCheck = async (
       if (file.documentsHashMatches.length) {
         const documentsHashMatchesString = ` (${file.documentsHashMatches.length} hashe(s) en base)`
 
-        console.info(
-          `${documentsHashMatchesString}:`,
-          file.documentsHashMatches.join(', ')
-        )
+        console.info(`${documentsHashMatchesString}:`, file.documentsHashMatches.join(', '))
       }
 
-      if (
-        file.filesHashMatches.length &&
-        file.filesHashMatches[0] !== file.documentsHashMatches[0]
-      ) {
+      if (file.filesHashMatches.length && file.filesHashMatches[0] !== file.documentsHashMatches[0]) {
         const filesHashMatchesString = ` (${file.filesHashMatches.length} autre(s) hashe(s) dans les fichiers)`
 
-        console.info(
-          `${filesHashMatchesString}:`,
-          file.filesHashMatches.join(', ')
-        )
+        console.info(`${filesHashMatchesString}:`, file.filesHashMatches.join(', '))
       }
 
-      if (
-        file.filesEtapeMatches.length &&
-        file.filesEtapeMatches[0] !== file.documentsHashMatches[0]
-      ) {
+      if (file.filesEtapeMatches.length && file.filesEtapeMatches[0] !== file.documentsHashMatches[0]) {
         const filesEtapeMatchesString = ` (${file.filesEtapeMatches.length} autre(s) etape(s) dans les fichiers)`
 
-        console.info(
-          `${filesEtapeMatchesString}:`,
-          file.filesEtapeMatches.join(', ')
-        )
+        console.info(`${filesEtapeMatchesString}:`, file.filesEtapeMatches.join(', '))
       }
     })
   } else {
-    console.info(
-      'tous les fichiers correspondent à des documents dans la base de données'
-    )
+    console.info('tous les fichiers correspondent à des documents dans la base de données')
   }
 }
diff --git a/packages/api/src/tools/documents/files-index-build.test.ts b/packages/api/src/tools/documents/files-index-build.test.ts
index 51689b7e2..c53e567ec 100644
--- a/packages/api/src/tools/documents/files-index-build.test.ts
+++ b/packages/api/src/tools/documents/files-index-build.test.ts
@@ -6,6 +6,6 @@ test('filesIndexBuild', () => {
   expect(filesIndexBuild(`${dir}/src/tools/documents/_assets`)).toEqual({
     file: 'file.pdf',
     file2: 'file2.pdf',
-    file3: 'demarches/file3.pdf'
+    file3: 'demarches/file3.pdf',
   })
 })
diff --git a/packages/api/src/tools/documents/files-index-build.ts b/packages/api/src/tools/documents/files-index-build.ts
index dd9014e42..c1c6d162d 100644
--- a/packages/api/src/tools/documents/files-index-build.ts
+++ b/packages/api/src/tools/documents/files-index-build.ts
@@ -8,9 +8,7 @@ export const filesIndexBuild = (path = './files'): Index<string> => {
 
   return filesNames.reduce((res: Index<string>, fileName) => {
     if (fileName) {
-      res[basename(fileName.split('/').pop()!, '.pdf')] = fileName.substring(
-        path.length + 1
-      )
+      res[basename(fileName.split('/').pop()!, '.pdf')] = fileName.substring(path.length + 1)
     }
 
     return res
diff --git a/packages/api/src/tools/documents/files-path-check.test.ts b/packages/api/src/tools/documents/files-path-check.test.ts
index d7c182c34..89aaae35f 100644
--- a/packages/api/src/tools/documents/files-path-check.test.ts
+++ b/packages/api/src/tools/documents/files-path-check.test.ts
@@ -7,7 +7,7 @@ test('filesPathCheck', () => {
   const fileIndex = {
     file: 'file.pdf',
     file2: 'file2.pdf',
-    file3: 'demarches/file3.pdf'
+    file3: 'demarches/file3.pdf',
   }
 
   const documentIndex: IndexFile = {
@@ -15,18 +15,18 @@ test('filesPathCheck', () => {
       document: {
         id: 'file3',
         typeId: 'not',
-        date: toCaminoDate('2020-08-04')
+        date: toCaminoDate('2020-08-04'),
       },
-      path: 'demarches/anotherFolder/file3.pdf'
+      path: 'demarches/anotherFolder/file3.pdf',
     },
     file2: {
       document: {
         id: 'file2',
         typeId: 'not',
-        date: toCaminoDate('2020-08-04')
+        date: toCaminoDate('2020-08-04'),
       },
-      path: 'file2.pdf'
-    }
+      path: 'file2.pdf',
+    },
   }
   expect(filesPathCheck(documentIndex, fileIndex, false)).toEqual(['file3'])
 })
diff --git a/packages/api/src/tools/documents/files-path-check.ts b/packages/api/src/tools/documents/files-path-check.ts
index 17ec3a95b..542555ead 100644
--- a/packages/api/src/tools/documents/files-path-check.ts
+++ b/packages/api/src/tools/documents/files-path-check.ts
@@ -1,28 +1,15 @@
 import { Index } from '../../types.js'
 import { IndexFile } from './_types.js'
 
-export const filesPathCheck = (
-  documentsIndex: IndexFile,
-  filesIndex: Index<string>,
-  display = true
-): string[] => {
+export const filesPathCheck = (documentsIndex: IndexFile, filesIndex: Index<string>, display = true): string[] => {
   const filesPathInvalid = Object.keys(filesIndex)
     .sort()
-    .filter(
-      fileName =>
-        fileName &&
-        documentsIndex[fileName] &&
-        filesIndex[fileName] !== documentsIndex[fileName].path
-    )
+    .filter(fileName => fileName && documentsIndex[fileName] && filesIndex[fileName] !== documentsIndex[fileName].path)
 
   if (display) {
     if (filesPathInvalid.length) {
-      console.info(
-        `${filesPathInvalid.length} fichiers ne sont pas au bon endroit sur le disque`
-      )
-      filesPathInvalid.forEach(file =>
-        console.info(`- ${filesIndex[file]} -> ${documentsIndex[file].path}`)
-      )
+      console.info(`${filesPathInvalid.length} fichiers ne sont pas au bon endroit sur le disque`)
+      filesPathInvalid.forEach(file => console.info(`- ${filesIndex[file]} -> ${documentsIndex[file].path}`))
     } else {
       console.info('tous les fichiers sont au bon endroit sur le disque')
     }
diff --git a/packages/api/src/tools/email-check.ts b/packages/api/src/tools/email-check.ts
index caccc548f..fa9f7bafd 100644
--- a/packages/api/src/tools/email-check.ts
+++ b/packages/api/src/tools/email-check.ts
@@ -1,4 +1,3 @@
 import emailRegex from 'email-regex'
 
-export const emailCheck = (email: string) =>
-  emailRegex({ exact: true }).test(email)
+export const emailCheck = (email: string) => emailRegex({ exact: true }).test(email)
diff --git a/packages/api/src/tools/file-create.test.ts b/packages/api/src/tools/file-create.test.ts
index 5b4f01185..a0d10e7c7 100644
--- a/packages/api/src/tools/file-create.test.ts
+++ b/packages/api/src/tools/file-create.test.ts
@@ -36,9 +36,7 @@ describe('crée des fichiers', () => {
   test('écrase le fichier si il existe déjà', async () => {
     await fileCreate(pathGet('toto.txt'), 'contenu du fichier')
     await fileCreate(pathGet('toto.txt'), 'nouveau contenu du fichier')
-    expect(readFileSync(pathGet('toto.txt'), 'utf8')).toBe(
-      'nouveau contenu du fichier'
-    )
+    expect(readFileSync(pathGet('toto.txt'), 'utf8')).toBe('nouveau contenu du fichier')
   })
 
   test('retourne une erreur si le répertoire n’existe pas', async () => {
diff --git a/packages/api/src/tools/file-rename.test.ts b/packages/api/src/tools/file-rename.test.ts
index 05119fed1..6be1749db 100644
--- a/packages/api/src/tools/file-rename.test.ts
+++ b/packages/api/src/tools/file-rename.test.ts
@@ -52,8 +52,6 @@ describe('renomme des fichiers', () => {
     await fileCreate(pathGet('first/toto.txt'), 'contenu du fichier')
     await fileRename(pathGet('first/toto.txt'), pathGet('second/tata.txt'))
 
-    expect(readFileSync(pathGet('second/tata.txt'), 'utf8')).toBe(
-      'contenu du fichier'
-    )
+    expect(readFileSync(pathGet('second/tata.txt'), 'utf8')).toBe('contenu du fichier')
   })
 })
diff --git a/packages/api/src/tools/file-rename.ts b/packages/api/src/tools/file-rename.ts
index 4ed011bcb..7782957a5 100644
--- a/packages/api/src/tools/file-rename.ts
+++ b/packages/api/src/tools/file-rename.ts
@@ -15,9 +15,7 @@ const fileRename = async (oldFileName: string, newFileName: string) =>
         return reject(err)
       }
 
-      const log = `fichier renommé: ${basename(oldPath)} -> ${basename(
-        newPath
-      )}`
+      const log = `fichier renommé: ${basename(oldPath)} -> ${basename(newPath)}`
 
       console.info(log)
 
diff --git a/packages/api/src/tools/geo-convert.test.ts b/packages/api/src/tools/geo-convert.test.ts
index eb25101a5..d41958bb6 100644
--- a/packages/api/src/tools/geo-convert.test.ts
+++ b/packages/api/src/tools/geo-convert.test.ts
@@ -3,13 +3,10 @@ import { GEO_SYSTEME_IDS } from 'camino-common/src/static/geoSystemes.js'
 import { describe, expect, test } from 'vitest'
 
 describe('teste la conversion des projections', () => {
-  test.each([[1234], [1.199826706437144], [49.869381812347456]])(
-    'la conversion vers le système géo par défaut ne fait pas de conversion',
-    x => {
-      expect(geoConvert(GEO_SYSTEME_IDS.WGS84, { x, y: 1 })).toEqual({
-        x,
-        y: 1
-      })
-    }
-  )
+  test.each([[1234], [1.199826706437144], [49.869381812347456]])('la conversion vers le système géo par défaut ne fait pas de conversion', x => {
+    expect(geoConvert(GEO_SYSTEME_IDS.WGS84, { x, y: 1 })).toEqual({
+      x,
+      y: 1,
+    })
+  })
 })
diff --git a/packages/api/src/tools/geo-convert.ts b/packages/api/src/tools/geo-convert.ts
index d3099e0b9..85377dd85 100644
--- a/packages/api/src/tools/geo-convert.ts
+++ b/packages/api/src/tools/geo-convert.ts
@@ -1,14 +1,8 @@
 import proj4 from 'proj4'
 import { ICoordonnees } from '../types.js'
-import {
-  GEO_SYSTEME_IDS,
-  GeoSystemeId
-} from 'camino-common/src/static/geoSystemes.js'
+import { GEO_SYSTEME_IDS, GeoSystemeId } from 'camino-common/src/static/geoSystemes.js'
 
-export const geoConvert = (
-  epsgId: GeoSystemeId,
-  coords: ICoordonnees
-): ICoordonnees => {
+export const geoConvert = (epsgId: GeoSystemeId, coords: ICoordonnees): ICoordonnees => {
   const fromProjection = `EPSG:${epsgId}`
   const toProjection = `EPSG:${GEO_SYSTEME_IDS.WGS84}`
 
diff --git a/packages/api/src/tools/geojson.ts b/packages/api/src/tools/geojson.ts
index c742a7c0c..d4183d856 100644
--- a/packages/api/src/tools/geojson.ts
+++ b/packages/api/src/tools/geojson.ts
@@ -17,10 +17,10 @@ export const geojsonFeatureMultiPolygon = (points: ITitrePoint[]) => ({
   geometry: rewind(
     {
       type: 'MultiPolygon',
-      coordinates: geojsonMultiPolygonCoordinates(points)
+      coordinates: geojsonMultiPolygonCoordinates(points),
     },
     false
-  ) as IGeometry
+  ) as IGeometry,
 })
 
 // convertit des points
@@ -33,7 +33,7 @@ export const geojsonFeatureCollectionPoints = (points: ITitrePoint[]) => ({
     type: 'Feature',
     geometry: {
       type: 'Point',
-      coordinates: [p.coordonnees.x, p.coordonnees.y]
+      coordinates: [p.coordonnees.x, p.coordonnees.y],
     },
     properties: {
       id: p.id,
@@ -42,16 +42,15 @@ export const geojsonFeatureCollectionPoints = (points: ITitrePoint[]) => ({
       point: p.point,
       nom: p.nom,
       description: p.description,
-      references: p.references
-    }
-  }))
+      references: p.references,
+    },
+  })),
 })
 
 // convertit une liste de points
 // en un tableau 'coordinates' geoJson
 // (le premier et le dernier point d'un contour ont les mêmes coordonnées)
-const geojsonMultiPolygonCoordinates = (points: ITitrePoint[]) =>
-  multiPolygonContoursClose(multiPolygonCoordinates(points))
+const geojsonMultiPolygonCoordinates = (points: ITitrePoint[]) => multiPolygonContoursClose(multiPolygonCoordinates(points))
 
 // convertit une liste de points
 // [{groupe: 1, contour: 1, point: 1, coordonnees: {x: 1.111111, y: 1.111111}}]
@@ -60,10 +59,7 @@ const multiPolygonCoordinates = (points: ITitrePoint[]) =>
   points.reduce((res: number[][][][], p) => {
     res[p.groupe - 1] = res[p.groupe - 1] || []
     res[p.groupe - 1][p.contour - 1] = res[p.groupe - 1][p.contour - 1] || []
-    res[p.groupe - 1][p.contour - 1][p.point - 1] = [
-      p.coordonnees.x,
-      p.coordonnees.y
-    ]
+    res[p.groupe - 1][p.contour - 1][p.point - 1] = [p.coordonnees.x, p.coordonnees.y]
 
     return res
   }, [])
@@ -101,120 +97,84 @@ export interface GeoJsonResult<T> {
   data: T
 }
 
-export const geojsonIntersectsSDOM = async (
-  geojson: Feature<any>
-): Promise<GeoJsonResult<SDOMZoneId[]>> => {
+export const geojsonIntersectsSDOM = async (geojson: Feature<any>): Promise<GeoJsonResult<SDOMZoneId[]>> => {
   let result: { rows: { id: SDOMZoneId }[] }
   let fallback = false
   try {
     result = await knex.raw(
       `select sdom_zones_postgis.id from sdom_zones_postgis
-         where ST_INTERSECTS(ST_GeomFromGeoJSON('${JSON.stringify(
-           geojson.geometry
-         )}'), sdom_zones_postgis.geometry) is true`
+         where ST_INTERSECTS(ST_GeomFromGeoJSON('${JSON.stringify(geojson.geometry)}'), sdom_zones_postgis.geometry) is true`
     )
   } catch (e) {
     fallback = true
-    console.warn(
-      "Une erreur est survenue lors du calcul de l'intersection avec des zones du sdom, tentative de correction automatique"
-    )
+    console.warn("Une erreur est survenue lors du calcul de l'intersection avec des zones du sdom, tentative de correction automatique")
     result = await knex.raw(
       `select sdom_zones_postgis.id from sdom_zones_postgis
-             where ST_INTERSECTS(ST_MAKEVALID(ST_GeomFromGeoJSON('${JSON.stringify(
-               geojson.geometry
-             )}')), sdom_zones_postgis.geometry) is true`
+             where ST_INTERSECTS(ST_MAKEVALID(ST_GeomFromGeoJSON('${JSON.stringify(geojson.geometry)}')), sdom_zones_postgis.geometry) is true`
     )
   }
 
   return { fallback, data: result.rows.map(({ id }) => id) }
 }
 
-export const geojsonIntersectsForets = async (
-  geojson: Feature<any>
-): Promise<GeoJsonResult<string[]>> => {
+export const geojsonIntersectsForets = async (geojson: Feature<any>): Promise<GeoJsonResult<string[]>> => {
   let result: { rows: { id: string }[] }
   let fallback = false
   try {
     result = await knex.raw(
       `select forets_postgis.id from forets_postgis 
-           where ST_INTERSECTS(ST_GeomFromGeoJSON('${JSON.stringify(
-             geojson.geometry
-           )}'), forets_postgis.geometry) is true`
+           where ST_INTERSECTS(ST_GeomFromGeoJSON('${JSON.stringify(geojson.geometry)}'), forets_postgis.geometry) is true`
     )
   } catch (e) {
     fallback = true
-    console.warn(
-      "Une erreur est survenue lors du calcul de l'intersection avec des forêts, tentative de correction automatique"
-    )
+    console.warn("Une erreur est survenue lors du calcul de l'intersection avec des forêts, tentative de correction automatique")
     result = await knex.raw(
       `select forets_postgis.id from forets_postgis 
-           where ST_INTERSECTS(ST_MAKEVALID(ST_GeomFromGeoJSON('${JSON.stringify(
-             geojson.geometry
-           )}')), forets_postgis.geometry) is true`
+           where ST_INTERSECTS(ST_MAKEVALID(ST_GeomFromGeoJSON('${JSON.stringify(geojson.geometry)}')), forets_postgis.geometry) is true`
     )
   }
 
   return { fallback, data: result.rows.map(({ id }) => id) }
 }
 
-export const geojsonIntersectsSecteursMaritime = async (
-  geojson: Feature<any>
-): Promise<GeoJsonResult<SecteursMaritimesIds[]>> => {
+export const geojsonIntersectsSecteursMaritime = async (geojson: Feature<any>): Promise<GeoJsonResult<SecteursMaritimesIds[]>> => {
   let result: { rows: { id: SecteursMaritimesIds }[] }
   let fallback = false
   try {
     result = await knex.raw(
       `select secteurs_maritime_postgis.id from secteurs_maritime_postgis 
-           where ST_INTERSECTS(ST_GeomFromGeoJSON('${JSON.stringify(
-             geojson.geometry
-           )}'), secteurs_maritime_postgis.geometry) is true`
+           where ST_INTERSECTS(ST_GeomFromGeoJSON('${JSON.stringify(geojson.geometry)}'), secteurs_maritime_postgis.geometry) is true`
     )
   } catch (e) {
     fallback = true
-    console.warn(
-      "Une erreur est survenue lors du calcul de l'intersection avec des secteurs maritimes, tentative de correction automatique"
-    )
+    console.warn("Une erreur est survenue lors du calcul de l'intersection avec des secteurs maritimes, tentative de correction automatique")
     result = await knex.raw(
       `select secteurs_maritime_postgis.id from secteurs_maritime_postgis 
-           where ST_INTERSECTS(ST_MAKEVALID(ST_GeomFromGeoJSON('${JSON.stringify(
-             geojson.geometry
-           )}')), secteurs_maritime_postgis.geometry) is true`
+           where ST_INTERSECTS(ST_MAKEVALID(ST_GeomFromGeoJSON('${JSON.stringify(geojson.geometry)}')), secteurs_maritime_postgis.geometry) is true`
     )
   }
 
   return { fallback, data: result.rows.map(({ id }) => id) }
 }
 
-export const geojsonIntersectsCommunes = async (
-  geojson: Feature<any>
-): Promise<GeoJsonResult<{ id: string; surface: number }[]>> => {
+export const geojsonIntersectsCommunes = async (geojson: Feature<any>): Promise<GeoJsonResult<{ id: string; surface: number }[]>> => {
   let result: { rows: { id: string; surface: string }[] }
   let fallback = false
   try {
     result = await knex.raw(
       `select communes_postgis.id,
-                ST_Area(ST_INTERSECTION(ST_GeomFromGeoJSON('${JSON.stringify(
-                  geojson.geometry
-                )}'), communes_postgis.geometry), true) as surface
+                ST_Area(ST_INTERSECTION(ST_GeomFromGeoJSON('${JSON.stringify(geojson.geometry)}'), communes_postgis.geometry), true) as surface
          from communes_postgis
-         where ST_INTERSECTS(ST_GeomFromGeoJSON('${JSON.stringify(
-           geojson.geometry
-         )}'), communes_postgis.geometry) is true`
+         where ST_INTERSECTS(ST_GeomFromGeoJSON('${JSON.stringify(geojson.geometry)}'), communes_postgis.geometry) is true`
     )
   } catch (e) {
     fallback = true
-    console.warn(
-      "Une erreur est survenue lors du calcul de l'intersection avec des communes, tentative de correction automatique"
-    )
+    console.warn("Une erreur est survenue lors du calcul de l'intersection avec des communes, tentative de correction automatique")
     result = await knex.raw(
       `select communes_postgis.id,
-                ST_Area(ST_INTERSECTION(ST_MAKEVALID(ST_GeomFromGeoJSON('${JSON.stringify(
-                  geojson.geometry
-                )}')), communes_postgis.geometry), true) as surface
+                ST_Area(ST_INTERSECTION(ST_MAKEVALID(ST_GeomFromGeoJSON('${JSON.stringify(geojson.geometry)}')), communes_postgis.geometry), true) as surface
          from communes_postgis
-         where ST_INTERSECTS(ST_MAKEVALID(ST_GeomFromGeoJSON('${JSON.stringify(
-           geojson.geometry
-         )}')), communes_postgis.geometry) is true`
+         where ST_INTERSECTS(ST_MAKEVALID(ST_GeomFromGeoJSON('${JSON.stringify(geojson.geometry)}')), communes_postgis.geometry) is true`
     )
   }
 
@@ -222,7 +182,7 @@ export const geojsonIntersectsCommunes = async (
     fallback,
     data: result.rows.map(row => ({
       id: row.id,
-      surface: Number.parseInt(row.surface)
-    }))
+      surface: Number.parseInt(row.surface),
+    })),
   }
 }
diff --git a/packages/api/src/tools/index.test.ts b/packages/api/src/tools/index.test.ts
index fe67fb419..234bfb53e 100644
--- a/packages/api/src/tools/index.test.ts
+++ b/packages/api/src/tools/index.test.ts
@@ -44,18 +44,18 @@ describe('comparaison entre des tableaux', () => {
       'id',
       [
         { id: 1, nom: 'nom-1' },
-        { id: 2, nom: 'nom-2' }
+        { id: 2, nom: 'nom-2' },
       ],
       [
         { id: 1, nom: 'nom-1-bis' },
-        { id: 3, nom: 'nom-3' }
+        { id: 3, nom: 'nom-3' },
       ]
     )
 
     expect(res).toEqual([
       { id: 1, nom: 'nom-1' },
       { id: 2, nom: 'nom-2' },
-      { id: 3, nom: 'nom-3' }
+      { id: 3, nom: 'nom-3' },
     ])
   })
 
@@ -64,11 +64,11 @@ describe('comparaison entre des tableaux', () => {
       'id',
       [
         { id: 1, nom: 'nom-1' },
-        { id: 2, nom: 'nom-2' }
+        { id: 2, nom: 'nom-2' },
       ],
       [
         { id: 1, nom: 'nom-1-bis' },
-        { id: 3, nom: 'nom-3' }
+        { id: 3, nom: 'nom-3' },
       ]
     )
 
diff --git a/packages/api/src/tools/index.ts b/packages/api/src/tools/index.ts
index 9d0365a7c..4f23d84b5 100644
--- a/packages/api/src/tools/index.ts
+++ b/packages/api/src/tools/index.ts
@@ -22,16 +22,9 @@ export const dupRemove = (key: string, ...arrays: Index<any>[][]) =>
   )
 
 export const dupFind = (key: string, ...arrays: Index<any>[][]) =>
-  arrays.reduce(
-    (result: Index<any>[], array) =>
-      result.filter(el => array.find(e => e[key] && e[key] === el[key])),
-    arrays.pop() as Index<any>[]
-  )
+  arrays.reduce((result: Index<any>[], array) => result.filter(el => array.find(e => e[key] && e[key] === el[key])), arrays.pop() as Index<any>[])
 
-export const objectsDiffer = (
-  a: Index<any> | any,
-  b: Index<any> | any
-): boolean => {
+export const objectsDiffer = (a: Index<any> | any, b: Index<any> | any): boolean => {
   const comparator = (a: Index<any> | any, b: Index<any> | any) =>
     Object.keys(a).find(k => {
       if (a[k] && b[k]) {
diff --git a/packages/api/src/tools/matomo.ts b/packages/api/src/tools/matomo.ts
index d3dc833af..cb074879a 100644
--- a/packages/api/src/tools/matomo.ts
+++ b/packages/api/src/tools/matomo.ts
@@ -1,12 +1,6 @@
 import MatomoTracker from 'matomo-tracker'
 
 export const matomo =
-  process.env.API_MATOMO_ID &&
-  Number(process.env.API_MATOMO_ID) &&
-  process.env.API_MATOMO_URL
-    ? new MatomoTracker(
-        Number(process.env.API_MATOMO_ID),
-        `${process.env.API_MATOMO_URL}/matomo.php`,
-        false
-      )
+  process.env.API_MATOMO_ID && Number(process.env.API_MATOMO_ID) && process.env.API_MATOMO_URL
+    ? new MatomoTracker(Number(process.env.API_MATOMO_ID), `${process.env.API_MATOMO_URL}/matomo.php`, false)
     : null
diff --git a/packages/api/src/tools/territoires-update.ts b/packages/api/src/tools/territoires-update.ts
index 21b36bab1..c222a73a0 100644
--- a/packages/api/src/tools/territoires-update.ts
+++ b/packages/api/src/tools/territoires-update.ts
@@ -6,11 +6,7 @@ import JSZip from 'jszip'
 import Forets from '../database/models/forets.js'
 import { Readable } from 'stream'
 import { SDOMZoneId, SDOMZoneIds } from 'camino-common/src/static/sdom.js'
-import {
-  assertsFacade,
-  assertsSecteur,
-  secteurAJour
-} from 'camino-common/src/static/facades.js'
+import { assertsFacade, assertsSecteur, secteurAJour } from 'camino-common/src/static/facades.js'
 import { createRequire } from 'node:module'
 const require = createRequire(import.meta.url)
 const { streamArray } = require('stream-json/streamers/StreamArray')
@@ -18,17 +14,11 @@ const { withParser } = require('stream-json/filters/Pick')
 const { chain } = require('stream-chain')
 
 const communesUpdate = async () => {
-  const communesIdsKnown: string[] = (await Communes.query()).map(
-    ({ id }) => id
-  )
-  const communesPostgisIdsKnown: string[] = (
-    await knex.select('id').from('communes_postgis')
-  ).map(({ id }: { id: string }) => id)
+  const communesIdsKnown: string[] = (await Communes.query()).map(({ id }) => id)
+  const communesPostgisIdsKnown: string[] = (await knex.select('id').from('communes_postgis')).map(({ id }: { id: string }) => id)
   console.info('Téléchargement du fichier des communes')
 
-  const communesFetch = await fetch(
-    'http://etalab-datasets.geo.data.gouv.fr/contours-administratifs/latest/geojson/communes-5m.geojson'
-  )
+  const communesFetch = await fetch('http://etalab-datasets.geo.data.gouv.fr/contours-administratifs/latest/geojson/communes-5m.geojson')
 
   console.info('Traitement du fichier des communes')
   if (communesFetch.body === null) {
@@ -44,40 +34,34 @@ const communesUpdate = async () => {
       }
       const commune = value
       try {
-        const result = await knex.raw(
-          `select ST_MakeValid(ST_MULTI(ST_SetSRID(ST_GeomFromGeoJSON('${JSON.stringify(
-            commune.geometry
-          )}'), 4326))) as result`
-        )
+        const result = await knex.raw(`select ST_MakeValid(ST_MULTI(ST_SetSRID(ST_GeomFromGeoJSON('${JSON.stringify(commune.geometry)}'), 4326))) as result`)
 
         if (communesPostgisIdsKnown.includes(commune.properties.code)) {
-          await knex('communes_postgis')
-            .where('id', commune.properties.code)
-            .update({
-              geometry: result.rows[0].result
-            })
+          await knex('communes_postgis').where('id', commune.properties.code).update({
+            geometry: result.rows[0].result,
+          })
         } else {
           await knex('communes_postgis').insert({
             id: commune.properties.code,
-            geometry: result.rows[0].result
+            geometry: result.rows[0].result,
           })
         }
         if (communesIdsKnown.includes(commune.properties.code)) {
           await knex('communes').where('id', commune.properties.code).update({
             nom: commune.properties.nom,
-            departementId: commune.properties.departement
+            departementId: commune.properties.departement,
           })
         } else {
           await knex('communes').insert({
             id: commune.properties.code,
             nom: commune.properties.nom,
-            departementId: commune.properties.departement
+            departementId: commune.properties.departement,
           })
         }
       } catch (e) {
         console.error(commune.properties.nom, e)
       }
-    }
+    },
   ])
   const promise = new Promise<void>((resolve, reject) => {
     pipeline.on('error', (error: any) => {
@@ -95,9 +79,7 @@ const communesUpdate = async () => {
 
 const geoguyaneFileGet = async (path: string) => {
   const dataUrlFetch = await fetch(path)
-  const dataUrlJson = await dataUrlFetch
-    .json()
-    .then((value: any) => value as { data: any })
+  const dataUrlJson = await dataUrlFetch.json().then((value: any) => value as { data: any })
 
   console.info('Téléchargement des données', dataUrlJson.data)
   const foretsZip = await fetch(dataUrlJson.data)
@@ -117,39 +99,33 @@ const foretsUpdate = async () => {
   const geojson = await geoguyaneFileGet(foretsUrlGenerator)
 
   const foretsIdsKnown = (await Forets.query()).map(({ id }) => id)
-  const foretsPostgisIdsKnown: string[] = (
-    await knex.select('id').from('forets_postgis')
-  ).map(({ id }: { id: string }) => id)
+  const foretsPostgisIdsKnown: string[] = (await knex.select('id').from('forets_postgis')).map(({ id }: { id: string }) => id)
 
   console.info('Traitement du fichier des forets')
 
   for (const foret of geojson.features) {
     try {
-      const result = await knex.raw(
-        `select ST_MakeValid(ST_SetSRID(ST_GeomFromGeoJSON('${JSON.stringify(
-          foret.geometry
-        )}'), 4326)) as result`
-      )
+      const result = await knex.raw(`select ST_MakeValid(ST_SetSRID(ST_GeomFromGeoJSON('${JSON.stringify(foret.geometry)}'), 4326)) as result`)
 
       const id = foret.properties.code_for
       if (foretsPostgisIdsKnown.includes(id)) {
         await knex('forets_postgis').where('id', id).update({
-          geometry: result.rows[0].result
+          geometry: result.rows[0].result,
         })
       } else {
         await knex('forets_postgis').insert({
           id,
-          geometry: result.rows[0].result
+          geometry: result.rows[0].result,
         })
       }
       if (foretsIdsKnown.includes(id)) {
         await knex('forets').where('id', id).update({
-          nom: foret.properties.foret
+          nom: foret.properties.foret,
         })
       } else {
         await knex('forets').insert({
           id,
-          nom: foret.properties.foret
+          nom: foret.properties.foret,
         })
       }
     } catch (e) {
@@ -165,13 +141,9 @@ const secteursMaritimeUpdates = async () => {
   const secteursUrl =
     'https://gisdata.cerema.fr/arcgis/rest/services/Carte_vocation_dsf_2020/MapServer/0/query?where=1%3D1&text=&objectIds=&time=&geometry=&geometryType=esriGeometryEnvelope&inSR=&spatialRel=esriSpatialRelIntersects&relationParam=&outFields=secteur%2Cfacade%2COBJECTID%2Cid&returnGeometry=true&returnTrueCurves=false&maxAllowableOffset=&geometryPrecision=&outSR=&having=&returnIdsOnly=false&returnCountOnly=false&orderByFields=&groupByFieldsForStatistics=&outStatistics=&returnZ=false&returnM=false&gdbVersion=&historicMoment=&returnDistinctValues=false&resultOffset=&resultRecordCount=&queryByDistance=&returnExtentOnly=false&datumTransformation=&parameterValues=&rangeValues=&quantizationParameters=&f=geojson'
 
-  const secteurs = await (await fetch(secteursUrl))
-    .json()
-    .then((value: any) => value as { features: any[] })
+  const secteurs = await (await fetch(secteursUrl)).json().then((value: any) => value as { features: any[] })
 
-  const secteurIdsKnown: number[] = (
-    await knex.select('id').from('secteurs_maritime_postgis')
-  ).map(({ id }: any) => id)
+  const secteurIdsKnown: number[] = (await knex.select('id').from('secteurs_maritime_postgis')).map(({ id }: any) => id)
   for (const secteur of secteurs.features) {
     try {
       const id: number = secteur.id
@@ -183,25 +155,19 @@ const secteursMaritimeUpdates = async () => {
       assertsSecteur(nomFacade, nomSecteur)
 
       if (!secteurAJour(nomFacade, nomSecteur, id, secteurId)) {
-        throw new Error(
-          `L'id ou le secteur id a changé '${nomFacade}', '${nomSecteur}', '${secteurId}', '${id}'`
-        )
+        throw new Error(`L'id ou le secteur id a changé '${nomFacade}', '${nomSecteur}', '${secteurId}', '${id}'`)
       }
 
-      const result = await knex.raw(
-        `select ST_MakeValid(ST_Multi(ST_SetSRID(ST_GeomFromGeoJSON('${JSON.stringify(
-          secteur.geometry
-        )}'), 4326))) as result`
-      )
+      const result = await knex.raw(`select ST_MakeValid(ST_Multi(ST_SetSRID(ST_GeomFromGeoJSON('${JSON.stringify(secteur.geometry)}'), 4326))) as result`)
 
       if (secteurIdsKnown.includes(id)) {
         await knex('secteurs_maritime_postgis').where('id', id).update({
-          geometry: result.rows[0].result
+          geometry: result.rows[0].result,
         })
       } else {
         await knex('secteurs_maritime_postgis').insert({
           id,
-          geometry: result.rows[0].result
+          geometry: result.rows[0].result,
         })
       }
     } catch (e) {
@@ -219,23 +185,23 @@ const sdomZonesUpdate = async () => {
     {
       id: SDOMZoneIds.Zone0Potentielle,
       nom: 'ZONE 0, potentielle',
-      url: 'https://telecarto.geoguyane.fr/?email=&direct=MQ%3D%3D&mode=prodige&data_type=vector&service_idx=1&format=anNvbg%3D%3D&projection=NDMyNg%3D%3D&data=UE9TVEdJU19EQVRBJTNBem9uZV8wX3BvdGVudGllbGxlX3NfOTcz&metadata_id=NjYwMzYwMjE%3D&bTerritoire=0&territoire_type=&territoire_data=&territoire_area=%25&extractionattributaire_couche=&restricted_area_field=%25&restricted_area_buffer=%25'
+      url: 'https://telecarto.geoguyane.fr/?email=&direct=MQ%3D%3D&mode=prodige&data_type=vector&service_idx=1&format=anNvbg%3D%3D&projection=NDMyNg%3D%3D&data=UE9TVEdJU19EQVRBJTNBem9uZV8wX3BvdGVudGllbGxlX3NfOTcz&metadata_id=NjYwMzYwMjE%3D&bTerritoire=0&territoire_type=&territoire_data=&territoire_area=%25&extractionattributaire_couche=&restricted_area_field=%25&restricted_area_buffer=%25',
     },
     {
       id: SDOMZoneIds.Zone0,
       nom: 'ZONE 0, activité minière interdite',
-      url: 'https://telecarto.geoguyane.fr/?email=&direct=MQ%3D%3D&mode=prodige&data_type=vector&service_idx=1&format=anNvbg%3D%3D&projection=NDMyNg%3D%3D&data=UE9TVEdJU19EQVRBJTNBem9uZV8wX3NfOTcz&metadata_id=NjYwMzU4ODE%3D&bTerritoire=0&territoire_type=&territoire_data=&territoire_area=%25&extractionattributaire_couche=&restricted_area_field=%25&restricted_area_buffer=%25'
+      url: 'https://telecarto.geoguyane.fr/?email=&direct=MQ%3D%3D&mode=prodige&data_type=vector&service_idx=1&format=anNvbg%3D%3D&projection=NDMyNg%3D%3D&data=UE9TVEdJU19EQVRBJTNBem9uZV8wX3NfOTcz&metadata_id=NjYwMzU4ODE%3D&bTerritoire=0&territoire_type=&territoire_data=&territoire_area=%25&extractionattributaire_couche=&restricted_area_field=%25&restricted_area_buffer=%25',
     },
     {
       id: SDOMZoneIds.Zone1,
       nom: 'ZONE 1, activité minière interdite sauf exploitation souterraine et recherches aériennes',
-      url: 'https://telecarto.geoguyane.fr/?email=&direct=MQ%3D%3D&mode=prodige&data_type=vector&service_idx=1&format=anNvbg%3D%3D&projection=NDMyNg%3D%3D&data=UE9TVEdJU19EQVRBJTNBem9uZV8xX3NfOTcz&metadata_id=NjYwMzU4ODI%3D&bTerritoire=0&territoire_type=&territoire_data=&territoire_area=%25&extractionattributaire_couche=&restricted_area_field=%25&restricted_area_buffer=%25'
+      url: 'https://telecarto.geoguyane.fr/?email=&direct=MQ%3D%3D&mode=prodige&data_type=vector&service_idx=1&format=anNvbg%3D%3D&projection=NDMyNg%3D%3D&data=UE9TVEdJU19EQVRBJTNBem9uZV8xX3NfOTcz&metadata_id=NjYwMzU4ODI%3D&bTerritoire=0&territoire_type=&territoire_data=&territoire_area=%25&extractionattributaire_couche=&restricted_area_field=%25&restricted_area_buffer=%25',
     },
     {
       id: SDOMZoneIds.Zone2,
       nom: 'ZONE 2, activité minière autorisée sous contrainte',
-      url: 'https://telecarto.geoguyane.fr/?email=&direct=MQ%3D%3D&mode=prodige&data_type=vector&service_idx=1&format=anNvbg%3D%3D&projection=NDMyNg%3D%3D&data=UE9TVEdJU19EQVRBJTNBem9uZV8yX3NfOTcz&metadata_id=NjYwMzU4ODM%3D&bTerritoire=0&territoire_type=&territoire_data=&territoire_area=%25&extractionattributaire_couche=&restricted_area_field=%25&restricted_area_buffer=%25'
-    }
+      url: 'https://telecarto.geoguyane.fr/?email=&direct=MQ%3D%3D&mode=prodige&data_type=vector&service_idx=1&format=anNvbg%3D%3D&projection=NDMyNg%3D%3D&data=UE9TVEdJU19EQVRBJTNBem9uZV8yX3NfOTcz&metadata_id=NjYwMzU4ODM%3D&bTerritoire=0&territoire_type=&territoire_data=&territoire_area=%25&extractionattributaire_couche=&restricted_area_field=%25&restricted_area_buffer=%25',
+    },
   ]
 
   for (const zone of zones) {
@@ -245,26 +211,20 @@ const sdomZonesUpdate = async () => {
 
     console.info('Traitement du fichier de la ' + zone.nom)
 
-    const sdomZonesPostgisIdsKnown: string[] = (
-      await knex.select('id').from('sdom_zones_postgis')
-    ).map(({ id }: { id: string }) => id)
+    const sdomZonesPostgisIdsKnown: string[] = (await knex.select('id').from('sdom_zones_postgis')).map(({ id }: { id: string }) => id)
 
     try {
       const zoneFeature = geojson.features[0]
-      const result = await knex.raw(
-        `select ST_MakeValid(ST_SetSRID(ST_GeomFromGeoJSON('${JSON.stringify(
-          zoneFeature.geometry
-        )}'), 4326)) as result`
-      )
+      const result = await knex.raw(`select ST_MakeValid(ST_SetSRID(ST_GeomFromGeoJSON('${JSON.stringify(zoneFeature.geometry)}'), 4326)) as result`)
 
       if (sdomZonesPostgisIdsKnown.includes(zone.id)) {
         await knex('sdom_zones_postgis').where('id', zone.id).update({
-          geometry: result.rows[0].result
+          geometry: result.rows[0].result,
         })
       } else {
         await knex('sdom_zones_postgis').insert({
           id: zone.id,
-          geometry: result.rows[0].result
+          geometry: result.rows[0].result,
         })
       }
     } catch (e) {
diff --git a/packages/api/src/types.ts b/packages/api/src/types.ts
index 26a15a589..6aadc0de2 100644
--- a/packages/api/src/types.ts
+++ b/packages/api/src/types.ts
@@ -1,22 +1,9 @@
 import { FileUpload } from 'graphql-upload'
-import {
-  AdministrationId,
-  AdministrationTypeId
-} from 'camino-common/src/static/administrations.js'
-import {
-  CodePostal,
-  DepartementId
-} from 'camino-common/src/static/departement.js'
+import { AdministrationId, AdministrationTypeId } from 'camino-common/src/static/administrations.js'
+import { CodePostal, DepartementId } from 'camino-common/src/static/departement.js'
 import { RegionId } from 'camino-common/src/static/region.js'
 import { GeoSystemeId } from 'camino-common/src/static/geoSystemes.js'
-import {
-  BaseUserNotNull,
-  isAdministrationRole,
-  isEntrepriseOrBureauDetudeRole,
-  Role,
-  User,
-  UserNotNull
-} from 'camino-common/src/roles.js'
+import { BaseUserNotNull, isAdministrationRole, isEntrepriseOrBureauDetudeRole, Role, User, UserNotNull } from 'camino-common/src/roles.js'
 import { DomaineId } from 'camino-common/src/static/domaines.js'
 import { TitreTypeTypeId } from 'camino-common/src/static/titresTypesTypes.js'
 import { PaysId } from 'camino-common/src/static/pays.js'
@@ -78,7 +65,7 @@ enum TitreEtapesTravauxTypes {
   Recolement = 'wrt',
   Abandon = 'wab',
   DecisionAdmin = 'wdm',
-  PorterAConnaissance = 'wpb'
+  PorterAConnaissance = 'wpb',
 }
 
 interface IFields {
@@ -95,36 +82,14 @@ interface IColonne<T> {
   groupBy?: boolean | string[]
 }
 
-export const propsTitreEtapeIdKeys = [
-  'points',
-  'titulaires',
-  'amodiataires',
-  'substances',
-  'surface'
-] as const
+export const propsTitreEtapeIdKeys = ['points', 'titulaires', 'amodiataires', 'substances', 'surface'] as const
 export type PropsTitreEtapeIdKeys = (typeof propsTitreEtapeIdKeys)[number]
 
-type IPropId =
-  | PropsTitreEtapeIdKeys
-  | 'administrationsLocales'
-  | 'communes'
-  | 'forets'
-
-type ITitreColonneId =
-  | 'nom'
-  | 'domaine'
-  | 'coordonnees'
-  | 'type'
-  | 'statut'
-  | 'activites'
-
-type ITitreDemarcheColonneId =
-  | 'titreNom'
-  | 'titreDomaine'
-  | 'titreType'
-  | 'titreStatut'
-  | 'type'
-  | 'statut'
+type IPropId = PropsTitreEtapeIdKeys | 'administrationsLocales' | 'communes' | 'forets'
+
+type ITitreColonneId = 'nom' | 'domaine' | 'coordonnees' | 'type' | 'statut' | 'activites'
+
+type ITitreDemarcheColonneId = 'titreNom' | 'titreDomaine' | 'titreType' | 'titreStatut' | 'type' | 'statut'
 
 type ITitreActiviteColonneId = 'titreNom' | 'titulaire' | 'periode' | 'statut'
 
@@ -136,14 +101,7 @@ interface IContenuId {
   elementId: string
 }
 
-type IContenuValeur =
-  | string
-  | number
-  | string[]
-  | boolean
-  | IContenuElement[]
-  | { file: FileUpload }
-  | null
+type IContenuValeur = string | number | string[] | boolean | IContenuElement[] | { file: FileUpload } | null
 
 interface IContenuElement {
   [elementId: string]: IContenuValeur
@@ -191,17 +149,7 @@ interface ISection {
 
 type IValeurMetasNom = 'devises' | 'unites'
 
-type ISectionElementType =
-  | 'integer'
-  | 'number'
-  | 'text'
-  | 'date'
-  | 'textarea'
-  | 'checkbox'
-  | 'checkboxes'
-  | 'select'
-  | 'radio'
-  | 'file'
+type ISectionElementType = 'integer' | 'number' | 'text' | 'date' | 'textarea' | 'checkbox' | 'checkboxes' | 'select' | 'radio' | 'file'
 
 interface ISectionElement {
   id: string
@@ -310,12 +258,7 @@ interface IDemarcheType {
   travaux?: boolean
 }
 
-export const DOCUMENTS_REPERTOIRES = [
-  'demarches',
-  'activites',
-  'entreprises',
-  'tmp'
-] as const
+export const DOCUMENTS_REPERTOIRES = ['demarches', 'activites', 'entreprises', 'tmp'] as const
 type IDocumentRepertoire = (typeof DOCUMENTS_REPERTOIRES)[number]
 
 interface IDomaine {
@@ -370,8 +313,7 @@ interface IEtapeTypeDocumentType {
 
 interface IEtapeTypeJustificatifType extends IEtapeTypeDocumentType {}
 
-interface ITitreTypeDemarcheTypeEtapeTypeJustificatifType
-  extends IEtapeTypeDocumentType {
+interface ITitreTypeDemarcheTypeEtapeTypeJustificatifType extends IEtapeTypeDocumentType {
   titreTypeId: string
   demarcheTypeId: string
 }
@@ -769,7 +711,7 @@ export const formatUser = (userInBdd: IUtilisateur): UserNotNull => {
     id: userInBdd.id,
     nom: userInBdd.nom,
     prenom: userInBdd.prenom,
-    email: userInBdd.email
+    email: userInBdd.email,
   }
   if (isAdministrationRole(userInBdd.role)) {
     if (!isNotNullNorUndefined(userInBdd.administrationId)) {
@@ -779,7 +721,7 @@ export const formatUser = (userInBdd: IUtilisateur): UserNotNull => {
     return {
       ...baseUser,
       role: userInBdd.role,
-      administrationId: userInBdd.administrationId
+      administrationId: userInBdd.administrationId,
     }
   }
 
@@ -791,7 +733,7 @@ export const formatUser = (userInBdd: IUtilisateur): UserNotNull => {
     return {
       ...baseUser,
       role: userInBdd.role,
-      entreprises: userInBdd.entreprises
+      entreprises: userInBdd.entreprises,
     }
   }
 
@@ -899,5 +841,5 @@ export {
   IActiviteTypePays,
   ITitreDemande,
   IJournaux,
-  IDecisionAnnexeContenu
+  IDecisionAnnexeContenu,
 }
diff --git a/packages/api/tests/__mocks__/fetch-insee-api.ts b/packages/api/tests/__mocks__/fetch-insee-api.ts
index 3b8eb4812..52c7586c5 100644
--- a/packages/api/tests/__mocks__/fetch-insee-api.ts
+++ b/packages/api/tests/__mocks__/fetch-insee-api.ts
@@ -1,7 +1,4 @@
-import {
-  IApiSirenEtablissement,
-  IApiSirenUniteLegale
-} from '../../src/tools/api-insee/types.js'
+import { IApiSirenEtablissement, IApiSirenUniteLegale } from '../../src/tools/api-insee/types.js'
 
 const entreprise = {
   siren: '729800706',
@@ -44,7 +41,7 @@ const entreprise = {
     nicSiegeUniteLegale: '00586',
     dateDernierTraitementUniteLegale: '2020-03-25T12:24:42',
     categorieEntreprise: 'GE',
-    anneeCategorieEntreprise: '2017'
+    anneeCategorieEntreprise: '2017',
   },
   adresseEtablissement: {
     complementAdresseEtablissement: 'TOUR SAINT GOBAIN',
@@ -60,7 +57,7 @@ const entreprise = {
     codeCedexEtablissement: null,
     libelleCedexEtablissement: null,
     codePaysEtrangerEtablissement: null,
-    libellePaysEtrangerEtablissement: null
+    libellePaysEtrangerEtablissement: null,
   },
   adresse2Etablissement: {
     complementAdresse2Etablissement: null,
@@ -76,7 +73,7 @@ const entreprise = {
     codeCedex2Etablissement: null,
     libelleCedex2Etablissement: null,
     codePaysEtranger2Etablissement: null,
-    libellePaysEtranger2Etablissement: null
+    libellePaysEtranger2Etablissement: null,
   },
   periodesEtablissement: [
     {
@@ -94,9 +91,9 @@ const entreprise = {
       nomenclatureActivitePrincipaleEtablissement: 'NAFRev2',
       changementActivitePrincipaleEtablissement: false,
       caractereEmployeurEtablissement: 'N',
-      changementCaractereEmployeurEtablissement: false
-    }
-  ]
+      changementCaractereEmployeurEtablissement: false,
+    },
+  ],
 } as unknown as IApiSirenEtablissement
 
 const entrepriseAndEtablissements = {
@@ -144,7 +141,7 @@ const entrepriseAndEtablissements = {
       economieSocialeSolidaireUniteLegale: 'N',
       changementEconomieSocialeSolidaireUniteLegale: true,
       caractereEmployeurUniteLegale: 'O',
-      changementCaractereEmployeurUniteLegale: false
+      changementCaractereEmployeurUniteLegale: false,
     },
     {
       dateFin: '2020-01-31',
@@ -171,7 +168,7 @@ const entrepriseAndEtablissements = {
       economieSocialeSolidaireUniteLegale: 'N',
       changementEconomieSocialeSolidaireUniteLegale: true,
       caractereEmployeurUniteLegale: 'O',
-      changementCaractereEmployeurUniteLegale: false
+      changementCaractereEmployeurUniteLegale: false,
     },
     {
       dateFin: '2018-12-31',
@@ -198,7 +195,7 @@ const entrepriseAndEtablissements = {
       economieSocialeSolidaireUniteLegale: null,
       changementEconomieSocialeSolidaireUniteLegale: false,
       caractereEmployeurUniteLegale: 'O',
-      changementCaractereEmployeurUniteLegale: false
+      changementCaractereEmployeurUniteLegale: false,
     },
     {
       dateFin: '2008-12-30',
@@ -225,7 +222,7 @@ const entrepriseAndEtablissements = {
       economieSocialeSolidaireUniteLegale: null,
       changementEconomieSocialeSolidaireUniteLegale: false,
       caractereEmployeurUniteLegale: 'O',
-      changementCaractereEmployeurUniteLegale: false
+      changementCaractereEmployeurUniteLegale: false,
     },
     {
       dateFin: '2008-08-19',
@@ -252,7 +249,7 @@ const entrepriseAndEtablissements = {
       economieSocialeSolidaireUniteLegale: null,
       changementEconomieSocialeSolidaireUniteLegale: false,
       caractereEmployeurUniteLegale: 'O',
-      changementCaractereEmployeurUniteLegale: false
+      changementCaractereEmployeurUniteLegale: false,
     },
     {
       dateFin: '2007-12-31',
@@ -279,7 +276,7 @@ const entrepriseAndEtablissements = {
       economieSocialeSolidaireUniteLegale: null,
       changementEconomieSocialeSolidaireUniteLegale: false,
       caractereEmployeurUniteLegale: 'O',
-      changementCaractereEmployeurUniteLegale: false
+      changementCaractereEmployeurUniteLegale: false,
     },
     {
       dateFin: '2004-12-24',
@@ -306,7 +303,7 @@ const entrepriseAndEtablissements = {
       economieSocialeSolidaireUniteLegale: null,
       changementEconomieSocialeSolidaireUniteLegale: false,
       caractereEmployeurUniteLegale: 'O',
-      changementCaractereEmployeurUniteLegale: false
+      changementCaractereEmployeurUniteLegale: false,
     },
     {
       dateFin: '1999-12-31',
@@ -333,7 +330,7 @@ const entrepriseAndEtablissements = {
       economieSocialeSolidaireUniteLegale: null,
       changementEconomieSocialeSolidaireUniteLegale: false,
       caractereEmployeurUniteLegale: 'O',
-      changementCaractereEmployeurUniteLegale: true
+      changementCaractereEmployeurUniteLegale: true,
     },
     {
       dateFin: '1997-12-24',
@@ -360,7 +357,7 @@ const entrepriseAndEtablissements = {
       economieSocialeSolidaireUniteLegale: null,
       changementEconomieSocialeSolidaireUniteLegale: false,
       caractereEmployeurUniteLegale: null,
-      changementCaractereEmployeurUniteLegale: false
+      changementCaractereEmployeurUniteLegale: false,
     },
     {
       dateFin: '1996-12-31',
@@ -387,9 +384,9 @@ const entrepriseAndEtablissements = {
       economieSocialeSolidaireUniteLegale: null,
       changementEconomieSocialeSolidaireUniteLegale: false,
       caractereEmployeurUniteLegale: null,
-      changementCaractereEmployeurUniteLegale: false
-    }
-  ]
+      changementCaractereEmployeurUniteLegale: false,
+    },
+  ],
 } as unknown as IApiSirenUniteLegale
 
 export { entreprise, entrepriseAndEtablissements }
diff --git a/packages/api/tests/_utils/administrations-permissions.ts b/packages/api/tests/_utils/administrations-permissions.ts
index fa26f5f49..8e1c86eae 100644
--- a/packages/api/tests/_utils/administrations-permissions.ts
+++ b/packages/api/tests/_utils/administrations-permissions.ts
@@ -1,25 +1,14 @@
-import {
-  IDemarcheType,
-  IEtapeType,
-  ITitre,
-  ITitreTypeDemarcheTypeEtapeType
-} from '../../src/types.js'
+import { IDemarcheType, IEtapeType, ITitre, ITitreTypeDemarcheTypeEtapeType } from '../../src/types.js'
 
 import { graphQLCall, queryImport } from './index.js'
 
 import Titres from '../../src/database/models/titres.js'
 import DemarchesTypes from '../../src/database/models/demarches-types.js'
 import options from '../../src/database/queries/_options.js'
-import {
-  etapeTypeGet,
-  titreTypeDemarcheTypeEtapeTypeGet
-} from '../../src/database/queries/metas.js'
+import { etapeTypeGet, titreTypeDemarcheTypeEtapeTypeGet } from '../../src/database/queries/metas.js'
 import { titreEtapePropsIds } from '../../src/business/utils/titre-etape-heritage-props-find.js'
 import { etapeTypeSectionsFormat } from '../../src/api/_format/etapes-types.js'
-import {
-  idGenerate,
-  newDemarcheId
-} from '../../src/database/models/_format/id-create.js'
+import { idGenerate, newDemarcheId } from '../../src/database/models/_format/id-create.js'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
 import { getDocuments } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.js'
 import { documentCreate } from '../../src/database/queries/documents.js'
@@ -27,10 +16,7 @@ import { isGestionnaire } from 'camino-common/src/static/administrationsTitresTy
 import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
 import { toCaminoDate } from 'camino-common/src/date.js'
 import { expect } from 'vitest'
-import {
-  AdministrationId,
-  sortedAdministrations
-} from 'camino-common/src/static/administrations.js'
+import { AdministrationId, sortedAdministrations } from 'camino-common/src/static/administrations.js'
 import { TestUser } from 'camino-common/src/tests-utils.js'
 export const visibleCheck = async (
   administrationId: AdministrationId,
@@ -42,18 +28,14 @@ export const visibleCheck = async (
 ) => {
   const titreQuery = queryImport('titre')
 
-  const administration = sortedAdministrations.find(
-    a => a.id === administrationId
-  )!
+  const administration = sortedAdministrations.find(a => a.id === administrationId)!
 
   const gestionnaire = isGestionnaire(administration.id)
 
   const titre = titreBuild(
     {
-      titreId: `${titreTypeId}${
-        locale ? '-local' : ''
-      }-${cible}-admin-${administrationId}`,
-      titreTypeId
+      titreId: `${titreTypeId}${locale ? '-local' : ''}-${cible}-admin-${administrationId}`,
+      titreTypeId,
     },
     gestionnaire ? administrationId : undefined,
     locale ? administrationId : undefined,
@@ -67,7 +49,7 @@ export const visibleCheck = async (
     { id: titre.id },
     {
       role: 'admin',
-      administrationId: administration.id
+      administrationId: administration.id,
     }
   )
 
@@ -83,70 +65,54 @@ export const visibleCheck = async (
     if (visible) {
       expect(res.body.data.titre.demarches).not.toBeNull()
       expect(res.body.data.titre.demarches![0]).not.toBeNull()
-      expect(res.body.data.titre.demarches![0]!.id).toEqual(
-        titre.demarches![0]!.id
-      )
+      expect(res.body.data.titre.demarches![0]!.id).toEqual(titre.demarches![0]!.id)
     } else {
-      expect(res.body.data.titre ? res.body.data.titre.demarches : []).toEqual(
-        []
-      )
+      expect(res.body.data.titre ? res.body.data.titre.demarches : []).toEqual([])
     }
   } else if (cible === 'etapes') {
     if (visible) {
       expect(res.body.data.titre.demarches![0]!.etapes).not.toBeNull()
-      expect(res.body.data.titre.demarches![0]!.etapes![0]!.id).toEqual(
-        titre.demarches![0]!.etapes![0]!.id
-      )
+      expect(res.body.data.titre.demarches![0]!.etapes![0]!.id).toEqual(titre.demarches![0]!.etapes![0]!.id)
     } else {
       expect(res.body.data.titre.demarches![0]!.etapes).toEqual([])
     }
   }
 }
 
-export const creationCheck = async (
-  administrationId: string,
-  creer: boolean,
-  cible: string,
-  titreTypeId: TitreTypeId
-) => {
-  const administration = sortedAdministrations.find(
-    a => a.id === administrationId
-  )!
+export const creationCheck = async (administrationId: string, creer: boolean, cible: string, titreTypeId: TitreTypeId) => {
+  const administration = sortedAdministrations.find(a => a.id === administrationId)!
 
   if (cible === 'titres') {
     const titre = {
       nom: `${titreTypeId}-${cible}-admin-${administrationId}`,
-      typeId: titreTypeId
+      typeId: titreTypeId,
     }
 
     const titreCreerQuery = queryImport('titre-creer')
     const res = await graphQLCall(
       titreCreerQuery,
       {
-        titre
+        titre,
       },
       {
         role: 'admin',
-        administrationId: administration.id
+        administrationId: administration.id,
       }
     )
 
     if (creer) {
       expect(res.body.data).toMatchObject({
-        titreCreer: { nom: titre.nom }
+        titreCreer: { nom: titre.nom },
       })
     } else {
       expect(res.body.errors[0].message).toBe('permissions insuffisantes')
     }
   } else if (cible === 'demarches') {
     const titreCreated = await titreCreerSuper(administrationId, titreTypeId)
-    const res = await demarcheCreerProfil(
-      titreCreated.body.data.titreCreer.id,
-      {
-        role: 'admin',
-        administrationId: administration.id
-      }
-    )
+    const res = await demarcheCreerProfil(titreCreated.body.data.titreCreer.id, {
+      role: 'admin',
+      administrationId: administration.id,
+    })
 
     if (creer) {
       expect(res.body.errors).toBeUndefined()
@@ -157,29 +123,22 @@ export const creationCheck = async (
   } else if (cible === 'etapes') {
     const titreCreated = await titreCreerSuper(administrationId, titreTypeId)
 
-    const demarcheCreated = await demarcheCreerProfil(
-      titreCreated.body.data.titreCreer.id,
-      { role: 'super' }
-    )
+    const demarcheCreated = await demarcheCreerProfil(titreCreated.body.data.titreCreer.id, { role: 'super' })
 
     expect(demarcheCreated.body.errors).toBeUndefined()
 
     const etapeTypeId = 'mfr'
     const etapeType = (await etapeTypeGet(etapeTypeId, {
-      fields: {}
+      fields: {},
     })) as IEtapeType
 
-    const demarcheType = (await DemarchesTypes.query()
-      .withGraphFetched(options.demarchesTypes.graph)
-      .findById(
-        demarcheCreated.body.data.demarcheCreer.demarches[0].type!.id
-      )) as IDemarcheType
+    const demarcheType = (await DemarchesTypes.query().withGraphFetched(options.demarchesTypes.graph).findById(demarcheCreated.body.data.demarcheCreer.demarches[0].type!.id)) as IDemarcheType
 
     const tde = (await titreTypeDemarcheTypeEtapeTypeGet(
       {
         titreTypeId,
         demarcheTypeId: demarcheType.id,
-        etapeTypeId: etapeType.id
+        etapeTypeId: etapeType.id,
       },
       { fields: { id: {} } }
     )) as ITitreTypeDemarcheTypeEtapeType
@@ -220,14 +179,9 @@ export const creationCheck = async (
       return acc
     }, {} as any)
 
-    const titreDemarcheId =
-      demarcheCreated.body.data.demarcheCreer.demarches[0].id
+    const titreDemarcheId = demarcheCreated.body.data.demarcheCreer.demarches[0].id
 
-    const documentTypesIds = getDocuments(
-      titreTypeId,
-      demarcheType.id,
-      etapeTypeId
-    )
+    const documentTypesIds = getDocuments(titreTypeId, demarcheType.id, etapeTypeId)
       .filter(({ optionnel }) => !optionnel)
       .map(({ id }) => id)
     const documentIds = []
@@ -239,7 +193,7 @@ export const creationCheck = async (
         id,
         typeId: documentTypeId,
         date: toCaminoDate('2020-01-01'),
-        uri: 'https://camino.beta.gouv.fr'
+        uri: 'https://camino.beta.gouv.fr',
       })
     }
     const res = await graphQLCall(
@@ -270,39 +224,31 @@ export const creationCheck = async (
               groupe: 1,
               contour: 1,
               point: 1,
-              references: [
-                { geoSystemeId: '4326', coordonnees: { x: 1, y: 2 } }
-              ]
+              references: [{ geoSystemeId: '4326', coordonnees: { x: 1, y: 2 } }],
             },
             {
               groupe: 1,
               contour: 1,
               point: 2,
-              references: [
-                { geoSystemeId: '4326', coordonnees: { x: 2, y: 2 } }
-              ]
+              references: [{ geoSystemeId: '4326', coordonnees: { x: 2, y: 2 } }],
             },
             {
               groupe: 1,
               contour: 1,
               point: 3,
-              references: [
-                { geoSystemeId: '4326', coordonnees: { x: 2, y: 1 } }
-              ]
+              references: [{ geoSystemeId: '4326', coordonnees: { x: 2, y: 1 } }],
             },
             {
               groupe: 1,
               contour: 1,
               point: 4,
-              references: [
-                { geoSystemeId: '4326', coordonnees: { x: 1, y: 1 } }
-              ]
-            }
-          ]
-        }
+              references: [{ geoSystemeId: '4326', coordonnees: { x: 1, y: 1 } }],
+            },
+          ],
+        },
       },
       {
-        role: 'super'
+        role: 'super',
       }
     )
 
@@ -310,9 +256,7 @@ export const creationCheck = async (
       expect(res.body.errors).toBeUndefined()
       expect(res.body.data).toMatchObject({ etapeCreer: {} })
     } else {
-      expect(res.body.errors[0].message).toBe(
-        'droits insuffisants pour créer cette étape'
-      )
+      expect(res.body.errors[0].message).toBe('droits insuffisants pour créer cette étape')
     }
   }
 }
@@ -325,18 +269,14 @@ export const modificationCheck = async (
   locale?: boolean,
   etapeTypeId?: EtapeTypeId
 ) => {
-  const administration = sortedAdministrations.find(
-    a => a.id === administrationId
-  )!
+  const administration = sortedAdministrations.find(a => a.id === administrationId)!
 
   const gestionnaire = isGestionnaire(administrationId)
 
   const titre = titreBuild(
     {
-      titreId: `${titreTypeId}${
-        locale ? '-local' : ''
-      }${etapeTypeId}-${cible}-modification-admin-${administrationId}`,
-      titreTypeId
+      titreId: `${titreTypeId}${locale ? '-local' : ''}${etapeTypeId}-${cible}-modification-admin-${administrationId}`,
+      titreTypeId,
     },
     gestionnaire ? administrationId : undefined,
     locale ? administrationId : undefined,
@@ -349,7 +289,7 @@ export const modificationCheck = async (
     { id: titre.id },
     {
       role: 'admin',
-      administrationId: administration.id
+      administrationId: administration.id,
     }
   )
 
@@ -357,18 +297,16 @@ export const modificationCheck = async (
     if (modifier) {
       expect(res.body.errors).toBeUndefined()
       expect(res.body.data.titre).toMatchObject({
-        modification: true
+        modification: true,
       })
     } else {
-      expect(
-        res.body.data.titre ? res.body.data.titre.modification : null
-      ).toBeNull()
+      expect(res.body.data.titre ? res.body.data.titre.modification : null).toBeNull()
     }
   } else if (cible === 'demarches') {
     if (modifier) {
       expect(res.body.errors).toBeUndefined()
       expect(res.body.data.titre.demarches![0]).toMatchObject({
-        modification: true
+        modification: true,
       })
     } else {
       expect(res.body.errors).toBeUndefined()
@@ -380,7 +318,7 @@ export const modificationCheck = async (
     if (modifier) {
       expect(res.body.errors).toBeUndefined()
       expect(res.body.data.titre.demarches![0]!.etapes![0]).toMatchObject({
-        modification: true
+        modification: true,
       })
     } else {
       const etapes = res.body.data.titre.demarches![0]!.etapes
@@ -396,25 +334,20 @@ const titreCreerSuper = async (administrationId: string, titreTypeId: string) =>
     {
       titre: {
         nom: `titre-${titreTypeId!}-cree-${administrationId!}`,
-        typeId: titreTypeId!
-      }
+        typeId: titreTypeId!,
+      },
     },
     {
-      role: 'super'
+      role: 'super',
     }
   )
 
-const demarcheCreerProfil = async (titreId: string, user: TestUser) =>
-  graphQLCall(
-    queryImport('titre-demarche-creer'),
-    { demarche: { titreId, typeId: 'oct' } },
-    user
-  )
+const demarcheCreerProfil = async (titreId: string, user: TestUser) => graphQLCall(queryImport('titre-demarche-creer'), { demarche: { titreId, typeId: 'oct' } }, user)
 
 const titreBuild = (
   {
     titreId,
-    titreTypeId
+    titreTypeId,
   }: {
     titreId: string
     titreTypeId: TitreTypeId
@@ -442,14 +375,12 @@ const titreBuild = (
             titreDemarcheId: newDemarcheId(`${titreId}-demarche-id`),
             statutId: 'enc',
             date: toCaminoDate('2020-01-01'),
-            administrationsLocales: administrationIdLocale
-              ? [administrationIdLocale]
-              : []
-          }
-        ]
-      }
+            administrationsLocales: administrationIdLocale ? [administrationIdLocale] : [],
+          },
+        ],
+      },
     ],
-    publicLecture: false
+    publicLecture: false,
   }
 
   return titre
diff --git a/packages/api/tests/_utils/index.ts b/packages/api/tests/_utils/index.ts
index 22d380c5d..69cb49a01 100644
--- a/packages/api/tests/_utils/index.ts
+++ b/packages/api/tests/_utils/index.ts
@@ -6,16 +6,9 @@ import request from 'supertest'
 import { Index, IUtilisateur } from '../../src/types.js'
 
 import { app } from '../app.js'
-import {
-  utilisateurCreate,
-  utilisateurGet
-} from '../../src/database/queries/utilisateurs'
+import { utilisateurCreate, utilisateurGet } from '../../src/database/queries/utilisateurs'
 import { userSuper } from '../../src/database/user-super'
-import {
-  AdminUserNotNull,
-  isAdministrationRole,
-  isSuperRole
-} from 'camino-common/src/roles.js'
+import { AdminUserNotNull, isAdministrationRole, isSuperRole } from 'camino-common/src/roles.js'
 import { TestUser } from 'camino-common/src/tests-utils.js'
 import { getCurrent } from 'camino-common/src/date.js'
 
@@ -32,13 +25,7 @@ export const tokenCreate = (user: Partial<IUtilisateur>) => {
   throw new Error('La variable d’environnement JWT_SECRET est manquante')
 }
 
-export const graphQLCall = async (
-  query: string,
-  variables: Index<
-    string | boolean | Index<string | boolean | Index<string>[] | any>
-  >,
-  user: TestUser | undefined
-) => {
+export const graphQLCall = async (query: string, variables: Index<string | boolean | Index<string | boolean | Index<string>[] | any>>, user: TestUser | undefined) => {
   const req = request(app).post('/').send({ query, variables })
 
   return jwtSet(req, user)
@@ -50,29 +37,19 @@ export const restUploadCall = async (user: TestUser) => {
   return jwtSet(req, user)
 }
 
-export const restCall = async (
-  path: string,
-  user: TestUser | undefined
-): Promise<request.Test> => {
+export const restCall = async (path: string, user: TestUser | undefined): Promise<request.Test> => {
   const req = request(app).get(path)
 
   return jwtSet(req, user)
 }
 
-export const restPostCall = async <T extends string | object | undefined>(
-  path: string,
-  user: TestUser | undefined,
-  body: T
-): Promise<request.Test> => {
+export const restPostCall = async <T extends string | object | undefined>(path: string, user: TestUser | undefined, body: T): Promise<request.Test> => {
   const req = request(app).post(path).send(body)
 
   return jwtSet(req, user)
 }
 
-const jwtSet = async (
-  req: request.Test,
-  user: TestUser | undefined
-): Promise<request.Test> => {
+const jwtSet = async (req: request.Test, user: TestUser | undefined): Promise<request.Test> => {
   let token
   if (user) {
     token = await userTokenGenerate(user)
@@ -106,7 +83,7 @@ export const userGenerate = async (user: TestUser) => {
         prenom: `prenom-${user.role}`,
         nom: `nom-${user.role}`,
         email: `${id}@camino.local`,
-        dateCreation: getCurrent()
+        dateCreation: getCurrent(),
       },
       {}
     )
diff --git a/packages/api/tests/db-manager.ts b/packages/api/tests/db-manager.ts
index feec6a763..5780ecbc3 100644
--- a/packages/api/tests/db-manager.ts
+++ b/packages/api/tests/db-manager.ts
@@ -26,9 +26,7 @@ class DbManager {
     const globalConnection = `postgres://${DbManager.getPgUser()}:${DbManager.getPgPassword()}@localhost/postgres`
     const globalClient = new Client(globalConnection)
     await globalClient.connect()
-    const queryResult = await globalClient.query(
-      `SELECT 1 FROM pg_database WHERE datname='${this.dbName}'`
-    )
+    const queryResult = await globalClient.query(`SELECT 1 FROM pg_database WHERE datname='${this.dbName}'`)
     let newDatabase = false
     if (queryResult.rowCount === 0) {
       await globalClient.query(`CREATE DATABASE ${this.dbName}`)
@@ -53,17 +51,17 @@ class DbManager {
         port: 5432,
         database: this.dbName,
         user: DbManager.getPgUser(),
-        password: DbManager.getPgPassword()
+        password: DbManager.getPgPassword(),
       },
       migrations: {
         directory: [join(__dirname, '../src/knex/migrations-schema')],
         loadExtensions: ['.ts'],
-        extension: 'ts'
+        extension: 'ts',
       },
       seeds: {
-        directory: join(__dirname, '../src/knex/seeds')
+        directory: join(__dirname, '../src/knex/seeds'),
       },
-      ...knexSnakeCaseMappers()
+      ...knexSnakeCaseMappers(),
     }
 
     return knex(knexConfig)
@@ -110,10 +108,7 @@ class DbManager {
 
   private async truncateSchema() {
     DbManager.checkKnexInstance(this.knexInstance)
-    const tables =
-      (await this.knexInstance('pg_tables')
-        .select('tablename')
-        .where('schemaname', 'public')) ?? []
+    const tables = (await this.knexInstance('pg_tables').select('tablename').where('schemaname', 'public')) ?? []
 
     await this.knexInstance.raw(
       `TRUNCATE TABLE "${tables
diff --git a/packages/api/tests/queries/administration-titre-type-etape-type-modifier.graphql b/packages/api/tests/queries/administration-titre-type-etape-type-modifier.graphql
index 9149c7649..7ab7233ca 100644
--- a/packages/api/tests/queries/administration-titre-type-etape-type-modifier.graphql
+++ b/packages/api/tests/queries/administration-titre-type-etape-type-modifier.graphql
@@ -1,9 +1,5 @@
-mutation AdministrationTitreTypeEtapeTypeModifier(
-  $administrationTitreTypeEtapeType: InputAdministrationTitreTypeEtapeType!
-) {
-  administrationTitreTypeEtapeTypeModifier(
-    administrationTitreTypeEtapeType: $administrationTitreTypeEtapeType
-  ) {
+mutation AdministrationTitreTypeEtapeTypeModifier($administrationTitreTypeEtapeType: InputAdministrationTitreTypeEtapeType!) {
+  administrationTitreTypeEtapeTypeModifier(administrationTitreTypeEtapeType: $administrationTitreTypeEtapeType) {
     ...administration
   }
 }
diff --git a/packages/api/tests/queries/administration-titre-type-titre-statut-modifier.graphql b/packages/api/tests/queries/administration-titre-type-titre-statut-modifier.graphql
index 0ede2093d..0a327c524 100644
--- a/packages/api/tests/queries/administration-titre-type-titre-statut-modifier.graphql
+++ b/packages/api/tests/queries/administration-titre-type-titre-statut-modifier.graphql
@@ -1,9 +1,5 @@
-mutation AdministrationTitreTypeTitreStatutModifier(
-  $administrationTitreTypeTitreStatut: InputAdministrationTitreTypeTitreStatut!
-) {
-  administrationTitreTypeTitreStatutModifier(
-    administrationTitreTypeTitreStatut: $administrationTitreTypeTitreStatut
-  ) {
+mutation AdministrationTitreTypeTitreStatutModifier($administrationTitreTypeTitreStatut: InputAdministrationTitreTypeTitreStatut!) {
+  administrationTitreTypeTitreStatutModifier(administrationTitreTypeTitreStatut: $administrationTitreTypeTitreStatut) {
     ...administration
   }
 }
diff --git a/packages/api/tests/queries/utilisateurs.graphql b/packages/api/tests/queries/utilisateurs.graphql
index 86663296e..bc544f71b 100644
--- a/packages/api/tests/queries/utilisateurs.graphql
+++ b/packages/api/tests/queries/utilisateurs.graphql
@@ -1,13 +1,5 @@
-query Utilisateurs(
-  $administrationIds: [ID!]
-  $entrepriseIds: [ID!]
-  $noms: String!
-) {
-  utilisateurs(
-    administrationIds: $administrationIds
-    entrepriseIds: $entrepriseIds
-    noms: $noms
-  ) {
+query Utilisateurs($administrationIds: [ID!], $entrepriseIds: [ID!], $noms: String!) {
+  utilisateurs(administrationIds: $administrationIds, entrepriseIds: $entrepriseIds, noms: $noms) {
     elements {
       ...utilisateur
     }
diff --git a/packages/api/tests/vitestSetup.ts b/packages/api/tests/vitestSetup.ts
index 318a576bb..f8d81cb28 100644
--- a/packages/api/tests/vitestSetup.ts
+++ b/packages/api/tests/vitestSetup.ts
@@ -5,12 +5,12 @@ vi.mock('../src/tools/api-mailjet/emails', () => ({
   __esModule: true,
   ...origEmails,
   emailsSend: vi.fn().mockImplementation(a => a),
-  emailsWithTemplateSend: vi.fn().mockImplementation(a => a)
+  emailsWithTemplateSend: vi.fn().mockImplementation(a => a),
 }))
 
 vi.mock('../src/tools/api-mailjet/newsletter', () => ({
   __esModule: true,
-  newsletterSubscriberUpdate: vi.fn().mockImplementation(() => 'succès')
+  newsletterSubscriberUpdate: vi.fn().mockImplementation(() => 'succès'),
 }))
 
 function assertObject(stuff: unknown): asserts stuff is object {
@@ -32,6 +32,6 @@ vi.mock('../src/server/upload', async () => {
       return (_: Request, res: Response) => {
         res.sendStatus(200)
       }
-    })
+    }),
   }
 })
diff --git a/packages/api/vitest.integration.config.ts b/packages/api/vitest.integration.config.ts
index c71399eac..82b6ca673 100644
--- a/packages/api/vitest.integration.config.ts
+++ b/packages/api/vitest.integration.config.ts
@@ -6,6 +6,6 @@ export default defineConfig({
     threads: false,
     setupFiles: '../tests/vitestSetup.ts',
     testTimeout: 10000,
-    hookTimeout: 30000
-  }
+    hookTimeout: 30000,
+  },
 })
diff --git a/packages/api/vitest.unit.config.ts b/packages/api/vitest.unit.config.ts
index d34b86145..1c805be7e 100644
--- a/packages/api/vitest.unit.config.ts
+++ b/packages/api/vitest.unit.config.ts
@@ -2,6 +2,6 @@ import { defineConfig } from 'vitest/config'
 
 export default defineConfig({
   test: {
-    setupFiles: '../tests/vitestSetup.ts'
-  }
+    setupFiles: '../tests/vitestSetup.ts',
+  },
 })
diff --git a/packages/common/package.json b/packages/common/package.json
index 95f639866..9e8d9a09e 100644
--- a/packages/common/package.json
+++ b/packages/common/package.json
@@ -21,8 +21,8 @@
   "prettier": {
     "semi": false,
     "singleQuote": true,
-    "trailingComma": "none",
     "arrowParens": "avoid",
+    "trailingComma": "es5",
     "printWidth": 200
   },
   "eslintConfig": {
diff --git a/packages/common/src/date.test.ts b/packages/common/src/date.test.ts
index 4c7feed3e..fd3a37eac 100644
--- a/packages/common/src/date.test.ts
+++ b/packages/common/src/date.test.ts
@@ -15,14 +15,14 @@ import {
   dateFormat,
   checkValideAnnee,
   getMois,
-  getDay
+  getDay,
 } from './date.js'
 import { test, expect } from 'vitest'
 test.each([
   ['2020-06-02T13:35:11.366Z', '2021-06-03T13:35:11.366Z', 366],
   ['2021-06-02T13:35:11.366Z', '2021-06-03T13:35:11.366Z', 1],
   ['2021-06-02T13:35:11.366Z', '2021-06-02T13:40:11.366Z', 0],
-  ['2021-06-02T13:35:11.366Z', '2021-06-03T11:30:11.366Z', 0]
+  ['2021-06-02T13:35:11.366Z', '2021-06-03T11:30:11.366Z', 0],
 ])('calcul le nombre de jours entre 2 dates', (date1, date2, days) => {
   expect(datesDiffInDays(new Date(date1), new Date(date2))).toBe(days)
 })
@@ -117,7 +117,7 @@ test.each([
   ['2020-01-01', 1, '2020-01-02'],
   ['2020-01-01', 10, '2020-01-11'],
   ['2020-01-01', 31, '2020-02-01'],
-  ['2020-12-31', 1, '2021-01-01']
+  ['2020-12-31', 1, '2021-01-01'],
 ])('ajoute des jours à une date', (date, days, result) => {
   expect(dateAddDays(toCaminoDate(date), days)).toBe(result)
 })
@@ -128,7 +128,7 @@ test.each([
   ['2020-01-01', 3, '2020-04-01'],
   ['2020-01-30', 3, '2020-04-30'],
   ['2020-01-31', 3, '2020-05-01'],
-  ['2020-12-01', 3, '2021-03-01']
+  ['2020-12-01', 3, '2021-03-01'],
 ])('ajoute $months mois à la date $date', (date, months, result) => {
   expect(dateAddMonths(toCaminoDate(date), months)).toBe(result)
 })
@@ -141,7 +141,7 @@ test("la méthode dateAddMonths n'est pas idempotente", () => {
 
 test.each([
   ['2020-03-10', '2020-01-07', 2],
-  ['2021-01-01', '2020-01-01', 12]
+  ['2021-01-01', '2020-01-01', 12],
 ])('calcul le nombre de mois entre 2 dates', (dateFin, dateDebut, months) => {
   expect(monthsBetween(dateDebut, dateFin)).toBe(months)
 })
diff --git a/packages/common/src/fiscalite.test.ts b/packages/common/src/fiscalite.test.ts
index 96ac0fd86..9a2e4bb43 100644
--- a/packages/common/src/fiscalite.test.ts
+++ b/packages/common/src/fiscalite.test.ts
@@ -13,8 +13,8 @@ test('fraisGestion', () => {
       guyane: {
         taxeAurifere: 100,
         taxeAurifereBrute: 0,
-        totalInvestissementsDeduits: 0
-      }
+        totalInvestissementsDeduits: 0,
+      },
     })
   ).toBe(16)
 
@@ -47,7 +47,7 @@ test('fiscaliteVisible avec les titres', () => {
       { typeId: 'prg' },
       { typeId: 'prr' },
       { typeId: 'prs' },
-      { typeId: 'prw' }
+      { typeId: 'prw' },
     ])
   ).toEqual(false)
   expect(fiscaliteVisible({ role: 'entreprise', entreprises: [{ id: newEntrepriseId(newEntrepriseId('1234')) }], ...roleLessUser }, newEntrepriseId('1234'), [])).toEqual(false)
diff --git a/packages/common/src/number.ts b/packages/common/src/number.ts
index 70caf3cb8..ca042a891 100644
--- a/packages/common/src/number.ts
+++ b/packages/common/src/number.ts
@@ -1,4 +1,4 @@
 export const numberFormat = (number: number): string =>
   Intl.NumberFormat('FR-fr', {
-    maximumSignificantDigits: 21
+    maximumSignificantDigits: 21,
   }).format(number)
diff --git a/packages/common/src/permissions/activites.test.ts b/packages/common/src/permissions/activites.test.ts
index aeacfb490..ad7c49eca 100644
--- a/packages/common/src/permissions/activites.test.ts
+++ b/packages/common/src/permissions/activites.test.ts
@@ -10,44 +10,44 @@ test.each<[User, boolean]>([
     {
       ...testBlankUser,
       role: 'admin',
-      administrationId: ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON']
+      administrationId: ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON'],
     },
-    true
+    true,
   ],
   [
     {
       ...testBlankUser,
       role: 'editeur',
-      administrationId: ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON']
+      administrationId: ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON'],
     },
-    true
+    true,
   ],
   [
     {
       ...testBlankUser,
       role: 'admin',
-      administrationId: ADMINISTRATION_IDS['DEAL - GUADELOUPE']
+      administrationId: ADMINISTRATION_IDS['DEAL - GUADELOUPE'],
     },
-    true
+    true,
   ],
   [
     {
       ...testBlankUser,
       role: 'admin',
-      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
     },
-    false
+    false,
   ],
   [
     {
       ...testBlankUser,
       role: 'admin',
-      administrationId: ADMINISTRATION_IDS["DAJ - MINISTÈRE DE L'ECONOMIE, DES FINANCES ET DE LA RELANCE"]
+      administrationId: ADMINISTRATION_IDS["DAJ - MINISTÈRE DE L'ECONOMIE, DES FINANCES ET DE LA RELANCE"],
     },
-    true
+    true,
   ],
   [{ ...testBlankUser, role: 'entreprise', entreprises: [] }, true],
-  [{ ...testBlankUser, role: 'defaut' }, false]
+  [{ ...testBlankUser, role: 'defaut' }, false],
 ])('utilisateur %s peur voir les activités: %s', async (user, lecture) => {
   expect(canReadActivites(user)).toBe(lecture)
 })
diff --git a/packages/common/src/permissions/administrations.test.ts b/packages/common/src/permissions/administrations.test.ts
index a44355a21..ed42fb129 100644
--- a/packages/common/src/permissions/administrations.test.ts
+++ b/packages/common/src/permissions/administrations.test.ts
@@ -10,19 +10,19 @@ test.each<[User, boolean]>([
     {
       ...testBlankUser,
       role: 'admin',
-      administrationId: ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON']
+      administrationId: ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON'],
     },
-    true
+    true,
   ],
   [
     {
       ...testBlankUser,
       role: 'editeur',
-      administrationId: ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON']
+      administrationId: ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON'],
     },
-    true
+    true,
   ],
-  [{ ...testBlankUser, role: 'defaut' }, false]
+  [{ ...testBlankUser, role: 'defaut' }, false],
 ])("pour une préfecture, emailsLecture est '$emailsLecture' pour un utilisateur $role et pour tous ses membres", async (user, emailsLecture) => {
   expect(canReadActivitesTypesEmails(user, 'pre-01053-01')).toBe(emailsLecture)
 })
@@ -31,7 +31,7 @@ test.each<['super' | AdministrationRole, boolean]>([
   ['super', true],
   ['admin', false],
   ['editeur', false],
-  ['lecteur', false]
+  ['lecteur', false],
 ])("pour une préfecture, emailsModification est 'true' pour un utilisateur super, 'false' pour tous ses membres", async (role, emailsModification) => {
   const administrationId = ADMINISTRATION_IDS['PRÉFECTURE - AIN']
   const mockUser: User = getTestUser({ role, administrationId })
@@ -43,7 +43,7 @@ test.each<[Role, boolean]>([
   ['admin', true],
   ['editeur', true],
   ['lecteur', false],
-  ['defaut', false]
+  ['defaut', false],
 ])("pour une DREAL/DEAL, emailsModification est 'true' pour ses membres admins et éditeurs, pour les utilisateurs supers, 'false' pour ses autres membres", async (role, emailsModification) => {
   const administrationId = ADMINISTRATION_IDS['DRIEE - ÎLE-DE-FRANCE']
   const mockUser: User = getTestUser({ role, administrationId })
@@ -54,7 +54,7 @@ test("un admin de région peut voir les mails de la préfecture d'un départemen
   const mockUser: User = {
     role: 'admin',
     administrationId: ADMINISTRATION_IDS['DREAL - NOUVELLE-AQUITAINE - SIÈGE DE POITIERS'],
-    ...testBlankUser
+    ...testBlankUser,
   }
   expect(canEditEmails(mockUser, ADMINISTRATION_IDS['PRÉFECTURE - DORDOGNE'])).toEqual(true)
   expect(canEditEmails(mockUser, ADMINISTRATION_IDS['PRÉFECTURE - CORSE-DU-SUD'])).toEqual(false)
@@ -64,7 +64,7 @@ test.each<[AdministrationRole | 'defaut', boolean]>([
   ['admin', true],
   ['editeur', true],
   ['lecteur', false],
-  ['defaut', false]
+  ['defaut', false],
 ])("pour un membre $role de ministère, emailsModification est '$emailsModification'", async (role, emailsModification) => {
   const administrationId = ADMINISTRATION_IDS["DAJ - MINISTÈRE DE L'ECONOMIE, DES FINANCES ET DE LA RELANCE"]
   const mockUser: User = getTestUser({ role, administrationId })
diff --git a/packages/common/src/permissions/entreprises.test.ts b/packages/common/src/permissions/entreprises.test.ts
index 463f3b2e8..23564cd0d 100644
--- a/packages/common/src/permissions/entreprises.test.ts
+++ b/packages/common/src/permissions/entreprises.test.ts
@@ -10,29 +10,29 @@ test.each<[TestUser, boolean]>([
   [
     {
       role: 'admin',
-      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
     },
-    true
+    true,
   ],
   [
     {
       role: 'editeur',
-      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
     },
-    true
+    true,
   ],
   [
     {
       role: 'lecteur',
-      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
     },
-    false
+    false,
   ],
   [{ role: 'entreprise', entreprises: [{ id: entrepriseId }] }, true],
   [{ role: 'bureau d’études', entreprises: [{ id: entrepriseId }] }, true],
   [{ role: 'bureau d’études', entreprises: [{ id: newEntrepriseId('autreEntrepriseId') }] }, false],
   [{ role: 'bureau d’études', entreprises: [] }, false],
-  [{ role: 'defaut' }, false]
+  [{ role: 'defaut' }, false],
 ])('l’utilisateur %p peut modifier une entreprise %p', async (user, modification) => {
   expect(canEditEntreprise({ ...user, ...testBlankUser }, entrepriseId)).toEqual(modification)
 })
@@ -42,29 +42,29 @@ test.each<[TestUser, boolean]>([
   [
     {
       role: 'admin',
-      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
     },
-    true
+    true,
   ],
   [
     {
       role: 'editeur',
-      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
     },
-    true
+    true,
   ],
   [
     {
       role: 'lecteur',
-      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
     },
-    false
+    false,
   ],
   [{ role: 'entreprise', entreprises: [{ id: entrepriseId }] }, false],
   [{ role: 'bureau d’études', entreprises: [{ id: entrepriseId }] }, false],
   [{ role: 'bureau d’études', entreprises: [{ id: newEntrepriseId('autreEntrepriseId') }] }, false],
   [{ role: 'bureau d’études', entreprises: [] }, false],
-  [{ role: 'defaut' }, false]
+  [{ role: 'defaut' }, false],
 ])('l’utilisateur %p peut créer une entreprise %p', async (user, creation) => {
   expect(canCreateEntreprise({ ...user, ...testBlankUser })).toEqual(creation)
 })
@@ -74,29 +74,29 @@ test.each<[TestUser, boolean]>([
   [
     {
       role: 'admin',
-      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
     },
-    true
+    true,
   ],
   [
     {
       role: 'editeur',
-      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
     },
-    true
+    true,
   ],
   [
     {
       role: 'lecteur',
-      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
+      administrationId: ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS'],
     },
-    false
+    false,
   ],
   [{ role: 'entreprise', entreprises: [{ id: entrepriseId }] }, false],
   [{ role: 'bureau d’études', entreprises: [{ id: entrepriseId }] }, false],
   [{ role: 'bureau d’études', entreprises: [{ id: newEntrepriseId('autreEntrepriseId') }] }, false],
   [{ role: 'bureau d’études', entreprises: [] }, false],
-  [{ role: 'defaut' }, false]
+  [{ role: 'defaut' }, false],
 ])('l’utilisateur %p peut créer une entreprise %p', async (user, modification) => {
   expect(canCreateEntreprise({ ...user, ...testBlankUser })).toEqual(modification)
 })
diff --git a/packages/common/src/permissions/titres-demarches.test.ts b/packages/common/src/permissions/titres-demarches.test.ts
index f2ade685e..e13383bcb 100644
--- a/packages/common/src/permissions/titres-demarches.test.ts
+++ b/packages/common/src/permissions/titres-demarches.test.ts
@@ -10,7 +10,7 @@ describe('canCreateDemarche', () => {
     ['min-mtes-dgec-01', false],
     ['pre-42218-01', false],
     ['ope-ptmg-973-01', true],
-    ['dea-guyane-01', false]
+    ['dea-guyane-01', false],
   ])('Vérifie si l’administration peut créer des démarches', async (administrationId, creation) => {
     expect(canCreateDemarche({ role: 'admin', administrationId, ...testBlankUser }, 'arm', 'val', [])).toEqual(creation)
   })
@@ -26,7 +26,7 @@ describe('canCreateDemarche', () => {
   test.each<[TestUser, boolean]>([
     [{ role: 'super' }, true],
     [{ role: 'entreprise', entreprises: [] }, false],
-    [{ role: 'defaut' }, false]
+    [{ role: 'defaut' }, false],
   ])('Vérifie si un profil peut créer des travaux', async (user, creation) => {
     expect(canCreateDemarche({ ...user, ...testBlankUser }, 'arm', 'val', [])).toEqual(creation)
   })
@@ -39,7 +39,7 @@ describe('canCreateTravaux', () => {
     ['min-mtes-dgec-01', false],
     ['pre-42218-01', false],
     ['ope-ptmg-973-01', false],
-    ['dea-guyane-01', false]
+    ['dea-guyane-01', false],
   ])('Vérifie si l’administration peut créer des travaux', async (administrationId, creation) => {
     expect(canCreateTravaux({ role: 'admin', administrationId, ...testBlankUser }, 'arm', [])).toEqual(creation)
   })
@@ -51,7 +51,7 @@ describe('canCreateTravaux', () => {
   test.each<[TestUser, boolean]>([
     [{ role: 'super' }, true],
     [{ role: 'entreprise', entreprises: [] }, false],
-    [{ role: 'defaut' }, false]
+    [{ role: 'defaut' }, false],
   ])('Vérifie si un profil peut créer des travaux', async (user, creation) => {
     expect(canCreateTravaux({ ...user, ...testBlankUser }, 'arm', [])).toEqual(creation)
   })
diff --git a/packages/common/src/permissions/titres-etapes.test.ts b/packages/common/src/permissions/titres-etapes.test.ts
index 07ccc3d65..f5f7190b2 100644
--- a/packages/common/src/permissions/titres-etapes.test.ts
+++ b/packages/common/src/permissions/titres-etapes.test.ts
@@ -14,7 +14,7 @@ test.each<{ etapeTypeId: EtapeTypeId; demarcheTypeId: DemarcheTypeId; titreTypeI
   { etapeTypeId: 'mfr', demarcheTypeId: 'oct', titreTypeId: 'axm', optional: false },
   { etapeTypeId: 'dex', demarcheTypeId: 'oct', titreTypeId: 'axm', optional: true },
   { etapeTypeId: 'mfr', demarcheTypeId: 'oct', titreTypeId: 'prm', optional: true },
-  { etapeTypeId: 'mfr', demarcheTypeId: 'dep', titreTypeId: 'arm', optional: true }
+  { etapeTypeId: 'mfr', demarcheTypeId: 'dep', titreTypeId: 'arm', optional: true },
 ])('dureeOptionalCheck $etapeTypeId | $demarcheTypeId | $titreTypeId | $optional', ({ etapeTypeId, demarcheTypeId, titreTypeId, optional }) => {
   expect(dureeOptionalCheck(etapeTypeId, demarcheTypeId, titreTypeId)).toEqual(optional)
 })
@@ -22,7 +22,7 @@ test.each<{ etapeTypeId: EtapeTypeId; demarcheTypeId: DemarcheTypeId; titreTypeI
 test.each<{ titreTypeId: TitreTypeId; demarcheTypeId: DemarcheTypeId; canEdit: boolean }>([
   { titreTypeId: 'arm', demarcheTypeId: 'dep', canEdit: false },
   { titreTypeId: 'arm', demarcheTypeId: 'dec', canEdit: false },
-  { titreTypeId: 'axm', demarcheTypeId: 'dec', canEdit: true }
+  { titreTypeId: 'axm', demarcheTypeId: 'dec', canEdit: true },
 ])('canEditDuree $titreTypeId | $demarcheTypeId | $canEdit', ({ titreTypeId, demarcheTypeId, canEdit }) => expect(canEditDuree(titreTypeId, demarcheTypeId)).toEqual(canEdit))
 
 test.each<{ titreTypeId: TitreTypeId; demarcheTypeId: DemarcheTypeId; etapeTypeId: EtapeTypeId; user: TestUser; canEdit: boolean }>([
@@ -32,7 +32,7 @@ test.each<{ titreTypeId: TitreTypeId; demarcheTypeId: DemarcheTypeId; etapeTypeI
   { titreTypeId: 'prm', etapeTypeId: 'mfr', demarcheTypeId: 'dec', user: { role: 'super' }, canEdit: true },
   { titreTypeId: 'prm', etapeTypeId: 'mfr', demarcheTypeId: 'dec', user: { role: 'admin', administrationId: ADMINISTRATION_IDS.BRGM }, canEdit: true },
   { titreTypeId: 'prm', etapeTypeId: 'mfr', demarcheTypeId: 'dec', user: { role: 'lecteur', administrationId: ADMINISTRATION_IDS.BRGM }, canEdit: true },
-  { titreTypeId: 'prm', etapeTypeId: 'mfr', demarcheTypeId: 'dep', user: { role: 'lecteur', administrationId: ADMINISTRATION_IDS.BRGM }, canEdit: false }
+  { titreTypeId: 'prm', etapeTypeId: 'mfr', demarcheTypeId: 'dep', user: { role: 'lecteur', administrationId: ADMINISTRATION_IDS.BRGM }, canEdit: false },
 ])('canEditDate $titreTypeId | $demarcheTypeId | $etapeTypeId | $user | $canEdit', ({ titreTypeId, demarcheTypeId, etapeTypeId, user, canEdit }) => {
   expect(canEditDates(titreTypeId, demarcheTypeId, etapeTypeId, { ...user, ...testBlankUser })).toEqual(canEdit)
 })
@@ -44,7 +44,7 @@ test.each<{ titreTypeId: TitreTypeId; user: TestUser; canEdit: boolean }>([
   { titreTypeId: 'prm', user: { role: 'admin', administrationId: ADMINISTRATION_IDS.BRGM }, canEdit: true },
   { titreTypeId: 'prm', user: { role: 'editeur', administrationId: ADMINISTRATION_IDS.BRGM }, canEdit: true },
   { titreTypeId: 'prm', user: { role: 'lecteur', administrationId: ADMINISTRATION_IDS.BRGM }, canEdit: false },
-  { titreTypeId: 'prm', user: { role: 'defaut' }, canEdit: false }
+  { titreTypeId: 'prm', user: { role: 'defaut' }, canEdit: false },
 ])('canEditAmodiataires $titreTypeId | $user | $canEdit', ({ titreTypeId, user, canEdit }) => {
   expect(canEditAmodiataires(titreTypeId, { ...user, ...testBlankUser })).toEqual(canEdit)
 })
@@ -64,7 +64,7 @@ test.each<{ titreTypeId: TitreTypeId; user: TestUser; canEdit: boolean }>([
   { titreTypeId: 'arm', user: { role: 'admin', administrationId: ADMINISTRATION_IDS.BRGM }, canEdit: true },
   { titreTypeId: 'arm', user: { role: 'editeur', administrationId: ADMINISTRATION_IDS.BRGM }, canEdit: true },
   { titreTypeId: 'arm', user: { role: 'lecteur', administrationId: ADMINISTRATION_IDS.BRGM }, canEdit: false },
-  { titreTypeId: 'arm', user: { role: 'defaut' }, canEdit: false }
+  { titreTypeId: 'arm', user: { role: 'defaut' }, canEdit: false },
 ])('canEditTitulaires $titreTypeId | $user | $canEdit', ({ titreTypeId, user, canEdit }) => {
   expect(canEditTitulaires(titreTypeId, { ...user, ...testBlankUser })).toEqual(canEdit)
 })
@@ -87,7 +87,7 @@ test.each<{
     titresAdministrationsLocales: [],
     demarcheTypeId: 'ren',
     titre: { typeId: 'apc', titreStatutId: 'dmc' },
-    canCreate: true
+    canCreate: true,
   },
   {
     user: { role: 'defaut' },
@@ -97,7 +97,7 @@ test.each<{
     titresAdministrationsLocales: [],
     demarcheTypeId: 'ren',
     titre: { typeId: 'apc', titreStatutId: 'dmc' },
-    canCreate: false
+    canCreate: false,
   },
   {
     user: { role: 'editeur', administrationId: 'ope-brgm-01' },
@@ -107,7 +107,7 @@ test.each<{
     titresAdministrationsLocales: [],
     demarcheTypeId: 'ren',
     titre: { typeId: 'apc', titreStatutId: 'dmc' },
-    canCreate: false
+    canCreate: false,
   },
   {
     user: { role: 'lecteur', administrationId: 'ope-brgm-01' },
@@ -117,7 +117,7 @@ test.each<{
     titresAdministrationsLocales: [],
     demarcheTypeId: 'ren',
     titre: { typeId: 'apc', titreStatutId: 'dmc' },
-    canCreate: false
+    canCreate: false,
   },
   {
     user: { role: 'entreprise', entreprises: [{ id: newEntrepriseId('1') }] },
@@ -127,7 +127,7 @@ test.each<{
     titresAdministrationsLocales: [],
     demarcheTypeId: 'ren',
     titre: { typeId: 'apc', titreStatutId: 'dmc' },
-    canCreate: false
+    canCreate: false,
   },
   {
     user: { role: 'entreprise', entreprises: [{ id: newEntrepriseId('1') }] },
@@ -137,7 +137,7 @@ test.each<{
     titresAdministrationsLocales: [],
     demarcheTypeId: 'oct',
     titre: { typeId: 'arm', titreStatutId: 'dmc' },
-    canCreate: true
+    canCreate: true,
   },
   {
     user: { role: 'admin', administrationId: 'ope-brgm-01' },
@@ -147,7 +147,7 @@ test.each<{
     titresAdministrationsLocales: ['ope-brgm-01'],
     demarcheTypeId: 'oct',
     titre: { typeId: 'arm', titreStatutId: 'dmc' },
-    canCreate: true
+    canCreate: true,
   },
   {
     user: { role: 'editeur', administrationId: 'ope-brgm-01' },
@@ -157,7 +157,7 @@ test.each<{
     titresAdministrationsLocales: ['ope-brgm-01'],
     demarcheTypeId: 'oct',
     titre: { typeId: 'arm', titreStatutId: 'dmc' },
-    canCreate: true
+    canCreate: true,
   },
   {
     user: { role: 'lecteur', administrationId: 'ope-brgm-01' },
@@ -167,7 +167,7 @@ test.each<{
     titresAdministrationsLocales: ['ope-brgm-01'],
     demarcheTypeId: 'oct',
     titre: { typeId: 'arm', titreStatutId: 'dmc' },
-    canCreate: false
+    canCreate: false,
   },
   {
     user: { role: 'admin', administrationId: ADMINISTRATION_IDS['DGTM - GUYANE'] },
@@ -177,7 +177,7 @@ test.each<{
     titresAdministrationsLocales: ['ope-brgm-01'],
     demarcheTypeId: 'oct',
     titre: { typeId: 'arm', titreStatutId: 'dmc' },
-    canCreate: false
+    canCreate: false,
   },
   {
     user: { role: 'admin', administrationId: ADMINISTRATION_IDS['GENDARMERIE NATIONALE - GUYANE'] },
@@ -187,8 +187,8 @@ test.each<{
     titresAdministrationsLocales: ['ope-brgm-01'],
     demarcheTypeId: 'oct',
     titre: { typeId: 'arm', titreStatutId: 'dmc' },
-    canCreate: false
-  }
+    canCreate: false,
+  },
 ])(
   'canCreateEtape $user | $etapeTypeId | $etapeStatutId | $titreTitulaires | $titresAdministrationsLocales | $demarcheTypeId | $titre | $canCreate',
   ({ user, etapeTypeId, etapeStatutId, titreTitulaires, titresAdministrationsLocales, demarcheTypeId, titre, canCreate }) => {
@@ -208,7 +208,7 @@ test.each<{
   { administrationId: 'dea-guyane-01', titreTypeId: 'axm', canEdit: true },
   { administrationId: 'ope-onf-973-01', titreTypeId: 'axm', canEdit: false },
   { administrationId: 'min-mtes-dgaln-01', titreTypeId: 'arm', canEdit: true },
-  { administrationId: 'ope-onf-973-01', titreTypeId: 'arm', canEdit: true }
+  { administrationId: 'ope-onf-973-01', titreTypeId: 'arm', canEdit: true },
 ])('un utilisateur admin d’une administration peut modifier une étape mcr sur un titre: $canEdit', ({ administrationId, titreTypeId, canEdit }) => {
   expect(canCreateOrEditEtape({ role: 'admin', administrationId, ...testBlankUser }, 'mcr', 'fai', [], [], 'oct', { typeId: titreTypeId, titreStatutId: 'val' }, 'modification')).toBe(canEdit)
 })
diff --git a/packages/common/src/permissions/titres.test.ts b/packages/common/src/permissions/titres.test.ts
index baf81ea23..ba50ceb39 100644
--- a/packages/common/src/permissions/titres.test.ts
+++ b/packages/common/src/permissions/titres.test.ts
@@ -37,7 +37,7 @@ test.each<[TestUser, AdministrationId[], boolean]>([
   [{ role: 'super' }, [], true],
   [{ role: 'admin', administrationId: ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON'] }, [ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON']], true],
   [{ role: 'admin', administrationId: ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON'] }, [ADMINISTRATION_IDS['DREAL - PAYS DE LA LOIRE']], false],
-  [{ role: 'defaut' }, [ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON']], false]
+  [{ role: 'defaut' }, [ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON']], false],
 ])('un utilisateur $user peut modifier les liaisons d’un titre: $can ', (user, administrationIds, can) => {
   expect(canLinkTitres({ ...user, ...testBlankUser }, administrationIds)).toBe(can)
 })
diff --git a/packages/common/src/permissions/utilisateurs.test.ts b/packages/common/src/permissions/utilisateurs.test.ts
index b2835b20c..6d6433421 100644
--- a/packages/common/src/permissions/utilisateurs.test.ts
+++ b/packages/common/src/permissions/utilisateurs.test.ts
@@ -10,7 +10,7 @@ const users: Record<Role, User> = {
   lecteur: { ...testBlankUser, role: 'lecteur', administrationId: 'aut-97300-01' },
   entreprise: { ...testBlankUser, role: 'entreprise', entreprises: [] },
   'bureau d’études': { ...testBlankUser, role: 'bureau d’études', entreprises: [] },
-  defaut: { ...testBlankUser, role: 'defaut' }
+  defaut: { ...testBlankUser, role: 'defaut' },
 }
 
 test('getAssignableRoles', () => {
diff --git a/packages/common/src/rest.ts b/packages/common/src/rest.ts
index 9e74f7441..03b7c7d03 100644
--- a/packages/common/src/rest.ts
+++ b/packages/common/src/rest.ts
@@ -14,7 +14,7 @@ export const CaminoRestRoutes = {
   titresDREAL: '/titresDREAL',
   statistiquesDGTM: '/statistiques/dgtm',
   fiscaliteEntreprise: '/entreprises/:entrepriseId/fiscalite/:annee',
-  generateQgisToken: '/utilisateur/generateQgisToken'
+  generateQgisToken: '/utilisateur/generateQgisToken',
 } as const
 
 export type CaminoRestRoute = (typeof CaminoRestRoutes)[keyof typeof CaminoRestRoutes]
diff --git a/packages/common/src/roles.test.ts b/packages/common/src/roles.test.ts
index 546375ffd..94e7458ed 100644
--- a/packages/common/src/roles.test.ts
+++ b/packages/common/src/roles.test.ts
@@ -9,7 +9,7 @@ import {
   isRole,
   ROLES,
   isBureauDEtudes,
-  BaseUserNotNull
+  BaseUserNotNull,
 } from './roles.js'
 import { ADMINISTRATION_IDS } from './static/administrations.js'
 import { test, expect, describe } from 'vitest'
@@ -19,7 +19,7 @@ describe('role', () => {
     email: '',
     id: '',
     nom: '',
-    prenom: ''
+    prenom: '',
   }
   test('isSuper', () => {
     expect(isSuper({ ...baseRole, role: 'super' })).toBe(true)
@@ -44,7 +44,7 @@ describe('role', () => {
       isAdministrationEditeur({
         ...baseRole,
         role: 'editeur',
-        administrationId
+        administrationId,
       })
     ).toBe(true)
   })
@@ -54,7 +54,7 @@ describe('role', () => {
       isAdministrationLecteur({
         ...baseRole,
         role: 'lecteur',
-        administrationId
+        administrationId,
       })
     ).toBe(true)
   })
@@ -64,7 +64,7 @@ describe('role', () => {
       isEntreprise({
         ...baseRole,
         role: 'entreprise',
-        entreprises: []
+        entreprises: [],
       })
     ).toBe(true)
     expect(isEntreprise({ ...baseRole, role: 'defaut' })).toBe(false)
@@ -74,7 +74,7 @@ describe('role', () => {
       isBureauDEtudes({
         ...baseRole,
         role: 'bureau d’études',
-        entreprises: []
+        entreprises: [],
       })
     ).toBe(true)
     expect(isBureauDEtudes({ ...baseRole, role: 'defaut' })).toBe(false)
@@ -87,7 +87,7 @@ describe('role', () => {
       isDefault({
         ...baseRole,
         role: 'entreprise',
-        entreprises: []
+        entreprises: [],
       })
     ).toBe(false)
   })
diff --git a/packages/common/src/static/activitesStatuts.ts b/packages/common/src/static/activitesStatuts.ts
index 9179afe17..2325ec485 100644
--- a/packages/common/src/static/activitesStatuts.ts
+++ b/packages/common/src/static/activitesStatuts.ts
@@ -4,7 +4,7 @@ export const ACTIVITES_STATUTS_IDS = {
   ABSENT: 'abs',
   EN_CONSTRUCTION: 'enc',
   DEPOSE: 'dep',
-  CLOTURE: 'fer'
+  CLOTURE: 'fer',
 } as const
 
 export type ActivitesStatutId = (typeof ACTIVITES_STATUTS_IDS)[keyof typeof ACTIVITES_STATUTS_IDS]
@@ -17,23 +17,23 @@ export const ActivitesStatuts: { [key in ActivitesStatutId]: ActivitesStatut<key
   abs: {
     id: 'abs',
     nom: 'absent',
-    couleur: 'error'
+    couleur: 'error',
   },
   dep: {
     id: 'dep',
     nom: 'déposé',
-    couleur: 'success'
+    couleur: 'success',
   },
   enc: {
     id: 'enc',
     nom: 'en construction',
-    couleur: 'warning'
+    couleur: 'warning',
   },
   fer: {
     id: 'fer',
     nom: 'cloturé',
-    couleur: 'neutral'
-  }
+    couleur: 'neutral',
+  },
 }
 
 export const activitesStatutsIds = Object.values(ACTIVITES_STATUTS_IDS)
diff --git a/packages/common/src/static/activitesTypes.ts b/packages/common/src/static/activitesTypes.ts
index fb3a742ed..45bc14e65 100644
--- a/packages/common/src/static/activitesTypes.ts
+++ b/packages/common/src/static/activitesTypes.ts
@@ -9,7 +9,7 @@ export const ACTIVITES_TYPES_IDS = {
   "rapport financier d'exploration": 'pmb',
   "rapport environnemental d'exploration": 'pmc',
   "rapport social et économique d'exploration": 'pmd',
-  "rapport d'exploitation (permis et concessions W)": 'wrp'
+  "rapport d'exploitation (permis et concessions W)": 'wrp',
 } as const
 
 export const ActivitesTypesIds = Object.values(ACTIVITES_TYPES_IDS)
@@ -53,7 +53,7 @@ export const ActivitesTypes: {
     sections: [
       {
         id: 'substancesFiscales',
-        nom: 'Production annuelle'
+        nom: 'Production annuelle',
       },
       {
         id: 'complement',
@@ -64,17 +64,17 @@ export const ActivitesTypes: {
             type: 'textarea',
             dateDebut: toCaminoDate('2018-01-01'),
             optionnel: true,
-            description: 'Toute information utile à la compréhension de la production déclarée.'
-          }
-        ]
-      }
+            description: 'Toute information utile à la compréhension de la production déclarée.',
+          },
+        ],
+      },
     ],
     frequenceId: 'ann',
     dateDebut: toCaminoDate('2020-01-01'),
     delaiMois: 11,
     ordre: 2,
     description:
-      '<p>La production annuelle est requise en vertu des <a href="https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006069577/LEGISCTA000006179968" target="_blank">article 1519</a>, <a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000043663002" target="_blank">article 1587</a> et <a href="https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006069577/LEGISCTA000006162672?init=true&page=1&query=1588&searchField=ALL&tab_selection=all&anchor=LEGIARTI000006306371#LEGIARTI000006306371" target="_blank">article 1588</a> du code général des impôts relatifs au calcul de la redevance départementale et communale des mines (RDCM).</p><p>Le rapport annuel d\'exploitation est requis en vertu de l\'<a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000023505020/2021-04-14/" target="_blank">article L. 172-1</a> du code minier et <a href="https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000033196097" target="_blank">article 35</a> du décret 2006/649 du 2 juin 2006.</p>'
+      '<p>La production annuelle est requise en vertu des <a href="https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006069577/LEGISCTA000006179968" target="_blank">article 1519</a>, <a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000043663002" target="_blank">article 1587</a> et <a href="https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006069577/LEGISCTA000006162672?init=true&page=1&query=1588&searchField=ALL&tab_selection=all&anchor=LEGIARTI000006306371#LEGIARTI000006306371" target="_blank">article 1588</a> du code général des impôts relatifs au calcul de la redevance départementale et communale des mines (RDCM).</p><p>Le rapport annuel d\'exploitation est requis en vertu de l\'<a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000023505020/2021-04-14/" target="_blank">article L. 172-1</a> du code minier et <a href="https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000033196097" target="_blank">article 35</a> du décret 2006/649 du 2 juin 2006.</p>',
   },
   grp: {
     id: 'grp',
@@ -88,67 +88,67 @@ export const ActivitesTypes: {
             nom: 'Or brut extrait (g)',
             type: 'number',
             dateDebut: toCaminoDate('2018-01-01'),
-            description: 'Masse d’or brut en sortie de mine extrait au cours du trimestre (exemple : masse sous la forme de concentré gravimétrique).'
+            description: 'Masse d’or brut en sortie de mine extrait au cours du trimestre (exemple : masse sous la forme de concentré gravimétrique).',
           },
           {
             id: 'orExtrait',
             nom: 'Or extrait (g)',
             type: 'number',
             dateFin: toCaminoDate('2018-01-01'),
-            description: "Masse d'or brut en sortie de mine, ou nette obtenue  après traitement métallurgique, extrait au cours du trimestre."
+            description: "Masse d'or brut en sortie de mine, ou nette obtenue  après traitement métallurgique, extrait au cours du trimestre.",
           },
           {
             id: 'volumeMinerai',
             nom: 'Minerai extrait (m3)',
             type: 'number',
             dateFin: toCaminoDate('2018-01-01'),
-            description: 'Volume en mètre cube de minerai extrait au cours du trimestre.'
+            description: 'Volume en mètre cube de minerai extrait au cours du trimestre.',
           },
           {
             id: 'mercure',
             nom: 'Mercure récupéré (g)',
             type: 'number',
-            description: 'Masse en gramme de l’ensemble des produits contaminés envoyés en traitement au cours du trimestre.'
+            description: 'Masse en gramme de l’ensemble des produits contaminés envoyés en traitement au cours du trimestre.',
           },
           {
             id: 'carburantDetaxe',
             nom: 'Carburant détaxé (l)',
             type: 'number',
             dateDebut: toCaminoDate('2018-01-01'),
-            description: 'Volume total en litre de carburant détaxé consommé au cours du trimestre par les travaux réalisés sur le chantier.'
+            description: 'Volume total en litre de carburant détaxé consommé au cours du trimestre par les travaux réalisés sur le chantier.',
           },
           {
             id: 'carburantConventionnel',
             nom: 'Carburant conventionnel (l)',
             type: 'number',
-            description: 'Volume total en litre de carburant conventionnel consommé au cours du trimestre par les travaux réalisés sur le chantier.'
+            description: 'Volume total en litre de carburant conventionnel consommé au cours du trimestre par les travaux réalisés sur le chantier.',
           },
           {
             id: 'pompes',
             nom: 'Pompes actives',
             type: 'number',
             dateDebut: toCaminoDate('2018-01-01'),
-            description: 'Nombre moyen de pompes actives au cours du trimestre utilisées sur le chantier (pompe à gravier, pompe de relevage…).'
+            description: 'Nombre moyen de pompes actives au cours du trimestre utilisées sur le chantier (pompe à gravier, pompe de relevage…).',
           },
           {
             id: 'pelles',
             nom: 'Pelles actives',
             type: 'number',
             dateDebut: toCaminoDate('2018-01-01'),
-            description: 'Nombre moyen de pelles actives au cours du trimestre utilisées sur le chantier (aménagement, exploitation, réhabilitation).'
+            description: 'Nombre moyen de pelles actives au cours du trimestre utilisées sur le chantier (aménagement, exploitation, réhabilitation).',
           },
           {
             id: 'effectifs',
             nom: 'Effectifs',
             type: 'number',
-            description: 'Nombre moyen de salariés sur le chantier au cours du trimestre.'
+            description: 'Nombre moyen de salariés sur le chantier au cours du trimestre.',
           },
           {
             id: 'depensesTotales',
             nom: 'Dépenses totales (euros)',
             type: 'number',
             dateFin: toCaminoDate('2018-01-01'),
-            description: "Montant en euros des dépenses sur l'exploitation."
+            description: "Montant en euros des dépenses sur l'exploitation.",
           },
           {
             id: 'environnement',
@@ -156,9 +156,9 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2018-01-01'),
             description:
-              'Montant en euros des investissements consentis au cours du trimestre listés à l’<a href="https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000021850940&cidTexte=LEGITEXT000006069569" target="_blank" rel="noopener noreferrer">article 318 C de l’annexe II du code général des impôts</a>. Afin de bénéficier des déductions fiscales afférentes, les justificatifs attestant de la réalisation effective des investissements sont susceptibles de vous êtres demandés par l’administration.'
-          }
-        ]
+              'Montant en euros des investissements consentis au cours du trimestre listés à l’<a href="https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000021850940&cidTexte=LEGITEXT000006069569" target="_blank" rel="noopener noreferrer">article 318 C de l’annexe II du code général des impôts</a>. Afin de bénéficier des déductions fiscales afférentes, les justificatifs attestant de la réalisation effective des investissements sont susceptibles de vous êtres demandés par l’administration.',
+          },
+        ],
       },
       {
         id: 'travaux',
@@ -171,27 +171,27 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'nonDebutes',
-                nom: 'non débutés'
+                nom: 'non débutés',
               },
               {
                 id: 'exploitationEnCours',
-                nom: 'exploitation en cours'
+                nom: 'exploitation en cours',
               },
               {
                 id: 'arretTemporaire',
-                nom: 'arrêt temporaire'
+                nom: 'arrêt temporaire',
               },
               {
                 id: 'rehabilitation',
-                nom: 'réhabilitation'
+                nom: 'réhabilitation',
               },
               {
                 id: 'arretDefinitif',
-                nom: 'arrêt définitif (après réhabilitation)'
-              }
+                nom: 'arrêt définitif (après réhabilitation)',
+              },
             ],
             dateDebut: toCaminoDate('2018-01-01'),
-            periodesIds: [1]
+            periodesIds: [1],
           },
           {
             id: '2',
@@ -200,27 +200,27 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'nonDebutes',
-                nom: 'non débutés'
+                nom: 'non débutés',
               },
               {
                 id: 'exploitationEnCours',
-                nom: 'exploitation en cours'
+                nom: 'exploitation en cours',
               },
               {
                 id: 'arretTemporaire',
-                nom: 'arrêt temporaire'
+                nom: 'arrêt temporaire',
               },
               {
                 id: 'rehabilitation',
-                nom: 'réhabilitation'
+                nom: 'réhabilitation',
               },
               {
                 id: 'arretDefinitif',
-                nom: 'arrêt définitif (après réhabilitation)'
-              }
+                nom: 'arrêt définitif (après réhabilitation)',
+              },
             ],
             dateDebut: toCaminoDate('2018-01-01'),
-            periodesIds: [1]
+            periodesIds: [1],
           },
           {
             id: '3',
@@ -229,27 +229,27 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'nonDebutes',
-                nom: 'non débutés'
+                nom: 'non débutés',
               },
               {
                 id: 'exploitationEnCours',
-                nom: 'exploitation en cours'
+                nom: 'exploitation en cours',
               },
               {
                 id: 'arretTemporaire',
-                nom: 'arrêt temporaire'
+                nom: 'arrêt temporaire',
               },
               {
                 id: 'rehabilitation',
-                nom: 'réhabilitation'
+                nom: 'réhabilitation',
               },
               {
                 id: 'arretDefinitif',
-                nom: 'arrêt définitif (après réhabilitation)'
-              }
+                nom: 'arrêt définitif (après réhabilitation)',
+              },
             ],
             dateDebut: toCaminoDate('2018-01-01'),
-            periodesIds: [1]
+            periodesIds: [1],
           },
           {
             id: '4',
@@ -258,27 +258,27 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'nonDebutes',
-                nom: 'non débutés'
+                nom: 'non débutés',
               },
               {
                 id: 'exploitationEnCours',
-                nom: 'exploitation en cours'
+                nom: 'exploitation en cours',
               },
               {
                 id: 'arretTemporaire',
-                nom: 'arrêt temporaire'
+                nom: 'arrêt temporaire',
               },
               {
                 id: 'rehabilitation',
-                nom: 'réhabilitation'
+                nom: 'réhabilitation',
               },
               {
                 id: 'arretDefinitif',
-                nom: 'arrêt définitif (après réhabilitation)'
-              }
+                nom: 'arrêt définitif (après réhabilitation)',
+              },
             ],
             dateDebut: toCaminoDate('2018-01-01'),
-            periodesIds: [2]
+            periodesIds: [2],
           },
           {
             id: '5',
@@ -287,27 +287,27 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'nonDebutes',
-                nom: 'non débutés'
+                nom: 'non débutés',
               },
               {
                 id: 'exploitationEnCours',
-                nom: 'exploitation en cours'
+                nom: 'exploitation en cours',
               },
               {
                 id: 'arretTemporaire',
-                nom: 'arrêt temporaire'
+                nom: 'arrêt temporaire',
               },
               {
                 id: 'rehabilitation',
-                nom: 'réhabilitation'
+                nom: 'réhabilitation',
               },
               {
                 id: 'arretDefinitif',
-                nom: 'arrêt définitif (après réhabilitation)'
-              }
+                nom: 'arrêt définitif (après réhabilitation)',
+              },
             ],
             dateDebut: toCaminoDate('2018-01-01'),
-            periodesIds: [2]
+            periodesIds: [2],
           },
           {
             id: '6',
@@ -316,27 +316,27 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'nonDebutes',
-                nom: 'non débutés'
+                nom: 'non débutés',
               },
               {
                 id: 'exploitationEnCours',
-                nom: 'exploitation en cours'
+                nom: 'exploitation en cours',
               },
               {
                 id: 'arretTemporaire',
-                nom: 'arrêt temporaire'
+                nom: 'arrêt temporaire',
               },
               {
                 id: 'rehabilitation',
-                nom: 'réhabilitation'
+                nom: 'réhabilitation',
               },
               {
                 id: 'arretDefinitif',
-                nom: 'arrêt définitif (après réhabilitation)'
-              }
+                nom: 'arrêt définitif (après réhabilitation)',
+              },
             ],
             dateDebut: toCaminoDate('2018-01-01'),
-            periodesIds: [2]
+            periodesIds: [2],
           },
           {
             id: '7',
@@ -345,27 +345,27 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'nonDebutes',
-                nom: 'non débutés'
+                nom: 'non débutés',
               },
               {
                 id: 'exploitationEnCours',
-                nom: 'exploitation en cours'
+                nom: 'exploitation en cours',
               },
               {
                 id: 'arretTemporaire',
-                nom: 'arrêt temporaire'
+                nom: 'arrêt temporaire',
               },
               {
                 id: 'rehabilitation',
-                nom: 'réhabilitation'
+                nom: 'réhabilitation',
               },
               {
                 id: 'arretDefinitif',
-                nom: 'arrêt définitif (après réhabilitation)'
-              }
+                nom: 'arrêt définitif (après réhabilitation)',
+              },
             ],
             dateDebut: toCaminoDate('2018-01-01'),
-            periodesIds: [3]
+            periodesIds: [3],
           },
           {
             id: '8',
@@ -374,27 +374,27 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'nonDebutes',
-                nom: 'non débutés'
+                nom: 'non débutés',
               },
               {
                 id: 'exploitationEnCours',
-                nom: 'exploitation en cours'
+                nom: 'exploitation en cours',
               },
               {
                 id: 'arretTemporaire',
-                nom: 'arrêt temporaire'
+                nom: 'arrêt temporaire',
               },
               {
                 id: 'rehabilitation',
-                nom: 'réhabilitation'
+                nom: 'réhabilitation',
               },
               {
                 id: 'arretDefinitif',
-                nom: 'arrêt définitif (après réhabilitation)'
-              }
+                nom: 'arrêt définitif (après réhabilitation)',
+              },
             ],
             dateDebut: toCaminoDate('2018-01-01'),
-            periodesIds: [3]
+            periodesIds: [3],
           },
           {
             id: '9',
@@ -403,27 +403,27 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'nonDebutes',
-                nom: 'non débutés'
+                nom: 'non débutés',
               },
               {
                 id: 'exploitationEnCours',
-                nom: 'exploitation en cours'
+                nom: 'exploitation en cours',
               },
               {
                 id: 'arretTemporaire',
-                nom: 'arrêt temporaire'
+                nom: 'arrêt temporaire',
               },
               {
                 id: 'rehabilitation',
-                nom: 'réhabilitation'
+                nom: 'réhabilitation',
               },
               {
                 id: 'arretDefinitif',
-                nom: 'arrêt définitif (après réhabilitation)'
-              }
+                nom: 'arrêt définitif (après réhabilitation)',
+              },
             ],
             dateDebut: toCaminoDate('2018-01-01'),
-            periodesIds: [3]
+            periodesIds: [3],
           },
           {
             id: '10',
@@ -432,27 +432,27 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'nonDebutes',
-                nom: 'non débutés'
+                nom: 'non débutés',
               },
               {
                 id: 'exploitationEnCours',
-                nom: 'exploitation en cours'
+                nom: 'exploitation en cours',
               },
               {
                 id: 'arretTemporaire',
-                nom: 'arrêt temporaire'
+                nom: 'arrêt temporaire',
               },
               {
                 id: 'rehabilitation',
-                nom: 'réhabilitation'
+                nom: 'réhabilitation',
               },
               {
                 id: 'arretDefinitif',
-                nom: 'arrêt définitif (après réhabilitation)'
-              }
+                nom: 'arrêt définitif (après réhabilitation)',
+              },
             ],
             dateDebut: toCaminoDate('2018-01-01'),
-            periodesIds: [4]
+            periodesIds: [4],
           },
           {
             id: '11',
@@ -461,27 +461,27 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'nonDebutes',
-                nom: 'non débutés'
+                nom: 'non débutés',
               },
               {
                 id: 'exploitationEnCours',
-                nom: 'exploitation en cours'
+                nom: 'exploitation en cours',
               },
               {
                 id: 'arretTemporaire',
-                nom: 'arrêt temporaire'
+                nom: 'arrêt temporaire',
               },
               {
                 id: 'rehabilitation',
-                nom: 'réhabilitation'
+                nom: 'réhabilitation',
               },
               {
                 id: 'arretDefinitif',
-                nom: 'arrêt définitif (après réhabilitation)'
-              }
+                nom: 'arrêt définitif (après réhabilitation)',
+              },
             ],
             dateDebut: toCaminoDate('2018-01-01'),
-            periodesIds: [4]
+            periodesIds: [4],
           },
           {
             id: '12',
@@ -490,29 +490,29 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'nonDebutes',
-                nom: 'non débutés'
+                nom: 'non débutés',
               },
               {
                 id: 'exploitationEnCours',
-                nom: 'exploitation en cours'
+                nom: 'exploitation en cours',
               },
               {
                 id: 'arretTemporaire',
-                nom: 'arrêt temporaire'
+                nom: 'arrêt temporaire',
               },
               {
                 id: 'rehabilitation',
-                nom: 'réhabilitation'
+                nom: 'réhabilitation',
               },
               {
                 id: 'arretDefinitif',
-                nom: 'arrêt définitif (après réhabilitation)'
-              }
+                nom: 'arrêt définitif (après réhabilitation)',
+              },
             ],
             dateDebut: toCaminoDate('2018-01-01'),
-            periodesIds: [4]
-          }
-        ]
+            periodesIds: [4],
+          },
+        ],
       },
       {
         id: 'complement',
@@ -524,15 +524,15 @@ export const ActivitesTypes: {
             dateDebut: toCaminoDate('2018-01-01'),
             optionnel: true,
             description:
-              'Toute information sur les événements marquants du trimestre (accident, incident, arrêt ou suspension d’activité en précisant les raisons, évolution de l’exploitation, difficultés rencontrées, etc.).'
-          }
-        ]
-      }
+              'Toute information sur les événements marquants du trimestre (accident, incident, arrêt ou suspension d’activité en précisant les raisons, évolution de l’exploitation, difficultés rencontrées, etc.).',
+          },
+        ],
+      },
     ],
     frequenceId: 'tri',
     dateDebut: toCaminoDate('2018-01-01'),
     delaiMois: 19,
-    ordre: 1
+    ordre: 1,
   },
   grx: {
     id: 'grx',
@@ -540,7 +540,7 @@ export const ActivitesTypes: {
     sections: [
       {
         id: 'substancesFiscales',
-        nom: 'Production annuelle'
+        nom: 'Production annuelle',
       },
       {
         id: 'complement',
@@ -551,17 +551,17 @@ export const ActivitesTypes: {
             type: 'textarea',
             dateDebut: toCaminoDate('2018-01-01'),
             optionnel: true,
-            description: "Toute information utile à la compréhension de la production d'or net."
-          }
-        ]
-      }
+            description: "Toute information utile à la compréhension de la production d'or net.",
+          },
+        ],
+      },
     ],
     frequenceId: 'ann',
     dateDebut: toCaminoDate('2018-01-01'),
     delaiMois: 11,
     ordre: 2,
     description:
-      '<p>La production annuelle est requise en vertu des <a href="https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006069577/LEGISCTA000006179968" target="_blank">article 1519</a>, <a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000043663002" target="_blank">article 1587</a> et <a href="https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006069577/LEGISCTA000006162672?init=true&page=1&query=1588&searchField=ALL&tab_selection=all&anchor=LEGIARTI000006306371#LEGIARTI000006306371" target="_blank">article 1588</a> du code général des impôts relatifs au calcul de la redevance départementale et communale des mines (RDCM).</p><p>Le rapport annuel d\'exploitation est requis en vertu de l\'<a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000023505020/2021-04-14/" target="_blank">article L. 172-1</a> du code minier et <a href="https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000033196097" target="_blank">article 35</a> du décret 2006/649 du 2 juin 2006.</p>'
+      '<p>La production annuelle est requise en vertu des <a href="https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006069577/LEGISCTA000006179968" target="_blank">article 1519</a>, <a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000043663002" target="_blank">article 1587</a> et <a href="https://www.legifrance.gouv.fr/codes/section_lc/LEGITEXT000006069577/LEGISCTA000006162672?init=true&page=1&query=1588&searchField=ALL&tab_selection=all&anchor=LEGIARTI000006306371#LEGIARTI000006306371" target="_blank">article 1588</a> du code général des impôts relatifs au calcul de la redevance départementale et communale des mines (RDCM).</p><p>Le rapport annuel d\'exploitation est requis en vertu de l\'<a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000023505020/2021-04-14/" target="_blank">article L. 172-1</a> du code minier et <a href="https://www.legifrance.gouv.fr/loda/article_lc/LEGIARTI000033196097" target="_blank">article 35</a> du décret 2006/649 du 2 juin 2006.</p>',
   },
   pma: {
     id: 'pma',
@@ -577,7 +577,7 @@ export const ActivitesTypes: {
             type: 'text',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Exemples : LIDAR, géomètre…'
+            description: 'Exemples : LIDAR, géomètre…',
           },
           {
             id: 'surfaceLevesTopo',
@@ -585,7 +585,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Surface du titre couverte par des levés topographiques'
+            description: 'Surface du titre couverte par des levés topographiques',
           },
           {
             id: 'complementLevesTopo',
@@ -593,9 +593,9 @@ export const ActivitesTypes: {
             type: 'textarea',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Toute information complémentaire sur les levés topographiques'
-          }
-        ]
+            description: 'Toute information complémentaire sur les levés topographiques',
+          },
+        ],
       },
       {
         id: 'cartographieGeologique',
@@ -607,7 +607,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: "Surface du titre dont la cartographie géologique a été effectuée au cours de l'année"
+            description: "Surface du titre dont la cartographie géologique a été effectuée au cours de l'année",
           },
           {
             id: 'complementCartographie',
@@ -615,9 +615,9 @@ export const ActivitesTypes: {
             type: 'textarea',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Toute information complémentaire sur les activités de cartographie'
-          }
-        ]
+            description: 'Toute information complémentaire sur les activités de cartographie',
+          },
+        ],
       },
       {
         id: 'levesGeochimiques',
@@ -629,7 +629,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Surface du titre couverte par des levés géochimiques'
+            description: 'Surface du titre couverte par des levés géochimiques',
           },
           {
             id: 'lineaireLevesGeochimie',
@@ -637,7 +637,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Longueur de layon couverte par des levés géochimiques'
+            description: 'Longueur de layon couverte par des levés géochimiques',
           },
           {
             id: 'complementLevesGeochimie',
@@ -645,9 +645,9 @@ export const ActivitesTypes: {
             type: 'textarea',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Toute information complémentaire sur les levés géochimiques'
-          }
-        ]
+            description: 'Toute information complémentaire sur les levés géochimiques',
+          },
+        ],
       },
       {
         id: 'levesGeophysiques',
@@ -659,7 +659,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Surface du titre en kilomètre carré couverte par des levés de magnétisme '
+            description: 'Surface du titre en kilomètre carré couverte par des levés de magnétisme ',
           },
           {
             id: 'lineaireLevesMagnetisme',
@@ -667,7 +667,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Longueur de layon en kilomètre couverte par des levés de magnétisme'
+            description: 'Longueur de layon en kilomètre couverte par des levés de magnétisme',
           },
           {
             id: 'typeLevesMagnetisme',
@@ -676,15 +676,15 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'auSol',
-                nom: 'au sol'
+                nom: 'au sol',
               },
               {
                 id: 'aeroporte',
-                nom: 'aéroporté'
-              }
+                nom: 'aéroporté',
+              },
             ],
             dateDebut: toCaminoDate('2019-01-01'),
-            optionnel: true
+            optionnel: true,
           },
           {
             id: 'surfaceLevesSpectrometrie',
@@ -692,7 +692,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Surface du titre en kilomètre carré couverte par des levés de spectrométrie'
+            description: 'Surface du titre en kilomètre carré couverte par des levés de spectrométrie',
           },
           {
             id: 'lineaireLevesSpectrometrie',
@@ -700,7 +700,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Longueur de layon en kilomètre couverte par des levés de spectrométrie'
+            description: 'Longueur de layon en kilomètre couverte par des levés de spectrométrie',
           },
           {
             id: 'typeLevesSpectrometrie',
@@ -709,15 +709,15 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'auSol',
-                nom: 'au sol'
+                nom: 'au sol',
               },
               {
                 id: 'aeroporte',
-                nom: 'aéroporté'
-              }
+                nom: 'aéroporté',
+              },
             ],
             dateDebut: toCaminoDate('2019-01-01'),
-            optionnel: true
+            optionnel: true,
           },
           {
             id: 'surfaceLevesPolarisationProvoquee',
@@ -725,7 +725,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Surface du titre en kilomètre carré couverte par des levés de polarisation provoquée'
+            description: 'Surface du titre en kilomètre carré couverte par des levés de polarisation provoquée',
           },
           {
             id: 'lineaireLevesPolarisationProvoquee',
@@ -733,7 +733,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Longueur de layon en kilomètre couverte par des levés de polarisation provoquée'
+            description: 'Longueur de layon en kilomètre couverte par des levés de polarisation provoquée',
           },
           {
             id: 'typeLevesPolarisationProvoquee',
@@ -742,15 +742,15 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'auSol',
-                nom: 'au sol'
+                nom: 'au sol',
               },
               {
                 id: 'aeroporte',
-                nom: 'aéroporté'
-              }
+                nom: 'aéroporté',
+              },
             ],
             dateDebut: toCaminoDate('2019-01-01'),
-            optionnel: true
+            optionnel: true,
           },
           {
             id: 'surfaceLevesSismiques',
@@ -758,7 +758,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Surface du titre en kilomètre carré couverte par des levés sismiques'
+            description: 'Surface du titre en kilomètre carré couverte par des levés sismiques',
           },
           {
             id: 'lineaireLevesSismiques',
@@ -766,7 +766,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Longueur de layon en kilomètre couverte par des levés sismiques'
+            description: 'Longueur de layon en kilomètre couverte par des levés sismiques',
           },
           {
             id: 'typeLevesSismiques',
@@ -775,15 +775,15 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'auSol',
-                nom: 'au sol'
+                nom: 'au sol',
               },
               {
                 id: 'aeroporte',
-                nom: 'aéroporté'
-              }
+                nom: 'aéroporté',
+              },
             ],
             dateDebut: toCaminoDate('2019-01-01'),
-            optionnel: true
+            optionnel: true,
           },
           {
             id: 'surfaceLevesConductivite',
@@ -791,7 +791,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Surface du titre en kilomètre carré couverte par des levés de conductivité'
+            description: 'Surface du titre en kilomètre carré couverte par des levés de conductivité',
           },
           {
             id: 'lineaireLevesConductivite',
@@ -799,7 +799,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Longueur de layon en kilomètre couverte par des levés de conductivité'
+            description: 'Longueur de layon en kilomètre couverte par des levés de conductivité',
           },
           {
             id: 'typeLevesConductivite',
@@ -808,15 +808,15 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'auSol',
-                nom: 'au sol'
+                nom: 'au sol',
               },
               {
                 id: 'aeroporte',
-                nom: 'aéroporté'
-              }
+                nom: 'aéroporté',
+              },
             ],
             dateDebut: toCaminoDate('2019-01-01'),
-            optionnel: true
+            optionnel: true,
           },
           {
             id: 'surfaceLevesAutre',
@@ -824,7 +824,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: "Surface du titre en kilomètre carré couverte par des levés par d'autres méthodes"
+            description: "Surface du titre en kilomètre carré couverte par des levés par d'autres méthodes",
           },
           {
             id: 'lineaireLevesAutre',
@@ -832,7 +832,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: "Longueur de layon en kilomètre couverte par des levés par d'autres méthodes"
+            description: "Longueur de layon en kilomètre couverte par des levés par d'autres méthodes",
           },
           {
             id: 'typeLevesAutre',
@@ -841,15 +841,15 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'auSol',
-                nom: 'au sol'
+                nom: 'au sol',
               },
               {
                 id: 'aeroporte',
-                nom: 'aéroporté'
-              }
+                nom: 'aéroporté',
+              },
             ],
             dateDebut: toCaminoDate('2019-01-01'),
-            optionnel: true
+            optionnel: true,
           },
           {
             id: 'complementLevesGeochimie',
@@ -857,9 +857,9 @@ export const ActivitesTypes: {
             type: 'textarea',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Toute information complémentaire sur les levés géophysique'
-          }
-        ]
+            description: 'Toute information complémentaire sur les levés géophysique',
+          },
+        ],
       },
       {
         id: 'trancheesPuits',
@@ -871,7 +871,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Nombre de puits forés'
+            description: 'Nombre de puits forés',
           },
           {
             id: 'lineaireTranchees',
@@ -879,7 +879,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Longueur de tranchée de prospection ouverte'
+            description: 'Longueur de tranchée de prospection ouverte',
           },
           {
             id: 'complementTrancheesPuits',
@@ -887,9 +887,9 @@ export const ActivitesTypes: {
             type: 'textarea',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Toute information complémentaire sur les tranchées et puits'
-          }
-        ]
+            description: 'Toute information complémentaire sur les tranchées et puits',
+          },
+        ],
       },
       {
         id: 'sondages',
@@ -901,7 +901,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: "Nombre de sondages effectués à l'aide d'une tarière"
+            description: "Nombre de sondages effectués à l'aide d'une tarière",
           },
           {
             id: 'profondeurMaxSondagesTariere',
@@ -909,7 +909,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Profondeur maximale atteinte par les sondages tarière'
+            description: 'Profondeur maximale atteinte par les sondages tarière',
           },
           {
             id: 'profondeurMoySondagesTariere',
@@ -917,7 +917,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Profondeur moyenne atteinte par les sondages tarière'
+            description: 'Profondeur moyenne atteinte par les sondages tarière',
           },
           {
             id: 'lineaireSondagesTarieres',
@@ -925,7 +925,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Longueur du linéaire de sondages tarière'
+            description: 'Longueur du linéaire de sondages tarière',
           },
           {
             id: 'nombreSondagesDestructifs',
@@ -933,7 +933,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: "Nombre de sondages effectués à l'aide d'une destructifs"
+            description: "Nombre de sondages effectués à l'aide d'une destructifs",
           },
           {
             id: 'profondeurMaxSondagesDestructifs',
@@ -941,7 +941,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Profondeur maximale atteinte par les sondages destructifs'
+            description: 'Profondeur maximale atteinte par les sondages destructifs',
           },
           {
             id: 'profondeurMoySondagesDestructifs',
@@ -949,7 +949,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Profondeur moyenne atteinte par les sondages destructifs'
+            description: 'Profondeur moyenne atteinte par les sondages destructifs',
           },
           {
             id: 'lineaireSondagesDestructifss',
@@ -957,7 +957,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Longueur du linéaire de sondages destructifs'
+            description: 'Longueur du linéaire de sondages destructifs',
           },
           {
             id: 'nombreSondagesCarottes',
@@ -965,7 +965,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: "Nombre de sondages effectués à l'aide d'une carottés"
+            description: "Nombre de sondages effectués à l'aide d'une carottés",
           },
           {
             id: 'profondeurMaxSondagesCarottes',
@@ -973,7 +973,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Profondeur maximale atteinte par les sondages carottés'
+            description: 'Profondeur maximale atteinte par les sondages carottés',
           },
           {
             id: 'profondeurMoySondagesCarottes',
@@ -981,7 +981,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Profondeur moyenne atteinte par les sondages carottés'
+            description: 'Profondeur moyenne atteinte par les sondages carottés',
           },
           {
             id: 'lineaireSondagesCarottes',
@@ -989,7 +989,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Longueur du linéaire de sondages carottés'
+            description: 'Longueur du linéaire de sondages carottés',
           },
           {
             id: 'complementSondages',
@@ -997,9 +997,9 @@ export const ActivitesTypes: {
             type: 'textarea',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Toute information complémentaire sur les sondages'
-          }
-        ]
+            description: 'Toute information complémentaire sur les sondages',
+          },
+        ],
       },
       {
         id: 'Analyses',
@@ -1011,7 +1011,7 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: "Nombre d'analyses multi-éléments"
+            description: "Nombre d'analyses multi-éléments",
           },
           {
             id: 'listeAnalysesMultiElements',
@@ -1019,7 +1019,7 @@ export const ActivitesTypes: {
             type: 'textarea',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Précisions sur les éléments analysés et méthodes analytiques utilisées'
+            description: 'Précisions sur les éléments analysés et méthodes analytiques utilisées',
           },
           {
             id: 'listeTraitementMineralurgiques',
@@ -1028,38 +1028,38 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'analyseGranulometrie',
-                nom: 'analyse granulométrique'
+                nom: 'analyse granulométrique',
               },
               {
                 id: 'concassage',
-                nom: 'concassage'
+                nom: 'concassage',
               },
               {
                 id: 'broyage',
-                nom: 'broyage'
+                nom: 'broyage',
               },
               {
                 id: 'separationGravimetrique',
-                nom: 'séparation gravimétrique'
+                nom: 'séparation gravimétrique',
               },
               {
                 id: 'flottation',
-                nom: 'flottation'
+                nom: 'flottation',
               },
               {
                 id: 'cyanuration',
-                nom: 'cyanuration'
+                nom: 'cyanuration',
               },
               {
                 id: 'testLixiviation',
-                nom: 'test de lixiviation'
+                nom: 'test de lixiviation',
               },
               {
                 id: 'autre',
-                nom: 'autres'
-              }
+                nom: 'autres',
+              },
             ],
-            optionnel: true
+            optionnel: true,
           },
           {
             id: 'complementAnalyses',
@@ -1067,9 +1067,9 @@ export const ActivitesTypes: {
             type: 'textarea',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Toute information complémentaire sur les analyses (volumes traités, nombre de tests...)'
-          }
-        ]
+            description: 'Toute information complémentaire sur les analyses (volumes traités, nombre de tests...)',
+          },
+        ],
       },
       {
         id: 'etudes',
@@ -1082,32 +1082,32 @@ export const ActivitesTypes: {
             valeurs: [
               {
                 id: 'environnementale',
-                nom: 'environnementale'
+                nom: 'environnementale',
               },
               {
                 id: 'economiquePreliminaire',
-                nom: 'économique préliminaire'
+                nom: 'économique préliminaire',
               },
               {
                 id: 'economiquePreFaisabilite',
-                nom: 'économique pré-faisabilité'
+                nom: 'économique pré-faisabilité',
               },
               {
                 id: 'economiqueFaisabilité',
-                nom: 'économique faisabilité'
+                nom: 'économique faisabilité',
               },
               {
                 id: 'sociale',
-                nom: 'sociale'
+                nom: 'sociale',
               },
               {
                 id: 'autre',
-                nom: 'autres'
-              }
+                nom: 'autres',
+              },
             ],
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Nature des études effectuées'
+            description: 'Nature des études effectuées',
           },
           {
             id: 'complementEtudes',
@@ -1115,15 +1115,15 @@ export const ActivitesTypes: {
             type: 'textarea',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: 'Toute information complémentaire sur les études effectuées'
-          }
-        ]
-      }
+            description: 'Toute information complémentaire sur les études effectuées',
+          },
+        ],
+      },
     ],
     frequenceId: 'ann',
     dateDebut: toCaminoDate('2019-01-01'),
     delaiMois: 24,
-    ordre: 4
+    ordre: 4,
   },
   pmb: {
     id: 'pmb',
@@ -1138,9 +1138,9 @@ export const ActivitesTypes: {
             nom: 'Dépenses totales de prospection',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros de l'ensemble des dépenses effectuées au cours de l'année"
-          }
-        ]
+            description: "Montant en euros de l'ensemble des dépenses effectuées au cours de l'année",
+          },
+        ],
       },
       {
         id: 'indicateursFinanciersLevesTopographiques',
@@ -1151,9 +1151,9 @@ export const ActivitesTypes: {
             nom: 'Dépenses de levés topographiques (euros)',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses de levés topographiques au cours de l'année"
-          }
-        ]
+            description: "Montant en euros des dépenses de levés topographiques au cours de l'année",
+          },
+        ],
       },
       {
         id: 'indicateursFinanciersCartographieGeologique',
@@ -1164,9 +1164,9 @@ export const ActivitesTypes: {
             nom: 'Dépenses de cartographie géologique (euros)',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses de cartographie géologique au cours de l'année"
-          }
-        ]
+            description: "Montant en euros des dépenses de cartographie géologique au cours de l'année",
+          },
+        ],
       },
       {
         id: 'indicateursFinanciersLevesGeochimie',
@@ -1177,9 +1177,9 @@ export const ActivitesTypes: {
             nom: 'Dépenses de levés géochimiques (euros)',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses de levés géochimiques au cours de l'année"
-          }
-        ]
+            description: "Montant en euros des dépenses de levés géochimiques au cours de l'année",
+          },
+        ],
       },
       {
         id: 'indicateursFinanciersLevesGeophysique',
@@ -1190,9 +1190,9 @@ export const ActivitesTypes: {
             nom: 'Dépenses de levés géophysique (euros)',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses de levés géophysique au cours de l'année"
-          }
-        ]
+            description: "Montant en euros des dépenses de levés géophysique au cours de l'année",
+          },
+        ],
       },
       {
         id: 'indicateursFinanciersLevesTrancheesPuits',
@@ -1203,9 +1203,9 @@ export const ActivitesTypes: {
             nom: 'Dépenses de tranchées et puits (euros)',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses de tranchées et puits au cours de l'année"
-          }
-        ]
+            description: "Montant en euros des dépenses de tranchées et puits au cours de l'année",
+          },
+        ],
       },
       {
         id: 'indicateursFinanciersSondages',
@@ -1216,23 +1216,23 @@ export const ActivitesTypes: {
             nom: 'Dépenses de sondages tarières (euros)',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses de sondages tarières au cours de l'année"
+            description: "Montant en euros des dépenses de sondages tarières au cours de l'année",
           },
           {
             id: 'depensesLevesSondagesDestructifs',
             nom: 'Dépenses de sondages destructifs (euros)',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses de sondages destructifs au cours de l'année"
+            description: "Montant en euros des dépenses de sondages destructifs au cours de l'année",
           },
           {
             id: 'depensesLevesSondagesCarottés',
             nom: 'Dépenses de sondages carottés (euros)',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses de sondages carottés au cours de l'année"
-          }
-        ]
+            description: "Montant en euros des dépenses de sondages carottés au cours de l'année",
+          },
+        ],
       },
       {
         id: 'indicateursFinanciersAnalysesMultiElements',
@@ -1243,16 +1243,16 @@ export const ActivitesTypes: {
             nom: "Dépenses d'analyses multi-éléments (euros)",
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses d'analyses multi-éléments au cours de l'année"
+            description: "Montant en euros des dépenses d'analyses multi-éléments au cours de l'année",
           },
           {
             id: 'depensesTraitementMineralurgiques',
             nom: 'Dépenses de traitements minéralurgiques (euros)',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses de traitements minéralurgiques au cours de l'année"
-          }
-        ]
+            description: "Montant en euros des dépenses de traitements minéralurgiques au cours de l'année",
+          },
+        ],
       },
       {
         id: 'indicateursFinanciersEtudes',
@@ -1263,44 +1263,44 @@ export const ActivitesTypes: {
             nom: "Dépenses d'étude environnementale (euros)",
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses d'études environnementales au cours de l'année"
+            description: "Montant en euros des dépenses d'études environnementales au cours de l'année",
           },
           {
             id: 'depensesEtudeEconomiquePreliminaire',
             nom: "Dépenses d'étude économique préliminaire (euros)",
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses d'étude économique préliminaire au cours de l'année"
+            description: "Montant en euros des dépenses d'étude économique préliminaire au cours de l'année",
           },
           {
             id: 'depensesEtudeEconomiquePreFaisabilite',
             nom: "Dépenses d'étude économique pré-faisabilité (euros)",
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses d'étude économique pré-faisabilité au cours de l'année"
+            description: "Montant en euros des dépenses d'étude économique pré-faisabilité au cours de l'année",
           },
           {
             id: 'depensesEtudeEconomiqueFaisabilité',
             nom: "Dépenses d'étude économique faisabilité (euros)",
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses d'étude économique faisabilité au cours de l'année"
+            description: "Montant en euros des dépenses d'étude économique faisabilité au cours de l'année",
           },
           {
             id: 'depensesEtudeSociale',
             nom: "Dépenses d'étude sociale (euros)",
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses d'étude environnementales au cours de l'année"
+            description: "Montant en euros des dépenses d'étude environnementales au cours de l'année",
           },
           {
             id: 'depensesEtudessautres',
             nom: "Dépenses d'études autres (euros)",
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses d'études autres au cours de l'année"
-          }
-        ]
+            description: "Montant en euros des dépenses d'études autres au cours de l'année",
+          },
+        ],
       },
       {
         id: 'indicateursFinanciersEnvironnement',
@@ -1312,9 +1312,9 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             description:
-              'Montant en euros des investissements consentis au cours de l\'année listés à l’<a href="https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000021850940&cidTexte=LEGITEXT000006069569" target="_blank" rel="noopener noreferrer">article 318 C de l’annexe II du code général des impôts</a>. Afin de bénéficier des déductions fiscales afférentes, les justificatifs attestant de la réalisation effective des investissements sont susceptibles de vous être demandés par l’administration.'
-          }
-        ]
+              'Montant en euros des investissements consentis au cours de l\'année listés à l’<a href="https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000021850940&cidTexte=LEGITEXT000006069569" target="_blank" rel="noopener noreferrer">article 318 C de l’annexe II du code général des impôts</a>. Afin de bénéficier des déductions fiscales afférentes, les justificatifs attestant de la réalisation effective des investissements sont susceptibles de vous être demandés par l’administration.',
+          },
+        ],
       },
       {
         id: 'indicateursFinanciersCommunication',
@@ -1325,9 +1325,9 @@ export const ActivitesTypes: {
             nom: "Dépenses de communication et d'information du public (euros)",
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des dépenses de communication et frais d'organisation de réunions publiques au cours de l'année"
-          }
-        ]
+            description: "Montant en euros des dépenses de communication et frais d'organisation de réunions publiques au cours de l'année",
+          },
+        ],
       },
       {
         id: 'complementFinancier',
@@ -1338,22 +1338,22 @@ export const ActivitesTypes: {
             nom: 'Autres dépenses (euros)',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Montant en euros des autres dépenses au cours de l'année"
+            description: "Montant en euros des autres dépenses au cours de l'année",
           },
           {
             id: 'texte',
             type: 'textarea',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: "Toute information sur les événements financiers marquants de l'année."
-          }
-        ]
-      }
+            description: "Toute information sur les événements financiers marquants de l'année.",
+          },
+        ],
+      },
     ],
     frequenceId: 'ann',
     dateDebut: toCaminoDate('2019-01-01'),
     delaiMois: 24,
-    ordre: 3
+    ordre: 3,
   },
   pmc: {
     id: 'pmc',
@@ -1368,20 +1368,20 @@ export const ActivitesTypes: {
             nom: 'Carburant détaxé (l)',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Volume total en litre de carburant détaxé consommé au cours de l'année par les travaux réalisés sur le chantier."
+            description: "Volume total en litre de carburant détaxé consommé au cours de l'année par les travaux réalisés sur le chantier.",
           },
           {
             id: 'carburantConventionnel',
             nom: 'Carburant conventionnel (l)',
             type: 'number',
-            description: "Volume total en litre de carburant conventionnel consommé au cours de l'année par les travaux réalisés sur le chantier."
+            description: "Volume total en litre de carburant conventionnel consommé au cours de l'année par les travaux réalisés sur le chantier.",
           },
           {
             id: 'pompes',
             nom: 'Pompes actives',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "<b>Dans le cas d'un chantier alluvionnaire</b>, nombre d'heure de fonctionnement de pompes au cours de l'année sur le chantier (pompe à gravier, pompe de relevage…)."
+            description: "<b>Dans le cas d'un chantier alluvionnaire</b>, nombre d'heure de fonctionnement de pompes au cours de l'année sur le chantier (pompe à gravier, pompe de relevage…).",
           },
           {
             id: 'pelles',
@@ -1389,21 +1389,21 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             description:
-              "<b>Dans le cas d'un chantier alluvionnaire</b>, nombre d'heure de fonctionnement de pelles mécaniques au cours de l'année sur le chantier (aménagement, exploitation, réhabilitation)."
+              "<b>Dans le cas d'un chantier alluvionnaire</b>, nombre d'heure de fonctionnement de pelles mécaniques au cours de l'année sur le chantier (aménagement, exploitation, réhabilitation).",
           },
           {
             id: 'mercure',
             nom: 'Mercure récupéré (g)',
             type: 'number',
-            description: "<b>En Guyane</b>, masse en gramme de l’ensemble des produits contaminés au mercure envoyés en traitement au cours de l'année."
+            description: "<b>En Guyane</b>, masse en gramme de l’ensemble des produits contaminés au mercure envoyés en traitement au cours de l'année.",
           },
           {
             id: 'surfaceDeforestee',
             nom: 'Surface déforestée (km²)',
             type: 'number',
-            description: "Surface déforestée en kilomètre carré au cours de l'année."
-          }
-        ]
+            description: "Surface déforestée en kilomètre carré au cours de l'année.",
+          },
+        ],
       },
       {
         id: 'complementEnvironnement',
@@ -1415,15 +1415,15 @@ export const ActivitesTypes: {
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
             description:
-              "Toute information sur les événements marquants l'année en matière de protection de l'environnement dont les actions entreprises pour réduire l'empreinte environnementale du projet."
-          }
-        ]
-      }
+              "Toute information sur les événements marquants l'année en matière de protection de l'environnement dont les actions entreprises pour réduire l'empreinte environnementale du projet.",
+          },
+        ],
+      },
     ],
     frequenceId: 'ann',
     dateDebut: toCaminoDate('2019-01-01'),
     delaiMois: 24,
-    ordre: 5
+    ordre: 5,
   },
   pmd: {
     id: 'pmd',
@@ -1438,21 +1438,21 @@ export const ActivitesTypes: {
             nom: 'Emplois directs salariés',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Nombre total de salariés de l'entreprise affectés aux activités sur le titre minier."
+            description: "Nombre total de salariés de l'entreprise affectés aux activités sur le titre minier.",
           },
           {
             id: 'etpDirectsTotal',
             nom: 'Equivalents temps plein salariés',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Nombre total d'équivalents temps plein salariés de l'entreprise affectés aux activités sur le titre minier."
+            description: "Nombre total d'équivalents temps plein salariés de l'entreprise affectés aux activités sur le titre minier.",
           },
           {
             id: 'emploisDirectsResidents',
             nom: 'Emplois directs salariés occupés par des résidents du département',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Nombre de salariés de l'entreprise, <b>français ou étrangers, résidant fiscalement dans le département</b>, affectés aux activités sur le titre minier."
+            description: "Nombre de salariés de l'entreprise, <b>français ou étrangers, résidant fiscalement dans le département</b>, affectés aux activités sur le titre minier.",
           },
           {
             id: 'etpDirectsResidents',
@@ -1460,23 +1460,23 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             description:
-              "Nombre d'équivalents temps plein salariés de l'entreprise, occupés par des <b>français ou étrangers, résidant fiscalement dans le département</b>, affectés aux activités sur le titre minier."
+              "Nombre d'équivalents temps plein salariés de l'entreprise, occupés par des <b>français ou étrangers, résidant fiscalement dans le département</b>, affectés aux activités sur le titre minier.",
           },
           {
             id: 'emploisDirectsFr',
             nom: 'Emplois directs salariés de nationalité française',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Nombre d'employés de <b>nationalité française</b> salariés de l'entreprise affectés aux activités sur le titre minier."
+            description: "Nombre d'employés de <b>nationalité française</b> salariés de l'entreprise affectés aux activités sur le titre minier.",
           },
           {
             id: 'etpDirectsFr',
             nom: 'Equivalents temps plein salariés de nationalité française',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Nombre d'équivalents temps plein salariés de l'entreprise occupés par des personnes de <b>nationalité française</b> affectés aux activités sur le titre minier."
-          }
-        ]
+            description: "Nombre d'équivalents temps plein salariés de l'entreprise occupés par des personnes de <b>nationalité française</b> affectés aux activités sur le titre minier.",
+          },
+        ],
       },
       {
         id: 'indicateursSocialEconomiqueInirects',
@@ -1487,35 +1487,35 @@ export const ActivitesTypes: {
             nom: 'Emplois salariés des sous-traitants',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Nombre total d'emplois salariés des sous-traitants et prestataires affectés aux activités sur le titre minier."
+            description: "Nombre total d'emplois salariés des sous-traitants et prestataires affectés aux activités sur le titre minier.",
           },
           {
             id: 'etpIndirectsTotal',
             nom: 'Equivalents temps plein salariés des sous-traitants',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Nombre total d'équivalents temps plein salariés des sous-traitants et prestataires, affectés aux activités sur le titre minier."
+            description: "Nombre total d'équivalents temps plein salariés des sous-traitants et prestataires, affectés aux activités sur le titre minier.",
           },
           {
             id: 'emploisIndirectsResidents',
             nom: 'Emplois salariés résidents du département des sous-traitants',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: 'Nombre de salariés des sous-traitants et prestataires, <b>résidant fiscalement dans le département</b>, affectés aux activités sur le titre minier.'
+            description: 'Nombre de salariés des sous-traitants et prestataires, <b>résidant fiscalement dans le département</b>, affectés aux activités sur le titre minier.',
           },
           {
             id: 'etpIndirectsResidents',
             nom: 'Equivalents temps plein des salariés des sous-traitants résidents du département',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Nombre d'équivalents temps plein des sous-traitants et prestataires, <b>résidant fiscalement dans le département</b>, affectés aux activités sur le titre minier."
+            description: "Nombre d'équivalents temps plein des sous-traitants et prestataires, <b>résidant fiscalement dans le département</b>, affectés aux activités sur le titre minier.",
           },
           {
             id: 'emploisIndirectsFr',
             nom: 'Emplois salariés de nationalité française des sous-traitants',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Nombre d'employés de <b>nationalité française</b> salariés des sous-traitants et prestataires de l'entreprise, affectés aux activités sur le titre minier."
+            description: "Nombre d'employés de <b>nationalité française</b> salariés des sous-traitants et prestataires de l'entreprise, affectés aux activités sur le titre minier.",
           },
           {
             id: 'etpIndirectsFr',
@@ -1523,9 +1523,9 @@ export const ActivitesTypes: {
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
             description:
-              "Nombre d'équivalents temps plein occupés par des personnes de <b>nationalité française</b> salariées des sous-traitants et prestataires de l'entreprise, affectées aux activités sur le titre minier."
-          }
-        ]
+              "Nombre d'équivalents temps plein occupés par des personnes de <b>nationalité française</b> salariées des sous-traitants et prestataires de l'entreprise, affectées aux activités sur le titre minier.",
+          },
+        ],
       },
       {
         id: 'indicateursConcertationAcceptabilite',
@@ -1536,23 +1536,23 @@ export const ActivitesTypes: {
             nom: 'Réunions publiques',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Nombre de réunions publiques consacrées aux projets sur le titre minier organisées au cours de l'année"
+            description: "Nombre de réunions publiques consacrées aux projets sur le titre minier organisées au cours de l'année",
           },
           {
             id: 'priseContact',
             nom: 'Rendez-vous',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Nombre de rendez-vous avec les parties prenantes concernées par le titre minier organisés au cours de l'année"
+            description: "Nombre de rendez-vous avec les parties prenantes concernées par le titre minier organisés au cours de l'année",
           },
           {
             id: 'communicationLocale',
             nom: 'Actions de communication à destination du public',
             type: 'number',
             dateDebut: toCaminoDate('2019-01-01'),
-            description: "Nombre d'actions de communication menées par le titulaire du titre à destination du public (hors publication et communication à destination des marchés) au cours de l'année"
-          }
-        ]
+            description: "Nombre d'actions de communication menées par le titulaire du titre à destination du public (hors publication et communication à destination des marchés) au cours de l'année",
+          },
+        ],
       },
       {
         id: 'complementSocialEconomique',
@@ -1563,15 +1563,15 @@ export const ActivitesTypes: {
             type: 'textarea',
             dateDebut: toCaminoDate('2019-01-01'),
             optionnel: true,
-            description: "Toute information sur les événements marquants de nature sociale ou économique de l'année."
-          }
-        ]
-      }
+            description: "Toute information sur les événements marquants de nature sociale ou économique de l'année.",
+          },
+        ],
+      },
     ],
     frequenceId: 'ann',
     dateDebut: toCaminoDate('2019-01-01'),
     delaiMois: 24,
-    ordre: 6
+    ordre: 6,
   },
   wrp: {
     id: 'wrp',
@@ -1585,9 +1585,9 @@ export const ActivitesTypes: {
             id: 'volumeGranulatsExtrait',
             nom: 'Volume de granulats marins extrait (m3)',
             type: 'number',
-            description: "Volume de granulats marins extrait, en mètre cube, au cours de l'année."
-          }
-        ]
+            description: "Volume de granulats marins extrait, en mètre cube, au cours de l'année.",
+          },
+        ],
       },
       {
         id: 'complementInformation',
@@ -1598,18 +1598,18 @@ export const ActivitesTypes: {
             type: 'textarea',
             optionnel: true,
             description:
-              "Toute information sur les événements marquants de l'année (arrêt ou suspension d’activité en précisant les raisons, évolution de l’exploitation, difficultés rencontrées, accident, incident, etc.)."
-          }
-        ]
-      }
+              "Toute information sur les événements marquants de l'année (arrêt ou suspension d’activité en précisant les raisons, évolution de l’exploitation, difficultés rencontrées, accident, incident, etc.).",
+          },
+        ],
+      },
     ],
     frequenceId: 'ann',
     dateDebut: toCaminoDate('2010-01-01'),
     delaiMois: 12,
     ordre: 7,
     description:
-      '<p>La production annuelle est requise en vertu des <a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000043663105" target="_blank">article 1519</a>, <a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000043663002" target="_blank">article 1587</a> et <a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000006306371" target="_blank">article 1588</a> du code général des impôts relatifs au calcul de la redevance départementale et communale des mines (RDCM).</p><p><a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000021822128" target="_blank">article 47</a> du décret 2006-798 du 6 juillet 2006.</p>'
-  }
+      '<p>La production annuelle est requise en vertu des <a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000043663105" target="_blank">article 1519</a>, <a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000043663002" target="_blank">article 1587</a> et <a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000006306371" target="_blank">article 1588</a> du code général des impôts relatifs au calcul de la redevance départementale et communale des mines (RDCM).</p><p><a href="https://www.legifrance.gouv.fr/codes/id/LEGIARTI000021822128" target="_blank">article 47</a> du décret 2006-798 du 6 juillet 2006.</p>',
+  },
 }
 
 export const sortedActivitesTypes = Object.values(ActivitesTypes).sort((a, b) => a.ordre - b.ordre)
diff --git a/packages/common/src/static/administrations.ts b/packages/common/src/static/administrations.ts
index 935271bee..fd731a6e7 100644
--- a/packages/common/src/static/administrations.ts
+++ b/packages/common/src/static/administrations.ts
@@ -12,7 +12,7 @@ export const ADMINISTRATION_TYPE_IDS: Record<string, AdministrationTypeId> = {
   DREAL: 'dre',
   MINISTERE: 'min',
   OPERATEUR: 'ope',
-  PREFECTURE: 'pre'
+  PREFECTURE: 'pre',
 } as const
 
 export type AdministrationType<T = AdministrationTypeId> = Omit<Definition<T>, 'description'>
@@ -22,33 +22,33 @@ export const ADMINISTRATION_TYPES: {
   aut: {
     id: 'aut',
     nom: 'Autorité',
-    ordre: 6
+    ordre: 6,
   },
   dea: {
     id: 'dea',
     nom: 'Déal',
-    ordre: 3
+    ordre: 3,
   },
   dre: {
     id: 'dre',
     nom: 'Dréal',
-    ordre: 2
+    ordre: 2,
   },
   min: {
     id: 'min',
     nom: 'Ministère',
-    ordre: 1
+    ordre: 1,
   },
   ope: {
     id: 'ope',
     nom: 'Opérateur',
-    ordre: 5
+    ordre: 5,
   },
   pre: {
     id: 'pre',
     nom: 'Préfecture',
-    ordre: 4
-  }
+    ordre: 4,
+  },
 }
 
 export const sortedAdministrationTypes = Object.values(ADMINISTRATION_TYPES).sort((a, b) => a.ordre - b.ordre)
@@ -184,7 +184,7 @@ export const ADMINISTRATION_IDS = {
   'PRÉFECTURE - MARTINIQUE': 'pre-97209-01',
   'PRÉFECTURE - GUYANE': 'pre-97302-01',
   'PRÉFECTURE - RÉUNION': 'pre-97411-01',
-  'PRÉFECTURE - MAYOTTE': 'pre-97611-01'
+  'PRÉFECTURE - MAYOTTE': 'pre-97611-01',
 } as const
 
 export type AdministrationId = (typeof ADMINISTRATION_IDS)[keyof typeof ADMINISTRATION_IDS]
@@ -228,7 +228,7 @@ export const Administrations: {
       adresse1: 'Caserne La Madeleine',
       adresse2: '1296 Route de la Madeleine',
       codePostal: '97300',
-      commune: 'Cayenne'
+      commune: 'Cayenne',
     },
     'aut-mrae-guyane-01': {
       id: 'aut-mrae-guyane-01',
@@ -242,7 +242,7 @@ export const Administrations: {
       codePostal: '97300',
       commune: 'Cayenne',
       cedex: 'Cedex',
-      regionId: '03'
+      regionId: '03',
     },
     'dea-guadeloupe-01': {
       id: 'dea-guadeloupe-01',
@@ -257,7 +257,7 @@ export const Administrations: {
       codePostal: '97102',
       commune: 'Basse-Terre',
       cedex: 'Cedex',
-      regionId: '01'
+      regionId: '01',
     },
     'dea-guyane-01': {
       id: 'dea-guyane-01',
@@ -271,7 +271,7 @@ export const Administrations: {
       codePostal: '97300',
       commune: 'Cayenne',
       cedex: 'Cedex',
-      regionId: '03'
+      regionId: '03',
     },
     'dea-martinique-01': {
       id: 'dea-martinique-01',
@@ -285,7 +285,7 @@ export const Administrations: {
       codePostal: '97274',
       commune: 'Schœlcher',
       cedex: 'Cedex',
-      regionId: '02'
+      regionId: '02',
     },
     'dea-mayotte-01': {
       id: 'dea-mayotte-01',
@@ -300,7 +300,7 @@ export const Administrations: {
       codePostal: '97600',
       commune: 'Mamoudzou',
       cedex: 'Cedex',
-      regionId: '06'
+      regionId: '06',
     },
     'dea-reunion-01': {
       id: 'dea-reunion-01',
@@ -314,7 +314,7 @@ export const Administrations: {
       codePostal: '97743',
       commune: 'Saint-Denis',
       cedex: 'Cedex',
-      regionId: '04'
+      regionId: '04',
     },
     'dre-aura-01': {
       id: 'dre-aura-01',
@@ -329,7 +329,7 @@ export const Administrations: {
       codePostal: '69006',
       commune: 'Lyon',
       cedex: 'Cedex',
-      regionId: '84'
+      regionId: '84',
     },
     'dre-bfc-01': {
       id: 'dre-bfc-01',
@@ -343,7 +343,7 @@ export const Administrations: {
       codePostal: '25005',
       commune: 'Besançon',
       cedex: 'Cedex',
-      regionId: '27'
+      regionId: '27',
     },
     'dre-bretagne-01': {
       id: 'dre-bretagne-01',
@@ -357,7 +357,7 @@ export const Administrations: {
       codePostal: '35065',
       commune: 'Rennes',
       cedex: 'Cedex',
-      regionId: '53'
+      regionId: '53',
     },
     'dre-centre-val-de-loire-01': {
       id: 'dre-centre-val-de-loire-01',
@@ -371,7 +371,7 @@ export const Administrations: {
       codePostal: '45064',
       commune: 'Orléans',
       cedex: 'Cedex',
-      regionId: '24'
+      regionId: '24',
     },
     'dre-corse-01': {
       id: 'dre-corse-01',
@@ -385,7 +385,7 @@ export const Administrations: {
       codePostal: '20704',
       commune: 'Ajaccio',
       cedex: 'Cedex',
-      regionId: '94'
+      regionId: '94',
     },
     'dre-grand-est-01': {
       id: 'dre-grand-est-01',
@@ -398,7 +398,7 @@ export const Administrations: {
       codePostal: '57071',
       commune: 'Metz',
       cedex: 'Cedex',
-      regionId: '44'
+      regionId: '44',
     },
     'dre-hauts-de-france-01': {
       id: 'dre-hauts-de-france-01',
@@ -411,7 +411,7 @@ export const Administrations: {
       codePostal: '59019',
       commune: 'Lille',
       cedex: 'Cedex',
-      regionId: '32'
+      regionId: '32',
     },
     'dre-ile-de-france-01': {
       id: 'dre-ile-de-france-01',
@@ -425,7 +425,7 @@ export const Administrations: {
       codePostal: '94307',
       commune: 'Vincennes',
       cedex: 'cedex',
-      regionId: '11'
+      regionId: '11',
     },
     'dre-normandie-01': {
       id: 'dre-normandie-01',
@@ -439,7 +439,7 @@ export const Administrations: {
       codePostal: '76032',
       commune: 'Rouen',
       cedex: 'Cedex',
-      regionId: '28'
+      regionId: '28',
     },
     'dre-nouvelle-aquitaine-01': {
       id: 'dre-nouvelle-aquitaine-01',
@@ -452,7 +452,7 @@ export const Administrations: {
       codePostal: '86020',
       commune: 'Poitiers',
       cedex: 'Cedex',
-      regionId: '75'
+      regionId: '75',
     },
     'dre-occitanie-01': {
       id: 'dre-occitanie-01',
@@ -465,7 +465,7 @@ export const Administrations: {
       codePostal: '31074',
       commune: 'Toulouse',
       cedex: 'Cedex',
-      regionId: '76'
+      regionId: '76',
     },
     'dre-paca-01': {
       id: 'dre-paca-01',
@@ -478,7 +478,7 @@ export const Administrations: {
       codePostal: '13331',
       commune: 'Marseille',
       cedex: 'Cedex',
-      regionId: '93'
+      regionId: '93',
     },
     'dre-pays-de-la-loire-01': {
       id: 'dre-pays-de-la-loire-01',
@@ -492,7 +492,7 @@ export const Administrations: {
       codePostal: '44263',
       commune: 'Nantes',
       cedex: 'Cedex',
-      regionId: '52'
+      regionId: '52',
     },
     'min-dajb-01': {
       id: 'min-dajb-01',
@@ -506,7 +506,7 @@ export const Administrations: {
       adresse2: 'Télédoc 342',
       codePostal: '75703',
       commune: 'Paris',
-      cedex: 'Cedex 13'
+      cedex: 'Cedex 13',
     },
     'min-mctrct-dgcl-01': {
       id: 'min-mctrct-dgcl-01',
@@ -518,7 +518,7 @@ export const Administrations: {
       telephone: '01 49 27 31 59',
       adresse1: '2 place des Saussaies',
       codePostal: '75800',
-      commune: 'Paris'
+      commune: 'Paris',
     },
     'min-mtes-dgaln-01': {
       id: 'min-mtes-dgaln-01',
@@ -533,7 +533,7 @@ export const Administrations: {
       adresse2: '1 place Carpeaux',
       codePostal: '92055',
       commune: 'Paris-La-Défense',
-      cedex: 'Cedex'
+      cedex: 'Cedex',
     },
     'min-mtes-dgec-01': {
       id: 'min-mtes-dgec-01',
@@ -548,7 +548,7 @@ export const Administrations: {
       adresse2: 'Adresse postale\r\n92055 Paris-La-Défense Cedex',
       codePostal: '92800',
       commune: 'Puteaux',
-      cedex: 'Cedex'
+      cedex: 'Cedex',
     },
     'min-mtes-dgpr-01': {
       id: 'min-mtes-dgpr-01',
@@ -562,7 +562,7 @@ export const Administrations: {
       adresse2: 'Adresse postale\n92055 Paris-La-Défense Cedex',
       codePostal: '92800',
       commune: 'Puteaux',
-      cedex: 'Cedex'
+      cedex: 'Cedex',
     },
     'ope-brgm-01': {
       id: 'ope-brgm-01',
@@ -575,7 +575,7 @@ export const Administrations: {
       adresse2: 'BP 36009',
       codePostal: '45060',
       commune: 'Orléans',
-      cedex: 'Cedex 2'
+      cedex: 'Cedex 2',
     },
     'ope-brgm-02': {
       id: 'ope-brgm-02',
@@ -589,7 +589,7 @@ export const Administrations: {
       adresse2: 'BP 36009',
       codePostal: '45060',
       commune: 'Orléans',
-      cedex: 'Cedex 2'
+      cedex: 'Cedex 2',
     },
     'ope-cacem-01': {
       id: 'ope-cacem-01',
@@ -602,7 +602,7 @@ export const Administrations: {
       adresse1: 'Centre régional opérationnel de surveillance et de sauvetage Atlantique',
       adresse2: '40 avenue L. Bougo',
       codePostal: '56410',
-      commune: 'Etel'
+      commune: 'Etel',
     },
     'ope-onf-973-01': {
       id: 'ope-onf-973-01',
@@ -617,7 +617,7 @@ export const Administrations: {
       adresse2: 'Adresse postale\r\n541 route de Montabo\nCS87002',
       codePostal: '97300',
       commune: 'Cayenne',
-      regionId: '03'
+      regionId: '03',
     },
     'ope-ptmg-973-01': {
       id: 'ope-ptmg-973-01',
@@ -628,7 +628,7 @@ export const Administrations: {
       adresse1: 'Hôtel de la Collectivité Territoriale de Guyane, Carrefour de Suzini',
       adresse2: '4179 route de Montabo',
       codePostal: '97307',
-      commune: 'Cayenne'
+      commune: 'Cayenne',
     },
     'pre-01053-01': {
       id: 'pre-01053-01',
@@ -641,7 +641,7 @@ export const Administrations: {
       telephone: '04 74 32 30 00',
       departementId: '01',
       email: 'prefecture@ain.gouv.fr',
-      url: 'http://www.ain.gouv.fr'
+      url: 'http://www.ain.gouv.fr',
     },
     'pre-02408-01': {
       id: 'pre-02408-01',
@@ -654,7 +654,7 @@ export const Administrations: {
       telephone: '03 23 21 82 82',
       departementId: '02',
       email: 'prefecture@aisne.gouv.fr',
-      url: 'http://www.aisne.gouv.fr'
+      url: 'http://www.aisne.gouv.fr',
     },
     'pre-03190-01': {
       id: 'pre-03190-01',
@@ -667,7 +667,7 @@ export const Administrations: {
       telephone: '04 70 48 30 00',
       departementId: '03',
       email: 'prefecture@allier.gouv.fr',
-      url: 'http://www.allier.gouv.fr'
+      url: 'http://www.allier.gouv.fr',
     },
     'pre-04070-01': {
       id: 'pre-04070-01',
@@ -679,7 +679,7 @@ export const Administrations: {
       commune: 'Digne-les-Bains Cedex',
       telephone: '04 92 36 72 00',
       departementId: '04',
-      url: 'http://www.alpes-de-haute-provence.gouv.fr'
+      url: 'http://www.alpes-de-haute-provence.gouv.fr',
     },
     'pre-05061-01': {
       id: 'pre-05061-01',
@@ -692,7 +692,7 @@ export const Administrations: {
       telephone: '04 92 40 48 00',
       departementId: '05',
       email: 'prefecture@hautes-alpes.gouv.fr',
-      url: 'http://www.hautes-alpes.gouv.fr'
+      url: 'http://www.hautes-alpes.gouv.fr',
     },
     'pre-06088-01': {
       id: 'pre-06088-01',
@@ -705,7 +705,7 @@ export const Administrations: {
       telephone: '04 93 72 20 00',
       departementId: '06',
       adresse2: "Services de l'État dans les Alpes-Maritimes, Préfecture, CADAM, 147, route de Grenoble",
-      url: 'http://www.alpes-maritimes.gouv.fr'
+      url: 'http://www.alpes-maritimes.gouv.fr',
     },
     'pre-07186-01': {
       id: 'pre-07186-01',
@@ -718,7 +718,7 @@ export const Administrations: {
       telephone: '04 75 66 50 00',
       departementId: '07',
       email: 'pref-courrier@ardeche.gouv.fr',
-      url: 'http://www.ardeche.gouv.fr'
+      url: 'http://www.ardeche.gouv.fr',
     },
     'pre-08105-01': {
       id: 'pre-08105-01',
@@ -731,7 +731,7 @@ export const Administrations: {
       telephone: '03 24 59 66 00',
       departementId: '08',
       email: 'prefecture@ardennes.gouv.fr',
-      url: 'http://www.ardennes.gouv.fr'
+      url: 'http://www.ardennes.gouv.fr',
     },
     'pre-09122-01': {
       id: 'pre-09122-01',
@@ -744,7 +744,7 @@ export const Administrations: {
       telephone: '05 61 02 10 00',
       departementId: '09',
       email: 'prefecture@ariege.gouv.fr',
-      url: 'http://www.ariege.gouv.fr'
+      url: 'http://www.ariege.gouv.fr',
     },
     'pre-10387-01': {
       id: 'pre-10387-01',
@@ -757,7 +757,7 @@ export const Administrations: {
       telephone: '03 25 42 35 00',
       departementId: '10',
       email: 'prefecture@aube.gouv.fr',
-      url: 'http://www.aube.gouv.fr'
+      url: 'http://www.aube.gouv.fr',
     },
     'pre-11069-01': {
       id: 'pre-11069-01',
@@ -770,7 +770,7 @@ export const Administrations: {
       telephone: '04 68 10 27 00',
       departementId: '11',
       email: 'prefecture@aude.gouv.fr',
-      url: 'http://www.aude.gouv.fr'
+      url: 'http://www.aude.gouv.fr',
     },
     'pre-12202-01': {
       id: 'pre-12202-01',
@@ -783,7 +783,7 @@ export const Administrations: {
       telephone: '05 65 75 71 71',
       departementId: '12',
       email: 'prefecture@aveyron.fr',
-      url: 'http://www.aveyron.gouv.fr'
+      url: 'http://www.aveyron.gouv.fr',
     },
     'pre-13203-01': {
       id: 'pre-13203-01',
@@ -796,7 +796,7 @@ export const Administrations: {
       telephone: '04 84 35 40 00',
       departementId: '13',
       email: 'contact@bouches-du-rhone.pref.gouv.fr',
-      url: 'http://www.bouches-du-rhone.gouv.fr'
+      url: 'http://www.bouches-du-rhone.gouv.fr',
     },
     'pre-14118-01': {
       id: 'pre-14118-01',
@@ -809,7 +809,7 @@ export const Administrations: {
       telephone: '02 31 30 64 00',
       departementId: '14',
       email: 'prefecture@calvados.gouv.fr',
-      url: 'http://www.calvados.gouv.fr'
+      url: 'http://www.calvados.gouv.fr',
     },
     'pre-15014-01': {
       id: 'pre-15014-01',
@@ -822,7 +822,7 @@ export const Administrations: {
       telephone: '04 71 46 23 00',
       departementId: '15',
       email: 'courrier@cantal.pref.gouv.fr',
-      url: 'http://www.cantal.gouv.fr'
+      url: 'http://www.cantal.gouv.fr',
     },
     'pre-16015-01': {
       id: 'pre-16015-01',
@@ -835,7 +835,7 @@ export const Administrations: {
       telephone: '05 45 97 61 00',
       departementId: '16',
       email: 'communication@charente.gouv.fr',
-      url: 'http://www.charente.gouv.fr'
+      url: 'http://www.charente.gouv.fr',
     },
     'pre-17300-01': {
       id: 'pre-17300-01',
@@ -848,7 +848,7 @@ export const Administrations: {
       telephone: '05 46 27 43 00',
       departementId: '17',
       email: 'prefecture@charente-maritime.gouv.fr',
-      url: 'http://www.charente-maritime.gouv.fr'
+      url: 'http://www.charente-maritime.gouv.fr',
     },
     'pre-18033-01': {
       id: 'pre-18033-01',
@@ -861,7 +861,7 @@ export const Administrations: {
       telephone: '02 48 67 18 18',
       departementId: '18',
       email: 'prefecture@cher.gouv.fr',
-      url: 'http://www.cher.gouv.fr'
+      url: 'http://www.cher.gouv.fr',
     },
     'pre-19272-01': {
       id: 'pre-19272-01',
@@ -874,7 +874,7 @@ export const Administrations: {
       telephone: '05 55 20 55 20',
       departementId: '19',
       email: 'prefecture@correze.gouv.fr',
-      url: 'http://www.correze.gouv.fr'
+      url: 'http://www.correze.gouv.fr',
     },
     'pre-21231-01': {
       id: 'pre-21231-01',
@@ -886,7 +886,7 @@ export const Administrations: {
       commune: 'Dijon Cedex',
       telephone: '03 80 44 64 00',
       departementId: '21',
-      url: 'http://www.cote-dor.gouv.fr'
+      url: 'http://www.cote-dor.gouv.fr',
     },
     'pre-22278-01': {
       id: 'pre-22278-01',
@@ -899,7 +899,7 @@ export const Administrations: {
       telephone: '02 96 62 44 22',
       departementId: '22',
       email: 'prefecture@cotes-darmor.gouv.fr',
-      url: 'http://www.cotes-darmor.gouv.fr'
+      url: 'http://www.cotes-darmor.gouv.fr',
     },
     'pre-23096-01': {
       id: 'pre-23096-01',
@@ -911,7 +911,7 @@ export const Administrations: {
       commune: 'Guéret Cedex',
       telephone: '05 55 51 59 00',
       departementId: '23',
-      url: 'http://www.creuse.gouv.fr'
+      url: 'http://www.creuse.gouv.fr',
     },
     'pre-24322-01': {
       id: 'pre-24322-01',
@@ -925,7 +925,7 @@ export const Administrations: {
       departementId: '24',
       adresse2: "Services de l'État - Préfecture de la Dordogne, Cité adminsitrative",
       email: 'prefecture@dordogne.gouv.fr',
-      url: 'http://www.dordogne.gouv.fr'
+      url: 'http://www.dordogne.gouv.fr',
     },
     'pre-25056-01': {
       id: 'pre-25056-01',
@@ -938,7 +938,7 @@ export const Administrations: {
       telephone: '03 81 25 10 00',
       departementId: '25',
       email: 'pref-courrier@doubs.gouv.fr',
-      url: 'http://www.doubs.gouv.fr'
+      url: 'http://www.doubs.gouv.fr',
     },
     'pre-26362-01': {
       id: 'pre-26362-01',
@@ -951,7 +951,7 @@ export const Administrations: {
       telephone: '04 75 79 28 00',
       departementId: '26',
       email: 'prefecture@drome.gouv.fr',
-      url: 'http://www.drome.gouv.fr'
+      url: 'http://www.drome.gouv.fr',
     },
     'pre-27229-01': {
       id: 'pre-27229-01',
@@ -964,7 +964,7 @@ export const Administrations: {
       telephone: '02 32 78 27 27',
       departementId: '27',
       email: 'courrier-web@eure.gouv.fr',
-      url: 'http://www.seine-maritime.gouv.fr/Outils/Horaires-et-coordonnees/Prefecture-de-l-Eure'
+      url: 'http://www.seine-maritime.gouv.fr/Outils/Horaires-et-coordonnees/Prefecture-de-l-Eure',
     },
     'pre-28085-01': {
       id: 'pre-28085-01',
@@ -976,7 +976,7 @@ export const Administrations: {
       commune: 'Chartres Cedex',
       telephone: '02 37 27 72 00',
       departementId: '28',
-      url: 'http://www.eure-et-loir.gouv.fr'
+      url: 'http://www.eure-et-loir.gouv.fr',
     },
     'pre-29232-01': {
       id: 'pre-29232-01',
@@ -989,7 +989,7 @@ export const Administrations: {
       telephone: '02 98 76 29 29',
       departementId: '29',
       email: 'prefecture@finistere.gouv.fr',
-      url: 'http://www.finistere.gouv.fr'
+      url: 'http://www.finistere.gouv.fr',
     },
     'pre-2A004-01': {
       id: 'pre-2A004-01',
@@ -1002,7 +1002,7 @@ export const Administrations: {
       telephone: '04 95 11 12 13',
       departementId: '2A',
       email: 'prefecture@corse-du-sud.gouv.fr',
-      url: 'http://www.corse-du-sud.gouv.fr'
+      url: 'http://www.corse-du-sud.gouv.fr',
     },
     'pre-2B033-01': {
       id: 'pre-2B033-01',
@@ -1015,7 +1015,7 @@ export const Administrations: {
       telephone: '04 95 34 50 00',
       departementId: '2B',
       email: 'prefecture.haute-corse@haute-corse.pref.gouv.fr',
-      url: 'http://www.haute-corse.gouv.fr'
+      url: 'http://www.haute-corse.gouv.fr',
     },
     'pre-30189-01': {
       id: 'pre-30189-01',
@@ -1029,7 +1029,7 @@ export const Administrations: {
       departementId: '30',
       adresse2: '10, avenue Feuchères',
       email: 'prefecture@gard.gouv.fr',
-      url: 'http://www.gard.gouv.fr'
+      url: 'http://www.gard.gouv.fr',
     },
     'pre-31555-01': {
       id: 'pre-31555-01',
@@ -1042,7 +1042,7 @@ export const Administrations: {
       telephone: '05 34 45 34 45',
       departementId: '31',
       adresse2: 'Place Saint-Étienne',
-      url: 'http://www.haute-garonne.gouv.fr'
+      url: 'http://www.haute-garonne.gouv.fr',
     },
     'pre-32013-01': {
       id: 'pre-32013-01',
@@ -1055,7 +1055,7 @@ export const Administrations: {
       telephone: '05 62 61 44 00',
       departementId: '32',
       email: 'prefecture@gers.gouv.fr',
-      url: 'http://www.gers.gouv.fr'
+      url: 'http://www.gers.gouv.fr',
     },
     'pre-33063-01': {
       id: 'pre-33063-01',
@@ -1068,7 +1068,7 @@ export const Administrations: {
       telephone: '05 56 90 60 60',
       departementId: '33',
       adresse2: '2, esplanade Charles-de-Gaulle, CS 41397',
-      url: 'http://www.gironde.gouv.fr'
+      url: 'http://www.gironde.gouv.fr',
     },
     'pre-34172-01': {
       id: 'pre-34172-01',
@@ -1080,7 +1080,7 @@ export const Administrations: {
       commune: 'Montpellier Cedex 2',
       telephone: '04 67 61 61 61',
       departementId: '34',
-      url: 'http://www.herault.gouv.fr'
+      url: 'http://www.herault.gouv.fr',
     },
     'pre-35238-01': {
       id: 'pre-35238-01',
@@ -1093,7 +1093,7 @@ export const Administrations: {
       telephone: '02 99 02 10 35',
       departementId: '35',
       email: 'prefecture@ille-et-vilaine.gouv.fr',
-      url: 'https://www.ille-et-vilaine.gouv.fr'
+      url: 'https://www.ille-et-vilaine.gouv.fr',
     },
     'pre-36044-01': {
       id: 'pre-36044-01',
@@ -1106,7 +1106,7 @@ export const Administrations: {
       telephone: '02 54 29 50 00',
       departementId: '36',
       adresse2: 'Place de la Victoire et des Alliés, CS 80583',
-      url: 'http://www.indre.gouv.fr'
+      url: 'http://www.indre.gouv.fr',
     },
     'pre-37261-01': {
       id: 'pre-37261-01',
@@ -1119,7 +1119,7 @@ export const Administrations: {
       telephone: '+ 33 2 47 64 37 37',
       departementId: '37',
       email: 'prefecture@indre-et-loire.gouv.fr',
-      url: 'http://www.indre-et-loire.gouv.fr'
+      url: 'http://www.indre-et-loire.gouv.fr',
     },
     'pre-38185-01': {
       id: 'pre-38185-01',
@@ -1131,7 +1131,7 @@ export const Administrations: {
       commune: 'Grenoble Cedex 1',
       telephone: '04 76 60 34 00',
       departementId: '38',
-      url: 'http://www.isere.gouv.fr'
+      url: 'http://www.isere.gouv.fr',
     },
     'pre-39300-01': {
       id: 'pre-39300-01',
@@ -1144,7 +1144,7 @@ export const Administrations: {
       telephone: '03 84 86 84 00',
       departementId: '39',
       email: 'prefecture@jura.gouv.fr',
-      url: 'http://www.jura.gouv.fr'
+      url: 'http://www.jura.gouv.fr',
     },
     'pre-40192-01': {
       id: 'pre-40192-01',
@@ -1157,7 +1157,7 @@ export const Administrations: {
       telephone: '05 58 06 58 06',
       departementId: '40',
       email: 'prefecture@landes.gouv.fr',
-      url: 'http://www.landes.gouv.fr'
+      url: 'http://www.landes.gouv.fr',
     },
     'pre-41018-01': {
       id: 'pre-41018-01',
@@ -1169,7 +1169,7 @@ export const Administrations: {
       commune: 'Blois Cedex',
       telephone: '0810 02 41 41',
       departementId: '41',
-      url: 'http://www.loir-et-cher.gouv.fr'
+      url: 'http://www.loir-et-cher.gouv.fr',
     },
     'pre-42218-01': {
       id: 'pre-42218-01',
@@ -1182,7 +1182,7 @@ export const Administrations: {
       telephone: '04 77 48 48 48',
       departementId: '42',
       email: 'pref-loire@loire.pref.gouv.fr',
-      url: 'http://www.loire.gouv.fr'
+      url: 'http://www.loire.gouv.fr',
     },
     'pre-43157-01': {
       id: 'pre-43157-01',
@@ -1195,7 +1195,7 @@ export const Administrations: {
       telephone: '04 71 09 43 43',
       departementId: '43',
       email: 'prefecture@haute-loire.gouv.fr',
-      url: 'http://www.haute-loire.gouv.fr'
+      url: 'http://www.haute-loire.gouv.fr',
     },
     'pre-44109-01': {
       id: 'pre-44109-01',
@@ -1207,7 +1207,7 @@ export const Administrations: {
       commune: 'Nantes Cedex 1',
       telephone: '02 40 41 20 20',
       departementId: '44',
-      url: 'http://www.loire-atlantique.gouv.fr'
+      url: 'http://www.loire-atlantique.gouv.fr',
     },
     'pre-45234-01': {
       id: 'pre-45234-01',
@@ -1219,7 +1219,7 @@ export const Administrations: {
       commune: 'Orléans Cedex 1',
       telephone: '0821 80 30 45',
       departementId: '45',
-      url: 'http://www.loiret.gouv.fr'
+      url: 'http://www.loiret.gouv.fr',
     },
     'pre-46042-01': {
       id: 'pre-46042-01',
@@ -1232,7 +1232,7 @@ export const Administrations: {
       telephone: '05 65 23 10 00',
       departementId: '46',
       email: 'prefecture@lot.gouv.fr',
-      url: 'http://www.lot.gouv.fr'
+      url: 'http://www.lot.gouv.fr',
     },
     'pre-47001-01': {
       id: 'pre-47001-01',
@@ -1244,7 +1244,7 @@ export const Administrations: {
       commune: 'Agen Cedex 9',
       telephone: '05 53 77 60 47',
       departementId: '47',
-      url: 'http://www.lot-et-garonne.gouv.fr'
+      url: 'http://www.lot-et-garonne.gouv.fr',
     },
     'pre-48095-01': {
       id: 'pre-48095-01',
@@ -1258,7 +1258,7 @@ export const Administrations: {
       departementId: '48',
       adresse2: 'BP 130',
       email: 'prefecture@lozere.gouv.fr',
-      url: 'http://www.lozere.gouv.fr'
+      url: 'http://www.lozere.gouv.fr',
     },
     'pre-49007-01': {
       id: 'pre-49007-01',
@@ -1271,7 +1271,7 @@ export const Administrations: {
       telephone: '02 41 81 81 81',
       departementId: '49',
       email: 'modernisation@maine-et-loire.pref.gouv.fr',
-      url: 'http://www.maine-et-loire.gouv.fr'
+      url: 'http://www.maine-et-loire.gouv.fr',
     },
     'pre-50502-01': {
       id: 'pre-50502-01',
@@ -1284,7 +1284,7 @@ export const Administrations: {
       telephone: '02 33 75 49 50',
       departementId: '50',
       email: 'prefecture@manche.gouv.fr',
-      url: 'http://www.manche.gouv.fr'
+      url: 'http://www.manche.gouv.fr',
     },
     'pre-51108-01': {
       id: 'pre-51108-01',
@@ -1297,7 +1297,7 @@ export const Administrations: {
       telephone: '03 26 26 10 10',
       departementId: '51',
       email: 'contact@marne.gouv.fr',
-      url: 'http://www.marne.gouv.fr'
+      url: 'http://www.marne.gouv.fr',
     },
     'pre-52121-01': {
       id: 'pre-52121-01',
@@ -1310,7 +1310,7 @@ export const Administrations: {
       telephone: '03 25 30 52 52',
       departementId: '52',
       email: 'prefecture@haute-marne.gouv.fr',
-      url: 'http://www.haute-marne.gouv.fr'
+      url: 'http://www.haute-marne.gouv.fr',
     },
     'pre-53130-01': {
       id: 'pre-53130-01',
@@ -1323,7 +1323,7 @@ export const Administrations: {
       telephone: '02 43 01 50 00',
       departementId: '53',
       email: 'pref-communication@mayenne.gouv.fr',
-      url: 'http://www.mayenne.gouv.fr'
+      url: 'http://www.mayenne.gouv.fr',
     },
     'pre-54395-01': {
       id: 'pre-54395-01',
@@ -1337,7 +1337,7 @@ export const Administrations: {
       departementId: '54',
       adresse2: 'CS 60031, 1, rue du Préfet-Claude-Érignac',
       email: 'pref-informations@meurthe-et-moselle.gouv.fr',
-      url: 'http://www.meurthe-et-moselle.gouv.fr'
+      url: 'http://www.meurthe-et-moselle.gouv.fr',
     },
     'pre-55029-01': {
       id: 'pre-55029-01',
@@ -1349,7 +1349,7 @@ export const Administrations: {
       commune: 'Bar-le-Duc Cedex',
       telephone: '03 29 77 55 55',
       departementId: '55',
-      url: 'http://www.meuse.gouv.fr'
+      url: 'http://www.meuse.gouv.fr',
     },
     'pre-56260-01': {
       id: 'pre-56260-01',
@@ -1362,7 +1362,7 @@ export const Administrations: {
       telephone: '02 97 54 84 00',
       departementId: '56',
       adresse2: 'Préfecture du Morbihan, BP 501',
-      url: 'http://www.morbihan.gouv.fr'
+      url: 'http://www.morbihan.gouv.fr',
     },
     'pre-57463-01': {
       id: 'pre-57463-01',
@@ -1373,7 +1373,7 @@ export const Administrations: {
       codePostal: '57034',
       commune: 'Metz Cedex 01',
       telephone: '03 87 34 87 34',
-      departementId: '57'
+      departementId: '57',
     },
     'pre-58194-01': {
       id: 'pre-58194-01',
@@ -1386,7 +1386,7 @@ export const Administrations: {
       telephone: '03 86 60 70 80',
       departementId: '58',
       email: 'courrier@nievre.pref.gouv.fr',
-      url: 'http://www.nievre.gouv.fr'
+      url: 'http://www.nievre.gouv.fr',
     },
     'pre-59350-01': {
       id: 'pre-59350-01',
@@ -1398,7 +1398,7 @@ export const Administrations: {
       commune: 'Lille Cedex',
       telephone: '03 20 30 59 59',
       departementId: '59',
-      url: 'http://www.nord.gouv.fr'
+      url: 'http://www.nord.gouv.fr',
     },
     'pre-60057-01': {
       id: 'pre-60057-01',
@@ -1410,7 +1410,7 @@ export const Administrations: {
       commune: 'Beauvais Cedex',
       telephone: '03 44 06 12 60',
       departementId: '60',
-      url: 'http://www.oise.gouv.fr'
+      url: 'http://www.oise.gouv.fr',
     },
     'pre-61001-01': {
       id: 'pre-61001-01',
@@ -1423,7 +1423,7 @@ export const Administrations: {
       telephone: '02 33 80 61 61',
       departementId: '61',
       email: 'pref-communication@orne.gouv.fr',
-      url: 'http://www.orne.gouv.fr'
+      url: 'http://www.orne.gouv.fr',
     },
     'pre-62041-01': {
       id: 'pre-62041-01',
@@ -1435,7 +1435,7 @@ export const Administrations: {
       commune: 'Arras Cedex 9',
       telephone: '03 21 21 20 00',
       departementId: '62',
-      url: 'http://www.pas-de-calais.gouv.fr'
+      url: 'http://www.pas-de-calais.gouv.fr',
     },
     'pre-63113-01': {
       id: 'pre-63113-01',
@@ -1447,7 +1447,7 @@ export const Administrations: {
       commune: 'Clermont-Ferrand Cedex 1',
       telephone: '04 73 98 63 63',
       departementId: '63',
-      url: 'http://www.puy-de-dome.gouv.fr'
+      url: 'http://www.puy-de-dome.gouv.fr',
     },
     'pre-64445-01': {
       id: 'pre-64445-01',
@@ -1460,7 +1460,7 @@ export const Administrations: {
       telephone: '05 59 98 24 24',
       departementId: '64',
       email: 'prefecture@pyrenees-atlantiques.gouv.fr',
-      url: 'http://www.pyrenees-atlantiques.gouv.fr'
+      url: 'http://www.pyrenees-atlantiques.gouv.fr',
     },
     'pre-65440-01': {
       id: 'pre-65440-01',
@@ -1473,7 +1473,7 @@ export const Administrations: {
       telephone: '05 62 56 65 65',
       departementId: '65',
       email: 'prefecture@hautes-pyrenees.gouv.fr',
-      url: 'http://www.hautes-pyrenees.gouv.fr'
+      url: 'http://www.hautes-pyrenees.gouv.fr',
     },
     'pre-66136-01': {
       id: 'pre-66136-01',
@@ -1485,7 +1485,7 @@ export const Administrations: {
       commune: 'Perpignan Cedex',
       telephone: '04 68 51 66 66',
       departementId: '66',
-      url: 'http://www.pyrenees-orientales.gouv.fr'
+      url: 'http://www.pyrenees-orientales.gouv.fr',
     },
     'pre-67482-01': {
       id: 'pre-67482-01',
@@ -1497,7 +1497,7 @@ export const Administrations: {
       commune: 'Strasbourg Cedex',
       telephone: '03 88 21 67 68',
       departementId: '67',
-      url: 'http://www.bas-rhin.gouv.fr'
+      url: 'http://www.bas-rhin.gouv.fr',
     },
     'pre-68066-01': {
       id: 'pre-68066-01',
@@ -1511,7 +1511,7 @@ export const Administrations: {
       departementId: '68',
       adresse2: '7, rue Bruat, BP 10489',
       email: 'pref-courrier@haut-rhin.gouv.fr',
-      url: 'http://www.haut-rhin.gouv.fr'
+      url: 'http://www.haut-rhin.gouv.fr',
     },
     'pre-69383-01': {
       id: 'pre-69383-01',
@@ -1524,7 +1524,7 @@ export const Administrations: {
       telephone: '0821 80 30 69',
       departementId: '69',
       adresse2: '106, rue Pierre-Corneille',
-      url: 'http://www.rhone.gouv.fr'
+      url: 'http://www.rhone.gouv.fr',
     },
     'pre-70550-01': {
       id: 'pre-70550-01',
@@ -1537,7 +1537,7 @@ export const Administrations: {
       telephone: '03 84 77 70 00',
       departementId: '70',
       email: 'prefecture@haute-saone.pref.gouv.fr',
-      url: 'http://www.haute-saone.gouv.fr'
+      url: 'http://www.haute-saone.gouv.fr',
     },
     'pre-71270-01': {
       id: 'pre-71270-01',
@@ -1549,7 +1549,7 @@ export const Administrations: {
       commune: 'Mâcon Cedex 9',
       telephone: '03 85 21 81 00',
       departementId: '71',
-      url: 'http://www.saone-et-loire.gouv.fr/prefecture-et-sous-prefectures-r1071.html'
+      url: 'http://www.saone-et-loire.gouv.fr/prefecture-et-sous-prefectures-r1071.html',
     },
     'pre-72181-01': {
       id: 'pre-72181-01',
@@ -1562,7 +1562,7 @@ export const Administrations: {
       telephone: '02 43 39 72 72',
       departementId: '72',
       email: 'pref-mail@sarthe.gouv.fr',
-      url: 'http://www.sarthe.gouv.fr'
+      url: 'http://www.sarthe.gouv.fr',
     },
     'pre-73065-01': {
       id: 'pre-73065-01',
@@ -1575,7 +1575,7 @@ export const Administrations: {
       telephone: '04 79 75 50 50',
       departementId: '73',
       email: 'prefecture@savoie.gouv.fr',
-      url: 'http://www.savoie.gouv.fr'
+      url: 'http://www.savoie.gouv.fr',
     },
     'pre-74010-01': {
       id: 'pre-74010-01',
@@ -1588,7 +1588,7 @@ export const Administrations: {
       telephone: '04 50 33 60 00',
       departementId: '74',
       email: 'prefecture@haute-savoie.gouv.fr',
-      url: 'http://www.haute-savoie.gouv.fr'
+      url: 'http://www.haute-savoie.gouv.fr',
     },
     'pre-75104-01': {
       id: 'pre-75104-01',
@@ -1600,7 +1600,7 @@ export const Administrations: {
       commune: 'Paris',
       telephone: '3430',
       departementId: '75',
-      url: 'http://www.prefecturedepolice.interieur.gouv.fr'
+      url: 'http://www.prefecturedepolice.interieur.gouv.fr',
     },
     'pre-76540-01': {
       id: 'pre-76540-01',
@@ -1612,7 +1612,7 @@ export const Administrations: {
       commune: 'Rouen Cedex',
       telephone: '02 32 76 50 00',
       departementId: '76',
-      url: 'http://www.seine-maritime.gouv.fr'
+      url: 'http://www.seine-maritime.gouv.fr',
     },
     'pre-77288-01': {
       id: 'pre-77288-01',
@@ -1624,7 +1624,7 @@ export const Administrations: {
       commune: 'Melun Cedex',
       telephone: '01 64 71 76 77',
       departementId: '77',
-      url: 'http://www.seine-et-marne.gouv.fr'
+      url: 'http://www.seine-et-marne.gouv.fr',
     },
     'pre-78646-01': {
       id: 'pre-78646-01',
@@ -1637,7 +1637,7 @@ export const Administrations: {
       telephone: '01 39 49 78 00',
       departementId: '78',
       email: 'pref-communication78@yvelines.gouv.fr',
-      url: 'http://www.yvelines.gouv.fr'
+      url: 'http://www.yvelines.gouv.fr',
     },
     'pre-79191-01': {
       id: 'pre-79191-01',
@@ -1650,7 +1650,7 @@ export const Administrations: {
       telephone: '05 49 08 68 68',
       departementId: '79',
       email: 'courrier@deux-sevres.pref.gouv.fr',
-      url: 'http://www.deux-sevres.gouv.fr'
+      url: 'http://www.deux-sevres.gouv.fr',
     },
     'pre-80021-01': {
       id: 'pre-80021-01',
@@ -1663,7 +1663,7 @@ export const Administrations: {
       telephone: '0821 80 30 80',
       departementId: '80',
       email: 'pref-courrier@somme.gouv.fr',
-      url: 'http://www.somme.gouv.fr'
+      url: 'http://www.somme.gouv.fr',
     },
     'pre-81004-01': {
       id: 'pre-81004-01',
@@ -1676,7 +1676,7 @@ export const Administrations: {
       telephone: '05 63 45 61 61',
       departementId: '81',
       email: 'courrier@tarn.pref.gouv.fr',
-      url: 'http://www.tarn.gouv.fr'
+      url: 'http://www.tarn.gouv.fr',
     },
     'pre-82121-01': {
       id: 'pre-82121-01',
@@ -1688,7 +1688,7 @@ export const Administrations: {
       commune: 'Montauban Cedex',
       telephone: '05 63 22 82 00',
       departementId: '82',
-      url: 'http://www.tarn-et-garonne.gouv.fr'
+      url: 'http://www.tarn-et-garonne.gouv.fr',
     },
     'pre-83137-01': {
       id: 'pre-83137-01',
@@ -1700,7 +1700,7 @@ export const Administrations: {
       commune: 'Toulon Cedex',
       telephone: '04 94 18 83 83',
       departementId: '83',
-      url: 'http://www.var.gouv.fr'
+      url: 'http://www.var.gouv.fr',
     },
     'pre-84007-01': {
       id: 'pre-84007-01',
@@ -1714,7 +1714,7 @@ export const Administrations: {
       departementId: '84',
       adresse2: "Services de l'Etat en Vaucluse Préfecture",
       email: 'pref-contact@vaucluse.gouv.fr',
-      url: 'http://www.vaucluse.gouv.fr'
+      url: 'http://www.vaucluse.gouv.fr',
     },
     'pre-85191-01': {
       id: 'pre-85191-01',
@@ -1727,7 +1727,7 @@ export const Administrations: {
       telephone: '02 51 36 70 85',
       departementId: '85',
       email: 'prefecture@vendee.gouv.fr',
-      url: 'http://www.vendee.gouv.fr'
+      url: 'http://www.vendee.gouv.fr',
     },
     'pre-86194-01': {
       id: 'pre-86194-01',
@@ -1740,7 +1740,7 @@ export const Administrations: {
       telephone: '05 49 55 70 00',
       departementId: '86',
       email: 'pref-courrier@vienne.gouv.fr',
-      url: 'http://www.vienne.gouv.fr'
+      url: 'http://www.vienne.gouv.fr',
     },
     'pre-87085-01': {
       id: 'pre-87085-01',
@@ -1752,7 +1752,7 @@ export const Administrations: {
       commune: 'Limoges',
       telephone: '05 55 44 18 00',
       departementId: '87',
-      url: 'http://www.haute-vienne.gouv.fr'
+      url: 'http://www.haute-vienne.gouv.fr',
     },
     'pre-88160-01': {
       id: 'pre-88160-01',
@@ -1765,7 +1765,7 @@ export const Administrations: {
       telephone: '03 29 69 88 88',
       departementId: '88',
       email: 'prefecture@vosges.gouv.fr',
-      url: 'http://www.vosges.gouv.fr'
+      url: 'http://www.vosges.gouv.fr',
     },
     'pre-89024-01': {
       id: 'pre-89024-01',
@@ -1778,7 +1778,7 @@ export const Administrations: {
       telephone: '03 86 72 79 89',
       departementId: '89',
       email: 'prefecture@yonne.gouv.fr',
-      url: 'http://www.yonne.gouv.fr'
+      url: 'http://www.yonne.gouv.fr',
     },
     'pre-90010-01': {
       id: 'pre-90010-01',
@@ -1791,7 +1791,7 @@ export const Administrations: {
       telephone: '03 84 57 00 07',
       departementId: '90',
       email: 'courrier90@territoire-de-belfort.pref.gouv.fr',
-      url: 'http://www.territoire-belfort.gouv.fr'
+      url: 'http://www.territoire-belfort.gouv.fr',
     },
     'pre-91228-01': {
       id: 'pre-91228-01',
@@ -1804,7 +1804,7 @@ export const Administrations: {
       telephone: '01 69 91 91 91',
       departementId: '91',
       email: 'prefecture@essonne.gouv.fr',
-      url: 'http://www.essonne.gouv.fr'
+      url: 'http://www.essonne.gouv.fr',
     },
     'pre-92050-01': {
       id: 'pre-92050-01',
@@ -1817,7 +1817,7 @@ export const Administrations: {
       telephone: '01 40 97 20 00',
       departementId: '92',
       email: 'prefecture@hauts-de-seine.gouv.fr',
-      url: 'http://www.hauts-de-seine.gouv.fr'
+      url: 'http://www.hauts-de-seine.gouv.fr',
     },
     'pre-93008-01': {
       id: 'pre-93008-01',
@@ -1830,7 +1830,7 @@ export const Administrations: {
       telephone: '01 41 60 60 60',
       departementId: '93',
       email: 'prefecture@seine-saint-denis.gouv.fr',
-      url: 'http://www.seine-saint-denis.gouv.fr'
+      url: 'http://www.seine-saint-denis.gouv.fr',
     },
     'pre-94028-01': {
       id: 'pre-94028-01',
@@ -1843,7 +1843,7 @@ export const Administrations: {
       telephone: '01 49 56 60 00',
       departementId: '94',
       email: 'prefecture@val-de-marne.gouv.fr',
-      url: 'http://www.val-de-marne.gouv.fr'
+      url: 'http://www.val-de-marne.gouv.fr',
     },
     'pre-95127-01': {
       id: 'pre-95127-01',
@@ -1856,7 +1856,7 @@ export const Administrations: {
       telephone: '01 34 20 95 95',
       departementId: '95',
       email: 'prefecture@val-doise.gouv.fr',
-      url: 'http://www.val-doise.gouv.fr'
+      url: 'http://www.val-doise.gouv.fr',
     },
     'pre-97105-01': {
       id: 'pre-97105-01',
@@ -1868,7 +1868,7 @@ export const Administrations: {
       commune: 'Basse-Terre Cedex',
       telephone: '+590 590 99 39 00',
       departementId: '971',
-      url: 'http://www.guadeloupe.pref.gouv.fr'
+      url: 'http://www.guadeloupe.pref.gouv.fr',
     },
     'pre-97209-01': {
       id: 'pre-97209-01',
@@ -1881,7 +1881,7 @@ export const Administrations: {
       telephone: '+596 596 39 36 00',
       departementId: '972',
       email: 'contact.prefecture@martinique.pref.gouv.fr',
-      url: 'http://www.martinique.pref.gouv.fr'
+      url: 'http://www.martinique.pref.gouv.fr',
     },
     'pre-97302-01': {
       id: 'pre-97302-01',
@@ -1894,7 +1894,7 @@ export const Administrations: {
       adresse1: 'BP 7008, Rue Fiedmond',
       codePostal: '97307',
       commune: 'Cayenne Cedex',
-      departementId: '973'
+      departementId: '973',
     },
     'pre-97411-01': {
       id: 'pre-97411-01',
@@ -1906,7 +1906,7 @@ export const Administrations: {
       commune: 'Saint-Denis Cedex',
       telephone: '+262 262 40 77 77',
       departementId: '974',
-      url: 'http://www.reunion.gouv.fr'
+      url: 'http://www.reunion.gouv.fr',
     },
     'pre-97611-01': {
       id: 'pre-97611-01',
@@ -1918,8 +1918,8 @@ export const Administrations: {
       commune: 'Mamoudzou',
       telephone: '+262 269 63 50 00',
       departementId: '976',
-      url: 'http://www.mayotte.pref.gouv.fr/'
-    }
+      url: 'http://www.mayotte.pref.gouv.fr/',
+    },
   } // ----- ne pas supprimer cette ligne : fin
 
 export const sortedAdministrations = Object.values(Administrations).sort((a, b) => a.abreviation.localeCompare(b.abreviation))
diff --git a/packages/common/src/static/administrationsTitresTypes.ts b/packages/common/src/static/administrationsTitresTypes.ts
index 37a634dd8..7b8fdbf32 100644
--- a/packages/common/src/static/administrationsTitresTypes.ts
+++ b/packages/common/src/static/administrationsTitresTypes.ts
@@ -12,29 +12,29 @@ type AdministrationTitreType = PartialRecord<
 
 const AdministrationsTitresTypes: { [key in AdministrationId]?: AdministrationTitreType } = {
   'aut-97300-01': {
-    [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: { gestionnaire: false, associee: true }
+    [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: { gestionnaire: false, associee: true },
   },
   'aut-mrae-guyane-01': {
-    [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: { gestionnaire: false, associee: true }
+    [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: { gestionnaire: false, associee: true },
   },
   'dea-guyane-01': {
     [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: { gestionnaire: false, associee: true },
-    [TITRES_TYPES_IDS.AUTORISATION_D_EXPLOITATION_METAUX]: { gestionnaire: true, associee: false }
+    [TITRES_TYPES_IDS.AUTORISATION_D_EXPLOITATION_METAUX]: { gestionnaire: true, associee: false },
   },
   'dre-aura-01': {
     [TITRES_TYPES_IDS.CONCESSION_METAUX]: { gestionnaire: false, associee: false },
     [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: { gestionnaire: false, associee: false },
-    [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GEOTHERMIE]: { gestionnaire: true, associee: false }
+    [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GEOTHERMIE]: { gestionnaire: true, associee: false },
   },
   'dre-bfc-01': {
     [TITRES_TYPES_IDS.CONCESSION_METAUX]: { gestionnaire: false, associee: false },
-    [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: { gestionnaire: false, associee: false }
+    [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: { gestionnaire: false, associee: false },
   },
   'dre-ile-de-france-01': {
-    [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_CARRIERES_CARRIERES]: { gestionnaire: true, associee: false }
+    [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_CARRIERES_CARRIERES]: { gestionnaire: true, associee: false },
   },
   'dre-nouvelle-aquitaine-01': {
-    [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GEOTHERMIE]: { gestionnaire: true, associee: false }
+    [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GEOTHERMIE]: { gestionnaire: true, associee: false },
   },
   'min-dajb-01': {
     [TITRES_TYPES_IDS.AUTORISATION_DE_PROSPECTION_CARRIERES]: { gestionnaire: false, associee: true },
@@ -67,7 +67,7 @@ const AdministrationsTitresTypes: { [key in AdministrationId]?: AdministrationTi
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_HYDROCARBURE]: { gestionnaire: false, associee: true },
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_METAUX]: { gestionnaire: false, associee: true },
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_RADIOACTIF]: { gestionnaire: false, associee: true },
-    [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: { gestionnaire: false, associee: true }
+    [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: { gestionnaire: false, associee: true },
   },
   'min-mctrct-dgcl-01': {
     [TITRES_TYPES_IDS.AUTORISATION_DE_PROSPECTION_METAUX]: { gestionnaire: false, associee: true },
@@ -80,7 +80,7 @@ const AdministrationsTitresTypes: { [key in AdministrationId]?: AdministrationTi
     [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: { gestionnaire: false, associee: true },
     [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_GRANULATS_MARINS]: { gestionnaire: false, associee: true },
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_METAUX]: { gestionnaire: false, associee: true },
-    [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: { gestionnaire: false, associee: true }
+    [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: { gestionnaire: false, associee: true },
   },
   'min-mtes-dgaln-01': {
     [TITRES_TYPES_IDS.AUTORISATION_DE_PROSPECTION_CARRIERES]: { gestionnaire: true, associee: false },
@@ -113,7 +113,7 @@ const AdministrationsTitresTypes: { [key in AdministrationId]?: AdministrationTi
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_HYDROCARBURE]: { gestionnaire: false, associee: true },
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_METAUX]: { gestionnaire: true, associee: false },
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_RADIOACTIF]: { gestionnaire: false, associee: true },
-    [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: { gestionnaire: true, associee: false }
+    [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: { gestionnaire: true, associee: false },
   },
   'min-mtes-dgec-01': {
     [TITRES_TYPES_IDS.AUTORISATION_DE_PROSPECTION_CARRIERES]: { gestionnaire: false, associee: true },
@@ -146,7 +146,7 @@ const AdministrationsTitresTypes: { [key in AdministrationId]?: AdministrationTi
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_HYDROCARBURE]: { gestionnaire: true, associee: false },
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_METAUX]: { gestionnaire: false, associee: true },
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_RADIOACTIF]: { gestionnaire: false, associee: true },
-    [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: { gestionnaire: false, associee: true }
+    [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: { gestionnaire: false, associee: true },
   },
   'min-mtes-dgpr-01': {
     [TITRES_TYPES_IDS.AUTORISATION_DE_PROSPECTION_CARRIERES]: { gestionnaire: false, associee: true },
@@ -179,24 +179,24 @@ const AdministrationsTitresTypes: { [key in AdministrationId]?: AdministrationTi
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_HYDROCARBURE]: { gestionnaire: false, associee: true },
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_METAUX]: { gestionnaire: false, associee: true },
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_RADIOACTIF]: { gestionnaire: true, associee: false },
-    [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: { gestionnaire: false, associee: true }
+    [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: { gestionnaire: false, associee: true },
   },
   'ope-brgm-01': {
-    [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_CARRIERES_CARRIERES]: { gestionnaire: false, associee: true }
+    [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_CARRIERES_CARRIERES]: { gestionnaire: false, associee: true },
   },
   'ope-brgm-02': {
-    [TITRES_TYPES_IDS.AUTORISATION_D_EXPLOITATION_METAUX]: { gestionnaire: false, associee: true }
+    [TITRES_TYPES_IDS.AUTORISATION_D_EXPLOITATION_METAUX]: { gestionnaire: false, associee: true },
   },
   'ope-onf-973-01': {
     [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: { gestionnaire: true, associee: false },
-    [TITRES_TYPES_IDS.AUTORISATION_D_EXPLOITATION_METAUX]: { gestionnaire: true, associee: false }
+    [TITRES_TYPES_IDS.AUTORISATION_D_EXPLOITATION_METAUX]: { gestionnaire: true, associee: false },
   },
   'ope-ptmg-973-01': {
-    [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: { gestionnaire: true, associee: true }
+    [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: { gestionnaire: true, associee: true },
   },
   'pre-97302-01': {
-    [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: { gestionnaire: false, associee: true }
-  }
+    [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: { gestionnaire: false, associee: true },
+  },
 }
 
 export const getTitreTypeIdsByAdministration = (administrationId: AdministrationId): { titreTypeId: TitreTypeId; gestionnaire: boolean; associee: boolean }[] => {
diff --git a/packages/common/src/static/administrationsTitresTypesEtapesTypes.ts b/packages/common/src/static/administrationsTitresTypesEtapesTypes.ts
index d60efc7bf..3dc232f45 100644
--- a/packages/common/src/static/administrationsTitresTypesEtapesTypes.ts
+++ b/packages/common/src/static/administrationsTitresTypesEtapesTypes.ts
@@ -22,7 +22,7 @@ export const toDbATE = () => {
             etape_type_id: etapeTypeId,
             lecture_interdit: value.lectureInterdit,
             creation_interdit: value.creationInterdit,
-            modification_interdit: value.modificationInterdit
+            modification_interdit: value.modificationInterdit,
           }
         })
       )
@@ -111,8 +111,8 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.signatureDeLautorisationDeRechercheMiniere]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.validationDuPaiementDesFraisDeDossierComplementaires]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.validationDuPaiementDesFraisDeDossier]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true }
-    }
+      [ETAPES_TYPES.validationDuPaiementDesFraisDeDossier]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
+    },
   },
   [ADMINISTRATION_IDS['MRAE GUYANE']]: {
     [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: {
@@ -162,8 +162,8 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.signatureDeLautorisationDeRechercheMiniere]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.validationDuPaiementDesFraisDeDossierComplementaires]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.validationDuPaiementDesFraisDeDossier]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
-    }
+      [ETAPES_TYPES.validationDuPaiementDesFraisDeDossier]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
+    },
   },
   [ADMINISTRATION_IDS['DGTM - GUYANE']]: {
     [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: {
@@ -193,7 +193,7 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.signatureDeLautorisationDeRechercheMiniere]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.validationDuPaiementDesFraisDeDossierComplementaires]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.validationDuPaiementDesFraisDeDossier]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
+      [ETAPES_TYPES.validationDuPaiementDesFraisDeDossier]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
     },
     [TITRES_TYPES_IDS.CONCESSION_METAUX]: {
       [ETAPES_TYPES.abrogationDeLaDecision]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
@@ -218,7 +218,7 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDeLautoriteSignataire]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuConseilGeneralDeLeconomie_CGE_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuConseilDEtat]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
+      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
     },
     [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: {
       [ETAPES_TYPES.abrogationDeLaDecision]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
@@ -244,7 +244,7 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.retraitDeLaDecision]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLautoriteSignataire]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuConseilGeneralDeLeconomie_CGE_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
+      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
     },
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_METAUX]: {
       [ETAPES_TYPES.abrogationDeLaDecision]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
@@ -262,8 +262,8 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.retraitDeLaDecision]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLautoriteSignataire]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuConseilGeneralDeLeconomie_CGE_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
-    }
+      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
+    },
   },
   [ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON']]: {
     [TITRES_TYPES_IDS.CONCESSION_METAUX]: {
@@ -291,7 +291,7 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDuConseilGeneralDeLeconomie_CGE_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuConseilDEtat]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLaCommissionDepartementaleDesMines_CDM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
+      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
     },
     [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: {
       [ETAPES_TYPES.abrogationDeLaDecision]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
@@ -320,8 +320,8 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDeLautoriteSignataire]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuConseilGeneralDeLeconomie_CGE_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLaCommissionDepartementaleDesMines_CDM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
-    }
+      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
+    },
   },
   [ADMINISTRATION_IDS['DREAL - BOURGOGNE-FRANCHE-COMTÉ - SIÈGE DE BESANÇON']]: {
     [TITRES_TYPES_IDS.CONCESSION_METAUX]: {
@@ -349,7 +349,7 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDuConseilGeneralDeLeconomie_CGE_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuConseilDEtat]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLaCommissionDepartementaleDesMines_CDM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
+      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
     },
     [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: {
       [ETAPES_TYPES.abrogationDeLaDecision]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
@@ -378,8 +378,8 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDeLautoriteSignataire]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuConseilGeneralDeLeconomie_CGE_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLaCommissionDepartementaleDesMines_CDM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
-    }
+      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
+    },
   },
   [ADMINISTRATION_IDS['DREAL - GRAND EST - SIÈGE DE METZ']]: {
     [TITRES_TYPES_IDS.CONCESSION_METAUX]: {
@@ -407,7 +407,7 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDuConseilGeneralDeLeconomie_CGE_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuConseilDEtat]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLaCommissionDepartementaleDesMines_CDM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
+      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
     },
     [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: {
       [ETAPES_TYPES.abrogationDeLaDecision]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
@@ -436,8 +436,8 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDeLautoriteSignataire]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuConseilGeneralDeLeconomie_CGE_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLaCommissionDepartementaleDesMines_CDM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
-    }
+      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
+    },
   },
   [ADMINISTRATION_IDS['DREAL - OCCITANIE - SIÈGE DE TOULOUSE']]: {
     [TITRES_TYPES_IDS.CONCESSION_METAUX]: {
@@ -465,7 +465,7 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDuConseilGeneralDeLeconomie_CGE_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuConseilDEtat]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLaCommissionDepartementaleDesMines_CDM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
+      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
     },
     [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: {
       [ETAPES_TYPES.abrogationDeLaDecision]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
@@ -494,8 +494,8 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDeLautoriteSignataire]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuConseilGeneralDeLeconomie_CGE_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLaCommissionDepartementaleDesMines_CDM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
-    }
+      [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
+    },
   },
   [ADMINISTRATION_IDS['BRGM - PROJET ZERCOA']]: {
     [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: {
@@ -547,7 +547,7 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.signatureDeLautorisationDeRechercheMiniere]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.validationDuPaiementDesFraisDeDossierComplementaires]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.validationDuPaiementDesFraisDeDossier]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true }
+      [ETAPES_TYPES.validationDuPaiementDesFraisDeDossier]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
     },
     [TITRES_TYPES_IDS.AUTORISATION_D_EXPLOITATION_METAUX]: {
       [ETAPES_TYPES.avisDeDirectionRegionaleDesAffairesCulturelles]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
@@ -600,7 +600,7 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDeLautoriteSignataire]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDesCollectivitesLocales]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLaCommissionDepartementaleDesMines_CDM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDesServices]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true }
+      [ETAPES_TYPES.saisineDesServices]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
     },
     [TITRES_TYPES_IDS.CONCESSION_METAUX]: {
       [ETAPES_TYPES.abrogationDeLaDecision]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
@@ -654,7 +654,7 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDuConseilDEtat]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLaCommissionDepartementaleDesMines_CDM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDesServices]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true }
+      [ETAPES_TYPES.saisineDesServices]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
     },
     [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: {
       [ETAPES_TYPES.abrogationDeLaDecision]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
@@ -704,7 +704,7 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDesCollectivitesLocales]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLaCommissionDepartementaleDesMines_CDM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDesServices]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true }
+      [ETAPES_TYPES.saisineDesServices]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
     },
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_METAUX]: {
       [ETAPES_TYPES.abrogationDeLaDecision]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
@@ -752,8 +752,8 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDesCollectivitesLocales]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLaCommissionDepartementaleDesMines_CDM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDuPrefet]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDesServices]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true }
-    }
+      [ETAPES_TYPES.saisineDesServices]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
+    },
   },
   [ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']]: {
     [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: {
@@ -774,7 +774,7 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.receptionDinformation]: { lectureInterdit: false, creationInterdit: false, modificationInterdit: false },
       [ETAPES_TYPES.receptionDinformation_RecevabiliteDeLaDemande_]: { lectureInterdit: false, creationInterdit: false, modificationInterdit: false },
       [ETAPES_TYPES.receptionDinformation_ExpertiseDeLOfficeNationalDesForets_]: { lectureInterdit: false, creationInterdit: false, modificationInterdit: false },
-      [ETAPES_TYPES.saisineDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_]: { lectureInterdit: false, creationInterdit: false, modificationInterdit: false }
+      [ETAPES_TYPES.saisineDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_]: { lectureInterdit: false, creationInterdit: false, modificationInterdit: false },
     },
     [TITRES_TYPES_IDS.AUTORISATION_D_EXPLOITATION_METAUX]: {
       [ETAPES_TYPES.avisDeDirectionRegionaleDesAffairesCulturelles]: { lectureInterdit: true, creationInterdit: true, modificationInterdit: true },
@@ -827,9 +827,9 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDeLautoriteSignataire]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDesCollectivitesLocales]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.saisineDeLaCommissionDepartementaleDesMines_CDM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.saisineDesServices]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
+      [ETAPES_TYPES.saisineDesServices]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
     },
-    [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: { [ETAPES_TYPES.avisDeLOfficeNationalDesForets]: { lectureInterdit: false, creationInterdit: false, modificationInterdit: false } }
+    [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: { [ETAPES_TYPES.avisDeLOfficeNationalDesForets]: { lectureInterdit: false, creationInterdit: false, modificationInterdit: false } },
   },
   [ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']]: {
     [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: {
@@ -866,8 +866,8 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.signatureDeLautorisationDeRechercheMiniere]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.validationDuPaiementDesFraisDeDossierComplementaires]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.validationDuPaiementDesFraisDeDossier]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
-    }
+      [ETAPES_TYPES.validationDuPaiementDesFraisDeDossier]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
+    },
   },
   [ADMINISTRATION_IDS['PRÉFECTURE - GUYANE']]: {
     [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: {
@@ -917,7 +917,7 @@ const AdministrationsTitresTypesEtapesTypes: {
       [ETAPES_TYPES.saisineDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.signatureDeLautorisationDeRechercheMiniere]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
       [ETAPES_TYPES.validationDuPaiementDesFraisDeDossierComplementaires]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
-      [ETAPES_TYPES.validationDuPaiementDesFraisDeDossier]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true }
-    }
-  }
+      [ETAPES_TYPES.validationDuPaiementDesFraisDeDossier]: { lectureInterdit: false, creationInterdit: true, modificationInterdit: true },
+    },
+  },
 }
diff --git a/packages/common/src/static/administrationsTitresTypesTitresStatuts.ts b/packages/common/src/static/administrationsTitresTypesTitresStatuts.ts
index f02458131..7bf79cf12 100644
--- a/packages/common/src/static/administrationsTitresTypesTitresStatuts.ts
+++ b/packages/common/src/static/administrationsTitresTypesTitresStatuts.ts
@@ -22,7 +22,7 @@ export const toDbATT = () => {
             titre_statut_id: titreStatutId,
             titres_modification_interdit: value.titresModificationInterdit,
             demarches_modification_interdit: value.demarchesModificationInterdit,
-            etapes_modification_interdit: value.etapesModificationInterdit
+            etapes_modification_interdit: value.etapesModificationInterdit,
           }
         })
       )
@@ -72,7 +72,7 @@ const AdministrationsTitresTypesTitresStatuts: {
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
       [TitresStatutIds.Indetermine]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
       [TitresStatutIds.ModificationEnInstance]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
     },
     [TITRES_TYPES_IDS.CONCESSION_METAUX]: {
       [TitresStatutIds.DemandeClassee]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
@@ -80,7 +80,7 @@ const AdministrationsTitresTypesTitresStatuts: {
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.Indetermine]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.ModificationEnInstance]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
     },
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_METAUX]: {
       [TitresStatutIds.DemandeClassee]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
@@ -88,8 +88,8 @@ const AdministrationsTitresTypesTitresStatuts: {
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.Indetermine]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.ModificationEnInstance]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false }
-    }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
+    },
   },
   [ADMINISTRATION_IDS['DREAL - AUVERGNE-RHÔNE-ALPES - SIÈGE DE LYON']]: {
     [TITRES_TYPES_IDS.CONCESSION_METAUX]: {
@@ -98,7 +98,7 @@ const AdministrationsTitresTypesTitresStatuts: {
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.Indetermine]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.ModificationEnInstance]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
     },
     [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: {
       [TitresStatutIds.DemandeClassee]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
@@ -106,8 +106,8 @@ const AdministrationsTitresTypesTitresStatuts: {
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.Indetermine]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.ModificationEnInstance]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false }
-    }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
+    },
   },
   [ADMINISTRATION_IDS['DREAL - BOURGOGNE-FRANCHE-COMTÉ - SIÈGE DE BESANÇON']]: {
     [TITRES_TYPES_IDS.CONCESSION_METAUX]: {
@@ -116,7 +116,7 @@ const AdministrationsTitresTypesTitresStatuts: {
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.Indetermine]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.ModificationEnInstance]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
     },
     [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: {
       [TitresStatutIds.DemandeClassee]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
@@ -124,8 +124,8 @@ const AdministrationsTitresTypesTitresStatuts: {
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.Indetermine]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.ModificationEnInstance]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false }
-    }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
+    },
   },
   [ADMINISTRATION_IDS['DREAL - GRAND EST - SIÈGE DE METZ']]: {
     [TITRES_TYPES_IDS.CONCESSION_METAUX]: {
@@ -134,7 +134,7 @@ const AdministrationsTitresTypesTitresStatuts: {
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.Indetermine]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.ModificationEnInstance]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
     },
     [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: {
       [TitresStatutIds.DemandeClassee]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
@@ -142,8 +142,8 @@ const AdministrationsTitresTypesTitresStatuts: {
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.Indetermine]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.ModificationEnInstance]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false }
-    }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
+    },
   },
   [ADMINISTRATION_IDS['DREAL - OCCITANIE - SIÈGE DE TOULOUSE']]: {
     [TITRES_TYPES_IDS.CONCESSION_METAUX]: {
@@ -152,7 +152,7 @@ const AdministrationsTitresTypesTitresStatuts: {
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.Indetermine]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.ModificationEnInstance]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
     },
     [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: {
       [TitresStatutIds.DemandeClassee]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
@@ -160,14 +160,14 @@ const AdministrationsTitresTypesTitresStatuts: {
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.Indetermine]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
       [TitresStatutIds.ModificationEnInstance]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false }
-    }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: false },
+    },
   },
   [ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']]: {
     [TITRES_TYPES_IDS.AUTORISATION_D_EXPLOITATION_METAUX]: {
       [TitresStatutIds.DemandeClassee]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
     },
     [TITRES_TYPES_IDS.CONCESSION_METAUX]: {
       [TitresStatutIds.DemandeClassee]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
@@ -175,7 +175,7 @@ const AdministrationsTitresTypesTitresStatuts: {
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
       [TitresStatutIds.Indetermine]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
       [TitresStatutIds.ModificationEnInstance]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
     },
     [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: {
       [TitresStatutIds.DemandeClassee]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
@@ -183,7 +183,7 @@ const AdministrationsTitresTypesTitresStatuts: {
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
       [TitresStatutIds.Indetermine]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
       [TitresStatutIds.ModificationEnInstance]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
     },
     [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_METAUX]: {
       [TitresStatutIds.DemandeClassee]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
@@ -191,13 +191,13 @@ const AdministrationsTitresTypesTitresStatuts: {
       [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
       [TitresStatutIds.Indetermine]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
       [TitresStatutIds.ModificationEnInstance]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
-      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true }
-    }
+      [TitresStatutIds.Valide]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
+    },
   },
   [ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']]: {
     [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: {
       [TitresStatutIds.DemandeClassee]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
-      [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true }
-    }
-  }
+      [TitresStatutIds.Echu]: { titresModificationInterdit: true, demarchesModificationInterdit: true, etapesModificationInterdit: true },
+    },
+  },
 }
diff --git a/packages/common/src/static/demarchesStatuts.ts b/packages/common/src/static/demarchesStatuts.ts
index 1af9d1934..74da5949f 100644
--- a/packages/common/src/static/demarchesStatuts.ts
+++ b/packages/common/src/static/demarchesStatuts.ts
@@ -12,7 +12,7 @@ export const DemarchesStatutsIds = {
   Initie: 'ini',
   EnInstruction: 'ins',
   Rejete: 'rej',
-  Termine: 'ter'
+  Termine: 'ter',
 } as const
 
 export type DemarcheStatutId = (typeof DemarchesStatutsIds)[keyof typeof DemarchesStatutsIds]
@@ -27,21 +27,21 @@ export const DemarchesStatuts: {
     nom: 'accepté',
     description: "La demande a fait l’objet d’une décision favorable de l'administration.\n",
     couleur: 'success',
-    ordre: 6
+    ordre: 6,
   },
   cls: {
     id: 'cls',
     nom: 'classé sans suite',
     description: 'La demande est classée sans suite par l’administration à défaut de pouvoir mener l’instruction à son terme.\n',
     couleur: 'neutral',
-    ordre: 5
+    ordre: 5,
   },
   dep: {
     id: 'dep',
     nom: 'déposé',
     description: 'La demande est déposée auprès du service instructeur.\n',
     couleur: 'warning',
-    ordre: 2
+    ordre: 2,
   },
   des: {
     id: 'des',
@@ -49,42 +49,42 @@ export const DemarchesStatuts: {
     description:
       'La demande dont le porteur se dessaisit en informant l’administration de son choix de ne pas lui donner suite. Cette démarche demeure publique si elle a fait l’objet d’une consultation du public.',
     couleur: 'neutral',
-    ordre: 8
+    ordre: 8,
   },
   eco: {
     id: 'eco',
     nom: 'en construction',
     description: 'Le dossier de demande est en cours d’élaboration par le demandeur.',
     couleur: 'warning',
-    ordre: 1
+    ordre: 1,
   },
   fpm: {
     id: 'fpm',
     nom: 'fin de la police des mines',
     description: 'Fin de la police des mines.',
     couleur: 'success',
-    ordre: 11
+    ordre: 11,
   },
   ind: {
     id: 'ind',
     nom: 'indéterminé',
     description: 'Les informations contenues dans les étapes de la démarche sont insuffisantes pour en déterminer le statut.\n',
     couleur: 'warning',
-    ordre: 10
+    ordre: 10,
   },
   ini: {
     id: 'ini',
     nom: 'initié',
     description: 'La démarche est engagée unilatéralement par l’administration, elle ne fait pas l’objet d’une demande de la part du titulaire du titre ou de l’autorisation.',
     couleur: 'warning',
-    ordre: 3
+    ordre: 3,
   },
   ins: {
     id: 'ins',
     nom: 'en instruction',
     description: 'La demande a fait l’objet d’un examen de complétude et de recevabilité.\n',
     couleur: 'warning',
-    ordre: 4
+    ordre: 4,
   },
   rej: {
     id: 'rej',
@@ -92,7 +92,7 @@ export const DemarchesStatuts: {
     description:
       "La demande a fait l’objet d’une décision défavorable de l'administration. Les textes d’applications du code minier prévoient que les décisions de rejet ne font pas l’objet d’une publication. En conséquence, les démarches qui passent au statut “rejeté” dans Camino sont dé-publiées et rendues inaccessibles aux tiers.\n",
     couleur: 'error',
-    ordre: 7
+    ordre: 7,
   },
   ter: {
     id: 'ter',
@@ -100,8 +100,8 @@ export const DemarchesStatuts: {
     description:
       'La démarche engagée unilatéralement par l’administration qui a fait l’objet d’une décision de l’administration. Celle-ci n’a pas fait l’objet d’une demande de la part du titulaire du titre ou de l’autorisation.\n',
     couleur: 'success',
-    ordre: 9
-  }
+    ordre: 9,
+  },
 } as const
 
 export const sortedDemarchesStatuts = Object.values(DemarchesStatuts).sort((a, b) => a.ordre - b.ordre)
diff --git a/packages/common/src/static/demarchesTypes.ts b/packages/common/src/static/demarchesTypes.ts
index 0a7182ac2..5d408b7c9 100644
--- a/packages/common/src/static/demarchesTypes.ts
+++ b/packages/common/src/static/demarchesTypes.ts
@@ -19,7 +19,7 @@ const defaultOptions: { [key in keyof Omit<DemarcheType<DemarcheTypeId>, keyof D
   points: false,
   duree: false,
   exception: false,
-  auto: false
+  auto: false,
 }
 
 export const DEMARCHES_TYPES_IDS = {
@@ -45,7 +45,7 @@ export const DEMARCHES_TYPES_IDS = {
   ResiliationAnticipeeDAmodiation: 'res',
   Retrait: 'ret',
   DemandeDeTitreDExploitation: 'vct',
-  MutationPartielle: 'vut'
+  MutationPartielle: 'vut',
 } as const
 
 export const DemarchesTypesIds = Object.values(DEMARCHES_TYPES_IDS)
@@ -61,7 +61,7 @@ export const DemarchesTypes = {
       'Démarche co-initiée par le titulaire de certains titres miniers d’exploitation et l’entreprise souhaitant devenir amodiataire du titre. C’est une location de l’exploitation d’un gisement à un tiers par le titulaire du titre en contrepartie d’un loyer ou / et du versement d’une quantité donnée des substances extraites. L’amodiation donne lieu à un contrat entre le titulaire du titre et l’amodiataire pour une durée fixée. Afin d’en bénéficier, l’intéressé doit satisfaire aux critères d’attribution exigés pour être détenteurs du titre minier. L’amodiation n’est pas une sous-traitance. En effet, le sous-traitant est rémunéré par le titulaire du titre pour l’exécution de prestations sur la base d’une facture et non d’un loyer.',
     ordre: 12,
     titulaires: true,
-    renouvelable: true
+    renouvelable: true,
   },
   aom: {
     ...defaultOptions,
@@ -69,7 +69,7 @@ export const DemarchesTypes = {
     nom: "Autorisation d'ouverture de travaux",
     description: "Autorisation d'ouverture de travaux",
     ordre: 100,
-    travaux: true
+    travaux: true,
   },
   ces: {
     ...defaultOptions,
@@ -78,7 +78,7 @@ export const DemarchesTypes = {
     description:
       'Démarche obsolète. Co-initiée par le titulaire du titre minier et l’entreprise souhaitant devenir titulaire ou co-titulaire elle remplit une fonction proche de la mutation dans le code minier actuel.',
     ordre: 16,
-    titulaires: true
+    titulaires: true,
   },
   con: {
     ...defaultOptions,
@@ -87,7 +87,7 @@ export const DemarchesTypes = {
     description:
       'Démarche appliquée à un titre d’exploitation d’hydrocarbures liquides ou gazeux. Elle permet de substituer les substances initiales par d’autres substances de mines connexes aux hydrocarbures contenus dans le gisement ou bien par un autre usage du sous-sol. La demande de conversion peut être réalisée au plus tard 4 ans avant l’échéance de son titre. Elle doit de surcroît démontrer la rentabilité économique de la poursuite de l’exploitation du gisement, mais ne fait pas l’objet d’une mise en concurrence.',
     ordre: 11,
-    substances: true
+    substances: true,
   },
   dam: {
     ...defaultOptions,
@@ -95,7 +95,7 @@ export const DemarchesTypes = {
     nom: "Déclaration d'arrêt définitif des travaux",
     description: "Déclaration d'arrêt définitif des travaux",
     ordre: 120,
-    travaux: true
+    travaux: true,
   },
   dec: {
     ...defaultOptions,
@@ -104,7 +104,7 @@ export const DemarchesTypes = {
     description:
       'Démarche obsolète. L’autorité administrative pouvait retirer les droits liés aux autorisations et titres miniers en cours de validité si le titulaire ne remplissait plus certaines prescriptions légales. La déchéance avait pour effet de permettre à l’Etat de réattribuer le titre ou l’autorisation lors d’un appel d’offre.',
     ordre: 21,
-    titulaires: true
+    titulaires: true,
   },
   dep: {
     ...defaultOptions,
@@ -114,7 +114,7 @@ export const DemarchesTypes = {
       'Démarche appliquée aux autorisation d’exploitation de minéraux et métaux pour déplacer le centre du périmètre de celle-ci dans la limite de 200 mètres. Les zones déjà exploitées doivent être maintenues à l’intérieur du périmètre déplacé.',
     ordre: 8,
     points: true,
-    renouvelable: true
+    renouvelable: true,
   },
   dot: {
     ...defaultOptions,
@@ -122,7 +122,7 @@ export const DemarchesTypes = {
     nom: "Déclaration d'ouverture de travaux",
     description: "Déclaration d'ouverture de travaux",
     ordre: 110,
-    travaux: true
+    travaux: true,
   },
   exp: {
     ...defaultOptions,
@@ -132,7 +132,7 @@ export const DemarchesTypes = {
     ordre: 7,
     duree: true,
     points: true,
-    renouvelable: true
+    renouvelable: true,
   },
   exs: {
     ...defaultOptions,
@@ -143,7 +143,7 @@ export const DemarchesTypes = {
     ordre: 10,
     duree: true,
     substances: true,
-    renouvelable: true
+    renouvelable: true,
   },
   fus: {
     ...defaultOptions,
@@ -155,7 +155,7 @@ export const DemarchesTypes = {
     duree: true,
     points: true,
     titulaires: true,
-    renouvelable: true
+    renouvelable: true,
   },
   mut: {
     ...defaultOptions,
@@ -167,7 +167,7 @@ export const DemarchesTypes = {
     duree: true,
     points: true,
     titulaires: true,
-    renouvelable: true
+    renouvelable: true,
   },
   oct: {
     ...defaultOptions,
@@ -178,7 +178,7 @@ export const DemarchesTypes = {
     duree: true,
     points: true,
     substances: true,
-    titulaires: true
+    titulaires: true,
   },
   pr1: {
     ...defaultOptions,
@@ -188,7 +188,7 @@ export const DemarchesTypes = {
       "Démarche appliquée à une autorisation ou un titre minier qui a fait l’objet d’un octroi initial. Elle prolonge sa durée de validité. Une première prolongation est applicable aux permis exclusifs de recherches et aux permis d'exploitation de minéraux et métaux en outre-mer pour une durée de 5 ans maximum. Pour des permis exclusifs de recherches d’hydrocarbures liquides ou gazeux, la première prolongation s’accompagne obligatoirement d’une réduction de 50% de la surface du titre.",
     ordre: 3,
     duree: true,
-    points: true
+    points: true,
   },
   pr2: {
     ...defaultOptions,
@@ -198,7 +198,7 @@ export const DemarchesTypes = {
       "Démarche appliquée à une autorisation ou un titre minier qui a fait l’objet d’une première prolongation. Elle prolonge sa durée de validité. Une seconde prolongation est applicable aux permis exclusifs de recherches et aux permis d'exploitation de minéraux et métaux en outre-mer pour une durée de 5 ans maximum. Seules deux prolongations successives sont admises pour ces titres. A l’exception des permis exclusifs de recherches d’hydrocarbures liquides ou gazeux qui peuvent faire l’objet d’une prolongation exceptionnelle. Pour ces derniers, la seconde prolongation s’accompagne obligatoirement d’une réduction de 25% de la surface du titre.",
     ordre: 4,
     duree: true,
-    points: true
+    points: true,
   },
   pre: {
     ...defaultOptions,
@@ -208,7 +208,7 @@ export const DemarchesTypes = {
       'Démarche appliquée à un permis exclusif de recherches d’hydrocarbures liquides ou gazeux. Elle prolonge sa durée de validité de trois ans maximum. La prolongation exceptionnelle ne peut être mobilisée qu’une fois au cours de la vie du titres et ne s’accompagne pas nécessairement d’une réduction de sa surface.',
     ordre: 5,
     duree: true,
-    exception: true
+    exception: true,
   },
   pro: {
     ...defaultOptions,
@@ -219,7 +219,7 @@ export const DemarchesTypes = {
     ordre: 2,
     duree: true,
     points: true,
-    renouvelable: true
+    renouvelable: true,
   },
   prr: {
     ...defaultOptions,
@@ -230,7 +230,7 @@ export const DemarchesTypes = {
     ordre: 17,
     duree: true,
     points: true,
-    renouvelable: true
+    renouvelable: true,
   },
   ren: {
     ...defaultOptions,
@@ -242,7 +242,7 @@ export const DemarchesTypes = {
     duree: true,
     points: true,
     titulaires: true,
-    renouvelable: true
+    renouvelable: true,
   },
   res: {
     ...defaultOptions,
@@ -252,7 +252,7 @@ export const DemarchesTypes = {
       'Démarche co-initiée par le titulaire de certains titres miniers d’exploitation et l’entreprise amodiataire du titre. Elle conduit à une fin anticipée du contrat d’amodiation sur l’accord des deux parties sans affecter le statut du titre minier.',
     ordre: 13,
     titulaires: true,
-    renouvelable: true
+    renouvelable: true,
   },
   ret: {
     ...defaultOptions,
@@ -261,7 +261,7 @@ export const DemarchesTypes = {
     description:
       'Démarche initiée par l’autorité administrative. Le ministre chargé des mines pour les titres et le préfet pour les autorisations d’exploitation peuvent retirer les autorisations et les titres miniers en cours de validité si l’intéressé ne remplit plus certaines prescriptions légales.\r\nLe retrait a pour effet de replacer le gisement dans la situation de ceux ouverts aux recherches.',
     ordre: 20,
-    duree: true
+    duree: true,
   },
   vct: {
     ...defaultOptions,
@@ -275,7 +275,7 @@ export const DemarchesTypes = {
     substances: true,
     titulaires: true,
     renouvelable: true,
-    auto: true
+    auto: true,
   },
   vut: {
     ...defaultOptions,
@@ -288,8 +288,8 @@ export const DemarchesTypes = {
     points: true,
     titulaires: true,
     renouvelable: true,
-    auto: true
-  }
+    auto: true,
+  },
 } as const satisfies { [key in DemarcheTypeId]: DemarcheType<key> }
 
 type FilterSettings<S extends (typeof DemarchesTypes)[keyof typeof DemarchesTypes] = (typeof DemarchesTypes)[keyof typeof DemarchesTypes]> = S extends { travaux: true } ? S['id'] : never
@@ -311,7 +311,7 @@ export const isDemarcheTypeWithPhase = (demarcheTypeId: DemarcheTypeId): boolean
     DEMARCHES_TYPES_IDS.Prolongation,
     DEMARCHES_TYPES_IDS.Prolongation1,
     DEMARCHES_TYPES_IDS.Prolongation2,
-    DEMARCHES_TYPES_IDS.ProlongationExceptionnelle
+    DEMARCHES_TYPES_IDS.ProlongationExceptionnelle,
   ]
 
   return demarchesTypesWithPhases.includes(demarcheTypeId)
diff --git a/packages/common/src/static/departement.ts b/packages/common/src/static/departement.ts
index dfa33887e..5ee8b9929 100644
--- a/packages/common/src/static/departement.ts
+++ b/packages/common/src/static/departement.ts
@@ -102,7 +102,7 @@ export const DEPARTEMENT_IDS = {
   Martinique: '972',
   Guyane: '973',
   'La Réunion': '974',
-  Mayotte: '976'
+  Mayotte: '976',
 } as const
 
 export interface Departement<T = DepartementId> {
@@ -235,7 +235,7 @@ export const Departements: { [key in DepartementId]: Departement<key> } = {
   '972': { id: '972', nom: 'Martinique', regionId: '02' },
   '973': { id: '973', nom: 'Guyane', regionId: '03' },
   '974': { id: '974', nom: 'La Réunion', regionId: '04' },
-  '976': { id: '976', nom: 'Mayotte', regionId: '06' }
+  '976': { id: '976', nom: 'Mayotte', regionId: '06' },
 }
 
 const departementIds = Object.values(DEPARTEMENT_IDS)
diff --git a/packages/common/src/static/devise.ts b/packages/common/src/static/devise.ts
index 48afb078f..9da93f7ea 100644
--- a/packages/common/src/static/devise.ts
+++ b/packages/common/src/static/devise.ts
@@ -3,7 +3,7 @@ import { Definition } from '../definition.js'
 export const DEVISES_IDS = {
   Euros: 'EUR',
   Francs: 'FRF',
-  FrancsPacifique: 'XPF'
+  FrancsPacifique: 'XPF',
 } as const
 
 export type DeviseId = (typeof DEVISES_IDS)[keyof typeof DEVISES_IDS]
@@ -11,7 +11,7 @@ export type Devise<T = DeviseId> = Omit<Definition<T>, 'description'>
 export const Devises: { [key in DeviseId]: Devise<key> } = {
   EUR: { id: 'EUR', nom: 'Euros', ordre: 1 },
   XPF: { id: 'XPF', nom: 'Francs Pacifique', ordre: 2 },
-  FRF: { id: 'FRF', nom: 'Francs', ordre: 3 }
+  FRF: { id: 'FRF', nom: 'Francs', ordre: 3 },
 }
 
 export const sortedDevises = Object.values(Devises).sort((a, b) => a.ordre - b.ordre)
diff --git a/packages/common/src/static/documentsTypes.ts b/packages/common/src/static/documentsTypes.ts
index 40c59efde..3b7d79a5c 100644
--- a/packages/common/src/static/documentsTypes.ts
+++ b/packages/common/src/static/documentsTypes.ts
@@ -108,7 +108,7 @@ export const DOCUMENTS_TYPES_IDS = {
   rapportDIntensiteDExploration: 'rie',
   rapportSocialEtEconomiqueDExploration: 'rse',
   schemaDePenetrationDuMassifForestier: 'sch',
-  avisDeSituationAuRepertoireSirene: 'sir'
+  avisDeSituationAuRepertoireSirene: 'sir',
 } as const
 
 export type DocumentTypeId = (typeof DOCUMENTS_TYPES_IDS)[keyof typeof DOCUMENTS_TYPES_IDS]
@@ -209,7 +209,7 @@ export const DocumentsTypes: { [key in DocumentTypeId]: Definition<key> } = {
   rie: { id: 'rie', nom: 'Rapport d’intensité d’exploration' },
   rse: { id: 'rse', nom: "Rapport social et économique d'exploration" },
   sch: { id: 'sch', nom: 'Schéma de pénétration du massif forestier' },
-  sir: { id: 'sir', nom: 'Avis de situation au répertoire Sirene' }
+  sir: { id: 'sir', nom: 'Avis de situation au répertoire Sirene' },
 }
 
 const documentsTypesIds = Object.values(DOCUMENTS_TYPES_IDS)
diff --git a/packages/common/src/static/domaines.ts b/packages/common/src/static/domaines.ts
index b8c2c6806..452debafc 100644
--- a/packages/common/src/static/domaines.ts
+++ b/packages/common/src/static/domaines.ts
@@ -8,7 +8,7 @@ export const DOMAINES_IDS = {
   HYDROCARBURE: 'h',
   RADIOACTIF: 'r',
   SOUTERRAIN: 's',
-  GRANULATS_MARINS: 'w'
+  GRANULATS_MARINS: 'w',
 } as const
 
 export type DomaineId = (typeof DOMAINES_IDS)[keyof typeof DOMAINES_IDS]
@@ -19,53 +19,53 @@ export const Domaines: { [key in DomaineId]: Domaine<key> } = {
     nom: 'carrières',
     description:
       'Domaine couvrant les zones spéciales de carrières à terre qui incluent des substances minérales ou fossiles de carrières rares ou nécessaires pour satisfaire les besoins des consommateurs et l’intérêt économique national ou régional.',
-    ordre: 3
+    ordre: 3,
   },
   f: {
     id: 'f',
     nom: 'combustibles fossiles',
     description: 'Domaine minier auquel appartiennent les combustibles fossiles, la tourbe exceptée.',
-    ordre: 5
+    ordre: 5,
   },
   g: {
     id: 'g',
     nom: 'géothermie',
     description:
       "Domaine auquel appartiennent les gîtes renfermés dans le sein de la terre dont on peut extraire de l'énergie sous forme thermique, notamment par l'intermédiaire des eaux chaudes et des vapeurs souterraines qu'ils contiennent.",
-    ordre: 7
+    ordre: 7,
   },
   h: {
     id: 'h',
     nom: 'hydrocarbures liquides ou gazeux',
     description: "Domaine minier auquel appartiennent des hydrocarbures qu'ils soient sous forme liquide ou gazeuse.",
-    ordre: 4
+    ordre: 4,
   },
   m: {
     id: 'm',
     nom: 'minéraux et métaux',
     description:
       'Domaine minier auquel appartiennent les substances minérales non énergétiques et non radioactives classées dans la catégorie des substances de mines, notemment certains métaux, gaz, sels et terres-rares.',
-    ordre: 1
+    ordre: 1,
   },
   r: {
     id: 'r',
     nom: 'éléments radioactifs',
     description: 'Domaine minier auquel appartiennent les substances minérales radioactives classés dans la catégorie des substances de mines.',
-    ordre: 6
+    ordre: 6,
   },
   s: {
     id: 's',
     nom: 'stockages souterrains',
     description:
       "Domaine auquel appartiennent les cavités souterraines naturelles ou artificielles ou formations souterraines naturelles présentant les qualités requises pour constituer des réservoirs étanches ou susceptibles d'être rendus tels, en vue du stockage de gaz naturel, d'hydrocarbures liquides, liquéfiés ou gazeux ou de produits chimiques à destination industrielle.",
-    ordre: 8
+    ordre: 8,
   },
   w: {
     id: 'w',
     nom: 'granulats marins',
     description: 'Domaine auquel appartiennent les substances de carrières situés dans les fonds marins du domaine public.',
-    ordre: 2
-  }
+    ordre: 2,
+  },
 }
 
 export const sortedDomaines = Object.values(Domaines).sort((a, b) => a.ordre - b.ordre)
diff --git a/packages/common/src/static/etapesStatuts.ts b/packages/common/src/static/etapesStatuts.ts
index a40a76fd3..8a4cbce92 100644
--- a/packages/common/src/static/etapesStatuts.ts
+++ b/packages/common/src/static/etapesStatuts.ts
@@ -18,7 +18,7 @@ export const ETAPES_STATUTS = {
   TERMINE: 'ter',
   EN_CONSTRUCTION: 'aco',
   NON_APPLICABLE: 'nul',
-  PROGRAMME: 'pro'
+  PROGRAMME: 'pro',
 } as const
 export type EtapeStatutId = (typeof ETAPES_STATUTS)[keyof typeof ETAPES_STATUTS]
 export type EtapeStatutKey = keyof typeof ETAPES_STATUTS
@@ -44,95 +44,95 @@ export const EtapesStatuts: { [key in EtapeStatutId]: EtapeStatut<key> } = {
     id: 'acc',
     nom: 'accepté',
     description: "La demande a fait l’objet d’une décision favorable de l'administration.",
-    couleur: 'success'
+    couleur: 'success',
   },
   aco: {
     id: 'aco',
     nom: 'en construction',
-    couleur: 'warning'
+    couleur: 'warning',
   },
   ajo: {
     id: 'ajo',
     nom: 'ajourné',
-    couleur: 'warning'
+    couleur: 'warning',
   },
   com: {
     id: 'com',
     nom: 'complet',
-    couleur: 'success'
+    couleur: 'success',
   },
   def: {
     id: 'def',
     nom: 'défavorable',
-    couleur: 'error'
+    couleur: 'error',
   },
   dep: {
     id: 'dep',
     nom: 'déposé',
-    couleur: 'success'
+    couleur: 'success',
   },
   dre: {
     id: 'dre',
     nom: 'défavorable avec réserves',
-    couleur: 'warning'
+    couleur: 'warning',
   },
   enc: {
     id: 'enc',
     nom: 'en cours',
-    couleur: 'success'
+    couleur: 'success',
   },
   exe: {
     id: 'exe',
     nom: 'exempté',
-    couleur: 'success'
+    couleur: 'success',
   },
   fai: {
     id: 'fai',
     nom: 'fait',
-    couleur: 'success'
+    couleur: 'success',
   },
   fav: {
     id: 'fav',
     nom: 'favorable',
-    couleur: 'success'
+    couleur: 'success',
   },
   fre: {
     id: 'fre',
     nom: 'favorable avec réserves',
-    couleur: 'warning'
+    couleur: 'warning',
   },
   inc: {
     id: 'inc',
     nom: 'incomplet',
-    couleur: 'error'
+    couleur: 'error',
   },
   nul: {
     id: 'nul',
     nom: 'non applicable',
-    couleur: 'neutral'
+    couleur: 'neutral',
   },
   pro: {
     id: 'pro',
     nom: 'programmé',
-    couleur: 'warning'
+    couleur: 'warning',
   },
   rej: {
     id: 'rej',
     nom: 'rejeté',
     description:
       "La demande a fait l’objet d’une décision défavorable de l'administration. Les textes d’applications du code minier prévoient que les décisions de rejet ne font pas l’objet d’une publication. En conséquence, les démarches qui passent au statut “rejeté” dans Camino sont dé-publiées et rendues inaccessibles aux tiers.\n",
-    couleur: 'error'
+    couleur: 'error',
   },
   req: {
     id: 'req',
     nom: 'requis',
-    couleur: 'neutral'
+    couleur: 'neutral',
   },
   ter: {
     id: 'ter',
     nom: 'terminé',
     description:
       'La démarche engagée unilatéralement par l’administration qui a fait l’objet d’une décision de l’administration. Celle-ci n’a pas fait l’objet d’une demande de la part du titulaire du titre ou de l’autorisation.\n',
-    couleur: 'neutral'
-  }
+    couleur: 'neutral',
+  },
 }
diff --git a/packages/common/src/static/etapesTypes.ts b/packages/common/src/static/etapesTypes.ts
index c66d1fb28..c2bb02595 100644
--- a/packages/common/src/static/etapesTypes.ts
+++ b/packages/common/src/static/etapesTypes.ts
@@ -166,7 +166,7 @@ export const ETAPES_TYPES = {
   recolement: 'wrt',
   saisineDeLautoriteEnvironnementale: 'wse',
   saisineDesServicesDeLEtat: 'wss',
-  transmissionDuProjetDePrescriptionsAuDemandeur: 'wtp'
+  transmissionDuProjetDePrescriptionsAuDemandeur: 'wtp',
 } as const
 
 export type EtapeTypeId = (typeof ETAPES_TYPES)[keyof typeof ETAPES_TYPES]
@@ -178,816 +178,817 @@ export const EtapesTypes: { [key in EtapeTypeId]: EtapeType<key> } = {
   aac: {
     id: 'aac',
     nom: 'avis de direction régionale des affaires culturelles',
-    description: 'Avis sur la situation archéologique du site en question.'
+    description: 'Avis sur la situation archéologique du site en question.',
   },
   aaf: {
     id: 'aaf',
     nom: "avis de la direction d'alimentation de l'agriculture et de la forêt",
-    description: 'Avis pour un titre minier.'
+    description: 'Avis pour un titre minier.',
   },
   abd: {
     id: 'abd',
     nom: 'abrogation de la décision',
-    description: 'Suppression de l’acte administratif pour l’avenir.'
+    description: 'Suppression de l’acte administratif pour l’avenir.',
   },
   abs: {
     id: 'abs',
     nom: 'avis DGTM service milieux naturels, biodiversité, sites et paysages (MNBST)',
-    description: "Avis du MNBST sur la notice d’impact pour les titres miniers et les autorisations d'exploitation."
+    description: "Avis du MNBST sur la notice d’impact pour les titres miniers et les autorisations d'exploitation.",
   },
   aca: {
     id: 'aca',
     nom: 'avis de la commission des autorisations de recherches minières (CARM)',
-    description: ''
+    description: '',
   },
   acd: {
     id: 'acd',
     nom: "avis du conseil départemental de l'environnement et des risques sanitaires et technologiques (Coderst)",
-    description: ''
+    description: '',
   },
   acg: {
     id: 'acg',
     nom: "avis du conseil général de l'économie (CGE)",
-    description: "Le conseil général de l'économie donne un avis sur la demande et sur son instruction au ministre chargé des mines. Cet avis n'est pas conforme."
+    description: "Le conseil général de l'économie donne un avis sur la demande et sur son instruction au ministre chargé des mines. Cet avis n'est pas conforme.",
   },
   acl: {
     id: 'acl',
     nom: "avis d'une collectivité locale",
-    description: "Avis de la collectivité locale dans le cadre de l’instruction d’un titre ou d'une demande relative à la police des mines."
+    description: "Avis de la collectivité locale dans le cadre de l’instruction d’un titre ou d'une demande relative à la police des mines.",
   },
   aco: {
     id: 'aco',
     nom: 'avenant à l’autorisation de recherche minière',
-    description: 'Document (courrier) validant une demande de renouvellement et actant la prolongation de la durée de l’autorisation.'
+    description: 'Document (courrier) validant une demande de renouvellement et actant la prolongation de la durée de l’autorisation.',
   },
   aec: {
     id: 'aec',
     nom: "avis de la direction des entreprises, de la concurrence, de la consommation, du travail et de l'emploi",
-    description: 'Avis facultatif sur la situation économique de l’entreprise.'
+    description: 'Avis facultatif sur la situation économique de l’entreprise.',
   },
   aep: {
     id: 'aep',
     nom: "avis d'un président d'EPCI",
-    description: "Avis du président d’EPCI dans le cadre de l’instruction d’un titre ou d'une demande relative à la police des mines."
+    description: "Avis du président d’EPCI dans le cadre de l’instruction d’un titre ou d'une demande relative à la police des mines.",
   },
   afp: {
     id: 'afp',
     nom: 'avis de la direction régionale des finances publiques',
-    description: 'Avis délivré sur la régularité fiscale de l’entreprise.'
+    description: 'Avis délivré sur la régularité fiscale de l’entreprise.',
   },
   agn: {
     id: 'agn',
     nom: 'avis de la gendarmerie nationale',
-    description: "Avis sur l'instruction d'un titre minier  ou d'une demande relative à la police des mines "
+    description: "Avis sur l'instruction d'un titre minier  ou d'une demande relative à la police des mines ",
   },
   aim: {
     id: 'aim',
     nom: "avis de l'Ifremer",
-    description: 'Avis de l’institut français de recherche pour l’exploitation en mer (IFREMER) dans le cadre d’autorisation en mer.'
+    description: 'Avis de l’institut français de recherche pour l’exploitation en mer (IFREMER) dans le cadre d’autorisation en mer.',
   },
   ama: {
     id: 'ama',
     nom: "avis d'un maire",
-    description: "Avis du maire, dans le cadre de l’instruction d’un titre ou d'une demande relative à la police des mines."
+    description: "Avis du maire, dans le cadre de l’instruction d’un titre ou d'une demande relative à la police des mines.",
   },
   ami: {
     id: 'ami',
     nom: 'avis du parc naturel marin',
-    description: 'Avis du parc naturel marin dans le cadre d’autorisation en mer.'
+    description: 'Avis du parc naturel marin dans le cadre d’autorisation en mer.',
   },
   and: {
     id: 'and',
     nom: 'décision du juge administratif',
-    description: 'Décision à un contentieux ou à un référé.'
+    description: 'Décision à un contentieux ou à un référé.',
   },
   ane: {
     id: 'ane',
     nom: 'avis de mise en concurrence au JOUE',
     description:
-      "Pour les titres miniers H (hydrocarbures), étape par laquelle le ministre chargé des mines publie l'avis de mise en concurrence au Journal officiel de l'Union européenne au frais du demandeur."
+      "Pour les titres miniers H (hydrocarbures), étape par laquelle le ministre chargé des mines publie l'avis de mise en concurrence au Journal officiel de l'Union européenne au frais du demandeur.",
   },
   anf: {
     id: 'anf',
     nom: 'avis de mise en concurrence au JORF',
     description:
-      "Pour les titres miniers H (hydrocarbures), étape par laquelle le ministre chargé des mines publie l'avis de mise en concurrence au Journal officiel de la République française au frais du demandeur. Pour les titres miniers M (métaux), étape par laquelle le préfet publie l'avis de mise en concurrence au Journal officiel de la République française au frais du demandeur."
+      "Pour les titres miniers H (hydrocarbures), étape par laquelle le ministre chargé des mines publie l'avis de mise en concurrence au Journal officiel de la République française au frais du demandeur. Pour les titres miniers M (métaux), étape par laquelle le préfet publie l'avis de mise en concurrence au Journal officiel de la République française au frais du demandeur.",
   },
   aof: {
     id: 'aof',
     nom: "avis de l'Office national des forêts",
-    description: 'Avis délivré par l’ONF dans le cadre de l’instruction d’un titre minier.\n'
+    description: 'Avis délivré par l’ONF dans le cadre de l’instruction d’un titre minier.\n',
   },
   aop: {
     id: 'aop',
     nom: "avis de l'Institut national de l'origine et de la qualité",
-    description: ''
+    description: '',
   },
   apd: {
     id: 'apd',
     nom: "Avis et rapport du directeur régional chargé de l'environnement, de l'aménagement et du logement",
     description:
-      "Étape par laquelle le DREAL ou le DEAL rend un avis sur la demande. Cet avis tient compte du rapport rédigé par le service instructeur de la DREAL ou de la DEAL qui s'appuie sur les avis émis par les chefs des services civils et de l'autorité militaire intéressés sur la demande."
+      "Étape par laquelle le DREAL ou le DEAL rend un avis sur la demande. Cet avis tient compte du rapport rédigé par le service instructeur de la DREAL ou de la DEAL qui s'appuie sur les avis émis par les chefs des services civils et de l'autorité militaire intéressés sur la demande.",
   },
   ape: {
     id: 'ape',
     nom: "avis du Conseil d'Etat",
     description:
-      "Le conseil d’État donne au premier ministre et au ministre chargé des mines un avis sur la demande et sur son instruction. Cet avis n'est pas conforme mais si la décision s'écarte de l'avis donné, elle doit être validée en conseil des ministres."
+      "Le conseil d’État donne au premier ministre et au ministre chargé des mines un avis sur la demande et sur son instruction. Cet avis n'est pas conforme mais si la décision s'écarte de l'avis donné, elle doit être validée en conseil des ministres.",
   },
   api: {
     id: 'api',
     nom: "avis de l'état major orpaillage et pêche illicite (EMOPI)",
-    description: 'Avis pour tous les titres miniers en Guyane.'
+    description: 'Avis pour tous les titres miniers en Guyane.',
   },
   apl: {
     id: 'apl',
     nom: "avis d'un service administratif local",
-    description: ''
+    description: '',
   },
   apm: {
     id: 'apm',
     nom: "avis de l'autorité militaire",
-    description: "Avis de l’autorité militaire, délivré dans le cadre de l’instruction d’un titre minier ou d'une demande relative à la police des mines."
+    description: "Avis de l’autorité militaire, délivré dans le cadre de l’instruction d’un titre minier ou d'une demande relative à la police des mines.",
   },
   apn: {
     id: 'apn',
     nom: 'avis du parc national',
-    description: "Avis du parc national dans le cadre de l’instruction d’un titre ou d'une demande relative à la police des mines."
+    description: "Avis du parc national dans le cadre de l’instruction d’un titre ou d'une demande relative à la police des mines.",
   },
   apo: {
     id: 'apo',
     nom: 'avis de la commission départementale des mines (CDM)',
-    description: 'L’avis de cette commission est consultatif et donne lieu à des votes des différents membres des collèges. Les représentants des administrations participent également.'
+    description: 'L’avis de cette commission est consultatif et donne lieu à des votes des différents membres des collèges. Les représentants des administrations participent également.',
   },
   app: {
     id: 'app',
     nom: 'avis du préfet',
     description:
-      'Le préfet émet un avis à l’issue de l’instruction du dossier, prenant en compte les avis délivrés par les services déconcentrés et éventuellement, l’avis de la commission des mines en Guyane.'
+      'Le préfet émet un avis à l’issue de l’instruction du dossier, prenant en compte les avis délivrés par les services déconcentrés et éventuellement, l’avis de la commission des mines en Guyane.',
   },
   apu: {
     id: 'apu',
     nom: "publication de l'avis de décision implicite",
     description:
-      'Le principe adopté par la réglementation actuelle veut que le silence de l’administration pendant un délai fixé vaut accord implicite. Toutefois il existe des décisions implicites de rejets pour certaines catégories de décisions. En particulier pour les titres miniers, l’octroi, la prolongation et la mutation. Les décisions de rejet ne sont pas publiées, les décisions d’acceptation doivent faire l’objet d’un avis au JORF confirmant que cette dernière est acquise. '
+      'Le principe adopté par la réglementation actuelle veut que le silence de l’administration pendant un délai fixé vaut accord implicite. Toutefois il existe des décisions implicites de rejets pour certaines catégories de décisions. En particulier pour les titres miniers, l’octroi, la prolongation et la mutation. Les décisions de rejet ne sont pas publiées, les décisions d’acceptation doivent faire l’objet d’un avis au JORF confirmant que cette dernière est acquise. ',
   },
   apw: {
     id: 'apw',
     nom: 'avis du préfet maritime',
-    description: 'Avis pour les titres miniers en mer.'
+    description: 'Avis pour les titres miniers en mer.',
   },
   ari: {
     id: 'ari',
     nom: 'avis de la réunion interservice',
-    description: ''
+    description: '',
   },
   ars: {
     id: 'ars',
     nom: "avis de l'agence régionale de santé",
-    description: "Avis concernant leur respect de la réglementation sanitaire dans le cadre de l'instruction d'un titre minier ou d'une demande relative à la police des mines."
+    description: "Avis concernant leur respect de la réglementation sanitaire dans le cadre de l'instruction d'un titre minier ou d'une demande relative à la police des mines.",
   },
   asl: {
     id: 'asl',
     nom: 'décision du propriétaire du sol',
-    description: ''
+    description: '',
   },
   ass: {
     id: 'ass',
     nom: 'avis de la caisse générale de sécurité sociale',
-    description: "Avis émis par le service de la sécurité sociale sur la situation sociale de l'entreprise."
+    description: "Avis émis par le service de la sécurité sociale sur la situation sociale de l'entreprise.",
   },
   auc: {
     id: 'auc',
     nom: 'avis DGTM service aménagement, urbanisme, construction, logement (AUCL)',
-    description: 'Avis de l’AUCL sur la notice d’impact pour les titres miniers et les autorisations d’exploitation. '
+    description: 'Avis de l’AUCL sur la notice d’impact pour les titres miniers et les autorisations d’exploitation. ',
   },
   cac: {
     id: 'cac',
     nom: 'consultation des administrations centrales',
-    description: ''
+    description: '',
   },
   ccs: { id: 'ccs', nom: 'consultation CLE du SAGE', description: `consultation de la Commission Locale de L'Eau du Schéma d'Aménagement et de Gestion des Eaux` },
   cim: {
     id: 'cim',
     nom: 'concertation interministérielle',
-    description: 'Concertation prévue dans le cadre des exploitations de granulats marins par les ministères concernés.'
+    description: 'Concertation prévue dans le cadre des exploitations de granulats marins par les ministères concernés.',
   },
   cod: {
     id: 'cod',
     nom: "saisine du conseil départemental de l'environnement et des risques sanitaires et technologiques  (Coderst)",
-    description: ''
+    description: '',
   },
   cps: {
     id: 'cps',
     nom: "confirmation de l'accord du propriétaire du sol",
-    description: ''
+    description: '',
   },
   css: { id: 'css', nom: 'classement sans suite', description: '' },
   dae: {
     id: 'dae',
     nom: 'décision de la mission autorité environnementale (examen au cas par cas du projet)',
-    description: ''
+    description: '',
   },
   dec: { id: 'dec', nom: 'déclaration', description: '' },
   def: {
     id: 'def',
     nom: "décision de l'Office national des forêts",
-    description: 'Décision de l’ONF dans le cadre des autorisations d’exploitation (AEX) et des autorisations de recherches minières (ARM) en tant que propriétaire du sol.'
+    description: 'Décision de l’ONF dans le cadre des autorisations d’exploitation (AEX) et des autorisations de recherches minières (ARM) en tant que propriétaire du sol.',
   },
   des: {
     id: 'des',
     nom: 'désistement du demandeur',
     description:
-      'Le demandeur signifie son souhait de ne pas donner suite à sa demande. Le désistement met fin à la démarche. Le demandeur ne peut pas se désister de sa demande après qu’une décision ait été rendue sur celle-ci.'
+      'Le demandeur signifie son souhait de ne pas donner suite à sa demande. Le désistement met fin à la démarche. Le demandeur ne peut pas se désister de sa demande après qu’une décision ait été rendue sur celle-ci.',
   },
   dex: {
     id: 'dex',
     nom: "décision de l'administration",
-    description: ''
+    description: '',
   },
   dim: {
     id: 'dim',
     nom: 'décision implicite',
     description:
-      'En dehors des décisions implicites, l’autorité administrative compétente (préfet, ministre chargé des mines ou gouvernement) peut prendre une décision express de refus ou d’acceptation par arrêté ou décret en conseil d’État (décision relative aux concessions minières).'
+      'En dehors des décisions implicites, l’autorité administrative compétente (préfet, ministre chargé des mines ou gouvernement) peut prendre une décision express de refus ou d’acceptation par arrêté ou décret en conseil d’État (décision relative aux concessions minières).',
   },
   dpu: {
     id: 'dpu',
     nom: 'publication de décision au JORF',
     description:
-      'En dehors des refus et décisions implicites de rejet, la décision de l’autorité compétente est publiée soit au recueil administratif de la préfecture soit au JORF pour les décisions du préfet et au JORF pour celle du ministre chargé des mines et du gouvernement. Ces publications pour les actes relatifs aux titres miniers sont publiés par extrait.'
+      'En dehors des refus et décisions implicites de rejet, la décision de l’autorité compétente est publiée soit au recueil administratif de la préfecture soit au JORF pour les décisions du préfet et au JORF pour celle du ministre chargé des mines et du gouvernement. Ces publications pour les actes relatifs aux titres miniers sont publiés par extrait.',
   },
   dup: {
     id: 'dup',
     nom: 'publication de décision administrative au JORF',
     description:
-      'A la fin d’une instruction, la décision administrative est publiée au JORF  si elle est positive. Pour les instructions relatives aux granulats marins, la décision administrative est publiée au JORF, qu’elle soit positive ou négative.'
+      'A la fin d’une instruction, la décision administrative est publiée au JORF  si elle est positive. Pour les instructions relatives aux granulats marins, la décision administrative est publiée au JORF, qu’elle soit positive ou négative.',
   },
   dux: {
     id: 'dux',
     nom: 'décision administrative',
-    description: 'Refus ou acceptation à l’issue d’une instruction.'
+    description: 'Refus ou acceptation à l’issue d’une instruction.',
   },
 
   ede: {
     id: 'ede',
     nom: 'expertise DREAL ou DGTM service eau',
-    description: 'Instruction de demande sur la réglementation ayant trait à l’eau par les services de la DGTM.\n'
+    description: 'Instruction de demande sur la réglementation ayant trait à l’eau par les services de la DGTM.\n',
   },
   edm: {
     id: 'edm',
     nom: 'expertise DGTM service prévention des risques et industries extractives (DATE)',
-    description: ''
+    description: '',
   },
   eof: {
     id: 'eof',
     nom: "expertise de l'Office national des forêts",
-    description: 'Expertise effectuée par l’ONF dans le cadre d’une demande d’autorisation de recherches minières (ARM).'
+    description: 'Expertise effectuée par l’ONF dans le cadre d’une demande d’autorisation de recherches minières (ARM).',
   },
   epc: {
     id: 'epc',
     nom: "clôture de l'enquête publique",
-    description: 'L’enquête publique dure un mois. Il est possible de la prolonger. '
+    description: 'L’enquête publique dure un mois. Il est possible de la prolonger. ',
   },
   epu: {
     id: 'epu',
     nom: "ouverture de l'enquête publique",
-    description: 'L’enquête publique requise pour l’octroi des concessions minières et des permis d’exploitations dans les départements d’outre-mer a lieu après constat de recevabilité du dossier.'
+    description: 'L’enquête publique requise pour l’octroi des concessions minières et des permis d’exploitations dans les départements d’outre-mer a lieu après constat de recevabilité du dossier.',
   },
   esb: {
     id: 'esb',
     nom: 'expertise DREAL ou DGTM service biodiversité',
-    description: 'Instruction de demande sur la réglementation ayant trait à la biodiversité par les services de la DGTM.'
+    description: 'Instruction de demande sur la réglementation ayant trait à la biodiversité par les services de la DGTM.',
   },
   ide: {
     id: 'ide',
     nom: 'initiation de la démarche de retrait',
-    description: 'Initiative de l’administration qui marque l’engagement d’une démarche de retrait.'
+    description: 'Initiative de l’administration qui marque l’engagement d’une démarche de retrait.',
   },
   ihi: {
     id: 'ihi',
     nom: 'informations historiques incomplètes',
-    description: 'Impossibilité de retracer la totalité de la vie administrative du titre.'
+    description: 'Impossibilité de retracer la totalité de la vie administrative du titre.',
   },
   mca: {
     id: 'mca',
     nom: 'demande de compléments (recevabilité de la demande)',
-    description: 'après une mcr'
+    description: 'après une mcr',
   },
   mcb: {
     id: 'mcb',
     nom: "demande de compléments (récépissé de déclaration loi sur l'eau)",
-    description: 'après une rde'
+    description: 'après une rde',
   },
   mcd: {
     id: 'mcd',
     nom: 'demande de compléments (décision de la mission autorité environnementale (examen au cas par cas du projet)',
-    description: 'après une dae'
+    description: 'après une dae',
   },
   mcm: {
     id: 'mcm',
     nom: 'demande de compléments (complétude de la demande)',
-    description: 'après une mcp'
+    description: 'après une mcp',
   },
   mco: {
     id: 'mco',
     nom: 'demande de compléments',
     description:
-      "Étape à l'initiative du service instructeur qui demande des compléments au demandeur et lui fixe un délai maximum pour les transmettre. Cette étape interrompt le décompte du délai dans lequel une décision doit être prise. Cette demande doit faire l'objet d'une lettre recommandée avec demande d'accusé de réception."
+      "Étape à l'initiative du service instructeur qui demande des compléments au demandeur et lui fixe un délai maximum pour les transmettre. Cette étape interrompt le décompte du délai dans lequel une décision doit être prise. Cette demande doit faire l'objet d'une lettre recommandée avec demande d'accusé de réception.",
   },
   mcp: {
     id: 'mcp',
     nom: 'complétude de la demande',
     description:
-      'Phase d’examen qui permet d’établir que toutes les pièces exigées par la réglementation sont bien fournies par le demandeur. Cet examen ne préjuge pas de la décision qui sera apportée par l’administration. '
+      'Phase d’examen qui permet d’établir que toutes les pièces exigées par la réglementation sont bien fournies par le demandeur. Cet examen ne préjuge pas de la décision qui sera apportée par l’administration. ',
   },
   mcr: {
     id: 'mcr',
     nom: 'recevabilité de la demande',
     description:
-      'Acte de l’administration établissant que l’examen de complétude a été mené à bien. Le constat de recevabilité donne lieu à un rapport de la part de l’administration qui constate que le dossier de demande est complet. '
+      'Acte de l’administration établissant que l’examen de complétude a été mené à bien. Le constat de recevabilité donne lieu à un rapport de la part de l’administration qui constate que le dossier de demande est complet. ',
   },
   mcs: {
     id: 'mcs',
     nom: 'demande de compléments (saisine de la CARM)',
-    description: 'après une sca'
+    description: 'après une sca',
   },
   mdp: {
     id: 'mdp',
     nom: 'dépôt de la demande',
     description:
-      "Le dépôt de la demande formalise la prise en charge de la demande par l'administration compétente. Cette étape fait l’objet d’un accusé de réception qui informe le demandeur des modalités d’instruction, du délai au-delà duquel une décision implicite d’accord ou de rejet sera formée et des voies de recours."
+      "Le dépôt de la demande formalise la prise en charge de la demande par l'administration compétente. Cette étape fait l’objet d’un accusé de réception qui informe le demandeur des modalités d’instruction, du délai au-delà duquel une décision implicite d’accord ou de rejet sera formée et des voies de recours.",
   },
   mec: {
     id: 'mec',
     nom: 'avis de demande concurrente',
-    description: 'Annonce à un demandeur qu’une demande concurrente à la sienne a été déposée.'
+    description: 'Annonce à un demandeur qu’une demande concurrente à la sienne a été déposée.',
   },
   men: {
     id: 'men',
     nom: 'enregistrement de la demande',
-    description: "L’enregistrement de la demande est une étape de gestion administrative interne du dossier qui se confond au dépôt de la demande lorsqu'elle est numérique et dématérialisée."
+    description: "L’enregistrement de la demande est une étape de gestion administrative interne du dossier qui se confond au dépôt de la demande lorsqu'elle est numérique et dématérialisée.",
   },
   meo: {
     id: 'meo',
     nom: "prise en charge par l'Office national des forêts",
-    description: ''
+    description: '',
   },
   mfr: {
     id: 'mfr',
     nom: 'demande',
     description:
-      'La demande caractérise le projet minier porté par le demandeur. Elle inclut les caractéristiques fondamentales du titre ou de l’autorisation dans une lettre appuyée par un dossier et les justifications des capacités techniques et financières. Les informations relevant du secret des affaires incluses à la demande peuvent ne pas être rendues publiques à la demande du porteur de projet.'
+      'La demande caractérise le projet minier porté par le demandeur. Elle inclut les caractéristiques fondamentales du titre ou de l’autorisation dans une lettre appuyée par un dossier et les justifications des capacités techniques et financières. Les informations relevant du secret des affaires incluses à la demande peuvent ne pas être rendues publiques à la demande du porteur de projet.',
   },
   mia: {
     id: 'mia',
     nom: "demande d'informations (avis de l'Office national des forêts)",
-    description: 'après une aof'
+    description: 'après une aof',
   },
   mie: {
     id: 'mie',
     nom: "demande d'informations (avis du DREAL, DEAL ou DGTM)",
-    description: 'après une adp'
+    description: 'après une adp',
   },
   mif: {
     id: 'mif',
     nom: "demande d'informations",
-    description: "Étape à l'initiative du service instructeur pour obtenir des informations qui ne sont pas de nature à interrompre le décompte du délai dans lequel une décision doit être prise. \n"
+    description: "Étape à l'initiative du service instructeur pour obtenir des informations qui ne sont pas de nature à interrompre le décompte du délai dans lequel une décision doit être prise. \n",
   },
   mim: {
     id: 'mim',
     nom: "demande d'informations (recevabilité de la demande)",
-    description: 'après une mcr'
+    description: 'après une mcr',
   },
   mio: {
     id: 'mio',
     nom: "demande d'informations (expertise de l'Office national des forêts)",
-    description: 'après une eof'
+    description: 'après une eof',
   },
   mna: {
     id: 'mna',
     nom: 'notification au demandeur (ajournement de la CARM)',
-    description: 'après une aca ajournée'
+    description: 'après une aca ajournée',
   },
   mnb: {
     id: 'mnb',
     nom: 'notification au demandeur (avis favorable de la CARM)',
-    description: 'après une aca favorable'
+    description: 'après une aca favorable',
   },
   mnc: {
     id: 'mnc',
     nom: 'notification au demandeur (classement sans suite)',
-    description: 'après une css'
+    description: 'après une css',
   },
   mnd: {
     id: 'mnd',
     nom: 'notification au demandeur (avis défavorable)',
-    description: 'après une aca défavorable'
+    description: 'après une aca défavorable',
   },
   mni: {
     id: 'mni',
     nom: 'notification au demandeur (initiation de la démarche de retrait)',
-    description: 'après une ide'
+    description: 'après une ide',
   },
   mno: {
     id: 'mno',
     nom: 'notification au demandeur',
-    description: 'Notification de la décision au demandeur.'
+    description: 'Notification de la décision au demandeur.',
   },
   mns: {
     id: 'mns',
     nom: 'notification au demandeur (signature de l’autorisation de recherche minière)',
-    description: 'après une sco'
+    description: 'après une sco',
   },
   mnv: {
     id: 'mnv',
     nom: "notification au demandeur (signature de l'avenant à l’autorisation de recherche minière)",
-    description: 'après une aco'
+    description: 'après une aco',
   },
   mod: {
     id: 'mod',
     nom: 'modification de la demande',
     description:
-      'Le porteur modifie les caractéristiques fondamentales de sa demande. Cette modification ne change pas le délai de décision implicite. Les possibilités sont limitées au gré de l’avancement de la démarche, en particulier après la mise en concurrence et après la participation du public.\n'
+      'Le porteur modifie les caractéristiques fondamentales de sa demande. Cette modification ne change pas le délai de décision implicite. Les possibilités sont limitées au gré de l’avancement de la démarche, en particulier après la mise en concurrence et après la participation du public.\n',
   },
   mom: {
     id: 'mom',
     nom: 'modification de la demande (décision de la mission autorité environnementale (examen au cas par cas du projet)',
-    description: 'après une dae'
+    description: 'après une dae',
   },
   ncl: {
     id: 'ncl',
     nom: 'notification des collectivités locales',
-    description: 'Notification de la décision aux collectivités locales.'
+    description: 'Notification de la décision aux collectivités locales.',
   },
   nis: {
     id: 'nis',
     nom: 'note interne signalée',
-    description: "Note confidentielle qui permet de faire connaître au sein de l'administration un certain nombre d'informations importantes. \n"
+    description: "Note confidentielle qui permet de faire connaître au sein de l'administration un certain nombre d'informations importantes. \n",
   },
   npp: {
     id: 'npp',
     nom: 'notification au préfet',
-    description: 'Note au préfet demandant de notifier la décision à l’intéressé et de prendre les mesures de publicité nécessaires.'
+    description: 'Note au préfet demandant de notifier la décision à l’intéressé et de prendre les mesures de publicité nécessaires.',
   },
   pfc: {
     id: 'pfc',
     nom: 'paiement des frais de dossier complémentaires',
-    description: 'Supplément de frais de dossier concernant uniquement les ARM mécanisées car elles nécessitent une expertise complémentaire (état des lieux par imagerie).\n'
+    description: 'Supplément de frais de dossier concernant uniquement les ARM mécanisées car elles nécessitent une expertise complémentaire (état des lieux par imagerie).\n',
   },
   pfd: {
     id: 'pfd',
     nom: 'paiement des frais de dossier',
-    description: ''
+    description: '',
   },
   pnr: {
     id: 'pnr',
     nom: 'avis du parc naturel régional',
-    description: "Avis du parc naturel régional dans le cadre de l’instruction d’un titre ou d'une demande relative à la police des mines."
+    description: "Avis du parc naturel régional dans le cadre de l’instruction d’un titre ou d'une demande relative à la police des mines.",
   },
   ppc: {
     id: 'ppc',
     nom: 'clôture de la participation du public',
-    description: 'La durée de la participation du public doit être au moins égale 15 jours. L’administration doit tenir compte pour sa décision des avis recueillis lors de la participation du public.'
+    description:
+      'La durée de la participation du public doit être au moins égale 15 jours. L’administration doit tenir compte pour sa décision des avis recueillis lors de la participation du public.',
   },
   ppu: {
     id: 'ppu',
     nom: 'ouverture de la participation du public',
     description:
-      'La participation du public est obligatoire pour l’octroi des permis exclusifs de recherches (PER) et les prolongations de concessions minières. La législation ne prévoit pas à quel moment elle intervient. Il a été décidé pour les titres miniers qu’elle aurait lieu dès la déclaration de recevabilité du dossier. '
+      'La participation du public est obligatoire pour l’octroi des permis exclusifs de recherches (PER) et les prolongations de concessions minières. La législation ne prévoit pas à quel moment elle intervient. Il a été décidé pour les titres miniers qu’elle aurait lieu dès la déclaration de recevabilité du dossier. ',
   },
   pqr: {
     id: 'pqr',
     nom: 'publication dans un journal local ou national',
-    description: ''
+    description: '',
   },
   rca: {
     id: 'rca',
     nom: 'réception de compléments (recevabilité de la demande)',
-    description: 'après une mcr'
+    description: 'après une mcr',
   },
   rcb: {
     id: 'rcb',
     nom: "réception de compléments (récépissé de déclaration loi sur l'eau)",
-    description: 'après une rde'
+    description: 'après une rde',
   },
   rcd: {
     id: 'rcd',
     nom: 'réception de compléments (décision de la mission autorité environnementale (examen au cas par cas du projet))',
-    description: 'après une dae'
+    description: 'après une dae',
   },
   rcg: {
     id: 'rcg',
     nom: "rapport du conseil général de l'économie (CGE)",
-    description: ''
+    description: '',
   },
   rcm: {
     id: 'rcm',
     nom: 'réception de compléments (complétude de la demande)',
-    description: 'après une mcp'
+    description: 'après une mcp',
   },
   rco: {
     id: 'rco',
     nom: 'réception de compléments',
     description:
-      'Étape par laquelle le service instructeur accuse réception des compléments transmis par le demandeur. Cette étape permet la reprise du décompte du délai dans lequel une décision doit être prise.'
+      'Étape par laquelle le service instructeur accuse réception des compléments transmis par le demandeur. Cette étape permet la reprise du décompte du délai dans lequel une décision doit être prise.',
   },
   rcs: {
     id: 'rcs',
     nom: 'réception de compléments (saisine de la CARM)',
-    description: 'après une sca'
+    description: 'après une sca',
   },
   rde: {
     id: 'rde',
     nom: "récépissé de déclaration loi sur l'eau",
-    description: 'Document nécessaire à l’utilisation de l’eau dans le cas d’une autorisation de recherches minières (ARM).'
+    description: 'Document nécessaire à l’utilisation de l’eau dans le cas d’une autorisation de recherches minières (ARM).',
   },
   ria: {
     id: 'ria',
     nom: "réception d'information (avis de l'Office national des forêts)",
-    description: 'après une aof'
+    description: 'après une aof',
   },
   rie: {
     id: 'rie',
     nom: "réception d'information (avis du DREAL, DEAL ou DGTM)",
-    description: 'après une adp'
+    description: 'après une adp',
   },
   rif: {
     id: 'rif',
     nom: "réception d'information",
-    description: "Étape par laquelle le service instructeur reçoit l'information demandée."
+    description: "Étape par laquelle le service instructeur reçoit l'information demandée.",
   },
   rim: {
     id: 'rim',
     nom: "réception d'information (recevabilité de la demande)",
-    description: 'après une mcr'
+    description: 'après une mcr',
   },
   rio: {
     id: 'rio',
     nom: "réception d'information (expertise de l'Office national des forêts)",
-    description: 'après une eof'
+    description: 'après une eof',
   },
   rpe: {
     id: 'rpe',
     nom: 'rapport du Conseil d’État',
-    description: ''
+    description: '',
   },
   rpu: {
     id: 'rpu',
     nom: 'publication de décision au recueil des actes administratifs',
-    description: 'Publication, par le préfet, au recueil des actes administratifs.'
+    description: 'Publication, par le préfet, au recueil des actes administratifs.',
   },
   rtd: {
     id: 'rtd',
     nom: 'retrait de la décision',
-    description: 'Sanction administrative consistant à retirer le titre minier dans les cas énumérés dans le code minier.'
+    description: 'Sanction administrative consistant à retirer le titre minier dans les cas énumérés dans le code minier.',
   },
   sas: {
     id: 'sas',
     nom: "saisine de l'autorité signataire",
-    description: ''
+    description: '',
   },
   sca: {
     id: 'sca',
     nom: 'saisine de la commission des autorisations de recherches minières (CARM)',
-    description: ''
+    description: '',
   },
   scg: {
     id: 'scg',
     nom: "saisine du conseil général de l'économie (CGE)",
     description:
-      "Étape par laquelle le service instructeur transmet la demande, les différents avis et une proposition de décision du ministre chargé des mines au conseil général de l'économie pour avis."
+      "Étape par laquelle le service instructeur transmet la demande, les différents avis et une proposition de décision du ministre chargé des mines au conseil général de l'économie pour avis.",
   },
   scl: {
     id: 'scl',
     nom: 'saisine des collectivités locales',
-    description: 'Consultation pour avis, des collectivités locales dans le cadre de l’instruction d’un titre ou d’une autorisation.'
+    description: 'Consultation pour avis, des collectivités locales dans le cadre de l’instruction d’un titre ou d’une autorisation.',
   },
   sco: {
     id: 'sco',
     nom: 'signature de l’autorisation de recherche minière',
     description:
-      'Signature de l’autorisation par l’ONF seulement dans le cas d’ARM manuelles ou par les deux parties (ONF et demandeur) dans le cas d’ARM mécanisées pour acceptation de l’état des lieux par le demandeur et valant début de validité de celle-ci.'
+      'Signature de l’autorisation par l’ONF seulement dans le cas d’ARM manuelles ou par les deux parties (ONF et demandeur) dans le cas d’ARM mécanisées pour acceptation de l’état des lieux par le demandeur et valant début de validité de celle-ci.',
   },
   spe: {
     id: 'spe',
     nom: "saisine du Conseil d'Etat",
-    description: 'Le service instructeur transmet la demande, les différents avis et une proposition de décision du premier ministre et du ministre chargé des mines au conseil d’État pour avis.'
+    description: 'Le service instructeur transmet la demande, les différents avis et une proposition de décision du premier ministre et du ministre chargé des mines au conseil d’État pour avis.',
   },
   spo: {
     id: 'spo',
     nom: 'saisine de la commission départementale des mines (CDM)',
     description:
-      'Dans les seuls départements d’Outre-mer (Guadeloupe, Guyane, Réunion, Martinique et Mayotte) une commission dédiée à l’examen des demandes minières se réunit comportant les différentes parties prenantes. Cette commission donne un avis consultatif sur le rapport des services déconcentrés. Pour l’instant, cette commission se réunit uniquement en Guyane.'
+      'Dans les seuls départements d’Outre-mer (Guadeloupe, Guyane, Réunion, Martinique et Mayotte) une commission dédiée à l’examen des demandes minières se réunit comportant les différentes parties prenantes. Cette commission donne un avis consultatif sur le rapport des services déconcentrés. Pour l’instant, cette commission se réunit uniquement en Guyane.',
   },
   spp: {
     id: 'spp',
     nom: 'saisine du préfet',
-    description: 'L’administration centrale transmet la demande au préfet pour qu’il engage son instruction locale.\n'
+    description: 'L’administration centrale transmet la demande au préfet pour qu’il engage son instruction locale.\n',
   },
   ssr: {
     id: 'ssr',
     nom: 'saisine des services',
     description:
-      'Demande de consultation dans le cadre d’un titre minier des chefs de service civils et de l’autorité militaire. Les intéressés ont un mois pour répondre. Au-delà de ce délai,  le silence vaut accord.\n'
+      'Demande de consultation dans le cadre d’un titre minier des chefs de service civils et de l’autorité militaire. Les intéressés ont un mois pour répondre. Au-delà de ce délai,  le silence vaut accord.\n',
   },
   vfc: {
     id: 'vfc',
     nom: 'validation du paiement des frais de dossier complémentaires',
-    description: 'Validation par la direction générale des territoires et des mines (DGTM).'
+    description: 'Validation par la direction générale des territoires et des mines (DGTM).',
   },
   vfd: {
     id: 'vfd',
     nom: 'validation du paiement des frais de dossier',
-    description: 'Acte attestant que le pétitionnaire d’une autorisation de recherches minières (ARM) a acquitté ses frais de dossier.\n'
+    description: 'Acte attestant que le pétitionnaire d’une autorisation de recherches minières (ARM) a acquitté ses frais de dossier.\n',
   },
   wab: { id: 'wab', nom: 'Abandon de la demande', description: '' },
   wac: {
     id: 'wac',
     nom: 'avis de direction régionale des affaires culturelles - DRAC',
-    description: ''
+    description: '',
   },
   wad: {
     id: 'wad',
     nom: 'avis de la direction départementale des territoires et de la mer - DDT(M)',
-    description: ''
+    description: '',
   },
   wae: {
     id: 'wae',
     nom: "avis de l'autorité environnementale",
-    description: ''
+    description: '',
   },
   wai: {
     id: 'wai',
     nom: 'avis des autres instances',
-    description: ''
+    description: '',
   },
   wal: {
     id: 'wal',
     nom: "avis d'un service administratif local",
-    description: ''
+    description: '',
   },
   wam: {
     id: 'wam',
     nom: "avis de l'autorité militaire",
-    description: ''
+    description: '',
   },
   wao: {
     id: 'wao',
     nom: "arrêté d'ouverture des travaux miniers",
-    description: "Arrêté d'ouverture des travaux miniers"
+    description: "Arrêté d'ouverture des travaux miniers",
   },
   wap: { id: 'wap', nom: 'avis du préfet maritime', description: '' },
   war: { id: 'war', nom: 'avis de réception', description: '' },
   was: {
     id: 'was',
     nom: "avis de l'agence régionale de santé - ARS",
-    description: ''
+    description: '',
   },
   wat: {
     id: 'wat',
     nom: "avis du conseil départemental de l'environnement et des risques sanitaires et technologiques (Coderst)",
-    description: ''
+    description: '',
   },
   wau: {
     id: 'wau',
     nom: 'Avis du demandeur sur les prescriptions proposées',
-    description: ''
+    description: '',
   },
   wce: {
     id: 'wce',
     nom: "clôture de l'enquête publique",
-    description: ''
+    description: '',
   },
   wco: {
     id: 'wco',
     nom: 'Réception de compléments',
-    description: ''
+    description: '',
   },
   wda: {
     id: 'wda',
     nom: 'Donné acte de la déclaration (DOTM)',
-    description: ''
+    description: '',
   },
   wdc: {
     id: 'wdc',
     nom: 'demande de compléments (AOTM ou DOTM)',
-    description: ''
+    description: '',
   },
   wdd: { id: 'wdd', nom: 'dépot de la demande', description: '' },
   wde: {
     id: 'wde',
     nom: 'demande de compléments (DADT)',
-    description: ''
+    description: '',
   },
   wdm: {
     id: 'wdm',
     nom: "décision de l'administration",
-    description: ''
+    description: '',
   },
   wdt: {
     id: 'wdt',
     nom: 'avis de la DDT(M)',
-    description: 'avis de la Direction Départementale des Territoires et de la Mer'
+    description: 'avis de la Direction Départementale des Territoires et de la Mer',
   },
   wfa: {
     id: 'wfa',
     nom: "Demande d'autorisation d'ouverture de travaux miniers (AOTM)",
-    description: ''
+    description: '',
   },
   wfd: {
     id: 'wfd',
     nom: "Déclaration d'arrêt définitif de travaux (DADT)",
-    description: ''
+    description: '',
   },
   wfo: {
     id: 'wfo',
     nom: "Déclaration d'ouverture de travaux miniers (DOTM)",
-    description: ''
+    description: '',
   },
   wfr: {
     id: 'wfr',
     nom: "Demande d'autorisation d'ouverture de travaux miniers (DAOTM)",
-    description: ''
+    description: '',
   },
   wmm: {
     id: 'wmm',
     nom: "memoire en réponse de l'exploitant (par rapport à l'avis de l'AE)",
-    description: ''
+    description: '',
   },
   wmr: {
     id: 'wmr',
     nom: "mémoire en réponse de l'exploitant",
-    description: "mémoire en réponse de l'exploitant à l'avis d'autorité environnementale."
+    description: "mémoire en réponse de l'exploitant à l'avis d'autorité environnementale.",
   },
   wmt: {
     id: 'wmt',
     nom: 'memoire de fin de travaux',
-    description: ''
+    description: '',
   },
   woe: {
     id: 'woe',
     nom: "ouverture de l'enquête publique",
-    description: ''
+    description: '',
   },
   wpa: {
     id: 'wpa',
     nom: 'publication de décision au recueil des actes administratifs',
-    description: ''
+    description: '',
   },
   wpb: {
     id: 'wpb',
     nom: 'porter-à-connaissance',
-    description: 'Porter-à-connaissance'
+    description: 'Porter-à-connaissance',
   },
   wpc: {
     id: 'wpc',
     nom: 'Arrêté de prescriptions complémentaires',
-    description: ''
+    description: '',
   },
   wpo: {
     id: 'wpo',
     nom: 'Arrêté de second donner acte',
-    description: ''
+    description: '',
   },
   wpp: {
     id: 'wpp',
     nom: 'Arrêté préfectoral de premier donner acte (DADT)',
-    description: ''
+    description: '',
   },
   wps: {
     id: 'wps',
     nom: 'Arrêté préfectoral de sursis à statuer',
-    description: ''
+    description: '',
   },
   wrc: {
     id: 'wrc',
     nom: 'reception de compléments',
-    description: ''
+    description: '',
   },
   wrd: { id: 'wrd', nom: 'Rapport de la Dreal', description: '' },
   wre: { id: 'wre', nom: 'Recevabilité', description: '' },
   wrl: {
     id: 'wrl',
     nom: "Avis et rapport du directeur régional chargé de l'environnement, de l'aménagement et du logement",
-    description: ''
+    description: '',
   },
   wrt: { id: 'wrt', nom: 'récolement', description: '' },
   wse: {
     id: 'wse',
     nom: "saisine de l'autorité environnementale",
-    description: ''
+    description: '',
   },
   wss: {
     id: 'wss',
     nom: "saisine des services de l'Etat",
-    description: ''
+    description: '',
   },
   wtp: {
     id: 'wtp',
     nom: 'Transmission du projet de prescriptions au demandeur',
-    description: ''
-  }
+    description: '',
+  },
 }
 
 export const isEtapeTypeId = (etapeTypeId: string): etapeTypeId is EtapeTypeId => {
diff --git a/packages/common/src/static/etapesTypesEtapesStatuts.ts b/packages/common/src/static/etapesTypesEtapesStatuts.ts
index 65b4064bf..17736135f 100644
--- a/packages/common/src/static/etapesTypesEtapesStatuts.ts
+++ b/packages/common/src/static/etapesTypesEtapesStatuts.ts
@@ -12,242 +12,242 @@ export const EtapesTypesEtapesStatuts = {
     DEFAVORABLE: { etapeTypeId: 'aac', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'aac', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'aac', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'aac', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'aac', etapeStatutId: 'fre', ordre: 2 },
   },
   avisDeLaDirectionDalimentationDeLagricultureEtDeLaForet: {
     DEFAVORABLE: { etapeTypeId: 'aaf', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'aaf', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'aaf', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'aaf', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'aaf', etapeStatutId: 'fre', ordre: 2 },
   },
   abrogationDeLaDecision: { FAIT: { etapeTypeId: 'abd', etapeStatutId: 'fai', ordre: 1 } },
   avisDGTMServiceMilieuxNaturelsBiodiversiteSitesEtPaysages_MNBST_: {
     DEFAVORABLE: { etapeTypeId: 'abs', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'abs', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'abs', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'abs', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'abs', etapeStatutId: 'fre', ordre: 2 },
   },
   avisDeLaCommissionDesAutorisationsDeRecherchesMinieres_CARM_: {
     AJOURNE: { etapeTypeId: 'aca', etapeStatutId: 'ajo', ordre: 3 },
     DEFAVORABLE: { etapeTypeId: 'aca', etapeStatutId: 'def', ordre: 2 },
-    FAVORABLE: { etapeTypeId: 'aca', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'aca', etapeStatutId: 'fav', ordre: 1 },
   },
   avisDuConseilDepartementalDeLenvironnementEtDesRisquesSanitairesEtTechnologiques_Coderst_: {
     DEFAVORABLE: { etapeTypeId: 'acd', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'acd', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'acd', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'acd', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'acd', etapeStatutId: 'fre', ordre: 2 },
   },
   avisDuConseilGeneralDeLeconomie_CGE_: {
     DEFAVORABLE: { etapeTypeId: 'acg', etapeStatutId: 'def', ordre: 2 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'acg', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'acg', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'acg', etapeStatutId: 'fre', ordre: 3 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'acg', etapeStatutId: 'fre', ordre: 3 },
   },
   avisDuneCollectiviteLocale: {
     DEFAVORABLE: { etapeTypeId: 'acl', etapeStatutId: 'def', ordre: 2 },
-    FAVORABLE: { etapeTypeId: 'acl', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'acl', etapeStatutId: 'fav', ordre: 1 },
   },
   avenantALautorisationDeRechercheMiniere: { FAIT: { etapeTypeId: 'aco', etapeStatutId: 'fai', ordre: 1 } },
   avisDeLaDirectionDesEntreprisesDeLaConcurrenceDeLaConsommationDuTravailEtDeLemploi: {
     DEFAVORABLE: { etapeTypeId: 'aec', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'aec', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'aec', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'aec', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'aec', etapeStatutId: 'fre', ordre: 2 },
   },
   avisDunPresidentDEPCI: {
     DEFAVORABLE: { etapeTypeId: 'aep', etapeStatutId: 'def', ordre: 2 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'aep', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'aep', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'aep', etapeStatutId: 'fre', ordre: 3 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'aep', etapeStatutId: 'fre', ordre: 3 },
   },
   avisDeLaDirectionRegionaleDesFinancesPubliques: {
     DEFAVORABLE: { etapeTypeId: 'afp', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'afp', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'afp', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'afp', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'afp', etapeStatutId: 'fre', ordre: 2 },
   },
   avisDeLaGendarmerieNationale: {
     DEFAVORABLE: { etapeTypeId: 'agn', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'agn', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'agn', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'agn', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'agn', etapeStatutId: 'fre', ordre: 2 },
   },
   avisDeLIfremer: {
     DEFAVORABLE: { etapeTypeId: 'aim', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'aim', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'aim', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'aim', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'aim', etapeStatutId: 'fre', ordre: 2 },
   },
   avisDunMaire: {
     DEFAVORABLE: { etapeTypeId: 'ama', etapeStatutId: 'def', ordre: 2 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'ama', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'ama', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'ama', etapeStatutId: 'fre', ordre: 3 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'ama', etapeStatutId: 'fre', ordre: 3 },
   },
   avisDuParcNaturelMarin: {
     DEFAVORABLE: { etapeTypeId: 'ami', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'ami', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'ami', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'ami', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'ami', etapeStatutId: 'fre', ordre: 2 },
   },
   decisionDuJugeAdministratif: {
     ACCEPTE: { etapeTypeId: 'and', etapeStatutId: 'acc', ordre: 2 },
     FAIT: { etapeTypeId: 'and', etapeStatutId: 'fai', ordre: 1 },
-    REJETE: { etapeTypeId: 'and', etapeStatutId: 'rej', ordre: 3 }
+    REJETE: { etapeTypeId: 'and', etapeStatutId: 'rej', ordre: 3 },
   },
   avisDeMiseEnConcurrenceAuJOUE: {
     EN_COURS: { etapeTypeId: 'ane', etapeStatutId: 'enc', ordre: 2 },
     FAIT: { etapeTypeId: 'ane', etapeStatutId: 'fai', ordre: 4 },
     PROGRAMME: { etapeTypeId: 'ane', etapeStatutId: 'pro', ordre: 1 },
-    TERMINE: { etapeTypeId: 'ane', etapeStatutId: 'ter', ordre: 3 }
+    TERMINE: { etapeTypeId: 'ane', etapeStatutId: 'ter', ordre: 3 },
   },
   avisDeMiseEnConcurrenceAuJORF: {
     EN_COURS: { etapeTypeId: 'anf', etapeStatutId: 'enc', ordre: 2 },
     FAIT: { etapeTypeId: 'anf', etapeStatutId: 'fai', ordre: 4 },
     PROGRAMME: { etapeTypeId: 'anf', etapeStatutId: 'pro', ordre: 1 },
-    TERMINE: { etapeTypeId: 'anf', etapeStatutId: 'ter', ordre: 3 }
+    TERMINE: { etapeTypeId: 'anf', etapeStatutId: 'ter', ordre: 3 },
   },
   avisDeLOfficeNationalDesForets: {
     DEFAVORABLE: { etapeTypeId: 'aof', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'aof', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'aof', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'aof', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'aof', etapeStatutId: 'fre', ordre: 2 },
   },
   avisDeLInstitutNationalDeLorigineEtDeLaQualite: {
     DEFAVORABLE: { etapeTypeId: 'aop', etapeStatutId: 'def', ordre: 2 },
-    FAVORABLE: { etapeTypeId: 'aop', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'aop', etapeStatutId: 'fav', ordre: 1 },
   },
   avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement: {
     DEFAVORABLE: { etapeTypeId: 'apd', etapeStatutId: 'def', ordre: 2 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'apd', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'apd', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'apd', etapeStatutId: 'fre', ordre: 3 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'apd', etapeStatutId: 'fre', ordre: 3 },
   },
   avisDuConseilDEtat: {
     DEFAVORABLE: { etapeTypeId: 'ape', etapeStatutId: 'def', ordre: 2 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'ape', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'ape', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'ape', etapeStatutId: 'fre', ordre: 3 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'ape', etapeStatutId: 'fre', ordre: 3 },
   },
   avisDeLetatMajorOrpaillageEtPecheIllicite_EMOPI_: {
     DEFAVORABLE: { etapeTypeId: 'api', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'api', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'api', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'api', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'api', etapeStatutId: 'fre', ordre: 2 },
   },
   avisDunServiceAdministratifLocal: {
     DEFAVORABLE: { etapeTypeId: 'apl', etapeStatutId: 'def', ordre: 2 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'apl', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'apl', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'apl', etapeStatutId: 'fre', ordre: 3 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'apl', etapeStatutId: 'fre', ordre: 3 },
   },
   avisDeLautoriteMilitaire: {
     DEFAVORABLE: { etapeTypeId: 'apm', etapeStatutId: 'def', ordre: 2 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'apm', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'apm', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'apm', etapeStatutId: 'fre', ordre: 3 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'apm', etapeStatutId: 'fre', ordre: 3 },
   },
   avisDuParcNational: {
     DEFAVORABLE: { etapeTypeId: 'apn', etapeStatutId: 'def', ordre: 2 },
-    FAVORABLE: { etapeTypeId: 'apn', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'apn', etapeStatutId: 'fav', ordre: 1 },
   },
   avisDeLaCommissionDepartementaleDesMines_CDM_: {
     AJOURNE: { etapeTypeId: 'apo', etapeStatutId: 'ajo', ordre: 1 },
     DEFAVORABLE: { etapeTypeId: 'apo', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'apo', etapeStatutId: 'dre', ordre: 5 },
     FAVORABLE: { etapeTypeId: 'apo', etapeStatutId: 'fav', ordre: 2 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'apo', etapeStatutId: 'fre', ordre: 4 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'apo', etapeStatutId: 'fre', ordre: 4 },
   },
   avisDuPrefet: {
     DEFAVORABLE: { etapeTypeId: 'app', etapeStatutId: 'def', ordre: 2 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'app', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'app', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'app', etapeStatutId: 'fre', ordre: 3 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'app', etapeStatutId: 'fre', ordre: 3 },
   },
   publicationDeLavisDeDecisionImplicite: {
     ACCEPTE: { etapeTypeId: 'apu', etapeStatutId: 'acc', ordre: 2 },
     FAIT: { etapeTypeId: 'apu', etapeStatutId: 'fai', ordre: 1 },
-    REJETE: { etapeTypeId: 'apu', etapeStatutId: 'rej', ordre: 3 }
+    REJETE: { etapeTypeId: 'apu', etapeStatutId: 'rej', ordre: 3 },
   },
   avisDuPrefetMaritime: {
     DEFAVORABLE: { etapeTypeId: 'apw', etapeStatutId: 'def', ordre: 2 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'apw', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'apw', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'apw', etapeStatutId: 'fre', ordre: 3 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'apw', etapeStatutId: 'fre', ordre: 3 },
   },
   avisDeLaReunionInterservice: {
     DEFAVORABLE: { etapeTypeId: 'ari', etapeStatutId: 'def', ordre: 2 },
-    FAVORABLE: { etapeTypeId: 'ari', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'ari', etapeStatutId: 'fav', ordre: 1 },
   },
   avisDeLagenceRegionaleDeSante: {
     DEFAVORABLE: { etapeTypeId: 'ars', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'ars', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'ars', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'ars', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'ars', etapeStatutId: 'fre', ordre: 2 },
   },
   decisionDuProprietaireDuSol: {
     DEFAVORABLE: { etapeTypeId: 'asl', etapeStatutId: 'def', ordre: 3 },
     FAVORABLE: { etapeTypeId: 'asl', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'asl', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'asl', etapeStatutId: 'fre', ordre: 2 },
   },
   avisDeLaCaisseGeneraleDeSecuriteSociale: {
     DEFAVORABLE: { etapeTypeId: 'ass', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'ass', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'ass', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'ass', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'ass', etapeStatutId: 'fre', ordre: 2 },
   },
   avisDGTMServiceAmenagementUrbanismeConstructionLogement_AUCL_: {
     DEFAVORABLE: { etapeTypeId: 'auc', etapeStatutId: 'def', ordre: 3 },
     DEFAVORABLE_AVEC_RESERVES: { etapeTypeId: 'auc', etapeStatutId: 'dre', ordre: 4 },
     FAVORABLE: { etapeTypeId: 'auc', etapeStatutId: 'fav', ordre: 1 },
-    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'auc', etapeStatutId: 'fre', ordre: 2 }
+    FAVORABLE_AVEC_RESERVE: { etapeTypeId: 'auc', etapeStatutId: 'fre', ordre: 2 },
   },
   consultationDesAdministrationsCentrales: { FAIT: { etapeTypeId: 'cac', etapeStatutId: 'fai', ordre: 1 } },
   concertationInterministerielle: { FAIT: { etapeTypeId: 'cim', etapeStatutId: 'fai', ordre: 1 } },
   saisineDuConseilDepartementalDeLenvironnementEtDesRisquesSanitairesEtTechnologiques_Coderst_: { FAIT: { etapeTypeId: 'cod', etapeStatutId: 'fai', ordre: 1 } },
   confirmationDeLaccordDuProprietaireDuSol: {
     DEFAVORABLE: { etapeTypeId: 'cps', etapeStatutId: 'def', ordre: 2 },
-    FAVORABLE: { etapeTypeId: 'cps', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'cps', etapeStatutId: 'fav', ordre: 1 },
   },
   classementSansSuite: { FAIT: { etapeTypeId: 'css', etapeStatutId: 'fai', ordre: 1 } },
   decisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_: {
     EXEMPTE: { etapeTypeId: 'dae', etapeStatutId: 'exe', ordre: 1 },
-    REQUIS: { etapeTypeId: 'dae', etapeStatutId: 'req', ordre: 2 }
+    REQUIS: { etapeTypeId: 'dae', etapeStatutId: 'req', ordre: 2 },
   },
   declaration: { FAIT: { etapeTypeId: 'dec', etapeStatutId: 'fai', ordre: 1 } },
   decisionDeLOfficeNationalDesForets: {
     ACCEPTE: { etapeTypeId: 'def', etapeStatutId: 'acc', ordre: 1 },
-    REJETE: { etapeTypeId: 'def', etapeStatutId: 'rej', ordre: 2 }
+    REJETE: { etapeTypeId: 'def', etapeStatutId: 'rej', ordre: 2 },
   },
   desistementDuDemandeur: { FAIT: { etapeTypeId: 'des', etapeStatutId: 'fai', ordre: 1 } },
   decisionDeLadministration: {
     ACCEPTE: { etapeTypeId: 'dex', etapeStatutId: 'acc', ordre: 1 },
-    REJETE: { etapeTypeId: 'dex', etapeStatutId: 'rej', ordre: 2 }
+    REJETE: { etapeTypeId: 'dex', etapeStatutId: 'rej', ordre: 2 },
   },
   decisionImplicite: {
     ACCEPTE: { etapeTypeId: 'dim', etapeStatutId: 'acc', ordre: 1 },
-    REJETE: { etapeTypeId: 'dim', etapeStatutId: 'rej', ordre: 2 }
+    REJETE: { etapeTypeId: 'dim', etapeStatutId: 'rej', ordre: 2 },
   },
   publicationDeDecisionAuJORF: {
     ACCEPTE: { etapeTypeId: 'dpu', etapeStatutId: 'acc', ordre: 1 },
-    REJETE: { etapeTypeId: 'dpu', etapeStatutId: 'rej', ordre: 2 }
+    REJETE: { etapeTypeId: 'dpu', etapeStatutId: 'rej', ordre: 2 },
   },
   publicationDeDecisionAdministrativeAuJORF: { FAIT: { etapeTypeId: 'dup', etapeStatutId: 'fai', ordre: 1 } },
   decisionAdministrative: { FAIT: { etapeTypeId: 'dux', etapeStatutId: 'fai', ordre: 1 } },
   expertiseDREALOuDGTMServiceEau: {
     DEFAVORABLE: { etapeTypeId: 'ede', etapeStatutId: 'def', ordre: 2 },
-    FAVORABLE: { etapeTypeId: 'ede', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'ede', etapeStatutId: 'fav', ordre: 1 },
   },
   expertiseDGTMServicePreventionDesRisquesEtIndustriesExtractives_DATE_: {
     DEFAVORABLE: { etapeTypeId: 'edm', etapeStatutId: 'def', ordre: 2 },
-    FAVORABLE: { etapeTypeId: 'edm', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'edm', etapeStatutId: 'fav', ordre: 1 },
   },
   expertiseDeLOfficeNationalDesForets: { FAIT: { etapeTypeId: 'eof', etapeStatutId: 'fai', ordre: 1 } },
   clotureDeLenquetePublique: { TERMINE: { etapeTypeId: 'epc', etapeStatutId: 'ter', ordre: 1 } },
   ouvertureDeLenquetePublique: {
     FAIT: { etapeTypeId: 'epu', etapeStatutId: 'fai', ordre: 2 },
-    PROGRAMME: { etapeTypeId: 'epu', etapeStatutId: 'pro', ordre: 1 }
+    PROGRAMME: { etapeTypeId: 'epu', etapeStatutId: 'pro', ordre: 1 },
   },
   expertiseDREALOuDGTMServiceBiodiversite: { FAIT: { etapeTypeId: 'esb', etapeStatutId: 'fai', ordre: 1 } },
   initiationDeLaDemarcheDeRetrait: { FAIT: { etapeTypeId: 'ide', etapeStatutId: 'fai', ordre: 1 } },
@@ -259,11 +259,11 @@ export const EtapesTypesEtapesStatuts = {
   demandeDeComplements: { FAIT: { etapeTypeId: 'mco', etapeStatutId: 'fai', ordre: 1 } },
   completudeDeLaDemande: {
     COMPLETE: { etapeTypeId: 'mcp', etapeStatutId: 'com', ordre: 1 },
-    INCOMPLETE: { etapeTypeId: 'mcp', etapeStatutId: 'inc', ordre: 2 }
+    INCOMPLETE: { etapeTypeId: 'mcp', etapeStatutId: 'inc', ordre: 2 },
   },
   recevabiliteDeLaDemande: {
     DEFAVORABLE: { etapeTypeId: 'mcr', etapeStatutId: 'def', ordre: 2 },
-    FAVORABLE: { etapeTypeId: 'mcr', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'mcr', etapeStatutId: 'fav', ordre: 1 },
   },
   demandeDeComplements_SaisineDeLaCARM_: { FAIT: { etapeTypeId: 'mcs', etapeStatutId: 'fai', ordre: 1 } },
   depotDeLaDemande: { FAIT: { etapeTypeId: 'mdp', etapeStatutId: 'fai', ordre: 1 } },
@@ -272,7 +272,7 @@ export const EtapesTypesEtapesStatuts = {
   priseEnChargeParLOfficeNationalDesForets: { FAIT: { etapeTypeId: 'meo', etapeStatutId: 'fai', ordre: 1 } },
   demande: {
     EN_CONSTRUCTION: { etapeTypeId: 'mfr', etapeStatutId: 'aco', ordre: 1 },
-    FAIT: { etapeTypeId: 'mfr', etapeStatutId: 'fai', ordre: 2 }
+    FAIT: { etapeTypeId: 'mfr', etapeStatutId: 'fai', ordre: 2 },
   },
   demandeDinformations_AvisDeLOfficeNationalDesForets_: { FAIT: { etapeTypeId: 'mia', etapeStatutId: 'fai', ordre: 1 } },
   demandeDinformations_AvisDuDREALDEALOuDGTM_: { FAIT: { etapeTypeId: 'mie', etapeStatutId: 'fai', ordre: 1 } },
@@ -296,12 +296,12 @@ export const EtapesTypesEtapesStatuts = {
   paiementDesFraisDeDossier: { FAIT: { etapeTypeId: 'pfd', etapeStatutId: 'fai', ordre: 1 } },
   avisDuParcNaturelRegional: {
     DEFAVORABLE: { etapeTypeId: 'pnr', etapeStatutId: 'def', ordre: 2 },
-    FAVORABLE: { etapeTypeId: 'pnr', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'pnr', etapeStatutId: 'fav', ordre: 1 },
   },
   clotureDeLaParticipationDuPublic: { TERMINE: { etapeTypeId: 'ppc', etapeStatutId: 'ter', ordre: 1 } },
   ouvertureDeLaParticipationDuPublic: {
     FAIT: { etapeTypeId: 'ppu', etapeStatutId: 'fai', ordre: 2 },
-    PROGRAMME: { etapeTypeId: 'ppu', etapeStatutId: 'pro', ordre: 1 }
+    PROGRAMME: { etapeTypeId: 'ppu', etapeStatutId: 'pro', ordre: 1 },
   },
   publicationDansUnJournalLocalOuNational: { FAIT: { etapeTypeId: 'pqr', etapeStatutId: 'fai', ordre: 1 } },
   receptionDeComplements_RecevabiliteDeLaDemande_: { FAIT: { etapeTypeId: 'rca', etapeStatutId: 'fai', ordre: 1 } },
@@ -309,14 +309,14 @@ export const EtapesTypesEtapesStatuts = {
   receptionDeComplements_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet__: { FAIT: { etapeTypeId: 'rcd', etapeStatutId: 'fai', ordre: 1 } },
   rapportDuConseilGeneralDeLeconomie_CGE_: {
     DEFAVORABLE: { etapeTypeId: 'rcg', etapeStatutId: 'def', ordre: 2 },
-    FAVORABLE: { etapeTypeId: 'rcg', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'rcg', etapeStatutId: 'fav', ordre: 1 },
   },
   receptionDeComplements_CompletudeDeLaDemande_: { FAIT: { etapeTypeId: 'rcm', etapeStatutId: 'fai', ordre: 1 } },
   receptionDeComplements: { FAIT: { etapeTypeId: 'rco', etapeStatutId: 'fai', ordre: 1 } },
   receptionDeComplements_SaisineDeLaCARM_: { FAIT: { etapeTypeId: 'rcs', etapeStatutId: 'fai', ordre: 1 } },
   recepisseDeDeclarationLoiSurLeau: {
     DEFAVORABLE: { etapeTypeId: 'rde', etapeStatutId: 'def', ordre: 2 },
-    FAVORABLE: { etapeTypeId: 'rde', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'rde', etapeStatutId: 'fav', ordre: 1 },
   },
   receptionDinformation_AvisDeLOfficeNationalDesForets_: { FAIT: { etapeTypeId: 'ria', etapeStatutId: 'fai', ordre: 1 } },
   receptionDinformation_AvisDuDREALDEALOuDGTM_: { FAIT: { etapeTypeId: 'rie', etapeStatutId: 'fai', ordre: 1 } },
@@ -325,7 +325,7 @@ export const EtapesTypesEtapesStatuts = {
   receptionDinformation_ExpertiseDeLOfficeNationalDesForets_: { FAIT: { etapeTypeId: 'rio', etapeStatutId: 'fai', ordre: 1 } },
   rapportDuConseilDEtat: {
     DEFAVORABLE: { etapeTypeId: 'rpe', etapeStatutId: 'def', ordre: 2 },
-    FAVORABLE: { etapeTypeId: 'rpe', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'rpe', etapeStatutId: 'fav', ordre: 1 },
   },
   publicationDeDecisionAuRecueilDesActesAdministratifs: { FAIT: { etapeTypeId: 'rpu', etapeStatutId: 'fai', ordre: 3 } },
   retraitDeLaDecision: { FAIT: { etapeTypeId: 'rtd', etapeStatutId: 'fai', ordre: 1 } },
@@ -343,45 +343,45 @@ export const EtapesTypesEtapesStatuts = {
   abandonDeLaDemande: { FAIT: { etapeTypeId: 'wab', etapeStatutId: 'fai', ordre: 1 } },
   avisDeDirectionRegionaleDesAffairesCulturellesDRAC: {
     DEFAVORABLE: { etapeTypeId: 'wac', etapeStatutId: 'def', ordre: 1 },
-    FAVORABLE: { etapeTypeId: 'wac', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'wac', etapeStatutId: 'fav', ordre: 1 },
   },
   avisDeLaDirectionDepartementaleDesTerritoiresEtDeLaMerDDT_M_: {
     DEFAVORABLE: { etapeTypeId: 'wad', etapeStatutId: 'def', ordre: 1 },
-    FAVORABLE: { etapeTypeId: 'wad', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'wad', etapeStatutId: 'fav', ordre: 1 },
   },
   avisDeLautoriteEnvironnementale: {
     DEFAVORABLE: { etapeTypeId: 'wae', etapeStatutId: 'def', ordre: 1 },
-    FAVORABLE: { etapeTypeId: 'wae', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'wae', etapeStatutId: 'fav', ordre: 1 },
   },
   avisDesAutresInstances: {
     DEFAVORABLE: { etapeTypeId: 'wai', etapeStatutId: 'def', ordre: 1 },
-    FAVORABLE: { etapeTypeId: 'wai', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'wai', etapeStatutId: 'fav', ordre: 1 },
   },
   avisDunServiceAdministratifLocal_wal: {
     DEFAVORABLE: { etapeTypeId: 'wal', etapeStatutId: 'def', ordre: 1 },
-    FAVORABLE: { etapeTypeId: 'wal', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'wal', etapeStatutId: 'fav', ordre: 1 },
   },
   avisDeLautoriteMilitaire_wam: {
     DEFAVORABLE: { etapeTypeId: 'wam', etapeStatutId: 'def', ordre: 1 },
-    FAVORABLE: { etapeTypeId: 'wam', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'wam', etapeStatutId: 'fav', ordre: 1 },
   },
   arreteDouvertureDesTravauxMiniers: { FAIT: { etapeTypeId: 'wao', etapeStatutId: 'fai', ordre: 1 } },
   avisDuPrefetMaritime_wap: {
     DEFAVORABLE: { etapeTypeId: 'wap', etapeStatutId: 'def', ordre: 1 },
-    FAVORABLE: { etapeTypeId: 'wap', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'wap', etapeStatutId: 'fav', ordre: 1 },
   },
   avisDeReception: { FAIT: { etapeTypeId: 'war', etapeStatutId: 'fai', ordre: 1 } },
   avisDeLagenceRegionaleDeSanteARS: {
     DEFAVORABLE: { etapeTypeId: 'was', etapeStatutId: 'def', ordre: 1 },
-    FAVORABLE: { etapeTypeId: 'was', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'was', etapeStatutId: 'fav', ordre: 1 },
   },
   avisDuConseilDepartementalDeLenvironnementEtDesRisquesSanitairesEtTechnologiques_Coderst__wat: {
     DEFAVORABLE: { etapeTypeId: 'wat', etapeStatutId: 'def', ordre: 1 },
-    FAVORABLE: { etapeTypeId: 'wat', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'wat', etapeStatutId: 'fav', ordre: 1 },
   },
   avisDuDemandeurSurLesPrescriptionsProposees: {
     DEFAVORABLE: { etapeTypeId: 'wau', etapeStatutId: 'def', ordre: 1 },
-    FAVORABLE: { etapeTypeId: 'wau', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'wau', etapeStatutId: 'fav', ordre: 1 },
   },
   clotureDeLenquetePublique_wce: { TERMINE: { etapeTypeId: 'wce', etapeStatutId: 'ter', ordre: 1 } },
   donneActeDeLaDeclaration_DOTM_: { FAIT: { etapeTypeId: 'wda', etapeStatutId: 'fai', ordre: 1 } },
@@ -390,7 +390,7 @@ export const EtapesTypesEtapesStatuts = {
   demandeDeComplements_DADT_: { FAIT: { etapeTypeId: 'wde', etapeStatutId: 'fai', ordre: 1 } },
   decisionDeLadministration_wdm: {
     ACCEPTE: { etapeTypeId: 'wdm', etapeStatutId: 'acc', ordre: 1 },
-    REJETE: { etapeTypeId: 'wdm', etapeStatutId: 'rej', ordre: 1 }
+    REJETE: { etapeTypeId: 'wdm', etapeStatutId: 'rej', ordre: 1 },
   },
   demandeDautorisationDouvertureDeTravauxMiniers_AOTM_: { FAIT: { etapeTypeId: 'wfa', etapeStatutId: 'fai', ordre: 1 } },
   declarationDarretDefinitifDeTravaux_DADT_: { FAIT: { etapeTypeId: 'wfd', etapeStatutId: 'fai', ordre: 1 } },
@@ -401,7 +401,7 @@ export const EtapesTypesEtapesStatuts = {
   memoireDeFinDeTravaux: { FAIT: { etapeTypeId: 'wmt', etapeStatutId: 'fai', ordre: 1 } },
   ouvertureDeLenquetePublique_woe: {
     FAIT: { etapeTypeId: 'woe', etapeStatutId: 'fai', ordre: 1 },
-    PROGRAMME: { etapeTypeId: 'woe', etapeStatutId: 'pro', ordre: 1 }
+    PROGRAMME: { etapeTypeId: 'woe', etapeStatutId: 'pro', ordre: 1 },
   },
   publicationDeDecisionAuRecueilDesActesAdministratifs_wpa: { FAIT: { etapeTypeId: 'wpa', etapeStatutId: 'fai', ordre: 1 } },
   porterAConnaissance: { FAIT: { etapeTypeId: 'wpb', etapeStatutId: 'fai', ordre: 1 } },
@@ -412,19 +412,19 @@ export const EtapesTypesEtapesStatuts = {
   receptionDeComplements_wrc: { FAIT: { etapeTypeId: 'wrc', etapeStatutId: 'fai', ordre: 1 } },
   rapportDeLaDreal: {
     DEFAVORABLE: { etapeTypeId: 'wrd', etapeStatutId: 'def', ordre: 1 },
-    FAVORABLE: { etapeTypeId: 'wrd', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'wrd', etapeStatutId: 'fav', ordre: 1 },
   },
   recevabilite: {
     DEFAVORABLE: { etapeTypeId: 'wre', etapeStatutId: 'def', ordre: 1 },
-    FAVORABLE: { etapeTypeId: 'wre', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'wre', etapeStatutId: 'fav', ordre: 1 },
   },
   avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement_wrl: {
     DEFAVORABLE: { etapeTypeId: 'wrl', etapeStatutId: 'def', ordre: 1 },
-    FAVORABLE: { etapeTypeId: 'wrl', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'wrl', etapeStatutId: 'fav', ordre: 1 },
   },
   recolement: {
     DEFAVORABLE: { etapeTypeId: 'wrt', etapeStatutId: 'def', ordre: 1 },
-    FAVORABLE: { etapeTypeId: 'wrt', etapeStatutId: 'fav', ordre: 1 }
+    FAVORABLE: { etapeTypeId: 'wrt', etapeStatutId: 'fav', ordre: 1 },
   },
   saisineDeLautoriteEnvironnementale: { FAIT: { etapeTypeId: 'wse', etapeStatutId: 'fai', ordre: 1 } },
   saisineDesServicesDeLEtat: { FAIT: { etapeTypeId: 'wss', etapeStatutId: 'fai', ordre: 1 } },
@@ -433,8 +433,8 @@ export const EtapesTypesEtapesStatuts = {
   avisDeLaDDT_M_: { FAIT: { etapeTypeId: 'wdt', etapeStatutId: 'fai', ordre: 1 } },
   consultationCLEDuSAGE: {
     FAVORABLE: { etapeTypeId: 'ccs', etapeStatutId: 'fav', ordre: 1 },
-    DEFAVORABLE: { etapeTypeId: 'ccs', etapeStatutId: 'def', ordre: 2 }
-  }
+    DEFAVORABLE: { etapeTypeId: 'ccs', etapeStatutId: 'def', ordre: 2 },
+  },
 } as const satisfies { [key in keyof typeof ETAPES_TYPES]: { [other in keyof typeof ETAPES_STATUTS]?: EtapeTypeEtapeStatut<(typeof ETAPES_TYPES)[key], (typeof ETAPES_STATUTS)[other]> } }
 
 const isEtapesTypesEtapesStatutsKey = (value: string): value is keyof typeof EtapesTypesEtapesStatuts => {
diff --git a/packages/common/src/static/facades.ts b/packages/common/src/static/facades.ts
index cb8ef1715..62bbcb3f0 100644
--- a/packages/common/src/static/facades.ts
+++ b/packages/common/src/static/facades.ts
@@ -10,7 +10,7 @@ const facades = {
     'Large baie de Seine': { ids: [8], secteurId: '5', departementIds: [DEPARTEMENT_IDS['Seine-Maritime'], DEPARTEMENT_IDS.Calvados, DEPARTEMENT_IDS.Manche] },
     'Nord Cotentin': { ids: [6], secteurId: '6', departementIds: [DEPARTEMENT_IDS.Manche] },
     'Ouest Cotentin - Baie du Mont Saint-Michel': { ids: [7], secteurId: '7', departementIds: [DEPARTEMENT_IDS.Manche] },
-    'Manche Ouest au large des îles anglo-normandes': { ids: [1], secteurId: '8', departementIds: [DEPARTEMENT_IDS.Manche] }
+    'Manche Ouest au large des îles anglo-normandes': { ids: [1], secteurId: '8', departementIds: [DEPARTEMENT_IDS.Manche] },
   },
   'Nord Atlantique - Manche Ouest': {
     'Plaine abyssale': { ids: [9], secteurId: '1', departementIds: [] },
@@ -25,7 +25,7 @@ const facades = {
     'Bretagne sud': { ids: [21], secteurId: '5e', departementIds: [DEPARTEMENT_IDS.Finistère, DEPARTEMENT_IDS.Morbihan, DEPARTEMENT_IDS['Loire-Atlantique']] },
     'Estuaire de la Loire': { ids: [20], secteurId: '5f', departementIds: [DEPARTEMENT_IDS['Loire-Atlantique']] },
     'Baie de Bourgneuf et littoral vendéen': { ids: [19], secteurId: '5g', departementIds: [DEPARTEMENT_IDS['Loire-Atlantique'], DEPARTEMENT_IDS.Vendée] },
-    "Parc naturel marin de l'estuaire de la Gironde et de la mer des Pertuis": { ids: [16], secteurId: '5h', departementIds: [DEPARTEMENT_IDS.Vendée] }
+    "Parc naturel marin de l'estuaire de la Gironde et de la mer des Pertuis": { ids: [16], secteurId: '5h', departementIds: [DEPARTEMENT_IDS.Vendée] },
   },
   'Sud Atlantique': {
     "Parc Naturel Marin de l'estuaire de la Gironde et de la Mer des Pertuis": { ids: [22], secteurId: '1', departementIds: [DEPARTEMENT_IDS['Charente-Maritime'], DEPARTEMENT_IDS.Gironde] },
@@ -35,10 +35,10 @@ const facades = {
     'Plateau continental du Golfe de Gascogne': {
       ids: [23],
       secteurId: '5',
-      departementIds: [DEPARTEMENT_IDS['Charente-Maritime'], DEPARTEMENT_IDS.Gironde, DEPARTEMENT_IDS.Landes, DEPARTEMENT_IDS['Pyrénées-Atlantiques']]
+      departementIds: [DEPARTEMENT_IDS['Charente-Maritime'], DEPARTEMENT_IDS.Gironde, DEPARTEMENT_IDS.Landes, DEPARTEMENT_IDS['Pyrénées-Atlantiques']],
     },
     'Talus du Golfe de Gascogne': { ids: [26], secteurId: '6', departementIds: [] },
-    'Plaine abyssale du Golfe de Gascogne': { ids: [27], secteurId: '7', departementIds: [] }
+    'Plaine abyssale du Golfe de Gascogne': { ids: [27], secteurId: '7', departementIds: [] },
   },
   Méditerranée: {
     'Périmètre du Parc naturel marin du Golfe du Lion': { ids: [44], secteurId: '1', departementIds: [] },
@@ -70,8 +70,8 @@ const facades = {
     'Large côte occidental de la Corse': { ids: [53], secteurId: '27', departementIds: [] },
     'Bouches de Bonifacio Ouest': { ids: [33], secteurId: '28', departementIds: [] },
     'Bouches de Bonifacio Est - Porto-Vecchio': { ids: [57], secteurId: '29', departementIds: [] },
-    'Plaine orientale et large Est de la Corse': { ids: [34], secteurId: '30', departementIds: [] }
-  }
+    'Plaine orientale et large Est de la Corse': { ids: [34], secteurId: '30', departementIds: [] },
+  },
 }
 export const FACADES = Object.keys(facades) as FacadesMaritimes[]
 const SECTEURS = Object.values(facades).flatMap(f => Object.keys(f)) as SecteursMaritimes[]
diff --git a/packages/common/src/static/frequence.ts b/packages/common/src/static/frequence.ts
index 1a0c47b70..8cdf24b0b 100644
--- a/packages/common/src/static/frequence.ts
+++ b/packages/common/src/static/frequence.ts
@@ -1,7 +1,7 @@
 export const FREQUENCES_IDS = {
   ANNUEL: 'ann',
   MENSUEL: 'men',
-  TRIMESTRIEL: 'tri'
+  TRIMESTRIEL: 'tri',
 } as const
 
 interface Definition<T> {
@@ -16,20 +16,20 @@ export const Frequences: { [key in FrequenceId]: Definition<key> } = {
     id: 'ann',
     nom: 'annuel',
     periodes_nom: 'annees',
-    values: ['année']
+    values: ['année'],
   },
   men: {
     id: 'men',
     nom: 'mensuel',
     periodes_nom: 'mois',
-    values: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']
+    values: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
   },
   tri: {
     id: 'tri',
     nom: 'trimestriel',
     periodes_nom: 'trimestres',
-    values: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre']
-  }
+    values: ['1er trimestre', '2e trimestre', '3e trimestre', '4e trimestre'],
+  },
 } as const
 
 export const getPeriode = (frequenceId: FrequenceId | undefined, periodeId: number): string => {
diff --git a/packages/common/src/static/geoSystemes.ts b/packages/common/src/static/geoSystemes.ts
index 7d734801c..96349bcf5 100644
--- a/packages/common/src/static/geoSystemes.ts
+++ b/packages/common/src/static/geoSystemes.ts
@@ -21,7 +21,7 @@ export const GEO_SYSTEME_IDS = {
   'NTF (Paris)': '4807',
   'RGAF09 / UTM zone 20N': '5490',
   'Mayotte 2004 / UTM zone 38S': '4471',
-  'Réunion ': '2975'
+  'Réunion ': '2975',
 } as const
 
 export interface GeoSysteme<T = GeoSystemeId> {
@@ -42,7 +42,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 1,
     uniteId: 'met',
     zone: 'France - onshore et offshore - continentale et Corse.',
-    definitionProj4: '+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'
+    definitionProj4: '+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs',
   },
   '27561': {
     id: '27561',
@@ -51,7 +51,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     uniteId: 'met',
     zone: "France - continentale au nord de  53,5 grades North (48°09'N).",
     definitionProj4:
-      '+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs'
+      '+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs',
   },
   '27563': {
     id: '27563',
@@ -60,7 +60,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     uniteId: 'met',
     zone: "France - continentale au sud de 50,5 grades nord (45°27'N).",
     definitionProj4:
-      '+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs'
+      '+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs',
   },
   '27571': {
     id: '27571',
@@ -69,7 +69,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     uniteId: 'met',
     zone: "France - continentale au nord de 53,5 grades nord (48°09'N).",
     definitionProj4:
-      '+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs'
+      '+proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs',
   },
   '27572': {
     id: '27572',
@@ -77,7 +77,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 13,
     uniteId: 'met',
     zone: "France - continentale entre 45°27'N et 48°09'N.",
-    definitionProj4: '+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs'
+    definitionProj4: '+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs',
   },
   '27573': {
     id: '27573',
@@ -86,7 +86,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     uniteId: 'met',
     zone: "France - continentale au sud de 50,5 grades nord (45°27'N).",
     definitionProj4:
-      '+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs'
+      '+proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs',
   },
   '2970': {
     id: '2970',
@@ -94,7 +94,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 20,
     uniteId: 'met',
     zone: 'Guadeloupe - onshore - Basse-Terre, Grande-Terre, La Desirade, Marie-Galante, Les Saintes.',
-    definitionProj4: '+proj=utm +zone=20 +ellps=intl +towgs84=-467,-16,-300,0,0,0,0 +units=m +no_defs'
+    definitionProj4: '+proj=utm +zone=20 +ellps=intl +towgs84=-467,-16,-300,0,0,0,0 +units=m +no_defs',
   },
   '2972': {
     id: '2972',
@@ -102,7 +102,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 2,
     uniteId: 'met',
     zone: 'Guyane française - onshore et offshore.',
-    definitionProj4: '+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'
+    definitionProj4: '+proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs',
   },
   '32620': {
     id: '32620',
@@ -110,7 +110,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 16,
     uniteId: 'met',
     zone: 'Hémisphère Nord - entre 66°W et 60°W',
-    definitionProj4: '+proj=utm +zone=20 +datum=WGS84 +units=m +no_defs'
+    definitionProj4: '+proj=utm +zone=20 +datum=WGS84 +units=m +no_defs',
   },
   '32621': {
     id: '32621',
@@ -118,7 +118,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 17,
     uniteId: 'met',
     zone: 'Hémisphère Nord - entre 60°W et 54°W',
-    definitionProj4: '+proj=utm +zone=21 +datum=WGS84 +units=m +no_defs'
+    definitionProj4: '+proj=utm +zone=21 +datum=WGS84 +units=m +no_defs',
   },
   '32622': {
     id: '32622',
@@ -126,7 +126,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 18,
     uniteId: 'met',
     zone: 'Hémisphère Nord - entre 54°W et 48°W',
-    definitionProj4: '+proj=utm +zone=22 +datum=WGS84 +units=m +no_defs'
+    definitionProj4: '+proj=utm +zone=22 +datum=WGS84 +units=m +no_defs',
   },
   '32630': {
     id: '32630',
@@ -134,7 +134,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 19,
     uniteId: 'met',
     zone: 'Hémisphère Nord - entre 6°W et 0°W',
-    definitionProj4: '+proj=utm +zone=30 +datum=WGS84 +units=m +no_defs'
+    definitionProj4: '+proj=utm +zone=30 +datum=WGS84 +units=m +no_defs',
   },
   '3313': {
     id: '3313',
@@ -142,7 +142,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 21,
     uniteId: 'met',
     zone: 'Guyane française - onshore et offshore.',
-    definitionProj4: '+proj=utm +zone=21 +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +units=m +no_defs'
+    definitionProj4: '+proj=utm +zone=21 +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +units=m +no_defs',
   },
   '3949': {
     id: '3949',
@@ -150,7 +150,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 15,
     uniteId: 'met',
     zone: 'France - continentale entre 48°N et 50°N.',
-    definitionProj4: '+proj=lcc +lat_1=48.25 +lat_2=49.75 +lat_0=49 +lon_0=3 +x_0=1700000 +y_0=8200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs'
+    definitionProj4: '+proj=lcc +lat_1=48.25 +lat_2=49.75 +lat_0=49 +lon_0=3 +x_0=1700000 +y_0=8200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs',
   },
   '4171': {
     id: '4171',
@@ -158,7 +158,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 4,
     uniteId: 'deg',
     zone: 'France - onshore et offshore - continentale et Corse.',
-    definitionProj4: '+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs'
+    definitionProj4: '+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs',
   },
   '4230': {
     id: '4230',
@@ -166,7 +166,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 7,
     uniteId: 'deg',
     zone: 'Europe',
-    definitionProj4: '+proj=longlat +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +no_defs'
+    definitionProj4: '+proj=longlat +ellps=intl +towgs84=-87,-98,-121,0,0,0,0 +no_defs',
   },
   '4275': {
     id: '4275',
@@ -174,7 +174,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 8,
     uniteId: 'deg',
     zone: 'France - onshore - continentale et Corse.',
-    definitionProj4: '+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +no_defs'
+    definitionProj4: '+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +no_defs',
   },
   '4326': {
     id: '4326',
@@ -182,7 +182,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 6,
     uniteId: 'deg',
     zone: 'Monde',
-    definitionProj4: '+proj=longlat +datum=WGS84 +no_defs'
+    definitionProj4: '+proj=longlat +datum=WGS84 +no_defs',
   },
   '4624': {
     id: '4624',
@@ -190,7 +190,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 5,
     uniteId: 'deg',
     zone: 'French Guiana - onshore and offshore.',
-    definitionProj4: '+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs '
+    definitionProj4: '+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs ',
   },
   '4807': {
     id: '4807',
@@ -198,7 +198,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 9,
     uniteId: 'gon',
     zone: 'France - onshore - continentale et Corse.',
-    definitionProj4: '+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +no_defs'
+    definitionProj4: '+proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +no_defs',
   },
   '5490': {
     id: '5490',
@@ -206,7 +206,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 3,
     uniteId: 'met',
     zone: "Antilles françaises onshore et offshore à l'ouest du méridien 60° Ouest - Guadeloupe (incluant Grande Terre, Basse Terre, Marie Galante, Les Saintes, Iles de la Petite Terre, La Desirade, St Barthélemy, partie nord de St Martin) et Martinique.",
-    definitionProj4: '+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs '
+    definitionProj4: '+proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs ',
   },
   '4471': {
     id: '4471',
@@ -214,7 +214,7 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 22,
     uniteId: 'met',
     zone: 'Mayotte - onshore et offshore',
-    definitionProj4: '+proj=utm +zone=38 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs '
+    definitionProj4: '+proj=utm +zone=38 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs ',
   },
   '2975': {
     id: '2975',
@@ -222,8 +222,8 @@ export const GeoSystemes: { [key in GeoSystemeId]: GeoSysteme<key> } = {
     ordre: 23,
     uniteId: 'met',
     zone: 'Réuinon',
-    definitionProj4: '+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs '
-  }
+    definitionProj4: '+proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs ',
+  },
 }
 
 export const sortedGeoSystemes = Object.values(GeoSystemes).sort((a, b) => a.ordre - b.ordre)
diff --git a/packages/common/src/static/pays.ts b/packages/common/src/static/pays.ts
index 5cec14fba..ced1f8a93 100644
--- a/packages/common/src/static/pays.ts
+++ b/packages/common/src/static/pays.ts
@@ -12,7 +12,7 @@ export const PAYS_IDS = {
   'Terres Australes Françaises': 'TF',
   'Wallis-et-Futuna': 'WF',
   'Clipperton (Île)': 'XX',
-  'Département de Mayotte': 'YT'
+  'Département de Mayotte': 'YT',
 } as const
 
 export interface Pays<T = PaysId> {
@@ -36,7 +36,7 @@ export const PaysList: { [key in PaysId]: Pays<key> } = {
   TF: { id: 'TF', nom: 'Terres Australes Françaises' },
   WF: { id: 'WF', nom: 'Wallis-et-Futuna' },
   XX: { id: 'XX', nom: 'Clipperton (Île)' },
-  YT: { id: 'YT', nom: 'Département de Mayotte' }
+  YT: { id: 'YT', nom: 'Département de Mayotte' },
 }
 
 const PAYS_IDS_LIST = Object.values(PAYS_IDS)
diff --git a/packages/common/src/static/phasesStatuts.ts b/packages/common/src/static/phasesStatuts.ts
index 87f18b02e..40b164cd1 100644
--- a/packages/common/src/static/phasesStatuts.ts
+++ b/packages/common/src/static/phasesStatuts.ts
@@ -2,7 +2,7 @@ import { Couleur } from './couleurs.js'
 
 export const PHASES_STATUTS_IDS = {
   Echu: 'ech',
-  Valide: 'val'
+  Valide: 'val',
 } as const
 
 export type PhaseStatutId = (typeof PHASES_STATUTS_IDS)[keyof typeof PHASES_STATUTS_IDS]
@@ -17,13 +17,13 @@ export const phaseStatuts: { [key in PhaseStatutId]: Definition<key> } = {
   ech: {
     id: 'ech',
     nom: 'échu',
-    couleur: 'neutral'
+    couleur: 'neutral',
   },
   val: {
     id: 'val',
     nom: 'valide',
-    couleur: 'success'
-  }
+    couleur: 'success',
+  },
 } as const
 
 export const phasesStatuts = Object.values(phaseStatuts)
diff --git a/packages/common/src/static/referencesTypes.ts b/packages/common/src/static/referencesTypes.ts
index d24eff6b4..563799c42 100644
--- a/packages/common/src/static/referencesTypes.ts
+++ b/packages/common/src/static/referencesTypes.ts
@@ -8,7 +8,7 @@ export const REFERENCES_TYPES_IDS = {
   NomDUsage: 'nus',
   ONF: 'onf',
   PTMG: 'ptm',
-  RNTM: 'rnt'
+  RNTM: 'rnt',
 } as const
 
 export type ReferenceTypeId = (typeof REFERENCES_TYPES_IDS)[keyof typeof REFERENCES_TYPES_IDS]
@@ -26,7 +26,7 @@ export const ReferencesTypes: { [key in ReferenceTypeId]: ReferenceType<key> } =
   nus: { id: 'nus', nom: "Nom d'usage" },
   onf: { id: 'onf', nom: 'ONF' },
   ptm: { id: 'ptm', nom: 'PTMG' },
-  rnt: { id: 'rnt', nom: 'RNTM' }
+  rnt: { id: 'rnt', nom: 'RNTM' },
 }
 
 export const sortedReferencesTypes = Object.values(ReferencesTypes).sort((a, b) => a.nom.localeCompare(b.nom))
diff --git a/packages/common/src/static/region.ts b/packages/common/src/static/region.ts
index 4f61c3cde..2687aa26f 100644
--- a/packages/common/src/static/region.ts
+++ b/packages/common/src/static/region.ts
@@ -18,7 +18,7 @@ export const REGION_IDS = {
   Occitanie: '76',
   'Auvergne-Rhône-Alpes': '84',
   "Provence-Alpes-Côte d'Azur": '93',
-  Corse: '94'
+  Corse: '94',
 } as const
 
 export interface Region<T = RegionId> {
@@ -53,6 +53,6 @@ export const Regions: { [key in RegionId]: Region<key> } = {
   '76': { id: '76', nom: 'Occitanie', paysId: 'FR' },
   '84': { id: '84', nom: 'Auvergne-Rhône-Alpes', paysId: 'FR' },
   '93': { id: '93', nom: "Provence-Alpes-Côte d'Azur", paysId: 'FR' },
-  '94': { id: '94', nom: 'Corse', paysId: 'FR' }
+  '94': { id: '94', nom: 'Corse', paysId: 'FR' },
 }
 export const regions = Object.values(Regions)
diff --git a/packages/common/src/static/sdom.ts b/packages/common/src/static/sdom.ts
index 8408bb018..a67ca9560 100644
--- a/packages/common/src/static/sdom.ts
+++ b/packages/common/src/static/sdom.ts
@@ -4,7 +4,7 @@ export const SDOMZoneIds = {
   Zone0: '0',
   Zone0Potentielle: '0_potentielle',
   Zone1: '1',
-  Zone2: '2'
+  Zone2: '2',
 } as const
 
 export type SDOMZoneId = (typeof SDOMZoneIds)[keyof typeof SDOMZoneIds]
@@ -14,18 +14,18 @@ export type SDOMZone<T = SDOMZoneId> = Pick<Definition<T>, 'id' | 'nom'>
 export const SDOMZones: { [key in SDOMZoneId]: Pick<SDOMZone<key>, 'id' | 'nom'> } = {
   '0': {
     id: '0',
-    nom: 'ZONE 0, activité minière interdite'
+    nom: 'ZONE 0, activité minière interdite',
   },
   '0_potentielle': {
     id: '0_potentielle',
-    nom: 'ZONE 0, potentielle'
+    nom: 'ZONE 0, potentielle',
   },
   '1': {
     id: '1',
-    nom: 'ZONE 1, activité minière interdite sauf exploitation souterraine et recherches aériennes'
+    nom: 'ZONE 1, activité minière interdite sauf exploitation souterraine et recherches aériennes',
   },
   '2': {
     id: '2',
-    nom: 'ZONE 2, activité minière autorisée sous contrainte'
-  }
+    nom: 'ZONE 2, activité minière autorisée sous contrainte',
+  },
 }
diff --git a/packages/common/src/static/substancesFiscales.ts b/packages/common/src/static/substancesFiscales.ts
index bcdbc6ae5..75917b1ae 100644
--- a/packages/common/src/static/substancesFiscales.ts
+++ b/packages/common/src/static/substancesFiscales.ts
@@ -34,7 +34,7 @@ export const SUBSTANCES_FISCALES_IDS = {
   soufre: 'souf',
   uranium: 'uran',
   'oxyde de tungstène (WO3)': 'wolf',
-  zinc: 'zinc'
+  zinc: 'zinc',
 } as const
 
 export type SubstanceFiscaleId = (typeof SUBSTANCES_FISCALES_IDS)[keyof typeof SUBSTANCES_FISCALES_IDS]
@@ -63,14 +63,14 @@ export const SubstancesFiscale: {
     substanceLegaleId: 'aloh',
     uniteId: 'mtk',
     nom: 'bauxite',
-    description: 'bauxite nettes livrées'
+    description: 'bauxite nettes livrées',
   },
   anti: {
     id: 'anti',
     substanceLegaleId: 'anti',
     uniteId: 'mtt',
     nom: 'antimoine',
-    description: 'contenu dans les minerais'
+    description: 'contenu dans les minerais',
   },
   arge: {
     id: 'arge',
@@ -79,15 +79,15 @@ export const SubstancesFiscale: {
     nom: 'argent',
     description: 'contenu dans les minerais',
     openFisca: {
-      nom: 'argentifere'
-    }
+      nom: 'argentifere',
+    },
   },
   arse: {
     id: 'arse',
     substanceLegaleId: 'arse',
     uniteId: 'mtk',
     nom: 'arsenic',
-    description: 'contenu dans les minerais'
+    description: 'contenu dans les minerais',
   },
   auru: {
     id: 'auru',
@@ -97,22 +97,22 @@ export const SubstancesFiscale: {
     description: 'contenu dans les minerais',
     openFisca: {
       nom: 'aurifere',
-      unite: 'mkg'
-    }
+      unite: 'mkg',
+    },
   },
   bism: {
     id: 'bism',
     substanceLegaleId: 'bism',
     uniteId: 'mtt',
     nom: 'bismuth',
-    description: 'contenu dans les minerais'
+    description: 'contenu dans les minerais',
   },
   cfxa: {
     id: 'cfxa',
     substanceLegaleId: 'cfxx',
     uniteId: 'mtc',
     nom: 'charbon',
-    description: 'net extrait'
+    description: 'net extrait',
   },
   cfxb: {
     id: 'cfxb',
@@ -121,8 +121,8 @@ export const SubstancesFiscale: {
     nom: 'lignites',
     description: "net livré pour les lignites d'un pouvoir calorifique égal ou supérieur à 13 MJ/kg",
     openFisca: {
-      nom: 'lignites_ge_13'
-    }
+      nom: 'lignites_ge_13',
+    },
   },
   cfxc: {
     id: 'cfxc',
@@ -131,8 +131,8 @@ export const SubstancesFiscale: {
     nom: 'lignites',
     description: "net livré pour les lignites d'un pouvoir calorifique inférieur à 13 MJ/kg",
     openFisca: {
-      nom: 'lignites_lt_13'
-    }
+      nom: 'lignites_lt_13',
+    },
   },
   coox: {
     id: 'coox',
@@ -141,15 +141,15 @@ export const SubstancesFiscale: {
     nom: 'gaz carbonique',
     description: 'extrait à 1 bar et 15 °C',
     openFisca: {
-      nom: 'gaz_carbonique'
-    }
+      nom: 'gaz_carbonique',
+    },
   },
   cuiv: {
     id: 'cuiv',
     substanceLegaleId: 'cuiv',
     uniteId: 'mtt',
     nom: 'cuivre',
-    description: 'contenu dans les minerais'
+    description: 'contenu dans les minerais',
   },
   etai: {
     id: 'etai',
@@ -158,8 +158,8 @@ export const SubstancesFiscale: {
     nom: 'étain',
     description: 'contenu dans les minerais',
     openFisca: {
-      nom: 'etain'
-    }
+      nom: 'etain',
+    },
   },
   fera: {
     id: 'fera',
@@ -168,8 +168,8 @@ export const SubstancesFiscale: {
     nom: 'pyrite de fer',
     description: 'net livré',
     openFisca: {
-      nom: 'fer_pyrite'
-    }
+      nom: 'fer_pyrite',
+    },
   },
   ferb: {
     id: 'ferb',
@@ -178,15 +178,15 @@ export const SubstancesFiscale: {
     nom: 'minerais de fer',
     description: 'net livré',
     openFisca: {
-      nom: 'fer'
-    }
+      nom: 'fer',
+    },
   },
   fluo: {
     id: 'fluo',
     substanceLegaleId: 'fluo',
     uniteId: 'mtk',
     nom: 'fluorine',
-    description: 'net livré'
+    description: 'net livré',
   },
   hyda: {
     id: 'hyda',
@@ -195,8 +195,8 @@ export const SubstancesFiscale: {
     nom: 'calcaires et grès bitumineux ou asphaltiques',
     description: "net livré (non destinés à la distillation pour production d'huiles ou d'essences)",
     openFisca: {
-      nom: 'bitume_non_distillation'
-    }
+      nom: 'bitume_non_distillation',
+    },
   },
   hydb: {
     id: 'hydb',
@@ -205,8 +205,8 @@ export const SubstancesFiscale: {
     nom: 'schistes carbobitumineux et schistes bitumineux',
     description: 'net livré (à traiter par distillation pour en extraire des huiles et des essences)',
     openFisca: {
-      nom: 'bitume_distillation'
-    }
+      nom: 'bitume_distillation',
+    },
   },
   hydc: {
     id: 'hydc',
@@ -215,8 +215,8 @@ export const SubstancesFiscale: {
     nom: 'pétrole brut',
     description: 'net extrait',
     openFisca: {
-      nom: 'petrole_brut'
-    }
+      nom: 'petrole_brut',
+    },
   },
   hydd: {
     id: 'hydd',
@@ -225,8 +225,8 @@ export const SubstancesFiscale: {
     nom: 'propane et le butane',
     description: 'net livré',
     openFisca: {
-      nom: 'propane'
-    }
+      nom: 'propane',
+    },
   },
   hyde: {
     id: 'hyde',
@@ -235,8 +235,8 @@ export const SubstancesFiscale: {
     nom: 'essence de dégazolinage',
     description: 'net livré',
     openFisca: {
-      nom: 'degazolinage'
-    }
+      nom: 'degazolinage',
+    },
   },
   hydf: {
     id: 'hydf',
@@ -245,8 +245,8 @@ export const SubstancesFiscale: {
     nom: 'gaz naturel',
     description: 'extrait des gisements',
     openFisca: {
-      nom: 'gaz_naturel'
-    }
+      nom: 'gaz_naturel',
+    },
   },
   kclx: {
     id: 'kclx',
@@ -255,8 +255,8 @@ export const SubstancesFiscale: {
     nom: 'oxyde de potassium',
     description: 'K2O contenu dans les sels de potassium',
     openFisca: {
-      nom: 'potassium'
-    }
+      nom: 'potassium',
+    },
   },
   lith: {
     id: 'lith',
@@ -265,8 +265,8 @@ export const SubstancesFiscale: {
     nom: 'oxyde de lithium',
     description: 'Li2O contenu dans les minerais de lithium',
     openFisca: {
-      nom: 'lithium'
-    }
+      nom: 'lithium',
+    },
   },
   mang: {
     id: 'mang',
@@ -275,8 +275,8 @@ export const SubstancesFiscale: {
     nom: 'manganèse',
     description: 'contenu dans les minerais',
     openFisca: {
-      nom: 'manganese'
-    }
+      nom: 'manganese',
+    },
   },
   moly: {
     id: 'moly',
@@ -285,8 +285,8 @@ export const SubstancesFiscale: {
     nom: 'molybdène',
     description: 'contenu dans les minerais',
     openFisca: {
-      nom: 'molybdene'
-    }
+      nom: 'molybdene',
+    },
   },
   naca: {
     id: 'naca',
@@ -295,8 +295,8 @@ export const SubstancesFiscale: {
     nom: 'sel (chlorure de sodium)',
     description: 'extrait par abattage net livré',
     openFisca: {
-      nom: 'sel_abattage'
-    }
+      nom: 'sel_abattage',
+    },
   },
   nacb: {
     id: 'nacb',
@@ -305,8 +305,8 @@ export const SubstancesFiscale: {
     nom: 'sel (chlorure de sodium)',
     description: 'extrait en dissolution par sondage et livré raffiné',
     openFisca: {
-      nom: 'sel_raffine'
-    }
+      nom: 'sel_raffine',
+    },
   },
   nacc: {
     id: 'nacc',
@@ -315,29 +315,29 @@ export const SubstancesFiscale: {
     nom: 'sel (chlorure de sodium contenu)',
     description: 'extrait en dissolution par sondage et livré en dissolution',
     openFisca: {
-      nom: 'sel_dissolution'
-    }
+      nom: 'sel_dissolution',
+    },
   },
   plom: {
     id: 'plom',
     substanceLegaleId: 'plom',
     uniteId: 'mtc',
     nom: 'plomb',
-    description: 'contenu dans les minerais'
+    description: 'contenu dans les minerais',
   },
   souf: {
     id: 'souf',
     substanceLegaleId: 'souf',
     uniteId: 'mtt',
     nom: 'soufre',
-    description: 'contenu dans les minerais de soufre autres que les pyrites de fer'
+    description: 'contenu dans les minerais de soufre autres que les pyrites de fer',
   },
   uran: {
     id: 'uran',
     substanceLegaleId: 'uran',
     uniteId: 'mkc',
     nom: 'uranium',
-    description: 'contenu dans les minerais'
+    description: 'contenu dans les minerais',
   },
   wolf: {
     id: 'wolf',
@@ -346,16 +346,16 @@ export const SubstancesFiscale: {
     nom: 'oxyde de tungstène (WO3)',
     description: 'contenu dans les minerais',
     openFisca: {
-      nom: 'tungstene'
-    }
+      nom: 'tungstene',
+    },
   },
   zinc: {
     id: 'zinc',
     substanceLegaleId: 'zinc',
     uniteId: 'mtc',
     nom: 'zinc',
-    description: 'contenu dans les minerais'
-  }
+    description: 'contenu dans les minerais',
+  },
 }
 
 export const SubstancesFiscales = Object.values(SubstancesFiscale)
diff --git a/packages/common/src/static/substancesLegales.ts b/packages/common/src/static/substancesLegales.ts
index 7421cbcf9..63eb3673e 100644
--- a/packages/common/src/static/substancesLegales.ts
+++ b/packages/common/src/static/substancesLegales.ts
@@ -199,7 +199,7 @@ export const SUBSTANCES_LEGALES_IDS = {
   tuffeau: 'tufo',
   yttrium: 'ytri',
   ytterbium: 'ytte',
-  hydrogène: 'hydrog'
+  hydrogène: 'hydrog',
 } as const
 
 export type SubstanceLegaleId = (typeof SUBSTANCES_LEGALES_IDS)[keyof typeof SUBSTANCES_LEGALES_IDS]
@@ -221,21 +221,21 @@ export const SubstancesLegale: {
     id: 'aloh',
     domaineIds: ['m'],
     nom: 'bauxite',
-    substanceParentIds: ['meba']
+    substanceParentIds: ['meba'],
   },
   anti: { id: 'anti', domaineIds: ['m'], nom: 'antimoine' },
   arge: {
     id: 'arge',
     domaineIds: ['m'],
     nom: 'argent',
-    substanceParentIds: ['mepr']
+    substanceParentIds: ['mepr'],
   },
   arse: { id: 'arse', domaineIds: ['m'], nom: 'arsenic' },
   auru: {
     id: 'auru',
     domaineIds: ['m'],
     nom: 'or',
-    substanceParentIds: ['mepr']
+    substanceParentIds: ['mepr'],
   },
   bery: { id: 'bery', domaineIds: ['m'], nom: 'béryllium' },
   bism: { id: 'bism', domaineIds: ['m'], nom: 'bismuth' },
@@ -246,55 +246,55 @@ export const SubstancesLegale: {
     id: 'chro',
     domaineIds: ['m'],
     nom: 'chrome',
-    substanceParentIds: ['meba']
+    substanceParentIds: ['meba'],
   },
   coba: { id: 'coba', domaineIds: ['m'], nom: 'cobalt' },
   coox: {
     id: 'coox',
     domaineIds: ['m'],
     nom: 'gaz carbonique',
-    description: "A l'exception du gaz naturellement contenu dans les eaux qui sont ou qui viendraient à être utilisées pour l'alimentation humaine ou à des fins thérapeutiques"
+    description: "A l'exception du gaz naturellement contenu dans les eaux qui sont ou qui viendraient à être utilisées pour l'alimentation humaine ou à des fins thérapeutiques",
   },
   cuiv: {
     id: 'cuiv',
     domaineIds: ['m'],
     nom: 'cuivre',
-    substanceParentIds: ['meba']
+    substanceParentIds: ['meba'],
   },
   diam: {
     id: 'diam',
     domaineIds: ['m'],
     nom: 'diamant',
-    substanceParentIds: ['pipe']
+    substanceParentIds: ['pipe'],
   },
   etai: {
     id: 'etai',
     domaineIds: ['m'],
     nom: 'étain',
-    substanceParentIds: ['meba']
+    substanceParentIds: ['meba'],
   },
   ferx: {
     id: 'ferx',
     domaineIds: ['m'],
     nom: 'fer',
-    substanceParentIds: ['meba', 'pyri']
+    substanceParentIds: ['meba', 'pyri'],
   },
   fluo: { id: 'fluo', domaineIds: ['m'], nom: 'fluorine' },
   gall: { id: 'gall', domaineIds: ['m'], nom: 'gallium' },
   geob: {
     id: 'geob',
     domaineIds: ['g'],
-    nom: 'gîtes géothermiques basse température'
+    nom: 'gîtes géothermiques basse température',
   },
   geoh: {
     id: 'geoh',
     domaineIds: ['g'],
-    nom: 'gîtes géothermiques haute température'
+    nom: 'gîtes géothermiques haute température',
   },
   geom: {
     id: 'geom',
     domaineIds: ['g'],
-    nom: 'activités géothermiques de minime importance'
+    nom: 'activités géothermiques de minime importance',
   },
   germ: { id: 'germ', domaineIds: ['m'], nom: 'germanium' },
   grap: { id: 'grap', domaineIds: ['m'], nom: 'graphite' },
@@ -302,21 +302,21 @@ export const SubstancesLegale: {
     id: 'grma',
     domaineIds: ['w'],
     nom: 'granulats marins',
-    substanceParentIds: ['galt', 'grsi', 'maer', 'saco', 'samg', 'sasi', 'sgsc', 'sgsm']
+    substanceParentIds: ['galt', 'grsi', 'maer', 'saco', 'samg', 'sasi', 'sgsc', 'sgsm'],
   },
   hafn: { id: 'hafn', domaineIds: ['m'], nom: 'hafnium' },
   heli: { id: 'heli', domaineIds: ['m'], nom: 'hélium' },
   hydm: {
     id: 'hydm',
     domaineIds: ['m'],
-    nom: 'calcaires bitumineux'
+    nom: 'calcaires bitumineux',
   },
   hydx: {
     id: 'hydx',
     domaineIds: ['h'],
     nom: 'hydrocarbures liquides ou gazeux',
     description: "A l'exception de la tourbe",
-    substanceParentIds: ['hyda', 'hydc', 'hydo', 'hydr']
+    substanceParentIds: ['hyda', 'hydc', 'hydo', 'hydr'],
   },
   indi: { id: 'indi', domaineIds: ['m'], nom: 'indium' },
   kals: { id: 'kals', domaineIds: ['m'], nom: 'alun' },
@@ -325,14 +325,14 @@ export const SubstancesLegale: {
     domaineIds: ['m'],
     nom: 'sels de potassium',
     description: "A l'état solide ou en dissolution, à l'exception de ceux contenus dans les eaux salées utilisées à des fins thérapeutiques ou de loisirs",
-    substanceParentIds: ['selg', 'selp', 'sels']
+    substanceParentIds: ['selg', 'selp', 'sels'],
   },
   lith: { id: 'lith', domaineIds: ['m'], nom: 'lithium' },
   mang: {
     id: 'mang',
     domaineIds: ['m'],
     nom: 'manganèse',
-    substanceParentIds: ['meba']
+    substanceParentIds: ['meba'],
   },
   merc: { id: 'merc', domaineIds: ['m'], nom: 'mercure' },
   moly: { id: 'moly', domaineIds: ['m'], nom: 'molybdène' },
@@ -341,13 +341,13 @@ export const SubstancesLegale: {
     domaineIds: ['m'],
     nom: 'sels de sodium',
     description: "A l'état solide ou en dissolution, à l'exception de ceux contenus dans les eaux salées utilisées à des fins thérapeutiques ou de loisirs",
-    substanceParentIds: ['selg', 'selp', 'sels', 'selx']
+    substanceParentIds: ['selg', 'selp', 'sels', 'selx'],
   },
   nick: {
     id: 'nick',
     domaineIds: ['m'],
     nom: 'nickel',
-    substanceParentIds: ['meba']
+    substanceParentIds: ['meba'],
   },
   niob: { id: 'niob', domaineIds: ['m'], nom: 'niobium' },
   oooo: { id: 'oooo', domaineIds: ['m'], nom: 'non précisée(s)' },
@@ -356,19 +356,19 @@ export const SubstancesLegale: {
     id: 'plat',
     domaineIds: ['m'],
     nom: 'platine',
-    substanceParentIds: ['mepr']
+    substanceParentIds: ['mepr'],
   },
   plax: {
     id: 'plax',
     domaineIds: ['m'],
     nom: 'métaux de la mine du platine',
-    substanceParentIds: ['irid', 'mepr', 'osmi', 'pall', 'rhod', 'ruth']
+    substanceParentIds: ['irid', 'mepr', 'osmi', 'pall', 'rhod', 'ruth'],
   },
   plom: {
     id: 'plom',
     domaineIds: ['m'],
     nom: 'plomb',
-    substanceParentIds: ['meba']
+    substanceParentIds: ['meba'],
   },
   radi: { id: 'radi', domaineIds: ['r'], nom: 'radium' },
   rhen: { id: 'rhen', domaineIds: ['m'], nom: 'rhénium' },
@@ -377,7 +377,7 @@ export const SubstancesLegale: {
     id: 'rxxx',
     domaineIds: ['r'],
     nom: 'autres éléments radioactifs',
-    substanceParentIds: ['acti', 'asta', 'polo', 'prot', 'radi', 'rado', 'tech']
+    substanceParentIds: ['acti', 'asta', 'polo', 'prot', 'radi', 'rado', 'tech'],
   },
   scan: { id: 'scan', domaineIds: ['m'], nom: 'scandium' },
   scoc: {
@@ -386,20 +386,20 @@ export const SubstancesLegale: {
     nom: 'substances connexes',
     description:
       'Substances présentes lors de l’abattage des substances principales. Elles sont à la libre disposition de l’opérateur à la condition que le titre ou l’autorisation porte la mention « et substances connexes ».',
-    substanceParentIds: ['mais', 'meco', 'tmas']
+    substanceParentIds: ['mais', 'meco', 'tmas'],
   },
   sele: { id: 'sele', domaineIds: ['m'], nom: 'sélénium' },
   skst: {
     id: 'skst',
     domaineIds: ['s'],
     nom: 'stockage souterrain',
-    substanceParentIds: ['buta', 'ethy', 'gazn', 'hydg', 'hydo', 'prpa', 'prpy']
+    substanceParentIds: ['buta', 'ethy', 'gazn', 'hydg', 'hydo', 'prpa', 'prpy'],
   },
   souf: { id: 'souf', domaineIds: ['m'], nom: 'soufre' },
   soxx: {
     id: 'soxx',
     domaineIds: ['m'],
-    nom: 'sulfates autres que les sulfates alcalino-terreux'
+    nom: 'sulfates autres que les sulfates alcalino-terreux',
   },
   tant: { id: 'tant', domaineIds: ['m'], nom: 'tantale' },
   tell: { id: 'tell', domaineIds: ['m'], nom: 'tellure' },
@@ -409,13 +409,13 @@ export const SubstancesLegale: {
     id: 'tita',
     domaineIds: ['m'],
     nom: 'titane',
-    substanceParentIds: ['meba']
+    substanceParentIds: ['meba'],
   },
   trxx: {
     id: 'trxx',
     domaineIds: ['m'],
     nom: 'autres éléments de terres rares',
-    substanceParentIds: ['dysp', 'erbi', 'euro', 'gado', 'holm', 'lant', 'lute', 'neod', 'pras', 'prom', 'sama', 'scan', 'terb', 'thul', 'ytri', 'ytte']
+    substanceParentIds: ['dysp', 'erbi', 'euro', 'gado', 'holm', 'lant', 'lute', 'neod', 'pras', 'prom', 'sama', 'scan', 'terb', 'thul', 'ytri', 'ytte'],
   },
   uran: { id: 'uran', domaineIds: ['r'], nom: 'uranium' },
   vana: { id: 'vana', domaineIds: ['m'], nom: 'vanadium' },
@@ -424,7 +424,7 @@ export const SubstancesLegale: {
     id: 'zinc',
     domaineIds: ['m'],
     nom: 'zinc',
-    substanceParentIds: ['meba']
+    substanceParentIds: ['meba'],
   },
   zirc: { id: 'zirc', domaineIds: ['m'], nom: 'zirconium' },
   acti: { id: 'acti', nom: 'actinium', domaineIds: ['r'] },
@@ -433,62 +433,62 @@ export const SubstancesLegale: {
     nom: 'amphibolite',
     domaineIds: ['c'],
     description:
-      'Roche métamorphique présentant de bonnes caractéristiques géomécaniques, de couleur sombre (gris à vert foncé) riche en silicates calciques et ferromagnésiens (essentiellement hornblende, mais aussi feldspath plagioclase) et de minéraux annexes (pyroxène, micas). Elle est utilisée comme roche ornementale et de construction et comme granulat.'
+      'Roche métamorphique présentant de bonnes caractéristiques géomécaniques, de couleur sombre (gris à vert foncé) riche en silicates calciques et ferromagnésiens (essentiellement hornblende, mais aussi feldspath plagioclase) et de minéraux annexes (pyroxène, micas). Elle est utilisée comme roche ornementale et de construction et comme granulat.',
   },
   anda: {
     id: 'anda',
     nom: 'andalousite / sillimanite / kyanite - (cyanite - disthène)',
     domaineIds: ['c'],
     description:
-      "Minéral - Silicate d'alumine (SiAl2O5). L'andalousite, la silimanite et la Kyanite (Cyanite ou Disthème) ont la même composition chimique mais avec une structure cristalline et des propriétés physico-minéraloriques différentes (triclinique) autrement dit une variété allotropique (même formule chimique mais système cristallin différent). En France, on ne connait pas de gisement de Kyanite à ce jour. L'andalousite et la silimanite y sont exploitées et sont utilisées dans l'industrie. L'andalousite est utilisée pour ses propriétés réfractaires et son excellente résistance aux chocs thermiques. La silimanite, utilisée pour le même usage réfractaire, a toutefois des propriétés physico-minéraloriques sensiblement différentes de l'andalousite."
+      "Minéral - Silicate d'alumine (SiAl2O5). L'andalousite, la silimanite et la Kyanite (Cyanite ou Disthème) ont la même composition chimique mais avec une structure cristalline et des propriétés physico-minéraloriques différentes (triclinique) autrement dit une variété allotropique (même formule chimique mais système cristallin différent). En France, on ne connait pas de gisement de Kyanite à ce jour. L'andalousite et la silimanite y sont exploitées et sont utilisées dans l'industrie. L'andalousite est utilisée pour ses propriétés réfractaires et son excellente résistance aux chocs thermiques. La silimanite, utilisée pour le même usage réfractaire, a toutefois des propriétés physico-minéraloriques sensiblement différentes de l'andalousite.",
   },
   ande: {
     id: 'ande',
     nom: 'andésite',
     domaineIds: ['c'],
     description:
-      "Roche volcanique de couleur gris-clair constituée de cristaux de silicates (plagioclases, biotite, hornblende, pyroxène) dans une matrice vitreuse, avec une bonne homogénéité texturale. Elle présente une bonne résistance mécanique et à l'abrasion."
+      "Roche volcanique de couleur gris-clair constituée de cristaux de silicates (plagioclases, biotite, hornblende, pyroxène) dans une matrice vitreuse, avec une bonne homogénéité texturale. Elle présente une bonne résistance mécanique et à l'abrasion.",
   },
   anhy: {
     id: 'anhy',
     nom: 'anhydrite',
     domaineIds: ['c'],
     description:
-      "Forme anhydre (CaSO4) du sulfate de calcium hydraté (gypse), utilisée comme charge dans l'industrie des peintures, plastiques et comme régulateur de prise dans les ciments, plus rarement comme amendement."
+      "Forme anhydre (CaSO4) du sulfate de calcium hydraté (gypse), utilisée comme charge dans l'industrie des peintures, plastiques et comme régulateur de prise dans les ciments, plus rarement comme amendement.",
   },
   ardo: {
     id: 'ardo',
     nom: 'ardoises',
     domaineIds: ['c'],
     description:
-      "Roche schistosée, à l'origine une argile, ayant subi un faible métamorphisme. Variétés gris-bleuté à noire dont la texture (à grains très fin et homogène) et la fissillité (débit en plaques fines) sont mis à profit pour la fabrication d'éléments de toiture, de parement et de dallage pour les variétés plus gréseuses (autres utilisations possibles: additifs pour la fabrication du clinker et des ciments)."
+      "Roche schistosée, à l'origine une argile, ayant subi un faible métamorphisme. Variétés gris-bleuté à noire dont la texture (à grains très fin et homogène) et la fissillité (débit en plaques fines) sont mis à profit pour la fabrication d'éléments de toiture, de parement et de dallage pour les variétés plus gréseuses (autres utilisations possibles: additifs pour la fabrication du clinker et des ciments).",
   },
   argc: {
     id: 'argc',
     nom: 'argiles communes',
     domaineIds: ['c'],
     description:
-      "Roche sédimentaire tendre à grain très fin, constituée de minéraux argileux à dominante de smectites-illites, ainsi que d'autres minéraux (quartz, oxydes...) de couleur gris-foncé, brune, jaune-oranger ou rougeâtre. Elles forment une pâte en présence d'eau et durcissent à la cuisson (terres-cuites). peuvent être utilisées (10 à 20%) dans la fabrication du clinker, constituant de base de tous les ciments."
+      "Roche sédimentaire tendre à grain très fin, constituée de minéraux argileux à dominante de smectites-illites, ainsi que d'autres minéraux (quartz, oxydes...) de couleur gris-foncé, brune, jaune-oranger ou rougeâtre. Elles forment une pâte en présence d'eau et durcissent à la cuisson (terres-cuites). peuvent être utilisées (10 à 20%) dans la fabrication du clinker, constituant de base de tous les ciments.",
   },
   argf: {
     id: 'argf',
     nom: 'argiles fibreuses (attapulgites ou palygorskites, sépiolites)',
     domaineIds: ['c'],
     description:
-      "Roches sédimentaires tendre à grains fins, constituées majoritairement d'argiles alumino-magnésiennes (fibres de 1 à 3 µm de long et de 100 à 300 Angstroms de large. La différence entre la largeur des fibres permet de différentier les sépiolites des attapulgites). L'existence de micropores entre les fibres, confèrent à ces argiles une grande capacité d'absorption."
+      "Roches sédimentaires tendre à grains fins, constituées majoritairement d'argiles alumino-magnésiennes (fibres de 1 à 3 µm de long et de 100 à 300 Angstroms de large. La différence entre la largeur des fibres permet de différentier les sépiolites des attapulgites). L'existence de micropores entre les fibres, confèrent à ces argiles une grande capacité d'absorption.",
   },
   argk: {
     id: 'argk',
     nom: 'argiles kaoliniques',
     domaineIds: ['c'],
     description:
-      'Roche sédimentaire tendre à grains très fins constituée principalement de kaolinite (minéral argileux blanc à crème) utilisée pour ses propriétés en céramiques communes (sanitaires) et pour matériaux réfractaires (fabrication de chamottes).'
+      'Roche sédimentaire tendre à grains très fins constituée principalement de kaolinite (minéral argileux blanc à crème) utilisée pour ses propriétés en céramiques communes (sanitaires) et pour matériaux réfractaires (fabrication de chamottes).',
   },
   args: {
     id: 'args',
     nom: 'argiles',
     domaineIds: ['c'],
-    description: `Roches sédimentaires peu consolidées formées de minéraux argileux comme la montmorillonite (silicate d'aluminium et de magnésium hydraté) et la beidellite (silicate naturel d'aluminium hydraté). Ces phyllosilicates ont des propriétés physico-chimiques (gonflement en présence d'eau, rhéologie, adsorption, échanges cationiques...) avec de nombreuses applications dans les secteurs industriels (chimie, métallurgie, environnement, produit de collage en œnologie pour l'élimination des protéines des vins blancs et rosés. Synonyme : bentonite, "terre à foulon".`
+    description: `Roches sédimentaires peu consolidées formées de minéraux argileux comme la montmorillonite (silicate d'aluminium et de magnésium hydraté) et la beidellite (silicate naturel d'aluminium hydraté). Ces phyllosilicates ont des propriétés physico-chimiques (gonflement en présence d'eau, rhéologie, adsorption, échanges cationiques...) avec de nombreuses applications dans les secteurs industriels (chimie, métallurgie, environnement, produit de collage en œnologie pour l'élimination des protéines des vins blancs et rosés. Synonyme : bentonite, "terre à foulon".`,
   },
   asta: { id: 'asta', nom: 'astate', domaineIds: ['r'] },
   bary: {
@@ -496,14 +496,14 @@ export const SubstancesLegale: {
     nom: 'barytine',
     domaineIds: ['c'],
     description:
-      'Minéral - Sulfate de baryum (BaSO4) présentant une forte densité (4,5) et une bonne inertie chimique utilisé comme charge minérale dans les boues de forage, les bétons spéciaux des installations nucléaires (radioprotection) et certaines peintures industrielles.'
+      'Minéral - Sulfate de baryum (BaSO4) présentant une forte densité (4,5) et une bonne inertie chimique utilisé comme charge minérale dans les boues de forage, les bétons spéciaux des installations nucléaires (radioprotection) et certaines peintures industrielles.',
   },
   basa: {
     id: 'basa',
     nom: 'basalte',
     domaineIds: ['c'],
     description:
-      'Roche volcanique dure et massive de couleur gris-foncé à noire, constituée de fin cristaux (pyroxène et olivine) dans une masse vitreuse. Excellentes propriétés mécaniques (dureté), utilisation en tant que granulats et roche ornementale et de construction.'
+      'Roche volcanique dure et massive de couleur gris-foncé à noire, constituée de fin cristaux (pyroxène et olivine) dans une masse vitreuse. Excellentes propriétés mécaniques (dureté), utilisation en tant que granulats et roche ornementale et de construction.',
   },
   bitu: { id: 'bitu', nom: 'bitume', domaineIds: ['f'] },
   buta: { id: 'buta', nom: 'butane', domaineIds: ['s'] },
@@ -513,21 +513,21 @@ export const SubstancesLegale: {
     nom: 'calcaires',
     domaineIds: ['c'],
     description:
-      "Roche sédimentaire (couleur blanc-beige-gris) principalement constituée de calcite (carbonate de calcium (CaCO3) faisant effervescence à l'acide). Caractéristiques pétrophysiques et géomécaniques très hétérogènes en fonction de la cristallinité, porosité, teneur en autres constituants (argiles, quartz...). Pour les variétés de haute pureté et blancheur, utilisations comme charges minérales. Autres utilisations : sidérurgie, verrerie, amendements, principale matière première pour la fabrication du clinker et de la chaux. Elle est également très employée en tant pierre ornementale et de construction et pour les granulats."
+      "Roche sédimentaire (couleur blanc-beige-gris) principalement constituée de calcite (carbonate de calcium (CaCO3) faisant effervescence à l'acide). Caractéristiques pétrophysiques et géomécaniques très hétérogènes en fonction de la cristallinité, porosité, teneur en autres constituants (argiles, quartz...). Pour les variétés de haute pureté et blancheur, utilisations comme charges minérales. Autres utilisations : sidérurgie, verrerie, amendements, principale matière première pour la fabrication du clinker et de la chaux. Elle est également très employée en tant pierre ornementale et de construction et pour les granulats.",
   },
   cals: {
     id: 'cals',
     nom: 'calcschiste',
     domaineIds: ['c'],
     description:
-      "Roche métamorphique, d'aspect rubané, provenant de formations argileuses plus ou moins carbonatées comme les marnes et calcaires marneux. Peut être utilisée comme matière première en remplacement du calcaire et/ou des marnes dans la fabrication du clinker, le constituant de base des ciments."
+      "Roche métamorphique, d'aspect rubané, provenant de formations argileuses plus ou moins carbonatées comme les marnes et calcaires marneux. Peut être utilisée comme matière première en remplacement du calcaire et/ou des marnes dans la fabrication du clinker, le constituant de base des ciments.",
   },
   cend: {
     id: 'cend',
     nom: 'cendres volcaniques riches en silice',
     domaineIds: ['c'],
     description:
-      'Roche volcanique formée de fragments généralement à grains fins, peu indurée (pulvérulente) ou indurée. Elle est utilisée en tant que granulats ou comme roches ornementales et de construction.'
+      'Roche volcanique formée de fragments généralement à grains fins, peu indurée (pulvérulente) ou indurée. Elle est utilisée en tant que granulats ou comme roches ornementales et de construction.',
   },
   cfan: { id: 'cfan', nom: 'anthracite', domaineIds: ['f'] },
   cfch: { id: 'cfch', nom: 'charbon', domaineIds: ['f'] },
@@ -538,55 +538,55 @@ export const SubstancesLegale: {
     nom: 'cornéenne',
     domaineIds: ['c'],
     description:
-      "Roche métamorphique cristalline plus ou moins orientée, habituellement très dure produite sous l'action de la chaleur d'un magma en fusion (métamorphisme de contact). Les grains sont d'une grosseur homogène et ne suivent pas une orientation préférentielle. Leur composition minéralogique varie selon le degré de métamorphisme et la nature des roches initiales. Elles présentent en général de bonnes résistances au choc et à l'abrasion."
+      "Roche métamorphique cristalline plus ou moins orientée, habituellement très dure produite sous l'action de la chaleur d'un magma en fusion (métamorphisme de contact). Les grains sont d'une grosseur homogène et ne suivent pas une orientation préférentielle. Leur composition minéralogique varie selon le degré de métamorphisme et la nature des roches initiales. Elles présentent en général de bonnes résistances au choc et à l'abrasion.",
   },
   crai: {
     id: 'crai',
     nom: 'craie',
     domaineIds: ['c'],
     description:
-      "Roche sédimentaire fine, tendre, friable, de couleur blanche, composée de calcite(CaCO3) d'origine fossilifère. En amendement, est utilisée sous forme pulvérisée, broyée, concassée ou brute pour corriger les sols acides. En liant hydraulique, elle est utilisée dans des proportions de 80 à 90% dans la fabrication du clinker, le constituant de base du ciment mais sert également à la fabrication de chaux et de mortier. Pour les minéraux industriels, la pureté et la blancheur autorisent une utilisation comme charge minérale."
+      "Roche sédimentaire fine, tendre, friable, de couleur blanche, composée de calcite(CaCO3) d'origine fossilifère. En amendement, est utilisée sous forme pulvérisée, broyée, concassée ou brute pour corriger les sols acides. En liant hydraulique, elle est utilisée dans des proportions de 80 à 90% dans la fabrication du clinker, le constituant de base du ciment mais sert également à la fabrication de chaux et de mortier. Pour les minéraux industriels, la pureté et la blancheur autorisent une utilisation comme charge minérale.",
   },
   daci: {
     id: 'daci',
     nom: 'dacite',
     domaineIds: ['c'],
     description:
-      'Roche volcanique de couleur gris-clair constituée de fins cristaux de quartz, plagioclase et silicates ferro-magnésiens baignant dans un verre. Elle est utilisée comme roche ornementale ou de construction et comme granulat.'
+      'Roche volcanique de couleur gris-clair constituée de fins cristaux de quartz, plagioclase et silicates ferro-magnésiens baignant dans un verre. Elle est utilisée comme roche ornementale ou de construction et comme granulat.',
   },
   diab: {
     id: 'diab',
     nom: 'diabase',
     domaineIds: ['c'],
-    description: "Roche métamorphique dure, d'origine volcanique à grain fin de couleur sombre (issue de dolérite). Elle est utilisé comme granulat."
+    description: "Roche métamorphique dure, d'origine volcanique à grain fin de couleur sombre (issue de dolérite). Elle est utilisé comme granulat.",
   },
   diat: {
     id: 'diat',
     nom: 'diatomites',
     domaineIds: ['c'],
     description:
-      'Roche sédimentaire tendre et légère formée par accumulation de carapaces siliceuses de micro-organismes en milieux lacustes ou marins. Utilisations industrielles : filtration de liquides alimentaires, charge minérale, absorbant de pollutions. En liant hydraulique, elle peut être utilisée comme additifs pour la fabrication de certains ciments.'
+      'Roche sédimentaire tendre et légère formée par accumulation de carapaces siliceuses de micro-organismes en milieux lacustes ou marins. Utilisations industrielles : filtration de liquides alimentaires, charge minérale, absorbant de pollutions. En liant hydraulique, elle peut être utilisée comme additifs pour la fabrication de certains ciments.',
   },
   dior: {
     id: 'dior',
     nom: 'diorites',
     domaineIds: ['c'],
     description:
-      'Roche plutonique cristalline à texture grenue et homogène, constituée de feldspaths blanchâtres et de silicates ferro-magnésiens colorés (amphiboles, biotite...). En roche ornemental et de construction, elle est sélectionnée pour son aspect décoratif. En granulat, cette roche présente de bonnes caractéristiques mécaniques.'
+      'Roche plutonique cristalline à texture grenue et homogène, constituée de feldspaths blanchâtres et de silicates ferro-magnésiens colorés (amphiboles, biotite...). En roche ornemental et de construction, elle est sélectionnée pour son aspect décoratif. En granulat, cette roche présente de bonnes caractéristiques mécaniques.',
   },
   dole: {
     id: 'dole',
     nom: 'dolérite',
     domaineIds: ['c'],
     description:
-      "Roche volcanique massive, compacte, de couleur sombre (grise à noire), composée de fins cristaux de feldspaths calciques, de pyroxène et parfois d'oxydes de fer. Elle est utilisée en tant que granulats ou en roche ornementale et de construction. On la trouve en association possible des dolérites altérées (diabases issues du métamorphisme des dolérites)."
+      "Roche volcanique massive, compacte, de couleur sombre (grise à noire), composée de fins cristaux de feldspaths calciques, de pyroxène et parfois d'oxydes de fer. Elle est utilisée en tant que granulats ou en roche ornementale et de construction. On la trouve en association possible des dolérites altérées (diabases issues du métamorphisme des dolérites).",
   },
   dolo: {
     id: 'dolo',
     nom: 'dolomie',
     domaineIds: ['c'],
     description:
-      "Roche sédimentaire constituée principalement de dolomite (carbonate double de calcium et de magnésium). Utilisée comme charge minérale dans de nombreuses applications : peintures et enduits, élastomères, papiers et revêtements de sol ou dans l'industrie du verre. Au regard de ses propriétés chimiques, est utilisée comme amendement sous forme pulvérisée, broyée, pour corriger le pH des sols acides."
+      "Roche sédimentaire constituée principalement de dolomite (carbonate double de calcium et de magnésium). Utilisée comme charge minérale dans de nombreuses applications : peintures et enduits, élastomères, papiers et revêtements de sol ou dans l'industrie du verre. Au regard de ses propriétés chimiques, est utilisée comme amendement sous forme pulvérisée, broyée, pour corriger le pH des sols acides.",
   },
   dysp: { id: 'dysp', nom: 'dysprosium', domaineIds: ['m'] },
   erbi: { id: 'erbi', nom: 'erbium', domaineIds: ['m'] },
@@ -597,21 +597,21 @@ export const SubstancesLegale: {
     nom: 'faluns',
     domaineIds: ['c'],
     description:
-      "Roche sédimentaire meuble d'origine détritique riche en débris de coquilles d'animaux marins. Facilement délitable et transformée en sable, elle est utilisée en tant qu'amendement agricole en substitution de carbonate de calcium ou de calcite. Par le passé, cette roche a été utilisée comme sarcophage pour conserver les corps au regard de sa porosité qui permet d'éviter la putréfaction des chairs et d'absorber les exudats."
+      "Roche sédimentaire meuble d'origine détritique riche en débris de coquilles d'animaux marins. Facilement délitable et transformée en sable, elle est utilisée en tant qu'amendement agricole en substitution de carbonate de calcium ou de calcite. Par le passé, cette roche a été utilisée comme sarcophage pour conserver les corps au regard de sa porosité qui permet d'éviter la putréfaction des chairs et d'absorber les exudats.",
   },
   feld: {
     id: 'feld',
     nom: 'feldspaths',
     domaineIds: ['c'],
     description:
-      'Minéral - Principal constituant de nombreuses roches magmatiques dont la composition varie entre des pôles potassique (KAlSi3O8), sodique (NaAlSi3O8) et calcique (CaAl2Si2O8), utilisé en céramique et dans la verrerie.'
+      'Minéral - Principal constituant de nombreuses roches magmatiques dont la composition varie entre des pôles potassique (KAlSi3O8), sodique (NaAlSi3O8) et calcique (CaAl2Si2O8), utilisé en céramique et dans la verrerie.',
   },
   gabb: {
     id: 'gabb',
     nom: 'gabbro',
     domaineIds: ['c'],
     description:
-      'Roche plutonique grenue de couleur sombre, contenant des feldspaths calciques et du pyroxène (olivine, biotite et hornblende associés). Cette roche présente généralement de bonnes caractéristiques mécaniques qui la rendent utilisable comme roche ornementale et de construction et comme granulat.'
+      'Roche plutonique grenue de couleur sombre, contenant des feldspaths calciques et du pyroxène (olivine, biotite et hornblende associés). Cette roche présente généralement de bonnes caractéristiques mécaniques qui la rendent utilisable comme roche ornementale et de construction et comme granulat.',
   },
   gado: { id: 'gado', nom: 'gadolinium', domaineIds: ['m'] },
   galt: {
@@ -619,7 +619,7 @@ export const SubstancesLegale: {
     nom: 'galets',
     domaineIds: ['w'],
     description:
-      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat."
+      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat.",
   },
   gazn: { id: 'gazn', nom: 'gaz naturel', domaineIds: ['s'] },
   glac: {
@@ -627,62 +627,62 @@ export const SubstancesLegale: {
     nom: 'dépôt glaciaire',
     domaineIds: ['c'],
     description:
-      "Mélange de roches sédimentaires détritiques hétérogènes d'origine glaciaire constituées de fragments hétérométriques, unis par un ciment naturel (moraines et tillites). Les moraines se présentent sous forme de blocs, de cailloux de sables et d'argiles. Elles peuvent être valorisées comme granulat. Les tillites sont des conglomérats à éléments arrondis et anguleux, suffisamment indurées (dures) pour être valorisées également comme granulat ou comme roche ornementale et de construction."
+      "Mélange de roches sédimentaires détritiques hétérogènes d'origine glaciaire constituées de fragments hétérométriques, unis par un ciment naturel (moraines et tillites). Les moraines se présentent sous forme de blocs, de cailloux de sables et d'argiles. Elles peuvent être valorisées comme granulat. Les tillites sont des conglomérats à éléments arrondis et anguleux, suffisamment indurées (dures) pour être valorisées également comme granulat ou comme roche ornementale et de construction.",
   },
   gnei: {
     id: 'gnei',
     nom: 'gneiss',
     domaineIds: ['c'],
     description:
-      'Roche métamorphique cristalline à faciès rubanné ou lenticulaire (alternance de lits clairs quartzo-feldspathiques et de lits sombres à micas, amphiboles et pyroxènes). Utilisée en tant que granulats pour ses propriétés mécaniques ou en tant que roche ornementale et de construction pour son aspect décoratif.'
+      'Roche métamorphique cristalline à faciès rubanné ou lenticulaire (alternance de lits clairs quartzo-feldspathiques et de lits sombres à micas, amphiboles et pyroxènes). Utilisée en tant que granulats pour ses propriétés mécaniques ou en tant que roche ornementale et de construction pour son aspect décoratif.',
   },
   grai: {
     id: 'grai',
     nom: 'granite et granulite',
     domaineIds: ['c'],
-    description: `Roche plutonique cristalline à texture grenue de couleur claire (gris, rose ou jaune) composée de quartz, feldspaths et micas, sélectionnée pour son aspect décoratif. Pour les roches ornementales et de construction, une définition "commerciale" existe également et est différente de celle-ci dite "acceptation scientifique" (cf. point 2.1.156 NF EN 12670 : 2001 page 16). Pour les granulats, cette roche présente de bonnes caractéristiques de rugosité. Pour les minéraux industriels, cette roche rendue friable par l'altération (arénisation) facilite l'extraction de tout ou partie de ses constituants (quartz, feldspaths et micas). Nota : Le terme GRANULITE était utilisé autrefois pour désigner des granites de couleur claire à 2 micas (noir et blanc). qui sont valorisées pour leur aspect esthétique dans le domaine des roches ornementales et de construction.`
+    description: `Roche plutonique cristalline à texture grenue de couleur claire (gris, rose ou jaune) composée de quartz, feldspaths et micas, sélectionnée pour son aspect décoratif. Pour les roches ornementales et de construction, une définition "commerciale" existe également et est différente de celle-ci dite "acceptation scientifique" (cf. point 2.1.156 NF EN 12670 : 2001 page 16). Pour les granulats, cette roche présente de bonnes caractéristiques de rugosité. Pour les minéraux industriels, cette roche rendue friable par l'altération (arénisation) facilite l'extraction de tout ou partie de ses constituants (quartz, feldspaths et micas). Nota : Le terme GRANULITE était utilisé autrefois pour désigner des granites de couleur claire à 2 micas (noir et blanc). qui sont valorisées pour leur aspect esthétique dans le domaine des roches ornementales et de construction.`,
   },
   grao: {
     id: 'grao',
     nom: 'granodiorite',
     domaineIds: ['c'],
     description:
-      "Roche plutonique grenue dont la composition est intermédiaire entre le granite et la diorite. Elle est principalement constituée de quartz (> 10 %) et de feldspaths de couleur claire. Les minéraux secondaires sont la biotite (grains sombres vert, brun ou noir), l'amphibole et le pyroxène. La Pierre de Rosette qui permit de percer le mystère des hiéroglyphes est en granodiorite."
+      "Roche plutonique grenue dont la composition est intermédiaire entre le granite et la diorite. Elle est principalement constituée de quartz (> 10 %) et de feldspaths de couleur claire. Les minéraux secondaires sont la biotite (grains sombres vert, brun ou noir), l'amphibole et le pyroxène. La Pierre de Rosette qui permit de percer le mystère des hiéroglyphes est en granodiorite.",
   },
   gref: {
     id: 'gref',
     nom: 'grès silico-ferrugineux',
     domaineIds: ['c'],
     description:
-      "Roche sédimentaire de couleur brun-orangé constituée d'un mélange de silice et d'oxydes et hydroxydes de fer, utilisée en tant que minéraux industriels, comme agent colorant en céramique."
+      "Roche sédimentaire de couleur brun-orangé constituée d'un mélange de silice et d'oxydes et hydroxydes de fer, utilisée en tant que minéraux industriels, comme agent colorant en céramique.",
   },
   gres: {
     id: 'gres',
     nom: 'grès',
     domaineIds: ['c'],
     description:
-      "Roche sédimentaire plus ou moins indurée et stratifiée, composée de grains de quartz d'origine détritique (d'une taille comprise entre 63 µm et 2 mm) soudés par un ciment interstitiel de nature variable (calcite, oxydes de fer, silice, minéraux argileux). Dans le domaine des granulats et des roches ornementales et de construction, les propriétés mécaniques et l'aspect esthétique sont valorisés. Dans le domaine des minéraux industriels, elle est utilisée comme source de silice pour la production de ferro-silicium."
+      "Roche sédimentaire plus ou moins indurée et stratifiée, composée de grains de quartz d'origine détritique (d'une taille comprise entre 63 µm et 2 mm) soudés par un ciment interstitiel de nature variable (calcite, oxydes de fer, silice, minéraux argileux). Dans le domaine des granulats et des roches ornementales et de construction, les propriétés mécaniques et l'aspect esthétique sont valorisés. Dans le domaine des minéraux industriels, elle est utilisée comme source de silice pour la production de ferro-silicium.",
   },
   grsi: {
     id: 'grsi',
     nom: 'graviers siliceux',
     domaineIds: ['w'],
     description:
-      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat."
+      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat.",
   },
   gyps: {
     id: 'gyps',
     nom: 'gypse',
     domaineIds: ['c'],
     description:
-      "Minéral - Sulfate de calcium hydraté (CaSO4,2H2O). Dans le domaine des liants hydrauliques, ce minéral est utilisé pour la fabrication du plâtre et comme régulateur de prise dans les ciments. Dans le domaine des minéraux industriel, sa pureté chimique et ses caractéristiques physiques comme la blancheur lui permettent d'être utilisé comme charge minérale. Dans le domaine de l'amendement, sa propriété chimique (base) est utilisée pour corriger les sols acides."
+      "Minéral - Sulfate de calcium hydraté (CaSO4,2H2O). Dans le domaine des liants hydrauliques, ce minéral est utilisé pour la fabrication du plâtre et comme régulateur de prise dans les ciments. Dans le domaine des minéraux industriel, sa pureté chimique et ses caractéristiques physiques comme la blancheur lui permettent d'être utilisé comme charge minérale. Dans le domaine de l'amendement, sa propriété chimique (base) est utilisée pour corriger les sols acides.",
   },
   holm: { id: 'holm', nom: 'holmium', domaineIds: ['m'] },
   hyda: { id: 'hyda', nom: 'asphalte', domaineIds: ['h'] },
   hydc: {
     id: 'hydc',
     nom: 'hydrocarbures conventionnels liquides ou gazeux',
-    domaineIds: ['h']
+    domaineIds: ['h'],
   },
   hydg: { id: 'hydg', nom: 'gaz combustible', domaineIds: ['s'] },
   hydo: { id: 'hydo', nom: 'hydrocarbures liquides', domaineIds: ['h', 's'] },
@@ -693,14 +693,14 @@ export const SubstancesLegale: {
     nom: 'kaolin',
     domaineIds: ['c'],
     description:
-      "Minéral - Extrait de roches granitiques ou sédimentaires composées principalement de kaolinite (silicate d'alumine hydraté Al2Si2O5(OH)4). Le kaolin est utilisé pour sa grande pureté et sa blancheur en céramique (porcelaine) ou comme charges minérales (papier, peinture, etc.). Il peut être également utilisé comme matière première en remplacement de l'argile dans la fabrication de certains clinkers pour ciments blancs (Portland)."
+      "Minéral - Extrait de roches granitiques ou sédimentaires composées principalement de kaolinite (silicate d'alumine hydraté Al2Si2O5(OH)4). Le kaolin est utilisé pour sa grande pureté et sa blancheur en céramique (porcelaine) ou comme charges minérales (papier, peinture, etc.). Il peut être également utilisé comme matière première en remplacement de l'argile dans la fabrication de certains clinkers pour ciments blancs (Portland).",
   },
   lant: { id: 'lant', nom: 'lanthane', domaineIds: ['m'] },
   lept: {
     id: 'lept',
     nom: 'leptynite',
     domaineIds: ['c'],
-    description: 'Roche métamorphique cristallisée et orientée de couleur claire composée de quartz, feldspath et micas en faible quantité présentant une bonne résistance mécanique.'
+    description: 'Roche métamorphique cristallisée et orientée de couleur claire composée de quartz, feldspath et micas en faible quantité présentant une bonne résistance mécanique.',
   },
   lute: { id: 'lute', nom: 'lutécium', domaineIds: ['m'] },
   maer: {
@@ -708,21 +708,21 @@ export const SubstancesLegale: {
     nom: 'maërl',
     domaineIds: ['w'],
     description:
-      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat."
+      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat.",
   },
   mais: { id: 'mais', nom: 'minerais', domaineIds: ['m'] },
   marb: {
     id: 'marb',
     nom: 'marbres',
     domaineIds: ['c'],
-    description: `Roche métamorphique cristalline plus ou moins rubanée, contenant plus de 50 % de carbonates (calcite et plus rarement dolomite) dans laquelle les minéraux ont totalement recristallisé avec des traces d'oxydes métalliques ou d'impuretés lui donnant une grande variété de couleurs. Le métamorphisme de cette roche lui confère une plus grande dureté. Dans le domaine des roches ornementales, elle est sélectionnée pour son aspect décoratif, la recristallisation de ses composants favorise son polissage. Une définition "commerciale" existe également et est différente de celle-ci dite "acceptation scientifique" (cf. point 2.1.243 NF EN 12670 : 2001 page 22). Dans le domaine des granulats, elle est sélectionnée pour ses propriétés mécaniques (dureté, résistance aux chocs). Dans le domaine des liants hydrauliques, elle peut être utilisée comme matière première en remplacement du calcaire dans la fabrication du clinker, le constituant de base des ciments. Dans le domaine de l'amendement les composants calciques ou magnésiens sont particulièrement utiles pour la correction de pH des milieux acides. Dans le domaine des minéraux industriels, elle est utilisée, après calcination en carbonate de calcium, comme: - charge minérale dans de nombreuses applications industrielles (papier, peinture, plastiques, élastomères) - ou transformée en chaux pour la correction de pH des milieux acides.`
+    description: `Roche métamorphique cristalline plus ou moins rubanée, contenant plus de 50 % de carbonates (calcite et plus rarement dolomite) dans laquelle les minéraux ont totalement recristallisé avec des traces d'oxydes métalliques ou d'impuretés lui donnant une grande variété de couleurs. Le métamorphisme de cette roche lui confère une plus grande dureté. Dans le domaine des roches ornementales, elle est sélectionnée pour son aspect décoratif, la recristallisation de ses composants favorise son polissage. Une définition "commerciale" existe également et est différente de celle-ci dite "acceptation scientifique" (cf. point 2.1.243 NF EN 12670 : 2001 page 22). Dans le domaine des granulats, elle est sélectionnée pour ses propriétés mécaniques (dureté, résistance aux chocs). Dans le domaine des liants hydrauliques, elle peut être utilisée comme matière première en remplacement du calcaire dans la fabrication du clinker, le constituant de base des ciments. Dans le domaine de l'amendement les composants calciques ou magnésiens sont particulièrement utiles pour la correction de pH des milieux acides. Dans le domaine des minéraux industriels, elle est utilisée, après calcination en carbonate de calcium, comme: - charge minérale dans de nombreuses applications industrielles (papier, peinture, plastiques, élastomères) - ou transformée en chaux pour la correction de pH des milieux acides.`,
   },
   marn: {
     id: 'marn',
     nom: 'marnes',
     domaineIds: ['c'],
     description:
-      "Roche sédimentaire plus ou moins indurée (dure) et stratifiée (couches successives de sédiments) composée d'un mélange de carbonate de calcium (CaCO3) et d'argiles de différentes natures (de 35% à 65%). Usages : Dans le domaine des granulats, l'emploi de cette roche est exceptionnel bien que présent dans les couches de découverte et que ces caractéristiques mécaniques soient compatibles avec cet usage. Si elle est utilisée comme granulat, c'est principalement sous forme de remblai et encore plus exceptionnellement en granulat pour béton. Dans le domaine de l'agriculture, cette roche est employée comme amendement du fait du mélange carbonate de calcium et argile qu'elle contient. Dans le domaine des liants hydrauliques, cette roche est souvent utilisée comme matière première en remplacement du calcaire et/ou de l'argile dans la fabrication du clinker, le constituant de base des ciments. Dans le domaine des minéraux industriels, elle est exploitée en fonction de sa richesse en calcite afin de constituer des charges minérales. Nota: Les marnes ont une composition chimique intermédiaire entre les calcaires marneux (5 à 35% d'argiles) et les argiles calcareuses ou marnes argileuses (65 à 95% d'argiles)."
+      "Roche sédimentaire plus ou moins indurée (dure) et stratifiée (couches successives de sédiments) composée d'un mélange de carbonate de calcium (CaCO3) et d'argiles de différentes natures (de 35% à 65%). Usages : Dans le domaine des granulats, l'emploi de cette roche est exceptionnel bien que présent dans les couches de découverte et que ces caractéristiques mécaniques soient compatibles avec cet usage. Si elle est utilisée comme granulat, c'est principalement sous forme de remblai et encore plus exceptionnellement en granulat pour béton. Dans le domaine de l'agriculture, cette roche est employée comme amendement du fait du mélange carbonate de calcium et argile qu'elle contient. Dans le domaine des liants hydrauliques, cette roche est souvent utilisée comme matière première en remplacement du calcaire et/ou de l'argile dans la fabrication du clinker, le constituant de base des ciments. Dans le domaine des minéraux industriels, elle est exploitée en fonction de sa richesse en calcite afin de constituer des charges minérales. Nota: Les marnes ont une composition chimique intermédiaire entre les calcaires marneux (5 à 35% d'argiles) et les argiles calcareuses ou marnes argileuses (65 à 95% d'argiles).",
   },
   meba: { id: 'meba', nom: 'métaux de base', domaineIds: ['m'] },
   meco: { id: 'meco', nom: 'métaux connexes', domaineIds: ['m'] },
@@ -732,27 +732,27 @@ export const SubstancesLegale: {
     nom: 'micas',
     domaineIds: ['c'],
     description:
-      "Minéral - Silicates en feuillets riches en aluminium et potassium (micas blancs) ou en magnésium et fer (micas noirs) dont les propriétés physico-minéralogiques trouvent de nombreuses applications dans les domaines de l'isolation et des charges minérales."
+      "Minéral - Silicates en feuillets riches en aluminium et potassium (micas blancs) ou en magnésium et fer (micas noirs) dont les propriétés physico-minéralogiques trouvent de nombreuses applications dans les domaines de l'isolation et des charges minérales.",
   },
   mics: {
     id: 'mics',
     nom: 'micaschistes',
     domaineIds: ['c'],
     description:
-      "Roche métamorphique cristallisée et schisteuse caractérisée par l'abondance de la fraction micacée et une plus faible teneur en quartz. Dans le domaine des roches ornementales et de construction, les proportions de quartz et de micas déterminent les propriétés de la roche comme la fissilité pour la production de dallage ou de couverture. Sa richesse en mica confère un aspect brillant à sa surface. Dans le domaine des minéraux industriel, cette roche est valorisée dans des applications de type charge minérale."
+      "Roche métamorphique cristallisée et schisteuse caractérisée par l'abondance de la fraction micacée et une plus faible teneur en quartz. Dans le domaine des roches ornementales et de construction, les proportions de quartz et de micas déterminent les propriétés de la roche comme la fissilité pour la production de dallage ou de couverture. Sa richesse en mica confère un aspect brillant à sa surface. Dans le domaine des minéraux industriel, cette roche est valorisée dans des applications de type charge minérale.",
   },
   migm: {
     id: 'migm',
     nom: 'migmatite',
     domaineIds: ['c'],
-    description: `Roche métamorphique formée d'une alternance de roches de type granite de couleur sombre et de roche de type gneiss de couleur clair. La partie de couleur claire est assimilé à la partie de la roche ayant fondu et est appelée "le mobilisat". La partie de couleur sombre constitue la partie de la roche étant restée solide et est appelée "la restite". Ses bonnes propriétés mécaniques, permettent de l'utiliser comme roche ornementale et de construction ou comme granulat.`
+    description: `Roche métamorphique formée d'une alternance de roches de type granite de couleur sombre et de roche de type gneiss de couleur clair. La partie de couleur claire est assimilé à la partie de la roche ayant fondu et est appelée "le mobilisat". La partie de couleur sombre constitue la partie de la roche étant restée solide et est appelée "la restite". Ses bonnes propriétés mécaniques, permettent de l'utiliser comme roche ornementale et de construction ou comme granulat.`,
   },
   mylo: {
     id: 'mylo',
     nom: 'mylonites',
     domaineIds: ['c'],
     description:
-      "Roche autre cataclastique résultant du cisaillement et du broyage puis de la recristallisation plus ou moins intense de roches préexistantes de différentes natures (éventuellement recristallisées) dans une zone de formation intense de failles. Elle est constituée d'une hétérogénéité de roches."
+      "Roche autre cataclastique résultant du cisaillement et du broyage puis de la recristallisation plus ou moins intense de roches préexistantes de différentes natures (éventuellement recristallisées) dans une zone de formation intense de failles. Elle est constituée d'une hétérogénéité de roches.",
   },
   neod: { id: 'neod', nom: 'néodyme', domaineIds: ['m'] },
   ocre: {
@@ -760,14 +760,14 @@ export const SubstancesLegale: {
     nom: 'ocres',
     domaineIds: ['c'],
     description:
-      "Mélange sédimentaire naturel de kaolinite (argile), d'oxyde de fer rouge (hématite) et d'hydroxyde de fer jaune-oranger (limonite) utilisé pour la production de pigments naturels dans les peintures et les enduits."
+      "Mélange sédimentaire naturel de kaolinite (argile), d'oxyde de fer rouge (hématite) et d'hydroxyde de fer jaune-oranger (limonite) utilisé pour la production de pigments naturels dans les peintures et les enduits.",
   },
   ophi: {
     id: 'ophi',
     nom: 'ophite',
     domaineIds: ['c'],
     description:
-      'Roche plutonique intermédiaire entre basalte et gabbro présentant un faciès plus ou moins altéré de couleur vert-foncé. En tant que roche ornementale et de construction elle est sélectionnée pour son aspect décoratif. Son emploi en tant que granulats est dû à sa dureté et à sa compacité.'
+      'Roche plutonique intermédiaire entre basalte et gabbro présentant un faciès plus ou moins altéré de couleur vert-foncé. En tant que roche ornementale et de construction elle est sélectionnée pour son aspect décoratif. Son emploi en tant que granulats est dû à sa dureté et à sa compacité.',
   },
   osmi: { id: 'osmi', nom: 'osmium', domaineIds: ['m'] },
   pall: { id: 'pall', nom: 'palladium', domaineIds: ['m'] },
@@ -776,14 +776,14 @@ export const SubstancesLegale: {
     nom: 'perlite',
     domaineIds: ['c'],
     description:
-      "Roche volcanique de couleur claire à texture vitreuse plus ou moins hydratée et composition rhyolitique utilisée dans l'industrie pour la production d'agents filtrants et d'additifs fonctionnels. Elle est utilisée dans l'industrie pour la production d'agents filtrants et d'additifs fonctionnels."
+      "Roche volcanique de couleur claire à texture vitreuse plus ou moins hydratée et composition rhyolitique utilisée dans l'industrie pour la production d'agents filtrants et d'additifs fonctionnels. Elle est utilisée dans l'industrie pour la production d'agents filtrants et d'additifs fonctionnels.",
   },
   phon: {
     id: 'phon',
     nom: 'phonolite',
     domaineIds: ['c'],
     description:
-      'Roche volcanique à grain très fin, de couleur grise tirant parfois sur le vert ou le brun, qui se débite en plaques et qui, sous le choc du métal, rend un son clair (dalles sonores). Sa composition chimique est déficitaire en silice (dite sous-saturées en silice). Le silicium y représente donc moins de la moitié des cations. Ces caractéristiques mécaniques (dureté) permettent son utilisation en tant que granulat. En tant que roche ornementale et de construction, elle est utilisée comme pierre ardoisière en Auvergne. En tant que minéraux industriels, sa composition chimique sous-saturée en silice est recherchée pour les industries du verre et de la céramique.'
+      'Roche volcanique à grain très fin, de couleur grise tirant parfois sur le vert ou le brun, qui se débite en plaques et qui, sous le choc du métal, rend un son clair (dalles sonores). Sa composition chimique est déficitaire en silice (dite sous-saturées en silice). Le silicium y représente donc moins de la moitié des cations. Ces caractéristiques mécaniques (dureté) permettent son utilisation en tant que granulat. En tant que roche ornementale et de construction, elle est utilisée comme pierre ardoisière en Auvergne. En tant que minéraux industriels, sa composition chimique sous-saturée en silice est recherchée pour les industries du verre et de la céramique.',
   },
   pipe: { id: 'pipe', nom: 'pierres précieuses', domaineIds: ['m'] },
   polo: { id: 'polo', nom: 'polonium', domaineIds: ['r'] },
@@ -792,14 +792,14 @@ export const SubstancesLegale: {
     nom: 'porphyre',
     domaineIds: ['c'],
     description:
-      "Roche plutonique caractérisée par une texture intermédiaire constituée de cristaux de feldpaths baignant dans une matrice finement cristallisée. Dans le domaine des roches ornementales et de construction, la couleur variable de cette roche est utilisée pour son aspect décoratif. Dans le domaine des minéraux industriels, cette roche est employée pour ces propriétés mécaniques (dureté, résistance aux chocs et à l'abrasion)."
+      "Roche plutonique caractérisée par une texture intermédiaire constituée de cristaux de feldpaths baignant dans une matrice finement cristallisée. Dans le domaine des roches ornementales et de construction, la couleur variable de cette roche est utilisée pour son aspect décoratif. Dans le domaine des minéraux industriels, cette roche est employée pour ces propriétés mécaniques (dureté, résistance aux chocs et à l'abrasion).",
   },
   pouz: {
     id: 'pouz',
     nom: 'pouzzolane',
     domaineIds: ['c'],
     description:
-      "Roche volcanique scoriacée à texture bulleuse de couleur noire ou rouge brique. Elle est donc assez rarement exploitée en roche de construction sauf dans la région de Clermont-Ferrand et sur l'île de la Réunion. Elle permet la fabrication de moellons utilisés dans le bâtiment compte tenu de leurs propriétés (isolation thermique et phonique) (voir la fiche pouzzolane de Ph. Rocher). L'exploitation en roche ornementale est marginale et est destinée la construction de rocaille décorative dans les jardins d'agrément. En tant que granulats, elle est utilisée comme agent de sablage ou comme agrégat pour la réalisation de massifs drainants. Sa texture bulleuse peu résistante mécaniquement en fait tout de même un granulat léger notamment dans les bétons spéciaux. Dans le domaine des liants hydrauliques, elle peut être utilisée comme additifs pour la fabrication de certains ciments. Dans le domaine des minéraux industriels, elle est utilisée pour ses propriétés d'isolation phonique et thermique."
+      "Roche volcanique scoriacée à texture bulleuse de couleur noire ou rouge brique. Elle est donc assez rarement exploitée en roche de construction sauf dans la région de Clermont-Ferrand et sur l'île de la Réunion. Elle permet la fabrication de moellons utilisés dans le bâtiment compte tenu de leurs propriétés (isolation thermique et phonique) (voir la fiche pouzzolane de Ph. Rocher). L'exploitation en roche ornementale est marginale et est destinée la construction de rocaille décorative dans les jardins d'agrément. En tant que granulats, elle est utilisée comme agent de sablage ou comme agrégat pour la réalisation de massifs drainants. Sa texture bulleuse peu résistante mécaniquement en fait tout de même un granulat léger notamment dans les bétons spéciaux. Dans le domaine des liants hydrauliques, elle peut être utilisée comme additifs pour la fabrication de certains ciments. Dans le domaine des minéraux industriels, elle est utilisée pour ses propriétés d'isolation phonique et thermique.",
   },
   pras: { id: 'pras', nom: 'praséodyme', domaineIds: ['m'] },
   prom: { id: 'prom', nom: 'prométhium', domaineIds: ['m'] },
@@ -812,14 +812,14 @@ export const SubstancesLegale: {
     nom: 'quartz',
     domaineIds: ['c'],
     description:
-      "Minéral - Oxyde de silicium (SiO2) Dans le domaine des granulats, sans grand degré de pureté le quartz est valorisé pour ses caractéristiques mécaniques et certains aspects décoratifs. Dans le domaine des minéraux industriels, sa pureté en SiO2 est recherchée pour sa résistance à l'abrasion dans les revêtements de sols ou comme agent de décapage. Elle constitue une source de silicium pour des applications verre et céramique lorsqu'il présente un très haut degré de pureté."
+      "Minéral - Oxyde de silicium (SiO2) Dans le domaine des granulats, sans grand degré de pureté le quartz est valorisé pour ses caractéristiques mécaniques et certains aspects décoratifs. Dans le domaine des minéraux industriels, sa pureté en SiO2 est recherchée pour sa résistance à l'abrasion dans les revêtements de sols ou comme agent de décapage. Elle constitue une source de silicium pour des applications verre et céramique lorsqu'il présente un très haut degré de pureté.",
   },
   quat: {
     id: 'quat',
     nom: 'quartzites',
     domaineIds: ['c'],
     description:
-      "Roche métamorphique massive composée principalement de quartz issue de la recristallisation et de la cimentation du quartz. Les caractéristiques mécaniques sont favorables à la production de granulats de haute qualité (forte résistance à l'abrasion) ou à une utilisation comme roche ornementale et de construction. Le tombeau de Napoléon, aux Invalides, est réalisé dans un bloc de quartzite. Dans le domaine des minéraux industriels, sa pureté est recherchée pour être utilisée comme matériaux réfractaires."
+      "Roche métamorphique massive composée principalement de quartz issue de la recristallisation et de la cimentation du quartz. Les caractéristiques mécaniques sont favorables à la production de granulats de haute qualité (forte résistance à l'abrasion) ou à une utilisation comme roche ornementale et de construction. Le tombeau de Napoléon, aux Invalides, est réalisé dans un bloc de quartzite. Dans le domaine des minéraux industriels, sa pureté est recherchée pour être utilisée comme matériaux réfractaires.",
   },
   rado: { id: 'rado', nom: 'radon', domaineIds: ['r'] },
   rard: {
@@ -827,14 +827,14 @@ export const SubstancesLegale: {
     nom: 'roches ardoisières',
     domaineIds: ['c'],
     description:
-      "Roche métamorphique qui est à l'origine de l'argile ayant subi un faible métamorphisme et qui est devenue schisteuse. Ces roches ardoisières ont un plan de schistocité épais et peuvent avoir une fraction gréseuse. Elle comprend notamment les lauzes qui sont utilisées comme pierres de construction (dallage ou toiture)."
+      "Roche métamorphique qui est à l'origine de l'argile ayant subi un faible métamorphisme et qui est devenue schisteuse. Ces roches ardoisières ont un plan de schistocité épais et peuvent avoir une fraction gréseuse. Elle comprend notamment les lauzes qui sont utilisées comme pierres de construction (dallage ou toiture).",
   },
   rdet: {
     id: 'rdet',
     nom: 'roches détritiques grossières',
     domaineIds: ['c'],
     description:
-      "Famille de roches sédimentaire détritiques (issues de la dégradation mécanique d'autres roches) constituées d'éléments grossiers (galets) arrondis (qui traduisent un transport long avant sédimentation) cimentés par des éléments plus fins de type sables et graviers. Devenues suffisamment dures (indurées) ces roches sont utilisées pour la production de granulats. En tant que roches ornementales et de construction, elles présentent des caractéristiques mécaniques et esthétiques valorisables en décoration. Cette famille regroupe les roches suivantes : les arkoses, les brèches, les conglomérats et les poudingues. Ces dernières sont celles qui sont le plus souvent utilisées comme roches ornementales."
+      "Famille de roches sédimentaire détritiques (issues de la dégradation mécanique d'autres roches) constituées d'éléments grossiers (galets) arrondis (qui traduisent un transport long avant sédimentation) cimentés par des éléments plus fins de type sables et graviers. Devenues suffisamment dures (indurées) ces roches sont utilisées pour la production de granulats. En tant que roches ornementales et de construction, elles présentent des caractéristiques mécaniques et esthétiques valorisables en décoration. Cette famille regroupe les roches suivantes : les arkoses, les brèches, les conglomérats et les poudingues. Ces dernières sont celles qui sont le plus souvent utilisées comme roches ornementales.",
   },
   rhod: { id: 'rhod', nom: 'rhodium', domaineIds: ['m'] },
   rhyo: {
@@ -842,7 +842,7 @@ export const SubstancesLegale: {
     nom: 'rhyolite',
     domaineIds: ['c'],
     description:
-      'Roche volcanique effusive riche en silice de couleur claire constituée de fins cristaux de feldspaths dispersés dans une matrice vitreuse valorisée pour ses propriétés mécaniques et son aspect esthétique soit en tant que roche ornementale et de construction ou en tant que granulats.'
+      'Roche volcanique effusive riche en silice de couleur claire constituée de fins cristaux de feldspaths dispersés dans une matrice vitreuse valorisée pour ses propriétés mécaniques et son aspect esthétique soit en tant que roche ornementale et de construction ou en tant que granulats.',
   },
   ruth: { id: 'ruth', nom: 'ruthénium', domaineIds: ['m'] },
   saco: {
@@ -850,7 +850,7 @@ export const SubstancesLegale: {
     nom: 'sables coquilliers',
     domaineIds: ['w'],
     description:
-      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat."
+      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat.",
   },
   sama: { id: 'sama', nom: 'samarium', domaineIds: ['m'] },
   samg: {
@@ -858,14 +858,14 @@ export const SubstancesLegale: {
     nom: 'sables moyens à grossiers',
     domaineIds: ['w'],
     description:
-      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat."
+      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat.",
   },
   sasi: {
     id: 'sasi',
     nom: 'sables siliceux',
     domaineIds: ['w'],
     description:
-      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat."
+      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat.",
   },
   scbi: { id: 'scbi', nom: 'schistes bitumineux', domaineIds: ['f'] },
   schi: {
@@ -873,7 +873,7 @@ export const SubstancesLegale: {
     nom: 'schistes',
     domaineIds: ['c'],
     description:
-      "Roche métamorphique à grains très fins peu ou pas décelables à l'œil nu présentant un débit en feuillet dû à la schistosité et à la présence de minéraux plats (micas, hornblende...) orientés. Utilisée pour ses propriétés mécaniques, cette roche est particulièrement délitable et donne des granulats de forme assez plate. Son aspect décoratif est valorisé en tant que roche ornementale et de construction."
+      "Roche métamorphique à grains très fins peu ou pas décelables à l'œil nu présentant un débit en feuillet dû à la schistosité et à la présence de minéraux plats (micas, hornblende...) orientés. Utilisée pour ses propriétés mécaniques, cette roche est particulièrement délitable et donne des granulats de forme assez plate. Son aspect décoratif est valorisé en tant que roche ornementale et de construction.",
   },
   selg: { id: 'selg', nom: 'sel gemme', domaineIds: ['m'] },
   selp: { id: 'selp', nom: "puits d'eau salée", domaineIds: ['m'] },
@@ -884,47 +884,47 @@ export const SubstancesLegale: {
     nom: 'serpentinite',
     domaineIds: ['c'],
     description:
-      "Roche métamorphique de couleur jaunâtre à verdâtre (voire vert sombre) ou présentant des inclusions verdâtres (forme porphyrique) essentiellement constituée (plus de 75 %) d'antigorite (phyllosilicate magnésien). Cette roche provient de l'altération d'une péridotite en présence d'eau. Les serpentinites sont essentiellement exploitées aujourd'hui pour la production de granulats et plus rarement comme roches ornementales."
+      "Roche métamorphique de couleur jaunâtre à verdâtre (voire vert sombre) ou présentant des inclusions verdâtres (forme porphyrique) essentiellement constituée (plus de 75 %) d'antigorite (phyllosilicate magnésien). Cette roche provient de l'altération d'une péridotite en présence d'eau. Les serpentinites sont essentiellement exploitées aujourd'hui pour la production de granulats et plus rarement comme roches ornementales.",
   },
   sexs: {
     id: 'sexs',
     nom: 'sable extra siliceux',
     domaineIds: ['c'],
     description:
-      "Roche sédimentaire meuble d'origine détritique presque exclusivement constituée de grains calibrés de quartz de très grande pureté (égale ou > 98% de silice), utilisée dans les industries du verre et de la céramique et comme additif fonctionnel."
+      "Roche sédimentaire meuble d'origine détritique presque exclusivement constituée de grains calibrés de quartz de très grande pureté (égale ou > 98% de silice), utilisée dans les industries du verre et de la céramique et comme additif fonctionnel.",
   },
   sgin: {
     id: 'sgin',
     nom: 'sables et grès industriels',
-    domaineIds: ['c']
+    domaineIds: ['c'],
   },
   sgra: {
     id: 'sgra',
     nom: 'sables et graviers alluvionnaires',
     domaineIds: ['c'],
     description:
-      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme de sables, graviers et galets de nature variable extraits d'anciens lits de cours d'eau et utilisé comme granulat encore aujourd'hui principalement dans des bétons spéciaux ou pour des couches drainantes."
+      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme de sables, graviers et galets de nature variable extraits d'anciens lits de cours d'eau et utilisé comme granulat encore aujourd'hui principalement dans des bétons spéciaux ou pour des couches drainantes.",
   },
   sgrm: {
     id: 'sgrm',
     nom: 'sables et graviers marins',
     domaineIds: ['c'],
     description:
-      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat."
+      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat.",
   },
   sgsc: {
     id: 'sgsc',
     nom: 'sables et graviers silico-calcaires marins',
     domaineIds: ['w'],
     description:
-      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat."
+      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat.",
   },
   sgsm: {
     id: 'sgsm',
     nom: 'sables et graviers siliceux marins',
     domaineIds: ['w'],
     description:
-      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat."
+      "Mélange sédimentaire meuble constituée d'éléments rocheux de nature variée sous forme sous forme de sables et graviers d'origine détritique, de nature siliceuse et calcaire extrait des fonds marins. Leur utilité est destinée au granulat.",
   },
   silc: { id: 'silc', nom: 'silice', domaineIds: ['c'] },
   sili: {
@@ -932,49 +932,49 @@ export const SubstancesLegale: {
     nom: 'sillimanite',
     domaineIds: ['c'],
     description:
-      "Minéral - Silicate d'alumine (SiAl2O5) de même composition chimique que l'andalousite mais avec une structure cristalline et des propriétés physico-minéralogiques sensiblement différentes."
+      "Minéral - Silicate d'alumine (SiAl2O5) de même composition chimique que l'andalousite mais avec une structure cristalline et des propriétés physico-minéralogiques sensiblement différentes.",
   },
   silx: {
     id: 'silx',
     nom: 'silex / chert',
     domaineIds: ['c'],
     description:
-      "Roche sédimentaire d'origine détritique issue d'une précipitation chimique et constituée de silice calcédonieuse presque pure la rendant très dure et quelques impuretés telles que de l'eau ou des oxydes, ces derniers influant sur sa couleur. De part, la dureté de cette roche, elle est valorisée sous forme de granulat. Pour l'industrie, elle est utilisée, sous forme de galet plus ou moins arrondis dont les propriétés mécaniques permettent d'en faire des charges broyantes ou des produits abrasifs ou dont la grande pureté chimique permet de faire de la silice industrielle. [Définition de la norme européenne EN 932-3 : Roche sédimentaire composée de silice cryptocristalline ou microcristalline (cristaux indétectables à l'œil nu), se formant en général en couches ou en nodules dans le calcaire.] Préférer le terme SILEX au terme CHERT qui vaut dire la même chose. Le silex est un chert se formant dans la craie du Crétacé (cf. falaise d'Etretat)."
+      "Roche sédimentaire d'origine détritique issue d'une précipitation chimique et constituée de silice calcédonieuse presque pure la rendant très dure et quelques impuretés telles que de l'eau ou des oxydes, ces derniers influant sur sa couleur. De part, la dureté de cette roche, elle est valorisée sous forme de granulat. Pour l'industrie, elle est utilisée, sous forme de galet plus ou moins arrondis dont les propriétés mécaniques permettent d'en faire des charges broyantes ou des produits abrasifs ou dont la grande pureté chimique permet de faire de la silice industrielle. [Définition de la norme européenne EN 932-3 : Roche sédimentaire composée de silice cryptocristalline ou microcristalline (cristaux indétectables à l'œil nu), se formant en général en couches ou en nodules dans le calcaire.] Préférer le terme SILEX au terme CHERT qui vaut dire la même chose. Le silex est un chert se formant dans la craie du Crétacé (cf. falaise d'Etretat).",
   },
   smil: {
     id: 'smil',
     nom: 'sables a minéraux lourds',
     domaineIds: ['c'],
     description:
-      "Sables alluvionnaires ou de plage composés de minéraux lourds (rutile, zircon, barytine, grenat). L'accumulation des minéraux lourds se fait dans des placers dont l'origine est liée aux paramètres favorables de sédimentation. Ces minéraux peuvent être utilisés en industrie."
+      "Sables alluvionnaires ou de plage composés de minéraux lourds (rutile, zircon, barytine, grenat). L'accumulation des minéraux lourds se fait dans des placers dont l'origine est liée aux paramètres favorables de sédimentation. Ces minéraux peuvent être utilisés en industrie.",
   },
   sssc: {
     id: 'sssc',
     nom: 'sable siliceux ou silico-calcaire',
     domaineIds: ['c'],
     description:
-      "Roche sédimentaire meuble d'origine détritique pouvant soit être constituée majoritairement de grains de quartz (fort % de silice mais < à 98%) soit de calcaire et de silice (silico-calcaire). Ce sable est principalement utilisé comme produits de correction pour la fabrication du clinker, le constituant de base des ciments."
+      "Roche sédimentaire meuble d'origine détritique pouvant soit être constituée majoritairement de grains de quartz (fort % de silice mais < à 98%) soit de calcaire et de silice (silico-calcaire). Ce sable est principalement utilisé comme produits de correction pour la fabrication du clinker, le constituant de base des ciments.",
   },
   stex: {
     id: 'stex',
     nom: "stérile d'exploitation",
     domaineIds: ['c'],
     description:
-      "Roche d'origine diverse, caractérisée par des roches constituant des stériles d'ancienne exploitation (schiste, grès, carbonates ou roche grenue) dont les caractéristiques mécaniques et physiques permettent de les valoriser comme granulat."
+      "Roche d'origine diverse, caractérisée par des roches constituant des stériles d'ancienne exploitation (schiste, grès, carbonates ou roche grenue) dont les caractéristiques mécaniques et physiques permettent de les valoriser comme granulat.",
   },
   syen: {
     id: 'syen',
     nom: 'syénite',
     domaineIds: ['c'],
     description:
-      "Roche plutonique grenue de couleur rose à rouge, composée de feldspath alcalin (assez riche en silice). Elle se rapproche du granite et du gabbro mais ne contient pas de quartz. L'équivalent volcanique d'une syénite est un trachyte. Elle est utilisée en tant que granulats ou roche ornementale et de construction."
+      "Roche plutonique grenue de couleur rose à rouge, composée de feldspath alcalin (assez riche en silice). Elle se rapproche du granite et du gabbro mais ne contient pas de quartz. L'équivalent volcanique d'une syénite est un trachyte. Elle est utilisée en tant que granulats ou roche ornementale et de construction.",
   },
   talc: {
     id: 'talc',
     nom: 'talc',
     domaineIds: ['c'],
     description:
-      "Minéral - Silicate de magnésium hydraté (Mg3 Si4 O10 (OH)2) présentant une structure en feuillets dont les propriétés comme la dureté (1 de l'échelle de Mohs), hydrophobie, grande inertie chimique, blancheur en font un remarquable additif fonctionnel de nombreux domaines (peintures, plastiques, pharmacopée...)."
+      "Minéral - Silicate de magnésium hydraté (Mg3 Si4 O10 (OH)2) présentant une structure en feuillets dont les propriétés comme la dureté (1 de l'échelle de Mohs), hydrophobie, grande inertie chimique, blancheur en font un remarquable additif fonctionnel de nombreux domaines (peintures, plastiques, pharmacopée...).",
   },
   tech: { id: 'tech', nom: 'technétium', domaineIds: ['r'] },
   terb: { id: 'terb', nom: 'terbium', domaineIds: ['m'] },
@@ -983,7 +983,7 @@ export const SubstancesLegale: {
     nom: 'terre végétale',
     domaineIds: ['c'],
     description:
-      "Horizon sédimentaire humifère constitué suivant la profondeur de l'accumulation de matière organique associée à la croissance des végétaux et de l'altération du substratum rocheux sous-jacent."
+      "Horizon sédimentaire humifère constitué suivant la profondeur de l'accumulation de matière organique associée à la croissance des végétaux et de l'altération du substratum rocheux sous-jacent.",
   },
   thul: { id: 'thul', nom: 'thulium', domaineIds: ['m'] },
   tmas: { id: 'tmas', nom: 'tous métaux associés', domaineIds: ['m'] },
@@ -992,24 +992,24 @@ export const SubstancesLegale: {
     nom: 'tourbe',
     domaineIds: ['c'],
     description:
-      "Roche sédimentaire organique résultant de l'accumulation de la matière organique liée à la croissance des végétaux et de leur transformation sous certaines conditions. Elle est utilisée principalement comme amendement."
+      "Roche sédimentaire organique résultant de l'accumulation de la matière organique liée à la croissance des végétaux et de leur transformation sous certaines conditions. Elle est utilisée principalement comme amendement.",
   },
   trac: {
     id: 'trac',
     nom: 'trachyte',
     domaineIds: ['c'],
     description:
-      'Roche volcanique effusive de couleur gris-clair, à texture souvent poreuse constituée de fins cristaux (microlites) de feldspaths baignant dans une matrice vitreuse (du fait de sa teneur en silice assez élevée). Elle est utilisée pour ses bonnes caractéristiques mécaniques en tant que granulats et comme roches ornementales et de constructions (ex: lave de Volvic, lave de Chambois).'
+      'Roche volcanique effusive de couleur gris-clair, à texture souvent poreuse constituée de fins cristaux (microlites) de feldspaths baignant dans une matrice vitreuse (du fait de sa teneur en silice assez élevée). Elle est utilisée pour ses bonnes caractéristiques mécaniques en tant que granulats et comme roches ornementales et de constructions (ex: lave de Volvic, lave de Chambois).',
   },
   tufo: {
     id: 'tufo',
     nom: 'tuffeau',
     domaineIds: ['c'],
-    description: 'Roche sédimentaire blanchâtre peu stratifiée à texture crayeuse constituée de calcite, utilisée comme pierre de construction.'
+    description: 'Roche sédimentaire blanchâtre peu stratifiée à texture crayeuse constituée de calcite, utilisée comme pierre de construction.',
   },
   ytri: { id: 'ytri', nom: 'yttrium', domaineIds: ['m'] },
   ytte: { id: 'ytte', nom: 'ytterbium', domaineIds: ['m'] },
-  hydrog: { id: 'hydrog', nom: 'hydrogène', domaineIds: ['m'] }
+  hydrog: { id: 'hydrog', nom: 'hydrogène', domaineIds: ['m'] },
 }
 
 export const SubstancesLegales = Object.values(SubstancesLegale)
diff --git a/packages/common/src/static/titresStatuts.ts b/packages/common/src/static/titresStatuts.ts
index a06a2829d..f59110b5c 100644
--- a/packages/common/src/static/titresStatuts.ts
+++ b/packages/common/src/static/titresStatuts.ts
@@ -11,7 +11,7 @@ export const TitresStatutIds = {
   Echu: 'ech',
   Indetermine: 'ind',
   ModificationEnInstance: 'mod',
-  Valide: 'val'
+  Valide: 'val',
 } as const
 
 export type TitreStatutId = (typeof TitresStatutIds)[keyof typeof TitresStatutIds]
@@ -24,7 +24,7 @@ export const TitresStatuts: {
     nom: 'demande classée',
     description: 'Titres et autorisations qui font l’objet d’une démarche initiale d’octroi classée sans suite ou rejetée. Le domaine minier reste ouvert pour les substances et usages visés.',
     couleur: 'neutral',
-    ordre: 2
+    ordre: 2,
   },
   dmi: {
     id: 'dmi',
@@ -32,21 +32,21 @@ export const TitresStatuts: {
     description:
       "Titres et autorisations dont la démarche d’octroi est en cours. Le domaine minier reste ouvert pour les substances ou usages visés jusqu’à la fin de la mise en concurrence de la demande. Si la procédure d’octroi ne prévoit pas de mise en concurrence, le domaine minier reste ouvert jusqu'à l’octroi du titre ou de l’autorisation.",
     couleur: 'warning',
-    ordre: 1
+    ordre: 1,
   },
   ech: {
     id: 'ech',
     nom: 'échu',
     description: 'Titres et autorisations sur lesquels le projet minier est terminé. Le domaine minier est ouvert pour les substances et les usages visés.',
     couleur: 'neutral',
-    ordre: 5
+    ordre: 5,
   },
   ind: {
     id: 'ind',
     nom: 'indéterminé',
     description: 'Titres et autorisations dont les informations disponibles sont insuffisantes pour en déterminer le statut.',
     couleur: 'warning',
-    ordre: 6
+    ordre: 6,
   },
   mod: {
     id: 'mod',
@@ -54,7 +54,7 @@ export const TitresStatuts: {
     description:
       'Titres et autorisations qui font l’objet d’une démarche de modification de leurs propriétés fondamentales (durée, surface, titulaire, amodiataire, substances). Le domaine minier demeure fermé pour les substances et usages visés par la demande en cours, jusqu\'à ce qu\'il soit statué sur la demande de modification.\r\nTant que l’administration ne s’est pas prononcée par décision expresse, le pétitionnaire bénéficie du droit de poursuivre ses travaux dans les limites du périmètre et des substances visées par la nouvelle demande même après une décision implicite de rejet. Au delà de sa date de validité, le titre est dit en "survie provisoire".',
     couleur: 'warning',
-    ordre: 4
+    ordre: 4,
   },
   val: {
     id: 'val',
@@ -62,8 +62,8 @@ export const TitresStatuts: {
     description:
       "Titres et autorisations sur lesquels peuvent être mis en oeuvre un projet minier, à compter de la date d'octroi et jusqu’à l’échéance fixée. Le domaine minier est fermé pour les substances et usages visés.",
     couleur: 'success',
-    ordre: 3
-  }
+    ordre: 3,
+  },
 }
 
 export const sortedTitresStatuts = Object.values(TitresStatuts).sort((a, b) => a.ordre - b.ordre)
diff --git a/packages/common/src/static/titresTypes.ts b/packages/common/src/static/titresTypes.ts
index 4233c5a01..54f113299 100644
--- a/packages/common/src/static/titresTypes.ts
+++ b/packages/common/src/static/titresTypes.ts
@@ -43,7 +43,7 @@ export const TITRES_TYPES_IDS = {
   PERMIS_D_EXPLOITATION_HYDROCARBURE: 'pxh',
   PERMIS_D_EXPLOITATION_METAUX: 'pxm',
   PERMIS_D_EXPLOITATION_RADIOACTIF: 'pxr',
-  PERMIS_D_EXPLOITATION_GRANULATS_MARINS: 'pxw'
+  PERMIS_D_EXPLOITATION_GRANULATS_MARINS: 'pxw',
 } as const
 
 export const TitresTypesIds = Object.values(TITRES_TYPES_IDS)
@@ -83,7 +83,7 @@ export const TitresTypes: {
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_HYDROCARBURE]: { id: 'pxh', domaineId: 'h', typeId: 'px' },
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_METAUX]: { id: 'pxm', domaineId: 'm', typeId: 'px' },
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_RADIOACTIF]: { id: 'pxr', domaineId: 'r', typeId: 'px' },
-  [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: { id: 'pxw', domaineId: 'w', typeId: 'px' }
+  [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: { id: 'pxw', domaineId: 'w', typeId: 'px' },
 } as const
 
 export const isTitreType = (titreType: string | undefined | null): titreType is TitreTypeId => TitresTypesIds.includes(titreType)
diff --git a/packages/common/src/static/titresTypesDemarchesTypes.ts b/packages/common/src/static/titresTypesDemarchesTypes.ts
index 4d5d9893e..195a6dcdf 100644
--- a/packages/common/src/static/titresTypesDemarchesTypes.ts
+++ b/packages/common/src/static/titresTypesDemarchesTypes.ts
@@ -7,7 +7,7 @@ const demarchesEverywhere = [
   DEMARCHES_TYPES_IDS.DeclarationDOuvertureDeTravaux,
   DEMARCHES_TYPES_IDS.Octroi,
   DEMARCHES_TYPES_IDS.Renonciation,
-  DEMARCHES_TYPES_IDS.Retrait
+  DEMARCHES_TYPES_IDS.Retrait,
 ]
 
 const TITRES_TYPES_DEMARCHES_TYPES = {
@@ -22,7 +22,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     ...demarchesEverywhere,
     DEMARCHES_TYPES_IDS.DeplacementDePerimetre,
     DEMARCHES_TYPES_IDS.Prolongation,
-    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation
+    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation,
   ],
   [TITRES_TYPES_IDS.CONCESSION_FOSSILES]: [
     ...demarchesEverywhere,
@@ -30,7 +30,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.ExtensionDePerimetre,
     DEMARCHES_TYPES_IDS.Mutation,
     DEMARCHES_TYPES_IDS.Prolongation,
-    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation
+    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation,
   ],
   [TITRES_TYPES_IDS.CONCESSION_GEOTHERMIE]: [
     ...demarchesEverywhere,
@@ -38,7 +38,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.ExtensionDePerimetre,
     DEMARCHES_TYPES_IDS.Mutation,
     DEMARCHES_TYPES_IDS.Prolongation,
-    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation
+    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation,
   ],
   [TITRES_TYPES_IDS.CONCESSION_HYDROCARBURE]: [
     ...demarchesEverywhere,
@@ -47,7 +47,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.ExtensionDePerimetre,
     DEMARCHES_TYPES_IDS.Mutation,
     DEMARCHES_TYPES_IDS.Prolongation,
-    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation
+    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation,
   ],
   [TITRES_TYPES_IDS.CONCESSION_METAUX]: [
     ...demarchesEverywhere,
@@ -59,7 +59,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.Mutation,
     DEMARCHES_TYPES_IDS.Prolongation,
     DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation,
-    DEMARCHES_TYPES_IDS.MutationPartielle
+    DEMARCHES_TYPES_IDS.MutationPartielle,
   ],
   [TITRES_TYPES_IDS.CONCESSION_RADIOACTIF]: [
     ...demarchesEverywhere,
@@ -67,7 +67,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.ExtensionDePerimetre,
     DEMARCHES_TYPES_IDS.Mutation,
     DEMARCHES_TYPES_IDS.Prolongation,
-    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation
+    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation,
   ],
   [TITRES_TYPES_IDS.CONCESSION_SOUTERRAIN]: [
     ...demarchesEverywhere,
@@ -75,7 +75,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.ExtensionDePerimetre,
     DEMARCHES_TYPES_IDS.Mutation,
     DEMARCHES_TYPES_IDS.Prolongation,
-    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation
+    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation,
   ],
   [TITRES_TYPES_IDS.CONCESSION_GRANULATS_MARINS]: [
     ...demarchesEverywhere,
@@ -83,7 +83,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.ExtensionDePerimetre,
     DEMARCHES_TYPES_IDS.Mutation,
     DEMARCHES_TYPES_IDS.Prolongation,
-    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation
+    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation,
   ],
   [TITRES_TYPES_IDS.INDETERMINE_METAUX]: [DEMARCHES_TYPES_IDS.Octroi],
   [TITRES_TYPES_IDS.INDETERMINE_RADIOACTIF]: [DEMARCHES_TYPES_IDS.Octroi],
@@ -93,7 +93,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.ExtensionDePerimetre,
     DEMARCHES_TYPES_IDS.Mutation,
     DEMARCHES_TYPES_IDS.Prolongation,
-    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation
+    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation,
   ],
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_FOSSILES]: [
     ...demarchesEverywhere,
@@ -102,7 +102,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.Mutation,
     DEMARCHES_TYPES_IDS.Prolongation1,
     DEMARCHES_TYPES_IDS.Prolongation2,
-    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation
+    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation,
   ],
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_GEOTHERMIE]: [
     ...demarchesEverywhere,
@@ -112,7 +112,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.Prolongation1,
     DEMARCHES_TYPES_IDS.Prolongation2,
     DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation,
-    DEMARCHES_TYPES_IDS.MutationPartielle
+    DEMARCHES_TYPES_IDS.MutationPartielle,
   ],
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_HYDROCARBURE]: [
     ...demarchesEverywhere,
@@ -121,7 +121,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.Mutation,
     DEMARCHES_TYPES_IDS.Prolongation1,
     DEMARCHES_TYPES_IDS.Prolongation2,
-    DEMARCHES_TYPES_IDS.ProlongationExceptionnelle
+    DEMARCHES_TYPES_IDS.ProlongationExceptionnelle,
   ],
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: [
     ...demarchesEverywhere,
@@ -131,7 +131,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.Mutation,
     DEMARCHES_TYPES_IDS.Prolongation1,
     DEMARCHES_TYPES_IDS.Prolongation2,
-    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation
+    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation,
   ],
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_RADIOACTIF]: [
     ...demarchesEverywhere,
@@ -142,7 +142,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.Prolongation1,
     DEMARCHES_TYPES_IDS.Prolongation2,
     DEMARCHES_TYPES_IDS.Prorogation,
-    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation
+    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation,
   ],
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_SOUTERRAIN]: [
     ...demarchesEverywhere,
@@ -151,7 +151,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.Mutation,
     DEMARCHES_TYPES_IDS.Prolongation1,
     DEMARCHES_TYPES_IDS.Prolongation2,
-    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation
+    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation,
   ],
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_GRANULATS_MARINS]: [
     ...demarchesEverywhere,
@@ -160,7 +160,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.Mutation,
     DEMARCHES_TYPES_IDS.Prolongation1,
     DEMARCHES_TYPES_IDS.Prolongation2,
-    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation
+    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation,
   ],
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_FOSSILES]: [DEMARCHES_TYPES_IDS.Octroi],
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GEOTHERMIE]: [
@@ -170,7 +170,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.Fusion,
     DEMARCHES_TYPES_IDS.Mutation,
     DEMARCHES_TYPES_IDS.Prolongation,
-    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation
+    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation,
   ],
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_HYDROCARBURE]: [
     ...demarchesEverywhere,
@@ -181,7 +181,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.Prolongation2,
     DEMARCHES_TYPES_IDS.Prorogation,
     DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation,
-    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation
+    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation,
   ],
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_METAUX]: [
     ...demarchesEverywhere,
@@ -192,7 +192,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.Prolongation1,
     DEMARCHES_TYPES_IDS.Prolongation2,
     DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation,
-    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation
+    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation,
   ],
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_RADIOACTIF]: [
     ...demarchesEverywhere,
@@ -204,7 +204,7 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.Prolongation2,
     DEMARCHES_TYPES_IDS.Prorogation,
     DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation,
-    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation
+    DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation,
   ],
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: [
     ...demarchesEverywhere,
@@ -214,8 +214,8 @@ const TITRES_TYPES_DEMARCHES_TYPES = {
     DEMARCHES_TYPES_IDS.Prolongation1,
     DEMARCHES_TYPES_IDS.Prolongation2,
     DEMARCHES_TYPES_IDS.Prorogation,
-    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation
-  ]
+    DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation,
+  ],
 } as const
 
 export type TitresTypesDemarchesTypes = typeof TITRES_TYPES_DEMARCHES_TYPES
diff --git a/packages/common/src/static/titresTypesTypes.ts b/packages/common/src/static/titresTypesTypes.ts
index 368189c62..669d3c20d 100644
--- a/packages/common/src/static/titresTypesTypes.ts
+++ b/packages/common/src/static/titresTypesTypes.ts
@@ -8,7 +8,7 @@ export const TITRES_TYPES_TYPES_IDS = {
   INDETERMINE: 'in',
   PERMIS_EXCLUSIF_DE_CARRIERES: 'pc',
   PERMIS_EXCLUSIF_DE_RECHERCHES: 'pr',
-  PERMIS_D_EXPLOITATION: 'px'
+  PERMIS_D_EXPLOITATION: 'px',
 } as const
 export type TitreTypeTypeId = (typeof TITRES_TYPES_TYPES_IDS)[keyof typeof TITRES_TYPES_TYPES_IDS]
 export type TitreTypeType = Definition<TitreTypeTypeId>
@@ -20,56 +20,56 @@ export const TitresTypesTypes: {
     nom: 'autorisation de prospections préalables',
     description:
       "Cette autorisation est applicable aux granulats marins et aux hydrocarbures liquides ou gazeux. Elle donne le droit non exclusif de solliciter l’exécution de tous travaux de recherches en mer destinés à acquérir des connaissances sur le contexte géologique et les gisements du sous-sol marin. Son titulaire ne peut pas disposer des éventuels gisements identifiés. Les sondages dépassant une profondeur de 300 mètres à partir du fond de la mer sont exclus. Sa durée ne peut excéder deux ans. L'autorisation de prospection préalable n'inclut pas d'autorisation de travaux miniers.",
-    ordre: 1
+    ordre: 1,
   },
   ar: {
     id: 'ar',
     nom: 'autorisation de recherches',
     description:
       "Cette autorisation minière donne un droit de prospection destiné à caractériser un gisement pressenti. Ensuite le titulaire pourra éventuellement faire valoir son droit d’inventeur. Il s’agit généralement de périmètres n'excédant pas quelques kilomètres carrés. Elle se décline pour :<br />- la géothermie , la durée n'excédant pas trois ans ;<br />- dans les zones spéciales de carrières pour une durée de trois ans renouvelable sans limite pour la même durée.<br />- pour les minéraux et métaux, en Guyane, afin d’effectuer des travaux de recherches avec l’accord du propriétaire du sol. Cette autorisation porte exclusivement sur le domaine privé forestier de l’Etat. Elle est accordée par l’Office National des Forêts, mandataire de l’Etat, sous la conduite du préfet.",
-    ordre: 2
+    ordre: 2,
   },
   ax: {
     id: 'ax',
     nom: "autorisation d'exploitation",
     description:
       "Cette autorisation minière donne un droit d’exploitation d’un gisement de minerais ou de métaux sur une zone n'excédant pas un kilomètre carré dans les départements et régions d’outre-mer. Sa durée de validité est de 4 ans renouvelable une fois.",
-    ordre: 4
+    ordre: 4,
   },
   cx: {
     id: 'cx',
     nom: 'concession',
     description:
       'Ce titre donne un droit d’exploitation. Il est applicable à tous les domaines miniers excepté dans les zones spéciales de carrières pour ces substances. Elle est accordée pour une durée maximale de cinquante ans et peut faire l’objet de prolongations successives de vingt-cinq ans maximum. La concession donne également l’exclusivité des droits de prospection sur les substances concédées sur son périmètre.',
-    ordre: 7
+    ordre: 7,
   },
   in: {
     id: 'in',
     nom: 'indéterminé',
     description: 'Titres et autorisations dont les informations disponibles sont insuffisantes pour en déterminer le statut.',
-    ordre: 8
+    ordre: 8,
   },
   pc: {
     id: 'pc',
     nom: 'permis exclusif de carrières',
     description:
       'Ce titre minier donne le droit d’exploitation d’un gisement de substances de carrière situé dans le périmètre d’une zone spéciale de carrières. Sa durée maximale est de dix ans et peut faire l’objet de prolongations successives. L’autorité décisionnaire est le ministre chargé des mines et le ministre chargé de l’environnement conjointement.',
-    ordre: 5
+    ordre: 5,
   },
   pr: {
     id: 'pr',
     nom: 'permis exclusif de recherches',
     description:
       'Ce titre minier donne un droit de prospection destiné à faire l’inventaire des gisements sur lesquels le titulaire pourra faire valoir son droit d’inventeur. Il est applicable à tous les domaines miniers excepté les zones spéciales de carrières. Il s’agit généralement de larges périmètres (plusieurs centaines de kilomètres carrés). Sa durée est de cinq ans maximum renouvelable deux fois. Pour les hydrocarbures liquides ou gazeux, l’une de ces trois périodes peut faire l’objet d’une prolongation exceptionnelle de trois ans maximum.',
-    ordre: 3
+    ordre: 3,
   },
   px: {
     id: 'px',
     nom: "permis d'exploitation",
     description:
       'Ce titre minier donne un droit d’exploitation de gîtes de géothermie (dans un volume déterminé par un périmètre et deux profondeurs). Il est accordé pour trente ans maximum et peut faire l’objet de prolongations successives de quinze ans maximum. Il est également applicable aux mines de minéraux et métaux dans les départements et régions d’outre-mer, pour cinq ans maximum prolongeables deux fois.',
-    ordre: 6
-  }
+    ordre: 6,
+  },
 }
 
 const titreTypesTypeIds = Object.values(TITRES_TYPES_TYPES_IDS)
diff --git a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.ts b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.ts
index 58c341a16..53c147378 100644
--- a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.ts
+++ b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.ts
@@ -14,7 +14,7 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.avisDUnServiceDeLAdministrationCentrale,
     DOCUMENTS_TYPES_IDS.avisDuConseilGeneralDeLEconomie_cge,
     DOCUMENTS_TYPES_IDS.avis,
-    DOCUMENTS_TYPES_IDS.rapportDeLAdministrationCentraleChargeDesMines
+    DOCUMENTS_TYPES_IDS.rapportDeLAdministrationCentraleChargeDesMines,
   ],
   [ETAPES_TYPES.avisDuneCollectiviteLocale]: [DOCUMENTS_TYPES_IDS.avis],
   [ETAPES_TYPES.avenantALautorisationDeRechercheMiniere]: [
@@ -22,7 +22,7 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.contrat,
     DOCUMENTS_TYPES_IDS.convention,
     DOCUMENTS_TYPES_IDS.decision,
-    DOCUMENTS_TYPES_IDS.notificationDeDecision
+    DOCUMENTS_TYPES_IDS.notificationDeDecision,
   ],
   [ETAPES_TYPES.avisDeLaDirectionRegionaleDesFinancesPubliques]: [DOCUMENTS_TYPES_IDS.avisDesServicesCivilsEtMilitaires, DOCUMENTS_TYPES_IDS.avis],
   [ETAPES_TYPES.avisDeLaGendarmerieNationale]: [DOCUMENTS_TYPES_IDS.avisDesServicesCivilsEtMilitaires],
@@ -35,12 +35,12 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.avis,
     DOCUMENTS_TYPES_IDS.contrat,
     DOCUMENTS_TYPES_IDS.lettre,
-    DOCUMENTS_TYPES_IDS.motif
+    DOCUMENTS_TYPES_IDS.motif,
   ],
   [ETAPES_TYPES.avisEtRapportDuDirecteurRegionalChargeDeLenvironnementDeLamenagementEtDuLogement]: [
     DOCUMENTS_TYPES_IDS.avisDuDirecteurRegionalChargeDesMines,
     DOCUMENTS_TYPES_IDS.rapportDeLAdministrationCentraleChargeDesMines,
-    DOCUMENTS_TYPES_IDS.rapportDeLaDirectionRegionaleChargeeDesMines
+    DOCUMENTS_TYPES_IDS.rapportDeLaDirectionRegionaleChargeeDesMines,
   ],
   [ETAPES_TYPES.avisDuConseilDEtat]: [DOCUMENTS_TYPES_IDS.avis],
   [ETAPES_TYPES.avisDeLetatMajorOrpaillageEtPecheIllicite_EMOPI_]: [DOCUMENTS_TYPES_IDS.avisDesServicesCivilsEtMilitaires],
@@ -61,14 +61,14 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.arrete,
     DOCUMENTS_TYPES_IDS.decisionCasParCas,
     DOCUMENTS_TYPES_IDS.lettre,
-    DOCUMENTS_TYPES_IDS.notificationDeDecision
+    DOCUMENTS_TYPES_IDS.notificationDeDecision,
   ],
   [ETAPES_TYPES.desistementDuDemandeur]: [
     DOCUMENTS_TYPES_IDS.accuseDeReceptionDUneDemande,
     DOCUMENTS_TYPES_IDS.complementsAuDossierDeDemande,
     DOCUMENTS_TYPES_IDS.lettre,
     DOCUMENTS_TYPES_IDS.motif,
-    DOCUMENTS_TYPES_IDS.notes
+    DOCUMENTS_TYPES_IDS.notes,
   ],
   [ETAPES_TYPES.decisionDeLadministration]: [
     DOCUMENTS_TYPES_IDS.arreteMinisteriel,
@@ -83,7 +83,7 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.notificationDeDecision,
     DOCUMENTS_TYPES_IDS.ordonnanceDuRoi,
     DOCUMENTS_TYPES_IDS.ordonnance,
-    DOCUMENTS_TYPES_IDS.documentsCartographiques
+    DOCUMENTS_TYPES_IDS.documentsCartographiques,
   ],
   [ETAPES_TYPES.publicationDeDecisionAuJORF]: [
     DOCUMENTS_TYPES_IDS.arreteMinisteriel,
@@ -93,7 +93,7 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.decret,
     DOCUMENTS_TYPES_IDS.decision,
     DOCUMENTS_TYPES_IDS.ordonnance,
-    DOCUMENTS_TYPES_IDS.publicationAuJorf
+    DOCUMENTS_TYPES_IDS.publicationAuJorf,
   ],
   [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: [DOCUMENTS_TYPES_IDS.arrete, DOCUMENTS_TYPES_IDS.publicationAuJorf],
   [ETAPES_TYPES.decisionAdministrative]: [DOCUMENTS_TYPES_IDS.arrete],
@@ -105,14 +105,14 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.arretePrefectoral,
     DOCUMENTS_TYPES_IDS.lettre,
     DOCUMENTS_TYPES_IDS.notes,
-    DOCUMENTS_TYPES_IDS.publicationAuJorf
+    DOCUMENTS_TYPES_IDS.publicationAuJorf,
   ],
   [ETAPES_TYPES.demandeDeComplements_RecevabiliteDeLaDemande_]: [DOCUMENTS_TYPES_IDS.courrierDeDemandeDeComplements, DOCUMENTS_TYPES_IDS.lettreDeDemande],
   [ETAPES_TYPES.demandeDeComplements_RecepisseDeDeclarationLoiSurLeau_]: [
     DOCUMENTS_TYPES_IDS.courrierDeDemandeDeComplements,
     DOCUMENTS_TYPES_IDS.complementsAuDossierDeDemande,
     DOCUMENTS_TYPES_IDS.dossierLoiSurLEau,
-    DOCUMENTS_TYPES_IDS.lettre
+    DOCUMENTS_TYPES_IDS.lettre,
   ],
   [ETAPES_TYPES.demandeDeComplements]: [DOCUMENTS_TYPES_IDS.courrierDeDemandeDeComplements, DOCUMENTS_TYPES_IDS.lettre, DOCUMENTS_TYPES_IDS.rapportDeRecevabilite],
   [ETAPES_TYPES.completudeDeLaDemande]: [DOCUMENTS_TYPES_IDS.ficheDeCompletude],
@@ -122,7 +122,7 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.lettre,
     DOCUMENTS_TYPES_IDS.notes,
     DOCUMENTS_TYPES_IDS.rapportDeRecevabilite,
-    DOCUMENTS_TYPES_IDS.rapportDeLaDirectionRegionaleChargeeDesMines
+    DOCUMENTS_TYPES_IDS.rapportDeLaDirectionRegionaleChargeeDesMines,
   ],
   [ETAPES_TYPES.depotDeLaDemande]: [DOCUMENTS_TYPES_IDS.accuseDeReceptionDUneDemande],
   [ETAPES_TYPES.demande]: [
@@ -142,7 +142,7 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.lettreDeDemande,
     DOCUMENTS_TYPES_IDS.lettre,
     DOCUMENTS_TYPES_IDS.noticeDIncidence,
-    DOCUMENTS_TYPES_IDS.recepisse_LoiSurLEau
+    DOCUMENTS_TYPES_IDS.recepisse_LoiSurLEau,
   ],
   [ETAPES_TYPES.demandeDinformations]: [DOCUMENTS_TYPES_IDS.courrierDeDemandeDeComplements],
   [ETAPES_TYPES.notificationAuDemandeur_AjournementDeLaCARM_]: [DOCUMENTS_TYPES_IDS.lettre],
@@ -154,7 +154,7 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.avenant,
     DOCUMENTS_TYPES_IDS.contrat,
     DOCUMENTS_TYPES_IDS.lettre,
-    DOCUMENTS_TYPES_IDS.notificationDeDecision
+    DOCUMENTS_TYPES_IDS.notificationDeDecision,
   ],
   [ETAPES_TYPES.modificationDeLaDemande]: [
     DOCUMENTS_TYPES_IDS.accuseDeReceptionDUneDemande,
@@ -163,7 +163,7 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.lettreDeDemande,
     DOCUMENTS_TYPES_IDS.lettre,
     DOCUMENTS_TYPES_IDS.notificationDeDecision,
-    DOCUMENTS_TYPES_IDS.notes
+    DOCUMENTS_TYPES_IDS.notes,
   ],
   [ETAPES_TYPES.noteInterneSignalee]: [DOCUMENTS_TYPES_IDS.arreteMinisteriel],
   [ETAPES_TYPES.paiementDesFraisDeDossierComplementaires]: [DOCUMENTS_TYPES_IDS.facture],
@@ -176,7 +176,7 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.dossierDeDemande,
     DOCUMENTS_TYPES_IDS.dossier,
     DOCUMENTS_TYPES_IDS.lettreDeDemande,
-    DOCUMENTS_TYPES_IDS.notes
+    DOCUMENTS_TYPES_IDS.notes,
   ],
   [ETAPES_TYPES.receptionDeComplements_RecevabiliteDeLaDemande_]: [DOCUMENTS_TYPES_IDS.complementsAuDossierDeDemande],
   [ETAPES_TYPES.receptionDeComplements_RecepisseDeDeclarationLoiSurLeau_]: [DOCUMENTS_TYPES_IDS.documentsCartographiques, DOCUMENTS_TYPES_IDS.dossierLoiSurLEau],
@@ -184,7 +184,7 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.avisDuConseilGeneralDeLEconomie_cge,
     DOCUMENTS_TYPES_IDS.avis,
     DOCUMENTS_TYPES_IDS.notes,
-    DOCUMENTS_TYPES_IDS.rapportDeLAdministrationCentraleChargeDesMines
+    DOCUMENTS_TYPES_IDS.rapportDeLAdministrationCentraleChargeDesMines,
   ],
   [ETAPES_TYPES.receptionDeComplements_CompletudeDeLaDemande_]: [
     DOCUMENTS_TYPES_IDS.documentsCartographiques,
@@ -192,7 +192,7 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.facture,
     DOCUMENTS_TYPES_IDS.kbis,
     DOCUMENTS_TYPES_IDS.noticeDIncidence,
-    DOCUMENTS_TYPES_IDS.recepisse_LoiSurLEau
+    DOCUMENTS_TYPES_IDS.recepisse_LoiSurLEau,
   ],
   [ETAPES_TYPES.receptionDeComplements]: [DOCUMENTS_TYPES_IDS.documentsCartographiques, DOCUMENTS_TYPES_IDS.complementsAuDossierDeDemande, DOCUMENTS_TYPES_IDS.lettre],
   [ETAPES_TYPES.recepisseDeDeclarationLoiSurLeau]: [DOCUMENTS_TYPES_IDS.arretePrefectoral, DOCUMENTS_TYPES_IDS.recepisse_LoiSurLEau],
@@ -201,7 +201,7 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.complementsAuDossierDeDemande,
     DOCUMENTS_TYPES_IDS.lettreDeDemande,
     DOCUMENTS_TYPES_IDS.lettre,
-    DOCUMENTS_TYPES_IDS.notes
+    DOCUMENTS_TYPES_IDS.notes,
   ],
   [ETAPES_TYPES.rapportDuConseilDEtat]: [DOCUMENTS_TYPES_IDS.extraitDuRegistreDesDeliberationsDeLaSectionDesTravauxPublicDuConseilDEtat],
   [ETAPES_TYPES.publicationDeDecisionAuRecueilDesActesAdministratifs]: [DOCUMENTS_TYPES_IDS.arrete],
@@ -212,12 +212,12 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.lettre,
     DOCUMENTS_TYPES_IDS.notes,
     DOCUMENTS_TYPES_IDS.rapportDeLAdministrationCentraleChargeDesMines,
-    DOCUMENTS_TYPES_IDS.rapportDeLaDirectionRegionaleChargeeDesMines
+    DOCUMENTS_TYPES_IDS.rapportDeLaDirectionRegionaleChargeeDesMines,
   ],
   [ETAPES_TYPES.saisineDesCollectivitesLocales]: [
     DOCUMENTS_TYPES_IDS.lettreDeSaisineDesServicesDeLAdministrationCentrale,
     DOCUMENTS_TYPES_IDS.lettreDeSaisineDesServicesCivilsEtMilitaires,
-    DOCUMENTS_TYPES_IDS.lettre
+    DOCUMENTS_TYPES_IDS.lettre,
   ],
   [ETAPES_TYPES.signatureDeLautorisationDeRechercheMiniere]: [DOCUMENTS_TYPES_IDS.contrat, DOCUMENTS_TYPES_IDS.convention, DOCUMENTS_TYPES_IDS.lettre],
   [ETAPES_TYPES.saisineDuConseilDEtat]: [DOCUMENTS_TYPES_IDS.lettreDeSaisineDuConseilDEtat],
@@ -254,7 +254,7 @@ const EtapesTypesDocumentsTypes = {
     DOCUMENTS_TYPES_IDS.dossier,
     DOCUMENTS_TYPES_IDS.ficheDePresentation,
     DOCUMENTS_TYPES_IDS.identificationDeMateriel,
-    DOCUMENTS_TYPES_IDS.noticeDIncidence
+    DOCUMENTS_TYPES_IDS.noticeDIncidence,
   ],
   [ETAPES_TYPES.memoireEnReponseDeLexploitant_ParRapportALavisDeLAE_]: [DOCUMENTS_TYPES_IDS.dossier],
   [ETAPES_TYPES.memoireEnReponseDeLexploitant]: [DOCUMENTS_TYPES_IDS.dossier],
@@ -273,7 +273,7 @@ const EtapesTypesDocumentsTypes = {
   [ETAPES_TYPES.recolement]: [DOCUMENTS_TYPES_IDS.pvDeRecolement],
   [ETAPES_TYPES.saisineDeLautoriteEnvironnementale]: [DOCUMENTS_TYPES_IDS.courrierDeSaisineDuPrefet, DOCUMENTS_TYPES_IDS.lettreDeSaisineDuPrefet],
   [ETAPES_TYPES.saisineDesServicesDeLEtat]: [DOCUMENTS_TYPES_IDS.courrierDeSaisineDuPrefet],
-  [ETAPES_TYPES.transmissionDuProjetDePrescriptionsAuDemandeur]: [DOCUMENTS_TYPES_IDS.arretePrefectoral]
+  [ETAPES_TYPES.transmissionDuProjetDePrescriptionsAuDemandeur]: [DOCUMENTS_TYPES_IDS.arretePrefectoral],
 } as const
 
 type EtapesTypesEtapesTypesDocumentsTypes = keyof typeof EtapesTypesDocumentsTypes
@@ -291,12 +291,12 @@ const TDEDocumentsTypes = {
         [DOCUMENTS_TYPES_IDS.dossierDeDemande]: { optionnel: false },
         [DOCUMENTS_TYPES_IDS.formulaireDeDemande]: { optionnel: false },
         [DOCUMENTS_TYPES_IDS.justificatifDePaiement]: { optionnel: false },
-        [DOCUMENTS_TYPES_IDS.documentsCartographiques]: { optionnel: false }
-      }
-    }
+        [DOCUMENTS_TYPES_IDS.documentsCartographiques]: { optionnel: false },
+      },
+    },
   },
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_GEOTHERMIE]: {
-    [DEMARCHES_TYPES_IDS.MutationPartielle]: { [ETAPES_TYPES.decisionDeLadministration]: { [DOCUMENTS_TYPES_IDS.arrete]: { optionnel: true } } }
+    [DEMARCHES_TYPES_IDS.MutationPartielle]: { [ETAPES_TYPES.decisionDeLadministration]: { [DOCUMENTS_TYPES_IDS.arrete]: { optionnel: true } } },
   },
   [TITRES_TYPES_IDS.CONCESSION_METAUX]: { [DEMARCHES_TYPES_IDS.Renonciation]: { [ETAPES_TYPES.decisionImplicite]: { [DOCUMENTS_TYPES_IDS.courrier]: { optionnel: true } } } },
   [TITRES_TYPES_IDS.AUTORISATION_D_EXPLOITATION_METAUX]: {
@@ -308,14 +308,14 @@ const TDEDocumentsTypes = {
         [DOCUMENTS_TYPES_IDS.identificationDeMateriel]: {
           optionnel: false,
           description:
-            'la liste et la valeur du matériel d’extraction et de\n traitement que le demandeur détient ou qu’il \nenvisage d’acquérir ainsi que, dans ce dernier\n cas, le financement correspondant. Ces pièces \nsont demandées au titre de la justification des \ncapacités financières du\ndemandeur \n(décret 2001-204, art. 7)'
+            'la liste et la valeur du matériel d’extraction et de\n traitement que le demandeur détient ou qu’il \nenvisage d’acquérir ainsi que, dans ce dernier\n cas, le financement correspondant. Ces pièces \nsont demandées au titre de la justification des \ncapacités financières du\ndemandeur \n(décret 2001-204, art. 7)',
         },
         [DOCUMENTS_TYPES_IDS.justificationDExistenceDuGisement]: { optionnel: true },
         [DOCUMENTS_TYPES_IDS.lettre]: { optionnel: true },
         [DOCUMENTS_TYPES_IDS.mesuresPrevuesPourRehabiliterLeSite]: {
           optionnel: false,
           description:
-            'la définition des mesures prévues par le pétitionnaire pour réhabiliter le site après exploitation, notamment la nature et les modalités de revégétalisation envisagée. (décret 2001-204, art. 5 bis)'
+            'la définition des mesures prévues par le pétitionnaire pour réhabiliter le site après exploitation, notamment la nature et les modalités de revégétalisation envisagée. (décret 2001-204, art. 5 bis)',
         },
         [DOCUMENTS_TYPES_IDS.methodesPourLExecutionDesTravaux]: { optionnel: false, description: 'descriptif des méthodes envisagées pour l’exécution des travaux ((décret 2001-204, art. 6)' },
         [DOCUMENTS_TYPES_IDS.noticeDImpact]: { optionnel: true },
@@ -323,12 +323,12 @@ const TDEDocumentsTypes = {
         [DOCUMENTS_TYPES_IDS.programmeDesTravaux]: { optionnel: false, description: 'Description du phasage et planigramme des travaux. (décret 2001-204, art. 5)' },
         [DOCUMENTS_TYPES_IDS.schemaDePenetrationDuMassifForestier]: {
           optionnel: false,
-          description: "le schéma de pénétration du massif forestier proposé par le pétitionnaire pour l'acheminement du matériel lourd et la desserte du chantier (décret 2001-204, art. 5 bis)"
+          description: "le schéma de pénétration du massif forestier proposé par le pétitionnaire pour l'acheminement du matériel lourd et la desserte du chantier (décret 2001-204, art. 5 bis)",
         },
-        [DOCUMENTS_TYPES_IDS.lettreDeDemande]: { optionnel: false }
-      }
-    }
-  }
+        [DOCUMENTS_TYPES_IDS.lettreDeDemande]: { optionnel: false },
+      },
+    },
+  },
 } as const satisfies {
   [titreKey in TitreTypeId]?: {
     [demarcheKey in keyof TDEType[titreKey]]?: {
diff --git a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/index.ts b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/index.ts
index 6bca0eaa6..56c794e2d 100644
--- a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/index.ts
+++ b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/index.ts
@@ -31,7 +31,7 @@ const travaux = {
     ETAPES_TYPES.publicationDeDecisionAuRecueilDesActesAdministratifs_wpa,
     ETAPES_TYPES.abandonDeLaDemande,
     ETAPES_TYPES.decisionDeLadministration_wdm,
-    ETAPES_TYPES.arreteDouvertureDesTravauxMiniers
+    ETAPES_TYPES.arreteDouvertureDesTravauxMiniers,
   ],
   [DEMARCHES_TYPES_IDS.DeclarationDOuvertureDeTravaux]: [
     ETAPES_TYPES.declarationDouvertureDeTravauxMiniers_DOTM_,
@@ -52,7 +52,7 @@ const travaux = {
     ETAPES_TYPES.transmissionDuProjetDePrescriptionsAuDemandeur,
     ETAPES_TYPES.avisDuDemandeurSurLesPrescriptionsProposees,
     ETAPES_TYPES.donneActeDeLaDeclaration_DOTM_,
-    ETAPES_TYPES.abandonDeLaDemande
+    ETAPES_TYPES.abandonDeLaDemande,
   ],
   [DEMARCHES_TYPES_IDS.DeclarationDArretDefinitifDesTravaux]: [
     ETAPES_TYPES.declarationDarretDefinitifDeTravaux_DADT_,
@@ -79,8 +79,8 @@ const travaux = {
     ETAPES_TYPES.recolement,
     ETAPES_TYPES.arreteDeSecondDonnerActe,
     ETAPES_TYPES.publicationDeDecisionAuRecueilDesActesAdministratifs_wpa,
-    ETAPES_TYPES.porterAConnaissance
-  ]
+    ETAPES_TYPES.porterAConnaissance,
+  ],
 } as const satisfies { [key in TravauxIds]: readonly EtapeTypeId[] }
 
 export const TDE = {
@@ -99,7 +99,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -110,7 +110,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -124,8 +124,8 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.AUTORISATION_DE_PROSPECTION_HYDROCARBURE]: {
     ...travaux,
@@ -141,7 +141,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -156,7 +156,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -167,8 +167,8 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.AUTORISATION_DE_PROSPECTION_METAUX]: {
     ...travaux,
@@ -185,7 +185,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -200,7 +200,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -211,8 +211,8 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.AUTORISATION_DE_PROSPECTION_GRANULATS_MARINS]: {
     ...travaux,
@@ -229,7 +229,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -244,7 +244,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -255,8 +255,8 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_CARRIERES]: {
     ...travaux,
@@ -272,7 +272,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation]: [
       ETAPES_TYPES.demande,
@@ -286,7 +286,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -301,7 +301,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -312,8 +312,8 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_GEOTHERMIE]: {
     ...travaux,
@@ -329,7 +329,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -343,7 +343,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -357,7 +357,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -372,7 +372,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -383,8 +383,8 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: {
     ...travaux,
@@ -407,7 +407,7 @@ export const TDE = {
       ETAPES_TYPES.avenantALautorisationDeRechercheMiniere,
       ETAPES_TYPES.notificationAuDemandeur_AvisDefavorable_,
       ETAPES_TYPES.notificationAuDemandeur_SignatureDeLavenantALautorisationDeRechercheMiniere_,
-      ETAPES_TYPES.notificationAuDemandeur_ClassementSansSuite_
+      ETAPES_TYPES.notificationAuDemandeur_ClassementSansSuite_,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -427,7 +427,7 @@ export const TDE = {
       ETAPES_TYPES.avenantALautorisationDeRechercheMiniere,
       ETAPES_TYPES.notificationAuDemandeur_AvisDefavorable_,
       ETAPES_TYPES.notificationAuDemandeur_SignatureDeLavenantALautorisationDeRechercheMiniere_,
-      ETAPES_TYPES.notificationAuDemandeur_ClassementSansSuite_
+      ETAPES_TYPES.notificationAuDemandeur_ClassementSansSuite_,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -440,7 +440,7 @@ export const TDE = {
       ETAPES_TYPES.avenantALautorisationDeRechercheMiniere,
       ETAPES_TYPES.notificationAuDemandeur_SignatureDeLavenantALautorisationDeRechercheMiniere_,
       ETAPES_TYPES.classementSansSuite,
-      ETAPES_TYPES.notificationAuDemandeur_ClassementSansSuite_
+      ETAPES_TYPES.notificationAuDemandeur_ClassementSansSuite_,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.receptionDeComplements_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet__,
@@ -489,8 +489,8 @@ export const TDE = {
       ETAPES_TYPES.signatureDeLautorisationDeRechercheMiniere,
       ETAPES_TYPES.notificationAuDemandeur_SignatureDeLautorisationDeRechercheMiniere_,
       ETAPES_TYPES.avenantALautorisationDeRechercheMiniere,
-      ETAPES_TYPES.notificationAuDemandeur_SignatureDeLavenantALautorisationDeRechercheMiniere_
-    ]
+      ETAPES_TYPES.notificationAuDemandeur_SignatureDeLavenantALautorisationDeRechercheMiniere_,
+    ],
   },
   [TITRES_TYPES_IDS.AUTORISATION_D_EXPLOITATION_METAUX]: {
     ...travaux,
@@ -507,7 +507,7 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -552,7 +552,7 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.informationsHistoriquesIncompletes
+      ETAPES_TYPES.informationsHistoriquesIncompletes,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -569,7 +569,7 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -580,7 +580,7 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: [
       ETAPES_TYPES.demande,
@@ -594,7 +594,7 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation]: [
       ETAPES_TYPES.demande,
@@ -610,8 +610,8 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.CONCESSION_FOSSILES]: {
     ...travaux,
@@ -621,7 +621,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -629,7 +629,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.desistementDuDemandeur,
@@ -679,7 +679,7 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation]: [
       ETAPES_TYPES.demande,
@@ -687,7 +687,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -695,7 +695,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: [
       ETAPES_TYPES.demande,
@@ -703,14 +703,14 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionAdministrative,
       ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Amodiation]: [
       ETAPES_TYPES.demande,
@@ -718,8 +718,8 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.CONCESSION_GEOTHERMIE]: {
     ...travaux,
@@ -729,7 +729,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [
       ETAPES_TYPES.demande,
@@ -737,7 +737,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -745,7 +745,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -795,7 +795,7 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation]: [
       ETAPES_TYPES.demande,
@@ -803,7 +803,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -811,7 +811,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: [
       ETAPES_TYPES.demande,
@@ -819,15 +819,15 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionAdministrative,
       ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.CONCESSION_HYDROCARBURE]: {
     ...travaux,
@@ -838,7 +838,7 @@ export const TDE = {
       ETAPES_TYPES.recevabiliteDeLaDemande,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Conversion]: [
       ETAPES_TYPES.demande,
@@ -853,7 +853,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [
       ETAPES_TYPES.demande,
@@ -862,7 +862,7 @@ export const TDE = {
       ETAPES_TYPES.recevabiliteDeLaDemande,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -871,7 +871,7 @@ export const TDE = {
       ETAPES_TYPES.recevabiliteDeLaDemande,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -921,7 +921,7 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation]: [
       ETAPES_TYPES.demande,
@@ -930,7 +930,7 @@ export const TDE = {
       ETAPES_TYPES.recevabiliteDeLaDemande,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -939,7 +939,7 @@ export const TDE = {
       ETAPES_TYPES.recevabiliteDeLaDemande,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: [
       ETAPES_TYPES.demande,
@@ -948,15 +948,15 @@ export const TDE = {
       ETAPES_TYPES.recevabiliteDeLaDemande,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionAdministrative,
       ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.CONCESSION_METAUX]: {
     ...travaux,
@@ -964,7 +964,7 @@ export const TDE = {
       ETAPES_TYPES.informationsHistoriquesIncompletes,
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
-      ETAPES_TYPES.publicationDeDecisionAuJORF
+      ETAPES_TYPES.publicationDeDecisionAuJORF,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation]: [
       ETAPES_TYPES.demande,
@@ -1019,7 +1019,7 @@ export const TDE = {
       ETAPES_TYPES.avisDuConseilGeneralDeLeconomie_CGE_,
       ETAPES_TYPES.avisDuConseilDEtat,
       ETAPES_TYPES.abrogationDeLaDecision,
-      ETAPES_TYPES.decisionDuJugeAdministratif
+      ETAPES_TYPES.decisionDuJugeAdministratif,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -1064,7 +1064,7 @@ export const TDE = {
       ETAPES_TYPES.notificationAuDemandeur,
       ETAPES_TYPES.notificationDesCollectivitesLocales,
       ETAPES_TYPES.classementSansSuite,
-      ETAPES_TYPES.noteInterneSignalee
+      ETAPES_TYPES.noteInterneSignalee,
     ],
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: [
       ETAPES_TYPES.demande,
@@ -1077,7 +1077,7 @@ export const TDE = {
       ETAPES_TYPES.receptionDinformation,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -1086,7 +1086,7 @@ export const TDE = {
       ETAPES_TYPES.receptionDinformation,
       ETAPES_TYPES.decisionAdministrative,
       ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Amodiation]: [
       ETAPES_TYPES.demande,
@@ -1100,7 +1100,7 @@ export const TDE = {
       ETAPES_TYPES.receptionDinformation,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Cession]: [
       ETAPES_TYPES.demande,
@@ -1117,7 +1117,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Decheance]: [
       ETAPES_TYPES.abrogationDeLaDecision,
@@ -1132,7 +1132,7 @@ export const TDE = {
       ETAPES_TYPES.decisionAdministrative,
       ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [
       ETAPES_TYPES.demande,
@@ -1145,7 +1145,7 @@ export const TDE = {
       ETAPES_TYPES.recevabiliteDeLaDemande,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Fusion]: [ETAPES_TYPES.decisionDeLadministration, ETAPES_TYPES.publicationDeDecisionAuJORF],
     [DEMARCHES_TYPES_IDS.Octroi]: [
@@ -1199,7 +1199,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.classementSansSuite,
-      ETAPES_TYPES.noteInterneSignalee
+      ETAPES_TYPES.noteInterneSignalee,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -1221,8 +1221,8 @@ export const TDE = {
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
       ETAPES_TYPES.notificationAuDemandeur,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.CONCESSION_RADIOACTIF]: {
     ...travaux,
@@ -1232,7 +1232,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [
       ETAPES_TYPES.demande,
@@ -1240,7 +1240,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -1248,7 +1248,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -1298,7 +1298,7 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation]: [
       ETAPES_TYPES.demande,
@@ -1306,7 +1306,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -1314,7 +1314,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: [
       ETAPES_TYPES.demande,
@@ -1322,15 +1322,15 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionAdministrative,
       ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.CONCESSION_SOUTERRAIN]: {
     ...travaux,
@@ -1340,7 +1340,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [
       ETAPES_TYPES.depotDeLaDemande,
@@ -1348,7 +1348,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -1356,7 +1356,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -1406,7 +1406,7 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation]: [
       ETAPES_TYPES.demande,
@@ -1414,7 +1414,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -1422,7 +1422,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: [
       ETAPES_TYPES.demande,
@@ -1430,15 +1430,15 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionAdministrative,
       ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.CONCESSION_GRANULATS_MARINS]: {
     ...travaux,
@@ -1448,7 +1448,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [
       ETAPES_TYPES.demande,
@@ -1456,7 +1456,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -1466,7 +1466,7 @@ export const TDE = {
       ETAPES_TYPES.avisDuConseilGeneralDeLeconomie_CGE_,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -1520,7 +1520,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.classementSansSuite,
       ETAPES_TYPES.informationsHistoriquesIncompletes,
-      ETAPES_TYPES.noteInterneSignalee
+      ETAPES_TYPES.noteInterneSignalee,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation]: [
       ETAPES_TYPES.demande,
@@ -1575,7 +1575,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.classementSansSuite,
       ETAPES_TYPES.noteInterneSignalee,
-      ETAPES_TYPES.informationsHistoriquesIncompletes
+      ETAPES_TYPES.informationsHistoriquesIncompletes,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -1583,7 +1583,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: [
       ETAPES_TYPES.demande,
@@ -1591,7 +1591,7 @@ export const TDE = {
       ETAPES_TYPES.saisineDuPrefet,
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -1602,8 +1602,8 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.INDETERMINE_METAUX]: { [DEMARCHES_TYPES_IDS.Octroi]: [ETAPES_TYPES.informationsHistoriquesIncompletes] },
   [TITRES_TYPES_IDS.INDETERMINE_RADIOACTIF]: { [DEMARCHES_TYPES_IDS.Octroi]: [ETAPES_TYPES.informationsHistoriquesIncompletes] },
@@ -1621,7 +1621,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -1636,7 +1636,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.desistementDuDemandeur,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -1657,7 +1657,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation]: [
       ETAPES_TYPES.demande,
@@ -1679,7 +1679,7 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.desistementDuDemandeur,
       ETAPES_TYPES.classementSansSuite,
-      ETAPES_TYPES.noteInterneSignalee
+      ETAPES_TYPES.noteInterneSignalee,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -1694,7 +1694,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: [
       ETAPES_TYPES.demande,
@@ -1708,7 +1708,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -1719,9 +1719,9 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
-    [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [ETAPES_TYPES.saisineDuPrefet, ETAPES_TYPES.decisionDeLadministration, ETAPES_TYPES.publicationDeDecisionAuJORF]
+    [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [ETAPES_TYPES.saisineDuPrefet, ETAPES_TYPES.decisionDeLadministration, ETAPES_TYPES.publicationDeDecisionAuJORF],
   },
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_FOSSILES]: {
     ...travaux,
@@ -1739,7 +1739,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -1754,7 +1754,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -1800,7 +1800,7 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation1]: [
       ETAPES_TYPES.demande,
@@ -1815,7 +1815,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation2]: [
       ETAPES_TYPES.demande,
@@ -1830,7 +1830,7 @@ export const TDE = {
       ETAPES_TYPES.publicationDeDecisionAuJORF,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [
       ETAPES_TYPES.demande,
@@ -1845,7 +1845,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -1861,7 +1861,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -1873,7 +1873,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: [
       ETAPES_TYPES.demande,
@@ -1886,8 +1886,8 @@ export const TDE = {
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_GEOTHERMIE]: {
     ...travaux,
@@ -1903,7 +1903,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Fusion]: [
       ETAPES_TYPES.demande,
@@ -1918,7 +1918,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -1932,7 +1932,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -1967,7 +1967,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.desistementDuDemandeur,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.MutationPartielle]: [ETAPES_TYPES.publicationDeDecisionAuJORF, ETAPES_TYPES.decisionDeLadministration],
     [DEMARCHES_TYPES_IDS.Prolongation1]: [
@@ -1982,7 +1982,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation2]: [
       ETAPES_TYPES.demande,
@@ -1999,7 +1999,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.desistementDuDemandeur,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -2014,7 +2014,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -2025,9 +2025,9 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
-    [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: [ETAPES_TYPES.demande, ETAPES_TYPES.depotDeLaDemande, ETAPES_TYPES.saisineDuPrefet, ETAPES_TYPES.classementSansSuite]
+    [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: [ETAPES_TYPES.demande, ETAPES_TYPES.depotDeLaDemande, ETAPES_TYPES.saisineDuPrefet, ETAPES_TYPES.classementSansSuite],
   },
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_HYDROCARBURE]: {
     ...travaux,
@@ -2043,7 +2043,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Fusion]: [
       ETAPES_TYPES.demande,
@@ -2058,7 +2058,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -2072,7 +2072,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -2086,7 +2086,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation1]: [
       ETAPES_TYPES.demande,
@@ -2102,7 +2102,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation2]: [
       ETAPES_TYPES.demande,
@@ -2117,7 +2117,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ProlongationExceptionnelle]: [
       ETAPES_TYPES.demande,
@@ -2132,7 +2132,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -2147,7 +2147,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -2158,8 +2158,8 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: {
     ...travaux,
@@ -2183,7 +2183,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Fusion]: [
       ETAPES_TYPES.informationsHistoriquesIncompletes,
@@ -2207,7 +2207,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: [
       ETAPES_TYPES.informationsHistoriquesIncompletes,
@@ -2225,7 +2225,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -2245,7 +2245,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -2262,7 +2262,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation2]: [
       ETAPES_TYPES.saisineDuPrefet,
@@ -2296,7 +2296,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDeSubstance]: [
       ETAPES_TYPES.demande,
@@ -2318,7 +2318,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -2341,7 +2341,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -2394,7 +2394,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.noteInterneSignalee,
       ETAPES_TYPES.classementSansSuite,
-      ETAPES_TYPES.informationsHistoriquesIncompletes
+      ETAPES_TYPES.informationsHistoriquesIncompletes,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation1]: [
       ETAPES_TYPES.demande,
@@ -2428,8 +2428,8 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_RADIOACTIF]: {
     ...travaux,
@@ -2447,7 +2447,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Fusion]: [
       ETAPES_TYPES.demande,
@@ -2463,7 +2463,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -2478,7 +2478,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.avisDeMiseEnConcurrenceAuJORF,
@@ -2524,7 +2524,7 @@ export const TDE = {
       ETAPES_TYPES.avisDuneCollectiviteLocale,
       ETAPES_TYPES.avisDuConseilGeneralDeLeconomie_CGE_,
       ETAPES_TYPES.abrogationDeLaDecision,
-      ETAPES_TYPES.decisionDuJugeAdministratif
+      ETAPES_TYPES.decisionDuJugeAdministratif,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -2538,7 +2538,7 @@ export const TDE = {
       ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: [
       ETAPES_TYPES.demande,
@@ -2551,7 +2551,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prorogation]: [ETAPES_TYPES.decisionDeLadministration, ETAPES_TYPES.publicationDeDecisionAuJORF],
     [DEMARCHES_TYPES_IDS.Prolongation1]: [
@@ -2567,7 +2567,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation2]: [
       ETAPES_TYPES.demande,
@@ -2582,7 +2582,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -2598,8 +2598,8 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_SOUTERRAIN]: {
     ...travaux,
@@ -2616,7 +2616,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Fusion]: [
       ETAPES_TYPES.demande,
@@ -2632,7 +2632,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -2647,7 +2647,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -2693,7 +2693,7 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation1]: [
       ETAPES_TYPES.demande,
@@ -2708,7 +2708,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation2]: [
       ETAPES_TYPES.demande,
@@ -2723,7 +2723,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -2739,7 +2739,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -2751,7 +2751,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: [
       ETAPES_TYPES.demande,
@@ -2764,8 +2764,8 @@ export const TDE = {
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_GRANULATS_MARINS]: {
     ...travaux,
@@ -2817,7 +2817,7 @@ export const TDE = {
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: [
       ETAPES_TYPES.informationsHistoriquesIncompletes,
@@ -2831,7 +2831,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -2847,7 +2847,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -2859,7 +2859,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Fusion]: [
       ETAPES_TYPES.informationsHistoriquesIncompletes,
@@ -2876,7 +2876,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [
       ETAPES_TYPES.demande,
@@ -2891,7 +2891,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -2906,7 +2906,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation1]: [
       ETAPES_TYPES.demande,
@@ -2923,7 +2923,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation2]: [
       ETAPES_TYPES.demande,
@@ -2940,8 +2940,8 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GEOTHERMIE]: {
     ...travaux,
@@ -2958,7 +2958,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [
       ETAPES_TYPES.demande,
@@ -2972,7 +2972,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -2986,7 +2986,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -3001,7 +3001,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation]: [
       ETAPES_TYPES.demande,
@@ -3015,7 +3015,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -3030,7 +3030,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: [
       ETAPES_TYPES.demande,
@@ -3045,7 +3045,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -3056,7 +3056,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Fusion]: [
       ETAPES_TYPES.depotDeLaDemande,
@@ -3070,11 +3070,11 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_FOSSILES]: {
-    [DEMARCHES_TYPES_IDS.Octroi]: [ETAPES_TYPES.publicationDeDecisionAuJORF]
+    [DEMARCHES_TYPES_IDS.Octroi]: [ETAPES_TYPES.publicationDeDecisionAuJORF],
   },
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_HYDROCARBURE]: {
     ...travaux,
@@ -3090,7 +3090,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [
       ETAPES_TYPES.demande,
@@ -3104,7 +3104,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -3118,7 +3118,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -3132,7 +3132,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation1]: [
       ETAPES_TYPES.demande,
@@ -3146,7 +3146,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation2]: [
       ETAPES_TYPES.demande,
@@ -3160,7 +3160,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -3174,7 +3174,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: [
       ETAPES_TYPES.demande,
@@ -3188,7 +3188,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -3199,7 +3199,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: [
       ETAPES_TYPES.demande,
@@ -3212,7 +3212,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prorogation]: [
       ETAPES_TYPES.saisineDuPrefet,
@@ -3222,8 +3222,8 @@ export const TDE = {
       ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF,
       ETAPES_TYPES.decisionAdministrative,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_METAUX]: {
     ...travaux,
@@ -3240,7 +3240,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: [
       ETAPES_TYPES.informationsHistoriquesIncompletes,
@@ -3254,7 +3254,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -3302,7 +3302,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.classementSansSuite,
       ETAPES_TYPES.noteInterneSignalee,
-      ETAPES_TYPES.informationsHistoriquesIncompletes
+      ETAPES_TYPES.informationsHistoriquesIncompletes,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation1]: [
       ETAPES_TYPES.demande,
@@ -3345,7 +3345,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.classementSansSuite,
       ETAPES_TYPES.informationsHistoriquesIncompletes,
-      ETAPES_TYPES.noteInterneSignalee
+      ETAPES_TYPES.noteInterneSignalee,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation2]: [
       ETAPES_TYPES.demande,
@@ -3388,7 +3388,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.classementSansSuite,
       ETAPES_TYPES.informationsHistoriquesIncompletes,
-      ETAPES_TYPES.noteInterneSignalee
+      ETAPES_TYPES.noteInterneSignalee,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -3403,7 +3403,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: [
       ETAPES_TYPES.demande,
@@ -3418,7 +3418,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -3429,7 +3429,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [
       ETAPES_TYPES.demande,
@@ -3443,7 +3443,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDeSubstance]: [
       ETAPES_TYPES.demande,
@@ -3457,7 +3457,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -3473,8 +3473,8 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_RADIOACTIF]: {
     ...travaux,
@@ -3491,7 +3491,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prorogation]: [ETAPES_TYPES.decisionDeLadministration, ETAPES_TYPES.publicationDeDecisionAuJORF],
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [
@@ -3506,7 +3506,7 @@ export const TDE = {
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDeSubstance]: [
       ETAPES_TYPES.demande,
@@ -3520,7 +3520,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -3534,7 +3534,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.demande,
@@ -3548,7 +3548,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation1]: [
       ETAPES_TYPES.demande,
@@ -3562,7 +3562,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation2]: [
       ETAPES_TYPES.demande,
@@ -3576,7 +3576,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -3591,7 +3591,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: [
       ETAPES_TYPES.demande,
@@ -3606,7 +3606,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -3617,7 +3617,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: [
       ETAPES_TYPES.demande,
@@ -3630,8 +3630,8 @@ export const TDE = {
       ETAPES_TYPES.decisionDeLadministration,
       ETAPES_TYPES.retraitDeLaDecision,
       ETAPES_TYPES.publicationDeDecisionAuJORF,
-      ETAPES_TYPES.classementSansSuite
-    ]
+      ETAPES_TYPES.classementSansSuite,
+    ],
   },
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: {
     ...travaux,
@@ -3647,7 +3647,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Octroi]: [
       ETAPES_TYPES.informationsHistoriquesIncompletes,
@@ -3662,7 +3662,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: [
       ETAPES_TYPES.demande,
@@ -3676,7 +3676,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Renonciation]: [
       ETAPES_TYPES.demande,
@@ -3690,7 +3690,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Mutation]: [
       ETAPES_TYPES.demande,
@@ -3704,7 +3704,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation1]: [
       ETAPES_TYPES.demande,
@@ -3718,7 +3718,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prolongation2]: [
       ETAPES_TYPES.demande,
@@ -3732,7 +3732,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: [
       ETAPES_TYPES.demande,
@@ -3746,7 +3746,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Retrait]: [
       ETAPES_TYPES.initiationDeLaDemarcheDeRetrait,
@@ -3757,7 +3757,7 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
+      ETAPES_TYPES.classementSansSuite,
     ],
     [DEMARCHES_TYPES_IDS.Prorogation]: [
       ETAPES_TYPES.saisineDuPrefet,
@@ -3767,9 +3767,9 @@ export const TDE = {
       ETAPES_TYPES.abrogationDeLaDecision,
       ETAPES_TYPES.decisionDuJugeAdministratif,
       ETAPES_TYPES.retraitDeLaDecision,
-      ETAPES_TYPES.classementSansSuite
-    ]
-  }
+      ETAPES_TYPES.classementSansSuite,
+    ],
+  },
 } as const satisfies { [key in TitreTypeId]: { [other in TitresTypesDemarchesTypes[key][number]]: readonly EtapeTypeId[] } }
 
 export type TDEType = typeof TDE
diff --git a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.ts b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.ts
index b968a22b6..36e792236 100644
--- a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.ts
+++ b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.ts
@@ -16,17 +16,17 @@ const gestionDeLaDemandeDeComplements: Section[] = [
         type: 'number',
         optionnel: true,
         description:
-          "Nombre de jours accordés pour produire les compléments demandés. Le delai au delà duquel une décision implicite se forme est suspendu dès réception de cette demande et jusqu'à la production des compléments. Au delà du délai fixé, la demande est suceptible d'être classée sans suite ou instruite en l'état."
+          "Nombre de jours accordés pour produire les compléments demandés. Le delai au delà duquel une décision implicite se forme est suspendu dès réception de cette demande et jusqu'à la production des compléments. Au delà du délai fixé, la demande est suceptible d'être classée sans suite ou instruite en l'état.",
       },
       {
         id: 'datear',
         nom: 'Accusé de réception',
         type: 'date',
         optionnel: true,
-        description: "Date de l'accusé de réception de la demande de compléments à compter de laquelle commence à courrir le délai accordé pour produire les compléments."
-      }
-    ]
-  }
+        description: "Date de l'accusé de réception de la demande de compléments à compter de laquelle commence à courrir le délai accordé pour produire les compléments.",
+      },
+    ],
+  },
 ]
 const suiviDeLaDemarche: Section[] = [
   {
@@ -38,10 +38,10 @@ const suiviDeLaDemarche: Section[] = [
         nom: 'Date de réception',
         type: 'date',
         optionnel: true,
-        description: "Date de réception à compter de laquelle commence à courir le délai imparti pour signer l'autorisation ou un avenant"
-      }
-    ]
-  }
+        description: "Date de réception à compter de laquelle commence à courir le délai imparti pour signer l'autorisation ou un avenant",
+      },
+    ],
+  },
 ]
 
 const EtapesTypesSections = {
@@ -55,10 +55,10 @@ const EtapesTypesSections = {
           nom: 'Arrêté préfectoral',
           type: 'text',
           optionnel: true,
-          description: "Numéro de l'arrêté préfectoral portant décision dans le cadre de l’examen au cas par cas du projet d’autorisation de recherche minière"
-        }
-      ]
-    }
+          description: "Numéro de l'arrêté préfectoral portant décision dans le cadre de l’examen au cas par cas du projet d’autorisation de recherche minière",
+        },
+      ],
+    },
   ],
   [ETAPES_TYPES.paiementDesFraisDeDossier]: [
     {
@@ -66,9 +66,9 @@ const EtapesTypesSections = {
       nom: 'Informations sur le paiement',
       elements: [
         { id: 'frais', nom: 'Frais de dossier', type: 'number', optionnel: true, description: 'Montant en euro des frais de dossier payés' },
-        { id: 'virement', nom: 'Virement banquaire ou postal', type: 'text', optionnel: true, description: 'Référence communiquée par le demandeur à sa banque' }
-      ]
-    }
+        { id: 'virement', nom: 'Virement banquaire ou postal', type: 'text', optionnel: true, description: 'Référence communiquée par le demandeur à sa banque' },
+      ],
+    },
   ],
   [ETAPES_TYPES.demandeDeComplements]: gestionDeLaDemandeDeComplements,
   [ETAPES_TYPES.demandeDeComplements_CompletudeDeLaDemande_]: gestionDeLaDemandeDeComplements,
@@ -82,12 +82,12 @@ const EtapesTypesSections = {
       nom: 'DEAL',
       elements: [
         { id: 'numero-dossier-deal-eau', nom: 'Numéro de dossier', type: 'text', optionnel: true, description: 'Numéro de dossier DEAL Service eau' },
-        { id: 'numero-recepisse', nom: 'Numéro de récépissé', type: 'text', optionnel: true, description: 'Numéro de récépissé émis par la DEAL Service eau' }
-      ]
-    }
+        { id: 'numero-recepisse', nom: 'Numéro de récépissé', type: 'text', optionnel: true, description: 'Numéro de récépissé émis par la DEAL Service eau' },
+      ],
+    },
   ],
   [ETAPES_TYPES.validationDuPaiementDesFraisDeDossier]: [
-    { id: 'paiement', nom: 'Informations sur le paiement', elements: [{ id: 'facture', nom: 'Facture ONF', type: 'text', optionnel: true, description: "Numéro de facture émise par l'ONF" }] }
+    { id: 'paiement', nom: 'Informations sur le paiement', elements: [{ id: 'facture', nom: 'Facture ONF', type: 'text', optionnel: true, description: "Numéro de facture émise par l'ONF" }] },
   ],
   [ETAPES_TYPES.expertiseDREALOuDGTMServiceEau]: [
     {
@@ -95,9 +95,9 @@ const EtapesTypesSections = {
       nom: 'DEAL service eau',
       elements: [
         { id: 'motifs', nom: 'Motifs', type: 'textarea', optionnel: true, description: "élément d'expertise" },
-        { id: 'agent', nom: 'Agent', type: 'text', optionnel: true, description: "Prénom et nom de l'agent chargé de l'expertise" }
-      ]
-    }
+        { id: 'agent', nom: 'Agent', type: 'text', optionnel: true, description: "Prénom et nom de l'agent chargé de l'expertise" },
+      ],
+    },
   ],
   [ETAPES_TYPES.expertiseDGTMServicePreventionDesRisquesEtIndustriesExtractives_DATE_]: [
     {
@@ -105,22 +105,22 @@ const EtapesTypesSections = {
       nom: 'DEAL service mines',
       elements: [
         { id: 'motifs', nom: 'Motifs', type: 'textarea', optionnel: true, description: "élément d'expertise" },
-        { id: 'agent', nom: 'Agent', type: 'text', optionnel: true, description: "Prénom et nom de l'agent chargé de l'expertise" }
-      ]
-    }
+        { id: 'agent', nom: 'Agent', type: 'text', optionnel: true, description: "Prénom et nom de l'agent chargé de l'expertise" },
+      ],
+    },
   ],
   [ETAPES_TYPES.notificationAuPrefet]: [
     {
       id: 'nppx',
       nom: 'Note au préfet',
       elements: [
-        { id: 'info', nom: 'Informations complémentaires', type: 'textarea', optionnel: true, description: 'Informations complémentaires accompagnant la notification de la décision au préfet' }
-      ]
-    }
+        { id: 'info', nom: 'Informations complémentaires', type: 'textarea', optionnel: true, description: 'Informations complémentaires accompagnant la notification de la décision au préfet' },
+      ],
+    },
   ],
   [ETAPES_TYPES.notificationAuDemandeur]: suiviDeLaDemarche,
   [ETAPES_TYPES.notificationAuDemandeur_AjournementDeLaCARM_]: [
-    { id: 'suivi', nom: 'Suivi de la démarche', elements: [{ id: 'dateReception', nom: 'Date de réception', type: 'date', optionnel: true, description: 'Date de réception de la notification' }] }
+    { id: 'suivi', nom: 'Suivi de la démarche', elements: [{ id: 'dateReception', nom: 'Date de réception', type: 'date', optionnel: true, description: 'Date de réception de la notification' }] },
   ],
   [ETAPES_TYPES.notificationAuDemandeur_AvisFavorableDeLaCARM_]: suiviDeLaDemarche,
   [ETAPES_TYPES.notificationAuDemandeur_ClassementSansSuite_]: suiviDeLaDemarche,
@@ -134,12 +134,12 @@ const EtapesTypesSections = {
       nom: 'Informations sur le paiement',
       elements: [
         { id: 'fraisComplementaires', nom: 'Frais de dossier complémentaires', type: 'number', optionnel: true, description: 'Montant en euro des frais de dossier complémentaires payés' },
-        { id: 'virement', nom: 'Virement banquaire ou postal', type: 'text', optionnel: true, description: 'Référence communiquée par le demandeur à sa banque' }
-      ]
-    }
+        { id: 'virement', nom: 'Virement banquaire ou postal', type: 'text', optionnel: true, description: 'Référence communiquée par le demandeur à sa banque' },
+      ],
+    },
   ],
   [ETAPES_TYPES.validationDuPaiementDesFraisDeDossierComplementaires]: [
-    { id: 'paiement', nom: 'Informations sur le paiement', elements: [{ id: 'facture', nom: 'Facture ONF', type: 'text', optionnel: true, description: "Numéro de facture émise par l'ONF" }] }
+    { id: 'paiement', nom: 'Informations sur le paiement', elements: [{ id: 'facture', nom: 'Facture ONF', type: 'text', optionnel: true, description: "Numéro de facture émise par l'ONF" }] },
   ],
   [ETAPES_TYPES.noteInterneSignalee]: [
     {
@@ -151,11 +151,11 @@ const EtapesTypesSections = {
           nom: "Notes réservées à l'administration",
           type: 'textarea',
           optionnel: true,
-          description: "Informations internes importantes pour la compréhension du suivi de l'instruction de la démarche"
-        }
-      ]
-    }
-  ]
+          description: "Informations internes importantes pour la compréhension du suivi de l'instruction de la démarche",
+        },
+      ],
+    },
+  ],
 } as const satisfies { [key in EtapeTypeId]?: DeepReadonly<Section[]> }
 
 const proprietesDeLaConcession: Section[] = [
@@ -164,9 +164,9 @@ const proprietesDeLaConcession: Section[] = [
     nom: 'Propriétés de la concession',
     elements: [
       { id: 'volume', nom: 'Volume', type: 'number', optionnel: true },
-      { id: 'volumeUniteId', nom: 'Unité du volume', type: 'select', optionnel: true, description: '', valeursMetasNom: 'unites' }
-    ]
-  }
+      { id: 'volumeUniteId', nom: 'Unité du volume', type: 'select', optionnel: true, description: '', valeursMetasNom: 'unites' },
+    ],
+  },
 ]
 
 const proprietesDuPermisExclusifDeRecherches: Section[] = [
@@ -175,9 +175,9 @@ const proprietesDuPermisExclusifDeRecherches: Section[] = [
     nom: 'Propriétés du permis exclusif de recherches',
     elements: [
       { id: 'engagement', nom: 'Engagement', type: 'number', optionnel: true },
-      { id: 'engagementDeviseId', nom: "Devise de l'engagement", type: 'select', optionnel: true, description: '', valeursMetasNom: 'devises' }
-    ]
-  }
+      { id: 'engagementDeviseId', nom: "Devise de l'engagement", type: 'select', optionnel: true, description: '', valeursMetasNom: 'devises' },
+    ],
+  },
 ]
 
 const proprietesDuPermisDExploitation: Section[] = [
@@ -186,9 +186,9 @@ const proprietesDuPermisDExploitation: Section[] = [
     nom: "Propriétés du permis d'exploitation",
     elements: [
       { id: 'volume', nom: 'Volume', type: 'number', optionnel: true, description: 'Volume' },
-      { id: 'volumeUniteId', nom: 'Unité du volume', type: 'select', optionnel: true, description: '', valeursMetasNom: 'unites' }
-    ]
-  }
+      { id: 'volumeUniteId', nom: 'Unité du volume', type: 'select', optionnel: true, description: '', valeursMetasNom: 'unites' },
+    ],
+  },
 ]
 
 const caracteristiquesARM: Section[] = [
@@ -197,30 +197,30 @@ const caracteristiquesARM: Section[] = [
     nom: 'Caractéristiques ARM',
     elements: [
       { id: 'mecanise', nom: 'Prospection mécanisée', type: 'radio', description: '' },
-      { id: 'franchissements', nom: "Franchissements de cours d'eau", type: 'integer', optionnel: true, description: "Nombre de franchissements de cours d'eau" }
-    ]
-  }
+      { id: 'franchissements', nom: "Franchissements de cours d'eau", type: 'integer', optionnel: true, description: "Nombre de franchissements de cours d'eau" },
+    ],
+  },
 ]
 
 const TDESections = {
   [TITRES_TYPES_IDS.AUTORISATION_DE_RECHERCHE_METAUX]: {
     [DEMARCHES_TYPES_IDS.Octroi]: {
       [ETAPES_TYPES.receptionDeComplements_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet__]: [
-        { id: 'arm', nom: 'Caractéristiques ARM', elements: [{ id: 'mecanise', nom: 'Prospection mécanisée', type: 'radio', description: '' }] }
+        { id: 'arm', nom: 'Caractéristiques ARM', elements: [{ id: 'mecanise', nom: 'Prospection mécanisée', type: 'radio', description: '' }] },
       ],
       [ETAPES_TYPES.recepisseDeDeclarationLoiSurLeau]: [
         {
           id: 'arm',
           nom: 'Caractéristiques ARM',
-          elements: [{ id: 'franchissements', nom: "Franchissements de cours d'eau", type: 'integer', optionnel: true, description: "Nombre de franchissements de cours d'eau" }]
-        }
+          elements: [{ id: 'franchissements', nom: "Franchissements de cours d'eau", type: 'integer', optionnel: true, description: "Nombre de franchissements de cours d'eau" }],
+        },
       ],
       [ETAPES_TYPES.receptionDeComplements_RecepisseDeDeclarationLoiSurLeau_]: [
         {
           id: 'arm',
           nom: 'Caractéristiques ARM',
-          elements: [{ id: 'franchissements', nom: "Franchissements de cours d'eau", type: 'integer', optionnel: true, description: "Nombre de franchissements de cours d'eau" }]
-        }
+          elements: [{ id: 'franchissements', nom: "Franchissements de cours d'eau", type: 'integer', optionnel: true, description: "Nombre de franchissements de cours d'eau" }],
+        },
       ],
       [ETAPES_TYPES.demande]: caracteristiquesARM,
       [ETAPES_TYPES.modificationDeLaDemande_DecisionDeLaMissionAutoriteEnvironnementale_ExamenAuCasParCasDuProjet_]: caracteristiquesARM,
@@ -229,7 +229,7 @@ const TDESections = {
         {
           id: 'armInstructeurCompletude',
           nom: 'Instructeur Pôle technique minier de Guyane',
-          elements: [{ id: 'agent', nom: 'Agent', type: 'text', optionnel: true, description: "Prénom et nom de l'agent PTMG en charge d'établir la complétude de la demande" }]
+          elements: [{ id: 'agent', nom: 'Agent', type: 'text', optionnel: true, description: "Prénom et nom de l'agent PTMG en charge d'établir la complétude de la demande" }],
         },
         {
           id: 'armDemandeur',
@@ -240,17 +240,17 @@ const TDESections = {
               nom: 'Entreprise',
               type: 'checkbox',
               description:
-                "L'entreprise porteuse de la demande est identifiées (extrait Kbis de moins d’un an, déclaration INSEE du statut d’Auto Entrepreneur, justificatif de création de société en cours, (présence code SIRET et APE)."
+                "L'entreprise porteuse de la demande est identifiées (extrait Kbis de moins d’un an, déclaration INSEE du statut d’Auto Entrepreneur, justificatif de création de société en cours, (présence code SIRET et APE).",
             },
             {
               id: 'representantLegal',
               nom: 'Représentant légal',
               type: 'checkbox',
               description:
-                "Le réprésentant légal de l'entité porteuse de la demande est identifié (Identité, coordonnées, justificatif d'identité - CNI / passeport / carte de résident en cours de validité)."
+                "Le réprésentant légal de l'entité porteuse de la demande est identifié (Identité, coordonnées, justificatif d'identité - CNI / passeport / carte de résident en cours de validité).",
             },
-            { id: 'motifsIdentification', nom: 'Motifs identification demandeur', type: 'textarea', optionnel: true, description: '' }
-          ]
+            { id: 'motifsIdentification', nom: 'Motifs identification demandeur', type: 'textarea', optionnel: true, description: '' },
+          ],
         },
         {
           id: 'armCaracteristiques',
@@ -262,50 +262,51 @@ const TDESections = {
               id: 'descriptionProjet',
               nom: 'Description du projet de recherches minières ',
               type: 'checkbox',
-              description: 'Le projet de recherches minières est décrit : le programme de prospection, les méthodes de travail projetées, les moyens techniques mobilisés, les moyens humains employés.'
+              description:
+                'Le projet de recherches minières est décrit : le programme de prospection, les méthodes de travail projetées, les moyens techniques mobilisés, les moyens humains employés.',
             },
             {
               id: 'surfaceDemandee',
               nom: 'Surfaces demandées',
               type: 'checkbox',
               description:
-                "Les surfaces demandées n'excéde pas 3 km², sous la forme de 1 à 3 carrés ou rectangles d'une superficie de 1 km² chacun, tous situés sur le même bassin versant. Les carrés mesurent 1 km de côté et les rectangles 0,5 km de largeur et 2 km de longueur. L'espacement de leurs centres n'est pas supérieur à 4 km."
+                "Les surfaces demandées n'excéde pas 3 km², sous la forme de 1 à 3 carrés ou rectangles d'une superficie de 1 km² chacun, tous situés sur le même bassin versant. Les carrés mesurent 1 km de côté et les rectangles 0,5 km de largeur et 2 km de longueur. L'espacement de leurs centres n'est pas supérieur à 4 km.",
             },
             {
               id: 'surfaceMaximumDetenue',
               nom: 'Surfaces maximum détenues',
               type: 'checkbox',
-              description: "L'opérateur ne détient pas d'autorisation de recherches sur une surface supérieure à 3 km²."
+              description: "L'opérateur ne détient pas d'autorisation de recherches sur une surface supérieure à 3 km².",
             },
             {
               id: 'localisationPerimetres',
               nom: 'Localisation des périmètres',
               type: 'checkbox',
               description:
-                'Les périmètres est transmis dans un fichier numérique réutilisable (au format ".geojson"). Le système de coordonnées légal en vigueur est le RGFG95 (ESPG: 2972) avec une précision métrique.'
+                'Les périmètres est transmis dans un fichier numérique réutilisable (au format ".geojson"). Le système de coordonnées légal en vigueur est le RGFG95 (ESPG: 2972) avec une précision métrique.',
             },
             {
               id: 'cheminements',
               nom: 'Cheminements prévisionnels à emprunter',
               type: 'checkbox',
-              description: "Ces tracés sont élaborés uniquement à partir du réseau carrossable, jusqu'à et à l'intérieur de l'ARM."
+              description: "Ces tracés sont élaborés uniquement à partir du réseau carrossable, jusqu'à et à l'intérieur de l'ARM.",
             },
             {
               id: 'localisationCheminements',
               nom: 'Localisation des cheminements prévisionnels à emprunter',
               type: 'checkbox',
               description:
-                'L\'ensemble de ces tracés est transmis dans un fichier numérique réutilisable (au format ".geojson"). Le système de coordonnées légal en vigueur est le RGFG95 (ESPG: 2972) avec une précision métrique.'
+                'L\'ensemble de ces tracés est transmis dans un fichier numérique réutilisable (au format ".geojson"). Le système de coordonnées légal en vigueur est le RGFG95 (ESPG: 2972) avec une précision métrique.',
             },
             { id: 'carte500000', nom: 'Carte synthétique 1/500 000', type: 'checkbox', description: 'Le document cartographique inclut les périmètres demandés' },
             {
               id: 'carte50000',
               nom: 'Carte synthétique 1/50 000',
               type: 'checkbox',
-              description: 'Le document cartographique inclut les périmètres demandés, le tracé des cheminements prévisionnels à emprunter, la position des points de franchissement.'
+              description: 'Le document cartographique inclut les périmètres demandés, le tracé des cheminements prévisionnels à emprunter, la position des points de franchissement.',
             },
-            { id: 'motifsDemande', nom: 'Motifs caractéristiques de la demande', type: 'textarea', optionnel: true, description: '' }
-          ]
+            { id: 'motifsDemande', nom: 'Motifs caractéristiques de la demande', type: 'textarea', optionnel: true, description: '' },
+          ],
         },
         {
           id: 'armMecanisee',
@@ -316,7 +317,7 @@ const TDESections = {
               id: 'recepisseCasParCas',
               nom: "Décision d'examen au cas par cas",
               type: 'checkbox',
-              description: "L'étape de décision dans le cadre de l'examen au cas par cas est présente et favorable."
+              description: "L'étape de décision dans le cadre de l'examen au cas par cas est présente et favorable.",
             },
             { id: 'franchissementsCoursDeau', nom: "Franchissements de cours d'eau", type: 'checkbox', description: "Les franchissements de cours d'eau sont indiqués." },
             {
@@ -324,12 +325,12 @@ const TDESections = {
               nom: "Localisation des points de franchissement de cours d'eau",
               type: 'checkbox',
               description:
-                'L\'ensemble de ces point est transmis dans un fichier numérique réutilisable (au format ".geojson"). Le système de coordonnées légal en vigueur est le RGFG95 (ESPG: 2972) avec une précision métrique.'
+                'L\'ensemble de ces point est transmis dans un fichier numérique réutilisable (au format ".geojson"). Le système de coordonnées légal en vigueur est le RGFG95 (ESPG: 2972) avec une précision métrique.',
             },
             { id: 'descriptionMateriel', nom: 'Description du matériel', type: 'checkbox', description: 'Le matériel utilisé et son origine (acquisition, location) sont décrits.' },
             { id: 'tonnageMaximum', nom: 'Tonnage maximum autorisé', type: 'checkbox', description: 'Le tonnage maximum des pelles mécaniques autorisées fixé à 21 tonnes est respecté.' },
-            { id: 'motifsMateriel', nom: 'Motifs caractéristiques matériel', type: 'textarea', optionnel: true, description: '' }
-          ]
+            { id: 'motifsMateriel', nom: 'Motifs caractéristiques matériel', type: 'textarea', optionnel: true, description: '' },
+          ],
         },
         {
           id: 'armInformationTechniques',
@@ -340,16 +341,16 @@ const TDESections = {
               nom: 'Justificatifs des capacités techniques',
               type: 'checkbox',
               description:
-                "La justification des capacités techniques s'appuie sur la présentation de l'activité professionnelle actuelle et les références professionnelles en matière minière du demandeur (curriculum vitae, ou à défaut, les formations suivies). S'il s'agit d'une personne morale les références professionnelles des cadres chargés du suivi et de la conduite des travaux sont présentées."
+                "La justification des capacités techniques s'appuie sur la présentation de l'activité professionnelle actuelle et les références professionnelles en matière minière du demandeur (curriculum vitae, ou à défaut, les formations suivies). S'il s'agit d'une personne morale les références professionnelles des cadres chargés du suivi et de la conduite des travaux sont présentées.",
             },
             {
               id: 'responsableTravaux',
               nom: 'Responsable des travaux',
               type: 'checkbox',
-              description: "Le responsable des travaux est identifié (Identité, coordonnées, justificatif d'identité - CNI / passeport / carte de résident en cours de validité)."
+              description: "Le responsable des travaux est identifié (Identité, coordonnées, justificatif d'identité - CNI / passeport / carte de résident en cours de validité).",
             },
-            { id: 'motifsCapaciteTechniques', nom: 'Motifs capacité techniques', type: 'textarea', optionnel: true, description: '' }
-          ]
+            { id: 'motifsCapaciteTechniques', nom: 'Motifs capacité techniques', type: 'textarea', optionnel: true, description: '' },
+          ],
         },
         {
           id: 'armInformationFinancieres',
@@ -359,24 +360,24 @@ const TDESections = {
               id: 'planFinancement',
               nom: 'Plan de financement',
               type: 'checkbox',
-              description: 'Le plan inclut le montant de la dépense totale envisagée en euros pour conduire la prospection et le plan prévisionnel de financement associé.'
+              description: 'Le plan inclut le montant de la dépense totale envisagée en euros pour conduire la prospection et le plan prévisionnel de financement associé.',
             },
             {
               id: 'justificationCapacitesFinancieres',
               nom: 'Justificatifs des capacités financières',
               type: 'checkbox',
               description:
-                "La démonstration des capacités financières à exercer une activité d'exploration comporte la justification des ressources financières disponibles correspondant au plan de financement."
+                "La démonstration des capacités financières à exercer une activité d'exploration comporte la justification des ressources financières disponibles correspondant au plan de financement.",
             },
             {
               id: 'justificatifSituationFiscale',
               nom: 'Justificatif de situation fiscale',
               type: 'checkbox',
               description:
-                "La justification de situation fiscale régulière est présentée (attestation ou justificatif des services fiscaux, déclaration unique DGFIP, moratoire accordé par la même autorité) excepté pour les sociétés créées dans l'année."
+                "La justification de situation fiscale régulière est présentée (attestation ou justificatif des services fiscaux, déclaration unique DGFIP, moratoire accordé par la même autorité) excepté pour les sociétés créées dans l'année.",
             },
-            { id: 'motifsCapaciteFinancieres', nom: 'Motifs capacités financières', type: 'textarea', optionnel: true, description: '' }
-          ]
+            { id: 'motifsCapaciteFinancieres', nom: 'Motifs capacités financières', type: 'textarea', optionnel: true, description: '' },
+          ],
         },
         {
           id: 'armInformationComplétude',
@@ -387,10 +388,10 @@ const TDESections = {
               nom: 'Informations complémentaires',
               type: 'textarea',
               optionnel: true,
-              description: "Informations complémentaires à l'examen de la complétude de la demande portées à la connaissance du demandeur."
-            }
-          ]
-        }
+              description: "Informations complémentaires à l'examen de la complétude de la demande portées à la connaissance du demandeur.",
+            },
+          ],
+        },
       ],
       [ETAPES_TYPES.receptionDeComplements_RecevabiliteDeLaDemande_]: caracteristiquesARM,
       [ETAPES_TYPES.receptionDeComplements_CompletudeDeLaDemande_]: caracteristiquesARM,
@@ -410,10 +411,10 @@ const TDESections = {
               dateFin: toCaminoDate('2018-02-07'),
               dateDebut: toCaminoDate('2003-07-24'),
               optionnel: true,
-              description: 'Date de début de l’expertise'
-            }
-          ]
-        }
+              description: 'Date de début de l’expertise',
+            },
+          ],
+        },
       ],
       [ETAPES_TYPES.avisDeLOfficeNationalDesForets]: [
         {
@@ -426,10 +427,10 @@ const TDESections = {
               nom: 'Signataire',
               type: 'text',
               optionnel: true,
-              description: 'Directeur ONF ou responsable du service Service Aménagement du Territoire qui apparaitra sur les documents externe pour signature'
-            }
-          ]
-        }
+              description: 'Directeur ONF ou responsable du service Service Aménagement du Territoire qui apparaitra sur les documents externe pour signature',
+            },
+          ],
+        },
       ],
       [ETAPES_TYPES.signatureDeLautorisationDeRechercheMiniere]: [
         { id: 'arm', nom: 'Caractéristiques ARM', elements: [{ id: 'mecanise', nom: 'Prospection mécanisée', type: 'radio' }] },
@@ -438,11 +439,11 @@ const TDESections = {
           nom: 'Suivi de la démarche',
           elements: [
             { id: 'signataire', nom: 'Signataire ONF', type: 'text', optionnel: true, description: "Prénom et nom du représentant légal du titulaire de l'ONF" },
-            { id: 'titulaire', nom: 'Signataire titulaire', type: 'text', optionnel: true, description: "Prénom et nom du représentant légal du titulaire de l'autorisation" }
-          ]
-        }
-      ]
-    }
+            { id: 'titulaire', nom: 'Signataire titulaire', type: 'text', optionnel: true, description: "Prénom et nom du représentant légal du titulaire de l'autorisation" },
+          ],
+        },
+      ],
+    },
   },
   [TITRES_TYPES_IDS.CONCESSION_GRANULATS_MARINS]: {
     [DEMARCHES_TYPES_IDS.AutorisationDOuvertureDeTravaux]: {
@@ -452,25 +453,25 @@ const TDESections = {
           nom: "Propriétés de l'arrêté d'ouverture de travaux",
           elements: [
             { id: 'volume', nom: 'Volume', type: 'number', optionnel: true },
-            { id: 'volumeUniteId', nom: 'Unité du volume', type: 'select', optionnel: true, description: '', valeursMetasNom: 'unites' }
-          ]
-        }
-      ]
+            { id: 'volumeUniteId', nom: 'Unité du volume', type: 'select', optionnel: true, description: '', valeursMetasNom: 'unites' },
+          ],
+        },
+      ],
     },
     [DEMARCHES_TYPES_IDS.Amodiation]: {
       [ETAPES_TYPES.demande]: proprietesDeLaConcession,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDeLaConcession,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDeLaConcession
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDeLaConcession,
     },
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: {
       [ETAPES_TYPES.demande]: proprietesDeLaConcession,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDeLaConcession,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDeLaConcession
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDeLaConcession,
     },
     [DEMARCHES_TYPES_IDS.Mutation]: {
       [ETAPES_TYPES.demande]: proprietesDeLaConcession,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDeLaConcession,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDeLaConcession
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDeLaConcession,
     },
     [DEMARCHES_TYPES_IDS.Octroi]: {
       [ETAPES_TYPES.demande]: proprietesDeLaConcession,
@@ -485,7 +486,7 @@ const TDESections = {
       [ETAPES_TYPES.retraitDeLaDecision]: proprietesDeLaConcession,
       [ETAPES_TYPES.abrogationDeLaDecision]: proprietesDeLaConcession,
       [ETAPES_TYPES.decisionDuJugeAdministratif]: proprietesDeLaConcession,
-      [ETAPES_TYPES.informationsHistoriquesIncompletes]: proprietesDeLaConcession
+      [ETAPES_TYPES.informationsHistoriquesIncompletes]: proprietesDeLaConcession,
     },
     [DEMARCHES_TYPES_IDS.Prolongation]: {
       [ETAPES_TYPES.demande]: proprietesDeLaConcession,
@@ -497,358 +498,358 @@ const TDESections = {
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDeLaConcession,
       [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDeLaConcession,
       [ETAPES_TYPES.decisionDuJugeAdministratif]: proprietesDeLaConcession,
-      [ETAPES_TYPES.informationsHistoriquesIncompletes]: proprietesDeLaConcession
+      [ETAPES_TYPES.informationsHistoriquesIncompletes]: proprietesDeLaConcession,
     },
     [DEMARCHES_TYPES_IDS.Renonciation]: {
       [ETAPES_TYPES.demande]: proprietesDeLaConcession,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDeLaConcession,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDeLaConcession
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDeLaConcession,
     },
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: {
       [ETAPES_TYPES.demande]: proprietesDeLaConcession,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDeLaConcession,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDeLaConcession
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDeLaConcession,
     },
     [DEMARCHES_TYPES_IDS.Retrait]: {
       [ETAPES_TYPES.decisionAdministrative]: proprietesDeLaConcession,
-      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDeLaConcession
-    }
+      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDeLaConcession,
+    },
   },
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_GEOTHERMIE]: {
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Fusion]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Mutation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Octroi]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Prolongation1]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Prolongation2]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Renonciation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Retrait]: {
       [ETAPES_TYPES.decisionAdministrative]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisExclusifDeRecherches
-    }
+      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisExclusifDeRecherches,
+    },
   },
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_HYDROCARBURE]: {
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Fusion]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Mutation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Octroi]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Prolongation1]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Prolongation2]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.ProlongationExceptionnelle]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Renonciation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Retrait]: {
       [ETAPES_TYPES.decisionAdministrative]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisExclusifDeRecherches
-    }
+      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisExclusifDeRecherches,
+    },
   },
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_METAUX]: {
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Renonciation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Retrait]: {
       [ETAPES_TYPES.decisionAdministrative]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.ExtensionDeSubstance]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Fusion]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Mutation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Octroi]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.modificationDeLaDemande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Prolongation1]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Prolongation2]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
-    }
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
+    },
   },
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_RADIOACTIF]: {
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Fusion]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Mutation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Octroi]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Prolongation1]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Prolongation2]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Renonciation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Retrait]: {
       [ETAPES_TYPES.decisionAdministrative]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisExclusifDeRecherches
-    }
+      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisExclusifDeRecherches,
+    },
   },
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_SOUTERRAIN]: {
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Fusion]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Mutation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Octroi]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Prolongation1]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Prolongation2]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Renonciation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Retrait]: {
       [ETAPES_TYPES.decisionAdministrative]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisExclusifDeRecherches
-    }
+      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisExclusifDeRecherches,
+    },
   },
   [TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_RECHERCHES_GRANULATS_MARINS]: {
     [DEMARCHES_TYPES_IDS.Renonciation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.DemandeDeTitreDExploitation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Fusion]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Mutation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Octroi]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Prolongation1]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Prolongation2]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisExclusifDeRecherches,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisExclusifDeRecherches,
     },
     [DEMARCHES_TYPES_IDS.Retrait]: {
       [ETAPES_TYPES.decisionAdministrative]: proprietesDuPermisExclusifDeRecherches,
-      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisExclusifDeRecherches
-    }
+      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisExclusifDeRecherches,
+    },
   },
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: {
     [DEMARCHES_TYPES_IDS.Amodiation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.modificationDeLaDemande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisDExploitation,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation,
     },
     [DEMARCHES_TYPES_IDS.ExtensionDePerimetre]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.modificationDeLaDemande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisDExploitation,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation,
     },
     [DEMARCHES_TYPES_IDS.Renonciation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.modificationDeLaDemande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisDExploitation,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation,
     },
     [DEMARCHES_TYPES_IDS.Mutation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.modificationDeLaDemande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisDExploitation,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation,
     },
     [DEMARCHES_TYPES_IDS.Octroi]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.modificationDeLaDemande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisDExploitation,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation,
     },
     [DEMARCHES_TYPES_IDS.Prolongation1]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.modificationDeLaDemande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisDExploitation,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation,
     },
     [DEMARCHES_TYPES_IDS.Prolongation2]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.modificationDeLaDemande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisDExploitation,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation,
     },
     [DEMARCHES_TYPES_IDS.ResiliationAnticipeeDAmodiation]: {
       [ETAPES_TYPES.demande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.modificationDeLaDemande]: proprietesDuPermisDExploitation,
       [ETAPES_TYPES.decisionDeLadministration]: proprietesDuPermisDExploitation,
-      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation
+      [ETAPES_TYPES.publicationDeDecisionAuJORF]: proprietesDuPermisDExploitation,
     },
     [DEMARCHES_TYPES_IDS.Prorogation]: {
       [ETAPES_TYPES.decisionAdministrative]: proprietesDuPermisDExploitation,
-      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisDExploitation
+      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisDExploitation,
     },
     [DEMARCHES_TYPES_IDS.Retrait]: {
       [ETAPES_TYPES.decisionAdministrative]: proprietesDuPermisDExploitation,
-      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisDExploitation
-    }
-  }
+      [ETAPES_TYPES.publicationDeDecisionAdministrativeAuJORF]: proprietesDuPermisDExploitation,
+    },
+  },
 } as const satisfies {
   [titreKey in keyof TDEType]?: {
     [demarcheKey in keyof TDEType[titreKey]]?: {
diff --git a/packages/common/src/static/titresTypes_titresStatuts.test.ts b/packages/common/src/static/titresTypes_titresStatuts.test.ts
index 3aec83a98..e3655e651 100644
--- a/packages/common/src/static/titresTypes_titresStatuts.test.ts
+++ b/packages/common/src/static/titresTypes_titresStatuts.test.ts
@@ -7,55 +7,55 @@ import { TITRES_TYPES_IDS } from './titresTypes.js'
 describe("publicité d'un titre", () => {
   test('un titre est toujours visible par son demandeur ou titulaire', () => {
     expect(titrePublicFind(TitresStatutIds.DemandeInitiale, TITRES_TYPES_IDS.CONCESSION_METAUX, [])).toMatchObject({
-      entreprisesLecture: true
+      entreprisesLecture: true,
     })
   })
 
   test("un titre sans démarche n'est pas public", () => {
     expect(titrePublicFind(TitresStatutIds.DemandeInitiale, TITRES_TYPES_IDS.CONCESSION_METAUX, [])).toMatchObject({
-      publicLecture: false
+      publicLecture: false,
     })
   })
 
   test("un titre dont l'autorisation pour son statut est mise à `false` n'est pas public", () => {
     expect(titrePublicFind(TitresStatutIds.DemandeInitiale, TITRES_TYPES_IDS.INDETERMINE_METAUX, [{ typeId: DEMARCHES_TYPES_IDS.Octroi, publicLecture: true }])).toMatchObject({
-      publicLecture: false
+      publicLecture: false,
     })
   })
 
   test("un titre dont l'autorisation pour son statut est mise à `true` et dont la démarche d'octroi n'est pas publique n'est pas public", () => {
     expect(titrePublicFind(TitresStatutIds.DemandeInitiale, TITRES_TYPES_IDS.CONCESSION_METAUX, [{ typeId: DEMARCHES_TYPES_IDS.Octroi, publicLecture: false }])).toMatchObject({
-      publicLecture: false
+      publicLecture: false,
     })
   })
 
   test("un titre dont l'autorisation pour son statut est mise à `true` et dont la démarche de mutation virtuelle n'est pas publique n'est pas public", () => {
     expect(titrePublicFind(TitresStatutIds.DemandeInitiale, TITRES_TYPES_IDS.CONCESSION_METAUX, [{ typeId: DEMARCHES_TYPES_IDS.MutationPartielle, publicLecture: false }])).toMatchObject({
-      publicLecture: false
+      publicLecture: false,
     })
   })
 
   test("un titre dont l'autorisation pour son statut est mise à `true` et qui n'a pas de démarche d'octroi n'est pas public", () => {
     expect(titrePublicFind(TitresStatutIds.DemandeInitiale, TITRES_TYPES_IDS.CONCESSION_METAUX, [{ typeId: DEMARCHES_TYPES_IDS.Prolongation, publicLecture: true }])).toMatchObject({
-      publicLecture: false
+      publicLecture: false,
     })
   })
 
   test("un titre dont l'autorisation pour son statut est mise à `true` et dont la démarche d'octroi est publique est public", () => {
     expect(titrePublicFind(TitresStatutIds.DemandeInitiale, TITRES_TYPES_IDS.CONCESSION_METAUX, [{ typeId: DEMARCHES_TYPES_IDS.Octroi, publicLecture: true }])).toMatchObject({
-      publicLecture: true
+      publicLecture: true,
     })
   })
 
   test("un titre dont l'autorisation pour son statut est mise à `true` et dont la mutation partielle est publique est public", () => {
     expect(titrePublicFind(TitresStatutIds.DemandeInitiale, TITRES_TYPES_IDS.CONCESSION_METAUX, [{ typeId: DEMARCHES_TYPES_IDS.MutationPartielle, publicLecture: true }])).toMatchObject({
-      publicLecture: true
+      publicLecture: true,
     })
   })
 
   test("les permis exclusifs de carrières du domaine carrière avec une démarche d'octroi publique est publique", () => {
     expect(titrePublicFind(TitresStatutIds.Echu, TITRES_TYPES_IDS.PERMIS_EXCLUSIF_DE_CARRIERES_CARRIERES, [{ typeId: DEMARCHES_TYPES_IDS.Octroi, publicLecture: true }])).toMatchObject({
-      publicLecture: true
+      publicLecture: true,
     })
   })
 })
diff --git a/packages/common/src/static/titresTypes_titresStatuts.ts b/packages/common/src/static/titresTypes_titresStatuts.ts
index b63a5d5f2..ef87fd9a6 100644
--- a/packages/common/src/static/titresTypes_titresStatuts.ts
+++ b/packages/common/src/static/titresTypes_titresStatuts.ts
@@ -44,14 +44,14 @@ const titresPublicLecture: { [key in TitreTypeId]: TitreStatutId[] } = {
     TitresStatutIds.DemandeInitiale,
     TitresStatutIds.Echu,
     TitresStatutIds.ModificationEnInstance,
-    TitresStatutIds.Valide
+    TitresStatutIds.Valide,
   ],
   [TITRES_TYPES_IDS.AUTORISATION_D_EXPLOITATION_METAUX]: [
     TitresStatutIds.DemandeClassee,
     TitresStatutIds.DemandeInitiale,
     TitresStatutIds.Echu,
     TitresStatutIds.ModificationEnInstance,
-    TitresStatutIds.Valide
+    TitresStatutIds.Valide,
   ],
   [TITRES_TYPES_IDS.CONCESSION_FOSSILES]: [TitresStatutIds.DemandeInitiale, TitresStatutIds.Echu, TitresStatutIds.ModificationEnInstance, TitresStatutIds.Valide],
   [TITRES_TYPES_IDS.CONCESSION_GEOTHERMIE]: [TitresStatutIds.DemandeInitiale, TitresStatutIds.ModificationEnInstance, TitresStatutIds.Valide],
@@ -75,7 +75,7 @@ const titresPublicLecture: { [key in TitreTypeId]: TitreStatutId[] } = {
   [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_GRANULATS_MARINS]: [TitresStatutIds.DemandeInitiale, TitresStatutIds.ModificationEnInstance, TitresStatutIds.Valide],
   [TITRES_TYPES_IDS.INDETERMINE_METAUX]: [],
   [TITRES_TYPES_IDS.INDETERMINE_RADIOACTIF]: [],
-  [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_FOSSILES]: []
+  [TITRES_TYPES_IDS.PERMIS_D_EXPLOITATION_FOSSILES]: [],
 }
 
 export const titreTypesStatutsTitresPublicLecture: { titreTypeId: TitreTypeId; titreStatutId: TitreStatutId; publicLecture: boolean }[] = getKeys(titresPublicLecture, isTitreType)
diff --git a/packages/common/src/static/unites.ts b/packages/common/src/static/unites.ts
index ca4059838..43b330097 100644
--- a/packages/common/src/static/unites.ts
+++ b/packages/common/src/static/unites.ts
@@ -12,7 +12,7 @@ export const UNITE_IDS = {
   'millier de tonnes': 'mtk',
   tonne: 'mtt',
   'tonnes par an': 'txa',
-  '100 000 mètres cubes': 'vmd'
+  '100 000 mètres cubes': 'vmd',
 } as const
 
 export interface Unite<T = UniteId> {
@@ -42,7 +42,7 @@ export const Unites: { [key in UniteId]: Unite<key> } = {
   mtk: { id: 'mtk', nom: 'millier de tonnes', symbole: 'x 1000 t', referenceUniteId: 'mkg', referenceUniteRatio: 1000000, openfiscaId: 'kt' },
   mtt: { id: 'mtt', nom: 'tonne', symbole: 't', referenceUniteId: 'mkg', referenceUniteRatio: 1000, openfiscaId: 't' },
   txa: { id: 'txa', nom: 'tonnes par an', symbole: 't / an', referenceUniteId: null, referenceUniteRatio: null },
-  vmd: { id: 'vmd', nom: '100 000 mètres cubes', symbole: 'x 100 000 m³', referenceUniteId: 'm3x', referenceUniteRatio: 100000, openfiscaId: '100km3' }
+  vmd: { id: 'vmd', nom: '100 000 mètres cubes', symbole: 'x 100 000 m³', referenceUniteId: 'm3x', referenceUniteRatio: 100000, openfiscaId: '100km3' },
 }
 
 export const fromUniteFiscaleToUnite = (unite: UniteId, value: number): number => {
diff --git a/packages/common/src/statistiques.ts b/packages/common/src/statistiques.ts
index faeada328..fec3105fb 100644
--- a/packages/common/src/statistiques.ts
+++ b/packages/common/src/statistiques.ts
@@ -43,7 +43,7 @@ export const substancesFiscalesStats = [
   SUBSTANCES_FISCALES_IDS.bauxite,
   SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodiumContenu_,
   SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitEnDissolutionParSondage,
-  SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitParAbattage
+  SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitParAbattage,
 ] as const
 
 export type SubstancesFiscalesStats = (typeof substancesFiscalesStats)[number]
diff --git a/packages/common/src/tests-utils.ts b/packages/common/src/tests-utils.ts
index 856a62f7c..143092e74 100644
--- a/packages/common/src/tests-utils.ts
+++ b/packages/common/src/tests-utils.ts
@@ -6,7 +6,7 @@ export const testBlankUser: Omit<UserNotNull, 'role'> = {
   id: 'id',
   email: 'email@gmail.com',
   nom: 'nom',
-  prenom: 'prenom'
+  prenom: 'prenom',
 }
 export const getTestUser = (param: { role: 'super' | 'defaut' | 'entreprise' | 'bureau d’études' } | { role: AdministrationRole; administrationId: AdministrationId }): UserNotNull => {
   switch (param.role) {
diff --git a/packages/ui/package.json b/packages/ui/package.json
index 949420963..9be0c429a 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -134,7 +134,8 @@
     "arrowParens": "avoid",
     "proseWrap": "never",
     "bracketSpacing": true,
-    "trailingComma": "none"
+    "trailingComma": "es5",
+    "printWidth": 200
   },
   "postcss": {
     "plugins": {
diff --git a/packages/ui/src/__snapshots__/storybook.spec.ts.snap b/packages/ui/src/__snapshots__/storybook.spec.ts.snap
index 219c85a14..e0d018056 100644
--- a/packages/ui/src/__snapshots__/storybook.spec.ts.snap
+++ b/packages/ui/src/__snapshots__/storybook.spec.ts.snap
@@ -3838,11 +3838,11 @@ exports[`Storybook Tests > Components/Entreprise > Complet 1`] = `
         <div class=\\"top-level fiscalite-value\\" style=\\"\\" data-v-b0094f72=\\"\\" data-v-b91681b0=\\"\\">78,00&nbsp;€</div>
         <div data-v-b91681b0=\\"\\">c. Taxe minière sur l’or de Guyane</div>
         <div class=\\"fiscalite-value\\" data-v-b91681b0=\\"\\">38,00&nbsp;€</div>
-        <div data-v-b91681b0=\\"\\"> d. Investissements déductibles de la taxe perçue pour la région de Guyane </div>
+        <div data-v-b91681b0=\\"\\">d. Investissements déductibles de la taxe perçue pour la région de Guyane</div>
         <div class=\\"fiscalite-value\\" data-v-b91681b0=\\"\\">1,00&nbsp;€</div>
         <div data-v-b91681b0=\\"\\">e. Montant net de taxe minière sur l’or de Guyane (c-d)</div>
         <div class=\\"fiscalite-value\\" data-v-b91681b0=\\"\\">12,00&nbsp;€</div>
-        <div data-v-b91681b0=\\"\\"> f. Frais de gestion de fiscalité directe locale (a+b+e)X 8% </div>
+        <div data-v-b91681b0=\\"\\">f. Frais de gestion de fiscalité directe locale (a+b+e)X 8%</div>
         <div class=\\"top-level fiscalite-value\\" style=\\"\\" data-v-b0094f72=\\"\\" data-v-b91681b0=\\"\\">23,20&nbsp;€</div>
         <div data-v-b91681b0=\\"\\">Somme à payer auprès du comptable (2)</div>
         <div class=\\"top-level fiscalite-value\\" style=\\"\\" data-v-b0094f72=\\"\\" data-v-b91681b0=\\"\\">313,20&nbsp;€</div>
@@ -4252,11 +4252,11 @@ exports[`Storybook Tests > Components/Entreprise/Fiscalite > Guyane 1`] = `
     <div class=\\"top-level fiscalite-value\\" style=\\"\\" data-v-b0094f72=\\"\\" data-v-b91681b0=\\"\\">669 241,56&nbsp;€</div>
     <div data-v-b91681b0=\\"\\">c. Taxe minière sur l’or de Guyane</div>
     <div class=\\"fiscalite-value\\" data-v-b91681b0=\\"\\">8 290 200,00&nbsp;€</div>
-    <div data-v-b91681b0=\\"\\"> d. Investissements déductibles de la taxe perçue pour la région de Guyane </div>
+    <div data-v-b91681b0=\\"\\">d. Investissements déductibles de la taxe perçue pour la région de Guyane</div>
     <div class=\\"fiscalite-value\\" data-v-b91681b0=\\"\\">202 200,00&nbsp;€</div>
     <div data-v-b91681b0=\\"\\">e. Montant net de taxe minière sur l’or de Guyane (c-d)</div>
     <div class=\\"fiscalite-value\\" data-v-b91681b0=\\"\\">424 620,00&nbsp;€</div>
-    <div data-v-b91681b0=\\"\\"> f. Frais de gestion de fiscalité directe locale (a+b+e)X 8% </div>
+    <div data-v-b91681b0=\\"\\">f. Frais de gestion de fiscalité directe locale (a+b+e)X 8%</div>
     <div class=\\"top-level fiscalite-value\\" style=\\"\\" data-v-b0094f72=\\"\\" data-v-b91681b0=\\"\\">346 336,41&nbsp;€</div>
     <div data-v-b91681b0=\\"\\">Somme à payer auprès du comptable (2)</div>
     <div class=\\"top-level fiscalite-value\\" style=\\"\\" data-v-b0094f72=\\"\\" data-v-b91681b0=\\"\\">4 675 541,53&nbsp;€</div>
@@ -4278,11 +4278,11 @@ exports[`Storybook Tests > Components/Entreprise/Fiscalite > GuyaneAnneePreceden
     <div class=\\"top-level fiscalite-value\\" style=\\"\\" data-v-b0094f72=\\"\\" data-v-b91681b0=\\"\\">668 910,58&nbsp;€</div>
     <div data-v-b91681b0=\\"\\">c. Taxe minière sur l’or de Guyane</div>
     <div class=\\"fiscalite-value\\" data-v-b91681b0=\\"\\">8 286 100,00&nbsp;€</div>
-    <div data-v-b91681b0=\\"\\"> d. Investissements déductibles de la taxe perçue pour la région de Guyane </div>
+    <div data-v-b91681b0=\\"\\">d. Investissements déductibles de la taxe perçue pour la région de Guyane</div>
     <div class=\\"fiscalite-value\\" data-v-b91681b0=\\"\\">202 100,00&nbsp;€</div>
     <div data-v-b91681b0=\\"\\">e. Montant net de taxe minière sur l’or de Guyane (c-d)</div>
     <div class=\\"fiscalite-value\\" data-v-b91681b0=\\"\\">424 410,00&nbsp;€</div>
-    <div data-v-b91681b0=\\"\\"> f. Frais de gestion de fiscalité directe locale (a+b+e)X 8% </div>
+    <div data-v-b91681b0=\\"\\">f. Frais de gestion de fiscalité directe locale (a+b+e)X 8%</div>
     <div class=\\"top-level fiscalite-value\\" style=\\"\\" data-v-b0094f72=\\"\\" data-v-b91681b0=\\"\\">346 165,13&nbsp;€</div>
     <div data-v-b91681b0=\\"\\">Somme à payer auprès du comptable (2)</div>
     <div class=\\"top-level fiscalite-value\\" style=\\"\\" data-v-b0094f72=\\"\\" data-v-b91681b0=\\"\\">4 673 229,20&nbsp;€</div>
@@ -4306,7 +4306,7 @@ exports[`Storybook Tests > Components/Entreprise/Fiscalite > Loading 1`] = `
       <div class=\\"spinner\\" data-v-b0094f72=\\"\\"></div>
     </div>
     <!--v-if-->
-    <div data-v-b91681b0=\\"\\"> f. Frais de gestion de fiscalité directe locale (a+b)X 8% </div>
+    <div data-v-b91681b0=\\"\\">f. Frais de gestion de fiscalité directe locale (a+b)X 8%</div>
     <div class=\\"top-level fiscalite-value\\" style=\\"display: flex; justify-content: center;\\" data-v-b0094f72=\\"\\" data-v-b91681b0=\\"\\">
       <div class=\\"spinner\\" data-v-b0094f72=\\"\\"></div>
     </div>
@@ -4330,7 +4330,7 @@ exports[`Storybook Tests > Components/Entreprise/Fiscalite > Ok 1`] = `
     <div data-v-b91681b0=\\"\\">b. Redevance départementale</div>
     <div class=\\"top-level fiscalite-value\\" style=\\"\\" data-v-b0094f72=\\"\\" data-v-b91681b0=\\"\\">330,98&nbsp;€</div>
     <!--v-if-->
-    <div data-v-b91681b0=\\"\\"> f. Frais de gestion de fiscalité directe locale (a+b)X 8% </div>
+    <div data-v-b91681b0=\\"\\">f. Frais de gestion de fiscalité directe locale (a+b)X 8%</div>
     <div class=\\"top-level fiscalite-value\\" style=\\"\\" data-v-b0094f72=\\"\\" data-v-b91681b0=\\"\\">154,48&nbsp;€</div>
     <div data-v-b91681b0=\\"\\">Somme à payer auprès du comptable (2)</div>
     <div class=\\"top-level fiscalite-value\\" style=\\"\\" data-v-b0094f72=\\"\\" data-v-b91681b0=\\"\\">2 085,53&nbsp;€</div>
@@ -4366,7 +4366,7 @@ exports[`Storybook Tests > Components/Entreprise/Fiscalite > WithError 1`] = `
       </div>
     </div>
     <!--v-if-->
-    <div data-v-b91681b0=\\"\\"> f. Frais de gestion de fiscalité directe locale (a+b)X 8% </div>
+    <div data-v-b91681b0=\\"\\">f. Frais de gestion de fiscalité directe locale (a+b)X 8%</div>
     <div class=\\"top-level fiscalite-value\\" style=\\"display: flex; justify-content: center;\\" data-v-b0094f72=\\"\\" data-v-b91681b0=\\"\\">
       <div data-v-b0094f72=\\"\\">
         <div class=\\"_tooltip_4f6ea8\\" data-v-b0094f72=\\"\\">
@@ -4867,7 +4867,7 @@ exports[`Storybook Tests > Components/Etape/FormSaveBtn > CompletudeDeLaDemandeC
   <div class=\\"tablet-blobs mr-xxs\\">
     <div class=\\"tablet-blob-1-3\\"></div>
     <div class=\\"tablet-blob-1-3\\"></div>
-    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-primary\\"> Enregistrer </button></div>
+    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-primary\\">Enregistrer</button></div>
     <div class=\\"tablet-blob-1-3\\">
       <!--v-if-->
     </div>
@@ -4885,7 +4885,7 @@ exports[`Storybook Tests > Components/Etape/FormSaveBtn > CompletudeDeLaDemandeI
   <div class=\\"tablet-blobs mr-xxs\\">
     <div class=\\"tablet-blob-1-3\\"></div>
     <div class=\\"tablet-blob-1-3\\"></div>
-    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-primary\\" disabled=\\"\\"> Enregistrer </button></div>
+    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-primary\\" disabled=\\"\\">Enregistrer</button></div>
     <div class=\\"tablet-blob-1-3\\">
       <!--v-if-->
     </div>
@@ -4903,8 +4903,8 @@ exports[`Storybook Tests > Components/Etape/FormSaveBtn > DemandeEnConstructionC
   <div class=\\"tablet-blobs mr-xxs\\">
     <div class=\\"tablet-blob-1-3\\"></div>
     <!--v-if-->
-    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-secondary\\"> Enregistrer </button></div>
-    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-primary\\"> Enregistrer et déposer </button></div>
+    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-secondary\\">Enregistrer</button></div>
+    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-primary\\">Enregistrer et déposer</button></div>
   </div>
 </div>"
 `;
@@ -4919,8 +4919,8 @@ exports[`Storybook Tests > Components/Etape/FormSaveBtn > DemandeEnConstructionI
   <div class=\\"tablet-blobs mr-xxs\\">
     <div class=\\"tablet-blob-1-3\\"></div>
     <!--v-if-->
-    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-secondary\\"> Enregistrer </button></div>
-    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-primary\\" disabled=\\"\\"> Enregistrer et déposer </button></div>
+    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-secondary\\">Enregistrer</button></div>
+    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-primary\\" disabled=\\"\\">Enregistrer et déposer</button></div>
   </div>
 </div>"
 `;
@@ -4931,8 +4931,8 @@ exports[`Storybook Tests > Components/Etape/FormSaveBtn > SansMessage 1`] = `
   <div class=\\"tablet-blobs mr-xxs\\">
     <div class=\\"tablet-blob-1-3\\"></div>
     <!--v-if-->
-    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-secondary\\"> Enregistrer </button></div>
-    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-primary\\"> Enregistrer et déposer </button></div>
+    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-secondary\\">Enregistrer</button></div>
+    <div class=\\"tablet-blob-1-3\\"><button class=\\"btn btn-primary\\">Enregistrer et déposer</button></div>
   </div>
 </div>"
 `;
@@ -6771,7 +6771,7 @@ exports[`Storybook Tests > Components/Titre/Infos > Default 1`] = `
     <div>
       <div class=\\"top-level\\" style=\\"\\" data-v-b0094f72=\\"\\">
         <div>
-          <h5> Titre à l’origine de ce titre </h5>
+          <h5>Titre à l’origine de ce titre</h5>
           <div class=\\"flex flex-center\\">
             <ul class=\\"list-inline\\" style=\\"margin-bottom: 0px;\\">
               <li class=\\"mr-xs\\"><a type=\\"primary\\" to=\\"[object Object]\\" class=\\"btn-border small p-s rnd-xs mr-xs\\"><span class=\\"mr-xs\\">Titre père</span></a></li>
@@ -7098,7 +7098,7 @@ exports[`Storybook Tests > Components/Titre/TitresLinkForm > AxmWithAlreadySelec
 "<div>
   <div class=\\"top-level\\" style=\\"\\" data-v-b0094f72=\\"\\">
     <div>
-      <h5> Titre à l’origine de ce titre </h5>
+      <h5>Titre à l’origine de ce titre</h5>
       <div class=\\"flex flex-center\\">
         <ul class=\\"list-inline\\" style=\\"margin-bottom: 0px;\\">
           <li class=\\"mr-xs\\"><a type=\\"primary\\" to=\\"[object Object]\\" class=\\"btn-border small p-s rnd-xs mr-xs\\"><span class=\\"mr-xs\\">Abttis Coucou</span></a></li>
@@ -7123,7 +7123,7 @@ exports[`Storybook Tests > Components/Titre/TitresLinkForm > DefautCantUpdateLin
 "<div>
   <div class=\\"top-level\\" style=\\"\\" data-v-b0094f72=\\"\\">
     <div>
-      <h5> Titre à l’origine de ce titre </h5>
+      <h5>Titre à l’origine de ce titre</h5>
       <div class=\\"flex flex-center\\">
         <ul class=\\"list-inline\\" style=\\"margin-bottom: 0px;\\">
           <li class=\\"mr-xs\\"><a type=\\"primary\\" to=\\"[object Object]\\" class=\\"btn-border small p-s rnd-xs mr-xs\\"><span class=\\"mr-xs\\">Abttis Coucou</span></a></li>
@@ -7147,7 +7147,7 @@ exports[`Storybook Tests > Components/Titre/TitresLinkForm > FusionWithAlreadySe
 "<div>
   <div class=\\"top-level\\" style=\\"\\" data-v-b0094f72=\\"\\">
     <div>
-      <h5> Titres à l’origine de ce titre </h5>
+      <h5>Titres à l’origine de ce titre</h5>
       <div class=\\"flex flex-center\\">
         <ul class=\\"list-inline\\" style=\\"margin-bottom: 0px;\\">
           <li class=\\"mr-xs\\"><a type=\\"primary\\" to=\\"[object Object]\\" class=\\"btn-border small p-s rnd-xs mr-xs\\"><span class=\\"mr-xs\\">Abttis Coucou</span></a></li>
@@ -8036,7 +8036,7 @@ exports[`Storybook Tests > Components/Ui/Pill > Primary 1`] = `"<span class=\\"c
 
 exports[`Storybook Tests > Components/User/Button > Connected 1`] = `"<div class=\\"flex\\"><button id=\\"cmn-user-button-menu\\" class=\\"btn-menu text-decoration-none bold p-0\\" aria-label=\\"profil utilisateur\\">prenom Nom</button></div>"`;
 
-exports[`Storybook Tests > Components/User/Button > NotConnected 1`] = `"<div class=\\"flex\\"><button id=\\"cmn-user-button-connexion\\" class=\\"btn btn-primary small lh-2\\"> Connexion </button></div>"`;
+exports[`Storybook Tests > Components/User/Button > NotConnected 1`] = `"<div class=\\"flex\\"><button id=\\"cmn-user-button-connexion\\" class=\\"btn btn-primary small lh-2\\">Connexion</button></div>"`;
 
 exports[`Storybook Tests > Components/Utilisateur > AnotherUser 1`] = `
 "<div>
diff --git a/packages/ui/src/api/_client.js b/packages/ui/src/api/_client.js
index 6d796c3d8..9b8a6518e 100644
--- a/packages/ui/src/api/_client.js
+++ b/packages/ui/src/api/_client.js
@@ -10,26 +10,16 @@ const cache = new Cache()
 const loading = new Loading()
 
 const errorThrow = e => {
-  if (
-    e.message === 'aborted' ||
-    e.message === 'Fetch error.' ||
-    e.message === 'Response JSON parse error.'
-  )
-    throw new Error('aborted')
+  if (e.message === 'aborted' || e.message === 'Fetch error.' || e.message === 'Response JSON parse error.') throw new Error('aborted')
 
   throw new Error(e.message || e.status)
 }
 
-const graphQLCall = async (
-  url,
-  query,
-  variables,
-  cacheKey = query.definitions[0].name.value
-) => {
+const graphQLCall = async (url, query, variables, cacheKey = query.definitions[0].name.value) => {
   const abortController = new AbortController()
   const fetchOptions = fetchOptionsGraphQL({
     query: print(query),
-    variables
+    variables,
   })
 
   fetchOptions.signal = abortController.signal
@@ -42,20 +32,13 @@ const graphQLCall = async (
 
   const req = fetchGraphQL(url, fetchOptions)
 
-  const loadingCacheValue = new LoadingCacheValue(
-    loading,
-    cache,
-    cacheKey,
-    req,
-    abortController
-  )
+  const loadingCacheValue = new LoadingCacheValue(loading, cache, cacheKey, req, abortController)
 
   const res = await loadingCacheValue.promise
 
   if (res.errors?.length) {
     res.errors.forEach(e => {
-      if (e.extensions && e.extensions.client && e.message === 'FETCH_ERROR')
-        throw new Error('aborted')
+      if (e.extensions && e.extensions.client && e.message === 'FETCH_ERROR') throw new Error('aborted')
 
       throw new Error(e.message)
     })
@@ -75,9 +58,7 @@ const apiGraphQLFetch = (query, cacheKey) => async variables => {
   } catch (e) {
     if (e.status === 403 || e.message === 'HTTP 403 status.') {
       // si la session est expirée on doit réauthentifier l’utilisateur
-      window.location.replace(
-        '/oauth2/sign_in?rd=' + encodeURIComponent(window.location.href)
-      )
+      window.location.replace('/oauth2/sign_in?rd=' + encodeURIComponent(window.location.href))
     } else {
       errorThrow(e)
     }
diff --git a/packages/ui/src/api/_client.test.js b/packages/ui/src/api/_client.test.js
index 017cf8849..ba3dba604 100644
--- a/packages/ui/src/api/_client.test.js
+++ b/packages/ui/src/api/_client.test.js
@@ -9,7 +9,7 @@ vi.mock('./fragments/utilisateur', () => ({
       id
       email
     }
-  `
+  `,
 }))
 
 console.info = vi.fn()
@@ -29,7 +29,7 @@ describe('api client', () => {
 
   test('une réponse 200 du serveur ne génère pas d’erreur', async () => {
     fetch.mockResponseOnce(JSON.stringify({ data: { key: 'value' } }), {
-      status: 200
+      status: 200,
     })
 
     const res = await apiGraphQLFetch(gql`
diff --git a/packages/ui/src/api/_upload.js b/packages/ui/src/api/_upload.js
index d686bc546..16590db2f 100644
--- a/packages/ui/src/api/_upload.js
+++ b/packages/ui/src/api/_upload.js
@@ -7,7 +7,7 @@ const apiUrl = '/apiUrl'
 
 const uploadCall = async (file, progressCb) => {
   const uppy = new Uppy({
-    autoProceed: true
+    autoProceed: true,
   })
 
   uppy.use(Tus, {
@@ -18,12 +18,12 @@ const uploadCall = async (file, progressCb) => {
     },
     onChunkComplete: (_, bytesAccepted, bytesTotal) => {
       progressCb((bytesAccepted / bytesTotal) * 100)
-    }
+    },
   })
 
   uppy.addFile({
     name: file.name,
-    data: file
+    data: file,
   })
 
   progressCb(0)
diff --git a/packages/ui/src/api/api-client.ts b/packages/ui/src/api/api-client.ts
index 0b78f4419..26d02b403 100644
--- a/packages/ui/src/api/api-client.ts
+++ b/packages/ui/src/api/api-client.ts
@@ -1,21 +1,9 @@
-import {
-  AdministrationApiClient,
-  administrationApiClient
-} from '@/components/administration/administration-api-client'
+import { AdministrationApiClient, administrationApiClient } from '@/components/administration/administration-api-client'
 import { Entreprise } from 'camino-common/src/entreprise'
 import { User } from 'camino-common/src/roles'
-import {
-  PureTitresLinkFormApiClient,
-  pureTitresLinkFormApiClient
-} from '@/components/titre/pure-titres-link-form-api-client'
-import {
-  TitreApiClient,
-  titreApiClient
-} from '../components/titre/titre-api-client'
-import {
-  UtilisateurApiClient,
-  utilisateurApiClient
-} from '@/components/utilisateur/utilisateur-api-client'
+import { PureTitresLinkFormApiClient, pureTitresLinkFormApiClient } from '@/components/titre/pure-titres-link-form-api-client'
+import { TitreApiClient, titreApiClient } from '../components/titre/titre-api-client'
+import { UtilisateurApiClient, utilisateurApiClient } from '@/components/utilisateur/utilisateur-api-client'
 
 export type Utilisateur = {
   id: string
@@ -27,15 +15,11 @@ export type Utilisateur = {
   entreprises?: Entreprise[]
 } & User
 
-export interface ApiClient
-  extends AdministrationApiClient,
-    PureTitresLinkFormApiClient,
-    TitreApiClient,
-    UtilisateurApiClient {}
+export interface ApiClient extends AdministrationApiClient, PureTitresLinkFormApiClient, TitreApiClient, UtilisateurApiClient {}
 
 export const apiClient: ApiClient = {
   ...administrationApiClient,
   ...pureTitresLinkFormApiClient,
   ...titreApiClient,
-  ...utilisateurApiClient
+  ...utilisateurApiClient,
 }
diff --git a/packages/ui/src/api/client-rest.test.ts b/packages/ui/src/api/client-rest.test.ts
index a0bcaf405..0ba3e254e 100644
--- a/packages/ui/src/api/client-rest.test.ts
+++ b/packages/ui/src/api/client-rest.test.ts
@@ -3,7 +3,5 @@ import { expect, test } from 'vitest'
 import { getUiRestRoute } from './client-rest'
 
 test('getUiRestRoute', () => {
-  expect(getUiRestRoute(CaminoRestRoutes.statistiquesDGTM)).toBe(
-    '/apiUrl/statistiques/dgtm'
-  )
+  expect(getUiRestRoute(CaminoRestRoutes.statistiquesDGTM)).toBe('/apiUrl/statistiques/dgtm')
 })
diff --git a/packages/ui/src/api/client-rest.ts b/packages/ui/src/api/client-rest.ts
index ea9dc20e3..f946216af 100644
--- a/packages/ui/src/api/client-rest.ts
+++ b/packages/ui/src/api/client-rest.ts
@@ -34,69 +34,43 @@ type ParseUrlParams<url> = url extends `${infer path}(${infer optionalPath})`
   ? { [k in param]: string }
   : {}
 
-export const fetchWithJson = async <U, T extends CaminoRestRoute>(
-  path: T,
-  params: ParseUrlParams<T>,
-  method: 'post' | 'get' | 'put' | 'delete' = 'get'
-): Promise<any> => {
+export const fetchWithJson = async <U, T extends CaminoRestRoute>(path: T, params: ParseUrlParams<T>, method: 'post' | 'get' | 'put' | 'delete' = 'get'): Promise<any> => {
   const uiPath = getUiRestRoute(path)
-  let url = Object.entries<string>(params).reduce<string>(
-    (uiPath, [key, value]) => uiPath.replace(`:${key}`, value),
-    uiPath
-  )
+  let url = Object.entries<string>(params).reduce<string>((uiPath, [key, value]) => uiPath.replace(`:${key}`, value), uiPath)
   // clean url
   url = url.replace(/(\(|\)|\/?:[^/]+)/g, '')
   const fetched = await fetch(url, {
     method,
-    headers: { 'Content-Type': 'application/json' }
+    headers: { 'Content-Type': 'application/json' },
   })
   if (fetched.ok) {
     const body = await fetched.json()
     return body
   }
   if (fetched.status === 403) {
-    window.location.replace(
-      '/oauth2/sign_in?rd=' + encodeURIComponent(window.location.href)
-    )
+    window.location.replace('/oauth2/sign_in?rd=' + encodeURIComponent(window.location.href))
   }
-  console.error(
-    `Une erreur s'est produite lors de la récupération des données ${await fetched.text()}`
-  )
-  throw new Error(
-    `Une erreur s'est produite lors de la récupération des données`
-  )
+  console.error(`Une erreur s'est produite lors de la récupération des données ${await fetched.text()}`)
+  throw new Error(`Une erreur s'est produite lors de la récupération des données`)
 }
 
-export const postWithJson = async <U, T extends CaminoRestRoute>(
-  path: T,
-  params: ParseUrlParams<T>,
-  body: unknown
-): Promise<any> => {
+export const postWithJson = async <U, T extends CaminoRestRoute>(path: T, params: ParseUrlParams<T>, body: unknown): Promise<any> => {
   const uiPath = getUiRestRoute(path)
-  let url = Object.entries<string>(params).reduce<string>(
-    (uiPath, [key, value]) => uiPath.replace(`:${key}`, value),
-    uiPath
-  )
+  let url = Object.entries<string>(params).reduce<string>((uiPath, [key, value]) => uiPath.replace(`:${key}`, value), uiPath)
   // clean url
   url = url.replace(/(\(|\)|\/?:[^/]+)/g, '')
   const fetched = await fetch(url, {
     method: 'post',
     headers: { 'Content-Type': 'application/json' },
-    body: JSON.stringify(body)
+    body: JSON.stringify(body),
   })
   if (fetched.ok) {
     const body = await fetched.json()
     return body
   }
   if (fetched.status === 403) {
-    window.location.replace(
-      '/oauth2/sign_in?rd=' + encodeURIComponent(window.location.href)
-    )
+    window.location.replace('/oauth2/sign_in?rd=' + encodeURIComponent(window.location.href))
   }
-  console.error(
-    `Une erreur s'est produite lors de la récupération des données ${await fetched.text()}`
-  )
-  throw new Error(
-    `Une erreur s'est produite lors de la récupération des données`
-  )
+  console.error(`Une erreur s'est produite lors de la récupération des données ${await fetched.text()}`)
+  throw new Error(`Une erreur s'est produite lors de la récupération des données`)
 }
diff --git a/packages/ui/src/api/entreprises.js b/packages/ui/src/api/entreprises.js
index e107a6834..454aa7a8d 100644
--- a/packages/ui/src/api/entreprises.js
+++ b/packages/ui/src/api/entreprises.js
@@ -17,22 +17,8 @@ export const entreprise = apiGraphQLFetch(
 )
 
 export const entreprises = apiGraphQLFetch(gql`
-  query Entreprises(
-    $intervalle: Int
-    $page: Int
-    $colonne: String
-    $ordre: String
-    $noms: String
-    $etapeId: ID
-  ) {
-    entreprises(
-      intervalle: $intervalle
-      page: $page
-      colonne: $colonne
-      ordre: $ordre
-      noms: $noms
-      etapeId: $etapeId
-    ) {
+  query Entreprises($intervalle: Int, $page: Int, $colonne: String, $ordre: String, $noms: String, $etapeId: ID) {
+    entreprises(intervalle: $intervalle, page: $page, colonne: $colonne, ordre: $ordre, noms: $noms, etapeId: $etapeId) {
       elements {
         ...entreprises
       }
diff --git a/packages/ui/src/api/fragments/entreprises.js b/packages/ui/src/api/fragments/entreprises.js
index 3e37d2722..a7cf4a7b8 100644
--- a/packages/ui/src/api/fragments/entreprises.js
+++ b/packages/ui/src/api/fragments/entreprises.js
@@ -58,9 +58,4 @@ const fragmentTitresEntreprises = gql`
   }
 `
 
-export {
-  fragmentEntreprises,
-  fragmentTitreEntreprises,
-  fragmentTitresEntreprises,
-  fragmentEtapeMetasEntreprises
-}
+export { fragmentEntreprises, fragmentTitreEntreprises, fragmentTitresEntreprises, fragmentEtapeMetasEntreprises }
diff --git a/packages/ui/src/api/fragments/geojson.js b/packages/ui/src/api/fragments/geojson.js
index 847cf8fce..fbe7ebfde 100644
--- a/packages/ui/src/api/fragments/geojson.js
+++ b/packages/ui/src/api/fragments/geojson.js
@@ -57,9 +57,4 @@ const fragmentPerimetreInformations = gql`
   ${fragmentPerimetreAlerte}
 `
 
-export {
-  fragmentGeojsonPoints,
-  fragmentGeojsonMultiPolygon,
-  fragmentPerimetreInformations,
-  fragmentPerimetreAlerte
-}
+export { fragmentGeojsonPoints, fragmentGeojsonMultiPolygon, fragmentPerimetreInformations, fragmentPerimetreAlerte }
diff --git a/packages/ui/src/api/fragments/metas-activites.js b/packages/ui/src/api/fragments/metas-activites.js
index 115351b40..aa3cfd2fb 100644
--- a/packages/ui/src/api/fragments/metas-activites.js
+++ b/packages/ui/src/api/fragments/metas-activites.js
@@ -34,8 +34,4 @@ const fragmentActiviteTypePays = gql`
   }
 `
 
-export {
-  fragmentActiviteType,
-  fragmentActiviteTypeDocumentType,
-  fragmentActiviteTypePays
-}
+export { fragmentActiviteType, fragmentActiviteTypeDocumentType, fragmentActiviteTypePays }
diff --git a/packages/ui/src/api/fragments/metas.js b/packages/ui/src/api/fragments/metas.js
index 1f706d2fb..ea268b45a 100644
--- a/packages/ui/src/api/fragments/metas.js
+++ b/packages/ui/src/api/fragments/metas.js
@@ -138,5 +138,5 @@ export {
   fragmentTitreTypeDemarcheTypeEtapeType,
   fragmentTitreTypeDemarcheTypeEtapeTypeDocumentType,
   fragmentEtapeTypeDocumentType,
-  fragmentEtapeTypeJustificatifType
+  fragmentEtapeTypeJustificatifType,
 }
diff --git a/packages/ui/src/api/fragments/titre.js b/packages/ui/src/api/fragments/titre.js
index a9f1bb671..45ab31525 100644
--- a/packages/ui/src/api/fragments/titre.js
+++ b/packages/ui/src/api/fragments/titre.js
@@ -2,10 +2,7 @@ import gql from 'graphql-tag'
 
 import { fragmentTitreDemarche } from './titre-demarche'
 import { fragmentTitreActivite } from './titre-activite'
-import {
-  fragmentTitreEntreprises,
-  fragmentTitresEntreprises
-} from './entreprises'
+import { fragmentTitreEntreprises, fragmentTitresEntreprises } from './entreprises'
 
 import { fragmentPoint } from './point'
 
@@ -177,10 +174,4 @@ const fragmentDemarchesTitre = gql`
   }
 `
 
-export {
-  fragmentTitre,
-  fragmentTitres,
-  fragmentTitresGeo,
-  fragmentTitresGeoPolygon,
-  fragmentDemarchesTitre
-}
+export { fragmentTitre, fragmentTitres, fragmentTitresGeo, fragmentTitresGeoPolygon, fragmentDemarchesTitre }
diff --git a/packages/ui/src/api/geojson.js b/packages/ui/src/api/geojson.js
index 36a1c09ff..9d0ecc115 100644
--- a/packages/ui/src/api/geojson.js
+++ b/packages/ui/src/api/geojson.js
@@ -1,24 +1,11 @@
 import gql from 'graphql-tag'
 import { apiGraphQLFetch } from './_client'
 import { fragmentPoint } from './fragments/point'
-import {
-  fragmentPerimetreAlerte,
-  fragmentPerimetreInformations
-} from '@/api/fragments/geojson'
+import { fragmentPerimetreAlerte, fragmentPerimetreInformations } from '@/api/fragments/geojson'
 
 const pointsImporter = apiGraphQLFetch(gql`
-  query PointsImporter(
-    $file: FileUpload!
-    $geoSystemeId: String!
-    $demarcheId: String!
-    $etapeTypeId: String!
-  ) {
-    pointsImporter(
-      fileUpload: $file
-      geoSystemeId: $geoSystemeId
-      demarcheId: $demarcheId
-      etapeTypeId: $etapeTypeId
-    ) {
+  query PointsImporter($file: FileUpload!, $geoSystemeId: String!, $demarcheId: String!, $etapeTypeId: String!) {
+    pointsImporter(fileUpload: $file, geoSystemeId: $geoSystemeId, demarcheId: $demarcheId, etapeTypeId: $etapeTypeId) {
       points {
         ...point
       }
@@ -35,16 +22,8 @@ const pointsImporter = apiGraphQLFetch(gql`
 `)
 
 const perimetreInformations = apiGraphQLFetch(gql`
-  query PerimetreInformations(
-    $points: [InputPoint]!
-    $demarcheId: String!
-    $etapeTypeId: String!
-  ) {
-    perimetreInformations(
-      points: $points
-      demarcheId: $demarcheId
-      etapeTypeId: $etapeTypeId
-    ) {
+  query PerimetreInformations($points: [InputPoint]!, $demarcheId: String!, $etapeTypeId: String!) {
+    perimetreInformations(points: $points, demarcheId: $demarcheId, etapeTypeId: $etapeTypeId) {
       ...perimetreInformations
     }
   }
@@ -62,8 +41,4 @@ const titreEtapePerimetreInformations = apiGraphQLFetch(gql`
   ${fragmentPerimetreInformations}
 `)
 
-export {
-  pointsImporter,
-  perimetreInformations,
-  titreEtapePerimetreInformations
-}
+export { pointsImporter, perimetreInformations, titreEtapePerimetreInformations }
diff --git a/packages/ui/src/api/journaux.js b/packages/ui/src/api/journaux.js
index 94e3fd8cc..6455a958b 100644
--- a/packages/ui/src/api/journaux.js
+++ b/packages/ui/src/api/journaux.js
@@ -2,18 +2,8 @@ import gql from 'graphql-tag'
 import { apiGraphQLFetch } from './_client'
 
 const journaux = apiGraphQLFetch(gql`
-  query Journaux(
-    $intervalle: Int!
-    $page: Int!
-    $recherche: String
-    $titreId: String
-  ) {
-    journaux(
-      intervalle: $intervalle
-      page: $page
-      recherche: $recherche
-      titreId: $titreId
-    ) {
+  query Journaux($intervalle: Int!, $page: Int!, $recherche: String, $titreId: String) {
+    journaux(intervalle: $intervalle, page: $page, recherche: $recherche, titreId: $titreId) {
       elements {
         id
         date
diff --git a/packages/ui/src/api/metas-activites.js b/packages/ui/src/api/metas-activites.js
index 59b20cd31..f19fbcb2a 100644
--- a/packages/ui/src/api/metas-activites.js
+++ b/packages/ui/src/api/metas-activites.js
@@ -1,11 +1,7 @@
 import gql from 'graphql-tag'
 import { apiGraphQLFetch } from './_client'
 
-import {
-  fragmentActiviteType,
-  fragmentActiviteTypeDocumentType,
-  fragmentActiviteTypePays
-} from './fragments/metas-activites'
+import { fragmentActiviteType, fragmentActiviteTypeDocumentType, fragmentActiviteTypePays } from './fragments/metas-activites'
 
 const activitesMetas = apiGraphQLFetch(
   gql`
@@ -56,9 +52,4 @@ const activitesTypesPays = apiGraphQLFetch(
   `
 )
 
-export {
-  activitesMetas,
-  activitesTypes,
-  activitesTypesDocumentsTypes,
-  activitesTypesPays
-}
+export { activitesMetas, activitesTypes, activitesTypesDocumentsTypes, activitesTypesPays }
diff --git a/packages/ui/src/api/metas.js b/packages/ui/src/api/metas.js
index 7a1d688e6..b3416cf72 100644
--- a/packages/ui/src/api/metas.js
+++ b/packages/ui/src/api/metas.js
@@ -10,7 +10,7 @@ import {
   fragmentTitreTypeDemarcheTypeEtapeType,
   fragmentEtapeTypeDocumentType,
   fragmentEtapeTypeJustificatifType,
-  fragmentTitreTypeDemarcheTypeEtapeTypeDocumentType
+  fragmentTitreTypeDemarcheTypeEtapeTypeDocumentType,
 } from './fragments/metas'
 
 const titresTypesTypes = apiGraphQLFetch(
@@ -143,5 +143,5 @@ export {
   titresTypesDemarchesTypesEtapesTypes,
   titresTypesDemarchesTypesEtapesTypesJustificatifsTypes,
   etapesTypesDocumentsTypes,
-  etapesTypesJustificatifsTypes
+  etapesTypesJustificatifsTypes,
 }
diff --git a/packages/ui/src/api/titres-activites.js b/packages/ui/src/api/titres-activites.js
index ce96b4079..79108715f 100644
--- a/packages/ui/src/api/titres-activites.js
+++ b/packages/ui/src/api/titres-activites.js
@@ -86,10 +86,4 @@ const activite = apiGraphQLFetch(
   `
 )
 
-export {
-  activite,
-  activites,
-  activiteModifier,
-  activiteSupprimer,
-  activiteDeposer
-}
+export { activite, activites, activiteModifier, activiteSupprimer, activiteDeposer }
diff --git a/packages/ui/src/api/titres-etapes.js b/packages/ui/src/api/titres-etapes.js
index 992d7228b..902e54e7c 100644
--- a/packages/ui/src/api/titres-etapes.js
+++ b/packages/ui/src/api/titres-etapes.js
@@ -6,16 +6,8 @@ import { fragmentEtapeMetasEntreprises } from './fragments/entreprises'
 
 const titreEtapeEtapesTypes = apiGraphQLFetch(
   gql`
-    query TitreEtapeEtapesTypes(
-      $titreDemarcheId: ID!
-      $date: String!
-      $id: ID
-    ) {
-      etapesTypes(
-        titreDemarcheId: $titreDemarcheId
-        titreEtapeId: $id
-        date: $date
-      ) {
+    query TitreEtapeEtapesTypes($titreDemarcheId: ID!, $date: String!, $id: ID) {
+      etapesTypes(titreDemarcheId: $titreDemarcheId, titreEtapeId: $id, date: $date) {
         id
         nom
         description
@@ -67,11 +59,7 @@ const etape = apiGraphQLFetch(gql`
 
 const etapeHeritage = apiGraphQLFetch(gql`
   query EtapeHeritage($titreDemarcheId: ID!, $date: String!, $typeId: ID!) {
-    etapeHeritage(
-      titreDemarcheId: $titreDemarcheId
-      date: $date
-      typeId: $typeId
-    ) {
+    etapeHeritage(titreDemarcheId: $titreDemarcheId, date: $date, typeId: $typeId) {
       ...etapeHeritage
     }
   }
@@ -111,13 +99,4 @@ const etapeDeposer = apiGraphQLFetch(gql`
   }
 `)
 
-export {
-  etape,
-  etapeHeritage,
-  titreEtapeMetas,
-  titreEtapeEtapesTypes,
-  etapeCreer,
-  etapeModifier,
-  etapeSupprimer,
-  etapeDeposer
-}
+export { etape, etapeHeritage, titreEtapeMetas, titreEtapeEtapesTypes, etapeCreer, etapeModifier, etapeSupprimer, etapeDeposer }
diff --git a/packages/ui/src/api/titres.js b/packages/ui/src/api/titres.js
index 6553674b0..c07e0dbd3 100644
--- a/packages/ui/src/api/titres.js
+++ b/packages/ui/src/api/titres.js
@@ -1,12 +1,7 @@
 import gql from 'graphql-tag'
 import { apiGraphQLFetch } from './_client'
 
-import {
-  fragmentTitre,
-  fragmentTitres,
-  fragmentTitresGeo,
-  fragmentTitresGeoPolygon
-} from './fragments/titre'
+import { fragmentTitre, fragmentTitres, fragmentTitresGeo, fragmentTitresGeoPolygon } from './fragments/titre'
 
 const titresMetas = apiGraphQLFetch(
   gql`
@@ -232,15 +227,4 @@ const titreSupprimer = apiGraphQLFetch(gql`
   }
 `)
 
-export {
-  titresMetas,
-  titre,
-  titres,
-  titresGeo,
-  titresGeoPolygon,
-  titreCreer,
-  titreModifier,
-  titreSupprimer,
-  titresRechercherByNom,
-  titresFiltres
-}
+export { titresMetas, titre, titres, titresGeo, titresGeoPolygon, titreCreer, titreModifier, titreSupprimer, titresRechercherByNom, titresFiltres }
diff --git a/packages/ui/src/api/utilisateurs.js b/packages/ui/src/api/utilisateurs.js
index 8d334c884..5341e5dc4 100644
--- a/packages/ui/src/api/utilisateurs.js
+++ b/packages/ui/src/api/utilisateurs.js
@@ -32,17 +32,7 @@ export const utilisateur = apiGraphQLFetch(
 
 export const utilisateurs = apiGraphQLFetch(
   gql`
-    query Utilisateurs(
-      $intervalle: Int
-      $page: Int
-      $colonne: String
-      $ordre: String
-      $entrepriseIds: [ID]
-      $administrationIds: [ID]
-      $roles: [ID]
-      $noms: String
-      $emails: String
-    ) {
+    query Utilisateurs($intervalle: Int, $page: Int, $colonne: String, $ordre: String, $entrepriseIds: [ID], $administrationIds: [ID], $roles: [ID], $noms: String, $emails: String) {
       utilisateurs(
         intervalle: $intervalle
         page: $page
diff --git a/packages/ui/src/app.vue b/packages/ui/src/app.vue
index 48dc9d593..2e4fbdca9 100644
--- a/packages/ui/src/app.vue
+++ b/packages/ui/src/app.vue
@@ -26,18 +26,11 @@
     </div>
 
     <Transition name="fade">
-      <div
-        v-if="!!popup.component"
-        class="absolute full bg-inverse-alpha z-2"
-      />
+      <div v-if="!!popup.component" class="absolute full bg-inverse-alpha z-2" />
     </Transition>
 
     <Transition name="slide-top">
-      <component
-        :is="popup.component"
-        v-bind="popup.props"
-        v-if="popup.component"
-      />
+      <component :is="popup.component" v-bind="popup.props" v-if="popup.component" />
     </Transition>
 
     <Transition name="fade">
@@ -49,9 +42,7 @@
               <div
                 class="loader-file-bar"
                 :style="{
-                  right: `${
-                    100 - 100 * (fileLoading.loaded / fileLoading.total)
-                  }%`
+                  right: `${100 - 100 * (fileLoading.loaded / fileLoading.total)}%`,
                 }"
               />
             </div>
diff --git a/packages/ui/src/components/_charts/chart-with-export.tsx b/packages/ui/src/components/_charts/chart-with-export.tsx
index 4d2270d0a..16cbe0f44 100644
--- a/packages/ui/src/components/_charts/chart-with-export.tsx
+++ b/packages/ui/src/components/_charts/chart-with-export.tsx
@@ -30,15 +30,8 @@ export const ChartWithExport = <T,>(props: Props<T>): JSX.Element => {
       renderItem={item => {
         return (
           <>
-            <ConfigurableChart
-              chartConfiguration={props.getConfiguration(item)}
-            />
-            <button
-              class="btn-border py-xs px-s rnd-xs"
-              style="position: absolute; top: 4px; right: 10px"
-              title="Export CSV"
-              onClick={() => exportCsv(props.getConfiguration(item))}
-            >
+            <ConfigurableChart chartConfiguration={props.getConfiguration(item)} />
+            <button class="btn-border py-xs px-s rnd-xs" style="position: absolute; top: 4px; right: 10px" title="Export CSV" onClick={() => exportCsv(props.getConfiguration(item))}>
               <Icon size="S" name="download" />
             </button>
           </>
diff --git a/packages/ui/src/components/_charts/configurable-chart.tsx b/packages/ui/src/components/_charts/configurable-chart.tsx
index d0d60f4d3..8b2de50ac 100644
--- a/packages/ui/src/components/_charts/configurable-chart.tsx
+++ b/packages/ui/src/components/_charts/configurable-chart.tsx
@@ -14,25 +14,11 @@ import {
   ChartConfiguration,
   PieController,
   ArcElement,
-  ChartType
+  ChartType,
 } from 'chart.js'
 import { ref, onMounted, onUnmounted, defineComponent } from 'vue'
 
-Chart.register(
-  LinearScale,
-  PieController,
-  ArcElement,
-  BarController,
-  CategoryScale,
-  BarElement,
-  LineController,
-  PointElement,
-  LineElement,
-  Filler,
-  Legend,
-  Tooltip,
-  Title
-)
+Chart.register(LinearScale, PieController, ArcElement, BarController, CategoryScale, BarElement, LineController, PointElement, LineElement, Filler, Legend, Tooltip, Title)
 interface Props<TType extends ChartType> {
   chartConfiguration: ChartConfiguration<TType>
 }
@@ -60,13 +46,11 @@ const GenericConfigurableChart = <TType extends ChartType>() =>
       })
 
       return () => <canvas ref={myCanvas} />
-    }
+    },
   })
 
 const HiddenConfigurableChart = GenericConfigurableChart()
-export const ConfigurableChart = <TType extends ChartType = ChartType>(
-  props: Props<TType>
-): JSX.Element => {
+export const ConfigurableChart = <TType extends ChartType = ChartType>(props: Props<TType>): JSX.Element => {
   return (
     // TODO 2023-02-13: see https://github.com/chartjs/Chart.js/issues/10896#issuecomment-1374822435
     // @ts-ignore
diff --git a/packages/ui/src/components/_charts/utils.ts b/packages/ui/src/components/_charts/utils.ts
index 7907aa3a6..533356a09 100644
--- a/packages/ui/src/components/_charts/utils.ts
+++ b/packages/ui/src/components/_charts/utils.ts
@@ -6,7 +6,7 @@ export const CHART_COLORS = {
   blue: 'rgb(54, 162, 235)',
   purple: 'rgb(153, 102, 255)',
   grey: 'rgb(201, 203, 207)',
-  black: 'rgb(0, 0, 0)'
+  black: 'rgb(0, 0, 0)',
 } as const
 
 type ChartColor = (typeof CHART_COLORS)[keyof typeof CHART_COLORS]
diff --git a/packages/ui/src/components/_common/coordonnees-icone.vue b/packages/ui/src/components/_common/coordonnees-icone.vue
index 7d2754b7e..14ef078cf 100644
--- a/packages/ui/src/components/_common/coordonnees-icone.vue
+++ b/packages/ui/src/components/_common/coordonnees-icone.vue
@@ -7,7 +7,7 @@ import { Icon } from '@/components/_ui/icon'
 export default {
   components: { Icon },
   props: {
-    coordonnees: { type: Object, default: null }
-  }
+    coordonnees: { type: Object, default: null },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_common/depose-popup.vue b/packages/ui/src/components/_common/depose-popup.vue
index 843abf7b5..ce1a9af10 100644
--- a/packages/ui/src/components/_common/depose-popup.vue
+++ b/packages/ui/src/components/_common/depose-popup.vue
@@ -5,17 +5,12 @@
     </template>
 
     <p class="bold">Souhaitez vous effectuer le dépôt ?</p>
-    <div class="bg-warning color-bg p-s mb-l">
-      <span class="bold"> Attention </span>: cette opération est définitive et
-      ne peut pas être annulée.
-    </div>
+    <div class="bg-warning color-bg p-s mb-l"><span class="bold"> Attention </span>: cette opération est définitive et ne peut pas être annulée.</div>
 
     <template #footer>
       <div v-if="!loading" class="tablet-blobs">
         <div class="tablet-blob-1-3 mb tablet-mb-0">
-          <button class="btn-border rnd-xs p-s full-x" @click="cancel">
-            Annuler
-          </button>
+          <button class="btn-border rnd-xs p-s full-x" @click="cancel">Annuler</button>
         </div>
         <div class="tablet-blob-2-3">
           <button class="btn btn-primary" @click="depose">Déposer</button>
diff --git a/packages/ui/src/components/_common/domaine.stories.ts b/packages/ui/src/components/_common/domaine.stories.ts
index 3ffdd155f..619efbb20 100644
--- a/packages/ui/src/components/_common/domaine.stories.ts
+++ b/packages/ui/src/components/_common/domaine.stories.ts
@@ -6,14 +6,14 @@ const meta: Meta = {
   title: 'Components/Common/Domaine',
   component: Domaine,
   argTypes: {
-    domaineId: { name: 'string', required: false }
-  }
+    domaineId: { name: 'string', required: false },
+  },
 }
 export default meta
 
 export const Default = () => ({
   components: { Domaine },
-  template: '<Domaine />'
+  template: '<Domaine />',
 })
 
 export const AllDomaines = () => ({
@@ -26,12 +26,9 @@ export const AllDomaines = () => ({
         <th>Rendu</th>
       </tr>
       ${Object.values(DOMAINES_IDS)
-        .map(
-          domaine =>
-            `<tr><td>${domaine}</td><td><Domaine domaineId="${domaine}" /></td></tr>`
-        )
+        .map(domaine => `<tr><td>${domaine}</td><td><Domaine domaineId="${domaine}" /></td></tr>`)
         .join('')}
     </table>
     </div>
-  `
+  `,
 })
diff --git a/packages/ui/src/components/_common/download.tsx b/packages/ui/src/components/_common/download.tsx
index 7d81ed237..746997cee 100644
--- a/packages/ui/src/components/_common/download.tsx
+++ b/packages/ui/src/components/_common/download.tsx
@@ -15,7 +15,7 @@ async function download(props: Props) {
   props.onClicked()
   const query = new URLSearchParams({
     format: props.format,
-    ...props.query
+    ...props.query,
   }).toString()
 
   const url = `/${props.section}?${query}`
diff --git a/packages/ui/src/components/_common/downloads.tsx b/packages/ui/src/components/_common/downloads.tsx
index 39ff22f4c..7ae98e237 100644
--- a/packages/ui/src/components/_common/downloads.tsx
+++ b/packages/ui/src/components/_common/downloads.tsx
@@ -8,5 +8,5 @@ export const Downloads = defineComponent<Omit<Props, 'route' | 'matomo'>>({
     const route = useRoute()
     const matomo = inject('matomo', undefined)
     return () => <PureDownloads {...props} route={route} matomo={matomo} />
-  }
+  },
 })
diff --git a/packages/ui/src/components/_common/filtres.vue b/packages/ui/src/components/_common/filtres.vue
index 44e0e1c9c..bb7e4f2bc 100644
--- a/packages/ui/src/components/_common/filtres.vue
+++ b/packages/ui/src/components/_common/filtres.vue
@@ -1,14 +1,5 @@
 <template>
-  <Filters
-    v-if="initialized"
-    v-model:filters="filters"
-    class="flex-grow"
-    button="Valider"
-    :opened="opened"
-    title="Filtres"
-    @validate="validate"
-    @toggle="toggle"
-  />
+  <Filters v-if="initialized" v-model:filters="filters" class="flex-grow" button="Valider" :opened="opened" title="Filtres" @validate="validate" @toggle="toggle" />
   <div v-else class="py-s px-m mb-s border rnd-s">…</div>
 </template>
 
@@ -23,7 +14,7 @@ export default {
     filtres: { type: Array, required: true },
     params: { type: Object, required: true },
     metas: { type: Object, default: () => ({}) },
-    initialized: { type: Boolean, required: true }
+    initialized: { type: Boolean, required: true },
   },
 
   emits: ['toggle', 'params-update'],
@@ -31,7 +22,7 @@ export default {
   data() {
     return {
       opened: false,
-      filters: []
+      filters: [],
     }
   },
 
@@ -43,14 +34,14 @@ export default {
           this.validate()
         }
       },
-      deep: true
+      deep: true,
     },
 
     initialized: function (to, from) {
       if (!from) {
         this.init()
       }
-    }
+    },
   },
 
   methods: {
@@ -82,12 +73,7 @@ export default {
       const params = this.filters.reduce((params, filtre) => {
         let value
 
-        if (
-          filtre.type === 'custom' ||
-          filtre.type === 'select' ||
-          filtre.type === 'checkboxes' ||
-          filtre.type === 'autocomplete'
-        ) {
+        if (filtre.type === 'custom' || filtre.type === 'select' || filtre.type === 'checkboxes' || filtre.type === 'autocomplete') {
           value = valuesClean(filtre.value)
         } else {
           value = filtre.value
@@ -122,7 +108,7 @@ export default {
 
         filtre.value = preference
       })
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_common/filtres/domaine.stories.tsx b/packages/ui/src/components/_common/filtres/domaine.stories.tsx
index 0a40f0f98..ef0b32713 100644
--- a/packages/ui/src/components/_common/filtres/domaine.stories.tsx
+++ b/packages/ui/src/components/_common/filtres/domaine.stories.tsx
@@ -4,7 +4,7 @@ import { FiltreDomaine, Props } from './domaine'
 
 const meta: Meta = {
   title: 'Components/Common/Filtres/Domaine',
-  component: FiltreDomaine
+  component: FiltreDomaine,
 }
 export default meta
 
diff --git a/packages/ui/src/components/_common/filtres/statuts.stories.tsx b/packages/ui/src/components/_common/filtres/statuts.stories.tsx
index 57305538c..8426789fd 100644
--- a/packages/ui/src/components/_common/filtres/statuts.stories.tsx
+++ b/packages/ui/src/components/_common/filtres/statuts.stories.tsx
@@ -1,13 +1,10 @@
 import { Meta, Story } from '@storybook/vue3'
-import {
-  TitresStatutIds,
-  TitresStatuts
-} from 'camino-common/src/static/titresStatuts'
+import { TitresStatutIds, TitresStatuts } from 'camino-common/src/static/titresStatuts'
 import { FiltresStatuts, Props } from './statuts'
 
 const meta: Meta = {
   title: 'Components/Common/Filtres/Statuts',
-  component: FiltresStatuts
+  component: FiltresStatuts,
 }
 export default meta
 
@@ -25,7 +22,7 @@ export const AllStatuts: Story<Props> = () => (
             <FiltresStatuts
               element={{
                 couleur: TitresStatuts[statut].couleur,
-                nom: TitresStatuts[statut].nom
+                nom: TitresStatuts[statut].nom,
               }}
             />
           </td>
diff --git a/packages/ui/src/components/_common/filtres/statuts.tsx b/packages/ui/src/components/_common/filtres/statuts.tsx
index 433935f54..c8235760d 100644
--- a/packages/ui/src/components/_common/filtres/statuts.tsx
+++ b/packages/ui/src/components/_common/filtres/statuts.tsx
@@ -6,11 +6,5 @@ export type Props = {
 }
 
 export function FiltresStatuts(props: Props) {
-  return (
-    <Statut
-      color={props.element.couleur}
-      nom={props.element.nom}
-      class="inline-block mb-s"
-    />
-  )
+  return <Statut color={props.element.couleur} nom={props.element.nom} class="inline-block mb-s" />
 }
diff --git a/packages/ui/src/components/_common/filtres/types.stories.tsx b/packages/ui/src/components/_common/filtres/types.stories.tsx
index 5f697ff30..72e945312 100644
--- a/packages/ui/src/components/_common/filtres/types.stories.tsx
+++ b/packages/ui/src/components/_common/filtres/types.stories.tsx
@@ -1,15 +1,12 @@
 import { Meta, Story } from '@storybook/vue3'
 import { DOMAINES_IDS } from 'camino-common/src/static/domaines'
-import {
-  TitresTypesTypes,
-  TITRES_TYPES_TYPES_IDS
-} from 'camino-common/src/static/titresTypesTypes'
+import { TitresTypesTypes, TITRES_TYPES_TYPES_IDS } from 'camino-common/src/static/titresTypesTypes'
 import { FiltresTypes, Props } from './types'
 import { MapPattern } from '../../_map/pattern'
 
 const meta: Meta = {
   title: 'Components/Common/Filtres/Types',
-  component: FiltresTypes
+  component: FiltresTypes,
 }
 export default meta
 
@@ -25,9 +22,7 @@ export const AllTypes: Story<Props> = () => (
         <tr>
           <td>{type}</td>
           <td>
-            <FiltresTypes
-              element={{ id: type, nom: TitresTypesTypes[type].nom }}
-            />
+            <FiltresTypes element={{ id: type, nom: TitresTypesTypes[type].nom }} />
           </td>
         </tr>
       ))}
@@ -41,7 +36,7 @@ export const AllTypes: Story<Props> = () => (
               <FiltresTypes
                 element={{
                   id: `${type}-${domaine}`,
-                  nom: TitresTypesTypes[type].nom
+                  nom: TitresTypesTypes[type].nom,
                 }}
               />
             </td>
diff --git a/packages/ui/src/components/_common/filtres/types.tsx b/packages/ui/src/components/_common/filtres/types.tsx
index ef0f7a7b2..84ae5e0cf 100644
--- a/packages/ui/src/components/_common/filtres/types.tsx
+++ b/packages/ui/src/components/_common/filtres/types.tsx
@@ -12,11 +12,7 @@ export function FiltresTypes(props: Props) {
   return (
     <span>
       <svg width="24" height="24" class="mr-s mb--xs">
-        <rect
-          width="24"
-          height="24"
-          class={`svg-fill-pattern-${props.element.id}`}
-        />
+        <rect width="24" height="24" class={`svg-fill-pattern-${props.element.id}`} />
       </svg>
       <span class="cap-first h6 bold">{props.element.nom}</span>
     </span>
diff --git a/packages/ui/src/components/_common/liste.vue b/packages/ui/src/components/_common/liste.vue
index 92eacd6a2..5275e858f 100644
--- a/packages/ui/src/components/_common/liste.vue
+++ b/packages/ui/src/components/_common/liste.vue
@@ -12,14 +12,7 @@
       </div>
     </div>
 
-    <Filtres
-      v-if="filtres.length"
-      :filtres="filtres"
-      :initialized="initialized"
-      :metas="metas"
-      :params="params.filtres"
-      @params-update="paramsFiltresUpdate"
-    />
+    <Filtres v-if="filtres.length" :filtres="filtres" :initialized="initialized" :metas="metas" :params="params.filtres" @params-update="paramsFiltresUpdate" />
 
     <div class="tablet-blobs tablet-flex-direction-reverse">
       <div class="tablet-blob-1-3 flex mb-s">
@@ -67,24 +60,21 @@ export default {
     params: { type: Object, required: true },
     metas: { type: Object, default: () => ({}) },
     total: { type: Number, required: true },
-    initialized: { type: Boolean, default: false }
+    initialized: { type: Boolean, default: false },
   },
 
   emits: ['params-update'],
 
   computed: {
     resultat() {
-      const res =
-        this.total > this.elements.length
-          ? `${this.elements.length} / ${this.total}`
-          : this.elements.length
+      const res = this.total > this.elements.length ? `${this.elements.length} / ${this.total}` : this.elements.length
 
       return `${res} résultat${this.elements.length > 1 ? 's' : ''}`
     },
 
     pagination() {
       return !!this.params.table.page
-    }
+    },
   },
 
   methods: {
@@ -111,9 +101,9 @@ export default {
       this.$emit('params-update', {
         section: 'filtres',
         params,
-        pageReset: true
+        pageReset: true,
       })
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_common/map.tsx b/packages/ui/src/components/_common/map.tsx
index 9b320e15f..6026e02e5 100644
--- a/packages/ui/src/components/_common/map.tsx
+++ b/packages/ui/src/components/_common/map.tsx
@@ -1,17 +1,9 @@
 import { defineComponent, ref, computed, watch, onMounted } from 'vue'
 import { CaminoMap } from '../_map/index'
 
-import {
-  leafletMarkerBuild,
-  leafletGeojsonBuild,
-  leafletDivIconBuild
-} from '../_map/leaflet'
+import { leafletMarkerBuild, leafletGeojsonBuild, leafletDivIconBuild } from '../_map/leaflet'
 import { Icon } from '@/components/_ui/icon'
-import {
-  getDomaineId,
-  getTitreTypeType,
-  TitreTypeId
-} from 'camino-common/src/static/titresTypes'
+import { getDomaineId, getTitreTypeType, TitreTypeId } from 'camino-common/src/static/titresTypes'
 import { GeoJsonObject } from 'geojson'
 import { useRoute } from 'vue-router'
 import { LatLngTuple, Marker } from 'leaflet'
@@ -41,21 +33,17 @@ export const CamionCommonMap = defineComponent<Props>({
     }
 
     const bounds = computed(() => {
-      return geojsonLayers.value[0]
-        ? geojsonLayers.value[0].getBounds()
-        : [0, 0]
+      return geojsonLayers.value[0] ? geojsonLayers.value[0].getBounds() : [0, 0]
     })
 
     const geojsonLayers = computed(() => {
       const domaineId = getDomaineId(props.titreTypeId)
       const titreTypeTypeId = getTitreTypeType(props.titreTypeId)
 
-      const className = patternVisible.value
-        ? `svg-fill-pattern-${titreTypeTypeId}-${domaineId}`
-        : `svg-fill-domaine-${domaineId}`
+      const className = patternVisible.value ? `svg-fill-pattern-${titreTypeTypeId}-${domaineId}` : `svg-fill-domaine-${domaineId}`
 
       const options = {
-        style: { fillOpacity: 0.75, weight: 1, color: 'white', className }
+        style: { fillOpacity: 0.75, weight: 1, color: 'white', className },
       }
 
       const geojsonLayer = leafletGeojsonBuild(props.geojson, options)
@@ -74,7 +62,7 @@ export const CamionCommonMap = defineComponent<Props>({
             className: `small mono border-bg color-text py-xs px-s inline-block leaflet-marker-camino cap pill bg-bg`,
             html: point.nom,
             iconSize: undefined,
-            iconAnchor: [15.5, 38]
+            iconAnchor: [15.5, 38],
           })
 
           const latLng: LatLngTuple = [point.coordonnees.y, point.coordonnees.x]
@@ -105,41 +93,25 @@ export const CamionCommonMap = defineComponent<Props>({
 
     return () => (
       <div class="bg-alt">
-        <CaminoMap
-          ref={map}
-          geojsonLayers={geojsonLayers.value}
-          markerLayers={markerLayers.value}
-          class="map map-detail mb-s"
-        />
+        <CaminoMap ref={map} geojsonLayers={geojsonLayers.value} markerLayers={markerLayers.value} class="map map-detail mb-s" />
         <div class={`${isMain.value ? 'container' : ''}`}>
           <div class="tablet-blobs">
             <div class={`${!isMain.value ? 'px-s' : ''} tablet-blob-1-2`}>
               <div class="flex mb-s">
-                <button
-                  class="btn-border pill px-m py-s"
-                  onClick={() => centrer()}
-                >
+                <button class="btn-border pill px-m py-s" onClick={() => centrer()}>
                   Centrer
                 </button>
               </div>
             </div>
             <div class="desktop-blob-1-2 desktop-flex">
               <div class={`${markersVisible.value ? 'active' : ''} mb-s mr-xs`}>
-                <button
-                  class="btn-border p-s rnd-s"
-                  title="affiche / masque les marqueurs"
-                  onClick={() => (markersVisible.value = !markersVisible.value)}
-                >
+                <button class="btn-border p-s rnd-s" title="affiche / masque les marqueurs" onClick={() => (markersVisible.value = !markersVisible.value)}>
                   <Icon size="M" name="marker-ungrouped" />
                 </button>
               </div>
 
               <div class={`${patternVisible.value ? 'active' : ''} mb-s mr-xs`}>
-                <button
-                  class="btn-border p-s rnd-s"
-                  title="affiche / masque la trame"
-                  onClick={() => (patternVisible.value = !patternVisible.value)}
-                >
+                <button class="btn-border p-s rnd-s" title="affiche / masque la trame" onClick={() => (patternVisible.value = !patternVisible.value)}>
                   <Icon size="M" name="pattern" />
                 </button>
               </div>
@@ -148,5 +120,5 @@ export const CamionCommonMap = defineComponent<Props>({
         </div>
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/_common/new-section-element.stories.tsx b/packages/ui/src/components/_common/new-section-element.stories.tsx
index b5cd24697..44ceaee37 100644
--- a/packages/ui/src/components/_common/new-section-element.stories.tsx
+++ b/packages/ui/src/components/_common/new-section-element.stories.tsx
@@ -6,7 +6,7 @@ import { toCaminoDate } from 'camino-common/src/date'
 const meta: Meta = {
   title: 'Components/common/SectionElement',
   component: SectionElement,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -20,7 +20,7 @@ export const Text: Story = () => (
       type: 'text',
       nom: "nom de l'élément",
       description: 'description',
-      value: 'Valeur'
+      value: 'Valeur',
     }}
   />
 )
@@ -33,7 +33,7 @@ export const File: Story = () => (
       type: 'file',
       nom: 'Un fichier',
       description: 'description',
-      value: 'superfichier.pdf'
+      value: 'superfichier.pdf',
     }}
   />
 )
@@ -46,7 +46,7 @@ export const Date: Story = () => (
       type: 'date',
       nom: 'Une date',
       description: 'description',
-      value: toCaminoDate('2022-01-01')
+      value: toCaminoDate('2022-01-01'),
     }}
   />
 )
@@ -63,8 +63,8 @@ export const Checkboxes: Story = () => (
         { id: 'option1', nom: 'Option 1' },
         { id: 'option2', nom: 'Option 2' },
         { id: 'option3', nom: 'Option 3' },
-        { id: 'option4', nom: 'Option 4' }
-      ]
+        { id: 'option4', nom: 'Option 4' },
+      ],
     }}
   />
 )
@@ -81,8 +81,8 @@ export const Select: Story = () => (
         { id: 'option1', nom: 'Option 1' },
         { id: 'option2', nom: 'Option 2' },
         { id: 'option3', nom: 'Option 3' },
-        { id: 'option4', nom: 'Option 4' }
-      ]
+        { id: 'option4', nom: 'Option 4' },
+      ],
     }}
   />
 )
@@ -94,7 +94,7 @@ export const Number: Story = () => (
       id: 'id',
       type: 'number',
       nom: 'Un nombre',
-      value: 2
+      value: 2,
     }}
   />
 )
@@ -107,7 +107,7 @@ export const Radio: Story = () => (
         id: 'id',
         type: 'radio',
         nom: 'Un radio bouton',
-        value: true
+        value: true,
       }}
     />
     <SectionElement
@@ -116,7 +116,7 @@ export const Radio: Story = () => (
         id: 'id',
         type: 'radio',
         nom: 'Un autre radio bouton',
-        value: false
+        value: false,
       }}
     />
   </div>
diff --git a/packages/ui/src/components/_common/new-section-element.tsx b/packages/ui/src/components/_common/new-section-element.tsx
index d3d96801b..0259dd2ae 100644
--- a/packages/ui/src/components/_common/new-section-element.tsx
+++ b/packages/ui/src/components/_common/new-section-element.tsx
@@ -1,11 +1,6 @@
 import { numberFormat } from '@/utils/number-format'
 import { Icon } from '@/components/_ui/icon'
-import {
-  ElementWithValue,
-  isFileElement,
-  isNumberElement,
-  valeurFind
-} from 'camino-common/src/titres'
+import { ElementWithValue, isFileElement, isNumberElement, valeurFind } from 'camino-common/src/titres'
 
 export interface Props {
   element: ElementWithValue
@@ -27,27 +22,15 @@ export const SectionElement = (props: Props): JSX.Element => {
               <Icon size="S" name="file" class="mr-xs" />
               {props.element.value.slice(5)}
             </span>
-            <button
-              class="btn-border py-xs px-s rnd-xs flex-right mt--xs"
-              onClick={() =>
-                props.element.value && isFileElement(props.element)
-                  ? props.fileDownload(props.element.value)
-                  : {}
-              }
-            >
+            <button class="btn-border py-xs px-s rnd-xs flex-right mt--xs" onClick={() => (props.element.value && isFileElement(props.element) ? props.fileDownload(props.element.value) : {})}>
               <Icon size="M" name="download" />
             </button>
           </div>
         ) : (
           <p class={`cap-first ${props.element.description ? 'mb-s' : ''}`}>
             {valeurFind(props.element)}
-            {props.element.id === 'volumeGranulatsExtrait' &&
-            props.element.value !== undefined &&
-            isNumberElement(props.element) ? (
-              <span>
-                m3. Soit l’équivalent de{' '}
-                {numberFormat(props.element.value * 1.5)} tonnes.
-              </span>
+            {props.element.id === 'volumeGranulatsExtrait' && props.element.value !== undefined && isNumberElement(props.element) ? (
+              <span>m3. Soit l’équivalent de {numberFormat(props.element.value * 1.5)} tonnes.</span>
             ) : null}
           </p>
         )}
diff --git a/packages/ui/src/components/_common/new-section.stories.tsx b/packages/ui/src/components/_common/new-section.stories.tsx
index b0443193e..829588a31 100644
--- a/packages/ui/src/components/_common/new-section.stories.tsx
+++ b/packages/ui/src/components/_common/new-section.stories.tsx
@@ -5,7 +5,7 @@ import { toCaminoDate } from 'camino-common/src/date'
 
 const meta: Meta = {
   title: 'Components/common/Section',
-  component: NewSection
+  component: NewSection,
 }
 export default meta
 
@@ -25,9 +25,9 @@ export const Default: Story = () => (
           nom: "Franchissements de cours d'eau",
           type: 'integer',
           value: 3,
-          description: "Nombre de franchissements de cours d'eau"
-        }
-      ]
+          description: "Nombre de franchissements de cours d'eau",
+        },
+      ],
     }}
   />
 )
@@ -45,16 +45,16 @@ export const WithoutContent: Story = () => (
           id: 'mecanisation',
           type: 'radio',
           nom: 'Mécanisation',
-          value: undefined
+          value: undefined,
         },
         {
           id: 'franchissements',
           nom: "Franchissements de cours d'eau",
           type: 'integer',
           description: "Nombre de franchissements de cours d'eau",
-          value: undefined
-        }
-      ]
+          value: undefined,
+        },
+      ],
     }}
   />
 )
diff --git a/packages/ui/src/components/_common/new-section.tsx b/packages/ui/src/components/_common/new-section.tsx
index 7c89acb96..184ff78b8 100644
--- a/packages/ui/src/components/_common/new-section.tsx
+++ b/packages/ui/src/components/_common/new-section.tsx
@@ -2,18 +2,11 @@ import { CaminoDate } from 'camino-common/src/date'
 import { Section as ISection } from 'camino-common/src/titres'
 import { SectionElement } from './new-section-element'
 
-export const Sections = (props: {
-  sections: ISection[]
-}): JSX.Element | null => {
+export const Sections = (props: { sections: ISection[] }): JSX.Element | null => {
   return props.sections?.length ? (
     <>
       {props.sections.map(s => (
-        <NewSection
-          key={s.id}
-          entete={false}
-          section={s}
-          fileDownload={() => ({})}
-        />
+        <NewSection key={s.id} entete={false} section={s} fileDownload={() => ({})} />
       ))}
     </>
   ) : null
@@ -32,22 +25,15 @@ export const NewSection = (props: Props): JSX.Element => {
     e =>
       !props.date ||
       // si la date existe, vérifie qu'elle est dans les bornes de l'élément
-      ((!e.dateDebut || e.dateDebut < props.date) &&
-        (!e.dateFin || e.dateFin >= props.date))
+      ((!e.dateDebut || e.dateDebut < props.date) && (!e.dateFin || e.dateFin >= props.date))
   )
 
   return (
     <div>
-      {props.section.nom && entete ? (
-        <h4 class="cap-first">{props.section.nom}</h4>
-      ) : null}
+      {props.section.nom && entete ? <h4 class="cap-first">{props.section.nom}</h4> : null}
 
       {elements.map(e => (
-        <SectionElement
-          key={e.id}
-          element={e}
-          fileDownload={props.fileDownload}
-        />
+        <SectionElement key={e.id} element={e} fileDownload={props.fileDownload} />
       ))}
     </div>
   )
diff --git a/packages/ui/src/components/_common/nom.vue b/packages/ui/src/components/_common/nom.vue
index cfdcfb79e..927f025fc 100644
--- a/packages/ui/src/components/_common/nom.vue
+++ b/packages/ui/src/components/_common/nom.vue
@@ -7,7 +7,7 @@
 <script>
 export default {
   props: {
-    nom: { type: String, default: 'indéfini' }
-  }
+    nom: { type: String, default: 'indéfini' },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_common/perimetre.stories.tsx b/packages/ui/src/components/_common/perimetre.stories.tsx
index 0a7511882..7b56668fb 100644
--- a/packages/ui/src/components/_common/perimetre.stories.tsx
+++ b/packages/ui/src/components/_common/perimetre.stories.tsx
@@ -6,7 +6,7 @@ import { MultiPolygon, Feature } from 'geojson'
 
 const meta: Meta = {
   title: 'Components/common/Perimetre',
-  component: Perimetre
+  component: Perimetre,
 }
 export default meta
 
@@ -27,9 +27,9 @@ const points = [
         id: 'LuCo981JNl3qxDPqbYrxrdsv',
         geoSystemeId: '2972',
         coordonnees: { x: 326189, y: 468770 },
-        opposable: true
-      }
-    ]
+        opposable: true,
+      },
+    ],
   },
   {
     id: 'kMuGGS0LvNBOzZQWtsEtwiiu',
@@ -47,9 +47,9 @@ const points = [
         id: '0sZpojhYRJj1vM1d8e5r3o6U',
         geoSystemeId: '2972',
         coordonnees: { x: 326648, y: 468956 },
-        opposable: true
-      }
-    ]
+        opposable: true,
+      },
+    ],
   },
   {
     id: 'LkkqNpE0NzNn7CtcMF3n0uPn',
@@ -67,9 +67,9 @@ const points = [
         id: 'jB79NK3nQxTH9cmU5TREvnzP',
         geoSystemeId: '2972',
         coordonnees: { x: 327407, y: 467103 },
-        opposable: true
-      }
-    ]
+        opposable: true,
+      },
+    ],
   },
   {
     id: 'xmoDhZYRLIR4jOcSl4Aidfeb',
@@ -87,10 +87,10 @@ const points = [
         id: 'kvBT0NDUT78EwrtRgWyCGvmx',
         geoSystemeId: '2972',
         coordonnees: { x: 326948, y: 466917 },
-        opposable: true
-      }
-    ]
-  }
+        opposable: true,
+      },
+    ],
+  },
 ]
 const geojsonMultiPolygon: Feature<MultiPolygon> = {
   type: 'Feature',
@@ -104,35 +104,24 @@ const geojsonMultiPolygon: Feature<MultiPolygon> = {
           [-52.5591878553913, 4.22269896902571],
           [-52.5550566725882, 4.22438936251509],
           [-52.5619271168799, 4.24113309117193],
-          [-52.5660583466962, 4.23944263425535]
-        ]
-      ]
-    ]
-  }
+          [-52.5660583466962, 4.23944263425535],
+        ],
+      ],
+    ],
+  },
 }
 
 const tabUpdate = action('tabUpdate')
 export const DefaultNoSnapshot: Story = () => (
   <>
     <MapPattern />
-    <Perimetre
-      titreTypeId="axm"
-      points={points}
-      geojsonMultiPolygon={geojsonMultiPolygon}
-      titreId="id"
-      tabUpdate={tabUpdate}
-    />
+    <Perimetre titreTypeId="axm" points={points} geojsonMultiPolygon={geojsonMultiPolygon} titreId="id" tabUpdate={tabUpdate} />
   </>
 )
 
 export const NoMap: Story = () => (
   <>
     <MapPattern />
-    <Perimetre
-      titreTypeId="axm"
-      geojsonMultiPolygon={geojsonMultiPolygon}
-      titreId="id"
-      tabUpdate={tabUpdate}
-    />
+    <Perimetre titreTypeId="axm" geojsonMultiPolygon={geojsonMultiPolygon} titreId="id" tabUpdate={tabUpdate} />
   </>
 )
diff --git a/packages/ui/src/components/_common/perimetre.tsx b/packages/ui/src/components/_common/perimetre.tsx
index b798708ee..3e61dc84e 100644
--- a/packages/ui/src/components/_common/perimetre.tsx
+++ b/packages/ui/src/components/_common/perimetre.tsx
@@ -19,7 +19,7 @@ export interface Props {
 
 const tabs: { id: TabId; nom: Capitalize<TabId>; icon: IconSprite }[] = [
   { id: 'carte', nom: 'Carte', icon: 'globe' },
-  { id: 'points', nom: 'Points', icon: 'list' }
+  { id: 'points', nom: 'Points', icon: 'list' },
 ]
 export const Perimetre: FunctionalComponent<Props> = (props: Props) => {
   const isMain = props.isMain ?? false
@@ -30,13 +30,7 @@ export const Perimetre: FunctionalComponent<Props> = (props: Props) => {
       <div class="tablet-blobs tablet-flex-direction-reverse">
         <div class="tablet-blob-1-2 flex">
           {props.points?.length && titreId ? (
-            <Download
-              section={`titres/${titreId}`}
-              format="geojson"
-              class="btn-border small pill pl pr-m py-s flex-right"
-              onClicked={() => {}}
-              query={{}}
-            >
+            <Download section={`titres/${titreId}`} format="geojson" class="btn-border small pill pl pr-m py-s flex-right" onClicked={() => {}} query={{}}>
               geojson
             </Download>
           ) : null}
@@ -45,15 +39,9 @@ export const Perimetre: FunctionalComponent<Props> = (props: Props) => {
         <div class="tablet-blob-1-2 flex">
           {tabs.map(tab => {
             return (
-              <div
-                key={tab.id}
-                class={`${tabId === tab.id ? 'active' : ''} mr-xs`}
-              >
+              <div key={tab.id} class={`${tabId === tab.id ? 'active' : ''} mr-xs`}>
                 {tabId !== tab.id ? (
-                  <button
-                    class="p-m btn-tab rnd-t-s"
-                    onClick={() => props.tabUpdate(tab.id)}
-                  >
+                  <button class="p-m btn-tab rnd-t-s" onClick={() => props.tabUpdate(tab.id)}>
                     <Icon name={tab.icon} size="M" />
                   </button>
                 ) : (
@@ -70,13 +58,7 @@ export const Perimetre: FunctionalComponent<Props> = (props: Props) => {
       <div class={`${isMain ? 'width-full' : ''} line-neutral`} />
 
       {props.points && props.geojsonMultiPolygon && tabId === 'carte' ? (
-        <CamionCommonMap
-          class={`${isMain ? 'width-full' : ''}`}
-          geojson={props.geojsonMultiPolygon}
-          points={props.points}
-          titreTypeId={props.titreTypeId}
-          isMain={props.isMain}
-        />
+        <CamionCommonMap class={`${isMain ? 'width-full' : ''}`} geojson={props.geojsonMultiPolygon} points={props.points} titreTypeId={props.titreTypeId} isMain={props.isMain} />
       ) : null}
 
       {props.points && tabId === 'points' ? (
diff --git a/packages/ui/src/components/_common/pills.vue b/packages/ui/src/components/_common/pills.vue
index 8eb17d22b..f4ea3a82f 100644
--- a/packages/ui/src/components/_common/pills.vue
+++ b/packages/ui/src/components/_common/pills.vue
@@ -16,7 +16,7 @@ export default {
   components: { Statut },
   props: {
     activitesAbsentes: { type: Number, default: 0 },
-    activitesEnConstruction: { type: Number, default: 0 }
-  }
+    activitesEnConstruction: { type: Number, default: 0 },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_common/point-reference.vue b/packages/ui/src/components/_common/point-reference.vue
index 5dc62122d..61bbbc8b6 100644
--- a/packages/ui/src/components/_common/point-reference.vue
+++ b/packages/ui/src/components/_common/point-reference.vue
@@ -17,26 +17,23 @@
 import numberFormat from '../../utils/number-format'
 export default {
   props: {
-    references: { type: Object, required: true }
+    references: { type: Object, required: true },
   },
 
   computed: {
     pointReference() {
       if (this.references && this.references.x && this.references.y) {
-        return [
-          numberFormat(this.round(this.references.x)),
-          numberFormat(this.round(this.references.y))
-        ]
+        return [numberFormat(this.round(this.references.x)), numberFormat(this.round(this.references.y))]
       }
 
       return ['–', '–']
-    }
+    },
   },
 
   methods: {
     round(v) {
       return Math.round(Number.parseFloat(v) * 1000000) / 1000000
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_common/points.vue b/packages/ui/src/components/_common/points.vue
index 60f7b87f4..571fd11e6 100644
--- a/packages/ui/src/components/_common/points.vue
+++ b/packages/ui/src/components/_common/points.vue
@@ -3,23 +3,13 @@
     <div class="px">
       <div class="tablet-blobs flex-align-items-stretch">
         <div class="tablet-blob-1-2">
-          <select
-            v-if="geoSystemes.length > 1"
-            v-model="geoSystemeId"
-            class="p-s mr-s mb-s"
-          >
-            <option
-              v-for="systeme in geoSystemes"
-              :key="systeme.id"
-              :value="systeme.id"
-            >
+          <select v-if="geoSystemes.length > 1" v-model="geoSystemeId" class="p-s mr-s mb-s">
+            <option v-for="systeme in geoSystemes" :key="systeme.id" :value="systeme.id">
               {{ systeme.nom }} - {{ systeme.id }}
               {{ systeme.id === geoSystemeOpposableId ? '(opposable)' : '' }}
             </option>
           </select>
-          <div v-else class="full-x p-s bg-alt mb-s">
-            {{ geoSysteme.nom }} ({{ geoSysteme.id }})
-          </div>
+          <div v-else class="full-x p-s bg-alt mb-s">{{ geoSysteme.nom }} ({{ geoSysteme.id }})</div>
         </div>
         <div class="tablet-blob-1-2 flex flex-align-items-stretch">
           <div class="blobs-packed flex-grow flex-align-items-stretch mb-s">
@@ -43,19 +33,9 @@
         </div>
       </div>
     </div>
-    <div
-      v-for="(groupeContours, groupeIndex) in groupes"
-      :key="groupeIndex + 1"
-      class="geo-groupe mb"
-    >
-      <h4 v-if="groupes.length > 1" class="color-bg pt-s pl-m mb-s">
-        Groupe {{ groupeIndex + 1 }}
-      </h4>
-      <div
-        v-for="(contourPoints, contourIndex) in groupeContours"
-        :key="contourIndex + 1"
-        class="geo-contour"
-      >
+    <div v-for="(groupeContours, groupeIndex) in groupes" :key="groupeIndex + 1" class="geo-groupe mb">
+      <h4 v-if="groupes.length > 1" class="color-bg pt-s pl-m mb-s">Groupe {{ groupeIndex + 1 }}</h4>
+      <div v-for="(contourPoints, contourIndex) in groupeContours" :key="contourIndex + 1" class="geo-contour">
         <h4 v-if="groupeContours.length > 1" class="pt-xs pl-s mb-s">
           {{ contourIndex === 0 ? 'Contour' : `Lacune ${contourIndex}` }}
         </h4>
@@ -65,22 +45,9 @@
               <h4 v-if="point.nom" class="mb-s flex-self-start mr-xs">
                 {{ point.nom }}
               </h4>
-              <p
-                v-if="point.description || point.subsidiaire"
-                class="mb-s h6 flex-grow pt-xxs"
-              >
-                <Tag
-                  v-if="point.subsidiaire && !point.lot"
-                  :mini="true"
-                  text="Subsidiaire"
-                  color="bg-info"
-                />
-                <Tag
-                  v-if="point.lot"
-                  :mini="true"
-                  color="bg-info"
-                  text=" Lot "
-                />
+              <p v-if="point.description || point.subsidiaire" class="mb-s h6 flex-grow pt-xxs">
+                <Tag v-if="point.subsidiaire && !point.lot" :mini="true" text="Subsidiaire" color="bg-info" />
+                <Tag v-if="point.lot" :mini="true" color="bg-info" text=" Lot " />
                 {{ point.description }}
               </p>
             </div>
@@ -109,7 +76,7 @@ export default {
   components: { Tag, pointReference },
 
   props: {
-    points: { type: Array, required: true }
+    points: { type: Array, required: true },
   },
 
   data() {
@@ -134,10 +101,7 @@ export default {
     },
 
     geoSysteme() {
-      return (
-        this.geoSystemeId &&
-        this.geoSystemes.find(({ id }) => id === this.geoSystemeId)
-      )
+      return this.geoSystemeId && this.geoSystemes.find(({ id }) => id === this.geoSystemeId)
     },
 
     geoSystemeUniteNom() {
@@ -145,16 +109,12 @@ export default {
     },
 
     labels() {
-      return this.geoSysteme.uniteId === UNITE_IDS.mètre
-        ? ['X', 'Y']
-        : ['Longitude', 'Latitude']
-    }
+      return this.geoSysteme.uniteId === UNITE_IDS.mètre ? ['X', 'Y'] : ['Longitude', 'Latitude']
+    },
   },
 
   created() {
-    this.geoSystemeId =
-      this.geoSystemeOpposableId ||
-      (this.geoSystemes[0] && this.geoSystemes[0].id)
-  }
+    this.geoSystemeId = this.geoSystemeOpposableId || (this.geoSystemes[0] && this.geoSystemes[0].id)
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_common/pure-downloads.stories.tsx b/packages/ui/src/components/_common/pure-downloads.stories.tsx
index 5090aa077..cdcae02da 100644
--- a/packages/ui/src/components/_common/pure-downloads.stories.tsx
+++ b/packages/ui/src/components/_common/pure-downloads.stories.tsx
@@ -6,15 +6,9 @@ import { PureDownloads, Props } from './pure-downloads'
 
 const meta: Meta = {
   title: 'Components/common/Downloads',
-  component: PureDownloads
+  component: PureDownloads,
 }
 export default meta
 
 const dispatch = action('dispatch')
-export const Default: Story = () => (
-  <PureDownloads
-    formats={['geojson', 'xlsx']}
-    section=""
-    route={{ query: {} } as RouteLocationNormalized}
-  />
-)
+export const Default: Story = () => <PureDownloads formats={['geojson', 'xlsx']} section="" route={{ query: {} } as RouteLocationNormalized} />
diff --git a/packages/ui/src/components/_common/pure-downloads.tsx b/packages/ui/src/components/_common/pure-downloads.tsx
index baa65371b..f5fa37ed9 100644
--- a/packages/ui/src/components/_common/pure-downloads.tsx
+++ b/packages/ui/src/components/_common/pure-downloads.tsx
@@ -44,5 +44,5 @@ export const PureDownloads = defineComponent<Props>({
         }}
       />
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/_common/section-element-edit.vue b/packages/ui/src/components/_common/section-element-edit.vue
index 82792feae..38e6a4b8e 100644
--- a/packages/ui/src/components/_common/section-element-edit.vue
+++ b/packages/ui/src/components/_common/section-element-edit.vue
@@ -6,33 +6,19 @@
           <span class="cap-first">{{ element.nom }}</span>
         </h5>
         <p v-if="element.optionnel" class="h6 italic mb-0">Optionnel</p>
-        <Tag
-          v-else-if="!complete"
-          color="bg-warning"
-          :mini="true"
-          text="Incomplet"
-        />
+        <Tag v-else-if="!complete" color="bg-warning" :mini="true" text="Incomplet" />
       </div>
 
       <div
         :class="{
           'tablet-blob-2-3': element.nom,
-          'tablet-blob-1': !element.nom
+          'tablet-blob-1': !element.nom,
         }"
       >
-        <SectionElementEdit
-          :contenu="contenu"
-          class="mb-s"
-          :element="element"
-          @update:contenu="newValue => $emit('update:contenu', newValue)"
-        />
+        <SectionElementEdit :contenu="contenu" class="mb-s" :element="element" @update:contenu="newValue => $emit('update:contenu', newValue)" />
 
         <!-- eslint-disable vue/no-v-html -->
-        <p
-          v-if="element.description || hasValeur"
-          class="h6"
-          v-html="element.description"
-        />
+        <p v-if="element.description || hasValeur" class="h6" v-html="element.description" />
       </div>
     </div>
 
@@ -41,11 +27,7 @@
 </template>
 
 <script>
-import {
-  valeurFind,
-  hasValeurCheck,
-  elementsCompleteCheck
-} from '../../utils/contenu'
+import { valeurFind, hasValeurCheck, elementsCompleteCheck } from '../../utils/contenu'
 import SectionElementEdit from './section-element-input-edit.vue'
 import { Tag } from '../_ui/tag'
 
@@ -54,7 +36,7 @@ export default {
 
   props: {
     contenu: { type: Object, required: true },
-    element: { type: Object, required: true }
+    element: { type: Object, required: true },
   },
   emits: ['update:contenu'],
 
@@ -69,7 +51,7 @@ export default {
 
     complete() {
       return elementsCompleteCheck([this.element], this.contenu, true)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_common/section-element-file-edit.vue b/packages/ui/src/components/_common/section-element-file-edit.vue
index d7c7a6f26..1c404fe6b 100644
--- a/packages/ui/src/components/_common/section-element-file-edit.vue
+++ b/packages/ui/src/components/_common/section-element-file-edit.vue
@@ -1,27 +1,16 @@
 <template>
   <div v-if="contenuElement" class="flex">
     <p class="mb-0 h6 bold">
-      {{
-        contenuElement && contenuElement.name
-          ? contenuElement.name
-          : contenuElement.slice(5)
-      }}
+      {{ contenuElement && contenuElement.name ? contenuElement.name : contenuElement.slice(5) }}
     </p>
     <div class="flex-right mt--xs">
-      <button
-        class="btn-border py-s px-m my--xs rnd-xs flex-right"
-        @click="fileRemove"
-      >
+      <button class="btn-border py-s px-m my--xs rnd-xs flex-right" @click="fileRemove">
         <Icon size="M" name="delete" />
       </button>
     </div>
   </div>
   <div v-else>
-    <InputFile
-      class="btn-border small p-s full-x rnd-xs mb-s"
-      accept="application/pdf"
-      @change="fileChange"
-    />
+    <InputFile class="btn-border small p-s full-x rnd-xs mb-s" accept="application/pdf" @change="fileChange" />
     <p class="h5 italic">30 Mo max.</p>
   </div>
 </template>
@@ -35,21 +24,21 @@ export default {
 
   props: {
     contenu: { type: [Object], required: true },
-    elementId: { type: String, required: true }
+    elementId: { type: String, required: true },
   },
 
   computed: {
     contenuElement() {
       return this.contenu[this.elementId]
-    }
+    },
   },
 
   methods: {
     fileChange({
       target: {
         validity,
-        files: [file]
-      }
+        files: [file],
+      },
     }) {
       if (file && validity.valid) {
         this.contenu[this.elementId] = file
@@ -57,7 +46,7 @@ export default {
     },
     fileRemove() {
       this.contenu[this.elementId] = null
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_common/section-element-input-edit.vue b/packages/ui/src/components/_common/section-element-input-edit.vue
index f7598bdd8..c80bb9601 100644
--- a/packages/ui/src/components/_common/section-element-input-edit.vue
+++ b/packages/ui/src/components/_common/section-element-input-edit.vue
@@ -1,97 +1,42 @@
 <template>
   <div class="flex flex-direction-column">
-    <inputNumber
-      v-if="element.type === 'number'"
-      v-model="contenu[element.id]"
-      class="p-s"
-      placeholder="…"
-    />
-
-    <inputNumber
-      v-if="element.type === 'integer'"
-      v-model="contenu[element.id]"
-      :integer="true"
-      class="p-s"
-      placeholder="…"
-    />
-
-    <div
-      v-if="element.id === 'volumeGranulatsExtrait' && contenu[element.id]"
-      class="flex-self-end pt-xxs"
-    >
-      Soit l’équivalent de {{ masseGranulatsExtraitValeur }} tonnes
-    </div>
+    <inputNumber v-if="element.type === 'number'" v-model="contenu[element.id]" class="p-s" placeholder="…" />
+
+    <inputNumber v-if="element.type === 'integer'" v-model="contenu[element.id]" :integer="true" class="p-s" placeholder="…" />
+
+    <div v-if="element.id === 'volumeGranulatsExtrait' && contenu[element.id]" class="flex-self-end pt-xxs">Soit l’équivalent de {{ masseGranulatsExtraitValeur }} tonnes</div>
+
+    <InputDate v-else-if="element.type === 'date'" :inputValue="contenu[element.id]" :dateChanged="dateChanged" />
+
+    <textarea v-else-if="element.type === 'textarea'" v-model="contenu[element.id]" class="p-s" />
 
-    <InputDate
-      v-else-if="element.type === 'date'"
-      :inputValue="contenu[element.id]"
-      :dateChanged="dateChanged"
-    />
-
-    <textarea
-      v-else-if="element.type === 'textarea'"
-      v-model="contenu[element.id]"
-      class="p-s"
-    />
-
-    <input
-      v-else-if="element.type === 'text'"
-      v-model="contenu[element.id]"
-      type="text"
-      class="p-s"
-    />
+    <input v-else-if="element.type === 'text'" v-model="contenu[element.id]" type="text" class="p-s" />
 
     <div v-else-if="element.type === 'radio'">
       <label class="mr">
-        <input
-          v-model="contenu[element.id]"
-          :name="element.id"
-          :value="true"
-          type="radio"
-          class="p-s mt-s mb-s"
-        />
+        <input v-model="contenu[element.id]" :name="element.id" :value="true" type="radio" class="p-s mt-s mb-s" />
         Oui
       </label>
 
       <label>
-        <input
-          v-model="contenu[element.id]"
-          :name="element.id"
-          :value="false"
-          type="radio"
-          class="p-s mt-s mb-s"
-        />
+        <input v-model="contenu[element.id]" :name="element.id" :value="false" type="radio" class="p-s mt-s mb-s" />
         Non
       </label>
     </div>
 
-    <input
-      v-else-if="element.type === 'checkbox'"
-      v-model="contenu[element.id]"
-      type="checkbox"
-      class="p-s mt-s mb-s"
-    />
+    <input v-else-if="element.type === 'checkbox'" v-model="contenu[element.id]" type="checkbox" class="p-s mt-s mb-s" />
 
     <div v-else-if="element.type === 'checkboxes'">
       <div v-for="value in valeurs" :key="value.id">
         <label>
-          <input
-            v-model="contenu[element.id]"
-            type="checkbox"
-            :value="value.id"
-            class="mr-s"
-          />
+          <input v-model="contenu[element.id]" type="checkbox" :value="value.id" class="mr-s" />
           <span class="cap-first">{{ value.nom }}</span>
         </label>
       </div>
     </div>
 
     <div v-else-if="element.type === 'select'">
-      <select
-        v-if="valeurs && valeurs.length"
-        v-model="contenu[element.id]"
-        class="p-s mr-s"
-      >
+      <select v-if="valeurs && valeurs.length" v-model="contenu[element.id]" class="p-s mr-s">
         <option v-for="value in valeurs" :key="value.id" :value="value.id">
           {{ value.nom }}
         </option>
@@ -99,11 +44,7 @@
     </div>
 
     <div v-else-if="element.type === 'file'">
-      <SectionElementFileEdit
-        :contenu="contenu"
-        :elementId="element.id"
-        @update:contenu="newValue => emits('update:contenu', newValue)"
-      />
+      <SectionElementFileEdit :contenu="contenu" :elementId="element.id" @update:contenu="newValue => emits('update:contenu', newValue)" />
     </div>
   </div>
 </template>
@@ -118,12 +59,12 @@ export default {
   components: {
     InputDate,
     InputNumber,
-    SectionElementFileEdit
+    SectionElementFileEdit,
   },
 
   props: {
     contenu: { type: Object, required: true },
-    element: { type: Object, required: true }
+    element: { type: Object, required: true },
   },
 
   emits: ['update:contenu'],
@@ -135,7 +76,7 @@ export default {
 
     masseGranulatsExtraitValeur() {
       return numberFormat(this.contenu[this.element.id] * 1.5)
-    }
+    },
   },
 
   created() {
@@ -155,7 +96,7 @@ export default {
   methods: {
     dateChanged(date) {
       this.contenu[this.element.id] = date
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_common/section-element.stories.ts b/packages/ui/src/components/_common/section-element.stories.ts
index 5ebe0de92..8710fd94c 100644
--- a/packages/ui/src/components/_common/section-element.stories.ts
+++ b/packages/ui/src/components/_common/section-element.stories.ts
@@ -4,7 +4,7 @@ import { Meta, Story } from '@storybook/vue3'
 const meta: Meta = {
   title: 'Components/common/OldSectionElement',
   component: SectionElement,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -23,7 +23,7 @@ const Template: Story<Props> = (args: Props) => ({
   setup() {
     return { args }
   },
-  template: '<SectionElement v-bind="args" />'
+  template: '<SectionElement v-bind="args" />',
 })
 
 export const Default = Template.bind({})
@@ -32,9 +32,9 @@ Default.args = {
     id: 'id',
     type: 'type',
     nom: "nom de l'élément",
-    description: 'description'
+    description: 'description',
   },
-  contenu: {}
+  contenu: {},
 }
 
 export const AucunFichier = Template.bind({})
@@ -43,9 +43,9 @@ AucunFichier.args = {
     id: 'id',
     type: 'file',
     nom: "nom de l'élément",
-    description: 'description'
+    description: 'description',
   },
-  contenu: {}
+  contenu: {},
 }
 
 export const UnFichier = Template.bind({})
@@ -54,7 +54,7 @@ UnFichier.args = {
     id: 'id',
     type: 'file',
     nom: "nom de l'élément",
-    description: 'description'
+    description: 'description',
   },
-  contenu: { id: '     nom du fichier' }
+  contenu: { id: '     nom du fichier' },
 }
diff --git a/packages/ui/src/components/_common/section-element.vue b/packages/ui/src/components/_common/section-element.vue
index 801f5377d..b03b7e618 100644
--- a/packages/ui/src/components/_common/section-element.vue
+++ b/packages/ui/src/components/_common/section-element.vue
@@ -4,33 +4,21 @@
       <h5>{{ element.nom }}</h5>
     </div>
 
-    <div
-      :class="{ 'tablet-blob-3-4': element.nom, 'tablet-blob-1': !element.nom }"
-    >
+    <div :class="{ 'tablet-blob-3-4': element.nom, 'tablet-blob-1': !element.nom }">
       <div v-if="element.type === 'file'" class="flex h6 pb-xs">
         <span class="mt-xs flex bold">
           <Icon size="S" name="file" class="mr-xs" />
-          {{
-            contenu[element.id] ? contenu[element.id].slice(5) : 'Aucun fichier'
-          }}
+          {{ contenu[element.id] ? contenu[element.id].slice(5) : 'Aucun fichier' }}
         </span>
 
-        <button
-          v-if="contenu[element.id]"
-          class="btn-border py-xs px-s rnd-xs flex-right mt--xs"
-          @click="fileDownload(contenu[element.id])"
-        >
+        <button v-if="contenu[element.id]" class="btn-border py-xs px-s rnd-xs flex-right mt--xs" @click="fileDownload(contenu[element.id])">
           <Icon size="M" name="download" />
         </button>
       </div>
 
       <p v-else class="cap-first" :class="{ 'mb-s': element.description }">
         {{ valeur }}
-        <span
-          v-if="element.id === 'volumeGranulatsExtrait' && contenu[element.id]"
-        >
-          m3. Soit l’équivalent de {{ masseGranulatsExtraitValeur }} tonnes.
-        </span>
+        <span v-if="element.id === 'volumeGranulatsExtrait' && contenu[element.id]"> m3. Soit l’équivalent de {{ masseGranulatsExtraitValeur }} tonnes. </span>
       </p>
       <!-- eslint-disable vue/no-v-html -->
       <p v-if="element.description" class="h6">
@@ -50,7 +38,7 @@ export default {
   components: { Icon },
   props: {
     element: { type: Object, required: true },
-    contenu: { type: Object, required: true }
+    contenu: { type: Object, required: true },
   },
   emits: ['file-download'],
 
@@ -61,13 +49,13 @@ export default {
 
     masseGranulatsExtraitValeur() {
       return numberFormat(this.contenu[this.element.id] * 1.5)
-    }
+    },
   },
 
   methods: {
     fileDownload(fichier) {
       this.$emit('file-download', fichier)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_common/section.vue b/packages/ui/src/components/_common/section.vue
index c1f955783..4c22e93b2 100644
--- a/packages/ui/src/components/_common/section.vue
+++ b/packages/ui/src/components/_common/section.vue
@@ -4,13 +4,7 @@
       {{ section.nom }}
     </h4>
 
-    <SectionElement
-      v-for="e in elements"
-      :key="e.id"
-      :element="e"
-      :contenu="contenu"
-      @file-download="fileDownload"
-    />
+    <SectionElement v-for="e in elements" :key="e.id" :element="e" :contenu="contenu" @file-download="fileDownload" />
   </div>
 </template>
 
@@ -19,14 +13,14 @@ import SectionElement from './section-element.vue'
 
 export default {
   components: {
-    SectionElement
+    SectionElement,
   },
 
   props: {
     entete: { type: Boolean, default: true },
     section: { type: Object, required: true },
     contenu: { type: Object, default: () => ({}) },
-    date: { type: String, default: '' }
+    date: { type: String, default: '' },
   },
 
   emits: ['file-download'],
@@ -37,16 +31,15 @@ export default {
         e =>
           !this.date ||
           // si la date existe, vérifie qu'elle est dans les bornes de l'élément
-          ((!e.dateDebut || e.dateDebut < this.date) &&
-            (!e.dateFin || e.dateFin >= this.date))
+          ((!e.dateDebut || e.dateDebut < this.date) && (!e.dateFin || e.dateFin >= this.date))
       )
-    }
+    },
   },
 
   methods: {
     fileDownload(fichier) {
       this.$emit('file-download', fichier)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_common/sections-edit.vue b/packages/ui/src/components/_common/sections-edit.vue
index 7639eb351..0ccc92483 100644
--- a/packages/ui/src/components/_common/sections-edit.vue
+++ b/packages/ui/src/components/_common/sections-edit.vue
@@ -3,22 +3,13 @@
     <div v-for="s in sections" :key="s.id">
       <h3 v-if="s.nom" class="cap-first">{{ s.nom }}</h3>
 
-      <SectionElementEdit
-        v-for="e in s.elements"
-        :key="e.id"
-        v-model:contenu="content[s.id]"
-        :element="e"
-      />
+      <SectionElementEdit v-for="e in s.elements" :key="e.id" v-model:contenu="content[s.id]" :element="e" />
     </div>
   </div>
 </template>
 
 <script>
-import {
-  elementContenuBuild,
-  contenuBuild,
-  contenuCompleteCheck
-} from '../../utils/contenu'
+import { elementContenuBuild, contenuBuild, contenuCompleteCheck } from '../../utils/contenu'
 
 import SectionElementEdit from './section-element-edit.vue'
 
@@ -27,42 +18,39 @@ export default {
 
   props: {
     sections: { type: Array, required: true },
-    contenu: { type: [Object, null], required: true }
+    contenu: { type: [Object, null], required: true },
   },
 
   emits: ['complete-update', 'contenu-update'],
 
   data() {
     return {
-      content: {}
+      content: {},
     }
   },
 
   computed: {
     complete() {
       return contenuCompleteCheck(this.sections, this.content)
-    }
+    },
   },
 
   watch: {
     content: {
       handler: function (content) {
-        this.$emit(
-          'contenu-update',
-          elementContenuBuild(this.sections, content)
-        )
+        this.$emit('contenu-update', elementContenuBuild(this.sections, content))
       },
-      deep: true
+      deep: true,
     },
 
     complete: function (complete) {
       this.$emit('complete-update', complete)
-    }
+    },
   },
 
   created() {
     this.content = contenuBuild(this.sections, this.contenu)
     this.$emit('complete-update', this.complete)
-  }
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_common/statut.stories.ts b/packages/ui/src/components/_common/statut.stories.ts
index cef128391..9fa26a1f6 100644
--- a/packages/ui/src/components/_common/statut.stories.ts
+++ b/packages/ui/src/components/_common/statut.stories.ts
@@ -5,7 +5,7 @@ import { action } from '@storybook/addon-actions'
 const meta: Meta = {
   title: 'Components/common/Statut',
   component: Statut,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -16,8 +16,8 @@ const Template: Story<Props> = (args: Props) => ({
   },
   template: `<Statut v-bind="args" @onDelete='onDelete' />`,
   methods: {
-    onDelete: action('onDelete')
-  }
+    onDelete: action('onDelete'),
+  },
 })
 
 export const Default = Template.bind({}, {})
@@ -25,6 +25,6 @@ export const WithColor = Template.bind(
   {},
   {
     nom: 'Mon statut',
-    color: 'success'
+    color: 'success',
   }
 )
diff --git a/packages/ui/src/components/_common/statut.tsx b/packages/ui/src/components/_common/statut.tsx
index b4332f544..32ad7dc36 100644
--- a/packages/ui/src/components/_common/statut.tsx
+++ b/packages/ui/src/components/_common/statut.tsx
@@ -9,9 +9,5 @@ export type Props = {
 } & HTMLAttributes
 
 export function Statut(props: Props) {
-  return (
-    <Pill color={`bg-${props.color ?? 'neutral'}`}>
-      {props.nom ?? 'indéfini'}
-    </Pill>
-  )
+  return <Pill color={`bg-${props.color ?? 'neutral'}`}>{props.nom ?? 'indéfini'}</Pill>
 }
diff --git a/packages/ui/src/components/_common/titre-nom.vue b/packages/ui/src/components/_common/titre-nom.vue
index 39fffb9f8..684995c59 100644
--- a/packages/ui/src/components/_common/titre-nom.vue
+++ b/packages/ui/src/components/_common/titre-nom.vue
@@ -5,7 +5,7 @@
 <script>
 export default {
   props: {
-    nom: { type: String, default: '' }
-  }
+    nom: { type: String, default: '' },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_common/titre-type-select.stories.ts b/packages/ui/src/components/_common/titre-type-select.stories.ts
index 341cfffd3..ac946082e 100644
--- a/packages/ui/src/components/_common/titre-type-select.stories.ts
+++ b/packages/ui/src/components/_common/titre-type-select.stories.ts
@@ -5,7 +5,7 @@ import { testBlankUser } from 'camino-common/src/tests-utils'
 const meta: Meta = {
   title: 'Components/common/TitreTypeSelect',
   component: TitreTypeSelect,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -14,21 +14,21 @@ const Template: Story<Props> = (args: Props) => ({
   data: () => ({
     element: {
       domaineId: undefined,
-      titreTypeId: undefined
-    }
+      titreTypeId: undefined,
+    },
   }),
   setup() {
     return { args }
   },
-  template: '<TitreTypeSelect  v-bind="args" :element="element" />'
+  template: '<TitreTypeSelect  v-bind="args" :element="element" />',
 })
 
 export const Default = Template.bind({})
 Default.args = {
-  user: { role: 'super', ...testBlankUser }
+  user: { role: 'super', ...testBlankUser },
 }
 
 export const Entreprise = Template.bind({})
 Entreprise.args = {
-  user: { role: 'entreprise', entreprises: [], ...testBlankUser }
+  user: { role: 'entreprise', entreprises: [], ...testBlankUser },
 }
diff --git a/packages/ui/src/components/_common/titre-type-select.tsx b/packages/ui/src/components/_common/titre-type-select.tsx
index 1148cb711..468d8e714 100644
--- a/packages/ui/src/components/_common/titre-type-select.tsx
+++ b/packages/ui/src/components/_common/titre-type-select.tsx
@@ -1,20 +1,8 @@
 import { canCreateTitre } from 'camino-common/src/permissions/titres'
 import { User } from 'camino-common/src/roles'
-import {
-  DomaineId,
-  isDomaineId,
-  sortedDomaines
-} from 'camino-common/src/static/domaines'
-import {
-  getDomaineId,
-  getTitreTypeTypeByDomaineId,
-  TitreTypeId,
-  toTitreTypeId
-} from 'camino-common/src/static/titresTypes'
-import {
-  TitresTypesTypes,
-  TitreTypeType
-} from 'camino-common/src/static/titresTypesTypes'
+import { DomaineId, isDomaineId, sortedDomaines } from 'camino-common/src/static/domaines'
+import { getDomaineId, getTitreTypeTypeByDomaineId, TitreTypeId, toTitreTypeId } from 'camino-common/src/static/titresTypes'
+import { TitresTypesTypes, TitreTypeType } from 'camino-common/src/static/titresTypesTypes'
 import { defineComponent, computed, onMounted, ref } from 'vue'
 import { isEventWithTarget } from '@/utils/vue-tsx-utils'
 
@@ -31,26 +19,17 @@ type Domaine = {
   nom: string
 }
 
-const titresTypeTypes = (
-  user: Props['user'],
-  domaineId: DomaineId | undefined
-): undefined | TitreTypeType[] => {
+const titresTypeTypes = (user: Props['user'], domaineId: DomaineId | undefined): undefined | TitreTypeType[] => {
   if (domaineId) {
     return getTitreTypeTypeByDomaineId(domaineId)
-      .filter(titreTypeTypeId =>
-        canCreateTitre(user, toTitreTypeId(titreTypeTypeId, domaineId))
-      )
+      .filter(titreTypeTypeId => canCreateTitre(user, toTitreTypeId(titreTypeTypeId, domaineId)))
       .map(titreTypeTypeId => TitresTypesTypes[titreTypeTypeId])
   }
 
   return undefined
 }
 
-const TypeSelect = ({
-  user,
-  element,
-  domaineId
-}: Props): JSX.Element | null => {
+const TypeSelect = ({ user, element, domaineId }: Props): JSX.Element | null => {
   if (isDomaineId(domaineId)) {
     return (
       <>
@@ -59,17 +38,10 @@ const TypeSelect = ({
             <h5>Type</h5>
           </div>
           <div class="mb tablet-blob-2-3">
-            <select
-              v-model={element.typeId}
-              class="p-s mr"
-              disabled={!titresTypeTypes}
-            >
+            <select v-model={element.typeId} class="p-s mr" disabled={!titresTypeTypes}>
               {titresTypeTypes(user, domaineId)?.map(titreTypeType => {
                 return (
-                  <option
-                    key={titreTypeType.id}
-                    value={toTitreTypeId(titreTypeType.id, domaineId)}
-                  >
+                  <option key={titreTypeType.id} value={toTitreTypeId(titreTypeType.id, domaineId)}>
                     {titreTypeType.nom}
                   </option>
                 )
@@ -86,18 +58,10 @@ const TypeSelect = ({
 
 export const TitreTypeSelect = defineComponent<Props>({
   setup(props) {
-    const domaineRef = ref<Props['domaineId']>(
-      props.element.typeId
-        ? getDomaineId(props.element.typeId)
-        : props.domaineId
-    )
+    const domaineRef = ref<Props['domaineId']>(props.element.typeId ? getDomaineId(props.element.typeId) : props.domaineId)
 
     const domainesFiltered = computed<Domaine[]>(() =>
-      sortedDomaines.filter(d =>
-        getTitreTypeTypeByDomaineId(d.id).some(titreTypeTypeId =>
-          canCreateTitre(props.user, toTitreTypeId(titreTypeTypeId, d.id))
-        )
-      )
+      sortedDomaines.filter(d => getTitreTypeTypeByDomaineId(d.id).some(titreTypeTypeId => canCreateTitre(props.user, toTitreTypeId(titreTypeTypeId, d.id))))
     )
 
     const domaineUpdate = (domaineId: DomaineId | undefined) => {
@@ -130,17 +94,7 @@ export const TitreTypeSelect = defineComponent<Props>({
           </div>
 
           <div class="mb tablet-blob-2-3">
-            <select
-              value={domaineRef.value}
-              class="p-s mr"
-              onChange={event =>
-                domaineUpdate(
-                  isEventWithTarget(event) && isDomaineId(event.target.value)
-                    ? event.target.value
-                    : undefined
-                )
-              }
-            >
+            <select value={domaineRef.value} class="p-s mr" onChange={event => domaineUpdate(isEventWithTarget(event) && isDomaineId(event.target.value) ? event.target.value : undefined)}>
               {domainesFiltered.value.map(domaine => {
                 return (
                   <option key={domaine.id} value={domaine.id}>
@@ -152,14 +106,10 @@ export const TitreTypeSelect = defineComponent<Props>({
           </div>
         </div>
         <hr />
-        <TypeSelect
-          element={props.element}
-          user={props.user}
-          domaineId={domaineRef.value}
-        ></TypeSelect>
+        <TypeSelect element={props.element} user={props.user} domaineId={domaineRef.value}></TypeSelect>
       </div>
     )
-  }
+  },
 })
 
 TitreTypeSelect.props = ['user', 'element', 'domaineId']
diff --git a/packages/ui/src/components/_common/titre-type-type-nom.vue b/packages/ui/src/components/_common/titre-type-type-nom.vue
index e51f030c4..61e83aba6 100644
--- a/packages/ui/src/components/_common/titre-type-type-nom.vue
+++ b/packages/ui/src/components/_common/titre-type-type-nom.vue
@@ -4,7 +4,7 @@
 <script>
 export default {
   props: {
-    nom: { type: String, default: '' }
-  }
+    nom: { type: String, default: '' },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_map/index.tsx b/packages/ui/src/components/_map/index.tsx
index 72849386e..2c3852f39 100644
--- a/packages/ui/src/components/_map/index.tsx
+++ b/packages/ui/src/components/_map/index.tsx
@@ -1,11 +1,4 @@
-import type {
-  LatLngBoundsExpression,
-  LatLngExpression,
-  Map,
-  Layer,
-  LayersControlEvent,
-  LeafletEvent
-} from 'leaflet'
+import type { LatLngBoundsExpression, LatLngExpression, Map, Layer, LayersControlEvent, LeafletEvent } from 'leaflet'
 
 import { ref, onMounted, markRaw, watch, defineComponent } from 'vue'
 import { FeatureGroup, layerGroup } from 'leaflet'
@@ -13,11 +6,7 @@ import { FeatureGroup, layerGroup } from 'leaflet'
 export interface Props {
   markerLayers: Layer[]
   geojsonLayers: Layer[]
-  mapUpdate?: (data: {
-    center?: number[]
-    zoom?: number
-    bbox?: number[]
-  }) => void
+  mapUpdate?: (data: { center?: number[]; zoom?: number; bbox?: number[] }) => void
 }
 
 export const CaminoMap = defineComponent<Props>({
@@ -56,12 +45,7 @@ export const CaminoMap = defineComponent<Props>({
       if (leafletComponent.value !== null) {
         const bounds = leafletComponent.value.getBounds()
 
-        return [
-          bounds.getSouthWest().lng,
-          bounds.getSouthWest().lat,
-          bounds.getNorthEast().lng,
-          bounds.getNorthEast().lat
-        ]
+        return [bounds.getSouthWest().lng, bounds.getSouthWest().lat, bounds.getNorthEast().lng, bounds.getNorthEast().lat]
       }
       return []
     }
@@ -70,10 +54,7 @@ export const CaminoMap = defineComponent<Props>({
       leafletComponent.value?.fitBounds(bounds)
     }
 
-    const positionSet = (position: {
-      zoom: number
-      center: LatLngExpression
-    }) => {
+    const positionSet = (position: { zoom: number; center: LatLngExpression }) => {
       updateBboxOnly.value = true
 
       zoom.value = position.zoom
@@ -91,50 +72,42 @@ export const CaminoMap = defineComponent<Props>({
       { icon: 'icon-map-legend-sdom-zone-0', label: 'Zone 0' },
       {
         icon: 'icon-map-legend-sdom-zone-0-potentielle',
-        label: 'Zone 0 potentielle'
+        label: 'Zone 0 potentielle',
       },
       { icon: 'icon-map-legend-sdom-zone-1', label: 'Zone 1' },
-      { icon: 'icon-map-legend-sdom-zone-2', label: 'Zone 2' }
+      { icon: 'icon-map-legend-sdom-zone-2', label: 'Zone 2' },
     ]
 
     onMounted(() => {
       const L = window.L
 
-      const osm = L.tileLayer(
-        'https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png',
-        {
-          maxZoom: 19,
-          attribution:
-            '&copy; Openstreetmap France | &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
-        }
-      )
-      const hot = L.tileLayer(
-        'https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png',
-        {
-          maxZoom: 19,
-          attribution:
-            '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>, Tiles courtesy of <a href="http://hot.openstreetmap.org/">Humanitarian OpenStreetMap Team</a>'
-        }
-      )
+      const osm = L.tileLayer('https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', {
+        maxZoom: 19,
+        attribution: '&copy; Openstreetmap France | &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
+      })
+      const hot = L.tileLayer('https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', {
+        maxZoom: 19,
+        attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>, Tiles courtesy of <a href="http://hot.openstreetmap.org/">Humanitarian OpenStreetMap Team</a>',
+      })
       const geoIGN = L.tileLayer(
         'https://wxs.ign.fr/essentiels/geoportail/wmts?layer=GEOGRAPHICALGRIDSYSTEMS.PLANIGNV2&style=normal&tilematrixset=PM&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image%2Fpng&TileMatrix={z}&TileCol={x}&TileRow={y}',
         {
           maxZoom: 19,
-          attribution: 'IGN-F/Geoportail'
+          attribution: 'IGN-F/Geoportail',
         }
       )
       const geoAer = L.tileLayer(
         'https://wxs.ign.fr/essentiels/geoportail/wmts?&REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE=normal&TILEMATRIXSET=PM&FORMAT=image/jpeg&LAYER=ORTHOIMAGERY.ORTHOPHOTOS&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
         {
           maxZoom: 19,
-          attribution: 'IGN-F/Geoportail'
+          attribution: 'IGN-F/Geoportail',
         }
       )
       const geoCadastre = L.tileLayer(
         'https://wxs.ign.fr/essentiels/geoportail/wmts?&REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE=normal&TILEMATRIXSET=PM&FORMAT=image/jpeg&LAYER=ORTHOIMAGERY.ORTHOPHOTOS&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}',
         {
           maxZoom: 19,
-          attribution: 'IGN-F/Geoportail'
+          attribution: 'IGN-F/Geoportail',
         }
       )
 
@@ -142,7 +115,7 @@ export const CaminoMap = defineComponent<Props>({
         layers: 'SCAN_H_GEOL50',
         format: 'image/png',
         attribution: 'BRGM',
-        version: '1.3.0'
+        version: '1.3.0',
       })
 
       const baseMaps = {
@@ -151,41 +124,33 @@ export const CaminoMap = defineComponent<Props>({
         'Géoportail / Plan IGN': geoIGN,
         'Géoportail / Photographies aériennes': geoAer,
         'Géoportail / Parcelles cadastrales': geoCadastre,
-        [brgmBaseLayerName]: BRGMGeo
+        [brgmBaseLayerName]: BRGMGeo,
       }
 
-      const SDOM = L.tileLayer.wms(
-        'https://datacarto.geoguyane.fr/wms/SDOM_GUYANE',
-        {
-          layers:
-            'ZONE2activiteminiereautoriseesouscontrainte,ZONE1activiteminiereinterditesaufexploitationsouterraineetrecherchesaeriennes,ZONE0activiteminiereinterdite,Zone0potentielle',
-          format: 'image/png',
-          attribution: 'GéoGuyane'
-        }
-      )
+      const SDOM = L.tileLayer.wms('https://datacarto.geoguyane.fr/wms/SDOM_GUYANE', {
+        layers: 'ZONE2activiteminiereautoriseesouscontrainte,ZONE1activiteminiereinterditesaufexploitationsouterraineetrecherchesaeriennes,ZONE0activiteminiereinterdite,Zone0potentielle',
+        format: 'image/png',
+        attribution: 'GéoGuyane',
+      })
 
-      const Facades = L.tileLayer.wms(
-        'https://gisdata.cerema.fr/arcgis/services/Carte_vocation_dsf_2020/MapServer/WMSServer',
-        {
-          layers: '0',
-          format: 'image/png',
-          transparent: true,
-          attribution: 'cerema'
-        }
-      )
+      const Facades = L.tileLayer.wms('https://gisdata.cerema.fr/arcgis/services/Carte_vocation_dsf_2020/MapServer/WMSServer', {
+        layers: '0',
+        format: 'image/png',
+        transparent: true,
+        attribution: 'cerema',
+      })
       const RedevanceArcheologiePreventive = L.tileLayer(
         'https://services.data.shom.fr/INSPIRE/wmts?layer=RAP_PYR_PNG_3857_WMTS&style=normal&tilematrixset=3857&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/png&TileMatrix={z}&TileCol={x}&TileRow={y}',
         {
-          attribution: 'shom'
+          attribution: 'shom',
         }
       )
       const overlayMaps = {
         [sdomOverlayName]: SDOM,
         'Façades maritimes': Facades,
-        'Limite de la redevance d’archéologie préventive':
-          RedevanceArcheologiePreventive,
+        'Limite de la redevance d’archéologie préventive': RedevanceArcheologiePreventive,
         Contours: geojsonLayer,
-        Points: markerLayer
+        Points: markerLayer,
       }
       if (map.value !== null) {
         const leafletComponentOnMounted = markRaw(
@@ -197,9 +162,9 @@ export const CaminoMap = defineComponent<Props>({
             // @ts-ignore
             gestureHandling: true,
             fullscreenControl: {
-              pseudoFullscreen: true
+              pseudoFullscreen: true,
             },
-            layers: [osm, geojsonLayer, markerLayer]
+            layers: [osm, geojsonLayer, markerLayer],
           })
         )
         leafletComponent.value = leafletComponentOnMounted
@@ -213,10 +178,7 @@ export const CaminoMap = defineComponent<Props>({
 
             props.mapUpdate?.({ bbox })
           } else {
-            const center = [
-              leafletComponentOnMounted.getCenter().lat,
-              leafletComponentOnMounted.getCenter().lng
-            ]
+            const center = [leafletComponentOnMounted.getCenter().lat, leafletComponentOnMounted.getCenter().lng]
             const leafletZoom = leafletComponentOnMounted.getZoom()
             zoom.value = leafletZoom
 
@@ -251,14 +213,11 @@ export const CaminoMap = defineComponent<Props>({
             gauge.style.width = '70px'
             gauge.style.background = 'rgba(255,255,255,0.5)'
             gauge.style.textAlign = 'left'
-            leafletComponentOnMounted.on(
-              'zoomstart zoom zoomend zoomlevelschange load viewreset',
-              () => {
-                gauge.innerHTML = `Zoom: ${zoom.value}`
-              }
-            )
+            leafletComponentOnMounted.on('zoomstart zoom zoomend zoomlevelschange load viewreset', () => {
+              gauge.innerHTML = `Zoom: ${zoom.value}`
+            })
             return gauge
-          }
+          },
         })
 
         new ZoomViewer().addTo(leafletComponentOnMounted)
@@ -279,34 +238,25 @@ export const CaminoMap = defineComponent<Props>({
             })
             leafletComponentOnMounted.on('overlayadd overlayremove', layer => {
               if (isLayersControlEvent(layer)) {
-                if (
-                  layer.type === 'overlayadd' &&
-                  layer.name === sdomOverlayName
-                ) {
+                if (layer.type === 'overlayadd' && layer.name === sdomOverlayName) {
                   legend.style.display = 'block'
                 }
-                if (
-                  layer.type === 'overlayremove' &&
-                  layer.name === sdomOverlayName
-                ) {
+                if (layer.type === 'overlayremove' && layer.name === sdomOverlayName) {
                   legend.style.display = 'none'
                 }
               }
             })
             legend.style.display = 'none'
             return legend
-          }
+          },
         })
-        new SdomLegend({ position: 'topright' }).addTo(
-          leafletComponentOnMounted
-        )
+        new SdomLegend({ position: 'topright' }).addTo(leafletComponentOnMounted)
 
         const BRGMLegend = L.Control.extend({
           onAdd() {
             const legend = L.DomUtil.create('div')
             legend.className = 'bg-warning px py-s color-bg mb-s h6 bold'
-            legend.innerHTML =
-              'Fond de carte visible <br /> aux niveaux de zoom 12 à 16 en métropole'
+            legend.innerHTML = 'Fond de carte visible <br /> aux niveaux de zoom 12 à 16 en métropole'
             leafletComponentOnMounted.on('baselayerchange', layer => {
               if (isLayersControlEvent(layer)) {
                 if (layer.name === brgmBaseLayerName) {
@@ -318,19 +268,15 @@ export const CaminoMap = defineComponent<Props>({
             })
             legend.style.display = 'none'
             return legend
-          }
+          },
         })
-        new BRGMLegend({ position: 'topright' }).addTo(
-          leafletComponentOnMounted
-        )
+        new BRGMLegend({ position: 'topright' }).addTo(leafletComponentOnMounted)
       } else {
         console.error('Cas impossible ?')
       }
     })
-    const isLayersControlEvent = (
-      layer: LeafletEvent
-    ): layer is LayersControlEvent => 'type' in layer && 'name' in layer
+    const isLayersControlEvent = (layer: LeafletEvent): layer is LayersControlEvent => 'type' in layer && 'name' in layer
 
     return () => <div ref={map} />
-  }
+  },
 })
diff --git a/packages/ui/src/components/_map/leaflet.ts b/packages/ui/src/components/_map/leaflet.ts
index 5a0ecf6e6..e43ac96b8 100644
--- a/packages/ui/src/components/_map/leaflet.ts
+++ b/packages/ui/src/components/_map/leaflet.ts
@@ -1,11 +1,4 @@
-import type {
-  LatLngExpression,
-  Icon,
-  DivIcon,
-  GeoJSONOptions,
-  DivIconOptions,
-  IconOptions
-} from 'leaflet'
+import type { LatLngExpression, Icon, DivIcon, GeoJSONOptions, DivIconOptions, IconOptions } from 'leaflet'
 import { GeoJsonObject } from 'geojson'
 import 'leaflet.markercluster'
 import 'leaflet-gesture-handling'
@@ -25,22 +18,14 @@ L.Marker.prototype.options.icon = L.icon({
   iconAnchor: [12, 41],
   popupAnchor: [1, -34],
   tooltipAnchor: [16, -28],
-  shadowSize: [41, 41]
+  shadowSize: [41, 41],
 })
 
-export const leafletMarkerBuild = (
-  latLng: LatLngExpression,
-  icon: Icon | DivIcon | undefined
-) => L.marker(latLng, { icon })
+export const leafletMarkerBuild = (latLng: LatLngExpression, icon: Icon | DivIcon | undefined) => L.marker(latLng, { icon })
 
-export const leafletGeojsonBuild = (
-  geojson: GeoJsonObject | undefined,
-  options?: GeoJSONOptions<any> | undefined
-) => L.geoJSON(geojson, options)
+export const leafletGeojsonBuild = (geojson: GeoJsonObject | undefined, options?: GeoJSONOptions<any> | undefined) => L.geoJSON(geojson, options)
 
-export const leafletMarkerClusterGroupBuild = (
-  divIconOptions: DivIconOptions
-) =>
+export const leafletMarkerClusterGroupBuild = (divIconOptions: DivIconOptions) =>
   L.markerClusterGroup({
     iconCreateFunction(cluster) {
       const childCount = cluster.getChildCount()
@@ -61,15 +46,11 @@ export const leafletMarkerClusterGroupBuild = (
     showCoverageOnHover: false,
     maxClusterRadius(x) {
       return 2048 / Math.pow(x, 2)
-    }
+    },
   })
 
-export const leafletGeojsonCenterFind = (geojson: GeoJsonObject | undefined) =>
-  L.geoJSON(geojson).getBounds().getCenter()
+export const leafletGeojsonCenterFind = (geojson: GeoJsonObject | undefined) => L.geoJSON(geojson).getBounds().getCenter()
 
-export const leafletDivIconBuild = (divIconOptions: DivIconOptions) =>
-  L.divIcon(divIconOptions)
-export const leafletIconBuild = (iconOptions: IconOptions) =>
-  L.icon(iconOptions)
-export const leafletGeojsonBoundsGet = (zone: GeoJsonObject | undefined) =>
-  L.geoJSON(zone).getBounds()
+export const leafletDivIconBuild = (divIconOptions: DivIconOptions) => L.divIcon(divIconOptions)
+export const leafletIconBuild = (iconOptions: IconOptions) => L.icon(iconOptions)
+export const leafletGeojsonBoundsGet = (zone: GeoJsonObject | undefined) => L.geoJSON(zone).getBounds()
diff --git a/packages/ui/src/components/_map/pattern.tsx b/packages/ui/src/components/_map/pattern.tsx
index 541461834..08d23e849 100644
--- a/packages/ui/src/components/_map/pattern.tsx
+++ b/packages/ui/src/components/_map/pattern.tsx
@@ -1,15 +1,9 @@
 import { domainesIds } from 'camino-common/src/static/domaines'
-import {
-  TitresTypesTypes,
-  TitreTypeTypeId
-} from 'camino-common/src/static/titresTypesTypes'
+import { TitresTypesTypes, TitreTypeTypeId } from 'camino-common/src/static/titresTypesTypes'
 import { FunctionalComponent } from 'vue'
 
 const domainesIdsDefault = [...domainesIds, ''] as const
-const defs: Record<
-  TitreTypeTypeId,
-  { d: string; width: number; rotation: number }
-> = {
+const defs: Record<TitreTypeTypeId, { d: string; width: number; rotation: number }> = {
   ax: { d: 'M0,0 l8,0 M0,8 l8,0', width: 5, rotation: 0 },
   cx: { d: 'M0,0 l8,0 M0,8 l8,0', width: 5, rotation: 45 },
   pc: { d: 'M0,0 l8,0 M0,8 l8,0', width: 5, rotation: 90 },
@@ -20,8 +14,8 @@ const defs: Record<
   in: {
     d: 'M0,4 a3,3 0 1,0 6,0 a 3,3 0 1,0 -6,0',
     width: 1,
-    rotation: 0
-  }
+    rotation: 0,
+  },
 } as const
 export const MapPattern: FunctionalComponent = () => {
   return (
@@ -34,28 +28,14 @@ export const MapPattern: FunctionalComponent = () => {
                 {domainesIdsDefault.map(domaineId => {
                   return (
                     <pattern
-                      id={
-                        domaineId
-                          ? `pattern-${ttt.id}-${domaineId}`
-                          : `pattern-${ttt.id}`
-                      }
+                      id={domaineId ? `pattern-${ttt.id}-${domaineId}` : `pattern-${ttt.id}`}
                       key={domaineId}
                       patternUnits="userSpaceOnUse"
                       width="8"
                       height="8"
                       patternTransform={`rotate(${defs[ttt.id].rotation})`}
                     >
-                      <path
-                        d={defs[ttt.id].d}
-                        class={
-                          domaineId
-                            ? `svg-stroke-domaine-${domaineId}`
-                            : `svg-stroke`
-                        }
-                        stroke-width={defs[ttt.id].width}
-                        stroke-linecap="round"
-                        fill="none"
-                      />
+                      <path d={defs[ttt.id].d} class={domaineId ? `svg-stroke-domaine-${domaineId}` : `svg-stroke`} stroke-width={defs[ttt.id].width} stroke-linecap="round" fill="none" />
                     </pattern>
                   )
                 })}
diff --git a/packages/ui/src/components/_ui/accordion.vue b/packages/ui/src/components/_ui/accordion.vue
index 040e978b1..c64315e53 100644
--- a/packages/ui/src/components/_ui/accordion.vue
+++ b/packages/ui/src/components/_ui/accordion.vue
@@ -6,7 +6,7 @@
       :class="{
         'rnd-t-s': opened || slotSub,
         'rnd-s': !opened && !slotSub,
-        'border-b-s': opened || slotSub
+        'border-b-s': opened || slotSub,
       }"
     >
       <div class="py-s px-m">
@@ -15,12 +15,7 @@
 
       <div class="overflow-hidden flex flex-end flex-right">
         <slot name="buttons" />
-        <button
-          v-if="slotDefault"
-          class="btn-alt py-s px-m"
-          :class="{ 'rnd-br-s': !opened }"
-          @click="toggle"
-        >
+        <button v-if="slotDefault" class="btn-alt py-s px-m" :class="{ 'rnd-br-s': !opened }" @click="toggle">
           <Icon size="M" :name="opened ? 'chevron-haut' : 'chevron-bas'" />
         </button>
         <div v-else class="py-s" style="width: calc(2.5 * var(--unit))" />
@@ -32,7 +27,7 @@
       :class="{
         'rnd-t-s': opened || slotSub,
         'rnd-s': !opened && !slotSub,
-        'border-b-s': opened || slotSub
+        'border-b-s': opened || slotSub,
       }"
       class="accordion-header flex btn-alt py-s px-s"
       @click="toggle"
@@ -73,7 +68,7 @@ export default {
 
     slotButtons: { type: Boolean, default: false },
 
-    slotDefault: { type: Boolean, default: false }
+    slotDefault: { type: Boolean, default: false },
   },
 
   emits: ['toggle'],
@@ -81,7 +76,7 @@ export default {
   data() {
     return {
       isOverflowHidden: true,
-      animationTimeout: null
+      animationTimeout: null,
     }
   },
 
@@ -96,20 +91,17 @@ export default {
           clearTimeout(this.animationTimeout)
           this.isOverflowHidden = true
         } else {
-          this.animationTimeout = setTimeout(
-            () => (this.isOverflowHidden = false),
-            1000
-          )
+          this.animationTimeout = setTimeout(() => (this.isOverflowHidden = false), 1000)
         }
       },
-      immediate: true
-    }
+      immediate: true,
+    },
   },
 
   methods: {
     toggle() {
       this.$emit('toggle')
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_ui/chip.stories.ts b/packages/ui/src/components/_ui/chip.stories.ts
index be5c3c269..6fcbd8d61 100644
--- a/packages/ui/src/components/_ui/chip.stories.ts
+++ b/packages/ui/src/components/_ui/chip.stories.ts
@@ -5,7 +5,7 @@ import { action } from '@storybook/addon-actions'
 const meta: Meta = {
   title: 'Components/UI/Chip',
   component: Chip,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -16,16 +16,16 @@ const Template: Story<Props> = (args: Props) => ({
   },
   template: `<Chip v-bind="args" @onDelete='onDelete' />`,
   methods: {
-    onDelete: action('onDelete')
-  }
+    onDelete: action('onDelete'),
+  },
 })
 
 export const Default = Template.bind({})
 Default.args = {
-  nom: 'Ma chip'
+  nom: 'Ma chip',
 }
 export const WithColor = Template.bind({})
 WithColor.args = {
   nom: 'Ma chip',
-  color: 'bg-success'
+  color: 'bg-success',
 }
diff --git a/packages/ui/src/components/_ui/chip.tsx b/packages/ui/src/components/_ui/chip.tsx
index 14ce79e89..9b88fe6ae 100644
--- a/packages/ui/src/components/_ui/chip.tsx
+++ b/packages/ui/src/components/_ui/chip.tsx
@@ -8,10 +8,7 @@ export type Props = {
   onDeleteClicked?: () => void
 } & HTMLAttributes
 
-export const Chip: FunctionalComponent<Props, ['onDelete']> = (
-  props,
-  context
-) => {
+export const Chip: FunctionalComponent<Props, ['onDelete']> = (props, context) => {
   return (
     <button
       class={`${props.color ?? 'bg-neutral'} pl-m pr-m ${styles.chip}`}
diff --git a/packages/ui/src/components/_ui/date.stories.ts b/packages/ui/src/components/_ui/date.stories.ts
index 456f25d99..919d26b11 100644
--- a/packages/ui/src/components/_ui/date.stories.ts
+++ b/packages/ui/src/components/_ui/date.stories.ts
@@ -5,7 +5,7 @@ import { CaminoDate, toCaminoDate } from 'camino-common/src/date'
 const meta: Meta = {
   title: 'Components/UI/Date',
   component: Date,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -14,18 +14,18 @@ const Template: Story<Props> = (args: Props) => ({
   setup() {
     return { args }
   },
-  template: `<Date v-bind="args" />`
+  template: `<Date v-bind="args" />`,
 })
 
 export const Default = Template.bind(
   {},
   {
-    date: toCaminoDate('2022-05-03')
+    date: toCaminoDate('2022-05-03'),
   }
 )
 export const UneDateEtrange = Template.bind(
   {},
   {
-    date: 'Une date' as CaminoDate
+    date: 'Une date' as CaminoDate,
   }
 )
diff --git a/packages/ui/src/components/_ui/dropdown.stories.tsx b/packages/ui/src/components/_ui/dropdown.stories.tsx
index f8e589979..86d20f7fb 100644
--- a/packages/ui/src/components/_ui/dropdown.stories.tsx
+++ b/packages/ui/src/components/_ui/dropdown.stories.tsx
@@ -3,23 +3,10 @@ import { Dropdown, Props } from './dropdown'
 
 const meta: Meta = {
   title: 'Components/UI/Dropdown',
-  component: Dropdown
+  component: Dropdown,
 }
 export default meta
 
-export const Default: Story = () => (
-  <Dropdown
-    onToggle={_state => {}}
-    title={() => <h2>Titre</h2>}
-    content={() => <h5>Contenu</h5>}
-  />
-)
+export const Default: Story = () => <Dropdown onToggle={_state => {}} title={() => <h2>Titre</h2>} content={() => <h5>Contenu</h5>} />
 
-export const Opened: Story = () => (
-  <Dropdown
-    onToggle={_state => {}}
-    title={() => <h6>Titre</h6>}
-    content={() => <h5>Contenu</h5>}
-    open={true}
-  />
-)
+export const Opened: Story = () => <Dropdown onToggle={_state => {}} title={() => <h6>Titre</h6>} content={() => <h5>Contenu</h5>} open={true} />
diff --git a/packages/ui/src/components/_ui/dropdown.tsx b/packages/ui/src/components/_ui/dropdown.tsx
index b7db92287..50c904a5c 100644
--- a/packages/ui/src/components/_ui/dropdown.tsx
+++ b/packages/ui/src/components/_ui/dropdown.tsx
@@ -20,9 +20,7 @@ export const Dropdown = defineComponent<Props>({
       <div class="relative flex flex-direction-column dropdown">
         <div class="absolute border rnd-s bg-bg full-x overflow-hidden">
           <button
-            class={`${
-              open.value ? 'rnd-t-s border-b-s' : ''
-            } accordion-header flex btn-alt py-s px-s full-x`}
+            class={`${open.value ? 'rnd-t-s border-b-s' : ''} accordion-header flex btn-alt py-s px-s full-x`}
             onClick={() => {
               open.value = !open.value
               props.onToggle(open.value)
@@ -30,20 +28,15 @@ export const Dropdown = defineComponent<Props>({
           >
             <div>{props.title()}</div>
             <div class="flex flex-right flex-end">
-              <Icon
-                size="M"
-                name={open.value ? 'chevron-haut' : 'chevron-bas'}
-              />
+              <Icon size="M" name={open.value ? 'chevron-haut' : 'chevron-bas'} />
             </div>
           </button>
 
           <div class={`${open.value ? 'opened' : ''} overflow-hidden`}>
-            <Transition name="slide">
-              {open.value ? props.content() : null}
-            </Transition>
+            <Transition name="slide">{open.value ? props.content() : null}</Transition>
           </div>
         </div>
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/_ui/filters-checkboxes.tsx b/packages/ui/src/components/_ui/filters-checkboxes.tsx
index fab32f08e..a601b280d 100644
--- a/packages/ui/src/components/_ui/filters-checkboxes.tsx
+++ b/packages/ui/src/components/_ui/filters-checkboxes.tsx
@@ -1,15 +1,6 @@
-import {
-  Props as FiltreDomaineProps,
-  FiltreDomaine
-} from '../_common/filtres/domaine'
-import {
-  Props as FiltresStatutsProps,
-  FiltresStatuts
-} from '../_common/filtres/statuts'
-import {
-  Props as FiltresTypesProps,
-  FiltresTypes
-} from '../_common/filtres/types'
+import { Props as FiltreDomaineProps, FiltreDomaine } from '../_common/filtres/domaine'
+import { Props as FiltresStatutsProps, FiltresStatuts } from '../_common/filtres/statuts'
+import { Props as FiltresTypesProps, FiltresTypes } from '../_common/filtres/types'
 
 type Props = {
   filter: {
@@ -17,40 +8,28 @@ type Props = {
     component?: 'FiltreDomaine' | 'FiltresTypes' | 'FiltresStatuts'
     isNumber: boolean
     value: any[]
-    elements: ({ id: string; nom: string } & (
-      | FiltreDomaineProps['element']
-      | FiltresStatutsProps['element']
-      | FiltresTypesProps['element']
-    ))[]
+    elements: ({ id: string; nom: string } & (FiltreDomaineProps['element'] | FiltresStatutsProps['element'] | FiltresTypesProps['element']))[]
   }
 }
 
-function DrawComponent(
-  component: Props['filter']['component'],
-  element:
-    | FiltreDomaineProps['element']
-    | FiltresStatutsProps['element']
-    | FiltresTypesProps['element']
-): JSX.Element | null {
+function DrawComponent(component: Props['filter']['component'], element: FiltreDomaineProps['element'] | FiltresStatutsProps['element'] | FiltresTypesProps['element']): JSX.Element | null {
   if (!component) return <span class="cap-first h6 bold">{element.nom}</span>
   switch (component) {
     case 'FiltreDomaine':
       return FiltreDomaine({
-        element: element as FiltreDomaineProps['element']
+        element: element as FiltreDomaineProps['element'],
       })
     case 'FiltresTypes':
       return FiltresTypes({ element: element as FiltresTypesProps['element'] })
     case 'FiltresStatuts':
       return FiltresStatuts({
-        element: element as FiltresStatutsProps['element']
+        element: element as FiltresStatutsProps['element'],
       })
   }
 }
 
 export function FiltersCheckboxes(props: Props) {
-  const isEventWithTarget = (
-    event: any
-  ): event is Event & { target: HTMLInputElement } => event.target
+  const isEventWithTarget = (event: any): event is Event & { target: HTMLInputElement } => event.target
 
   const idsSet = (v: any, values: any[]) => {
     const index = values.indexOf(v)
@@ -68,10 +47,7 @@ export function FiltersCheckboxes(props: Props) {
 
   const checkboxToggle = (e: Event) => {
     if (isEventWithTarget(e) && e.target.value !== null) {
-      const target =
-        props.filter?.isNumber === true
-          ? Number(e.target.value)
-          : e.target.value
+      const target = props.filter?.isNumber === true ? Number(e.target.value) : e.target.value
 
       props.filter.value = idsSet(target, props.filter.value)
     }
@@ -96,30 +72,16 @@ export function FiltersCheckboxes(props: Props) {
         {props.filter.elements.map(element => (
           <li key={element.id}>
             <label>
-              <input
-                value={element.id}
-                checked={props.filter.value.includes(element.id)}
-                type="checkbox"
-                class="mr-s"
-                onChange={event => checkboxToggle(event)}
-              />
+              <input value={element.id} checked={props.filter.value.includes(element.id)} type="checkbox" class="mr-s" onChange={event => checkboxToggle(event)} />
               {DrawComponent(props.filter.component, element)}
             </label>
           </li>
         ))}
       </ul>
-      <button
-        ref="button"
-        class="btn-border small px-s p-xs rnd-xs mr-xs"
-        onClick={() => checkboxesSelect('none')}
-      >
+      <button ref="button" class="btn-border small px-s p-xs rnd-xs mr-xs" onClick={() => checkboxesSelect('none')}>
         Aucun
       </button>
-      <button
-        ref="button"
-        class="btn-border small px-s p-xs rnd-xs mr-xs"
-        onClick={() => checkboxesSelect('all')}
-      >
+      <button ref="button" class="btn-border small px-s p-xs rnd-xs mr-xs" onClick={() => checkboxesSelect('all')}>
         Tous
       </button>
     </div>
diff --git a/packages/ui/src/components/_ui/filters-input-autocomplete.stories.tsx b/packages/ui/src/components/_ui/filters-input-autocomplete.stories.tsx
index a51e14837..9d8ddc4ac 100644
--- a/packages/ui/src/components/_ui/filters-input-autocomplete.stories.tsx
+++ b/packages/ui/src/components/_ui/filters-input-autocomplete.stories.tsx
@@ -8,8 +8,8 @@ const meta: Meta = {
   argTypes: {
     rows: { name: 'array', value: 'string', required: true },
     columns: { name: 'array', value: 'string', required: true },
-    initialSort: { name: 'object' }
-  }
+    initialSort: { name: 'object' },
+  },
 }
 export default meta
 
@@ -23,9 +23,9 @@ export const Default: Story = () => (
       elements: [
         { id: 'id1', nom: 'name1' },
         { id: 'id2', nom: 'name2' },
-        { id: 'id3', nom: 'name3' }
+        { id: 'id3', nom: 'name3' },
       ],
-      lazy: false
+      lazy: false,
     }}
     onSelectItems={onSelectItems}
   />
diff --git a/packages/ui/src/components/_ui/filters-input-autocomplete.tsx b/packages/ui/src/components/_ui/filters-input-autocomplete.tsx
index 4ec155608..0643bb6ef 100644
--- a/packages/ui/src/components/_ui/filters-input-autocomplete.tsx
+++ b/packages/ui/src/components/_ui/filters-input-autocomplete.tsx
@@ -35,10 +35,7 @@ export const InputAutocomplete = defineComponent<Props>({
       () => props.filter.value,
       newValues => {
         if (newValues) {
-          overrideItems.value =
-            newValues
-              .map(id => allKnownItems.value[id])
-              .filter(isNotNullNorUndefined) ?? []
+          overrideItems.value = newValues.map(id => allKnownItems.value[id]).filter(isNotNullNorUndefined) ?? []
 
           selectedItems.value = overrideItems.value
         }
@@ -62,11 +59,7 @@ export const InputAutocomplete = defineComponent<Props>({
       }
       // TODO 2022-04-08 des fois, ceci est une chaine vide, des fois un objet. Il faudra supprimer tout ça une fois les composants parents refactorés
       if (Array.isArray(props?.filter?.value)) {
-        overrideItems.value = props?.filter?.value
-          .map(id => allKnownItems.value[id])
-          .filter(
-            (elem: Element | undefined): elem is Element => elem !== undefined
-          )
+        overrideItems.value = props?.filter?.value.map(id => allKnownItems.value[id]).filter((elem: Element | undefined): elem is Element => elem !== undefined)
         selectedItems.value = overrideItems.value
       }
     })
@@ -89,11 +82,7 @@ export const InputAutocomplete = defineComponent<Props>({
         // C'est étrange, il va falloir corriger tout ça un jour
         props.filter.elements = [...Object.values(allKnownItems.value)]
       } else {
-        items.value = props.filter.elements.filter(
-          item =>
-            item.nom.toLowerCase().includes(value.toLowerCase()) ||
-            selectedItems.value.some(({ id }) => id === item.id)
-        )
+        items.value = props.filter.elements.filter(item => item.nom.toLowerCase().includes(value.toLowerCase()) || selectedItems.value.some(({ id }) => id === item.id))
       }
     }
 
@@ -116,5 +105,5 @@ export const InputAutocomplete = defineComponent<Props>({
         />
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/_ui/filters-input.tsx b/packages/ui/src/components/_ui/filters-input.tsx
index 8f82bdb09..97a36e704 100644
--- a/packages/ui/src/components/_ui/filters-input.tsx
+++ b/packages/ui/src/components/_ui/filters-input.tsx
@@ -12,12 +12,7 @@ export function FiltersInput(props: Props) {
       <h5>{props.filter.name}</h5>
       <hr class="mb-s" />
 
-      <input
-        v-model={props.filter.value}
-        type="text"
-        placeholder={props.filter.placeholder}
-        class="p-s"
-      />
+      <input v-model={props.filter.value} type="text" placeholder={props.filter.placeholder} class="p-s" />
     </div>
   )
 }
diff --git a/packages/ui/src/components/_ui/filters-selects.tsx b/packages/ui/src/components/_ui/filters-selects.tsx
index 0ef790f3c..3e00cb91c 100644
--- a/packages/ui/src/components/_ui/filters-selects.tsx
+++ b/packages/ui/src/components/_ui/filters-selects.tsx
@@ -21,30 +21,20 @@ export function FiltersSelects(props: Props) {
         <div class="flex mb-s">
           <select v-model={props.filter.value[n]} class="p-s mr-s" key={n}>
             {props.filter.elements.map(element => (
-              <option
-                key={element.id}
-                value={element.id}
-                disabled={props.filter.value.includes(element.id)}
-              >
+              <option key={element.id} value={element.id} disabled={props.filter.value.includes(element.id)}>
                 {element[props.filter.elementName]}
               </option>
             ))}
           </select>
 
-          <button
-            class="btn py-s px-m rnd-xs"
-            onClick={() => props.filter.value.splice(n, 1)}
-          >
+          <button class="btn py-s px-m rnd-xs" onClick={() => props.filter.value.splice(n, 1)}>
             <Icon name="minus" size="M" />
           </button>
         </div>
       ))}
 
       {!props.filter.value || !props.filter.value.some(v => v === '') ? (
-        <button
-          class="btn small rnd-xs py-s px-m full-x flex mb-s"
-          onClick={() => props.filter.value.push('')}
-        >
+        <button class="btn small rnd-xs py-s px-m full-x flex mb-s" onClick={() => props.filter.value.push('')}>
           <span class="mt-xxs">{props.filter.buttonAdd}</span>
           <Icon name="plus" size="M" class="flex-right" />
         </button>
diff --git a/packages/ui/src/components/_ui/filters.vue b/packages/ui/src/components/_ui/filters.vue
index af3cb43dd..0095a0d28 100644
--- a/packages/ui/src/components/_ui/filters.vue
+++ b/packages/ui/src/components/_ui/filters.vue
@@ -1,12 +1,5 @@
 <template>
-  <Accordion
-    ref="accordion"
-    :opened="opened"
-    :slotSub="!!labels.length"
-    :slotDefault="true"
-    class="mb-s"
-    @toggle="toggle"
-  >
+  <Accordion ref="accordion" :opened="opened" :slotSub="!!labels.length" :slotDefault="true" class="mb-s" @toggle="toggle">
     <template #title>
       {{ title }}
     </template>
@@ -20,9 +13,7 @@
             class="rnd-m box btn-flash h6 pl-s pr-xs py-xs bold mr-xs mb-xs"
             :class="{ 'pr-xs': !opened, 'pr-s': opened }"
             @click="labelRemove(label)"
-            >{{ label.name }} : {{ label.valueName || label.value }}
-            <span v-if="!opened" class="inline-block align-y-top ml-xs">
-              <Icon size="S" name="x" color="white" /> </span
+            >{{ label.name }} : {{ label.valueName || label.value }} <span v-if="!opened" class="inline-block align-y-top ml-xs"> <Icon size="S" name="x" color="white" /> </span
           ></span>
         </div>
         <button class="flex-right btn-alt p-m" @click="labelsReset">
@@ -35,50 +26,21 @@
       <div class="tablet-blobs mt">
         <div v-if="inputs.length" class="tablet-blob-1-2 large-blob-1-3">
           <template v-for="input in inputs" :key="input.id">
-            <InputAutocomplete
-              v-if="input.type === 'autocomplete'"
-              :filter="input"
-              :onSelectItems="unused"
-            />
+            <InputAutocomplete v-if="input.type === 'autocomplete'" :filter="input" :onSelectItems="unused" />
             <FiltersInput v-else :filter="input" />
           </template>
 
-          <button
-            class="btn-border small px-s p-xs rnd-xs mb"
-            @click="inputsErase"
-          >
-            Tout effacer
-          </button>
+          <button class="btn-border small px-s p-xs rnd-xs mb" @click="inputsErase">Tout effacer</button>
         </div>
 
-        <FiltersCheckboxes
-          v-for="filter in checkboxes"
-          :key="filter.id"
-          :filter="filter"
-          class="tablet-blob-1-2 large-blob-1-3"
-        />
-
-        <FiltersSelects
-          v-for="filter in selects"
-          :key="filter.id"
-          :filter="filter"
-          class="tablet-blob-1-2 large-blob-1-3"
-        />
-
-        <component
-          :is="filter.component"
-          v-for="filter in customs"
-          :key="filter.id"
-          :filter="filter"
-          class="tablet-blob-1-2 large-blob-1-3"
-        />
+        <FiltersCheckboxes v-for="filter in checkboxes" :key="filter.id" :filter="filter" class="tablet-blob-1-2 large-blob-1-3" />
+
+        <FiltersSelects v-for="filter in selects" :key="filter.id" :filter="filter" class="tablet-blob-1-2 large-blob-1-3" />
+
+        <component :is="filter.component" v-for="filter in customs" :key="filter.id" :filter="filter" class="tablet-blob-1-2 large-blob-1-3" />
       </div>
 
-      <button
-        ref="button"
-        class="btn-flash p-s rnd-xs full-x mb"
-        @click="validate"
-      >
+      <button ref="button" class="btn-flash p-s rnd-xs full-x mb" @click="validate">
         {{ button }}
       </button>
     </div>
@@ -100,23 +62,21 @@ export default {
     FiltersInput,
     FiltersCheckboxes,
     FiltersSelects,
-    InputAutocomplete
+    InputAutocomplete,
   },
 
   props: {
     filters: { type: Array, default: () => [] },
     title: { type: String, default: 'Filters' },
     button: { type: String, default: 'Ok' },
-    opened: { type: Boolean, default: false }
+    opened: { type: Boolean, default: false },
   },
 
   emits: ['toggle', 'validate'],
 
   computed: {
     inputs() {
-      return this.filters.filter(
-        ({ type }) => type === 'input' || type === 'autocomplete'
-      )
+      return this.filters.filter(({ type }) => type === 'input' || type === 'autocomplete')
     },
 
     checkboxes() {
@@ -135,12 +95,7 @@ export default {
       return this.filters.reduce((acc, f) => {
         let labels = []
 
-        if (
-          (f.type === 'checkboxes' ||
-            f.type === 'select' ||
-            f.type === 'autocomplete') &&
-          f.value.length
-        ) {
+        if ((f.type === 'checkboxes' || f.type === 'select' || f.type === 'autocomplete') && f.value.length) {
           labels = f.value.map(v => {
             const element = f.elements.find(e => e.id === v)
 
@@ -148,17 +103,12 @@ export default {
               id: f.id,
               name: f.name,
               value: v,
-              valueName: element && element.nom
+              valueName: element && element.nom,
             }
           })
         } else if (f.type === 'input' && f.value) {
           labels = [{ id: f.id, name: f.name, value: f.value }]
-        } else if (
-          f.type === 'custom' &&
-          f.value &&
-          f.value.length &&
-          f.labelFormat
-        ) {
+        } else if (f.type === 'custom' && f.value && f.value.length && f.labelFormat) {
           labels = f.labelFormat(f)
         }
 
@@ -168,7 +118,7 @@ export default {
 
         return acc
       }, [])
-    }
+    },
   },
 
   created() {
@@ -210,12 +160,7 @@ export default {
         const filter = this.filters.find(({ id }) => id === label.id)
 
         if (Array.isArray(filter.value)) {
-          if (
-            filter.type === 'checkboxes' ||
-            filter.type === 'select' ||
-            filter.type === 'custom' ||
-            filter.type === 'autocomplete'
-          ) {
+          if (filter.type === 'checkboxes' || filter.type === 'select' || filter.type === 'custom' || filter.type === 'autocomplete') {
             const index = filter.value.indexOf(label.value)
             if (index > -1) {
               filter.value.splice(index, 1)
@@ -241,7 +186,7 @@ export default {
       if (!this.opened) {
         this.validate()
       }
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_ui/functional-loader.stories.tsx b/packages/ui/src/components/_ui/functional-loader.stories.tsx
index 6b9b3a714..6a3ec1394 100644
--- a/packages/ui/src/components/_ui/functional-loader.stories.tsx
+++ b/packages/ui/src/components/_ui/functional-loader.stories.tsx
@@ -4,7 +4,7 @@ import { AsyncData } from '@/api/client-rest'
 
 const meta: Meta = {
   title: 'Components/UI/FunctionalLoader',
-  component: LoadingElement
+  component: LoadingElement,
 }
 export default meta
 
@@ -15,10 +15,7 @@ const error: AsyncData<string> = { status: 'ERROR', message: 'Erreur' }
 export const All: StoryFn = args => (
   <div>
     <LoadingElement data={loading} renderItem={() => null} />
-    <LoadingElement
-      data={loaded}
-      renderItem={item => <>La valeur de l’item est : {item}</>}
-    />
+    <LoadingElement data={loaded} renderItem={item => <>La valeur de l’item est : {item}</>} />
     <LoadingElement data={error} renderItem={() => null} />
   </div>
 )
diff --git a/packages/ui/src/components/_ui/functional-loader.tsx b/packages/ui/src/components/_ui/functional-loader.tsx
index 832e282d8..a75310d0f 100644
--- a/packages/ui/src/components/_ui/functional-loader.tsx
+++ b/packages/ui/src/components/_ui/functional-loader.tsx
@@ -9,25 +9,14 @@ export interface Props<T> {
 
 export const LoadingElement = <T,>(props: Props<T>) => {
   return (
-    <div
-      class={`${props.data.status === 'LOADING' ? styles['top-level'] : ''}`}
-      style={
-        props.data.status !== 'LOADED'
-          ? 'display: flex; justify-content: center'
-          : ''
-      }
-    >
-      {props.data.status === 'LOADED'
-        ? props.renderItem(props.data.value)
-        : null}
+    <div class={`${props.data.status === 'LOADING' ? styles['top-level'] : ''}`} style={props.data.status !== 'LOADED' ? 'display: flex; justify-content: center' : ''}>
+      {props.data.status === 'LOADED' ? props.renderItem(props.data.value) : null}
       {props.data.status === 'ERROR' ? (
         <div>
           <HelpTooltip icon="error-warning" text={props.data.message} />
         </div>
       ) : null}
-      {props.data.status === 'LOADING' ? (
-        <div class={styles.spinner}></div>
-      ) : null}
+      {props.data.status === 'LOADING' ? <div class={styles.spinner}></div> : null}
     </div>
   )
 }
diff --git a/packages/ui/src/components/_ui/functional-popup.stories.tsx b/packages/ui/src/components/_ui/functional-popup.stories.tsx
index 7195bdb8d..5737a2b13 100644
--- a/packages/ui/src/components/_ui/functional-popup.stories.tsx
+++ b/packages/ui/src/components/_ui/functional-popup.stories.tsx
@@ -4,7 +4,7 @@ import { action } from '@storybook/addon-actions'
 
 const meta: Meta = {
   title: 'Components/UI/Popup',
-  component: FunctionalPopup
+  component: FunctionalPopup,
 }
 export default meta
 
@@ -20,14 +20,13 @@ export const Main: StoryFn = () => (
       action: () => {
         doStuff()
         return Promise.resolve()
-      }
+      },
     }}
     content={() => (
       <div>
         <input type="text" class="tablet-blob-2-3 p-s" />
         <div class="bg-warning color-bg p-s mb-l">
-          <span class="bold"> Attention </span>: cette opération est définitive
-          et ne peut pas être annulée.
+          <span class="bold"> Attention </span>: cette opération est définitive et ne peut pas être annulée.
         </div>
       </div>
     )}
@@ -43,14 +42,13 @@ export const NotValid: StoryFn = () => (
       action: () => {
         doStuff()
         return Promise.resolve()
-      }
+      },
     }}
     content={() => (
       <div>
         <input type="text" class="tablet-blob-2-3 p-s" />
         <div class="bg-warning color-bg p-s mb-l">
-          <span class="bold"> Attention </span>: cette opération est définitive
-          et ne peut pas être annulée.
+          <span class="bold"> Attention </span>: cette opération est définitive et ne peut pas être annulée.
         </div>
       </div>
     )}
diff --git a/packages/ui/src/components/_ui/functional-popup.tsx b/packages/ui/src/components/_ui/functional-popup.tsx
index 42e2f9c6b..68bea0263 100644
--- a/packages/ui/src/components/_ui/functional-popup.tsx
+++ b/packages/ui/src/components/_ui/functional-popup.tsx
@@ -43,25 +43,25 @@ export const FunctionalPopup = defineComponent<Props>({
 
     const validateProcess = ref<AsyncData<null>>({
       status: 'LOADED',
-      value: null
+      value: null,
     })
 
     const validate = async () => {
       if (canValidate.value) {
         validateProcess.value = {
-          status: 'LOADING'
+          status: 'LOADING',
         }
         try {
           await props.validate.action()
           validateProcess.value = {
             status: 'LOADED',
-            value: null
+            value: null,
           }
         } catch (e: any) {
           console.error('error', e)
           validateProcess.value = {
             status: 'ERROR',
-            message: e.message ?? 'something wrong happened'
+            message: e.message ?? 'something wrong happened',
           }
         }
         props.close()
@@ -69,14 +69,8 @@ export const FunctionalPopup = defineComponent<Props>({
     }
 
     return () => (
-      <div
-        class="absolute full bg-inverse-alpha z-2"
-        onClick={() => props.close()}
-      >
-        <div
-          class="popup fixed shadow full bg-bg"
-          onClick={e => e.stopPropagation()}
-        >
+      <div class="absolute full bg-inverse-alpha z-2" onClick={() => props.close()}>
+        <div class="popup fixed shadow full bg-bg" onClick={e => e.stopPropagation()}>
           <div class="popup-header px-l pt-l">
             <h2>{props.title}</h2>
           </div>
@@ -84,10 +78,7 @@ export const FunctionalPopup = defineComponent<Props>({
           <div class="popup-footer px-l pt pb-l">
             <div class="tablet-blobs">
               <div class="tablet-blob-1-3 mb tablet-mb-0">
-                <button
-                  class="btn-border rnd-xs p-s full-x"
-                  onClick={() => props.close()}
-                >
+                <button class="btn-border rnd-xs p-s full-x" onClick={() => props.close()}>
                   Annuler
                 </button>
               </div>
@@ -98,9 +89,7 @@ export const FunctionalPopup = defineComponent<Props>({
                     <button
                       ref={validateButton}
                       disabled={!canValidate.value}
-                      class={`${
-                        !canValidate.value ? 'disabled' : ''
-                      } btn btn-primary`}
+                      class={`${!canValidate.value ? 'disabled' : ''} btn btn-primary`}
                       onClick={e => {
                         e.stopPropagation()
                         return validate()
@@ -116,5 +105,5 @@ export const FunctionalPopup = defineComponent<Props>({
         </div>
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/_ui/help-tooltip.stories.ts b/packages/ui/src/components/_ui/help-tooltip.stories.ts
index f031d2b24..5f6da9724 100644
--- a/packages/ui/src/components/_ui/help-tooltip.stories.ts
+++ b/packages/ui/src/components/_ui/help-tooltip.stories.ts
@@ -3,7 +3,7 @@ import { HelpTooltip, Props } from './help-tooltip'
 
 const meta: Meta<Props> = {
   title: 'Components/Ui/HelpTooltip',
-  component: HelpTooltip
+  component: HelpTooltip,
 }
 export default meta
 
@@ -12,11 +12,8 @@ const Template: Story<Props> = (args: Props) => ({
   setup() {
     return { args }
   },
-  template: '<HelpTooltip v-bind="args"/>'
+  template: '<HelpTooltip v-bind="args"/>',
 })
 
 export const Simple = Template.bind({}, { text: 'Tooltip text' })
-export const WithDifferentIcon = Template.bind(
-  {},
-  { icon: 'download', text: 'Tooltip text' }
-)
+export const WithDifferentIcon = Template.bind({}, { icon: 'download', text: 'Tooltip text' })
diff --git a/packages/ui/src/components/_ui/help-tooltip.tsx b/packages/ui/src/components/_ui/help-tooltip.tsx
index 83cd51321..518997db6 100644
--- a/packages/ui/src/components/_ui/help-tooltip.tsx
+++ b/packages/ui/src/components/_ui/help-tooltip.tsx
@@ -8,10 +8,7 @@ export interface Props {
   text: string
 }
 
-export const HelpTooltip: FunctionalComponent<Props> = (
-  props,
-  context
-): JSX.Element => {
+export const HelpTooltip: FunctionalComponent<Props> = (props, context): JSX.Element => {
   return (
     <div class={styles.tooltip}>
       <h6 class={styles['tooltip-content']}>{props.text}</h6>
diff --git a/packages/ui/src/components/_ui/icon.stories.ts b/packages/ui/src/components/_ui/icon.stories.ts
index cecd003ea..706c390a3 100644
--- a/packages/ui/src/components/_ui/icon.stories.ts
+++ b/packages/ui/src/components/_ui/icon.stories.ts
@@ -5,7 +5,7 @@ import { IconSprite } from '@/components/_ui/iconSprite'
 
 const meta: Meta = {
   title: 'Components/Ui/Icons',
-  component: Icon
+  component: Icon,
 }
 export default meta
 
@@ -19,7 +19,7 @@ export const IconAllSize = () => ({
         <tr><td>m</td><td><Icon size="M" name="download" /></td></tr>
       </table>
     </div>
-        `
+        `,
 })
 
 export const AllIcons = () => ({
@@ -29,13 +29,8 @@ export const AllIcons = () => ({
       <IconSprite/>
       <table>
       <tr><th>Name</th><th>Component</th></tr>
-        ${icons
-          .map(
-            iconName =>
-              `<tr><td>${iconName}</td><td><Icon size="M" name="${iconName}" /></td></tr>`
-          )
-          .join('')}
+        ${icons.map(iconName => `<tr><td>${iconName}</td><td><Icon size="M" name="${iconName}" /></td></tr>`).join('')}
       </table>
     </div>
-    `
+    `,
 })
diff --git a/packages/ui/src/components/_ui/iconSprite.tsx b/packages/ui/src/components/_ui/iconSprite.tsx
index f67587c2f..597a9ff6e 100644
--- a/packages/ui/src/components/_ui/iconSprite.tsx
+++ b/packages/ui/src/components/_ui/iconSprite.tsx
@@ -1,10 +1,6 @@
 export function IconSprite() {
   return (
-    <svg
-      aria-hidden="true"
-      style="position: absolute; width: 0; height: 0; overflow: hidden"
-      xmlns="http://www.w3.org/2000/svg"
-    >
+    <svg aria-hidden="true" style="position: absolute; width: 0; height: 0; overflow: hidden" xmlns="http://www.w3.org/2000/svg">
       <symbol id="icon-at" viewBox="0 0 24 24">
         <title>at</title>
         <path d="M20 12a8 8 0 1 0-3.562 6.657l1.11 1.664A9.953 9.953 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10v1.5a3.5 3.5 0 0 1-6.396 1.966A5 5 0 1 1 15 8H17v5.5a1.5 1.5 0 0 0 3 0V12zm-8-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6z" />
@@ -39,10 +35,7 @@ export function IconSprite() {
       </symbol>
       <symbol id="icon-error-warning" viewBox="0 0 24 24">
         <title>error-warning</title>
-        <path
-          d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-7v2h2v-2h-2zm0-8v6h2V7h-2z"
-          fill="rgba(231,76,60,1)"
-        />
+        <path d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm-1-7v2h2v-2h-2zm0-8v6h2V7h-2z" fill="rgba(231,76,60,1)" />
       </symbol>
       <symbol id="icon-external-link" viewBox="0 0 24 24">
         <title>external-link</title>
@@ -84,13 +77,7 @@ export function IconSprite() {
         <title>marker-none</title>
         <g id="24-markers-grouped" transform="translate(0.908117, 0.000078)">
           <path d="M9.09188309,18.8999221 L14.0418831,13.9499221 C16.7753479,11.2161783 16.7751972,6.78415329 14.0415464,4.05059549 C11.3078956,1.31703769 6.87587059,1.31703769 4.1422198,4.05059549 C1.40856902,6.78415329 1.40841827,11.2161783 4.14188309,13.9499221 L9.09188309,18.8999221 Z M9.09188309,21.7279221 L2.72788309,15.3639221 C-0.786803866,11.8491921 -0.786780603,6.15072729 2.72793505,2.63602598 C6.24265071,-0.878675327 11.9411155,-0.878675327 15.4558311,2.63602598 C18.9705468,6.15072729 18.97057,11.8491921 15.4558831,15.3639221 L9.09188309,21.7279221 L9.09188309,21.7279221 Z M9.09188309,10.9999221 C10.1964526,10.9999221 11.0918831,10.1044916 11.0918831,8.99992206 C11.0918831,7.89535256 10.1964526,6.99992206 9.09188309,6.99992206 C7.98731359,6.99992206 7.09188309,7.89535256 7.09188309,8.99992206 C7.09188309,10.1044916 7.98731359,10.9999221 9.09188309,10.9999221 Z M9.09188309,12.9999221 C6.88274409,12.9999221 5.09188309,11.2090611 5.09188309,8.99992206 C5.09188309,6.79078306 6.88274409,4.99992206 9.09188309,4.99992206 C11.3010221,4.99992206 13.0918831,6.79078306 13.0918831,8.99992206 C13.0918831,11.2090611 11.3010221,12.9999221 9.09188309,12.9999221 Z"></path>
-          <rect
-            transform="translate(9.192388, 9.514641) rotate(-45.000000) translate(-9.192388, -9.514641) "
-            x="8.19238816"
-            y="-2.48535931"
-            width="2"
-            height="24"
-          ></rect>
+          <rect transform="translate(9.192388, 9.514641) rotate(-45.000000) translate(-9.192388, -9.514641) " x="8.19238816" y="-2.48535931" width="2" height="24"></rect>
         </g>
       </symbol>
       <symbol id="icon-marker-ungrouped" viewBox="0 0 24 24">
diff --git a/packages/ui/src/components/_ui/iconSpriteType.ts b/packages/ui/src/components/_ui/iconSpriteType.ts
index aa5a347f3..bd381d99f 100644
--- a/packages/ui/src/components/_ui/iconSpriteType.ts
+++ b/packages/ui/src/components/_ui/iconSpriteType.ts
@@ -28,6 +28,6 @@ export const icons = [
   'pencil',
   'plus',
   'refresh',
-  'x'
+  'x',
 ] as const
 export type Icon = (typeof icons)[number]
diff --git a/packages/ui/src/components/_ui/input-date.stories.tsx b/packages/ui/src/components/_ui/input-date.stories.tsx
index 3ae0a80b5..3fcb0e142 100644
--- a/packages/ui/src/components/_ui/input-date.stories.tsx
+++ b/packages/ui/src/components/_ui/input-date.stories.tsx
@@ -5,15 +5,10 @@ import { action } from '@storybook/addon-actions'
 
 const meta: Meta = {
   title: 'Components/UI/InputDate',
-  component: InputDate
+  component: InputDate,
 }
 export default meta
 const dateChanged = action('dateChanged')
 
 export const Empty: StoryFn = () => <InputDate dateChanged={dateChanged} />
-export const WithDateAlreadySet: StoryFn = () => (
-  <InputDate
-    initialValue={toCaminoDate('2023-01-26')}
-    dateChanged={dateChanged}
-  />
-)
+export const WithDateAlreadySet: StoryFn = () => <InputDate initialValue={toCaminoDate('2023-01-26')} dateChanged={dateChanged} />
diff --git a/packages/ui/src/components/_ui/input-date.tsx b/packages/ui/src/components/_ui/input-date.tsx
index 027b6b91c..ab3f98caf 100644
--- a/packages/ui/src/components/_ui/input-date.tsx
+++ b/packages/ui/src/components/_ui/input-date.tsx
@@ -1,12 +1,5 @@
 import { isEventWithTarget } from '@/utils/vue-tsx-utils'
-import {
-  CaminoDate,
-  getAnnee,
-  getDay,
-  getMois,
-  isCaminoDate,
-  toCaminoDate
-} from 'camino-common/src/date'
+import { CaminoDate, getAnnee, getDay, getMois, isCaminoDate, toCaminoDate } from 'camino-common/src/date'
 import { defineComponent, ref } from 'vue'
 
 interface Props {
@@ -14,20 +7,7 @@ interface Props {
   dateChanged: (date: CaminoDate) => void
 }
 
-const monthNames = [
-  'janvier',
-  'février',
-  'mars',
-  'avril',
-  'mai',
-  'juin',
-  'juillet',
-  'aout',
-  'septembre',
-  'octobre',
-  'novembre',
-  'décembre'
-] as const
+const monthNames = ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'aout', 'septembre', 'octobre', 'novembre', 'décembre'] as const
 
 const yearMin = 1750
 const yearMax = 2099
@@ -73,12 +53,7 @@ export const InputDate = defineComponent<Props>({
         let date = null
         while (dayMax > 28) {
           try {
-            date = toCaminoDate(
-              `${yearId.value}-${String(monthId.value).padStart(
-                2,
-                '0'
-              )}-${String(dayId.value).padStart(2, '0')}`
-            )
+            date = toCaminoDate(`${yearId.value}-${String(monthId.value).padStart(2, '0')}-${String(dayId.value).padStart(2, '0')}`)
             dayMax = 1
           } catch (ex) {
             dayId.value = dayId.value - 1
@@ -94,15 +69,7 @@ export const InputDate = defineComponent<Props>({
     return () => (
       <div class="blobs-mini">
         <div class="blob-mini-1-3">
-          <input
-            value={dayId.value}
-            type="number"
-            min="1"
-            max="31"
-            placeholder="jour"
-            class="text-right p-s"
-            onChange={changeDay}
-          />
+          <input value={dayId.value} type="number" min="1" max="31" placeholder="jour" class="text-right p-s" onChange={changeDay} />
         </div>
         <div class="blob-mini-1-3">
           <select value={monthId.value} class="mr-s p-s" onChange={changeMonth}>
@@ -117,17 +84,9 @@ export const InputDate = defineComponent<Props>({
           </select>
         </div>
         <div class="blob-mini-1-3">
-          <input
-            value={yearId.value}
-            type="number"
-            min={yearMin}
-            max={yearMax}
-            placeholder="année"
-            class="text-right p-s"
-            onChange={changeYear}
-          />
+          <input value={yearId.value} type="number" min={yearMin} max={yearMax} placeholder="année" class="text-right p-s" onChange={changeYear} />
         </div>
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/_ui/input-file.vue b/packages/ui/src/components/_ui/input-file.vue
index 9385228e8..55f16e938 100644
--- a/packages/ui/src/components/_ui/input-file.vue
+++ b/packages/ui/src/components/_ui/input-file.vue
@@ -1,12 +1,7 @@
 <template>
   <label v-bind="$attrs">
     Choisir un fichier…
-    <input
-      type="file"
-      class="p-xs mb-0"
-      :accept="accept"
-      @change="$emit('change', $event)"
-    />
+    <input type="file" class="p-xs mb-0" :accept="accept" @change="$emit('change', $event)" />
   </label>
 </template>
 
@@ -17,10 +12,10 @@ export default defineComponent({
   props: {
     accept: {
       type: String,
-      default: ''
-    }
+      default: '',
+    },
   },
 
-  emits: ['change']
+  emits: ['change'],
 })
 </script>
diff --git a/packages/ui/src/components/_ui/input-number.vue b/packages/ui/src/components/_ui/input-number.vue
index 07fc0dc34..12223b35c 100644
--- a/packages/ui/src/components/_ui/input-number.vue
+++ b/packages/ui/src/components/_ui/input-number.vue
@@ -1,11 +1,5 @@
 <template>
-  <input
-    :value="valueFormatted"
-    type="text"
-    pattern="([0-9]{1,3}[\s]?)*([.,][0-9]*)?"
-    class="p-s text-right"
-    @blur="textToNumberFormatFunc($event)"
-  />
+  <input :value="valueFormatted" type="text" pattern="([0-9]{1,3}[\s]?)*([.,][0-9]*)?" class="p-s text-right" @blur="textToNumberFormatFunc($event)" />
 </template>
 
 <script setup lang="ts">
@@ -23,7 +17,7 @@ const props = withDefaults(
   {
     integer: false,
     negative: false,
-    modelValue: undefined
+    modelValue: undefined,
   }
 )
 
@@ -43,7 +37,7 @@ const textToNumberFormatFunc = (event: FocusEvent) => {
   if (isEventWithTarget(event) && event.target !== null) {
     event.target.value = textNumberFormat(event.target.value, {
       negative: props.negative,
-      integer: props.integer
+      integer: props.integer,
     })
 
     const number = textToNumberFormat(event.target.value)
diff --git a/packages/ui/src/components/_ui/list.vue b/packages/ui/src/components/_ui/list.vue
index 8340d2140..ec97a4bee 100644
--- a/packages/ui/src/components/_ui/list.vue
+++ b/packages/ui/src/components/_ui/list.vue
@@ -11,12 +11,12 @@ export default {
   props: {
     elements: {
       type: Array,
-      default: () => []
+      default: () => [],
     },
     mini: {
       type: Boolean,
-      default: false
-    }
-  }
+      default: false,
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_ui/messages.tsx b/packages/ui/src/components/_ui/messages.tsx
index 61a4134c9..b6ffdaa13 100644
--- a/packages/ui/src/components/_ui/messages.tsx
+++ b/packages/ui/src/components/_ui/messages.tsx
@@ -15,5 +15,5 @@ export const Messages = defineComponent<Props>({
         ))}
       </TransitionGroup>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/_ui/pill.stories.ts b/packages/ui/src/components/_ui/pill.stories.ts
index cb00ea5c5..069caae57 100644
--- a/packages/ui/src/components/_ui/pill.stories.ts
+++ b/packages/ui/src/components/_ui/pill.stories.ts
@@ -5,8 +5,8 @@ const meta: Meta = {
   title: 'Components/Ui/Pill',
   component: Pill,
   argTypes: {
-    color: String
-  }
+    color: String,
+  },
 }
 export default meta
 
@@ -15,7 +15,7 @@ const Template: Story<Props> = (args: Props) => ({
   setup() {
     return { args }
   },
-  template: '<Pill v-bind="args">Hello</Pill>'
+  template: '<Pill v-bind="args">Hello</Pill>',
 })
 
 export const Primary = Template.bind({})
@@ -23,6 +23,6 @@ export const Primary = Template.bind({})
 export const Error = Template.bind(
   {},
   {
-    color: 'bg-error'
+    color: 'bg-error',
   }
 )
diff --git a/packages/ui/src/components/_ui/pill.tsx b/packages/ui/src/components/_ui/pill.tsx
index e6981a435..713464692 100644
--- a/packages/ui/src/components/_ui/pill.tsx
+++ b/packages/ui/src/components/_ui/pill.tsx
@@ -9,9 +9,7 @@ export type Props = {
 export const Pill: FunctionalComponent<Props> = (props, context) => {
   return (
     <span class={`cap-first small bold`}>
-      <span class={`${props.color ?? 'bg-neutral'} color-bg pill py-xs px-s`}>
-        {context.slots.default ? context.slots.default() : null}
-      </span>
+      <span class={`${props.color ?? 'bg-neutral'} color-bg pill py-xs px-s`}>{context.slots.default ? context.slots.default() : null}</span>
     </span>
   )
 }
diff --git a/packages/ui/src/components/_ui/popup.vue b/packages/ui/src/components/_ui/popup.vue
index cf6409371..0d7261793 100644
--- a/packages/ui/src/components/_ui/popup.vue
+++ b/packages/ui/src/components/_ui/popup.vue
@@ -19,11 +19,11 @@ export default {
   name: 'UiSystemPopup',
 
   components: {
-    Messages
+    Messages,
   },
 
   props: {
-    messages: { type: Array, default: () => [] }
-  }
+    messages: { type: Array, default: () => [] },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/_ui/pure-loader.stories.ts b/packages/ui/src/components/_ui/pure-loader.stories.ts
index 2fe921c3d..5f064fb9e 100644
--- a/packages/ui/src/components/_ui/pure-loader.stories.ts
+++ b/packages/ui/src/components/_ui/pure-loader.stories.ts
@@ -4,7 +4,7 @@ import { Meta, Story } from '@storybook/vue3'
 const meta: Meta = {
   title: 'Components/UI/Loader',
   component: Loader,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -14,7 +14,7 @@ const Template: Story = () => ({
   <Loader :data="{status: 'LOADING'}" #default="{item}">{{item}}</Loader>
   <Loader :data="{status: 'LOADED', value: 'chargé'}" #default="{item}">La valeur de l’item est : {{item}}</Loader>
   <Loader :data="{status: 'ERROR', message: 'Erreur'}" #default="{item}">{{item}}</Loader>
-</div>`
+</div>`,
 })
 
 export const All = Template.bind({})
diff --git a/packages/ui/src/components/_ui/pure-loader.vue b/packages/ui/src/components/_ui/pure-loader.vue
index add4e83e5..d3720d70d 100644
--- a/packages/ui/src/components/_ui/pure-loader.vue
+++ b/packages/ui/src/components/_ui/pure-loader.vue
@@ -1,12 +1,5 @@
 <template>
-  <div
-    class="top-level"
-    :style="
-      data.status !== 'LOADED'
-        ? { display: 'flex', ['justify-content']: 'center' }
-        : ''
-    "
-  >
+  <div class="top-level" :style="data.status !== 'LOADED' ? { display: 'flex', ['justify-content']: 'center' } : ''">
     <template v-if="data.status === 'LOADED'">
       <slot :item="data.value" />
     </template>
diff --git a/packages/ui/src/components/_ui/table-auto.stories.tsx b/packages/ui/src/components/_ui/table-auto.stories.tsx
index 08787f98a..4eb2c5653 100644
--- a/packages/ui/src/components/_ui/table-auto.stories.tsx
+++ b/packages/ui/src/components/_ui/table-auto.stories.tsx
@@ -9,7 +9,7 @@ import { TableRow } from './table'
 
 const meta: Meta = {
   title: 'Components/UI/Table',
-  component: TableAuto
+  component: TableAuto,
 }
 export default meta
 
@@ -17,26 +17,26 @@ const columns: Column[] = [
   {
     id: 'nom',
     name: 'Nom',
-    class: ['min-width-8']
+    class: ['min-width-8'],
   },
   {
     id: 'domaine',
-    name: ''
+    name: '',
   },
   {
     id: 'type',
     name: 'Type',
-    class: ['min-width-8']
+    class: ['min-width-8'],
   },
   {
     id: 'statut',
     name: 'Statut',
-    class: ['nowrap', 'min-width-5']
+    class: ['nowrap', 'min-width-5'],
   },
   {
     id: 'test',
-    name: 'Test'
-  }
+    name: 'Test',
+  },
 ]
 
 const rows: TableRow[] = [0, 1, 2, 3].map(row => {
@@ -45,52 +45,44 @@ const rows: TableRow[] = [0, 1, 2, 3].map(row => {
     link: {
       name: `elementlink${row}`,
       params: {
-        id: `elementslug${row}`
+        id: `elementslug${row}`,
       },
-      value: `elementslug${row}`
+      value: `elementslug${row}`,
     },
     columns: {
       nom: {
         component: markRaw(TitreNom),
         props: {
-          nom: `220222_${row}`
+          nom: `220222_${row}`,
         },
-        value: `220222_${row}`
+        value: `220222_${row}`,
       },
       domaine: {
         component: markRaw(Domaine),
         props: {
-          domaineId: 'm'
+          domaineId: 'm',
         },
-        value: 'm'
+        value: 'm',
       },
       type: {
         component: markRaw(TitreTypeTypeNom),
         props: { nom: 'Autorisation de recherches' },
-        value: 'Autorisation de recherches'
+        value: 'Autorisation de recherches',
       },
       statut: {
         component: markRaw(Statut),
         props: {
           color: 'warning',
-          nom: `Demande initiale ${row}`
+          nom: `Demande initiale ${row}`,
         },
-        value: `Demande initiale ${row}`
+        value: `Demande initiale ${row}`,
       },
       test: {
-        value: `Test value ${row}`
-      }
-    }
+        value: `Test value ${row}`,
+      },
+    },
   }
 })
 
-export const TableAutoSimple: Story = () => (
-  <TableAuto rows={rows} columns={columns} />
-)
-export const TableAutoSortedByStatusAsc: Story = () => (
-  <TableAuto
-    rows={rows}
-    columns={columns}
-    initialSort={{ column: 'statut', order: 'desc' }}
-  />
-)
+export const TableAutoSimple: Story = () => <TableAuto rows={rows} columns={columns} />
+export const TableAutoSortedByStatusAsc: Story = () => <TableAuto rows={rows} columns={columns} initialSort={{ column: 'statut', order: 'desc' }} />
diff --git a/packages/ui/src/components/_ui/table-auto.tsx b/packages/ui/src/components/_ui/table-auto.tsx
index b6b8e56b7..72c0d964e 100644
--- a/packages/ui/src/components/_ui/table-auto.tsx
+++ b/packages/ui/src/components/_ui/table-auto.tsx
@@ -20,7 +20,7 @@ export const TableAuto = defineComponent<Props>({
   setup(props) {
     const sort = reactive<TableSortEvent>({
       column: props?.initialSort?.column ?? props.columns[0].id,
-      order: props?.initialSort?.order ?? 'asc'
+      order: props?.initialSort?.order ?? 'asc',
     })
     const myRows = reactive<TableRow[]>([...props.rows])
     handleChange(sort)
@@ -67,14 +67,6 @@ export const TableAuto = defineComponent<Props>({
       sort.order = event.order
     }
 
-    return () => (
-      <Table
-        columns={props.columns}
-        rows={myRows}
-        column={sort.column}
-        order={sort.order}
-        update={handleChange}
-      />
-    )
-  }
+    return () => <Table columns={props.columns} rows={myRows} column={sort.column} order={sort.order} update={handleChange} />
+  },
 })
diff --git a/packages/ui/src/components/_ui/table-pagination.stories.tsx b/packages/ui/src/components/_ui/table-pagination.stories.tsx
index 819477e33..b7d09e6da 100644
--- a/packages/ui/src/components/_ui/table-pagination.stories.tsx
+++ b/packages/ui/src/components/_ui/table-pagination.stories.tsx
@@ -10,7 +10,7 @@ import { action } from '@storybook/addon-actions'
 
 const meta: Meta = {
   title: 'Components/UI/Table',
-  component: TablePagination
+  component: TablePagination,
 }
 export default meta
 
@@ -18,26 +18,26 @@ const columns: Column[] = [
   {
     id: 'nom',
     name: 'Nom',
-    class: ['min-width-8']
+    class: ['min-width-8'],
   },
   {
     id: 'domaine',
-    name: ''
+    name: '',
   },
   {
     id: 'type',
     name: 'Type',
-    class: ['min-width-8']
+    class: ['min-width-8'],
   },
   {
     id: 'statut',
     name: 'Statut',
-    class: ['nowrap', 'min-width-5']
+    class: ['nowrap', 'min-width-5'],
   },
   {
     id: 'test',
-    name: 'Test'
-  }
+    name: 'Test',
+  },
 ]
 
 const rows: TableRow[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(row => {
@@ -46,53 +46,44 @@ const rows: TableRow[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(row => {
     link: {
       name: `elementlink${row}`,
       params: {
-        id: `elementslug${row}`
+        id: `elementslug${row}`,
       },
-      value: `elementslug${row}`
+      value: `elementslug${row}`,
     },
     columns: {
       nom: {
         component: markRaw(TitreNom),
         props: {
-          nom: `220222_${row}`
+          nom: `220222_${row}`,
         },
-        value: `220222_${row}`
+        value: `220222_${row}`,
       },
       domaine: {
         component: markRaw(Domaine),
         props: {
-          domaineId: 'm'
+          domaineId: 'm',
         },
-        value: 'm'
+        value: 'm',
       },
       type: {
         component: markRaw(TitreTypeTypeNom),
         props: { nom: 'Autorisation de recherches' },
-        value: 'Autorisation de recherches'
+        value: 'Autorisation de recherches',
       },
       statut: {
         component: markRaw(Statut),
         props: {
           color: 'warning',
-          nom: `Demande initiale ${row}`
+          nom: `Demande initiale ${row}`,
         },
-        value: `Demande initiale ${row}`
+        value: `Demande initiale ${row}`,
       },
       test: {
-        value: `Test value ${row}`
-      }
-    }
+        value: `Test value ${row}`,
+      },
+    },
   }
 })
 
 const paramsUpdate = action('paramsUpdate')
-export const PaginationSimple: Story = () => (
-  <TablePagination
-    rows={rows}
-    columns={columns}
-    total={200}
-    paramsUpdate={paramsUpdate}
-    pagination={true}
-    range={10}
-  />
-)
+export const PaginationSimple: Story = () => <TablePagination rows={rows} columns={columns} total={200} paramsUpdate={paramsUpdate} pagination={true} range={10} />
diff --git a/packages/ui/src/components/_ui/table-pagination.tsx b/packages/ui/src/components/_ui/table-pagination.tsx
index bf063d465..761afecb0 100644
--- a/packages/ui/src/components/_ui/table-pagination.tsx
+++ b/packages/ui/src/components/_ui/table-pagination.tsx
@@ -23,17 +23,7 @@ interface Props {
 }
 
 export const TablePagination = defineComponent<Props>({
-  props: [
-    'columns',
-    'rows',
-    'total',
-    'range',
-    'page',
-    'column',
-    'order',
-    'pagination',
-    'paramsUpdate'
-  ] as unknown as undefined,
+  props: ['columns', 'rows', 'total', 'range', 'page', 'column', 'order', 'pagination', 'paramsUpdate'] as unknown as undefined,
   setup(props) {
     const update = (params: Params | TableSortEvent) => {
       if (!Object.keys(params).includes('page') && pagination.value) {
@@ -72,35 +62,19 @@ export const TablePagination = defineComponent<Props>({
     })
     return () => (
       <div>
-        <Table
-          column={column.value}
-          columns={props.columns}
-          order={order.value}
-          rows={props.rows}
-          class="width-full-p"
-          update={update}
-        />
+        <Table column={column.value} columns={props.columns} order={order.value} rows={props.rows} class="width-full-p" update={update} />
 
         {pagination.value ? (
           <div class="desktop-blobs">
             <div class="desktop-blob-3-4">
-              <Pagination
-                active={page.value}
-                total={pages.value}
-                visibles={5}
-                pageChange={pageUpdate}
-              />
-            </div>
-            <div class="desktop-blob-1-4">
-              {props.total > 10 ? (
-                <Ranges range={range.value} rangeUpdate={rangeUpdate} />
-              ) : null}
+              <Pagination active={page.value} total={pages.value} visibles={5} pageChange={pageUpdate} />
             </div>
+            <div class="desktop-blob-1-4">{props.total > 10 ? <Ranges range={range.value} rangeUpdate={rangeUpdate} /> : null}</div>
           </div>
         ) : null}
       </div>
     )
-  }
+  },
 })
 
 interface RangeProps {
@@ -119,12 +93,7 @@ const Ranges = defineComponent<RangeProps>({
     }
 
     return () => (
-      <Accordion
-        class="mb"
-        opened={opened.value}
-        slotDefault={true}
-        onToggle={toggle}
-      >
+      <Accordion class="mb" opened={opened.value} slotDefault={true} onToggle={toggle}>
         {{
           title: () => <span> Éléments </span>,
           default: () => (
@@ -151,11 +120,11 @@ const Ranges = defineComponent<RangeProps>({
                 </li>
               ))}
             </ul>
-          )
+          ),
         }}
       </Accordion>
     )
-  }
+  },
 })
 
 interface PaginationProps {
@@ -193,20 +162,12 @@ const Pagination: FunctionalComponent<PaginationProps> = props => {
   return (
     <ul class="list-inline">
       <li class="mr-xs">
-        <button
-          disabled={active === 1}
-          class="btn-border rnd-xs px-m py-s"
-          onClick={() => props.pageChange(1)}
-        >
+        <button disabled={active === 1} class="btn-border rnd-xs px-m py-s" onClick={() => props.pageChange(1)}>
           «
         </button>
       </li>
       <li class="mr-xs">
-        <button
-          disabled={active === 1}
-          class="btn-border rnd-xs px-m py-s"
-          onClick={() => props.pageChange(active - 1)}
-        >
+        <button disabled={active === 1} class="btn-border rnd-xs px-m py-s" onClick={() => props.pageChange(active - 1)}>
           ‹
         </button>
       </li>
@@ -218,10 +179,7 @@ const Pagination: FunctionalComponent<PaginationProps> = props => {
 
       {pages().map(page => (
         <li key={page} class={`mr-xs ${active === page ? 'active' : ''}`}>
-          <button
-            class="btn-border rnd-xs px-m py-s"
-            onClick={() => props.pageChange(page)}
-          >
+          <button class="btn-border rnd-xs px-m py-s" onClick={() => props.pageChange(page)}>
             {page}
           </button>
         </li>
@@ -234,20 +192,12 @@ const Pagination: FunctionalComponent<PaginationProps> = props => {
       ) : null}
 
       <li class="mr-xs">
-        <button
-          disabled={active === total}
-          class="btn-border rnd-xs px-m py-s"
-          onClick={() => props.pageChange(active + 1)}
-        >
+        <button disabled={active === total} class="btn-border rnd-xs px-m py-s" onClick={() => props.pageChange(active + 1)}>
           ›
         </button>
       </li>
       <li class="mr-xs">
-        <button
-          disabled={active === total}
-          class="btn-border rnd-xs px-m py-s"
-          onClick={() => props.pageChange(total)}
-        >
+        <button disabled={active === total} class="btn-border rnd-xs px-m py-s" onClick={() => props.pageChange(total)}>
           »
         </button>
       </li>
diff --git a/packages/ui/src/components/_ui/table.stories.tsx b/packages/ui/src/components/_ui/table.stories.tsx
index 6b3631ba5..2cd588863 100644
--- a/packages/ui/src/components/_ui/table.stories.tsx
+++ b/packages/ui/src/components/_ui/table.stories.tsx
@@ -9,7 +9,7 @@ import { action } from '@storybook/addon-actions'
 
 const meta: Meta = {
   title: 'Components/UI/Table',
-  component: Table
+  component: Table,
 }
 export default meta
 
@@ -17,26 +17,26 @@ const columns: Column[] = [
   {
     id: 'nom',
     name: 'Nom',
-    class: ['min-width-8']
+    class: ['min-width-8'],
   },
   {
     id: 'domaine',
-    name: ''
+    name: '',
   },
   {
     id: 'type',
     name: 'Type',
-    class: ['min-width-8']
+    class: ['min-width-8'],
   },
   {
     id: 'statut',
     name: 'Statut',
-    class: ['nowrap', 'min-width-5']
+    class: ['nowrap', 'min-width-5'],
   },
   {
     id: 'test',
-    name: 'Test'
-  }
+    name: 'Test',
+  },
 ]
 
 const rows: TableRow[] = [0, 1, 2, 3].map(row => {
@@ -45,52 +45,44 @@ const rows: TableRow[] = [0, 1, 2, 3].map(row => {
     link: {
       name: `elementlink${row}`,
       params: {
-        id: `elementslug${row}`
+        id: `elementslug${row}`,
       },
-      value: `elementslug${row}`
+      value: `elementslug${row}`,
     },
     columns: {
       nom: {
         component: markRaw(TitreNom),
         props: {
-          nom: `220222_${row}`
+          nom: `220222_${row}`,
         },
-        value: `220222_${row}`
+        value: `220222_${row}`,
       },
       domaine: {
         component: markRaw(Domaine),
         props: {
-          domaineId: 'm'
+          domaineId: 'm',
         },
-        value: 'm'
+        value: 'm',
       },
       type: {
         component: markRaw(TitreTypeTypeNom),
         props: { nom: 'Autorisation de recherches' },
-        value: 'Autorisation de recherches'
+        value: 'Autorisation de recherches',
       },
       statut: {
         component: markRaw(Statut),
         props: {
           color: 'warning',
-          nom: `Demande initiale ${row}`
+          nom: `Demande initiale ${row}`,
         },
-        value: `Demande initiale ${row}`
+        value: `Demande initiale ${row}`,
       },
       test: {
-        value: `Test value ${row}`
-      }
-    }
+        value: `Test value ${row}`,
+      },
+    },
   }
 })
 
 const update = action('update')
-export const Simple: Story = () => (
-  <Table
-    rows={rows}
-    columns={columns}
-    column="nom"
-    order="asc"
-    update={update}
-  />
-)
+export const Simple: Story = () => <Table rows={rows} columns={columns} column="nom" order="asc" update={update} />
diff --git a/packages/ui/src/components/_ui/table.tsx b/packages/ui/src/components/_ui/table.tsx
index ab73741a6..cb145d246 100644
--- a/packages/ui/src/components/_ui/table.tsx
+++ b/packages/ui/src/components/_ui/table.tsx
@@ -45,9 +45,7 @@ export interface Column<T = string> {
   noSort?: boolean
 }
 
-export const isComponentColumnData = (
-  columnRow: ComponentColumnData | TextColumnData
-): columnRow is ComponentColumnData => {
+export const isComponentColumnData = (columnRow: ComponentColumnData | TextColumnData): columnRow is ComponentColumnData => {
   return 'component' in columnRow
 }
 
@@ -60,13 +58,7 @@ interface Props {
 }
 
 export const Table = defineComponent<Props>({
-  props: [
-    'columns',
-    'rows',
-    'update',
-    'column',
-    'order'
-  ] as unknown as undefined,
+  props: ['columns', 'rows', 'update', 'column', 'order'] as unknown as undefined,
   setup(props) {
     const sort = (colId: Props['column']) => {
       if (!props.columns.find(c => c.id === colId)?.noSort) {
@@ -80,10 +72,7 @@ export const Table = defineComponent<Props>({
     }
 
     const columnInit = () => {
-      if (
-        props.rows.length &&
-        !props.columns.some(c => c.id === props.column)
-      ) {
+      if (props.rows.length && !props.columns.some(c => c.id === props.column)) {
         sort(props.columns[0].id)
       }
     }
@@ -101,37 +90,17 @@ export const Table = defineComponent<Props>({
           <div class="table">
             <div class="tr">
               {props.columns.map(col => (
-                <div
-                  key={col.id}
-                  class={`th nowrap ${(col.class ?? []).join(' ')}`}
-                  onClick={() => sort(col.id)}
-                >
-                  <button
-                    class={`btn-menu full-x p-0${
-                      col.noSort ? ' disabled' : ''
-                    }`}
-                  >
+                <div key={col.id} class={`th nowrap ${(col.class ?? []).join(' ')}`} onClick={() => sort(col.id)}>
+                  <button class={`btn-menu full-x p-0${col.noSort ? ' disabled' : ''}`}>
                     {col.name || (props.column === col.id ? '' : '–')}
-                    {!col.noSort && props.column === col.id ? (
-                      <Icon
-                        class="right"
-                        size="M"
-                        name={
-                          props.order === 'asc' ? 'chevron-bas' : 'chevron-haut'
-                        }
-                      />
-                    ) : null}
+                    {!col.noSort && props.column === col.id ? <Icon class="right" size="M" name={props.order === 'asc' ? 'chevron-bas' : 'chevron-haut'} /> : null}
                   </button>
                 </div>
               ))}
             </div>
 
             {props.rows.map(row => (
-              <router-link
-                key={row.id}
-                to={row.link}
-                class="tr tr-link text-decoration-none"
-              >
+              <router-link key={row.id} to={row.link} class="tr tr-link text-decoration-none">
                 {props.columns.map(col => (
                   <div key={col.id} class={`td ${(col.class ?? []).join(' ')}`}>
                     <DisplayColumn data={row.columns[col.id]} />
@@ -143,12 +112,10 @@ export const Table = defineComponent<Props>({
         </div>
       </div>
     )
-  }
+  },
 })
 
-const DisplayColumn = (props: {
-  data: ComponentColumnData | TextColumnData
-}): JSX.Element => {
+const DisplayColumn = (props: { data: ComponentColumnData | TextColumnData }): JSX.Element => {
   if (isComponentColumnData(props.data)) {
     const myComp = props.data.component
 
@@ -162,9 +129,5 @@ const DisplayColumn = (props: {
       return <myComp {...props.data.props} class={props.data.class ?? ''} />
     }
   }
-  return (
-    <span class={(props.data.class ?? []).join(' ') ?? ''}>
-      {props.data.value}
-    </span>
-  )
+  return <span class={(props.data.class ?? []).join(' ') ?? ''}>{props.data.value}</span>
 }
diff --git a/packages/ui/src/components/_ui/tag.stories.tsx b/packages/ui/src/components/_ui/tag.stories.tsx
index 3a8bb72ef..70092b112 100644
--- a/packages/ui/src/components/_ui/tag.stories.tsx
+++ b/packages/ui/src/components/_ui/tag.stories.tsx
@@ -3,7 +3,7 @@ import { Meta, StoryFn } from '@storybook/vue3'
 
 const meta: Meta = {
   title: 'Components/UI/Tag',
-  component: Tag
+  component: Tag,
 }
 export default meta
 
diff --git a/packages/ui/src/components/_ui/typeahead.stories.tsx b/packages/ui/src/components/_ui/typeahead.stories.tsx
index 162e235dd..05525e6e4 100644
--- a/packages/ui/src/components/_ui/typeahead.stories.tsx
+++ b/packages/ui/src/components/_ui/typeahead.stories.tsx
@@ -4,7 +4,7 @@ import { action } from '@storybook/addon-actions'
 
 const meta: Meta = {
   title: 'Components/UI/TypeAhead',
-  component: TypeAhead
+  component: TypeAhead,
 }
 export default meta
 
@@ -17,7 +17,7 @@ const onInput = action('onInput')
 const items: Item[] = [
   { id: 'id1', titre: 'titreItem1' },
   { id: 'id2', titre: 'titreItem2' },
-  { id: 'id3', titre: 'titreItem3' }
+  { id: 'id3', titre: 'titreItem3' },
 ]
 
 export const Single: Story = () => (
@@ -54,7 +54,7 @@ export const Multiple: Story = () => (
       { id: 'idTitreItem12', titre: 'titreItem12' },
       { id: 'idTitreItem13', titre: 'titreItem13' },
       { id: 'idTitreItem14', titre: 'titreItem14' },
-      { id: 'idTitreItem15', titre: 'titreItem15' }
+      { id: 'idTitreItem15', titre: 'titreItem15' },
     ]}
     placeholder="placeholder"
     minInputLength={3}
@@ -85,16 +85,12 @@ export const MultipleWithInitialItems: Story = () => (
       { id: 'idTitreItem12', titre: 'titreItem12' },
       { id: 'idTitreItem13', titre: 'titreItem13' },
       { id: 'idTitreItem14', titre: 'titreItem14' },
-      { id: 'idTitreItem15', titre: 'titreItem15' }
+      { id: 'idTitreItem15', titre: 'titreItem15' },
     ]}
     placeholder="placeholder"
     minInputLength={3}
     type="multiple"
-    overrideItems={[
-      { id: 'idTitreItem1' },
-      { id: 'idTitreItemNotInItems' },
-      { id: 'idTitreItem2' }
-    ]}
+    overrideItems={[{ id: 'idTitreItem1' }, { id: 'idTitreItemNotInItems' }, { id: 'idTitreItem2' }]}
     itemChipLabel={item => item.titre}
     onInput={onInput}
     onSelectItem={selectItem}
diff --git a/packages/ui/src/components/_ui/typeahead.tsx b/packages/ui/src/components/_ui/typeahead.tsx
index 7d61b8b99..5a2f8c019 100644
--- a/packages/ui/src/components/_ui/typeahead.tsx
+++ b/packages/ui/src/components/_ui/typeahead.tsx
@@ -35,44 +35,28 @@ const GenericTypeAhead = <T extends TypeAheadRecord, K extends keyof T>() =>
       'displayItemInList',
       'onSelectItem',
       'onSelectItems',
-      'onInput'
+      'onInput',
     ] as unknown as undefined,
     setup(props) {
       const id = props.id ?? `typeahead_${(Math.random() * 1000).toFixed()}`
       const wrapperId = computed(() => `${id}_wrapper`)
-      const getItems = (items: (Pick<T, K> & Partial<Omit<T, K>>)[]): T[] =>
-        items
-          .map(o =>
-            props.items.find(i => i[props.itemKey] === o[props.itemKey])
-          )
-          .filter(isNotNullNorUndefined)
-      const selectedItems = ref<T[]>(
-        getItems(props.overrideItems ?? [])
-      ) as Ref<T[]>
+      const getItems = (items: (Pick<T, K> & Partial<Omit<T, K>>)[]): T[] => items.map(o => props.items.find(i => i[props.itemKey] === o[props.itemKey])).filter(isNotNullNorUndefined)
+      const selectedItems = ref<T[]>(getItems(props.overrideItems ?? [])) as Ref<T[]>
 
-      const input = ref<string>(
-        props.type === 'single' && props.overrideItems?.length
-          ? props.itemChipLabel(getItems(props.overrideItems)[0])
-          : ''
-      )
+      const input = ref<string>(props.type === 'single' && props.overrideItems?.length ? props.itemChipLabel(getItems(props.overrideItems)[0]) : '')
 
       watch(
         () => props.overrideItems,
         newItems => {
           selectedItems.value = getItems(newItems ?? [])
-          input.value =
-            props.type === 'single' && newItems?.length
-              ? props.itemChipLabel(getItems(newItems)[0])
-              : ''
+          input.value = props.type === 'single' && newItems?.length ? props.itemChipLabel(getItems(newItems)[0]) : ''
         },
         { deep: true }
       )
 
       const unselectItem = (item: T) => {
         const itemKey = item[props.itemKey]
-        selectedItems.value = selectedItems.value.filter(
-          i => i[props.itemKey] !== itemKey
-        )
+        selectedItems.value = selectedItems.value.filter(i => i[props.itemKey] !== itemKey)
         props.onSelectItems?.(selectedItems.value)
         props.onSelectItem?.(undefined)
       }
@@ -80,17 +64,10 @@ const GenericTypeAhead = <T extends TypeAheadRecord, K extends keyof T>() =>
       const currentSelectionIndex = ref<number>(0)
 
       const isListVisible = computed(() => {
-        return (
-          isInputFocused.value &&
-          input.value.length >= props.minInputLength &&
-          props.items.length
-        )
+        return isInputFocused.value && input.value.length >= props.minInputLength && props.items.length
       })
       const onInput = (payload: Event) => {
-        if (
-          isListVisible.value &&
-          currentSelectionIndex.value >= props.items.length
-        ) {
+        if (isListVisible.value && currentSelectionIndex.value >= props.items.length) {
           currentSelectionIndex.value = (props.items.length || 1) - 1
         }
         if (isEventWithTarget(payload)) {
@@ -101,27 +78,14 @@ const GenericTypeAhead = <T extends TypeAheadRecord, K extends keyof T>() =>
 
       const scrollSelectionIntoView = () => {
         setTimeout(() => {
-          const listNode = document.querySelector<HTMLElement>(
-            `#${wrapperId.value} .${styles['typeahead-list']}`
-          )
-          const activeNode = document.querySelector<HTMLElement>(
-            `#${wrapperId.value} .${styles['typeahead-list-item']}.${styles['typeahead-list-item-active']}`
-          )
+          const listNode = document.querySelector<HTMLElement>(`#${wrapperId.value} .${styles['typeahead-list']}`)
+          const activeNode = document.querySelector<HTMLElement>(`#${wrapperId.value} .${styles['typeahead-list-item']}.${styles['typeahead-list-item-active']}`)
 
           if (listNode && activeNode) {
-            if (
-              !(
-                activeNode.offsetTop >= listNode.scrollTop &&
-                activeNode.offsetTop + activeNode.offsetHeight <
-                  listNode.scrollTop + listNode.offsetHeight
-              )
-            ) {
+            if (!(activeNode.offsetTop >= listNode.scrollTop && activeNode.offsetTop + activeNode.offsetHeight < listNode.scrollTop + listNode.offsetHeight)) {
               let scrollTo = 0
               if (activeNode.offsetTop > listNode.scrollTop) {
-                scrollTo =
-                  activeNode.offsetTop +
-                  activeNode.offsetHeight -
-                  listNode.offsetHeight
+                scrollTo = activeNode.offsetTop + activeNode.offsetHeight - listNode.offsetHeight
               } else if (activeNode.offsetTop < listNode.scrollTop) {
                 scrollTo = activeNode.offsetTop
               }
@@ -133,10 +97,7 @@ const GenericTypeAhead = <T extends TypeAheadRecord, K extends keyof T>() =>
       }
 
       const onArrowDown = () => {
-        if (
-          isListVisible.value &&
-          currentSelectionIndex.value < props.items.length - 1
-        ) {
+        if (isListVisible.value && currentSelectionIndex.value < props.items.length - 1) {
           currentSelectionIndex.value++
         }
         scrollSelectionIntoView()
@@ -155,15 +116,10 @@ const GenericTypeAhead = <T extends TypeAheadRecord, K extends keyof T>() =>
       }
       const notSelectedItems = computed(() => {
         const selectItemKeys = selectedItems.value.map(i => i[props.itemKey])
-        return props.items.filter(
-          item => !selectItemKeys.includes(item[props.itemKey])
-        )
+        return props.items.filter(item => !selectItemKeys.includes(item[props.itemKey]))
       })
       const currentSelection = computed(() => {
-        return isListVisible.value &&
-          currentSelectionIndex.value < notSelectedItems.value.length
-          ? notSelectedItems.value[currentSelectionIndex.value]
-          : undefined
+        return isListVisible.value && currentSelectionIndex.value < notSelectedItems.value.length ? notSelectedItems.value[currentSelectionIndex.value] : undefined
       })
       const selectItem = (item: T) => {
         if (props.type === 'multiple') {
@@ -201,14 +157,7 @@ const GenericTypeAhead = <T extends TypeAheadRecord, K extends keyof T>() =>
             {props.type === 'multiple' ? (
               <>
                 {selectedItems.value.map(item => {
-                  return (
-                    <Chip
-                      key={item[props.itemKey]}
-                      nom={props.itemChipLabel(item)}
-                      class="mr-xs mb-xs mt-xs"
-                      onDeleteClicked={() => unselectItem(item)}
-                    />
-                  )
+                  return <Chip key={item[props.itemKey]} nom={props.itemChipLabel(item)} class="mr-xs mb-xs mt-xs" onDeleteClicked={() => unselectItem(item)} />
                 })}
               </>
             ) : null}
@@ -251,20 +200,12 @@ const GenericTypeAhead = <T extends TypeAheadRecord, K extends keyof T>() =>
                 return (
                   <div
                     key={index}
-                    class={`${styles['typeahead-list-item']} ${
-                      currentSelectionIndex.value === index
-                        ? styles['typeahead-list-item-active']
-                        : ''
-                    }`}
+                    class={`${styles['typeahead-list-item']} ${currentSelectionIndex.value === index ? styles['typeahead-list-item-active'] : ''}`}
                     onMousedown={payload => payload.preventDefault()}
                     onClick={() => selectItem(item)}
                     onMouseenter={() => (currentSelectionIndex.value = index)}
                   >
-                    <span>
-                      {props.displayItemInList
-                        ? props.displayItemInList(item)
-                        : props.itemChipLabel(item)}
-                    </span>
+                    <span>{props.displayItemInList ? props.displayItemInList(item) : props.itemChipLabel(item)}</span>
                   </div>
                 )
               })}
@@ -272,13 +213,11 @@ const GenericTypeAhead = <T extends TypeAheadRecord, K extends keyof T>() =>
           ) : null}
         </div>
       )
-    }
+    },
   })
 
 const HiddenTypeAhead = GenericTypeAhead()
-export const TypeAhead = <T extends TypeAheadRecord, K extends keyof T>(
-  props: Props<T, K>
-): JSX.Element => {
+export const TypeAhead = <T extends TypeAheadRecord, K extends keyof T>(props: Props<T, K>): JSX.Element => {
   return (
     <HiddenTypeAhead
       id={props.id}
diff --git a/packages/ui/src/components/activite-edition.vue b/packages/ui/src/components/activite-edition.vue
index 93dc3d75f..c391f2969 100644
--- a/packages/ui/src/components/activite-edition.vue
+++ b/packages/ui/src/components/activite-edition.vue
@@ -4,20 +4,14 @@
     <Loader v-if="!loaded" />
     <div v-else>
       <h6>
-        <router-link
-          :to="{ name: 'titre', params: { id: activite.titre.slug } }"
-          class="cap-first"
-        >
+        <router-link :to="{ name: 'titre', params: { id: activite.titre.slug } }" class="cap-first">
           {{ activite.titre.nom }}
         </router-link>
       </h6>
       <h5>
         {{ dateFormat(activite.date) }} |
         <span class="cap-first"
-          ><span v-if="activite.periodeId && activite.type.frequenceId"
-            >{{ getPeriodeVue(activite.type.frequenceId, activite.periodeId) }}
-          </span>
-          {{ activite.annee }}</span
+          ><span v-if="activite.periodeId && activite.type.frequenceId">{{ getPeriodeVue(activite.type.frequenceId, activite.periodeId) }} </span> {{ activite.annee }}</span
         >
       </h5>
 
@@ -26,46 +20,22 @@
           <span class="cap-first">{{ activite.type.nom }}</span>
         </h3>
 
-        <HelpTooltip
-          v-if="shouldDisplayHelp"
-          text="Tous les champs doivent être remplis même s’il n’y a pas eu d’extraction. Le cas échéant, indiquer seulement 0, puis enregistrer."
-          class="ml-m"
-        />
+        <HelpTooltip v-if="shouldDisplayHelp" text="Tous les champs doivent être remplis même s’il n’y a pas eu d’extraction. Le cas échéant, indiquer seulement 0, puis enregistrer." class="ml-m" />
       </div>
 
       <!-- eslint-disable vue/no-v-html -->
-      <div
-        v-if="activite.type.description"
-        class="h6"
-        v-html="activite.type.description"
-      />
+      <div v-if="activite.type.description" class="h6" v-html="activite.type.description" />
 
       <div class="p-s bg-info color-bg mb">
         Besoin d'aide pour remplir ce rapport ?
-        <router-link
-          to="/contacts"
-          target="_blank"
-          class="p-s bg-info color-bg mb"
-          >Contactez-nous
-        </router-link>
+        <router-link to="/contacts" target="_blank" class="p-s bg-info color-bg mb">Contactez-nous </router-link>
       </div>
       <div v-if="shouldDisplayFiscaliteHelp" class="p-s bg-info color-bg mb">
-        Les données déclarées sur Camino/Activités permettent de calculer une
-        estimation de votre fiscalité minière, consultable sur
-        <router-link
-          :to="entrepriseUrl"
-          target="_blank"
-          class="bg-info color-bg mb"
-          >votre page entreprise
-        </router-link>
+        Les données déclarées sur Camino/Activités permettent de calculer une estimation de votre fiscalité minière, consultable sur
+        <router-link :to="entrepriseUrl" target="_blank" class="bg-info color-bg mb">votre page entreprise </router-link>
       </div>
 
-      <SectionsEdit
-        :contenu="activite.contenu"
-        :sections="activite.sections"
-        @contenu-update="activite.contenu = $event"
-        @complete-update="sectionsComplete = $event"
-      />
+      <SectionsEdit :contenu="activite.contenu" :sections="activite.sections" @contenu-update="activite.contenu = $event" @complete-update="sectionsComplete = $event" />
 
       <DocumentsEdit
         v-model:documents="activite.documents"
@@ -84,14 +54,7 @@
           <button class="btn btn-secondary" @click="save">Enregistrer</button>
         </div>
         <div class="tablet-blob-1-3">
-          <button
-            ref="save-button"
-            class="btn btn-primary"
-            :disabled="!sectionsComplete || !documentsComplete"
-            @click="activiteDepotPopupOpen"
-          >
-            Enregistrer et déposer
-          </button>
+          <button ref="save-button" class="btn btn-primary" :disabled="!sectionsComplete || !documentsComplete" @click="activiteDepotPopupOpen">Enregistrer et déposer</button>
         </div>
       </div>
     </div>
@@ -115,7 +78,7 @@ export default {
     return {
       events: { saveKeyUp: true },
       documentsComplete: false,
-      sectionsComplete: false
+      sectionsComplete: false,
     }
   },
 
@@ -148,10 +111,7 @@ export default {
       return !!this.$store.state.popup.component
     },
     shouldDisplayFiscaliteHelp() {
-      return (
-        ['grp', 'gra', 'grx'].includes(this.activite.type.id) &&
-        this.entrepriseUrl !== null
-      )
+      return ['grp', 'gra', 'grx'].includes(this.activite.type.id) && this.entrepriseUrl !== null
     },
     entrepriseUrl() {
       let entreprise = null
@@ -160,17 +120,15 @@ export default {
       } else if (this.activite.titre.titulaires.length === 1) {
         entreprise = this.activite.titre.titulaires[0]
       } else {
-        console.warn(
-          `l'activité ${this.activite.id} du titre ${this.activite.titre.slug} possède plusieurs titulaires`
-        )
+        console.warn(`l'activité ${this.activite.id} du titre ${this.activite.titre.slug} possède plusieurs titulaires`)
       }
 
       return entreprise !== null ? `/entreprises/${entreprise.id}` : null
-    }
+    },
   },
 
   watch: {
-    user: 'init'
+    user: 'init',
   },
 
   async created() {
@@ -204,10 +162,10 @@ export default {
               this.eventTrack({
                 categorie: 'titre-activite',
                 action: 'titre-activite_depot',
-                nom: this.$route.params.id
+                nom: this.$route.params.id,
               })
-            }
-          }
+            },
+          },
         })
       }
     },
@@ -221,7 +179,7 @@ export default {
       this.eventTrack({
         categorie: 'activite',
         action: 'activite-enregistrer',
-        nom: this.activite.nom
+        nom: this.activite.nom,
       })
 
       await router.back()
@@ -234,12 +192,7 @@ export default {
     },
 
     keyUp(e) {
-      if (
-        (e.which || e.keyCode) === 13 &&
-        this.events.saveKeyUp &&
-        !this.isPopupOpen &&
-        !this.loading
-      ) {
+      if ((e.which || e.keyCode) === 13 && this.events.saveKeyUp && !this.isPopupOpen && !this.loading) {
         this.$refs['save-button'].focus()
         this.save()
       }
@@ -247,7 +200,7 @@ export default {
 
     dateFormat(date) {
       return dateFormat(date)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/activite.vue b/packages/ui/src/components/activite.vue
index 0e0248ec9..a2287d352 100644
--- a/packages/ui/src/components/activite.vue
+++ b/packages/ui/src/components/activite.vue
@@ -4,21 +4,12 @@
     <Loader v-if="!loaded" />
     <div v-else>
       <h6>
-        <router-link
-          :to="{ name: 'titre', params: { id: activite.titre.slug } }"
-          class="cap-first"
-        >
+        <router-link :to="{ name: 'titre', params: { id: activite.titre.slug } }" class="cap-first">
           {{ activite.titre.nom }}
         </router-link>
       </h6>
 
-      <Preview
-        :key="activite.id"
-        :activite="activite"
-        :route="route"
-        :initialOpened="true"
-        class="mb"
-      />
+      <Preview :key="activite.id" :activite="activite" :route="route" :initialOpened="true" class="mb" />
     </div>
   </div>
 </template>
@@ -45,7 +36,7 @@ export default {
 
     route() {
       return { name: 'titreActivite', id: this.activite.slug }
-    }
+    },
   },
 
   watch: {
@@ -55,7 +46,7 @@ export default {
       }
     },
 
-    user: 'get'
+    user: 'get',
   },
 
   created() {
@@ -69,7 +60,7 @@ export default {
   methods: {
     async get() {
       await this.$store.dispatch('titreActivite/get', this.$route.params.id)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/activite/button.vue b/packages/ui/src/components/activite/button.vue
index 25c2c6d12..d6592a18d 100644
--- a/packages/ui/src/components/activite/button.vue
+++ b/packages/ui/src/components/activite/button.vue
@@ -3,7 +3,7 @@
     <button
       class="cmn-activite-btn-remplir btn small flex py-s px-m rnd-0 mr-px"
       :class="{
-        'btn-primary': activite.activiteStatutId !== 'enc' && buttonText
+        'btn-primary': activite.activiteStatutId !== 'enc' && buttonText,
       }"
       @click="activiteEditPopupOpen"
     >
@@ -31,7 +31,7 @@ import { Icon } from '@/components/_ui/icon'
 export default {
   components: { Icon },
   props: {
-    activite: { type: Object, default: () => ({}) }
+    activite: { type: Object, default: () => ({}) },
   },
 
   computed: {
@@ -39,10 +39,8 @@ export default {
       if (this.activite.deposable || this.activite.activiteStatutId === 'dep') {
         return null
       }
-      return this.activite.activiteStatutId === 'abs'
-        ? 'Remplir…'
-        : 'Compléter…'
-    }
+      return this.activite.activiteStatutId === 'abs' ? 'Remplir…' : 'Compléter…'
+    },
   },
 
   methods: {
@@ -51,15 +49,14 @@ export default {
         component: DeposePopup,
         props: {
           activite: this.activite,
-          onDepotDone: () =>
-            this.$store.dispatch(`titreActivite/get`, this.activite.id)
-        }
+          onDepotDone: () => this.$store.dispatch(`titreActivite/get`, this.activite.id),
+        },
       })
 
       this.eventTrack({
         categorie: 'titre-activite',
         action: 'titre-activite_depot',
-        nom: this.$route.params.id
+        nom: this.$route.params.id,
       })
     },
 
@@ -72,9 +69,9 @@ export default {
     activiteEditPopupOpen() {
       this.$router.push({
         name: 'activite-edition',
-        params: { id: this.activite.slug }
+        params: { id: this.activite.slug },
       })
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/activite/depose-popup.vue b/packages/ui/src/components/activite/depose-popup.vue
index 0cdb28158..f3602181d 100644
--- a/packages/ui/src/components/activite/depose-popup.vue
+++ b/packages/ui/src/components/activite/depose-popup.vue
@@ -15,7 +15,7 @@ const store = useStore()
 
 const depose = async () => {
   await store.dispatch('titreActivite/depose', {
-    id: props.activite.id
+    id: props.activite.id,
   })
   props.onDepotDone()
 }
diff --git a/packages/ui/src/components/activite/preview.stories.ts b/packages/ui/src/components/activite/preview.stories.ts
index 8f485e6f9..f1c0e41cf 100644
--- a/packages/ui/src/components/activite/preview.stories.ts
+++ b/packages/ui/src/components/activite/preview.stories.ts
@@ -6,7 +6,7 @@ import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts
 
 const meta: Meta = {
   title: 'Components/Activite/Preview',
-  component: Preview
+  component: Preview,
 }
 export default meta
 
@@ -21,7 +21,7 @@ const Template: Story<Props> = (args: Props) => ({
   setup() {
     return { args }
   },
-  template: '<Preview v-bind="args" />'
+  template: '<Preview v-bind="args" />',
 })
 
 const activite: Activite = {
@@ -34,7 +34,7 @@ const activite: Activite = {
     id: 'gra',
     nom: 'Gra',
     frequenceId: 'ann',
-    description: 'description du type'
+    description: 'description du type',
   },
   activiteStatutId: ACTIVITES_STATUTS_IDS.CLOTURE,
   deposable: false,
@@ -42,7 +42,7 @@ const activite: Activite = {
   periodeId: 1,
   documents: [],
   sections: [],
-  contenu: {}
+  contenu: {},
 }
 
 export const OuvertParDefaut = Template.bind(
@@ -50,7 +50,7 @@ export const OuvertParDefaut = Template.bind(
   {
     activite,
     route: 'fakeRoute',
-    initialOpened: true
+    initialOpened: true,
   }
 )
 
@@ -59,7 +59,7 @@ export const FermeParDefaut = Template.bind(
   {
     activite,
     route: 'fakeRoute',
-    initialOpened: false
+    initialOpened: false,
   }
 )
 
@@ -70,10 +70,10 @@ export const AideVisible = Template.bind(
       ...activite,
       deposable: true,
       modification: true,
-      activiteStatutId: ACTIVITES_STATUTS_IDS.EN_CONSTRUCTION
+      activiteStatutId: ACTIVITES_STATUTS_IDS.EN_CONSTRUCTION,
     },
     route: 'fakeRoute',
-    initialOpened: false
+    initialOpened: false,
   }
 )
 
@@ -84,10 +84,10 @@ export const ACompleter = Template.bind(
       ...activite,
       deposable: false,
       modification: true,
-      activiteStatutId: ACTIVITES_STATUTS_IDS.EN_CONSTRUCTION
+      activiteStatutId: ACTIVITES_STATUTS_IDS.EN_CONSTRUCTION,
     },
     route: 'fakeRoute',
-    initialOpened: false
+    initialOpened: false,
   }
 )
 
@@ -99,9 +99,9 @@ export const Supprimable = Template.bind(
       suppression: true,
       deposable: false,
       modification: true,
-      activiteStatutId: ACTIVITES_STATUTS_IDS.EN_CONSTRUCTION
+      activiteStatutId: ACTIVITES_STATUTS_IDS.EN_CONSTRUCTION,
     },
     route: 'fakeRoute',
-    initialOpened: false
+    initialOpened: false,
   }
 )
diff --git a/packages/ui/src/components/activite/preview.vue b/packages/ui/src/components/activite/preview.vue
index fbac6c17c..b3b4ca3b8 100644
--- a/packages/ui/src/components/activite/preview.vue
+++ b/packages/ui/src/components/activite/preview.vue
@@ -1,40 +1,21 @@
 <template>
-  <Accordion
-    :opened="opened"
-    sub="true"
-    :slotDefault="true"
-    :slotButtons="true"
-    @close="close"
-    @toggle="toggle"
-  >
+  <Accordion :opened="opened" sub="true" :slotDefault="true" :slotButtons="true" @close="close" @toggle="toggle">
     <template #title>
       <h5>
         <span class="cap-first"
-          ><span v-if="activite.periodeId && activite.type.frequenceId">{{
-            getPeriode(activite.type.frequenceId, activite.periodeId)
-          }}</span>
-          {{ activite.annee }}</span
+          ><span v-if="activite.periodeId && activite.type.frequenceId">{{ getPeriode(activite.type.frequenceId, activite.periodeId) }}</span> {{ activite.annee }}</span
         >
       </h5>
       <div class="flex">
         <h3 class="mb-s">
           <span class="cap-first">{{ activite.type.nom }}</span>
         </h3>
-        <HelpTooltip
-          v-if="shouldDisplayHelp"
-          text="Si votre déclaration est complète, cliquez sur déposer. Cliquez sur le crayon pour modifier."
-          class="ml-m"
-        />
+        <HelpTooltip v-if="shouldDisplayHelp" text="Si votre déclaration est complète, cliquez sur déposer. Cliquez sur le crayon pour modifier." class="ml-m" />
       </div>
       <Statut :color="activiteStatut.couleur" :nom="statutNom" class="mb-xs" />
     </template>
     <template #buttons>
-      <button
-        v-if="activite.suppression"
-        class="cmn-activite-btn-supprimer btn small py-s px-m flex mr-px"
-        title="supprimer l'activité'"
-        @click="activiteRemovePopupOpen"
-      >
+      <button v-if="activite.suppression" class="cmn-activite-btn-supprimer btn small py-s px-m flex mr-px" title="supprimer l'activité'" @click="activiteRemovePopupOpen">
         <Icon size="M" name="delete" />
       </button>
       <ActiviteButton v-if="activite.modification" :activite="activite" />
@@ -53,14 +34,7 @@
         <p>{{ dateFormat(activite.dateSaisie) }}</p>
       </div>
 
-      <UiSection
-        v-for="s in activite.sections"
-        :key="s.id"
-        class="border-b-s px-m pt-m"
-        :section="s"
-        :contenu="activite.contenu ? activite.contenu[s.id] : {}"
-        :date="activite.date"
-      />
+      <UiSection v-for="s in activite.sections" :key="s.id" class="border-b-s px-m pt-m" :section="s" :contenu="activite.contenu ? activite.contenu[s.id] : {}" :date="activite.date" />
 
       <Documents
         v-if="activite.documents && activite.documents.length"
@@ -94,27 +68,16 @@ import { getPeriode } from 'camino-common/src/static/frequence'
 import { withDefaults, ref, computed } from 'vue'
 import { useStore } from 'vuex'
 import { Activite } from './preview.types'
-import {
-  ActivitesStatut,
-  ActivitesStatuts
-} from 'camino-common/src/static/activitesStatuts'
+import { ActivitesStatut, ActivitesStatuts } from 'camino-common/src/static/activitesStatuts'
 
-const props = withDefaults(
-  defineProps<{ activite: Activite; route: unknown; initialOpened: boolean }>(),
-  { initialOpened: false }
-)
+const props = withDefaults(defineProps<{ activite: Activite; route: unknown; initialOpened: boolean }>(), { initialOpened: false })
 
 const store = useStore()
 const opened = ref<boolean>(props.initialOpened)
-const activiteStatut = computed<ActivitesStatut>(
-  () => ActivitesStatuts[props.activite.activiteStatutId]
-)
+const activiteStatut = computed<ActivitesStatut>(() => ActivitesStatuts[props.activite.activiteStatutId])
 
 const documentPopupTitle = computed<string>(() => {
-  return `${props.activite.type.nom} | ${getPeriode(
-    props.activite.type.frequenceId,
-    props.activite.periodeId
-  )} ${props.activite.annee}`
+  return `${props.activite.type.nom} | ${getPeriode(props.activite.type.frequenceId, props.activite.periodeId)} ${props.activite.annee}`
 })
 
 const isEnConstruction = computed<boolean>(() => {
@@ -126,17 +89,11 @@ const isActiviteDeposable = computed<boolean>(() => {
 })
 
 const statutNom = computed<string>(() => {
-  return isEnConstruction.value && !isActiviteDeposable.value
-    ? `${activiteStatut.value.nom} (incomplet)`
-    : activiteStatut.value.nom
+  return isEnConstruction.value && !isActiviteDeposable.value ? `${activiteStatut.value.nom} (incomplet)` : activiteStatut.value.nom
 })
 
 const shouldDisplayHelp = computed<boolean>(() => {
-  return (
-    isEnConstruction.value &&
-    isActiviteDeposable.value &&
-    ['grp', 'gra'].includes(props.activite.type.id)
-  )
+  return isEnConstruction.value && isActiviteDeposable.value && ['grp', 'gra'].includes(props.activite.type.id)
 })
 
 const close = () => {
@@ -154,12 +111,9 @@ const activiteRemovePopupOpen = () => {
       activiteId: props.activite.id,
       typeNom: props.activite.type.nom,
       annee: props.activite.annee,
-      periodeNom: getPeriode(
-        props.activite.type.frequenceId,
-        props.activite.periodeId
-      ),
-      route: props.route
-    }
+      periodeNom: getPeriode(props.activite.type.frequenceId, props.activite.periodeId),
+      route: props.route,
+    },
   })
 }
 </script>
diff --git a/packages/ui/src/components/activite/remove-popup.vue b/packages/ui/src/components/activite/remove-popup.vue
index ba64a3e13..40b31a936 100644
--- a/packages/ui/src/components/activite/remove-popup.vue
+++ b/packages/ui/src/components/activite/remove-popup.vue
@@ -3,8 +3,7 @@
     <template #header>
       <div>
         <h6>
-          <span class="cap-first"> {{ typeNom }} </span
-          ><span class="color-neutral"> | </span
+          <span class="cap-first"> {{ typeNom }} </span><span class="color-neutral"> | </span
           ><span class="cap-first">
             {{ periodeNom }}
           </span>
@@ -19,22 +18,15 @@
       <span class="color-inverse">{{ periodeNom }} {{ annee }}</span>
       ?
     </p>
-    <div class="bg-warning color-bg p-s mb-l">
-      <span class="bold"> Attention </span>: cette opération est définitive et
-      ne peut pas être annulée.
-    </div>
+    <div class="bg-warning color-bg p-s mb-l"><span class="bold"> Attention </span>: cette opération est définitive et ne peut pas être annulée.</div>
 
     <template #footer>
       <div v-if="!loading" class="tablet-blobs">
         <div class="tablet-blob-1-3 mb tablet-mb-0">
-          <button class="btn-border rnd-xs p-s full-x" @click="cancel">
-            Annuler
-          </button>
+          <button class="btn-border rnd-xs p-s full-x" @click="cancel">Annuler</button>
         </div>
         <div class="tablet-blob-2-3">
-          <button class="btn-flash rnd-xs p-s full-x" @click="remove">
-            Supprimer
-          </button>
+          <button class="btn-flash rnd-xs p-s full-x" @click="remove">Supprimer</button>
         </div>
       </div>
       <div v-else class="p-s full-x bold">Suppression en cours…</div>
@@ -49,7 +41,7 @@ export default {
   name: 'CaminoTitreActiviteRemovePopup',
 
   components: {
-    Popup
+    Popup,
   },
 
   props: {
@@ -57,7 +49,7 @@ export default {
     typeNom: { type: String, required: true },
     periodeNom: { type: String, required: true },
     annee: { type: Number, required: true },
-    route: { type: Object, required: true }
+    route: { type: Object, required: true },
   },
 
   computed: {
@@ -67,7 +59,7 @@ export default {
 
     messages() {
       return this.$store.state.popup.messages
-    }
+    },
   },
 
   created() {
@@ -82,7 +74,7 @@ export default {
     async remove() {
       await this.$store.dispatch('titreActivite/remove', {
         id: this.activiteId,
-        route: this.route
+        route: this.route,
       })
     },
 
@@ -101,7 +93,7 @@ export default {
 
     errorsRemove() {
       // this.$store.commit('utilisateur/loginMessagesRemove')
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/activites.vue b/packages/ui/src/components/activites.vue
index aea98d4d8..cee1de77f 100644
--- a/packages/ui/src/components/activites.vue
+++ b/packages/ui/src/components/activites.vue
@@ -13,11 +13,7 @@
     @params-update="paramsUpdate"
   >
     <template v-if="activites.length" #downloads>
-      <Downloads
-        :formats="['csv', 'xlsx', 'ods']"
-        section="activites"
-        class="flex-right full-x"
-      />
+      <Downloads :formats="['csv', 'xlsx', 'ods']" section="activites" class="flex-right full-x" />
     </template>
   </liste>
 </template>
@@ -39,7 +35,7 @@ export default {
     return {
       filtres,
       colonnes: activitesColonnes,
-      visible: false
+      visible: false,
     }
   },
 
@@ -70,7 +66,7 @@ export default {
 
     initialized() {
       return this.$store.state.titresActivites.initialized
-    }
+    },
   },
 
   watch: {
@@ -79,8 +75,8 @@ export default {
     '$route.query': {
       handler: function () {
         this.$store.dispatch('titresActivites/routeUpdate')
-      }
-    }
+      },
+    },
   },
 
   async created() {
@@ -103,7 +99,7 @@ export default {
 
     async paramsUpdate(options) {
       await this.$store.dispatch(`titresActivites/paramsSet`, options)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/activites/filtres.js b/packages/ui/src/components/activites/filtres.js
index 0c85db4cf..cdd100ce6 100644
--- a/packages/ui/src/components/activites/filtres.js
+++ b/packages/ui/src/components/activites/filtres.js
@@ -16,35 +16,35 @@ const filtres = [
     name: 'Noms',
     lazy: true,
     search: value => titresRechercherByNom({ noms: value, intervalle: 100 }),
-    load: value => titresFiltres({ titresIds: value })
+    load: value => titresFiltres({ titresIds: value }),
   },
   {
     id: 'titresEntreprisesIds',
     type: 'autocomplete',
     value: [],
     name: 'Entreprises',
-    elementsFormat
+    elementsFormat,
   },
   {
     id: 'titresSubstancesIds',
     type: 'autocomplete',
     value: [],
     name: 'Substances',
-    elements: SubstancesLegales
+    elements: SubstancesLegales,
   },
   {
     id: 'titresReferences',
     type: 'input',
     value: '',
     name: 'Références',
-    placeholder: 'Référence DGEC, DEAL, DEB, BRGM, Ifremer, …'
+    placeholder: 'Référence DGEC, DEAL, DEB, BRGM, Ifremer, …',
   },
   {
     id: 'titresTerritoires',
     type: 'input',
     value: '',
     name: 'Territoires',
-    placeholder: 'Commune, département, région, …'
+    placeholder: 'Commune, département, région, …',
   },
   {
     id: 'titresDomainesIds',
@@ -52,7 +52,7 @@ const filtres = [
     type: 'checkboxes',
     value: [],
     elements: sortedDomaines,
-    component: 'FiltreDomaine'
+    component: 'FiltreDomaine',
   },
   {
     id: 'titresTypesIds',
@@ -60,7 +60,7 @@ const filtres = [
     type: 'checkboxes',
     value: [],
     elements: sortedTitreTypesTypes,
-    component: 'FiltresTypes'
+    component: 'FiltresTypes',
   },
   {
     id: 'titresStatutsIds',
@@ -68,14 +68,14 @@ const filtres = [
     type: 'checkboxes',
     value: [],
     elements: sortedTitresStatuts,
-    component: 'FiltresStatuts'
+    component: 'FiltresStatuts',
   },
   {
     id: 'typesIds',
     name: 'Types',
     type: 'checkboxes',
     value: [],
-    elements: sortedActivitesTypes
+    elements: sortedActivitesTypes,
   },
   {
     id: 'statutsIds',
@@ -83,7 +83,7 @@ const filtres = [
     type: 'checkboxes',
     value: [],
     elements: activitesStatuts,
-    component: 'FiltresStatuts'
+    component: 'FiltresStatuts',
   },
   {
     id: 'annees',
@@ -94,8 +94,8 @@ const filtres = [
     elementName: 'nom',
     buttonAdd: 'Ajouter une année',
     isNumber: true,
-    elementsFormat
-  }
+    elementsFormat,
+  },
 ]
 
 export default filtres
diff --git a/packages/ui/src/components/activites/list.vue b/packages/ui/src/components/activites/list.vue
index e3e0ae2eb..4592c5d70 100644
--- a/packages/ui/src/components/activites/list.vue
+++ b/packages/ui/src/components/activites/list.vue
@@ -2,13 +2,7 @@
   <div>
     <div v-for="annee in activitesByYear" :key="annee.id">
       <h2>{{ annee.id }}</h2>
-      <Preview
-        v-for="activite in annee.activites"
-        :key="activite.id"
-        :activite="activite"
-        :route="{ name: 'titre', id: titreId }"
-        class="mb-s"
-      />
+      <Preview v-for="activite in annee.activites" :key="activite.id" :activite="activite" :route="{ name: 'titre', id: titreId }" class="mb-s" />
       <div class="line width-full my-xxl" />
     </div>
   </div>
@@ -22,7 +16,7 @@ export default {
 
   props: {
     activites: { type: Array, default: () => [] },
-    titreId: { type: String, required: true }
+    titreId: { type: String, required: true },
   },
 
   computed: {
@@ -32,7 +26,7 @@ export default {
         if (!annee) {
           annee = {
             id: activite.annee,
-            activites: []
+            activites: [],
           }
           annees.push(annee)
         }
@@ -40,7 +34,7 @@ export default {
         annee.activites.push(activite)
         return annees
       }, [])
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/activites/table.js b/packages/ui/src/components/activites/table.js
index 9ab4277dd..0907b601b 100644
--- a/packages/ui/src/components/activites/table.js
+++ b/packages/ui/src/components/activites/table.js
@@ -7,26 +7,26 @@ import { ActivitesStatuts } from 'camino-common/src/static/activitesStatuts'
 const activitesColonnes = [
   {
     id: 'titre',
-    name: 'Titre'
+    name: 'Titre',
   },
   {
     id: 'titulaires',
     name: 'Titulaires',
-    class: ['min-width-10']
+    class: ['min-width-10'],
   },
   {
     id: 'annee',
-    name: 'Année'
+    name: 'Année',
   },
   {
     id: 'periode',
-    name: 'Période'
+    name: 'Période',
   },
   {
     id: 'statut',
     name: 'Statut',
-    class: ['min-width-5']
-  }
+    class: ['min-width-5'],
+  },
 ]
 
 const activitesLignesBuild = activites =>
@@ -38,29 +38,29 @@ const activitesLignesBuild = activites =>
         component: markRaw(List),
         props: {
           elements: activite.titre.titulaires.map(({ nom }) => nom),
-          mini: true
+          mini: true,
         },
         class: 'mb--xs',
-        value: activite.titre.titulaires.map(({ nom }) => nom).join(', ')
+        value: activite.titre.titulaires.map(({ nom }) => nom).join(', '),
       },
       annee: { value: activite.annee },
       periode: {
-        value: getPeriode(activite.type.frequenceId, activite.periodeId)
+        value: getPeriode(activite.type.frequenceId, activite.periodeId),
       },
       statut: {
         component: markRaw(Statut),
         props: {
           color: activiteStatut.couleur,
-          nom: activiteStatut.nom
+          nom: activiteStatut.nom,
         },
-        value: activiteStatut.nom
-      }
+        value: activiteStatut.nom,
+      },
     }
 
     return {
       id: activite.id,
       link: { name: 'activite', params: { id: activite.slug } },
-      columns
+      columns,
     }
   })
 
diff --git a/packages/ui/src/components/administration.stories.tsx b/packages/ui/src/components/administration.stories.tsx
index 8f9e2c1fb..37fa5f141 100644
--- a/packages/ui/src/components/administration.stories.tsx
+++ b/packages/ui/src/components/administration.stories.tsx
@@ -2,10 +2,7 @@ import { PureAdministration } from './administration'
 import { Meta, Story } from '@storybook/vue3'
 import { action } from '@storybook/addon-actions'
 
-import {
-  AdministrationId,
-  ADMINISTRATION_IDS
-} from 'camino-common/src/static/administrations'
+import { AdministrationId, ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
 import { ACTIVITES_TYPES_IDS } from 'camino-common/src/static/activitesTypes'
 import { administrationMetas } from './administration/permissions.stub'
 import { testBlankUser } from 'camino-common/src/tests-utils'
@@ -13,31 +10,26 @@ import { testBlankUser } from 'camino-common/src/tests-utils'
 const meta: Meta = {
   title: 'Components/Administration',
   component: PureAdministration,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
-const administrationActiviteTypeEmailUpdateAction = action(
-  'administrationActiviteTypeEmailUpdate'
-)
-const administrationActiviteTypeEmailDeleteAction = action(
-  'administrationActiviteTypeEmailDelete'
-)
+const administrationActiviteTypeEmailUpdateAction = action('administrationActiviteTypeEmailUpdate')
+const administrationActiviteTypeEmailDeleteAction = action('administrationActiviteTypeEmailDelete')
 
 export const Default: Story = () => (
   <PureAdministration
     administrationId={ADMINISTRATION_IDS.BRGM}
     user={{
       role: 'super',
-      ...testBlankUser
+      ...testBlankUser,
     }}
     apiClient={{
       administrationActivitesTypesEmails: (_: AdministrationId) =>
         Promise.resolve([
           {
             email: 'toto@toto.com',
-            activiteTypeId:
-              ACTIVITES_TYPES_IDS["rapport d'exploitation (autorisations M)"]
-          }
+            activiteTypeId: ACTIVITES_TYPES_IDS["rapport d'exploitation (autorisations M)"],
+          },
         ]),
       administrationUtilisateurs: (_: AdministrationId) =>
         Promise.resolve([
@@ -47,8 +39,8 @@ export const Default: Story = () => (
             email: 'jean.michel@gmail.com',
             id: 'jeanmichel',
             role: 'super',
-            administrationId: undefined
-          }
+            administrationId: undefined,
+          },
         ]),
       administrationActiviteTypeEmailUpdate: () => {
         administrationActiviteTypeEmailUpdateAction()
@@ -58,7 +50,7 @@ export const Default: Story = () => (
         administrationActiviteTypeEmailDeleteAction()
         return Promise.resolve()
       },
-      administrationMetas
+      administrationMetas,
     }}
   />
 )
diff --git a/packages/ui/src/components/administration.tsx b/packages/ui/src/components/administration.tsx
index 5695f8db6..02f39df51 100644
--- a/packages/ui/src/components/administration.tsx
+++ b/packages/ui/src/components/administration.tsx
@@ -9,18 +9,8 @@ import { LoadingElement } from './_ui/functional-loader'
 import { Permissions } from './administration/permissions'
 import { ActivitesTypesEmails } from './administration/activites-types-emails'
 
-import {
-  utilisateursColonnes,
-  utilisateursLignesBuild
-} from './utilisateurs/table'
-import {
-  ADMINISTRATION_TYPES,
-  Administrations,
-  AdministrationId,
-  Administration as Adm,
-  AdministrationType,
-  isAdministrationId
-} from 'camino-common/src/static/administrations'
+import { utilisateursColonnes, utilisateursLignesBuild } from './utilisateurs/table'
+import { ADMINISTRATION_TYPES, Administrations, AdministrationId, Administration as Adm, AdministrationType, isAdministrationId } from 'camino-common/src/static/administrations'
 import { isSuper, User } from 'camino-common/src/roles'
 import { canReadActivitesTypesEmails } from 'camino-common/src/permissions/administrations'
 import { Departement, Departements } from 'camino-common/src/static/departement'
@@ -45,17 +35,13 @@ export const Administration = defineComponent({
     return () => (
       <>
         {administrationId.value ? (
-          <PureAdministration
-            administrationId={administrationId.value}
-            user={user.value}
-            apiClient={apiClient}
-          />
+          <PureAdministration administrationId={administrationId.value} user={user.value} apiClient={apiClient} />
         ) : (
           <Error message="Administration inconnue" couleur="error" />
         )}
       </>
     )
-  }
+  },
 })
 
 interface Props {
@@ -63,54 +49,40 @@ interface Props {
   user: User
   apiClient: Pick<
     ApiClient,
-    | 'administrationActivitesTypesEmails'
-    | 'administrationUtilisateurs'
-    | 'administrationMetas'
-    | 'administrationActiviteTypeEmailUpdate'
-    | 'administrationActiviteTypeEmailDelete'
+    'administrationActivitesTypesEmails' | 'administrationUtilisateurs' | 'administrationMetas' | 'administrationActiviteTypeEmailUpdate' | 'administrationActiviteTypeEmailDelete'
   >
 }
 export const PureAdministration = defineComponent<Props>({
   props: ['administrationId', 'user', 'apiClient'] as unknown as undefined,
   setup(props) {
-    const administration = computed<Adm>(
-      () => Administrations[props.administrationId]
-    )
-    const type = computed<AdministrationType>(
-      () => ADMINISTRATION_TYPES[administration.value.typeId]
-    )
+    const administration = computed<Adm>(() => Administrations[props.administrationId])
+    const type = computed<AdministrationType>(() => ADMINISTRATION_TYPES[administration.value.typeId])
     const departement = computed<Departement | undefined>(() => {
-      return administration.value.departementId
-        ? Departements[administration.value.departementId]
-        : undefined
+      return administration.value.departementId ? Departements[administration.value.departementId] : undefined
     })
     const region = computed<Region | undefined>(() => {
-      return administration.value.regionId
-        ? Regions[administration.value.regionId]
-        : undefined
+      return administration.value.regionId ? Regions[administration.value.regionId] : undefined
     })
     const activitesTypesEmails = ref<AsyncData<ActiviteTypeEmail[]>>({
-      status: 'LOADING'
+      status: 'LOADING',
     })
     const utilisateurs = ref<AsyncData<Utilisateur[]>>({ status: 'LOADING' })
 
     const loadActivitesTypesEmails = async () => {
       if (canReadActivitesTypesEmails(props.user, props.administrationId)) {
         activitesTypesEmails.value = {
-          status: 'LOADING'
+          status: 'LOADING',
         }
         try {
           activitesTypesEmails.value = {
             status: 'LOADED',
-            value: await props.apiClient.administrationActivitesTypesEmails(
-              props.administrationId
-            )
+            value: await props.apiClient.administrationActivitesTypesEmails(props.administrationId),
           }
         } catch (e: any) {
           console.error('error', e)
           activitesTypesEmails.value = {
             status: 'ERROR',
-            message: e.message ?? "Une erreur s'est produite"
+            message: e.message ?? "Une erreur s'est produite",
           }
         }
       }
@@ -120,15 +92,13 @@ export const PureAdministration = defineComponent<Props>({
       try {
         utilisateurs.value = {
           status: 'LOADED',
-          value: await props.apiClient.administrationUtilisateurs(
-            props.administrationId
-          )
+          value: await props.apiClient.administrationUtilisateurs(props.administrationId),
         }
       } catch (e: any) {
         console.error('error', e)
         utilisateurs.value = {
           status: 'ERROR',
-          message: e.message ?? "Une erreur s'est produite"
+          message: e.message ?? "Une erreur s'est produite",
         }
       }
     })
@@ -138,9 +108,7 @@ export const PureAdministration = defineComponent<Props>({
         <h1>{administration.value.abreviation}</h1>
         <Accordion class="mb-xxl" slotSub={true} slotButtons={true}>
           {{
-            title: () => (
-              <span class="cap-first">{administration.value.nom}</span>
-            ),
+            title: () => <span class="cap-first">{administration.value.nom}</span>,
             sub: () => (
               <div class="px-m pt-m border-b-s">
                 <div class="tablet-blobs">
@@ -201,10 +169,7 @@ export const PureAdministration = defineComponent<Props>({
                   <div class="tablet-blob-3-4">
                     <p class="word-break">
                       {administration.value.email ? (
-                        <a
-                          href={`mailto:${administration.value.email}`}
-                          class="btn small bold py-xs px-s rnd"
-                        >
+                        <a href={`mailto:${administration.value.email}`} class="btn small bold py-xs px-s rnd">
                           {administration.value.email}
                         </a>
                       ) : (
@@ -221,10 +186,7 @@ export const PureAdministration = defineComponent<Props>({
                   <div class="tablet-blob-3-4">
                     <p class="word-break">
                       {administration.value.url ? (
-                        <a
-                          href={administration.value.url}
-                          class="btn small bold py-xs px-s rnd"
-                        >
+                        <a href={administration.value.url} class="btn small bold py-xs px-s rnd">
                           {administration.value.url}
                         </a>
                       ) : (
@@ -261,15 +223,13 @@ export const PureAdministration = defineComponent<Props>({
                     <div class="tablet-blob-1-4" />
                     <div class="tablet-blob-3-4">
                       <p class="h6 mb">
-                        Un utilisateur d'une <b>administration locale</b> peut
-                        créer et modifier le contenu des titres du territoire
-                        concerné.
+                        Un utilisateur d'une <b>administration locale</b> peut créer et modifier le contenu des titres du territoire concerné.
                       </p>
                     </div>
                   </div>
                 ) : null}
               </div>
-            )
+            ),
           }}
         </Accordion>
 
@@ -280,11 +240,7 @@ export const PureAdministration = defineComponent<Props>({
               <div class="line-neutral width-full mb-xxl" />
               <h2>Utilisateurs</h2>
               <div class="line width-full" />
-              <TableAuto
-                class="width-full-p"
-                columns={utilisateursColonnes}
-                rows={utilisateursLignesBuild(item)}
-              />
+              <TableAuto class="width-full-p" columns={utilisateursColonnes} rows={utilisateursLignesBuild(item)} />
             </div>
           )}
         />
@@ -305,7 +261,7 @@ export const PureAdministration = defineComponent<Props>({
                     props.apiClient.administrationActiviteTypeEmailUpdate({
                       activiteTypeId,
                       email,
-                      administrationId
+                      administrationId,
                     })
                     loadActivitesTypesEmails()
                   }}
@@ -313,7 +269,7 @@ export const PureAdministration = defineComponent<Props>({
                     props.apiClient.administrationActiviteTypeEmailDelete({
                       activiteTypeId,
                       email,
-                      administrationId
+                      administrationId,
                     })
                     loadActivitesTypesEmails()
                   }}
@@ -326,12 +282,9 @@ export const PureAdministration = defineComponent<Props>({
           <div class="line-neutral width-full mb-xxl" />
           <h2>Permissions</h2>
 
-          <Permissions
-            administrationId={props.administrationId}
-            apiClient={props.apiClient}
-          />
+          <Permissions administrationId={props.administrationId} apiClient={props.apiClient} />
         </div>
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/administration/activites-types-emails.stories.tsx b/packages/ui/src/components/administration/activites-types-emails.stories.tsx
index 8b532e8e5..571d870f0 100644
--- a/packages/ui/src/components/administration/activites-types-emails.stories.tsx
+++ b/packages/ui/src/components/administration/activites-types-emails.stories.tsx
@@ -1,21 +1,14 @@
 import { ActivitesTypesEmails } from './activites-types-emails'
 import { Meta, Story } from '@storybook/vue3'
-import {
-  ActivitesTypesId,
-  ACTIVITES_TYPES_IDS
-} from 'camino-common/src/static/activitesTypes'
-import {
-  Administration,
-  Administrations,
-  ADMINISTRATION_IDS
-} from 'camino-common/src/static/administrations'
+import { ActivitesTypesId, ACTIVITES_TYPES_IDS } from 'camino-common/src/static/activitesTypes'
+import { Administration, Administrations, ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
 import { User } from 'camino-common/src/roles'
 import { testBlankUser } from 'camino-common/src/tests-utils'
 import { action } from '@storybook/addon-actions'
 
 const meta: Meta = {
   title: 'Components/Administration/ActivitesTypesEmails',
-  component: ActivitesTypesEmails
+  component: ActivitesTypesEmails,
 }
 export default meta
 
@@ -27,14 +20,13 @@ type Props = {
 
 const activitesTypesEmails = [
   {
-    activiteTypeId:
-      ACTIVITES_TYPES_IDS["rapport d'exploitation (autorisations M)"],
-    email: 'foo@bar.co'
+    activiteTypeId: ACTIVITES_TYPES_IDS["rapport d'exploitation (autorisations M)"],
+    email: 'foo@bar.co',
   },
   {
     activiteTypeId: ACTIVITES_TYPES_IDS['rapport d’intensité d’exploration'],
-    email: 'toto@tata.com'
-  }
+    email: 'toto@tata.com',
+  },
 ]
 
 const Template: Story<Props> = (args: Props) => ({
@@ -42,48 +34,38 @@ const Template: Story<Props> = (args: Props) => ({
   setup() {
     return { args }
   },
-  template: '<ActivitesTypesEmails v-bind="args" />'
+  template: '<ActivitesTypesEmails v-bind="args" />',
 })
 const emailUpdate = action('emailUpdate')
 const emailDelete = action('emailDelete')
 export const EmailLectureVisible: Story = () => (
+  <ActivitesTypesEmails administrationId="aut-97300-01" user={null} activitesTypesEmails={activitesTypesEmails} emailUpdate={emailUpdate} emailDelete={emailDelete} />
+)
+
+export const EmailLectureAndModificationVisible: Story = () => (
   <ActivitesTypesEmails
     administrationId="aut-97300-01"
-    user={null}
+    user={{
+      role: 'admin',
+      administrationId: ADMINISTRATION_IDS["DAJ - MINISTÈRE DE L'ECONOMIE, DES FINANCES ET DE LA RELANCE"],
+      ...testBlankUser,
+    }}
     activitesTypesEmails={activitesTypesEmails}
     emailUpdate={emailUpdate}
     emailDelete={emailDelete}
   />
 )
 
-export const EmailLectureAndModificationVisible: Story = () => (
+export const EmailLectureAndModificationSurAdministrationVisible: Story = () => (
   <ActivitesTypesEmails
-    administrationId="aut-97300-01"
+    administrationId={ADMINISTRATION_IDS['DREAL - BRETAGNE']}
     user={{
       role: 'admin',
-      administrationId:
-        ADMINISTRATION_IDS[
-          "DAJ - MINISTÈRE DE L'ECONOMIE, DES FINANCES ET DE LA RELANCE"
-        ],
-      ...testBlankUser
+      administrationId: ADMINISTRATION_IDS['DREAL - BRETAGNE'],
+      ...testBlankUser,
     }}
     activitesTypesEmails={activitesTypesEmails}
     emailUpdate={emailUpdate}
     emailDelete={emailDelete}
   />
 )
-
-export const EmailLectureAndModificationSurAdministrationVisible: Story =
-  () => (
-    <ActivitesTypesEmails
-      administrationId={ADMINISTRATION_IDS['DREAL - BRETAGNE']}
-      user={{
-        role: 'admin',
-        administrationId: ADMINISTRATION_IDS['DREAL - BRETAGNE'],
-        ...testBlankUser
-      }}
-      activitesTypesEmails={activitesTypesEmails}
-      emailUpdate={emailUpdate}
-      emailDelete={emailDelete}
-    />
-  )
diff --git a/packages/ui/src/components/administration/activites-types-emails.tsx b/packages/ui/src/components/administration/activites-types-emails.tsx
index e53b4c7e0..f2879dbdf 100644
--- a/packages/ui/src/components/administration/activites-types-emails.tsx
+++ b/packages/ui/src/components/administration/activites-types-emails.tsx
@@ -1,61 +1,34 @@
 import emailValidator from 'email-validator'
 import { defineComponent, PropType, ref, computed } from 'vue'
 import { Icon } from '@/components/_ui/icon'
-import {
-  ActivitesTypes,
-  ActivitesTypesId
-} from 'camino-common/src/static/activitesTypes'
+import { ActivitesTypes, ActivitesTypesId } from 'camino-common/src/static/activitesTypes'
 import { User } from 'camino-common/src/roles'
 import { canEditEmails } from 'camino-common/src/permissions/administrations'
-import {
-  Administration,
-  AdministrationId,
-  Administrations
-} from 'camino-common/src/static/administrations'
+import { Administration, AdministrationId, Administrations } from 'camino-common/src/static/administrations'
 
 interface Props {
   administrationId: AdministrationId
   user: User
   activitesTypesEmails: { activiteTypeId: ActivitesTypesId; email: string }[]
-  emailUpdate: (
-    administrationId: AdministrationId,
-    activiteTypeId: ActivitesTypesId,
-    email: string
-  ) => void
-  emailDelete: (
-    administrationId: AdministrationId,
-    activiteTypeId: ActivitesTypesId,
-    email: string
-  ) => void
+  emailUpdate: (administrationId: AdministrationId, activiteTypeId: ActivitesTypesId, email: string) => void
+  emailDelete: (administrationId: AdministrationId, activiteTypeId: ActivitesTypesId, email: string) => void
 }
 
 export const ActivitesTypesEmails = defineComponent<Props>({
-  props: [
-    'administrationId',
-    'user',
-    'activitesTypesEmails',
-    'emailUpdate',
-    'emailDelete'
-  ] as unknown as undefined,
+  props: ['administrationId', 'user', 'activitesTypesEmails', 'emailUpdate', 'emailDelete'] as unknown as undefined,
   setup(props) {
-    const administration = computed<Administration>(
-      () => Administrations[props.administrationId]
-    )
+    const administration = computed<Administration>(() => Administrations[props.administrationId])
     const activiteTypeNew = ref<{
       activiteTypeId: ActivitesTypesId | null
       email: string | null
     }>({
       activiteTypeId: null,
-      email: null
+      email: null,
     })
     const activitesTypes = ref(Object.values(ActivitesTypes))
 
     const activiteTypeNewActive = computed<boolean>(() => {
-      return !!(
-        activiteTypeNew.value.activiteTypeId &&
-        activiteTypeNew.value.email &&
-        emailValidator.validate(activiteTypeNew.value.email)
-      )
+      return !!(activiteTypeNew.value.activiteTypeId && activiteTypeNew.value.email && emailValidator.validate(activiteTypeNew.value.email))
     })
 
     const isFullyNotifiable = computed(() => {
@@ -76,13 +49,7 @@ export const ActivitesTypesEmails = defineComponent<Props>({
       activiteTypeNew.value.email = null
     }
 
-    const activiteTypeEmailDelete = async ({
-      activiteTypeId,
-      email
-    }: {
-      email: string
-      activiteTypeId: ActivitesTypesId
-    }) => {
+    const activiteTypeEmailDelete = async ({ activiteTypeId, email }: { email: string; activiteTypeId: ActivitesTypesId }) => {
       props.emailDelete(props.administrationId, activiteTypeId, email)
     }
 
@@ -92,17 +59,8 @@ export const ActivitesTypesEmails = defineComponent<Props>({
       return activiteType ? activiteTypeLabelize(activiteType) : ''
     }
 
-    const activiteTypeLabelize = (activiteType: {
-      nom: string
-      id: string
-    }) => {
-      return (
-        activiteType.nom.charAt(0).toUpperCase() +
-        activiteType.nom.slice(1) +
-        ' (' +
-        activiteType.id.toUpperCase() +
-        ')'
-      )
+    const activiteTypeLabelize = (activiteType: { nom: string; id: string }) => {
+      return activiteType.nom.charAt(0).toUpperCase() + activiteType.nom.slice(1) + ' (' + activiteType.id.toUpperCase() + ')'
     }
 
     return () => (
@@ -136,10 +94,7 @@ export const ActivitesTypesEmails = defineComponent<Props>({
               {canEditEmailsComp.value ? (
                 <tr>
                   <td>
-                    <select
-                      v-model={activiteTypeNew.value.activiteTypeId}
-                      class="py-xs px-s mr-s mt-xs"
-                    >
+                    <select v-model={activiteTypeNew.value.activiteTypeId} class="py-xs px-s mr-s mt-xs">
                       {activitesTypes.value.map(activiteType => (
                         <option key={activiteType.id} value={activiteType.id}>
                           {activiteTypeLabelize(activiteType)}
@@ -161,11 +116,7 @@ export const ActivitesTypesEmails = defineComponent<Props>({
                     />
                   </td>
                   <td>
-                    <button
-                      class="py-s px-m btn rnd-xs p-s"
-                      disabled={!activiteTypeNewActive.value}
-                      onClick={activiteTypeEmailUpdate}
-                    >
+                    <button class="py-s px-m btn rnd-xs p-s" disabled={!activiteTypeNewActive.value} onClick={activiteTypeEmailUpdate}>
                       <Icon name="plus" size="M" />
                     </button>
                   </td>
@@ -173,25 +124,14 @@ export const ActivitesTypesEmails = defineComponent<Props>({
               ) : null}
 
               {props.activitesTypesEmails.map(activiteTypeEmail => (
-                <tr
-                  key={
-                    activiteTypeEmail.activiteTypeId + activiteTypeEmail.email
-                  }
-                >
+                <tr key={activiteTypeEmail.activiteTypeId + activiteTypeEmail.email}>
                   <td>
-                    <span class="cap-first">
-                      {activiteTypeIdLabelize(activiteTypeEmail.activiteTypeId)}
-                    </span>
+                    <span class="cap-first">{activiteTypeIdLabelize(activiteTypeEmail.activiteTypeId)}</span>
                   </td>
                   <td>{activiteTypeEmail.email}</td>
                   {canEditEmailsComp.value ? (
                     <td>
-                      <button
-                        class="btn-border py-s px-m my--xs rnd-xs flex-right"
-                        onClick={() =>
-                          activiteTypeEmailDelete(activiteTypeEmail)
-                        }
-                      >
+                      <button class="btn-border py-s px-m my--xs rnd-xs flex-right" onClick={() => activiteTypeEmailDelete(activiteTypeEmail)}>
                         <Icon name="delete" size="M" />
                       </button>
                     </td>
@@ -203,5 +143,5 @@ export const ActivitesTypesEmails = defineComponent<Props>({
         </div>
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/administration/administration-api-client.ts b/packages/ui/src/components/administration/administration-api-client.ts
index 8b386e1b9..8776f27d3 100644
--- a/packages/ui/src/components/administration/administration-api-client.ts
+++ b/packages/ui/src/components/administration/administration-api-client.ts
@@ -41,12 +41,8 @@ export type AdministrationMetas = {
 }
 
 export interface AdministrationApiClient {
-  administrationActivitesTypesEmails: (
-    administrationId: AdministrationId
-  ) => Promise<ActiviteTypeEmail[]>
-  administrationUtilisateurs: (
-    administrationId: AdministrationId
-  ) => Promise<Utilisateur[]>
+  administrationActivitesTypesEmails: (administrationId: AdministrationId) => Promise<ActiviteTypeEmail[]>
+  administrationUtilisateurs: (administrationId: AdministrationId) => Promise<Utilisateur[]>
   administrationActiviteTypeEmailUpdate: (
     activiteTypeEmail: ActiviteTypeEmail & {
       administrationId: AdministrationId
@@ -58,15 +54,11 @@ export interface AdministrationApiClient {
     }
   ) => Promise<void>
 
-  administrationMetas: (
-    administrationId: AdministrationId
-  ) => Promise<AdministrationMetas>
+  administrationMetas: (administrationId: AdministrationId) => Promise<AdministrationMetas>
 }
 
 export const administrationApiClient: AdministrationApiClient = {
-  administrationActivitesTypesEmails: async (
-    administrationId: AdministrationId
-  ) =>
+  administrationActivitesTypesEmails: async (administrationId: AdministrationId) =>
     await apiGraphQLFetch(gql`
       query AdministrationActivitesTypesEmails($id: ID!) {
         administrationActivitesTypesEmails(id: $id) {
@@ -94,7 +86,7 @@ export const administrationApiClient: AdministrationApiClient = {
         }
       }
     `)({
-      id: administrationId
+      id: administrationId,
     })
     return utilisateurs
   },
@@ -104,12 +96,8 @@ export const administrationApiClient: AdministrationApiClient = {
     }
   ) =>
     await apiGraphQLFetch(gql`
-      mutation AdministrationActiviteTypeEmailCreer(
-        $administrationActiviteTypeEmail: InputAdministrationActiviteTypeEmail!
-      ) {
-        administrationActiviteTypeEmailCreer(
-          administrationActiviteTypeEmail: $administrationActiviteTypeEmail
-        ) {
+      mutation AdministrationActiviteTypeEmailCreer($administrationActiviteTypeEmail: InputAdministrationActiviteTypeEmail!) {
+        administrationActiviteTypeEmailCreer(administrationActiviteTypeEmail: $administrationActiviteTypeEmail) {
           id
         }
       }
@@ -121,12 +109,8 @@ export const administrationApiClient: AdministrationApiClient = {
     }
   ) =>
     await apiGraphQLFetch(gql`
-      mutation AdministrationActiviteTypeEmailSupprimer(
-        $administrationActiviteTypeEmail: InputAdministrationActiviteTypeEmail!
-      ) {
-        administrationActiviteTypeEmailSupprimer(
-          administrationActiviteTypeEmail: $administrationActiviteTypeEmail
-        ) {
+      mutation AdministrationActiviteTypeEmailSupprimer($administrationActiviteTypeEmail: InputAdministrationActiviteTypeEmail!) {
+        administrationActiviteTypeEmailSupprimer(administrationActiviteTypeEmail: $administrationActiviteTypeEmail) {
           id
         }
       }
@@ -163,5 +147,5 @@ export const administrationApiClient: AdministrationApiClient = {
           }
         }
       }
-    `)({ id: administrationId })
+    `)({ id: administrationId }),
 }
diff --git a/packages/ui/src/components/administration/permissions.stories.tsx b/packages/ui/src/components/administration/permissions.stories.tsx
index bf9f53c76..d06db8500 100644
--- a/packages/ui/src/components/administration/permissions.stories.tsx
+++ b/packages/ui/src/components/administration/permissions.stories.tsx
@@ -5,7 +5,7 @@ import { administrationMetas } from './permissions.stub'
 
 const meta: Meta = {
   title: 'Components/Administration/Permissions',
-  component: Permissions
+  component: Permissions,
 }
 export default meta
 
@@ -13,7 +13,7 @@ export const Default: Story = () => (
   <Permissions
     administrationId={ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']}
     apiClient={{
-      administrationMetas
+      administrationMetas,
     }}
   />
 )
@@ -22,7 +22,7 @@ export const error: Story = () => (
   <Permissions
     administrationId={ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']}
     apiClient={{
-      administrationMetas: () => Promise.reject(new Error(''))
+      administrationMetas: () => Promise.reject(new Error('')),
     }}
   />
 )
@@ -31,7 +31,7 @@ export const Loading: Story = () => (
   <Permissions
     administrationId={ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']}
     apiClient={{
-      administrationMetas: () => new Promise(() => ({}))
+      administrationMetas: () => new Promise(() => ({})),
     }}
   />
 )
diff --git a/packages/ui/src/components/administration/permissions.stub.ts b/packages/ui/src/components/administration/permissions.stub.ts
index 6678b8f8f..ce6ef52d1 100644
--- a/packages/ui/src/components/administration/permissions.stub.ts
+++ b/packages/ui/src/components/administration/permissions.stub.ts
@@ -5,33 +5,33 @@ export const administrationMetas: ApiClient['administrationMetas'] = () =>
     titresTypesTitresStatuts: [
       {
         titreType: {
-          id: 'axm'
+          id: 'axm',
         },
         titreStatutId: 'val',
         titresModificationInterdit: true,
         etapesModificationInterdit: false,
-        demarchesModificationInterdit: true
-      }
+        demarchesModificationInterdit: true,
+      },
     ],
     activitesTypes: [
       {
         id: 'gra',
         modificationInterdit: true,
-        lectureInterdit: false
-      }
+        lectureInterdit: false,
+      },
     ],
     titresTypesEtapesTypes: [
       {
         etapeType: {
-          id: 'dpu'
+          id: 'dpu',
         },
         titreType: {
-          id: 'axm'
+          id: 'axm',
         },
         titreStatutId: 'val',
         creationInterdit: true,
         modificationInterdit: false,
-        lectureInterdit: true
-      }
-    ]
+        lectureInterdit: true,
+      },
+    ],
   })
diff --git a/packages/ui/src/components/administration/permissions.tsx b/packages/ui/src/components/administration/permissions.tsx
index acb0829c6..c3cca08f7 100644
--- a/packages/ui/src/components/administration/permissions.tsx
+++ b/packages/ui/src/components/administration/permissions.tsx
@@ -1,10 +1,7 @@
 import { Domaine as CaminoDomaine } from '../_common/domaine'
 import { Statut } from '../_common/statut'
 import { Icon } from '../_ui/icon'
-import {
-  TitresStatuts,
-  TitreStatutId
-} from 'camino-common/src/static/titresStatuts'
+import { TitresStatuts, TitreStatutId } from 'camino-common/src/static/titresStatuts'
 import { TitresTypes } from './titres-types'
 import { AdministrationId } from 'camino-common/src/static/administrations'
 import { ActivitesTypes } from 'camino-common/src/static/activitesTypes'
@@ -25,25 +22,22 @@ export const Permissions = defineComponent<Props>({
   props: ['administrationId', 'apiClient'] as unknown as undefined,
   setup(props) {
     const administrationMetas = ref<AsyncData<AdministrationMetas>>({
-      status: 'LOADING'
+      status: 'LOADING',
     })
 
-    const getTitreStatut = (titreStatutId: TitreStatutId) =>
-      TitresStatuts[titreStatutId]
+    const getTitreStatut = (titreStatutId: TitreStatutId) => TitresStatuts[titreStatutId]
 
     onMounted(async () => {
       try {
         administrationMetas.value = {
           status: 'LOADED',
-          value: await props.apiClient.administrationMetas(
-            props.administrationId
-          )
+          value: await props.apiClient.administrationMetas(props.administrationId),
         }
       } catch (e: any) {
         console.error('error', e)
         administrationMetas.value = {
           status: 'ERROR',
-          message: e.message ?? "Une erreur s'est produite"
+          message: e.message ?? "Une erreur s'est produite",
         }
       }
     })
@@ -56,26 +50,15 @@ export const Permissions = defineComponent<Props>({
           renderItem={item => (
             <>
               <div class="mb-xxl">
-                <h3>
-                  Restrictions de l'édition des titres, démarches et étapes
-                </h3>
+                <h3>Restrictions de l'édition des titres, démarches et étapes</h3>
 
                 <div class="h6">
                   <p class="mb-s">Par défaut :</p>
                   <ul class="list-prefix mb-s">
-                    <li>
-                      Un utilisateur d'une administration gestionnaire peut
-                      modifier les titres, démarches et étapes.
-                    </li>
-                    <li>
-                      Un utilisateur d'une administration locale peut modifier
-                      les démarches et étapes.
-                    </li>
+                    <li>Un utilisateur d'une administration gestionnaire peut modifier les titres, démarches et étapes.</li>
+                    <li>Un utilisateur d'une administration locale peut modifier les démarches et étapes.</li>
                   </ul>
-                  <p>
-                    Restreint ces droits par domaine / type de titre / statut de
-                    titre.
-                  </p>
+                  <p>Restreint ces droits par domaine / type de titre / statut de titre.</p>
                 </div>
 
                 <div class="line width-full" />
@@ -94,55 +77,22 @@ export const Permissions = defineComponent<Props>({
                       {item.titresTypesTitresStatuts.map(ttts => (
                         <tr key={`${ttts.titreType.id}-${ttts.titreStatutId}`}>
                           <td>
-                            <CaminoDomaine
-                              domaineId={TT[ttts.titreType.id].domaineId}
-                              class="mt-s"
-                            />
+                            <CaminoDomaine domaineId={TT[ttts.titreType.id].domaineId} class="mt-s" />
                           </td>
                           <td>
-                            <span class="small bold cap-first mt-s">
-                              {
-                                TitresTypesTypes[TT[ttts.titreType.id].typeId]
-                                  .nom
-                              }
-                            </span>
+                            <span class="small bold cap-first mt-s">{TitresTypesTypes[TT[ttts.titreType.id].typeId].nom}</span>
                           </td>
                           <td>
-                            <Statut
-                              color={getTitreStatut(ttts.titreStatutId).couleur}
-                              nom={getTitreStatut(ttts.titreStatutId).nom}
-                              class="mt-s"
-                            />
+                            <Statut color={getTitreStatut(ttts.titreStatutId).couleur} nom={getTitreStatut(ttts.titreStatutId).nom} class="mt-s" />
                           </td>
                           <td>
-                            <Icon
-                              name={
-                                ttts.titresModificationInterdit
-                                  ? 'checkbox'
-                                  : 'checkbox-blank'
-                              }
-                              size="M"
-                            />
+                            <Icon name={ttts.titresModificationInterdit ? 'checkbox' : 'checkbox-blank'} size="M" />
                           </td>
                           <td>
-                            <Icon
-                              name={
-                                ttts.demarchesModificationInterdit
-                                  ? 'checkbox'
-                                  : 'checkbox-blank'
-                              }
-                              size="M"
-                            />
+                            <Icon name={ttts.demarchesModificationInterdit ? 'checkbox' : 'checkbox-blank'} size="M" />
                           </td>
                           <td>
-                            <Icon
-                              name={
-                                ttts.etapesModificationInterdit
-                                  ? 'checkbox'
-                                  : 'checkbox-blank'
-                              }
-                              size="M"
-                            />
+                            <Icon name={ttts.etapesModificationInterdit ? 'checkbox' : 'checkbox-blank'} size="M" />
                           </td>
                         </tr>
                       ))}
@@ -152,19 +102,11 @@ export const Permissions = defineComponent<Props>({
               </div>
 
               <div class="mb-xxl">
-                <h3>
-                  Restrictions de la visibilité, édition et création des étapes
-                </h3>
+                <h3>Restrictions de la visibilité, édition et création des étapes</h3>
 
                 <div class="h6">
-                  <p class="mb-s">
-                    Par défaut, un utilisateur d'une administration gestionnaire
-                    ou locale peut voir, modifier et créer des étapes des titre.
-                  </p>
-                  <p>
-                    Restreint ces droits par domaine / type de titre / type
-                    d'étape.
-                  </p>
+                  <p class="mb-s">Par défaut, un utilisateur d'une administration gestionnaire ou locale peut voir, modifier et créer des étapes des titre.</p>
+                  <p>Restreint ces droits par domaine / type de titre / type d'étape.</p>
                 </div>
 
                 <div class="line width-full" />
@@ -183,53 +125,22 @@ export const Permissions = defineComponent<Props>({
                       {item.titresTypesEtapesTypes.map(ttet => (
                         <tr key={`${ttet.titreType.id}-${ttet.etapeType.id}`}>
                           <td>
-                            <CaminoDomaine
-                              domaineId={TT[ttet.titreType.id].domaineId}
-                              class="mt-s"
-                            />
+                            <CaminoDomaine domaineId={TT[ttet.titreType.id].domaineId} class="mt-s" />
                           </td>
                           <td>
-                            <span class="small bold cap-first mt-s">
-                              {
-                                TitresTypesTypes[TT[ttet.titreType.id].typeId]
-                                  .nom
-                              }
-                            </span>
+                            <span class="small bold cap-first mt-s">{TitresTypesTypes[TT[ttet.titreType.id].typeId].nom}</span>
                           </td>
                           <td>
-                            <span class="small bold cap-first mt-s">
-                              {EtapesTypes[ttet.etapeType.id].nom}
-                            </span>
+                            <span class="small bold cap-first mt-s">{EtapesTypes[ttet.etapeType.id].nom}</span>
                           </td>
                           <td>
-                            <Icon
-                              name={
-                                ttet.lectureInterdit
-                                  ? 'checkbox'
-                                  : 'checkbox-blank'
-                              }
-                              size="M"
-                            />
+                            <Icon name={ttet.lectureInterdit ? 'checkbox' : 'checkbox-blank'} size="M" />
                           </td>
                           <td>
-                            <Icon
-                              name={
-                                ttet.modificationInterdit
-                                  ? 'checkbox'
-                                  : 'checkbox-blank'
-                              }
-                              size="M"
-                            />
+                            <Icon name={ttet.modificationInterdit ? 'checkbox' : 'checkbox-blank'} size="M" />
                           </td>
                           <td>
-                            <Icon
-                              name={
-                                ttet.creationInterdit
-                                  ? 'checkbox'
-                                  : 'checkbox-blank'
-                              }
-                              size="M"
-                            />
+                            <Icon name={ttet.creationInterdit ? 'checkbox' : 'checkbox-blank'} size="M" />
                           </td>
                         </tr>
                       ))}
@@ -239,15 +150,10 @@ export const Permissions = defineComponent<Props>({
               </div>
 
               <div class="mb-xxl">
-                <h3>
-                  Restriction de la visibilité et de l'édition des activités
-                </h3>
+                <h3>Restriction de la visibilité et de l'édition des activités</h3>
 
                 <div class="h6">
-                  <p class="mb-s">
-                    Par défaut, un utilisateur d'une administration gestionnaire
-                    ou locale peut voir et modifier les activités des titres.
-                  </p>
+                  <p class="mb-s">Par défaut, un utilisateur d'une administration gestionnaire ou locale peut voir et modifier les activités des titres.</p>
 
                   <p>Restreint ces droits par type d'étape.</p>
                 </div>
@@ -267,29 +173,14 @@ export const Permissions = defineComponent<Props>({
                         <tr key={activiteType.id}>
                           <td>
                             <span class="cap-first">
-                              {ActivitesTypes[activiteType.id].nom} (
-                              {activiteType.id.toUpperCase()})
+                              {ActivitesTypes[activiteType.id].nom} ({activiteType.id.toUpperCase()})
                             </span>
                           </td>
                           <td>
-                            <Icon
-                              name={
-                                activiteType.lectureInterdit
-                                  ? 'checkbox'
-                                  : 'checkbox-blank'
-                              }
-                              size="M"
-                            />
+                            <Icon name={activiteType.lectureInterdit ? 'checkbox' : 'checkbox-blank'} size="M" />
                           </td>
                           <td>
-                            <Icon
-                              name={
-                                activiteType.modificationInterdit
-                                  ? 'checkbox'
-                                  : 'checkbox-blank'
-                              }
-                              size="M"
-                            />
+                            <Icon name={activiteType.modificationInterdit ? 'checkbox' : 'checkbox-blank'} size="M" />
                           </td>
                         </tr>
                       ))}
@@ -302,5 +193,5 @@ export const Permissions = defineComponent<Props>({
         />
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/administration/titres-types.stories.tsx b/packages/ui/src/components/administration/titres-types.stories.tsx
index 760f86716..d3c48061b 100644
--- a/packages/ui/src/components/administration/titres-types.stories.tsx
+++ b/packages/ui/src/components/administration/titres-types.stories.tsx
@@ -4,12 +4,8 @@ import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
 
 const meta: Meta = {
   title: 'Components/Administration/TitresTypes',
-  component: TitresTypes
+  component: TitresTypes,
 }
 export default meta
 
-export const ONF: Story = () => (
-  <TitresTypes
-    administrationId={ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']}
-  />
-)
+export const ONF: Story = () => <TitresTypes administrationId={ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']} />
diff --git a/packages/ui/src/components/administration/titres-types.tsx b/packages/ui/src/components/administration/titres-types.tsx
index afce412a9..3c9f2d957 100644
--- a/packages/ui/src/components/administration/titres-types.tsx
+++ b/packages/ui/src/components/administration/titres-types.tsx
@@ -2,10 +2,7 @@ import { FunctionalComponent } from 'vue'
 import { AdministrationId } from 'camino-common/src/static/administrations'
 import { getTitreTypeIdsByAdministration } from 'camino-common/src/static/administrationsTitresTypes'
 import { DomaineId } from 'camino-common/src/static/domaines'
-import {
-  TitresTypes as TT,
-  TitreTypeId
-} from 'camino-common/src/static/titresTypes'
+import { TitresTypes as TT, TitreTypeId } from 'camino-common/src/static/titresTypes'
 import { TitresTypesTypes } from 'camino-common/src/static/titresTypesTypes'
 import { Domaine as CaminoDomaine } from '@/components/_common/domaine'
 import { Icon } from '@/components/_ui/icon'
@@ -22,9 +19,7 @@ type AdministrationTitresTypes = {
   associee: boolean
 }
 
-const titresTypes = (
-  administrationId: AdministrationId
-): AdministrationTitresTypes[] => {
+const titresTypes = (administrationId: AdministrationId): AdministrationTitresTypes[] => {
   return getTitreTypeIdsByAdministration(administrationId).map(att => {
     const titreType = TT[att.titreTypeId]
     return {
@@ -32,7 +27,7 @@ const titresTypes = (
       domaineId: titreType.domaineId,
       titreTypeTypeNom: TitresTypesTypes[titreType.typeId].nom,
       gestionnaire: att.gestionnaire,
-      associee: att.associee
+      associee: att.associee,
     }
   })
 }
@@ -44,13 +39,10 @@ export const TitresTypes: FunctionalComponent<Props> = props => (
     <div class="h6">
       <ul class="list-prefix">
         <li>
-          Un utilisateur d'une <b>administration gestionnaire</b> peut créer et
-          modifier les titres et leur contenu.
+          Un utilisateur d'une <b>administration gestionnaire</b> peut créer et modifier les titres et leur contenu.
         </li>
         <li>
-          Un utilisateur d'une <b>administration associée</b> peut voir les
-          titres non-publics. Cette administration n'apparaît pas sur les pages
-          des titres.
+          Un utilisateur d'une <b>administration associée</b> peut voir les titres non-publics. Cette administration n'apparaît pas sur les pages des titres.
         </li>
       </ul>
     </div>
@@ -72,21 +64,13 @@ export const TitresTypes: FunctionalComponent<Props> = props => (
                 <CaminoDomaine domaineId={titreType.domaineId} class="mt-s" />
               </td>
               <td>
-                <span class="small bold cap-first mt-s">
-                  {titreType.titreTypeTypeNom}
-                </span>
+                <span class="small bold cap-first mt-s">{titreType.titreTypeTypeNom}</span>
               </td>
               <td>
-                <Icon
-                  name={titreType.gestionnaire ? 'checkbox' : 'checkbox-blank'}
-                  size="M"
-                />
+                <Icon name={titreType.gestionnaire ? 'checkbox' : 'checkbox-blank'} size="M" />
               </td>
               <td>
-                <Icon
-                  name={titreType.associee ? 'checkbox' : 'checkbox-blank'}
-                  size="M"
-                />
+                <Icon name={titreType.associee ? 'checkbox' : 'checkbox-blank'} size="M" />
               </td>
             </tr>
           ))}
diff --git a/packages/ui/src/components/administrations.stories.tsx b/packages/ui/src/components/administrations.stories.tsx
index 1496ce9b7..437576521 100644
--- a/packages/ui/src/components/administrations.stories.tsx
+++ b/packages/ui/src/components/administrations.stories.tsx
@@ -4,7 +4,7 @@ import { Meta, Story } from '@storybook/vue3'
 const meta: Meta = {
   title: 'Components/Administrations',
   component: Administrations,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
diff --git a/packages/ui/src/components/administrations.tsx b/packages/ui/src/components/administrations.tsx
index 4e4b1f412..b8118115d 100644
--- a/packages/ui/src/components/administrations.tsx
+++ b/packages/ui/src/components/administrations.tsx
@@ -1,11 +1,6 @@
 import { defineComponent, computed, ref, markRaw } from 'vue'
 import Liste from './_common/liste.vue'
-import {
-  ADMINISTRATION_TYPES,
-  Administrations as Adms,
-  AdministrationTypeId,
-  sortedAdministrationTypes
-} from 'camino-common/src/static/administrations'
+import { ADMINISTRATION_TYPES, Administrations as Adms, AdministrationTypeId, sortedAdministrationTypes } from 'camino-common/src/static/administrations'
 import { elementsFormat } from '@/utils'
 import { Tag } from '@/components/_ui/tag'
 import { ComponentColumnData, TableRow, TextColumnData } from './_ui/table'
@@ -13,16 +8,16 @@ import { ComponentColumnData, TableRow, TextColumnData } from './_ui/table'
 const colonnes = [
   {
     id: 'abreviation',
-    name: 'Abréviation'
+    name: 'Abréviation',
   },
   {
     id: 'nom',
-    name: 'Nom'
+    name: 'Nom',
   },
   {
     id: 'type',
-    name: 'Type'
-  }
+    name: 'Type',
+  },
 ] as const
 const filtres = [
   {
@@ -30,7 +25,7 @@ const filtres = [
     type: 'input',
     value: '',
     name: 'Nom',
-    placeholder: `Nom de l'administration`
+    placeholder: `Nom de l'administration`,
   },
   {
     id: 'typesIds',
@@ -38,8 +33,8 @@ const filtres = [
     type: 'checkboxes',
     value: [],
     elements: [],
-    elementsFormat
-  }
+    elementsFormat,
+  },
 ]
 type ColonneId = (typeof colonnes)[number]['id']
 
@@ -52,12 +47,10 @@ type ParamsTable = {
   params: { colonne: ColonneId; ordre: 'asc' | 'desc' }
 }
 
-const isParamsFiltre = (
-  options: ParamsFiltre | ParamsTable
-): options is ParamsFiltre => options.section === 'filtres'
+const isParamsFiltre = (options: ParamsFiltre | ParamsTable): options is ParamsFiltre => options.section === 'filtres'
 
 const metas = {
-  types: sortedAdministrationTypes
+  types: sortedAdministrationTypes,
 }
 
 const administrations = Object.values(Adms)
@@ -71,25 +64,21 @@ export const Administrations = defineComponent({
       table: {
         page: 0,
         colonne: 'abreviation',
-        ordre: 'asc'
+        ordre: 'asc',
       },
-      filtres
+      filtres,
     })
 
     const listState = ref<{ noms: string; typesIds: AdministrationTypeId[] }>({
       noms: '',
-      typesIds: []
+      typesIds: [],
     })
 
     const lignes = computed<TableRow[]>(() => {
       return [...administrations]
         .filter(a => {
           if (listState.value.noms.length) {
-            if (
-              !a.id.toLowerCase().includes(listState.value.noms) &&
-              !a.nom.toLowerCase().includes(listState.value.noms) &&
-              !a.abreviation.toLowerCase().includes(listState.value.noms)
-            ) {
+            if (!a.id.toLowerCase().includes(listState.value.noms) && !a.nom.toLowerCase().includes(listState.value.noms) && !a.abreviation.toLowerCase().includes(listState.value.noms)) {
               return false
             }
           }
@@ -121,22 +110,21 @@ export const Administrations = defineComponent({
         .map(administration => {
           const type = ADMINISTRATION_TYPES[administration.typeId]
 
-          const columns: Record<string, ComponentColumnData | TextColumnData> =
-            {
-              abreviation: { value: administration.abreviation },
-              nom: { value: administration.nom, class: ['h6'] },
-              type: {
-                component: markRaw(Tag),
-                props: { mini: true, text: type.nom },
-                class: 'mb--xs',
-                value: 'unused'
-              }
-            }
+          const columns: Record<string, ComponentColumnData | TextColumnData> = {
+            abreviation: { value: administration.abreviation },
+            nom: { value: administration.nom, class: ['h6'] },
+            type: {
+              component: markRaw(Tag),
+              props: { mini: true, text: type.nom },
+              class: 'mb--xs',
+              value: 'unused',
+            },
+          }
 
           return {
             id: administration.id,
             link: { name: 'administration', params: { id: administration.id } },
-            columns
+            columns,
           }
         })
     })
@@ -163,5 +151,5 @@ export const Administrations = defineComponent({
         onParamsUpdate={paramsUpdate}
       />
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/content/about.vue b/packages/ui/src/components/content/about.vue
index 41b5a317d..15aa166ac 100644
--- a/packages/ui/src/components/content/about.vue
+++ b/packages/ui/src/components/content/about.vue
@@ -9,71 +9,42 @@
         <br class="hide desktop-static" />est trop complexe
       </h2>
       <span class="separator" />
-      <p class="lead">
-        Pour les entreprises minières, gérer un projet d’exploration ou
-        d’exploitation est un parcours du combattant, de la conception du projet
-        jusqu'à la gestion de l'après-mine.
-      </p>
+      <p class="lead">Pour les entreprises minières, gérer un projet d’exploration ou d’exploitation est un parcours du combattant, de la conception du projet jusqu'à la gestion de l'après-mine.</p>
 
       <div class="desktop-blobs">
         <div class="desktop-blob-1-3">
           <p>
-            Quel est l’état juridique du domaine minier sur la zone ? Quelles
-            démarches administratives dois-je suivre ? Quelles contraintes
-            environnementales dois-je intégrer à mon projet ? Toutes ces
-            questions essentielles ne trouvent pas simplement de réponses.
+            Quel est l’état juridique du domaine minier sur la zone ? Quelles démarches administratives dois-je suivre ? Quelles contraintes environnementales dois-je intégrer à mon projet ? Toutes
+            ces questions essentielles ne trouvent pas simplement de réponses.
           </p>
           <p>
-            Déposer une demande, actualiser les milliers de pages de dossiers
-            papiers, tracer sa demande dans les multiples services de l’État
-            impliqués, faire ses déclarations au bon moment et au bon format,
-            sont
+            Déposer une demande, actualiser les milliers de pages de dossiers papiers, tracer sa demande dans les multiples services de l’État impliqués, faire ses déclarations au bon moment et au bon
+            format, sont
             <b>autant de démarches complexes et consommatrices de temps.</b>
           </p>
         </div>
         <div class="desktop-blob-1-3">
           <p>
             De son côté,
-            <b>
-              l’administration traite chaque année près de 2 000 démarches
-              conduites au titre du code minier,
-            </b>
-            avec des systèmes d’information fermés, des tableaux de suivi
-            pléthoriques, des archives papier et des gigaoctets de dossiers
-            dispersés dans ses services nationaux et locaux.
-          </p>
-          <p>
-            <b>
-              L’enregistrement, la consultation et la valorisation des données
-              de l’administration des mines est impossible ou trop peu efficace </b
-            >.
+            <b> l’administration traite chaque année près de 2 000 démarches conduites au titre du code minier, </b>
+            avec des systèmes d’information fermés, des tableaux de suivi pléthoriques, des archives papier et des gigaoctets de dossiers dispersés dans ses services nationaux et locaux.
           </p>
+          <p><b> L’enregistrement, la consultation et la valorisation des données de l’administration des mines est impossible ou trop peu efficace </b>.</p>
         </div>
         <div class="desktop-blob-1-3">
           <p>
-            <b>
-              Sur le terrain, les citoyens et les élus ne découvrent les projets
-              qui les concernent qu’au dernier moment, lors d’une consultation
-              ou d’une enquête publique.
-            </b>
-            Ils se disent souvent pris de cours face à des dossiers complexes ou
-            volumineux et faute d’accès simple et durable aux informations sur
-            les projets miniers.
+            <b> Sur le terrain, les citoyens et les élus ne découvrent les projets qui les concernent qu’au dernier moment, lors d’une consultation ou d’une enquête publique. </b>
+            Ils se disent souvent pris de cours face à des dossiers complexes ou volumineux et faute d’accès simple et durable aux informations sur les projets miniers.
           </p>
           <p>
-            <b>
-              Une telle situation ne permet pas d’engager des débats ouverts,
-              éclairés et sereins sur les projets miniers en France.
-            </b>
+            <b> Une telle situation ne permet pas d’engager des débats ouverts, éclairés et sereins sur les projets miniers en France. </b>
           </p>
         </div>
       </div>
     </div>
 
     <div id="utilisateurs" class="mb-xxl">
-      <h4 class="mb-s color-neutral">
-        Camino numérise l'administration des mines
-      </h4>
+      <h4 class="mb-s color-neutral">Camino numérise l'administration des mines</h4>
 
       <h2>Pour simplifier la vie de toutes les parties prenantes</h2>
 
@@ -81,8 +52,7 @@
 
       <p class="lead">
         Camino va simplifier les démarches des entreprises,
-        <br class="hide desktop-static" />ouvrir les données aux citoyens et
-        faciliter le travail des agents publics impliqués dans ces projets.
+        <br class="hide desktop-static" />ouvrir les données aux citoyens et faciliter le travail des agents publics impliqués dans ces projets.
       </p>
 
       <div class="desktop-blobs">
@@ -94,30 +64,21 @@
           <h3>Les entreprises</h3>
 
           <p>
-            pourront connaitre l’état du domaine minier puis déposer en ligne
-            leurs demandes, les rapports et les données réglementaires. Elles
-            pourront aussi visualiser l’avancement des instructions, suivre leur
-            portefeuille de titres et répondre simplement à leurs obligations à
-            chaque étape des projets.
+            pourront connaitre l’état du domaine minier puis déposer en ligne leurs demandes, les rapports et les données réglementaires. Elles pourront aussi visualiser l’avancement des instructions,
+            suivre leur portefeuille de titres et répondre simplement à leurs obligations à chaque étape des projets.
           </p>
         </div>
 
         <div class="desktop-blob-1-3">
           <div class="p-l">
-            <img
-              class="logo"
-              :src="ngo"
-              alt="Les ONG, les citoyens et leurs élus"
-            />
+            <img class="logo" :src="ngo" alt="Les ONG, les citoyens et leurs élus" />
           </div>
 
           <h3>Les ONG, les citoyens et leurs élus</h3>
 
           <p>
-            pourront consulter à tout moment les dossiers et les données
-            publiques, à l’échelle de leur territoire pour mieux contribuer,
-            sans précipitation, aux procédures de participation du public et
-            suivre de manière transparente l’actualité des projets.
+            pourront consulter à tout moment les dossiers et les données publiques, à l’échelle de leur territoire pour mieux contribuer, sans précipitation, aux procédures de participation du public
+            et suivre de manière transparente l’actualité des projets.
           </p>
         </div>
 
@@ -129,30 +90,22 @@
           <h3>Les agents publics</h3>
 
           <p>
-            pourront simplement accéder aux mêmes dossiers et données partagés
-            entre les services des administrations et opérateurs publics. Il
-            sera possible de co-instruire les demandes, de suivre et anticiper
-            chaque moment de vie d’un projet, de trouver et valoriser les
-            données sur le domaine minier national simplement et sans
-            intermédiaire.
+            pourront simplement accéder aux mêmes dossiers et données partagés entre les services des administrations et opérateurs publics. Il sera possible de co-instruire les demandes, de suivre et
+            anticiper chaque moment de vie d’un projet, de trouver et valoriser les données sur le domaine minier national simplement et sans intermédiaire.
           </p>
         </div>
       </div>
     </div>
 
     <div id="services" class="mb-xxl">
-      <h4 class="mb-s color-neutral">
-        Camino change l'administration des mines
-      </h4>
+      <h4 class="mb-s color-neutral">Camino change l'administration des mines</h4>
 
       <h2>Avec de nouveaux services numériques</h2>
 
       <span class="separator" />
 
       <p class="lead">
-        Avec Camino, il sera enfin possible de consulter les caractéristiques
-        des titres miniers sur une carte à jour et de suivre les projets en
-        cours à chaque étape importante de leur vie.
+        Avec Camino, il sera enfin possible de consulter les caractéristiques des titres miniers sur une carte à jour et de suivre les projets en cours à chaque étape importante de leur vie.
       </p>
 
       <div class="desktop-blobs">
@@ -162,10 +115,7 @@
           </div>
           <h3>Une carte interactive</h3>
 
-          <p>
-            Nous présenterons une cartographie complète et à jour du domaine
-            minier national et des projets en cours.
-          </p>
+          <p>Nous présenterons une cartographie complète et à jour du domaine minier national et des projets en cours.</p>
         </div>
 
         <div class="desktop-blob-1-3">
@@ -175,11 +125,7 @@
 
           <h3>Des tableaux de bord</h3>
 
-          <p>
-            Nous dématérialiserons les premières procédures les plus fréquentes
-            du code minier et proposerons un tableau de bord aux entreprises qui
-            expérimenteront le service Camino.
-          </p>
+          <p>Nous dématérialiserons les premières procédures les plus fréquentes du code minier et proposerons un tableau de bord aux entreprises qui expérimenteront le service Camino.</p>
         </div>
 
         <div class="desktop-blob-1-3">
@@ -190,10 +136,8 @@
           <h3>Une API ouverte</h3>
 
           <p>
-            Avec les données recueillies, nous automatiserons l’actualisation du
-            cadastre minier et nous diffuserons dans un standard électronique
-            ouvert les données et documents publics déjà disponibles d’ici six
-            mois, notamment via data.gouv.fr.
+            Avec les données recueillies, nous automatiserons l’actualisation du cadastre minier et nous diffuserons dans un standard électronique ouvert les données et documents publics déjà
+            disponibles d’ici six mois, notamment via data.gouv.fr.
           </p>
         </div>
       </div>
@@ -201,114 +145,65 @@
 
     <div id="activites" class="mb-xxl">
       <h4 class="mb-s color-neutral">Tous les projets miniers concernés</h4>
-      <h2>
-        D'ici 2022 l'ensemble des procédures du code minier devront être
-        numériques
-      </h2>
+      <h2>D'ici 2022 l'ensemble des procédures du code minier devront être numériques</h2>
       <span class="separator" />
       <div class="tablet-blobs">
         <div class="tablet-blob-1-2 desktop-blob-1-3 p bg-bg rnd shadow mb">
           <h3>Ressources minérales non-énergétiques</h3>
-          <img
-            src="/img/about/gallery-non-energetique.jpg"
-            alt="Mine de sel"
-            class="mb"
-          />
+          <img src="/img/about/gallery-non-energetique.jpg" alt="Mine de sel" class="mb" />
 
           <p>
-            Les matières premières minérales sont à la base du développement de
-            l’humanité. En 200 ans, l’ère industrielle puis la croissance
-            économique des pays émergents ont accéléré l’utilisation de ces
-            ressources non renouvelables du sous-sol. Leur développement durable
-            s’appuie sur l’équilibre entre l’extraction des réserves accessibles
-            et la découverte de nouveaux gisements, le recyclage et l’économie
-            circulaire.
+            Les matières premières minérales sont à la base du développement de l’humanité. En 200 ans, l’ère industrielle puis la croissance économique des pays émergents ont accéléré l’utilisation
+            de ces ressources non renouvelables du sous-sol. Leur développement durable s’appuie sur l’équilibre entre l’extraction des réserves accessibles et la découverte de nouveaux gisements, le
+            recyclage et l’économie circulaire.
           </p>
         </div>
         <div class="tablet-blob-1-2 desktop-blob-1-3 p bg-bg rnd shadow mb">
           <h3>Matières premières énergétiques</h3>
-          <img
-            src="/img/about/gallery-energetique.jpg"
-            alt="Forage"
-            class="mb"
-          />
+          <img src="/img/about/gallery-energetique.jpg" alt="Forage" class="mb" />
 
           <p>
-            Les matières premières énergétiques comme le charbon, le pétrole ou
-            le gaz se sont imposées en tant que source d’énergie au cours du
-            20ème siècle. Formées dans des processus géologiques qui ont duré
-            plusieurs millions d’années, elles ne sont pas renouvelables à
-            l’échelle humaine et il est donc nécessaire de veiller à en avoir un
-            usage rationnel.
+            Les matières premières énergétiques comme le charbon, le pétrole ou le gaz se sont imposées en tant que source d’énergie au cours du 20ème siècle. Formées dans des processus géologiques
+            qui ont duré plusieurs millions d’années, elles ne sont pas renouvelables à l’échelle humaine et il est donc nécessaire de veiller à en avoir un usage rationnel.
           </p>
         </div>
         <div class="tablet-blob-1-2 desktop-blob-1-3 p bg-bg rnd shadow mb">
           <h3>Stockages souterrains</h3>
 
-          <img
-            src="/img/about/gallery-stockages.jpg"
-            alt="Station de contrôle"
-            class="mb"
-          />
+          <img src="/img/about/gallery-stockages.jpg" alt="Station de contrôle" class="mb" />
 
           <p>
-            Les capacités de stockage dans le sous-sol profond ont d’abord été
-            utilisées pour compléter le dispositif de sécurité
-            d’approvisionnement dans des territoires ne disposant pas ou peu de
-            matières premières énergétiques. Ces capacités sont aujourd’hui
-            étudiées pour des usages futurs comme le stockage de CO2 pour
-            réduire les émissions de GES dans l’atmosphère ou pour le stockage
-            d’énergie en association avec les énergies alternatives.
+            Les capacités de stockage dans le sous-sol profond ont d’abord été utilisées pour compléter le dispositif de sécurité d’approvisionnement dans des territoires ne disposant pas ou peu de
+            matières premières énergétiques. Ces capacités sont aujourd’hui étudiées pour des usages futurs comme le stockage de CO2 pour réduire les émissions de GES dans l’atmosphère ou pour le
+            stockage d’énergie en association avec les énergies alternatives.
           </p>
         </div>
 
         <div class="tablet-blob-1-2 desktop-blob-1-3 p bg-bg rnd shadow mb">
           <h3>Géothermie profonde</h3>
 
-          <img
-            src="/img/about/gallery-geothermie.jpg"
-            alt="Centrale géothermique"
-            class="mb"
-          />
+          <img src="/img/about/gallery-geothermie.jpg" alt="Centrale géothermique" class="mb" />
 
-          <p>
-            Provenant des sources de chaleur interne de la Terre, cette énergie
-            abondante mais de faible intensité est en train de trouver sa place
-            dans le mix énergétique du 21ème siècle.
-          </p>
+          <p>Provenant des sources de chaleur interne de la Terre, cette énergie abondante mais de faible intensité est en train de trouver sa place dans le mix énergétique du 21ème siècle.</p>
         </div>
         <div class="tablet-blob-1-2 desktop-blob-1-3 p bg-bg rnd shadow mb">
           <h3>Travaux miniers</h3>
-          <img
-            src="/img/about/gallery-travaux.jpg"
-            alt="Centrale géothermique"
-            class="mb"
-          />
+          <img src="/img/about/gallery-travaux.jpg" alt="Centrale géothermique" class="mb" />
 
           <p>
-            Les travaux de recherche ou d’exploitation de substances minières
-            sont encadrés par la police des mines, mission confiée à l’État, qui
-            a pour objet de prévenir et faire cesser les dommages et nuisances
-            liées aux activités minières et de faire respecter les obligations
-            de l’exploitant minier.
+            Les travaux de recherche ou d’exploitation de substances minières sont encadrés par la police des mines, mission confiée à l’État, qui a pour objet de prévenir et faire cesser les dommages
+            et nuisances liées aux activités minières et de faire respecter les obligations de l’exploitant minier.
           </p>
         </div>
         <div class="tablet-blob-1-2 desktop-blob-1-3 p bg-bg rnd shadow mb">
           <h3>Après mines</h3>
 
-          <img
-            src="/img/about/gallery-apresmine.jpg"
-            alt="Centrale géothermique"
-            class="mb"
-          />
+          <img src="/img/about/gallery-apresmine.jpg" alt="Centrale géothermique" class="mb" />
 
           <p>
-            L’arrêt de l’activité minière n’induit pas pour autant la
-            disparition des phénomènes susceptibles d’affecter les terrains de
-            surface situés dans l’emprise de l’ancienne exploitation. Ainsi,
-            durant la période qui suit l’exploitation, traditionnellement
-            appelée «après-mine», des désordres peuvent se développer, parfois
-            dès l’arrêt des travaux mais également beaucoup plus tardivement.
+            L’arrêt de l’activité minière n’induit pas pour autant la disparition des phénomènes susceptibles d’affecter les terrains de surface situés dans l’emprise de l’ancienne exploitation.
+            Ainsi, durant la période qui suit l’exploitation, traditionnellement appelée «après-mine», des désordres peuvent se développer, parfois dès l’arrêt des travaux mais également beaucoup plus
+            tardivement.
           </p>
         </div>
       </div>
@@ -316,11 +211,8 @@
 
     <span class="separator" />
     <div class="mb-xxl">
-      Plus d’informations relatives à Camino et son équipe sont accessibles sur
-      cette
-      <a target="_blank" href="https://beta.gouv.fr/startups/camino.html"
-        >page</a
-      >.
+      Plus d’informations relatives à Camino et son équipe sont accessibles sur cette
+      <a target="_blank" href="https://beta.gouv.fr/startups/camino.html">page</a>.
     </div>
   </div>
 </template>
diff --git a/packages/ui/src/components/dashboard.tsx b/packages/ui/src/components/dashboard.tsx
index 1b4ec3875..1f0405eb3 100644
--- a/packages/ui/src/components/dashboard.tsx
+++ b/packages/ui/src/components/dashboard.tsx
@@ -4,11 +4,7 @@ import { PureONFDashboard } from '@/components/dashboard/pure-onf-dashboard'
 import { PurePTMGDashboard } from '@/components/dashboard/pure-ptmg-dashboard'
 import { PureDrealDashboard } from '@/components/dashboard/pure-dreal-dashboard'
 import { fetchWithJson } from '@/api/client-rest'
-import {
-  CommonTitreDREAL,
-  CommonTitreONF,
-  CommonTitrePTMG
-} from 'camino-common/src/titres'
+import { CommonTitreDREAL, CommonTitreONF, CommonTitrePTMG } from 'camino-common/src/titres'
 
 import { useStore } from 'vuex'
 import { useRouter } from 'vue-router'
@@ -18,14 +14,10 @@ import { CaminoRestRoutes } from 'camino-common/src/rest'
 import { canReadActivites } from 'camino-common/src/permissions/activites'
 import { EntrepriseId } from 'camino-common/src/entreprise'
 
-const getOnfTitres = async (): Promise<CommonTitreONF[]> =>
-  fetchWithJson(CaminoRestRoutes.titresONF, {})
-const getPtmgTitres = async (): Promise<CommonTitrePTMG[]> =>
-  fetchWithJson(CaminoRestRoutes.titresPTMG, {})
-const getDrealTitres = async (): Promise<CommonTitreDREAL[]> =>
-  fetchWithJson(CaminoRestRoutes.titresDREAL, {})
-const getDgtmStats = async (): Promise<StatistiquesDGTM> =>
-  fetchWithJson(CaminoRestRoutes.statistiquesDGTM, {})
+const getOnfTitres = async (): Promise<CommonTitreONF[]> => fetchWithJson(CaminoRestRoutes.titresONF, {})
+const getPtmgTitres = async (): Promise<CommonTitrePTMG[]> => fetchWithJson(CaminoRestRoutes.titresPTMG, {})
+const getDrealTitres = async (): Promise<CommonTitreDREAL[]> => fetchWithJson(CaminoRestRoutes.titresDREAL, {})
+const getDgtmStats = async (): Promise<StatistiquesDGTM> => fetchWithJson(CaminoRestRoutes.statistiquesDGTM, {})
 
 export const Dashboard = defineComponent({
   setup() {
@@ -44,9 +36,7 @@ export const Dashboard = defineComponent({
     const entreprises = store.getters['user/user']?.entreprises ?? []
     if (hasEntreprises) {
       // TODO 2022-03-17: type the store
-      entreprisesIds.push(
-        ...entreprises.map((entreprise: { id: EntrepriseId }) => entreprise.id)
-      )
+      entreprisesIds.push(...entreprises.map((entreprise: { id: EntrepriseId }) => entreprise.id))
     } else if (!isONF && !isPTMG && !isDREAL && !isDGTM) {
       store.commit('titres/reset')
       store.dispatch('titres/init')
@@ -58,27 +48,14 @@ export const Dashboard = defineComponent({
 
     let dashboard = <div>Loading</div>
     if (hasEntreprises) {
-      dashboard = (
-        <PureEntrepriseDashboard
-          getEntreprisesTitres={getEntreprisesTitres}
-          user={user}
-          entreprises={entreprises}
-          displayActivites={canReadActivites(user)}
-        />
-      )
+      dashboard = <PureEntrepriseDashboard getEntreprisesTitres={getEntreprisesTitres} user={user} entreprises={entreprises} displayActivites={canReadActivites(user)} />
     } else if (isONF) {
       dashboard = <PureONFDashboard getOnfTitres={getOnfTitres} />
     } else if (isPTMG) {
       dashboard = <PurePTMGDashboard getPtmgTitres={getPtmgTitres} />
     } else if (isDREAL || isDGTM) {
-      dashboard = (
-        <PureDrealDashboard
-          getDrealTitres={getDrealTitres}
-          isDGTM={isDGTM}
-          getDgtmStats={getDgtmStats}
-        />
-      )
+      dashboard = <PureDrealDashboard getDrealTitres={getDrealTitres} isDGTM={isDGTM} getDgtmStats={getDgtmStats} />
     }
     return () => <dashboard />
-  }
+  },
 })
diff --git a/packages/ui/src/components/dashboard/dgtm-stats-full.stories.tsx b/packages/ui/src/components/dashboard/dgtm-stats-full.stories.tsx
index 7a661ca32..806cd3226 100644
--- a/packages/ui/src/components/dashboard/dgtm-stats-full.stories.tsx
+++ b/packages/ui/src/components/dashboard/dgtm-stats-full.stories.tsx
@@ -8,21 +8,11 @@ const meta: Meta = {
   component: DGTMStatsFull,
   argTypes: {
     getEntreprisesTitres: { name: 'function', required: true },
-    displayActivites: { name: 'boolean' }
-  }
+    displayActivites: { name: 'boolean' },
+  },
 }
 export default meta
 
-export const OkNoSnapshot: Story = () => (
-  <DGTMStatsFull getDgtmStats={() => Promise.resolve(statistiquesDGTMFake)} />
-)
-export const Loading: Story = () => (
-  <DGTMStatsFull
-    getDgtmStats={() => new Promise<StatistiquesDGTM>(resolve => {})}
-  />
-)
-export const WithError: Story = () => (
-  <DGTMStatsFull
-    getDgtmStats={() => Promise.reject(new Error('because reasons'))}
-  />
-)
+export const OkNoSnapshot: Story = () => <DGTMStatsFull getDgtmStats={() => Promise.resolve(statistiquesDGTMFake)} />
+export const Loading: Story = () => <DGTMStatsFull getDgtmStats={() => new Promise<StatistiquesDGTM>(resolve => {})} />
+export const WithError: Story = () => <DGTMStatsFull getDgtmStats={() => Promise.reject(new Error('because reasons'))} />
diff --git a/packages/ui/src/components/dashboard/dgtm-stats-full.tsx b/packages/ui/src/components/dashboard/dgtm-stats-full.tsx
index 889ab19f2..8e2e443a1 100644
--- a/packages/ui/src/components/dashboard/dgtm-stats-full.tsx
+++ b/packages/ui/src/components/dashboard/dgtm-stats-full.tsx
@@ -11,7 +11,7 @@ import {
   delaiChartConfiguration,
   delaiPerConcessionChartConfiguration,
   producteursOrChartConfiguration,
-  avisAXMChartConfiguration
+  avisAXMChartConfiguration,
 } from './dgtm-stats'
 
 export interface Props {
@@ -22,14 +22,7 @@ export const DGTMStatsFull = defineComponent<Props>({
   setup(props) {
     const data = ref<AsyncData<StatistiquesDGTM>>({ status: 'LOADING' })
 
-    const charts = [
-      sdomChartConfiguration,
-      depotChartConfiguration,
-      delaiChartConfiguration,
-      delaiPerConcessionChartConfiguration,
-      producteursOrChartConfiguration,
-      avisAXMChartConfiguration
-    ]
+    const charts = [sdomChartConfiguration, depotChartConfiguration, delaiChartConfiguration, delaiPerConcessionChartConfiguration, producteursOrChartConfiguration, avisAXMChartConfiguration]
 
     onMounted(async () => {
       try {
@@ -37,17 +30,14 @@ export const DGTMStatsFull = defineComponent<Props>({
           const stats = await props.getDgtmStats()
           data.value = { status: 'LOADED', value: stats }
         } else {
-          const stats = await fetchWithJson(
-            CaminoRestRoutes.statistiquesDGTM,
-            {}
-          )
+          const stats = await fetchWithJson(CaminoRestRoutes.statistiquesDGTM, {})
           data.value = { status: 'LOADED', value: stats }
         }
       } catch (e: any) {
         console.log('error', e)
         data.value = {
           status: 'ERROR',
-          message: e.message ?? 'something wrong happened'
+          message: e.message ?? 'something wrong happened',
         }
       }
     })
@@ -55,13 +45,10 @@ export const DGTMStatsFull = defineComponent<Props>({
       <div class="width-full-p">
         <div style="display: grid; grid-template-columns: 1fr 1fr 1fr">
           {charts.map(chart => (
-            <ChartWithExport
-              data={data.value}
-              getConfiguration={data => chart(data)}
-            />
+            <ChartWithExport data={data.value} getConfiguration={data => chart(data)} />
           ))}
         </div>
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/dashboard/dgtm-stats.ts b/packages/ui/src/components/dashboard/dgtm-stats.ts
index 9ffbd26a1..1cc6ec5e9 100644
--- a/packages/ui/src/components/dashboard/dgtm-stats.ts
+++ b/packages/ui/src/components/dashboard/dgtm-stats.ts
@@ -10,61 +10,43 @@ const datasetParams = (index: number) => {
     tension: 0.5,
     backgroundColor: nextColor(index),
     borderColor: nextColor(index),
-    spanGaps: true
+    spanGaps: true,
   }
 }
 
-export const avisAXMChartConfiguration = (
-  data: StatistiquesDGTM
-): ChartConfiguration => {
+export const avisAXMChartConfiguration = (data: StatistiquesDGTM): ChartConfiguration => {
   const annees: CaminoAnnee[] = Object.keys(data.avisAXM).filter(isAnnee)
 
   const datasets = [
     {
       label: 'DREAL Favorable',
-      data: annees.map(
-        annee =>
-          (data.avisAXM[annee]?.apd?.fav ?? 0) +
-          (data.avisAXM[annee]?.apd?.fre ?? 0)
-      ),
+      data: annees.map(annee => (data.avisAXM[annee]?.apd?.fav ?? 0) + (data.avisAXM[annee]?.apd?.fre ?? 0)),
       backgroundColor: '#6ECCAF',
       borderColor: '#6ECCAF',
-      stack: 'DREAL'
+      stack: 'DREAL',
     },
     {
       label: 'DREAL Défavorable',
-      data: annees.map(
-        annee =>
-          (data.avisAXM[annee]?.apd?.def ?? 0) +
-          (data.avisAXM[annee]?.apd?.dre ?? 0)
-      ),
+      data: annees.map(annee => (data.avisAXM[annee]?.apd?.def ?? 0) + (data.avisAXM[annee]?.apd?.dre ?? 0)),
       backgroundColor: '#E14D2A',
       borderColor: '#E14D2A',
-      stack: 'DREAL'
+      stack: 'DREAL',
     },
 
     {
       label: 'CDM Favorable',
-      data: annees.map(
-        annee =>
-          (data.avisAXM[annee]?.apo?.fav ?? 0) +
-          (data.avisAXM[annee]?.apo?.fre ?? 0)
-      ),
+      data: annees.map(annee => (data.avisAXM[annee]?.apo?.fav ?? 0) + (data.avisAXM[annee]?.apo?.fre ?? 0)),
       backgroundColor: '#ADE792',
       borderColor: '#ADE792',
-      stack: 'CDM'
+      stack: 'CDM',
     },
     {
       label: 'CDM Défavorable',
-      data: annees.map(
-        annee =>
-          (data.avisAXM[annee]?.apo?.def ?? 0) +
-          (data.avisAXM[annee]?.apo?.dre ?? 0)
-      ),
+      data: annees.map(annee => (data.avisAXM[annee]?.apo?.def ?? 0) + (data.avisAXM[annee]?.apo?.dre ?? 0)),
       backgroundColor: '#FD841F',
       borderColor: '#FD841F',
-      stack: 'CDM'
-    }
+      stack: 'CDM',
+    },
   ]
 
   const chartData: ChartData = { labels: annees, datasets }
@@ -75,32 +57,30 @@ export const avisAXMChartConfiguration = (
       plugins: {
         title: {
           display: true,
-          text: 'Avis AEX'
-        }
+          text: 'Avis AEX',
+        },
       },
       locale: 'fr-FR',
       aspectRatio: 1.33,
       responsive: true,
       interaction: {
         mode: 'index',
-        intersect: false
+        intersect: false,
       },
-      scales: { x: { stacked: true }, y: { stacked: true } }
-    }
+      scales: { x: { stacked: true }, y: { stacked: true } },
+    },
   }
 }
 
-export const producteursOrChartConfiguration = (
-  data: StatistiquesDGTM
-): ChartConfiguration => {
+export const producteursOrChartConfiguration = (data: StatistiquesDGTM): ChartConfiguration => {
   const annees: CaminoAnnee[] = Object.keys(data.producteursOr).filter(isAnnee)
 
   const datasets = [
     {
       label: 'Producteurs',
       data: annees.map(annee => data.producteursOr[annee]),
-      ...datasetParams(0)
-    }
+      ...datasetParams(0),
+    },
   ]
 
   const chartData: ChartData = { labels: annees, datasets }
@@ -111,13 +91,13 @@ export const producteursOrChartConfiguration = (
       plugins: {
         title: {
           display: true,
-          text: "Nombre d'entreprises produisant de l'or"
+          text: "Nombre d'entreprises produisant de l'or",
         },
         legend: {
           labels: {
-            boxHeight: 0
-          }
-        }
+            boxHeight: 0,
+          },
+        },
       },
       scales: { y: { min: 0 } },
       locale: 'fr-FR',
@@ -125,46 +105,26 @@ export const producteursOrChartConfiguration = (
       responsive: true,
       interaction: {
         mode: 'index',
-        intersect: false
-      }
-    }
+        intersect: false,
+      },
+    },
   }
 }
 
-export const delaiPerConcessionChartConfiguration = (
-  data: StatistiquesDGTM
-): ChartConfiguration => {
+export const delaiPerConcessionChartConfiguration = (data: StatistiquesDGTM): ChartConfiguration => {
   const annees: CaminoAnnee[] = Object.keys(data.delais).filter(isAnnee)
 
   const datasets = [
     {
       label: 'PER',
-      data: annees.map(annee =>
-        Math.round(
-          data.delais[annee].prm.delaiInstructionEnJours.reduce(
-            (acc, current) => acc + current,
-            0
-          ) /
-            data.delais[annee].prm.delaiInstructionEnJours.length /
-            30
-        )
-      ),
-      ...datasetParams(0)
+      data: annees.map(annee => Math.round(data.delais[annee].prm.delaiInstructionEnJours.reduce((acc, current) => acc + current, 0) / data.delais[annee].prm.delaiInstructionEnJours.length / 30)),
+      ...datasetParams(0),
     },
     {
       label: 'Concession',
-      data: annees.map(annee =>
-        Math.round(
-          data.delais[annee].cxm.delaiInstructionEnJours.reduce(
-            (acc, current) => acc + current,
-            0
-          ) /
-            data.delais[annee].cxm.delaiInstructionEnJours.length /
-            30
-        )
-      ),
-      ...datasetParams(1)
-    }
+      data: annees.map(annee => Math.round(data.delais[annee].cxm.delaiInstructionEnJours.reduce((acc, current) => acc + current, 0) / data.delais[annee].cxm.delaiInstructionEnJours.length / 30)),
+      ...datasetParams(1),
+    },
   ]
 
   const chartData: ChartData = { labels: annees, datasets }
@@ -175,13 +135,13 @@ export const delaiPerConcessionChartConfiguration = (
       plugins: {
         title: {
           display: true,
-          text: "Délais moyens d'instruction des PER et concessions"
+          text: "Délais moyens d'instruction des PER et concessions",
         },
         legend: {
           labels: {
-            boxHeight: 0
-          }
-        }
+            boxHeight: 0,
+          },
+        },
       },
 
       locale: 'fr-FR',
@@ -189,7 +149,7 @@ export const delaiPerConcessionChartConfiguration = (
       responsive: true,
       interaction: {
         mode: 'index',
-        intersect: false
+        intersect: false,
       },
       scales: {
         y: {
@@ -197,17 +157,15 @@ export const delaiPerConcessionChartConfiguration = (
           min: 0,
           title: {
             display: true,
-            text: 'Mois'
-          }
-        }
-      }
-    }
+            text: 'Mois',
+          },
+        },
+      },
+    },
   }
 }
 
-export const delaiChartConfiguration = (
-  data: StatistiquesDGTM
-): ChartConfiguration => {
+export const delaiChartConfiguration = (data: StatistiquesDGTM): ChartConfiguration => {
   const chartData: ChartData = graphDelaiData(data)
 
   return {
@@ -217,31 +175,31 @@ export const delaiChartConfiguration = (
       plugins: {
         title: {
           display: true,
-          text: "Délais d'instruction, de CDM et de décision du préfet pour les AEX"
+          text: "Délais d'instruction, de CDM et de décision du préfet pour les AEX",
         },
         legend: {
           labels: {
-            boxHeight: 0
-          }
-        }
+            boxHeight: 0,
+          },
+        },
       },
       locale: 'fr-FR',
       aspectRatio: 1.33,
       responsive: true,
       interaction: {
         mode: 'index',
-        intersect: false
+        intersect: false,
       },
       scales: {
         y: {
           display: true,
           title: {
             display: true,
-            text: 'Mois'
-          }
-        }
-      }
-    }
+            text: 'Mois',
+          },
+        },
+      },
+    },
   }
 }
 
@@ -250,101 +208,56 @@ const graphDelaiData = (item: StatistiquesDGTM) => {
   const datasets = [
     {
       label: 'instruction min',
-      data: annees.map(annee =>
-        Math.round(
-          Math.min(...item.delais[annee].axm.delaiInstructionEnJours) / 30
-        )
-      ),
+      data: annees.map(annee => Math.round(Math.min(...item.delais[annee].axm.delaiInstructionEnJours) / 30)),
       hidden: true,
-      ...datasetParams(0)
+      ...datasetParams(0),
     },
     {
       label: 'instruction',
-      data: annees.map(annee =>
-        Math.round(
-          item.delais[annee].axm.delaiInstructionEnJours.reduce(
-            (acc, current) => acc + current,
-            0
-          ) /
-            item.delais[annee].axm.delaiInstructionEnJours.length /
-            30
-        )
-      ),
-      ...datasetParams(1)
+      data: annees.map(annee => Math.round(item.delais[annee].axm.delaiInstructionEnJours.reduce((acc, current) => acc + current, 0) / item.delais[annee].axm.delaiInstructionEnJours.length / 30)),
+      ...datasetParams(1),
     },
     {
       label: 'instruction max',
-      data: annees.map(annee =>
-        Math.round(
-          Math.max(...item.delais[annee].axm.delaiInstructionEnJours) / 30
-        )
-      ),
+      data: annees.map(annee => Math.round(Math.max(...item.delais[annee].axm.delaiInstructionEnJours) / 30)),
       hidden: true,
-      ...datasetParams(2)
+      ...datasetParams(2),
     },
     {
       label: 'CDM min',
-      data: annees.map(annee =>
-        Math.round(
-          Math.min(
-            ...item.delais[annee].axm.delaiCommissionDepartementaleEnJours
-          ) / 30
-        )
-      ),
+      data: annees.map(annee => Math.round(Math.min(...item.delais[annee].axm.delaiCommissionDepartementaleEnJours) / 30)),
       hidden: true,
-      ...datasetParams(3)
+      ...datasetParams(3),
     },
     {
       label: 'CDM',
       data: annees.map(annee =>
-        Math.round(
-          item.delais[annee].axm.delaiCommissionDepartementaleEnJours.reduce(
-            (acc, current) => acc + current,
-            0
-          ) /
-            item.delais[annee].axm.delaiCommissionDepartementaleEnJours.length /
-            30
-        )
+        Math.round(item.delais[annee].axm.delaiCommissionDepartementaleEnJours.reduce((acc, current) => acc + current, 0) / item.delais[annee].axm.delaiCommissionDepartementaleEnJours.length / 30)
       ),
-      ...datasetParams(4)
+      ...datasetParams(4),
     },
     {
       label: 'CDM max',
-      data: annees.map(annee =>
-        Math.round(
-          Math.max(
-            ...item.delais[annee].axm.delaiCommissionDepartementaleEnJours
-          ) / 30
-        )
-      ),
+      data: annees.map(annee => Math.round(Math.max(...item.delais[annee].axm.delaiCommissionDepartementaleEnJours) / 30)),
       hidden: true,
-      ...datasetParams(5)
+      ...datasetParams(5),
     },
     {
       label: 'décision du préfet',
       data: annees.map(annee =>
-        Math.round(
-          item.delais[annee].axm.delaiDecisionPrefetEnJours.reduce(
-            (acc, current) => acc + current,
-            0
-          ) /
-            item.delais[annee].axm.delaiDecisionPrefetEnJours.length /
-            30
-        )
+        Math.round(item.delais[annee].axm.delaiDecisionPrefetEnJours.reduce((acc, current) => acc + current, 0) / item.delais[annee].axm.delaiDecisionPrefetEnJours.length / 30)
       ),
-      ...datasetParams(6)
-    }
+      ...datasetParams(6),
+    },
   ]
 
   return {
     labels: annees,
-    datasets
+    datasets,
   }
 }
 
-export const depotChartConfiguration = (
-  data: StatistiquesDGTM
-): ChartConfiguration => {
+export const depotChartConfiguration = (data: StatistiquesDGTM): ChartConfiguration => {
   const chartData: ChartData = graphDepoData(data)
   return {
     type: 'bar',
@@ -367,24 +280,22 @@ export const depotChartConfiguration = (
                 }
               })
               return `Total titres déposés: ${sumDepot} \nTotal titres octroyés: ${sumOctroi}`
-            }
-          }
-        }
+            },
+          },
+        },
       },
       locale: 'fr-FR',
       aspectRatio: 1.33,
       responsive: true,
       interaction: {
         mode: 'index',
-        intersect: false
+        intersect: false,
       },
-      scales: { x: { stacked: true }, y: { stacked: true } }
-    }
+      scales: { x: { stacked: true }, y: { stacked: true } },
+    },
   }
 }
-export const sdomChartConfiguration = (
-  data: StatistiquesDGTM
-): ChartConfiguration => {
+export const sdomChartConfiguration = (data: StatistiquesDGTM): ChartConfiguration => {
   const chartData: ChartData = graphSdomData(data)
 
   return {
@@ -394,22 +305,22 @@ export const sdomChartConfiguration = (
       plugins: {
         title: {
           display: true,
-          text: 'Titres déposés ou octroyés en zones du SDOM'
+          text: 'Titres déposés ou octroyés en zones du SDOM',
         },
         legend: {
           labels: {
-            boxHeight: 0
-          }
-        }
+            boxHeight: 0,
+          },
+        },
       },
       locale: 'fr-FR',
       aspectRatio: 1.33,
       responsive: true,
       interaction: {
         mode: 'index',
-        intersect: false
-      }
-    }
+        intersect: false,
+      },
+    },
   }
 }
 const graphSdomData = (item: StatistiquesDGTM): ChartData => {
@@ -417,118 +328,86 @@ const graphSdomData = (item: StatistiquesDGTM): ChartData => {
   const datasets = [
     {
       label: 'Zone 0',
-      data: annees.map(
-        annee =>
-          item.sdom[annee][SDOMZoneIds.Zone0].depose +
-          item.sdom[annee][SDOMZoneIds.Zone0].octroye
-      ),
+      data: annees.map(annee => item.sdom[annee][SDOMZoneIds.Zone0].depose + item.sdom[annee][SDOMZoneIds.Zone0].octroye),
       fill: false,
       tension: 0.5,
       backgroundColor: '#0000ff',
-      borderColor: '#0000ff'
+      borderColor: '#0000ff',
     },
     {
       label: 'Zone 0 potentielle',
-      data: annees.map(
-        annee =>
-          item.sdom[annee][SDOMZoneIds.Zone0Potentielle].depose +
-          item.sdom[annee][SDOMZoneIds.Zone0Potentielle].octroye
-      ),
+      data: annees.map(annee => item.sdom[annee][SDOMZoneIds.Zone0Potentielle].depose + item.sdom[annee][SDOMZoneIds.Zone0Potentielle].octroye),
       fill: false,
       tension: 0.5,
       backgroundColor: '#ffffff',
       borderDash: [1, 5],
-      borderColor: '#0000ff'
+      borderColor: '#0000ff',
     },
 
     {
       label: 'Zone 1',
-      data: annees.map(
-        annee =>
-          item.sdom[annee][SDOMZoneIds.Zone1].depose +
-          item.sdom[annee][SDOMZoneIds.Zone1].octroye
-      ),
+      data: annees.map(annee => item.sdom[annee][SDOMZoneIds.Zone1].depose + item.sdom[annee][SDOMZoneIds.Zone1].octroye),
       fill: false,
       tension: 0.5,
       backgroundColor: '#00ff7f',
-      borderColor: '#00ff7f'
+      borderColor: '#00ff7f',
     },
 
     {
       label: 'Zone 2',
-      data: annees.map(
-        annee =>
-          item.sdom[annee][SDOMZoneIds.Zone2].depose +
-          item.sdom[annee][SDOMZoneIds.Zone2].octroye
-      ),
+      data: annees.map(annee => item.sdom[annee][SDOMZoneIds.Zone2].depose + item.sdom[annee][SDOMZoneIds.Zone2].octroye),
       fill: false,
       tension: 0.5,
       backgroundColor: '#ffaa00',
-      borderColor: '#ffaa00'
+      borderColor: '#ffaa00',
     },
     {
       label: 'Zone 3',
-      data: annees.map(
-        annee => item.sdom[annee][3].depose + item.sdom[annee][3].octroye
-      ),
+      data: annees.map(annee => item.sdom[annee][3].depose + item.sdom[annee][3].octroye),
       fill: false,
       tension: 0.5,
       backgroundColor: '#E0E0DD',
-      borderColor: '#E0E0DD'
-    }
+      borderColor: '#E0E0DD',
+    },
   ]
 
   return {
     labels: annees,
-    datasets
+    datasets,
   }
 }
 
 const graphDepoData = (item: StatistiquesDGTM): ChartData => {
-  const annees: CaminoAnnee[] = Object.keys(item.depotEtInstructions).filter(
-    isAnnee
-  )
+  const annees: CaminoAnnee[] = Object.keys(item.depotEtInstructions).filter(isAnnee)
   const datasets = [
     {
       label: 'AEX déposés',
-      data: annees.map(
-        annee => item.depotEtInstructions[annee].totalAXMDeposees
-      ),
+      data: annees.map(annee => item.depotEtInstructions[annee].totalAXMDeposees),
       stack: 'depot',
-      ...datasetParams(0)
+      ...datasetParams(0),
     },
     {
       label: 'Autres titres déposés',
-      data: annees.map(
-        annee =>
-          item.depotEtInstructions[annee].totalTitresDeposes -
-          item.depotEtInstructions[annee].totalAXMDeposees
-      ),
+      data: annees.map(annee => item.depotEtInstructions[annee].totalTitresDeposes - item.depotEtInstructions[annee].totalAXMDeposees),
       stack: 'depot',
-      ...datasetParams(1)
+      ...datasetParams(1),
     },
     {
       label: 'AEX octroyés',
-      data: annees.map(
-        annee => item.depotEtInstructions[annee].totalAXMOctroyees
-      ),
+      data: annees.map(annee => item.depotEtInstructions[annee].totalAXMOctroyees),
       stack: 'octroi',
-      ...datasetParams(2)
+      ...datasetParams(2),
     },
     {
       label: 'Autres titres octroyés',
-      data: annees.map(
-        annee =>
-          item.depotEtInstructions[annee].totalTitresOctroyes -
-          item.depotEtInstructions[annee].totalAXMOctroyees
-      ),
+      data: annees.map(annee => item.depotEtInstructions[annee].totalTitresOctroyes - item.depotEtInstructions[annee].totalAXMOctroyees),
       stack: 'octroi',
-      ...datasetParams(3)
-    }
+      ...datasetParams(3),
+    },
   ]
 
   return {
     labels: annees,
-    datasets
+    datasets,
   }
 }
diff --git a/packages/ui/src/components/dashboard/pure-dgtm-stats.stories.tsx b/packages/ui/src/components/dashboard/pure-dgtm-stats.stories.tsx
index 4e5e1f78b..1a26e7333 100644
--- a/packages/ui/src/components/dashboard/pure-dgtm-stats.stories.tsx
+++ b/packages/ui/src/components/dashboard/pure-dgtm-stats.stories.tsx
@@ -8,21 +8,11 @@ const meta: Meta = {
   component: PureDGTMStats,
   argTypes: {
     getEntreprisesTitres: { name: 'function', required: true },
-    displayActivites: { name: 'boolean' }
-  }
+    displayActivites: { name: 'boolean' },
+  },
 }
 export default meta
 
-export const OkNoSnapshot: Story = () => (
-  <PureDGTMStats getDgtmStats={() => Promise.resolve(statistiquesDGTMFake)} />
-)
-export const Loading: Story = () => (
-  <PureDGTMStats
-    getDgtmStats={() => new Promise<StatistiquesDGTM>(resolve => {})}
-  />
-)
-export const WithError: Story = () => (
-  <PureDGTMStats
-    getDgtmStats={() => Promise.reject(new Error('because reasons'))}
-  />
-)
+export const OkNoSnapshot: Story = () => <PureDGTMStats getDgtmStats={() => Promise.resolve(statistiquesDGTMFake)} />
+export const Loading: Story = () => <PureDGTMStats getDgtmStats={() => new Promise<StatistiquesDGTM>(resolve => {})} />
+export const WithError: Story = () => <PureDGTMStats getDgtmStats={() => Promise.reject(new Error('because reasons'))} />
diff --git a/packages/ui/src/components/dashboard/pure-dgtm-stats.tsx b/packages/ui/src/components/dashboard/pure-dgtm-stats.tsx
index 8397a2fdc..4ec5a9d43 100644
--- a/packages/ui/src/components/dashboard/pure-dgtm-stats.tsx
+++ b/packages/ui/src/components/dashboard/pure-dgtm-stats.tsx
@@ -2,11 +2,7 @@ import { defineComponent, onMounted, ref } from 'vue'
 import { StatistiquesDGTM } from 'camino-common/src/statistiques'
 import { AsyncData } from '@/api/client-rest'
 import { ChartWithExport } from '@/components/_charts/chart-with-export'
-import {
-  sdomChartConfiguration,
-  depotChartConfiguration,
-  delaiChartConfiguration
-} from './dgtm-stats'
+import { sdomChartConfiguration, depotChartConfiguration, delaiChartConfiguration } from './dgtm-stats'
 
 export interface Props {
   getDgtmStats: () => Promise<StatistiquesDGTM>
@@ -25,26 +21,17 @@ export const PureDGTMStats = defineComponent<Props>({
         console.error('error', e)
         data.value = {
           status: 'ERROR',
-          message: e.message ?? 'something wrong happened'
+          message: e.message ?? 'something wrong happened',
         }
       }
     })
 
     return () => (
       <div style="display: grid; grid-template-columns: 1fr 1fr 1fr">
-        <ChartWithExport
-          data={data.value}
-          getConfiguration={data => sdomChartConfiguration(data)}
-        />
-        <ChartWithExport
-          data={data.value}
-          getConfiguration={data => depotChartConfiguration(data)}
-        />
-        <ChartWithExport
-          data={data.value}
-          getConfiguration={data => delaiChartConfiguration(data)}
-        />
+        <ChartWithExport data={data.value} getConfiguration={data => sdomChartConfiguration(data)} />
+        <ChartWithExport data={data.value} getConfiguration={data => depotChartConfiguration(data)} />
+        <ChartWithExport data={data.value} getConfiguration={data => delaiChartConfiguration(data)} />
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/dashboard/pure-dreal-dashboard.stories.tsx b/packages/ui/src/components/dashboard/pure-dreal-dashboard.stories.tsx
index 71a2147c4..908ab86a4 100644
--- a/packages/ui/src/components/dashboard/pure-dreal-dashboard.stories.tsx
+++ b/packages/ui/src/components/dashboard/pure-dreal-dashboard.stories.tsx
@@ -7,8 +7,8 @@ const meta: Meta = {
   component: PureDrealDashboard,
   argTypes: {
     getEntreprisesTitres: { name: 'function', required: true },
-    displayActivites: { name: 'boolean' }
-  }
+    displayActivites: { name: 'boolean' },
+  },
 }
 export default meta
 
@@ -22,7 +22,7 @@ export const Ok: Story = () => (
         sdom: {},
         delais: {},
         avisAXM: {},
-        producteursOr: {}
+        producteursOr: {},
       })
     }
   />
@@ -30,9 +30,7 @@ export const Ok: Story = () => (
 
 export const OkWithoutBlockedTitres: Story = () => (
   <PureDrealDashboard
-    getDrealTitres={() =>
-      Promise.resolve(titresDreal.filter(t => !t.enAttenteDeDREAL))
-    }
+    getDrealTitres={() => Promise.resolve(titresDreal.filter(t => !t.enAttenteDeDREAL))}
     isDGTM={false}
     getDgtmStats={() =>
       Promise.resolve({
@@ -40,19 +38,13 @@ export const OkWithoutBlockedTitres: Story = () => (
         sdom: {},
         delais: {},
         avisAXM: {},
-        producteursOr: {}
+        producteursOr: {},
       })
     }
   />
 )
 
-export const DGTMNoSnapshot: Story = () => (
-  <PureDrealDashboard
-    getDrealTitres={() => Promise.resolve(titresDreal)}
-    isDGTM={true}
-    getDgtmStats={() => Promise.resolve(statistiquesDGTMFake)}
-  />
-)
+export const DGTMNoSnapshot: Story = () => <PureDrealDashboard getDrealTitres={() => Promise.resolve(titresDreal)} isDGTM={true} getDgtmStats={() => Promise.resolve(statistiquesDGTMFake)} />
 
 export const Loading: Story = () => (
   <PureDrealDashboard
@@ -64,7 +56,7 @@ export const Loading: Story = () => (
         sdom: {},
         delais: {},
         avisAXM: {},
-        producteursOr: {}
+        producteursOr: {},
       })
     }
   />
@@ -79,7 +71,7 @@ export const WithError: Story = () => (
         sdom: {},
         delais: {},
         avisAXM: {},
-        producteursOr: {}
+        producteursOr: {},
       })
     }
   />
diff --git a/packages/ui/src/components/dashboard/pure-dreal-dashboard.tsx b/packages/ui/src/components/dashboard/pure-dreal-dashboard.tsx
index 5effca3d3..20d87f0c4 100644
--- a/packages/ui/src/components/dashboard/pure-dreal-dashboard.tsx
+++ b/packages/ui/src/components/dashboard/pure-dreal-dashboard.tsx
@@ -14,19 +14,14 @@ import {
   typeColumn,
   typeCell,
   activiteColumn,
-  activitesCell
+  activitesCell,
 } from '@/components/titres/table-utils'
 import { CommonTitreDREAL } from 'camino-common/src/titres'
 import { StatistiquesDGTM } from 'camino-common/src/statistiques'
 import { LoadingElement } from '@/components/_ui/functional-loader'
 import { AsyncData } from '@/api/client-rest'
 import { EtapesTypes } from 'camino-common/src/static/etapesTypes'
-import {
-  Column,
-  ComponentColumnData,
-  TableRow,
-  TextColumnData
-} from '../_ui/table'
+import { Column, ComponentColumnData, TableRow, TextColumnData } from '../_ui/table'
 
 export interface Props {
   getDrealTitres: () => Promise<CommonTitreDREAL[]>
@@ -37,33 +32,18 @@ export interface Props {
 const derniereEtapeColumn: Column<'derniereEtape'> = {
   id: 'derniereEtape',
   name: 'Dernière étape',
-  class: ['min-width-8']
+  class: ['min-width-8'],
 }
 
 const prochainesEtapesColumn: Column<'prochainesEtapes'> = {
   id: 'prochainesEtapes',
   name: 'Prochaines étapes',
-  class: ['min-width-8']
+  class: ['min-width-8'],
 }
 
-const columns = [
-  nomColumn,
-  typeColumn,
-  statutColumn,
-  activiteColumn,
-  referencesColumn,
-  titulairesColumn,
-  derniereEtapeColumn
-] as const
+const columns = [nomColumn, typeColumn, statutColumn, activiteColumn, referencesColumn, titulairesColumn, derniereEtapeColumn] as const
 
-const columnsEnAttente = [
-  nomColumn,
-  typeColumn,
-  statutColumn,
-  titulairesColumn,
-  derniereEtapeColumn,
-  prochainesEtapesColumn
-] as const
+const columnsEnAttente = [nomColumn, typeColumn, statutColumn, titulairesColumn, derniereEtapeColumn, prochainesEtapesColumn] as const
 
 export const PureDrealDashboard = defineComponent<Props>({
   props: ['getDrealTitres', 'isDGTM', 'getDgtmStats'] as unknown as undefined,
@@ -76,22 +56,18 @@ export const PureDrealDashboard = defineComponent<Props>({
     >({ status: 'LOADING' })
     const initialColumnId = columns[3].id
 
-    type Columns =
-      | (typeof columns)[number]['id']
-      | (typeof columnsEnAttente)[number]['id']
+    type Columns = (typeof columns)[number]['id'] | (typeof columnsEnAttente)[number]['id']
 
     const prochainesEtapesCell = (titre: CommonTitreDREAL) => ({
       component: markRaw(List),
       props: {
         elements: titre.prochainesEtapes?.map(id => EtapesTypes[id].nom),
-        mini: true
+        mini: true,
       },
       class: 'mb--xs',
-      value: titre.prochainesEtapes?.map(id => EtapesTypes[id].nom).join(', ')
+      value: titre.prochainesEtapes?.map(id => EtapesTypes[id].nom).join(', '),
     })
-    const titresLignesBuild = (
-      titres: CommonTitreDREAL[]
-    ): TableRow<Columns>[] => {
+    const titresLignesBuild = (titres: CommonTitreDREAL[]): TableRow<Columns>[] => {
       return titres.map(titre => {
         const columns: {
           [key in Columns]: ComponentColumnData | TextColumnData
@@ -103,18 +79,14 @@ export const PureDrealDashboard = defineComponent<Props>({
           references: referencesCell(titre),
           titulaires: titulairesCell(titre),
           derniereEtape: {
-            value: titre.derniereEtape
-              ? `${EtapesTypes[titre.derniereEtape.etapeTypeId].nom} (${
-                  titre.derniereEtape.date
-                })`
-              : ''
+            value: titre.derniereEtape ? `${EtapesTypes[titre.derniereEtape.etapeTypeId].nom} (${titre.derniereEtape.date})` : '',
           },
-          prochainesEtapes: prochainesEtapesCell(titre)
+          prochainesEtapes: prochainesEtapesCell(titre),
         }
         return {
           id: titre.id,
           link: { name: 'titre', params: { id: titre.slug } },
-          columns
+          columns,
         }
       })
     }
@@ -125,19 +97,15 @@ export const PureDrealDashboard = defineComponent<Props>({
         data.value = {
           status: 'LOADED',
           value: {
-            drealTitres: titresLignesBuild(
-              titres.filter(titre => !titre.enAttenteDeDREAL)
-            ),
-            drealTitresBloques: titresLignesBuild(
-              titres.filter(titre => titre.enAttenteDeDREAL)
-            )
-          }
+            drealTitres: titresLignesBuild(titres.filter(titre => !titre.enAttenteDeDREAL)),
+            drealTitresBloques: titresLignesBuild(titres.filter(titre => titre.enAttenteDeDREAL)),
+          },
         }
       } catch (e: any) {
         console.error('error', e)
         data.value = {
           status: 'ERROR',
-          message: e.message ?? "Une erreur s'est produite"
+          message: e.message ?? "Une erreur s'est produite",
         }
       }
     })
@@ -146,9 +114,7 @@ export const PureDrealDashboard = defineComponent<Props>({
       <div>
         <div class="desktop-blobs">
           <div class="desktop-blob-2-3">
-            <h1 class="mt-xs mb-xxl">
-              Tableau de bord {props.isDGTM ? 'DGTM' : ''}
-            </h1>
+            <h1 class="mt-xs mb-xxl">Tableau de bord {props.isDGTM ? 'DGTM' : ''}</h1>
           </div>
         </div>
         {props.isDGTM ? (
@@ -169,12 +135,7 @@ export const PureDrealDashboard = defineComponent<Props>({
               return (
                 <>
                   <h4>Titres en attente de la DREAL</h4>
-                  <TableAuto
-                    class="mb-xxl"
-                    columns={columnsEnAttente}
-                    rows={item.drealTitresBloques}
-                    initialSort={{ column: initialColumnId, order: 'asc' }}
-                  />
+                  <TableAuto class="mb-xxl" columns={columnsEnAttente} rows={item.drealTitresBloques} initialSort={{ column: initialColumnId, order: 'asc' }} />
                 </>
               )
             }
@@ -182,18 +143,8 @@ export const PureDrealDashboard = defineComponent<Props>({
           }}
         />
         <h4>Titres en cours d’instruction</h4>
-        <LoadingElement
-          data={data.value}
-          renderItem={item => (
-            <TableAuto
-              columns={columns}
-              rows={item.drealTitres}
-              initialSort={{ column: initialColumnId, order: 'asc' }}
-              class="width-full-p"
-            />
-          )}
-        />
+        <LoadingElement data={data.value} renderItem={item => <TableAuto columns={columns} rows={item.drealTitres} initialSort={{ column: initialColumnId, order: 'asc' }} class="width-full-p" />} />
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/dashboard/pure-entreprise-dashboard.stories.tsx b/packages/ui/src/components/dashboard/pure-entreprise-dashboard.stories.tsx
index 4ceb35c03..20b35b229 100644
--- a/packages/ui/src/components/dashboard/pure-entreprise-dashboard.stories.tsx
+++ b/packages/ui/src/components/dashboard/pure-entreprise-dashboard.stories.tsx
@@ -11,8 +11,8 @@ const meta: Meta = {
   component: PureEntrepriseDashboard,
   argTypes: {
     getEntreprisesTitres: { name: 'function', required: true },
-    displayActivites: { name: 'boolean' }
-  }
+    displayActivites: { name: 'boolean' },
+  },
 }
 export default meta
 
@@ -24,7 +24,7 @@ const titres: TitreEntreprise[] = [
     typeId: 'cxm',
     coordonnees: {
       x: 6.049336777414595,
-      y: 49.45057350532248
+      y: 49.45057350532248,
     },
     titreStatutId: 'ech',
     substances: ['ferx'],
@@ -33,16 +33,16 @@ const titres: TitreEntreprise[] = [
     titulaires: [
       {
         id: 'fr-793025370',
-        nom: 'NINOR'
-      }
+        nom: 'NINOR',
+      },
     ],
     communes: [{ departementId: DEPARTEMENT_IDS.Moselle }],
     references: [
       {
         referenceTypeId: 'rnt',
-        nom: '57TM0014'
-      }
-    ]
+        nom: '57TM0014',
+      },
+    ],
   },
   {
     id: 'mlWyShEGu8v7eYmsUhfiAMbs',
@@ -56,21 +56,21 @@ const titres: TitreEntreprise[] = [
     titulaires: [
       {
         id: 'fr-838049344',
-        nom: "CHAMB'OR"
-      }
+        nom: "CHAMB'OR",
+      },
     ],
     communes: [{ departementId: DEPARTEMENT_IDS.Guyane }],
     references: [
       {
         referenceTypeId: 'dea',
-        nom: '01/2022'
+        nom: '01/2022',
       },
       {
         referenceTypeId: 'dea',
-        nom: 'X21-09'
-      }
-    ]
-  }
+        nom: 'X21-09',
+      },
+    ],
+  },
 ]
 
 const Template: Story<Props> = (args: Props) => ({
@@ -78,7 +78,7 @@ const Template: Story<Props> = (args: Props) => ({
   setup() {
     return { args }
   },
-  template: '<PureEntrepriseDashboard v-bind="args" />'
+  template: '<PureEntrepriseDashboard v-bind="args" />',
 })
 
 export const Ok: Story = () => (
@@ -96,7 +96,7 @@ export const OkWithMultipleEntreprises: Story = () => (
     displayActivites={true}
     entreprises={[
       { id: newEntrepriseId('id'), nom: 'entreprise1' },
-      { id: newEntrepriseId('id2'), nom: 'entreprise2' }
+      { id: newEntrepriseId('id2'), nom: 'entreprise2' },
     ]}
     getEntreprisesTitres={() => Promise.resolve(titres)}
   />
@@ -121,21 +121,21 @@ export const OkWithoutFiscalite: Story = () => (
           titulaires: [
             {
               id: 'fr-838049344',
-              nom: "CHAMB'OR"
-            }
+              nom: "CHAMB'OR",
+            },
           ],
           communes: [{ departementId: DEPARTEMENT_IDS.Guyane }],
           references: [
             {
               referenceTypeId: 'dea',
-              nom: '01/2022'
+              nom: '01/2022',
             },
             {
               referenceTypeId: 'dea',
-              nom: 'X21-09'
-            }
-          ]
-        }
+              nom: 'X21-09',
+            },
+          ],
+        },
       ])
     }
   />
diff --git a/packages/ui/src/components/dashboard/pure-entreprise-dashboard.tsx b/packages/ui/src/components/dashboard/pure-entreprise-dashboard.tsx
index 45eda5120..b9a0f3283 100644
--- a/packages/ui/src/components/dashboard/pure-entreprise-dashboard.tsx
+++ b/packages/ui/src/components/dashboard/pure-entreprise-dashboard.tsx
@@ -2,11 +2,7 @@ import { defineComponent, FunctionalComponent, onMounted, ref } from 'vue'
 import { fiscaliteVisible } from 'camino-common/src/fiscalite'
 import { User } from 'camino-common/src/roles'
 import { Entreprise, EntrepriseId } from 'camino-common/src/entreprise'
-import {
-  TitreEntreprise,
-  titresColonnes,
-  titresLignesBuild
-} from '@/components/titres/table-utils'
+import { TitreEntreprise, titresColonnes, titresLignesBuild } from '@/components/titres/table-utils'
 import { Icon } from '@/components/_ui/icon'
 import { useRouter } from 'vue-router'
 import { LoadingElement } from '../_ui/functional-loader'
@@ -22,32 +18,19 @@ export interface Props {
   displayActivites: boolean
 }
 
-const fiscaliteVisibleForAtLeastOneEntreprise = (
-  user: User,
-  entreprises: Pick<Entreprise, 'id' | 'nom'>[],
-  item: TitreEntreprise[]
-) => {
+const fiscaliteVisibleForAtLeastOneEntreprise = (user: User, entreprises: Pick<Entreprise, 'id' | 'nom'>[], item: TitreEntreprise[]) => {
   return entreprises.some(({ id }) => fiscaliteVisible(user, id, item))
 }
 
 export const PureEntrepriseDashboard = defineComponent<Props>({
-  props: [
-    'user',
-    'entreprises',
-    'getEntreprisesTitres',
-    'displayActivites'
-  ] as unknown as undefined,
+  props: ['user', 'entreprises', 'getEntreprisesTitres', 'displayActivites'] as unknown as undefined,
   setup(props: Props) {
     const data = ref<AsyncData<TitreEntreprise[]>>({ status: 'LOADING' })
 
-    const entrepriseTitres = (entreprises: TitreEntreprise[]): TableRow[] =>
-      titresLignesBuild(entreprises, props.displayActivites)
-    const entrepriseUrl = (entrepriseId: EntrepriseId) =>
-      `/entreprises/${entrepriseId}`
+    const entrepriseTitres = (entreprises: TitreEntreprise[]): TableRow[] => titresLignesBuild(entreprises, props.displayActivites)
+    const entrepriseUrl = (entrepriseId: EntrepriseId) => `/entreprises/${entrepriseId}`
 
-    const columns = titresColonnes.filter(({ id }) =>
-      props.displayActivites ? true : id !== 'activites'
-    )
+    const columns = titresColonnes.filter(({ id }) => (props.displayActivites ? true : id !== 'activites'))
 
     const router = useRouter()
 
@@ -62,7 +45,7 @@ export const PureEntrepriseDashboard = defineComponent<Props>({
       } catch (e: any) {
         data.value = {
           status: 'ERROR',
-          message: e.message ?? 'something wrong happened'
+          message: e.message ?? 'something wrong happened',
         }
       }
     })
@@ -74,10 +57,7 @@ export const PureEntrepriseDashboard = defineComponent<Props>({
           </div>
 
           <div class="desktop-blob-1-3">
-            <button
-              class="btn btn-primary small flex"
-              onClick={titreDemandeOpen}
-            >
+            <button class="btn btn-primary small flex" onClick={titreDemandeOpen}>
               <span class="mt-xxs">Demander un titre…</span>
               <Icon name="plus" size="M" class="flex-right" />
             </button>
@@ -89,20 +69,12 @@ export const PureEntrepriseDashboard = defineComponent<Props>({
           renderItem={item => {
             return (
               <>
-                {fiscaliteVisibleForAtLeastOneEntreprise(
-                  props.user,
-                  props.entreprises,
-                  item
-                ) ? (
+                {fiscaliteVisibleForAtLeastOneEntreprise(props.user, props.entreprises, item) ? (
                   <div class="p-s bg-info color-bg mb">
                     Découvrez l'estimation de votre fiscalité minière pour
                     {props.entreprises.length === 1 ? (
                       <>
-                        <router-link
-                          to={entrepriseUrl(props.entreprises[0].id)}
-                          target="_blank"
-                          class="p-s color-bg mb"
-                        >
+                        <router-link to={entrepriseUrl(props.entreprises[0].id)} target="_blank" class="p-s color-bg mb">
                           {props.entreprises[0].nom}
                         </router-link>
                       </>
@@ -111,15 +83,9 @@ export const PureEntrepriseDashboard = defineComponent<Props>({
                         {' '}
                         vos entreprises :
                         {props.entreprises
-                          .filter(entreprise =>
-                            fiscaliteVisible(props.user, entreprise.id, item)
-                          )
+                          .filter(entreprise => fiscaliteVisible(props.user, entreprise.id, item))
                           .map(entreprise => (
-                            <router-link
-                              to={entrepriseUrl(entreprise.id)}
-                              target="_blank"
-                              class="p-s color-bg mb"
-                            >
+                            <router-link to={entrepriseUrl(entreprise.id)} target="_blank" class="p-s color-bg mb">
                               {entreprise.nom}
                             </router-link>
                           ))}
@@ -127,17 +93,12 @@ export const PureEntrepriseDashboard = defineComponent<Props>({
                     )}
                   </div>
                 ) : null}
-                <TableAuto
-                  columns={columns}
-                  rows={entrepriseTitres(item)}
-                  initialSort={{ column: 'statut', order: 'asc' }}
-                  class="width-full-p"
-                />
+                <TableAuto columns={columns} rows={entrepriseTitres(item)} initialSort={{ column: 'statut', order: 'asc' }} class="width-full-p" />
               </>
             )
           }}
         />
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/dashboard/pure-onf-dashboard.stories.ts b/packages/ui/src/components/dashboard/pure-onf-dashboard.stories.ts
index beb25d5c7..8d21903ae 100644
--- a/packages/ui/src/components/dashboard/pure-onf-dashboard.stories.ts
+++ b/packages/ui/src/components/dashboard/pure-onf-dashboard.stories.ts
@@ -6,8 +6,8 @@ const meta: Meta = {
   title: 'Components/Dashboard/ONF',
   component: PureONFDashboard,
   argTypes: {
-    getOnfTitres: { name: 'function', required: true }
-  }
+    getOnfTitres: { name: 'function', required: true },
+  },
 }
 export default meta
 
@@ -21,13 +21,13 @@ const onfs: CommonTitreONF[] = [
     references: [],
     titulaires: [
       {
-        nom: 'Titulaire1'
-      }
+        nom: 'Titulaire1',
+      },
     ],
     dateCompletudePTMG: '',
     dateReceptionONF: '',
     dateCARM: '',
-    enAttenteDeONF: true
+    enAttenteDeONF: true,
   },
   {
     id: 'secondId',
@@ -38,19 +38,19 @@ const onfs: CommonTitreONF[] = [
     references: [
       {
         nom: '2010-001',
-        referenceTypeId: 'onf'
+        referenceTypeId: 'onf',
       },
-      { nom: '2010-000', referenceTypeId: 'ptm' }
+      { nom: '2010-000', referenceTypeId: 'ptm' },
     ],
     titulaires: [
       {
-        nom: 'Titulaire3'
-      }
+        nom: 'Titulaire3',
+      },
     ],
     dateCompletudePTMG: '2022-03-23',
     dateReceptionONF: '2022-03-24',
     dateCARM: '2022-04-12',
-    enAttenteDeONF: true
+    enAttenteDeONF: true,
   },
   {
     id: 'thirdId',
@@ -61,13 +61,13 @@ const onfs: CommonTitreONF[] = [
     references: [],
     titulaires: [
       {
-        nom: 'Titulaire1'
-      }
+        nom: 'Titulaire1',
+      },
     ],
     dateCompletudePTMG: '',
     dateReceptionONF: '',
     dateCARM: '',
-    enAttenteDeONF: false
+    enAttenteDeONF: false,
   },
   {
     id: 'fourthId',
@@ -78,20 +78,20 @@ const onfs: CommonTitreONF[] = [
     references: [
       {
         nom: '2010-001',
-        referenceTypeId: 'onf'
+        referenceTypeId: 'onf',
       },
-      { nom: '2010-000', referenceTypeId: 'ptm' }
+      { nom: '2010-000', referenceTypeId: 'ptm' },
     ],
     titulaires: [
       {
-        nom: 'Titulaire 8'
-      }
+        nom: 'Titulaire 8',
+      },
     ],
     dateCompletudePTMG: '2022-03-23',
     dateReceptionONF: '2022-03-24',
     dateCARM: '2022-04-12',
-    enAttenteDeONF: true
-  }
+    enAttenteDeONF: true,
+  },
 ]
 
 const Template: Story<Props> = (args: Props) => ({
@@ -99,33 +99,32 @@ const Template: Story<Props> = (args: Props) => ({
   setup() {
     return { args }
   },
-  template: '<div><PureONFDashboard v-bind="args" /></div>'
+  template: '<div><PureONFDashboard v-bind="args" /></div>',
 })
 
 export const Ok = Template.bind(
   {},
   {
-    getOnfTitres: () => Promise.resolve(onfs)
+    getOnfTitres: () => Promise.resolve(onfs),
   }
 )
 
 export const OkSansAttenteDeONF = Template.bind(
   {},
   {
-    getOnfTitres: () =>
-      Promise.resolve(onfs.map(titre => ({ ...titre, enAttenteDeONF: false })))
+    getOnfTitres: () => Promise.resolve(onfs.map(titre => ({ ...titre, enAttenteDeONF: false }))),
   }
 )
 
 export const Loading = Template.bind(
   {},
   {
-    getOnfTitres: () => new Promise<CommonTitreONF[]>(resolve => {})
+    getOnfTitres: () => new Promise<CommonTitreONF[]>(resolve => {}),
   }
 )
 export const WithError = Template.bind(
   {},
   {
-    getOnfTitres: () => Promise.reject(new Error('because reasons'))
+    getOnfTitres: () => Promise.reject(new Error('because reasons')),
   }
 )
diff --git a/packages/ui/src/components/dashboard/pure-onf-dashboard.tsx b/packages/ui/src/components/dashboard/pure-onf-dashboard.tsx
index 99988a0d5..4a6cd93d4 100644
--- a/packages/ui/src/components/dashboard/pure-onf-dashboard.tsx
+++ b/packages/ui/src/components/dashboard/pure-onf-dashboard.tsx
@@ -2,16 +2,7 @@ import { defineComponent, inject, markRaw, onMounted, ref } from 'vue'
 import { TableAuto } from '../_ui/table-auto'
 import { Date as DateComponent } from '../_ui/date'
 
-import {
-  nomColumn,
-  nomCell,
-  referencesColumn,
-  statutColumn,
-  titulairesColumn,
-  statutCell,
-  referencesCell,
-  titulairesCell
-} from '@/components/titres/table-utils'
+import { nomColumn, nomCell, referencesColumn, statutColumn, titulairesColumn, statutCell, referencesCell, titulairesCell } from '@/components/titres/table-utils'
 
 import Error from '@/components/error.vue'
 import { CommonTitreONF } from 'camino-common/src/titres'
@@ -28,15 +19,15 @@ const columns = [
   titulairesColumn,
   {
     id: 'dateCompletudePTMG',
-    name: 'Date complétude PTMG'
+    name: 'Date complétude PTMG',
   },
   {
     id: 'dateReceptionONF',
-    name: 'Date réception ONF'
+    name: 'Date réception ONF',
   },
   {
     id: 'dateCARM',
-    name: 'Date CARM'
+    name: 'Date CARM',
   },
   {
     id: 'delaiJourONFCARM',
@@ -57,8 +48,8 @@ const columns = [
         return number1 - number2
       }
       return 0
-    }
-  }
+    },
+  },
 ] as const
 
 const initialColumnId = columns[1].id
@@ -68,33 +59,29 @@ type Columns = (typeof columns)[number]['id']
 const dateCell = (date: string) => ({
   component: markRaw(DateComponent),
   props: { date },
-  value: date
+  value: date,
 })
 
 const titresLignesBuild = (titres: CommonTitreONF[]): TableRow<Columns>[] => {
   return titres.map(titre => {
     let delai = ''
     if (titre.dateCARM !== '' && titre.dateReceptionONF !== '') {
-      delai = datesDiffInDays(
-        new Date(titre.dateReceptionONF),
-        new Date(titre.dateCARM)
-      ).toString(10)
+      delai = datesDiffInDays(new Date(titre.dateReceptionONF), new Date(titre.dateCARM)).toString(10)
+    }
+    const columns: { [key in Columns]: ComponentColumnData | TextColumnData } = {
+      nom: nomCell(titre),
+      statut: statutCell(titre),
+      references: referencesCell(titre),
+      titulaires: titulairesCell(titre),
+      dateCompletudePTMG: dateCell(titre.dateCompletudePTMG),
+      dateReceptionONF: dateCell(titre.dateReceptionONF),
+      dateCARM: dateCell(titre.dateCARM),
+      delaiJourONFCARM: { value: delai },
     }
-    const columns: { [key in Columns]: ComponentColumnData | TextColumnData } =
-      {
-        nom: nomCell(titre),
-        statut: statutCell(titre),
-        references: referencesCell(titre),
-        titulaires: titulairesCell(titre),
-        dateCompletudePTMG: dateCell(titre.dateCompletudePTMG),
-        dateReceptionONF: dateCell(titre.dateReceptionONF),
-        dateCARM: dateCell(titre.dateCARM),
-        delaiJourONFCARM: { value: delai }
-      }
     return {
       id: titre.id,
       link: { name: 'titre', params: { id: titre.slug } },
-      columns
+      columns,
     }
   })
 }
@@ -107,12 +94,8 @@ export const PureONFDashboard = defineComponent<Props>({
     onMounted(async () => {
       try {
         const titres = await props.getOnfTitres()
-        onfTitres.value.push(
-          ...titresLignesBuild(titres.filter(titre => !titre.enAttenteDeONF))
-        )
-        onfTitresBloques.value.push(
-          ...titresLignesBuild(titres.filter(titre => titre.enAttenteDeONF))
-        )
+        onfTitres.value.push(...titresLignesBuild(titres.filter(titre => !titre.enAttenteDeONF)))
+        onfTitresBloques.value.push(...titresLignesBuild(titres.filter(titre => titre.enAttenteDeONF)))
         status.value = 'LOADED'
       } catch (e) {
         console.error('error', e)
@@ -139,34 +122,19 @@ export const PureONFDashboard = defineComponent<Props>({
               <>
                 <div class="line-neutral width-full mb-l"></div>
                 <h3>ARM en attente</h3>
-                <TableAuto
-                  class="mb-xxl"
-                  columns={columns.slice(0, 5)}
-                  rows={onfTitresBloques.value}
-                  initialSort={{ column: initialColumnId, order: 'asc' }}
-                />
+                <TableAuto class="mb-xxl" columns={columns.slice(0, 5)} rows={onfTitresBloques.value} initialSort={{ column: initialColumnId, order: 'asc' }} />
               </>
             ) : null}
             <div class="line-neutral width-full mb-l"></div>
             <h3>ARM en cours d’instruction</h3>
-            <TableAuto
-              columns={columns}
-              rows={onfTitres.value}
-              initialSort={{ column: initialColumnId, order: 'asc' }}
-              class="width-full-p"
-            />
+            <TableAuto columns={columns} rows={onfTitres.value} initialSort={{ column: initialColumnId, order: 'asc' }} class="width-full-p" />
           </div>
         ) : null}
 
-        {status.value === 'ERROR' ? (
-          <Error
-            couleur="error"
-            message="Le serveur est inaccessible, veuillez réessayer plus tard"
-          />
-        ) : null}
+        {status.value === 'ERROR' ? <Error couleur="error" message="Le serveur est inaccessible, veuillez réessayer plus tard" /> : null}
       </div>
     )
-  }
+  },
 })
 
 PureONFDashboard.props = ['getOnfTitres']
diff --git a/packages/ui/src/components/dashboard/pure-ptmg-dashboard.stories.tsx b/packages/ui/src/components/dashboard/pure-ptmg-dashboard.stories.tsx
index 93d119f87..3c3c35821 100644
--- a/packages/ui/src/components/dashboard/pure-ptmg-dashboard.stories.tsx
+++ b/packages/ui/src/components/dashboard/pure-ptmg-dashboard.stories.tsx
@@ -4,7 +4,7 @@ import { CommonTitrePTMG } from 'camino-common/src/titres'
 
 const meta: Meta = {
   title: 'Components/Dashboard/PTMG',
-  component: PurePTMGDashboard
+  component: PurePTMGDashboard,
 }
 export default meta
 
@@ -18,10 +18,10 @@ const titres: CommonTitrePTMG[] = [
     typeId: 'arm',
     titulaires: [
       {
-        nom: 'Titulaire1'
-      }
+        nom: 'Titulaire1',
+      },
     ],
-    enAttenteDePTMG: true
+    enAttenteDePTMG: true,
   },
   {
     id: 'secondId',
@@ -32,16 +32,16 @@ const titres: CommonTitrePTMG[] = [
     references: [
       {
         nom: '2010-001',
-        referenceTypeId: 'ptm'
+        referenceTypeId: 'ptm',
       },
-      { nom: '2010-000', referenceTypeId: 'ptm' }
+      { nom: '2010-000', referenceTypeId: 'ptm' },
     ],
     titulaires: [
       {
-        nom: 'Titulaire3'
-      }
+        nom: 'Titulaire3',
+      },
     ],
-    enAttenteDePTMG: true
+    enAttenteDePTMG: true,
   },
   {
     id: 'thirdId',
@@ -52,10 +52,10 @@ const titres: CommonTitrePTMG[] = [
     references: [],
     titulaires: [
       {
-        nom: 'Titulaire1'
-      }
+        nom: 'Titulaire1',
+      },
     ],
-    enAttenteDePTMG: false
+    enAttenteDePTMG: false,
   },
   {
     id: 'fourthId',
@@ -66,29 +66,19 @@ const titres: CommonTitrePTMG[] = [
     references: [
       {
         nom: '2010-001',
-        referenceTypeId: 'ptm'
+        referenceTypeId: 'ptm',
       },
-      { nom: '2010-000', referenceTypeId: 'ptm' }
+      { nom: '2010-000', referenceTypeId: 'ptm' },
     ],
     titulaires: [
       {
-        nom: 'Titulaire 8'
-      }
+        nom: 'Titulaire 8',
+      },
     ],
-    enAttenteDePTMG: true
-  }
+    enAttenteDePTMG: true,
+  },
 ]
 
-export const Ok: Story = () => (
-  <PurePTMGDashboard getPtmgTitres={() => Promise.resolve(titres)} />
-)
-export const Loading: Story = () => (
-  <PurePTMGDashboard
-    getPtmgTitres={() => new Promise<CommonTitrePTMG[]>(resolve => {})}
-  />
-)
-export const WithError: Story = () => (
-  <PurePTMGDashboard
-    getPtmgTitres={() => Promise.reject(new Error('because reasons'))}
-  />
-)
+export const Ok: Story = () => <PurePTMGDashboard getPtmgTitres={() => Promise.resolve(titres)} />
+export const Loading: Story = () => <PurePTMGDashboard getPtmgTitres={() => new Promise<CommonTitrePTMG[]>(resolve => {})} />
+export const WithError: Story = () => <PurePTMGDashboard getPtmgTitres={() => Promise.reject(new Error('because reasons'))} />
diff --git a/packages/ui/src/components/dashboard/pure-ptmg-dashboard.tsx b/packages/ui/src/components/dashboard/pure-ptmg-dashboard.tsx
index 9f608087d..d8706bb0d 100644
--- a/packages/ui/src/components/dashboard/pure-ptmg-dashboard.tsx
+++ b/packages/ui/src/components/dashboard/pure-ptmg-dashboard.tsx
@@ -1,16 +1,7 @@
 import { defineComponent, onMounted, ref } from 'vue'
 import { TableAuto } from '../_ui/table-auto'
 
-import {
-  nomColumn,
-  nomCell,
-  referencesColumn,
-  statutColumn,
-  titulairesColumn,
-  statutCell,
-  referencesCell,
-  titulairesCell
-} from '@/components/titres/table-utils'
+import { nomColumn, nomCell, referencesColumn, statutColumn, titulairesColumn, statutCell, referencesCell, titulairesCell } from '@/components/titres/table-utils'
 import { CommonTitrePTMG } from 'camino-common/src/titres'
 import { LoadingElement } from '@/components/_ui/functional-loader'
 import { AsyncData } from '@/api/client-rest'
@@ -19,27 +10,21 @@ import { ComponentColumnData, TableRow, TextColumnData } from '../_ui/table'
 export interface Props {
   getPtmgTitres: () => Promise<CommonTitrePTMG[]>
 }
-const columns = [
-  nomColumn,
-  statutColumn,
-  referencesColumn,
-  titulairesColumn
-] as const
+const columns = [nomColumn, statutColumn, referencesColumn, titulairesColumn] as const
 type Columns = (typeof columns)[number]['id']
 
 const titresLignesBuild = (titres: CommonTitrePTMG[]): TableRow<Columns>[] => {
   return titres.map(titre => {
-    const columns: { [key in Columns]: ComponentColumnData | TextColumnData } =
-      {
-        nom: nomCell(titre),
-        statut: statutCell(titre),
-        references: referencesCell(titre),
-        titulaires: titulairesCell(titre)
-      }
+    const columns: { [key in Columns]: ComponentColumnData | TextColumnData } = {
+      nom: nomCell(titre),
+      statut: statutCell(titre),
+      references: referencesCell(titre),
+      titulaires: titulairesCell(titre),
+    }
     return {
       id: titre.id,
       link: { name: 'titre', params: { id: titre.slug } },
-      columns
+      columns,
     }
   })
 }
@@ -58,23 +43,19 @@ export const PurePTMGDashboard = defineComponent<Props>({
     onMounted(async () => {
       try {
         const titres = await props.getPtmgTitres()
-        const ptmgTitres = titresLignesBuild(
-          titres.filter(titre => !titre.enAttenteDePTMG)
-        )
+        const ptmgTitres = titresLignesBuild(titres.filter(titre => !titre.enAttenteDePTMG))
 
-        const ptmgTitresBloques = titresLignesBuild(
-          titres.filter(titre => titre.enAttenteDePTMG)
-        )
+        const ptmgTitresBloques = titresLignesBuild(titres.filter(titre => titre.enAttenteDePTMG))
 
         data.value = {
           status: 'LOADED',
-          value: { ptmgTitres, ptmgTitresBloques }
+          value: { ptmgTitres, ptmgTitresBloques },
         }
       } catch (e: any) {
         console.error('error', e)
         data.value = {
           status: 'ERROR',
-          message: e.message ?? "Une erreur s'est produite"
+          message: e.message ?? "Une erreur s'est produite",
         }
       }
     })
@@ -94,26 +75,16 @@ export const PurePTMGDashboard = defineComponent<Props>({
                 <>
                   <div class="line-neutral width-full mb-l"></div>
                   <h3>ARM en attente</h3>
-                  <TableAuto
-                    class="mb-xxl"
-                    columns={columns.slice(0, 5)}
-                    rows={item.ptmgTitresBloques}
-                    initialSort={{ column: initialColumnId, order: 'asc' }}
-                  />
+                  <TableAuto class="mb-xxl" columns={columns.slice(0, 5)} rows={item.ptmgTitresBloques} initialSort={{ column: initialColumnId, order: 'asc' }} />
                 </>
               ) : null}
               <div class="line-neutral width-full mb-l"></div>
               <h3>ARM en cours d’instruction</h3>
-              <TableAuto
-                columns={columns}
-                rows={item.ptmgTitres}
-                initialSort={{ column: initialColumnId, order: 'asc' }}
-                class="width-full-p"
-              />
+              <TableAuto columns={columns} rows={item.ptmgTitres} initialSort={{ column: initialColumnId, order: 'asc' }} class="width-full-p" />
             </>
           )}
         />
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/dashboard/testData.ts b/packages/ui/src/components/dashboard/testData.ts
index c037d97ee..fe4297428 100644
--- a/packages/ui/src/components/dashboard/testData.ts
+++ b/packages/ui/src/components/dashboard/testData.ts
@@ -13,14 +13,14 @@ export const titresDreal: CommonTitreDREAL[] = [
     references: [],
     titulaires: [
       {
-        nom: 'Titulaire1'
-      }
+        nom: 'Titulaire1',
+      },
     ],
     activitesAbsentes: 0,
     activitesEnConstruction: 0,
     enAttenteDeDREAL: false,
     prochainesEtapes: [],
-    derniereEtape: { date: toCaminoDate('2022-01-01'), etapeTypeId: 'mcr' }
+    derniereEtape: { date: toCaminoDate('2022-01-01'), etapeTypeId: 'mcr' },
   },
   {
     id: 'secondId',
@@ -31,20 +31,20 @@ export const titresDreal: CommonTitreDREAL[] = [
     references: [
       {
         nom: '2010-001',
-        referenceTypeId: 'ptm'
+        referenceTypeId: 'ptm',
       },
-      { nom: '2010-000', referenceTypeId: 'ptm' }
+      { nom: '2010-000', referenceTypeId: 'ptm' },
     ],
     titulaires: [
       {
-        nom: 'Titulaire3'
-      }
+        nom: 'Titulaire3',
+      },
     ],
     activitesEnConstruction: 2,
     activitesAbsentes: 0,
     enAttenteDeDREAL: true,
     prochainesEtapes: [ETAPES_TYPES.depotDeLaDemande],
-    derniereEtape: { date: toCaminoDate('2022-01-01'), etapeTypeId: 'mcr' }
+    derniereEtape: { date: toCaminoDate('2022-01-01'), etapeTypeId: 'mcr' },
   },
   {
     id: 'thirdId',
@@ -55,14 +55,14 @@ export const titresDreal: CommonTitreDREAL[] = [
     references: [],
     titulaires: [
       {
-        nom: 'Titulaire1'
-      }
+        nom: 'Titulaire1',
+      },
     ],
     activitesAbsentes: 0,
     activitesEnConstruction: 3,
     enAttenteDeDREAL: false,
     prochainesEtapes: [],
-    derniereEtape: { date: toCaminoDate('2022-01-01'), etapeTypeId: 'mcr' }
+    derniereEtape: { date: toCaminoDate('2022-01-01'), etapeTypeId: 'mcr' },
   },
   {
     id: 'fourthId',
@@ -73,97 +73,97 @@ export const titresDreal: CommonTitreDREAL[] = [
     references: [
       {
         nom: '2010-001',
-        referenceTypeId: 'ptm'
+        referenceTypeId: 'ptm',
       },
-      { nom: '2010-000', referenceTypeId: 'ptm' }
+      { nom: '2010-000', referenceTypeId: 'ptm' },
     ],
     titulaires: [
       {
-        nom: 'Titulaire 8'
-      }
+        nom: 'Titulaire 8',
+      },
     ],
     activitesEnConstruction: 8,
     activitesAbsentes: 2,
     enAttenteDeDREAL: false,
     prochainesEtapes: [],
-    derniereEtape: { date: toCaminoDate('2022-01-01'), etapeTypeId: 'mcr' }
-  }
+    derniereEtape: { date: toCaminoDate('2022-01-01'), etapeTypeId: 'mcr' },
+  },
 ]
 
 export const statistiquesDGTMFake: StatistiquesDGTM = {
   avisAXM: {
     [toCaminoAnnee('2017')]: {
       apd: { ajo: 1, def: 2, dre: 2, fav: 2, fre: 9 },
-      apo: { ajo: 1, def: 2, dre: 2, fav: 2, fre: 9 }
+      apo: { ajo: 1, def: 2, dre: 2, fav: 2, fre: 9 },
     },
     [toCaminoAnnee('2018')]: {
       apd: { ajo: 1, def: 2, dre: 2, fav: 2, fre: 9 },
-      apo: { ajo: 1, def: 2, dre: 2, fav: 2, fre: 9 }
+      apo: { ajo: 1, def: 2, dre: 2, fav: 2, fre: 9 },
     },
     [toCaminoAnnee('2019')]: {
       apd: { ajo: 1, def: 2, dre: 2, fav: 2, fre: 9 },
-      apo: { ajo: 1, def: 2, dre: 2, fav: 2, fre: 9 }
+      apo: { ajo: 1, def: 2, dre: 2, fav: 2, fre: 9 },
     },
     [toCaminoAnnee('2020')]: {
       apd: { ajo: 1, def: 2, dre: 2, fav: 2, fre: 9 },
-      apo: { ajo: 1, def: 2, dre: 2, fav: 2, fre: 9 }
-    }
+      apo: { ajo: 1, def: 2, dre: 2, fav: 2, fre: 9 },
+    },
   },
   producteursOr: {
     [toCaminoAnnee('2017')]: 12,
     [toCaminoAnnee('2018')]: 13,
     [toCaminoAnnee('2019')]: 13,
-    [toCaminoAnnee('2020')]: 15
+    [toCaminoAnnee('2020')]: 15,
   },
   depotEtInstructions: {
     [toCaminoAnnee('2015')]: {
       totalAXMDeposees: 11,
       totalAXMOctroyees: 22,
       totalTitresDeposes: 28,
-      totalTitresOctroyes: 89
+      totalTitresOctroyes: 89,
     },
     [toCaminoAnnee('2016')]: {
       totalAXMDeposees: 14,
       totalAXMOctroyees: 35,
       totalTitresDeposes: 46,
-      totalTitresOctroyes: 111
+      totalTitresOctroyes: 111,
     },
     [toCaminoAnnee('2017')]: {
       totalAXMDeposees: 9,
       totalAXMOctroyees: 20,
       totalTitresDeposes: 34,
-      totalTitresOctroyes: 50
+      totalTitresOctroyes: 50,
     },
     [toCaminoAnnee('2018')]: {
       totalAXMDeposees: 9,
       totalAXMOctroyees: 23,
       totalTitresDeposes: 22,
-      totalTitresOctroyes: 73
+      totalTitresOctroyes: 73,
     },
     [toCaminoAnnee('2019')]: {
       totalAXMDeposees: 14,
       totalAXMOctroyees: 15,
       totalTitresDeposes: 77,
-      totalTitresOctroyes: 64
+      totalTitresOctroyes: 64,
     },
     [toCaminoAnnee('2020')]: {
       totalAXMDeposees: 33,
       totalAXMOctroyees: 13,
       totalTitresDeposes: 95,
-      totalTitresOctroyes: 50
+      totalTitresOctroyes: 50,
     },
     [toCaminoAnnee('2021')]: {
       totalAXMDeposees: 27,
       totalAXMOctroyees: 19,
       totalTitresDeposes: 73,
-      totalTitresOctroyes: 48
+      totalTitresOctroyes: 48,
     },
     [toCaminoAnnee('2022')]: {
       totalAXMDeposees: 12,
       totalAXMOctroyees: 19,
       totalTitresDeposes: 39,
-      totalTitresOctroyes: 34
-    }
+      totalTitresOctroyes: 34,
+    },
   },
   sdom: {
     [toCaminoAnnee('2015')]: {
@@ -171,219 +171,177 @@ export const statistiquesDGTMFake: StatistiquesDGTM = {
       '0_potentielle': { depose: 0, octroye: 1 },
       '1': { depose: 0, octroye: 0 },
       '2': { depose: 0, octroye: 26 },
-      '3': { depose: 0, octroye: 26 }
+      '3': { depose: 0, octroye: 26 },
     },
     [toCaminoAnnee('2016')]: {
       '0': { depose: 0, octroye: 4 },
       '0_potentielle': { depose: 0, octroye: 4 },
       '1': { depose: 0, octroye: 0 },
       '2': { depose: 0, octroye: 43 },
-      '3': { depose: 0, octroye: 26 }
+      '3': { depose: 0, octroye: 26 },
     },
     [toCaminoAnnee('2017')]: {
       '0': { depose: 0, octroye: 2 },
       '0_potentielle': { depose: 0, octroye: 2 },
       '1': { depose: 0, octroye: 0 },
       '2': { depose: 0, octroye: 14 },
-      '3': { depose: 0, octroye: 26 }
+      '3': { depose: 0, octroye: 26 },
     },
     [toCaminoAnnee('2018')]: {
       '0': { depose: 0, octroye: 1 },
       '0_potentielle': { depose: 0, octroye: 1 },
       '1': { depose: 0, octroye: 0 },
       '2': { depose: 0, octroye: 30 },
-      '3': { depose: 0, octroye: 26 }
+      '3': { depose: 0, octroye: 26 },
     },
     [toCaminoAnnee('2019')]: {
       '0': { depose: 0, octroye: 0 },
       '0_potentielle': { depose: 0, octroye: 1 },
       '1': { depose: 0, octroye: 0 },
       '2': { depose: 0, octroye: 19 },
-      '3': { depose: 0, octroye: 26 }
+      '3': { depose: 0, octroye: 26 },
     },
     [toCaminoAnnee('2020')]: {
       '0': { depose: 0, octroye: 0 },
       '0_potentielle': { depose: 0, octroye: 0 },
       '1': { depose: 0, octroye: 0 },
       '2': { depose: 0, octroye: 11 },
-      '3': { depose: 0, octroye: 26 }
+      '3': { depose: 0, octroye: 26 },
     },
     [toCaminoAnnee('2021')]: {
       '0': { depose: 0, octroye: 0 },
       '0_potentielle': { depose: 0, octroye: 0 },
       '1': { depose: 0, octroye: 0 },
       '2': { depose: 0, octroye: 19 },
-      '3': { depose: 0, octroye: 26 }
+      '3': { depose: 0, octroye: 26 },
     },
     [toCaminoAnnee('2022')]: {
       '0': { depose: 0, octroye: 0 },
       '0_potentielle': { depose: 0, octroye: 0 },
       '1': { depose: 0, octroye: 0 },
       '2': { depose: 0, octroye: 9 },
-      '3': { depose: 0, octroye: 26 }
-    }
+      '3': { depose: 0, octroye: 26 },
+    },
   },
   delais: {
     [toCaminoAnnee('2015')]: {
       axm: {
         delaiCommissionDepartementaleEnJours: [591],
         delaiInstructionEnJours: [1341, 496, 1327, 633, 607, 1044],
-        delaiDecisionPrefetEnJours: [127]
+        delaiDecisionPrefetEnJours: [127],
       },
       prm: {
         delaiCommissionDepartementaleEnJours: [591],
         delaiInstructionEnJours: [1341, 496, 1327, 633, 607, 1044],
-        delaiDecisionPrefetEnJours: [127]
+        delaiDecisionPrefetEnJours: [127],
       },
       cxm: {
         delaiCommissionDepartementaleEnJours: [591],
         delaiInstructionEnJours: [1341, 496, 1327, 633, 607, 1044],
-        delaiDecisionPrefetEnJours: [127]
-      }
+        delaiDecisionPrefetEnJours: [127],
+      },
     },
     [toCaminoAnnee('2017')]: {
       axm: {
         delaiCommissionDepartementaleEnJours: [401, 568, 758, 167],
         delaiInstructionEnJours: [698, 821, 1449, 1823],
-        delaiDecisionPrefetEnJours: [12]
+        delaiDecisionPrefetEnJours: [12],
       },
       prm: {
         delaiCommissionDepartementaleEnJours: [401, 568, 758, 167],
         delaiInstructionEnJours: [698, 821, 1449, 1823],
-        delaiDecisionPrefetEnJours: [12]
+        delaiDecisionPrefetEnJours: [12],
       },
       cxm: {
         delaiCommissionDepartementaleEnJours: [401, 568, 758, 167],
         delaiInstructionEnJours: [698, 821, 1449, 1823],
-        delaiDecisionPrefetEnJours: [12]
-      }
+        delaiDecisionPrefetEnJours: [12],
+      },
     },
     [toCaminoAnnee('2018')]: {
       axm: {
         delaiCommissionDepartementaleEnJours: [387, 273, 100],
         delaiInstructionEnJours: [618],
-        delaiDecisionPrefetEnJours: [523]
+        delaiDecisionPrefetEnJours: [523],
       },
       prm: {
         delaiCommissionDepartementaleEnJours: [387, 273, 100],
         delaiInstructionEnJours: [618],
-        delaiDecisionPrefetEnJours: [523]
+        delaiDecisionPrefetEnJours: [523],
       },
       cxm: {
         delaiCommissionDepartementaleEnJours: [387, 273, 100],
         delaiInstructionEnJours: [618],
-        delaiDecisionPrefetEnJours: [523]
-      }
+        delaiDecisionPrefetEnJours: [523],
+      },
     },
     [toCaminoAnnee('2019')]: {
       axm: {
         delaiCommissionDepartementaleEnJours: [223, 125, 281],
         delaiInstructionEnJours: [276, 970, 303],
-        delaiDecisionPrefetEnJours: [123]
+        delaiDecisionPrefetEnJours: [123],
       },
       prm: {
         delaiCommissionDepartementaleEnJours: [223, 125, 281],
         delaiInstructionEnJours: [276, 970, 303],
-        delaiDecisionPrefetEnJours: [123]
+        delaiDecisionPrefetEnJours: [123],
       },
       cxm: {
         delaiCommissionDepartementaleEnJours: [223, 125, 281],
         delaiInstructionEnJours: [276, 970, 303],
-        delaiDecisionPrefetEnJours: [123]
-      }
+        delaiDecisionPrefetEnJours: [123],
+      },
     },
     [toCaminoAnnee('2020')]: {
       axm: {
-        delaiCommissionDepartementaleEnJours: [
-          546, 415, 85, 85, 49, 49, 55, 72, 86, 55, 319, 284, 140, 56, 72, 181,
-          68
-        ],
-        delaiInstructionEnJours: [
-          571, 108, 97, 97, 61, 61, 74, 91, 95, 68, 366, 364, 101, 189, 115, 83,
-          84, 230, 117
-        ],
-        delaiDecisionPrefetEnJours: [87]
+        delaiCommissionDepartementaleEnJours: [546, 415, 85, 85, 49, 49, 55, 72, 86, 55, 319, 284, 140, 56, 72, 181, 68],
+        delaiInstructionEnJours: [571, 108, 97, 97, 61, 61, 74, 91, 95, 68, 366, 364, 101, 189, 115, 83, 84, 230, 117],
+        delaiDecisionPrefetEnJours: [87],
       },
       prm: {
-        delaiCommissionDepartementaleEnJours: [
-          546, 415, 85, 85, 49, 49, 55, 72, 86, 55, 319, 284, 140, 56, 72, 181,
-          68
-        ],
-        delaiInstructionEnJours: [
-          571, 108, 97, 97, 61, 61, 74, 91, 95, 68, 366, 364, 101, 189, 115, 83,
-          84, 230, 117
-        ],
-        delaiDecisionPrefetEnJours: [87]
+        delaiCommissionDepartementaleEnJours: [546, 415, 85, 85, 49, 49, 55, 72, 86, 55, 319, 284, 140, 56, 72, 181, 68],
+        delaiInstructionEnJours: [571, 108, 97, 97, 61, 61, 74, 91, 95, 68, 366, 364, 101, 189, 115, 83, 84, 230, 117],
+        delaiDecisionPrefetEnJours: [87],
       },
       cxm: {
-        delaiCommissionDepartementaleEnJours: [
-          546, 415, 85, 85, 49, 49, 55, 72, 86, 55, 319, 284, 140, 56, 72, 181,
-          68
-        ],
-        delaiInstructionEnJours: [
-          571, 108, 97, 97, 61, 61, 74, 91, 95, 68, 366, 364, 101, 189, 115, 83,
-          84, 230, 117
-        ],
-        delaiDecisionPrefetEnJours: [87]
-      }
+        delaiCommissionDepartementaleEnJours: [546, 415, 85, 85, 49, 49, 55, 72, 86, 55, 319, 284, 140, 56, 72, 181, 68],
+        delaiInstructionEnJours: [571, 108, 97, 97, 61, 61, 74, 91, 95, 68, 366, 364, 101, 189, 115, 83, 84, 230, 117],
+        delaiDecisionPrefetEnJours: [87],
+      },
     },
     [toCaminoAnnee('2021')]: {
       axm: {
-        delaiCommissionDepartementaleEnJours: [
-          74, 83, 121, 121, 65, 65, 74, 58, 58, 101, 115, 115, 96, 115, 121,
-          141, 108, 108, 202, 157, 143, 184, 183, 67
-        ],
-        delaiInstructionEnJours: [
-          87, 117, 166, 166, 90, 90, 87, 83, 83, 113, 160, 160, 110, 160, 166,
-          153, 186, 133, 133, 214, 171, 157, 198, 197, 77
-        ],
-        delaiDecisionPrefetEnJours: [1]
+        delaiCommissionDepartementaleEnJours: [74, 83, 121, 121, 65, 65, 74, 58, 58, 101, 115, 115, 96, 115, 121, 141, 108, 108, 202, 157, 143, 184, 183, 67],
+        delaiInstructionEnJours: [87, 117, 166, 166, 90, 90, 87, 83, 83, 113, 160, 160, 110, 160, 166, 153, 186, 133, 133, 214, 171, 157, 198, 197, 77],
+        delaiDecisionPrefetEnJours: [1],
       },
       prm: {
-        delaiCommissionDepartementaleEnJours: [
-          74, 83, 121, 121, 65, 65, 74, 58, 58, 101, 115, 115, 96, 115, 121,
-          141, 108, 108, 202, 157, 143, 184, 183, 67
-        ],
-        delaiInstructionEnJours: [
-          87, 117, 166, 166, 90, 90, 87, 83, 83, 113, 160, 160, 110, 160, 166,
-          153, 186, 133, 133, 214, 171, 157, 198, 197, 77
-        ],
-        delaiDecisionPrefetEnJours: [1]
+        delaiCommissionDepartementaleEnJours: [74, 83, 121, 121, 65, 65, 74, 58, 58, 101, 115, 115, 96, 115, 121, 141, 108, 108, 202, 157, 143, 184, 183, 67],
+        delaiInstructionEnJours: [87, 117, 166, 166, 90, 90, 87, 83, 83, 113, 160, 160, 110, 160, 166, 153, 186, 133, 133, 214, 171, 157, 198, 197, 77],
+        delaiDecisionPrefetEnJours: [1],
       },
       cxm: {
-        delaiCommissionDepartementaleEnJours: [
-          74, 83, 121, 121, 65, 65, 74, 58, 58, 101, 115, 115, 96, 115, 121,
-          141, 108, 108, 202, 157, 143, 184, 183, 67
-        ],
-        delaiInstructionEnJours: [
-          87, 117, 166, 166, 90, 90, 87, 83, 83, 113, 160, 160, 110, 160, 166,
-          153, 186, 133, 133, 214, 171, 157, 198, 197, 77
-        ],
-        delaiDecisionPrefetEnJours: [1]
-      }
+        delaiCommissionDepartementaleEnJours: [74, 83, 121, 121, 65, 65, 74, 58, 58, 101, 115, 115, 96, 115, 121, 141, 108, 108, 202, 157, 143, 184, 183, 67],
+        delaiInstructionEnJours: [87, 117, 166, 166, 90, 90, 87, 83, 83, 113, 160, 160, 110, 160, 166, 153, 186, 133, 133, 214, 171, 157, 198, 197, 77],
+        delaiDecisionPrefetEnJours: [1],
+      },
     },
     [toCaminoAnnee('2022')]: {
       axm: {
-        delaiCommissionDepartementaleEnJours: [
-          64, 64, 58, 53, 52, 52, 114, 99, 61
-        ],
+        delaiCommissionDepartementaleEnJours: [64, 64, 58, 53, 52, 52, 114, 99, 61],
         delaiInstructionEnJours: [78, 70, 73, 66, 66, 128, 111, 73],
-        delaiDecisionPrefetEnJours: [8]
+        delaiDecisionPrefetEnJours: [8],
       },
       prm: {
-        delaiCommissionDepartementaleEnJours: [
-          64, 64, 58, 53, 52, 52, 114, 99, 61
-        ],
+        delaiCommissionDepartementaleEnJours: [64, 64, 58, 53, 52, 52, 114, 99, 61],
         delaiInstructionEnJours: [78, 70, 73, 66, 66, 128, 111, 73],
-        delaiDecisionPrefetEnJours: [8]
+        delaiDecisionPrefetEnJours: [8],
       },
       cxm: {
-        delaiCommissionDepartementaleEnJours: [
-          64, 64, 58, 53, 52, 52, 114, 99, 61
-        ],
+        delaiCommissionDepartementaleEnJours: [64, 64, 58, 53, 52, 52, 114, 99, 61],
         delaiInstructionEnJours: [78, 70, 73, 66, 66, 128, 111, 73],
-        delaiDecisionPrefetEnJours: [8]
-      }
-    }
-  }
+        delaiDecisionPrefetEnJours: [8],
+      },
+    },
+  },
 }
diff --git a/packages/ui/src/components/demarches.vue b/packages/ui/src/components/demarches.vue
index 45b03b284..ba21a1145 100644
--- a/packages/ui/src/components/demarches.vue
+++ b/packages/ui/src/components/demarches.vue
@@ -8,6 +8,6 @@ import Page from './demarches/page.vue'
 export default {
   name: 'Demarches',
 
-  components: { Page }
+  components: { Page },
 }
 </script>
diff --git a/packages/ui/src/components/demarches/filtres-custom-etapes.vue b/packages/ui/src/components/demarches/filtres-custom-etapes.vue
index d40abc1d7..71120028d 100644
--- a/packages/ui/src/components/demarches/filtres-custom-etapes.vue
+++ b/packages/ui/src/components/demarches/filtres-custom-etapes.vue
@@ -7,11 +7,7 @@
       <div class="flex mb-s">
         <select v-model="value.typeId" class="p-s mr-s" @change="valueReset(n)">
           <option value="">–</option>
-          <option
-            v-for="type in filter.elements"
-            :key="type.id"
-            :value="type.id"
-          >
+          <option v-for="type in filter.elements" :key="type.id" :value="type.id">
             {{ type.nom }}
           </option>
         </select>
@@ -27,17 +23,9 @@
             <p class="h6 italic mb-0">Optionnel</p>
           </div>
           <div class="blob-3-4">
-            <select
-              v-model="value.statutId"
-              class="p-s mr-s cap-first"
-              @change="statutValueReset(n)"
-            >
+            <select v-model="value.statutId" class="p-s mr-s cap-first" @change="statutValueReset(n)">
               <option :value="''">–</option>
-              <option
-                v-for="statut in statutsFind(n)"
-                :key="statut.id"
-                :value="statut.id"
-              >
+              <option v-for="statut in statutsFind(n)" :key="statut.id" :value="statut.id">
                 {{ statut.nom }}
               </option>
             </select>
@@ -49,10 +37,7 @@
             <p class="h6 italic mb-0">Optionnel</p>
           </div>
           <div class="blob-3-4">
-            <InputDate
-              :initialValue="filter.value[n].dateDebut"
-              :dateChanged="date => dateDebutChanged(n, date)"
-            />
+            <InputDate :initialValue="filter.value[n].dateDebut" :dateChanged="date => dateDebutChanged(n, date)" />
           </div>
         </div>
         <div class="blobs mb-s">
@@ -61,20 +46,13 @@
             <p class="h6 italic mb-0">Optionnel</p>
           </div>
           <div class="blob-3-4">
-            <InputDate
-              :initialValue="filter.value[n].dateFin"
-              :dateChanged="date => dateFinChanged(n, date)"
-            />
+            <InputDate :initialValue="filter.value[n].dateFin" :dateChanged="date => dateFinChanged(n, date)" />
           </div>
         </div>
       </div>
       <hr class="mb-s" />
     </div>
-    <button
-      v-if="!filter.value || !filter.value.some(v => v.typeId === '')"
-      class="btn rnd-xs py-s px-m full-x flex mb-s h6"
-      @click="valueAdd"
-    >
+    <button v-if="!filter.value || !filter.value.some(v => v.typeId === '')" class="btn rnd-xs py-s px-m full-x flex mb-s h6" @click="valueAdd">
       <span class="mt-xxs">Ajouter un type d'étape</span>
       <Icon name="plus" size="M" class="flex-right" />
     </button>
@@ -90,7 +68,7 @@ export default {
   components: { Icon, InputDate },
 
   props: {
-    filter: { type: Object, required: true }
+    filter: { type: Object, required: true },
   },
 
   methods: {
@@ -121,7 +99,7 @@ export default {
       if (!this.filter.value[n].statutId) {
         delete this.filter.value[n].statutId
       }
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/demarches/filtres.js b/packages/ui/src/components/demarches/filtres.js
index 5dba4a82e..2452d296c 100644
--- a/packages/ui/src/components/demarches/filtres.js
+++ b/packages/ui/src/components/demarches/filtres.js
@@ -45,7 +45,7 @@ const etapesLabelFormat = f =>
         })
         .sort((a, b) => a.order - b.order)
         .map(value => value.label)
-        .join(', ')
+        .join(', '),
     }))
 
 // supprime les clés dont les valeurs sont vides
@@ -87,7 +87,7 @@ const filtres = [
     name: 'Noms',
     lazy: true,
     search: value => titresRechercherByNom({ noms: value, intervalle: 100 }),
-    load: value => titresFiltres({ titresIds: value })
+    load: value => titresFiltres({ titresIds: value }),
   },
   {
     id: 'titresDomainesIds',
@@ -95,14 +95,14 @@ const filtres = [
     type: 'checkboxes',
     value: [],
     elements: sortedDomaines,
-    component: 'FiltreDomaine'
+    component: 'FiltreDomaine',
   },
   {
     id: 'titresTypesIds',
     name: 'Types de titre',
     type: 'checkboxes',
     value: [],
-    elements: sortedTitreTypesTypes
+    elements: sortedTitreTypesTypes,
   },
   {
     id: 'titresStatutsIds',
@@ -110,42 +110,42 @@ const filtres = [
     type: 'checkboxes',
     value: [],
     elements: sortedTitresStatuts,
-    component: 'FiltresStatuts'
+    component: 'FiltresStatuts',
   },
   {
     id: 'titresEntreprisesIds',
     type: 'autocomplete',
     value: [],
     name: 'Entreprises',
-    elementsFormat
+    elementsFormat,
   },
   {
     id: 'titresSubstancesIds',
     type: 'autocomplete',
     value: [],
     elements: SubstancesLegales,
-    name: 'Substances'
+    name: 'Substances',
   },
   {
     id: 'titresReferences',
     type: 'input',
     value: '',
     name: 'Références',
-    placeholder: 'Référence DGEC, DEAL, DEB, BRGM, Ifremer, …'
+    placeholder: 'Référence DGEC, DEAL, DEB, BRGM, Ifremer, …',
   },
   {
     id: 'titresTerritoires',
     type: 'input',
     value: '',
     name: 'Territoires',
-    placeholder: 'Commune, département, région, …'
+    placeholder: 'Commune, département, région, …',
   },
   {
     id: 'typesIds',
     name: 'Types',
     type: 'checkboxes',
     value: [],
-    elements: sortedDemarchesTypes
+    elements: sortedDemarchesTypes,
   },
   {
     id: 'statutsIds',
@@ -153,7 +153,7 @@ const filtres = [
     type: 'checkboxes',
     value: [],
     elements: sortedDemarchesStatuts,
-    component: 'FiltresStatuts'
+    component: 'FiltresStatuts',
   },
   {
     id: 'etapesInclues',
@@ -164,7 +164,7 @@ const filtres = [
     component: markRaw(FiltresEtapes),
     clean: etapesClean,
     elementsFormat: etapesElementsFormat,
-    labelFormat: etapesLabelFormat
+    labelFormat: etapesLabelFormat,
   },
   {
     id: 'etapesExclues',
@@ -175,8 +175,8 @@ const filtres = [
     component: markRaw(FiltresEtapes),
     clean: etapesClean,
     elementsFormat: etapesElementsFormat,
-    labelFormat: etapesLabelFormat
-  }
+    labelFormat: etapesLabelFormat,
+  },
 ]
 
 export default filtres
diff --git a/packages/ui/src/components/demarches/page.vue b/packages/ui/src/components/demarches/page.vue
index 3105d43b5..b15f2ca73 100644
--- a/packages/ui/src/components/demarches/page.vue
+++ b/packages/ui/src/components/demarches/page.vue
@@ -12,12 +12,7 @@
     @params-update="paramsUpdate"
   >
     <template v-if="demarches.length" #downloads>
-      <Downloads
-        :formats="['csv', 'xlsx', 'ods']"
-        section="demarches"
-        :params="{ travaux: travaux }"
-        class="flex-right full-x"
-      />
+      <Downloads :formats="['csv', 'xlsx', 'ods']" section="demarches" :params="{ travaux: travaux }" class="flex-right full-x" />
     </template>
   </liste>
 </template>
@@ -38,14 +33,14 @@ export default {
   props: {
     travaux: {
       type: Boolean,
-      required: true
-    }
+      required: true,
+    },
   },
 
   data() {
     return {
       colonnes: demarchesColonnes,
-      filtres
+      filtres,
     }
   },
 
@@ -83,7 +78,7 @@ export default {
 
     initialized() {
       return this.$store.state.titresDemarches.initialized
-    }
+    },
   },
 
   watch: {
@@ -92,8 +87,8 @@ export default {
     '$route.query': {
       handler: function () {
         this.$store.dispatch('titresDemarches/routeUpdate')
-      }
-    }
+      },
+    },
   },
 
   async created() {
@@ -107,7 +102,7 @@ export default {
   methods: {
     async init() {
       await this.$store.dispatch('titresDemarches/init', {
-        travaux: this.travaux
+        travaux: this.travaux,
       })
     },
 
@@ -120,14 +115,8 @@ export default {
     },
 
     eventTrack(params) {
-      paramsEventTrack(
-        params,
-        this.definitions,
-        this.$matomo,
-        'demarches',
-        'filtres'
-      )
-    }
-  }
+      paramsEventTrack(params, this.definitions, this.$matomo, 'demarches', 'filtres')
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/demarches/table.js b/packages/ui/src/components/demarches/table.js
index ca880436b..01193d7f7 100644
--- a/packages/ui/src/components/demarches/table.js
+++ b/packages/ui/src/components/demarches/table.js
@@ -6,10 +6,7 @@ import List from '../_ui/list.vue'
 import { DemarchesStatuts } from 'camino-common/src/static/demarchesStatuts'
 import { TitresStatuts } from 'camino-common/src/static/titresStatuts'
 import { ReferencesTypes } from 'camino-common/src/static/referencesTypes'
-import {
-  getDomaineId,
-  getTitreTypeType
-} from 'camino-common/src/static/titresTypes'
+import { getDomaineId, getTitreTypeType } from 'camino-common/src/static/titresTypes'
 import { TitresTypesTypes } from 'camino-common/src/static/titresTypesTypes'
 
 const demarchesColonnes = [
@@ -19,68 +16,65 @@ const demarchesColonnes = [
   {
     id: 'titreStatut',
     name: 'Statut de titre',
-    class: ['nowrap', 'min-width-6']
+    class: ['nowrap', 'min-width-6'],
   },
   { id: 'type', name: 'Type' },
   { id: 'statut', name: 'Statut', class: ['nowrap'] },
-  { id: 'references', name: 'Références', class: ['nowrap'], noSort: true }
+  { id: 'references', name: 'Références', class: ['nowrap'], noSort: true },
 ]
 
 const demarchesLignesBuild = demarches =>
   demarches.map(demarche => {
     const titreStatut = TitresStatuts[demarche.titre.titreStatutId]
     const domaineId = getDomaineId(demarche.titre.typeId)
-    const titreTypeType =
-      TitresTypesTypes[getTitreTypeType(demarche.titre.typeId)]
+    const titreTypeType = TitresTypesTypes[getTitreTypeType(demarche.titre.typeId)]
     const columns = {
       titreNom: { value: demarche.titre.nom },
       titreDomaine: {
         component: markRaw(CaminoDomaine),
         props: { domaineId },
-        value: domaineId
+        value: domaineId,
       },
       titreType: {
         component: markRaw(Nom),
         props: { nom: titreTypeType.nom },
-        value: titreTypeType.nom
+        value: titreTypeType.nom,
       },
       titreStatut: {
         component: markRaw(Statut),
         props: {
           color: titreStatut.couleur,
-          nom: titreStatut.nom
+          nom: titreStatut.nom,
         },
-        value: titreStatut.nom
+        value: titreStatut.nom,
       },
       type: {
         component: markRaw(Nom),
         props: { nom: demarche.type.nom },
-        value: demarche.type.nom
+        value: demarche.type.nom,
       },
       statut: {
         component: markRaw(Statut),
         props: {
           color: DemarchesStatuts[demarche.statutId].couleur,
-          nom: DemarchesStatuts[demarche.statutId].nom
+          nom: DemarchesStatuts[demarche.statutId].nom,
         },
-        value: DemarchesStatuts[demarche.statutId].nom
+        value: DemarchesStatuts[demarche.statutId].nom,
       },
       references: {
         component: markRaw(List),
         props: {
-          elements: demarche.titre.references.map(
-            ref => `${ReferencesTypes[ref.referenceTypeId].nom} : ${ref.nom}`
-          ),
-          mini: true
+          elements: demarche.titre.references.map(ref => `${ReferencesTypes[ref.referenceTypeId].nom} : ${ref.nom}`),
+          mini: true,
         },
-        class: 'mb--xs'
-      }
+        class: 'mb--xs',
+      },
     }
 
     return {
       id: demarche.id,
       link: { name: 'titre', params: { id: demarche.titre.slug } },
-      columns
+      columns,
     }
   })
 
diff --git a/packages/ui/src/components/document/button-add.vue b/packages/ui/src/components/document/button-add.vue
index 13b37b6c2..6b8842ce8 100644
--- a/packages/ui/src/components/document/button-add.vue
+++ b/packages/ui/src/components/document/button-add.vue
@@ -19,7 +19,7 @@ export default {
     repertoire: { type: String, required: true },
     title: { type: String, required: true },
     large: { type: Boolean, default: false },
-    documentsTypes: { type: Array, default: null }
+    documentsTypes: { type: Array, default: null },
   },
 
   emits: ['titre-event-track'],
@@ -35,16 +35,16 @@ export default {
           parentTypeId: this.parentTypeId,
           repertoire: this.repertoire,
           title: this.title,
-          documentsTypes: this.documentsTypes
-        }
+          documentsTypes: this.documentsTypes,
+        },
       })
 
       this.$emit('titre-event-track', {
         categorie: 'titre-sections',
         action: 'titre-etape-doc_ajouter',
-        nom: this.$route.params.id
+        nom: this.$route.params.id,
       })
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/document/edit-popup.vue b/packages/ui/src/components/document/edit-popup.vue
index f9b466d9f..eb875ec72 100644
--- a/packages/ui/src/components/document/edit-popup.vue
+++ b/packages/ui/src/components/document/edit-popup.vue
@@ -7,9 +7,7 @@
             {{ title }}
           </span>
         </h6>
-        <h2 class="cap-first">
-          {{ document.id ? 'Modification du' : "Ajout d'un" }} document
-        </h2>
+        <h2 class="cap-first">{{ document.id ? 'Modification du' : "Ajout d'un" }} document</h2>
       </div>
     </template>
 
@@ -19,12 +17,7 @@
       </div>
       <div class="mb tablet-blob-2-3">
         <select v-if="!document.id" v-model="document.typeId" class="p-s">
-          <option
-            v-for="dt in types"
-            :key="dt.id"
-            :value="dt.id"
-            :disabled="document.typeId === dt.id"
-          >
+          <option v-for="dt in types" :key="dt.id" :value="dt.id" :disabled="document.typeId === dt.id">
             {{ dt.nom }}
           </option>
         </select>
@@ -36,34 +29,15 @@
 
     <hr />
 
-    <SectionsEdit
-      :document="document"
-      :repertoire="repertoire"
-      :userIsAdmin="userIsAdmin"
-      @update:document="newValue => emits('update:document', newValue)"
-    />
+    <SectionsEdit :document="document" :repertoire="repertoire" :userIsAdmin="userIsAdmin" @update:document="newValue => emits('update:document', newValue)" />
 
     <template #footer>
       <div class="tablet-blobs">
         <div class="tablet-blob-1-3 mb tablet-mb-0">
-          <button
-            v-if="!loading"
-            class="btn-border rnd-xs p-s full-x"
-            @click="cancel"
-          >
-            Annuler
-          </button>
+          <button v-if="!loading" class="btn-border rnd-xs p-s full-x" @click="cancel">Annuler</button>
         </div>
         <div class="tablet-blob-2-3">
-          <button
-            v-if="!loading"
-            ref="save-button"
-            class="btn btn-primary"
-            :disabled="!complete"
-            @click="save"
-          >
-            Enregistrer
-          </button>
+          <button v-if="!loading" ref="save-button" class="btn btn-primary" :disabled="!complete" @click="save">Enregistrer</button>
 
           <div v-else class="p-s full-x bold">Enregistrement en cours…</div>
         </div>
@@ -81,7 +55,7 @@ export default {
 
   components: {
     Popup,
-    SectionsEdit
+    SectionsEdit,
   },
 
   props: {
@@ -91,7 +65,7 @@ export default {
     document: { type: Object, required: true },
     repertoire: { type: String, required: true },
     parentTypeId: { type: String, default: '' },
-    documentsTypes: { type: Array, default: null }
+    documentsTypes: { type: Array, default: null },
   },
 
   emits: ['update:document'],
@@ -102,14 +76,7 @@ export default {
     },
 
     complete() {
-      return (
-        this.document.typeId &&
-        this.document.date &&
-        (this.document.uri ||
-          this.document.url ||
-          this.document.fichier ||
-          this.document.fichierNouveau)
-      )
+      return this.document.typeId && this.document.date && (this.document.uri || this.document.url || this.document.fichier || this.document.fichierNouveau)
     },
 
     messages() {
@@ -129,7 +96,7 @@ export default {
 
     userIsAdmin() {
       return this.$store.getters['user/userIsAdmin']
-    }
+    },
   },
 
   async created() {
@@ -158,13 +125,13 @@ export default {
       await this.$store.dispatch('document/upsert', {
         document: this.document,
         route: this.route,
-        action: this.action
+        action: this.action,
       })
 
       this.eventTrack({
         categorie: 'titre-sections',
         action: 'titre-etape-doc-enregistrer',
-        nom: this.document.titreEtapeId
+        nom: this.document.titreEtapeId,
       })
     },
 
@@ -190,7 +157,7 @@ export default {
       }
     },
 
-    errorsRemove() {}
-  }
+    errorsRemove() {},
+  },
 }
 </script>
diff --git a/packages/ui/src/components/document/multi-edit.vue b/packages/ui/src/components/document/multi-edit.vue
index 7cb27cb18..f5df48723 100644
--- a/packages/ui/src/components/document/multi-edit.vue
+++ b/packages/ui/src/components/document/multi-edit.vue
@@ -22,7 +22,7 @@
         fichier: null,
         fichierNouveau: null,
         fichierTypeId: null,
-        typeId: ''
+        typeId: '',
       }"
       :action="addAction"
       :title="documentPopupTitle"
@@ -50,14 +50,14 @@ export default {
     documentPopupTitle: { type: String, required: true },
     addAction: { type: Object, default: null },
     removeAction: { type: Object, default: null },
-    repertoire: { type: String, required: true }
+    repertoire: { type: String, required: true },
   },
 
   emits: ['complete-update'],
 
   data() {
     return {
-      TODAY
+      TODAY,
     }
   },
 
@@ -66,26 +66,17 @@ export default {
       return this.documents.every(d => {
         const documentType = this.documentsTypes.find(dt => dt.id === d.typeId)
 
-        return (
-          !documentType ||
-          documentType.optionnel ||
-          !!(
-            (d.fichier ||
-              d.fichierNouveau ||
-              (this.userIsAdmin && (d.uri || d.url))) &&
-            d.date
-          )
-        )
+        return !documentType || documentType.optionnel || !!((d.fichier || d.fichierNouveau || (this.userIsAdmin && (d.uri || d.url))) && d.date)
       })
     },
 
     userIsAdmin() {
       return this.$store.getters['user/userIsAdmin']
-    }
+    },
   },
 
   watch: {
-    complete: 'completeUpdate'
+    complete: 'completeUpdate',
   },
 
   created() {
@@ -95,7 +86,7 @@ export default {
   methods: {
     completeUpdate() {
       this.$emit('complete-update', this.complete)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/document/remove-popup.vue b/packages/ui/src/components/document/remove-popup.vue
index 7c2e8d430..429531328 100644
--- a/packages/ui/src/components/document/remove-popup.vue
+++ b/packages/ui/src/components/document/remove-popup.vue
@@ -13,33 +13,17 @@
 
     <p class="bold">
       Souhaitez vous supprimer le document
-      <span class="color-inverse">{{ document.type.nom }}</span> de
-      <span class="color-inverse">{{ title }}</span> ?
+      <span class="color-inverse">{{ document.type.nom }}</span> de <span class="color-inverse">{{ title }}</span> ?
     </p>
-    <div class="bg-warning color-bg p-s mb-l">
-      <span class="bold"> Attention </span>: cette opération est définitive et
-      ne peut pas être annulée.
-    </div>
+    <div class="bg-warning color-bg p-s mb-l"><span class="bold"> Attention </span>: cette opération est définitive et ne peut pas être annulée.</div>
 
     <template #footer>
       <div class="tablet-blobs">
         <div class="tablet-blob-1-3 mb tablet-mb-0">
-          <button
-            v-if="!loading"
-            class="btn-border rnd-xs p-s full-x"
-            @click="cancel"
-          >
-            Annuler
-          </button>
+          <button v-if="!loading" class="btn-border rnd-xs p-s full-x" @click="cancel">Annuler</button>
         </div>
         <div class="tablet-blob-2-3">
-          <button
-            v-if="!loading"
-            class="btn-flash rnd-xs p-s full-x"
-            @click="remove"
-          >
-            Supprimer
-          </button>
+          <button v-if="!loading" class="btn-flash rnd-xs p-s full-x" @click="remove">Supprimer</button>
           <div v-else class="p-s full-x bold">Suppression en cours…</div>
         </div>
       </div>
@@ -54,13 +38,13 @@ export default {
   name: 'CaminoDocumentRemovePopup',
 
   components: {
-    Popup
+    Popup,
   },
 
   props: {
     title: { type: String, default: '' },
     route: { type: Object, required: true },
-    document: { type: Object, default: () => ({}) }
+    document: { type: Object, default: () => ({}) },
   },
 
   computed: {
@@ -70,7 +54,7 @@ export default {
 
     loading() {
       return this.$store.state.popup.loading
-    }
+    },
   },
 
   created() {
@@ -85,7 +69,7 @@ export default {
     async remove() {
       await this.$store.dispatch('document/remove', {
         id: this.document.id,
-        route: this.route
+        route: this.route,
       })
     },
 
@@ -99,7 +83,7 @@ export default {
       } else if ((e.which || e.keyCode) === 13) {
         this.remove()
       }
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/document/sections-edit.vue b/packages/ui/src/components/document/sections-edit.vue
index 945988335..e2dc193c1 100644
--- a/packages/ui/src/components/document/sections-edit.vue
+++ b/packages/ui/src/components/document/sections-edit.vue
@@ -5,11 +5,7 @@
         <h5>Date</h5>
       </div>
       <div class="tablet-blob-2-3">
-        <InputDate
-          :initialValue="document.date"
-          :dateChanged="dateChanged"
-          class="mb"
-        />
+        <InputDate :initialValue="document.date" :dateChanged="dateChanged" class="mb" />
       </div>
     </div>
 
@@ -24,13 +20,7 @@
           <ul class="list-sans">
             <li v-for="visibilite in documentsVisibilites" :key="visibilite.id">
               <label class="small bold">
-                <input
-                  :value="visibilite.id"
-                  :checked="visibilite.id === visibiliteId"
-                  type="radio"
-                  class="mr-s"
-                  @change="visibiliteUpdate(visibilite.id)"
-                />
+                <input :value="visibilite.id" :checked="visibilite.id === visibiliteId" type="radio" class="mr-s" @change="visibiliteUpdate(visibilite.id)" />
                 {{ visibilite.nom }}
               </label>
             </li>
@@ -48,31 +38,19 @@
       <div class="tablet-blob-2-3">
         <div v-if="document.fichier || document.fichierNouveau" class="flex">
           <p class="mb-0 word-break">
-            {{
-              (document.fichierNouveau && document.fichierNouveau.name) ||
-              `${document.id}.${document.fichierTypeId}`
-            }}
+            {{ (document.fichierNouveau && document.fichierNouveau.name) || `${document.id}.${document.fichierTypeId}` }}
           </p>
           <div class="flex-right flex flex-center pl-s">
-            <button
-              class="btn-border py-s px-m my--xs rnd-l-xs"
-              @click="fileRemove"
-            >
+            <button class="btn-border py-s px-m my--xs rnd-l-xs" @click="fileRemove">
               <Icon size="M" name="delete" />
             </button>
-            <button
-              class="btn-border py-s px-m my--xs rnd-r-xs"
-              @click="fileDownload"
-            >
+            <button class="btn-border py-s px-m my--xs rnd-r-xs" @click="fileDownload">
               <Icon size="M" name="download" />
             </button>
           </div>
         </div>
         <div v-else>
-          <InputFile
-            class="btn-border small p-s full-x rnd-xs mb-s"
-            @change="fileChange"
-          />
+          <InputFile class="btn-border small p-s full-x rnd-xs mb-s" @change="fileChange" />
           <p class="h5 italic">30 Mo max.</p>
         </div>
       </div>
@@ -87,12 +65,7 @@
         </div>
         <div class="tablet-blob-2-3 mb">
           <select v-model="document.fichierTypeId" class="p-s">
-            <option
-              v-for="fichierTypeId in fichiersTypesIds"
-              :key="fichierTypeId"
-              :value="fichierTypeId"
-              :disabled="document.fichierTypeId === fichierTypeId"
-            >
+            <option v-for="fichierTypeId in fichiersTypesIds" :key="fichierTypeId" :value="fichierTypeId" :disabled="document.fichierTypeId === fichierTypeId">
               {{ fichierTypeId }}
             </option>
           </select>
@@ -134,12 +107,7 @@
           <p class="h6 italic mb-0">Optionnel</p>
         </div>
         <div class="mb tablet-blob-2-3">
-          <input
-            v-model="document.uri"
-            type="url"
-            class="p-s"
-            placeholder="https://…"
-          />
+          <input v-model="document.uri" type="url" class="p-s" placeholder="https://…" />
         </div>
       </div>
       <hr />
@@ -152,12 +120,7 @@
           <p class="h6 italic mb-0">Optionnel</p>
         </div>
         <div class="mb tablet-blob-2-3">
-          <input
-            v-model="document.url"
-            type="url"
-            class="p-s"
-            placeholder="https://…"
-          />
+          <input v-model="document.url" type="url" class="p-s" placeholder="https://…" />
         </div>
       </div>
       <hr />
@@ -185,13 +148,7 @@ import { InputDate } from '../_ui/input-date'
 import InputFile from '../_ui/input-file.vue'
 import { Messages } from '../_ui/messages'
 import { Icon } from '@/components/_ui/icon'
-import {
-  isAdministrationAdmin,
-  isAdministrationEditeur,
-  isBureauDEtudes,
-  isEntreprise,
-  isSuper
-} from 'camino-common/src/roles'
+import { isAdministrationAdmin, isAdministrationEditeur, isBureauDEtudes, isEntreprise, isSuper } from 'camino-common/src/roles'
 
 export default {
   components: { Icon, Messages, InputFile, InputDate },
@@ -199,13 +156,13 @@ export default {
   props: {
     document: { type: Object, required: true },
     repertoire: { type: String, required: true },
-    userIsAdmin: { type: Boolean, default: false }
+    userIsAdmin: { type: Boolean, default: false },
   },
 
   data() {
     return {
       fichiersTypesIds: ['pdf'],
-      warnings: []
+      warnings: [],
     }
   },
 
@@ -214,25 +171,19 @@ export default {
       const user = this.$store.state.user.element
       if (!user) return []
 
-      if (
-        isSuper(user) ||
-        isAdministrationAdmin(user) ||
-        isAdministrationEditeur(user)
-      ) {
+      if (isSuper(user) || isAdministrationAdmin(user) || isAdministrationEditeur(user)) {
         return [
           { id: 'admin', nom: 'Administrations uniquement' },
           {
             id: 'entreprise',
-            nom: 'Administrations et entreprises titulaires'
+            nom: 'Administrations et entreprises titulaires',
           },
-          { id: 'public', nom: 'Public' }
+          { id: 'public', nom: 'Public' },
         ]
       }
 
       if (isEntreprise(user) || isBureauDEtudes(user)) {
-        return [
-          { id: 'entreprise', nom: 'Administrations et entreprises titulaires' }
-        ]
+        return [{ id: 'entreprise', nom: 'Administrations et entreprises titulaires' }]
       }
 
       return []
@@ -248,17 +199,13 @@ export default {
       }
 
       return 'admin'
-    }
+    },
   },
 
   async mounted() {
-    if (
-      this.documentsVisibilites.length &&
-      this.documentsVisibilites.length < 2
-    ) {
+    if (this.documentsVisibilites.length && this.documentsVisibilites.length < 2) {
       this.document.publicLecture = this.documentsVisibilites[0].id === 'public'
-      this.document.entreprisesLecture =
-        this.documentsVisibilites[0].id === 'entreprise'
+      this.document.entreprisesLecture = this.documentsVisibilites[0].id === 'entreprise'
     }
   },
 
@@ -269,8 +216,8 @@ export default {
     fileChange({
       target: {
         validity,
-        files: [file]
-      }
+        files: [file],
+      },
     }) {
       if (file && validity.valid && file.type === 'application/pdf') {
         this.warnings = []
@@ -278,9 +225,7 @@ export default {
         this.document.fichier = true
         this.document.fichierTypeId = 'pdf'
       } else {
-        this.warnings = [
-          { type: 'warning', value: 'seuls les fichiers pdf sont acceptés' }
-        ]
+        this.warnings = [{ type: 'warning', value: 'seuls les fichiers pdf sont acceptés' }]
       }
     },
 
@@ -298,7 +243,7 @@ export default {
     visibiliteUpdate(id) {
       this.document.publicLecture = id === 'public'
       this.document.entreprisesLecture = id === 'entreprise'
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/documents/list.vue b/packages/ui/src/components/documents/list.vue
index 1a6be57c3..5252fb2fe 100644
--- a/packages/ui/src/components/documents/list.vue
+++ b/packages/ui/src/components/documents/list.vue
@@ -35,7 +35,7 @@ import DocumentTr from './tr.vue'
 
 export default {
   components: {
-    DocumentTr
+    DocumentTr,
   },
 
   props: {
@@ -52,7 +52,7 @@ export default {
     boutonModification: { type: Boolean, default: false },
     boutonSuppression: { type: Boolean, default: false },
     manquantShow: { type: Boolean, default: false },
-    helpShow: { type: Boolean, default: false }
-  }
+    helpShow: { type: Boolean, default: false },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/documents/tr.vue b/packages/ui/src/components/documents/tr.vue
index 19e1926be..a00ce9acd 100644
--- a/packages/ui/src/components/documents/tr.vue
+++ b/packages/ui/src/components/documents/tr.vue
@@ -3,54 +3,28 @@
     <td class="nowrap pt-m flex flex-center">
       <span class="bold">{{ document.type.nom }}</span>
       <span>
-        <HelpTooltip
-          v-if="helpShow && document.type.description"
-          :text="document.type.description"
-          class="ml-xs"
-        />
+        <HelpTooltip v-if="helpShow && document.type.description" :text="document.type.description" class="ml-xs" />
       </span>
       <span v-if="etiquette">
-        <Tag
-          v-if="document.publicLecture"
-          :mini="true"
-          color="bg-info"
-          class="ml-xs"
-          text="Public"
-        />
+        <Tag v-if="document.publicLecture" :mini="true" color="bg-info" class="ml-xs" text="Public" />
 
-        <Tag
-          v-if="document.entreprisesLecture && !document.publicLecture"
-          :mini="true"
-          color="bg-info"
-          class="ml-xs"
-          text="Entreprise"
-        />
+        <Tag v-if="document.entreprisesLecture && !document.publicLecture" :mini="true" color="bg-info" class="ml-xs" text="Entreprise" />
       </span>
-      <Tag
-        v-if="manquant && manquantShow"
-        color="bg-warning"
-        class="ml-xs"
-        :mini="true"
-        text="Fichier manquant"
-      />
+      <Tag v-if="manquant && manquantShow" color="bg-warning" class="ml-xs" :mini="true" text="Fichier manquant" />
     </td>
     <td class="nowrap pt-m">
       {{ dateFormat(document.date) }}
     </td>
     <td class="pt-m">{{ document.description || '–' }}</td>
     <td class="flex text-right">
-      <button
-        v-if="boutonModification"
-        class="btn rnd-l-xs py-s px-m my--xs mr-px"
-        @click="editPopupOpen"
-      >
+      <button v-if="boutonModification" class="btn rnd-l-xs py-s px-m my--xs mr-px" @click="editPopupOpen">
         <Icon size="M" name="pencil" />
       </button>
       <button
         v-if="boutonSuppression"
         class="btn py-s px-m my--xs"
         :class="{
-          'rnd-r-xs': !document.url && !document.uri && !document.fichier
+          'rnd-r-xs': !document.url && !document.uri && !document.fichier,
         }"
         @click="removePopupOpen"
       >
@@ -61,11 +35,7 @@
         class="btn-border py-s px-m my--xs"
         :class="{
           'rnd-r-xs': !document.url && !document.uri,
-          'rnd-l-xs':
-            !boutonVisualisation &&
-            !boutonModification &&
-            !boutonSuppression &&
-            !boutonDissociation
+          'rnd-l-xs': !boutonVisualisation && !boutonModification && !boutonSuppression && !boutonDissociation,
         }"
         :href="`/apiUrl/fichiers/${document.id}`"
         :download="document.nom"
@@ -78,12 +48,7 @@
         class="btn-border py-s px-m my--xs"
         :class="{
           'rnd-r-xs': !document.uri,
-          'rnd-l-xs':
-            !document.fichier &&
-            !boutonVisualisation &&
-            !boutonModification &&
-            !boutonSuppression &&
-            !boutonDissociation
+          'rnd-l-xs': !document.fichier && !boutonVisualisation && !boutonModification && !boutonSuppression && !boutonDissociation,
         }"
         :href="document.url"
         target="_blank"
@@ -96,13 +61,7 @@
         v-if="document.uri"
         class="btn-border py-s px-m my--xs rnd-r-xs"
         :class="{
-          'rnd-l-xs':
-            !document.url &&
-            !document.fichier &&
-            !boutonVisualisation &&
-            !boutonModification &&
-            !boutonSuppression &&
-            !boutonDissociation
+          'rnd-l-xs': !document.url && !document.fichier && !boutonVisualisation && !boutonModification && !boutonSuppression && !boutonDissociation,
         }"
         :href="document.uri"
         target="_blank"
@@ -127,7 +86,7 @@ export default {
   components: {
     Icon,
     Tag,
-    HelpTooltip
+    HelpTooltip,
   },
 
   props: {
@@ -145,24 +104,19 @@ export default {
     boutonModification: { type: Boolean, default: false },
     boutonSuppression: { type: Boolean, default: false },
     manquantShow: { type: Boolean, default: false },
-    helpShow: { type: Boolean, default: false }
+    helpShow: { type: Boolean, default: false },
   },
 
   data() {
     return {
-      fileReader: null
+      fileReader: null,
     }
   },
 
   computed: {
     manquant() {
-      return !(
-        this.document.fichier ||
-        this.document.fichierNouveau ||
-        this.document.uri ||
-        this.document.url
-      )
-    }
+      return !(this.document.fichier || this.document.fichierNouveau || this.document.uri || this.document.url)
+    },
   },
 
   methods: {
@@ -193,33 +147,29 @@ export default {
           action: this.addAction,
           document,
           repertoire: this.repertoire,
-          parentTypeId: this.parentTypeId
-        }
+          parentTypeId: this.parentTypeId,
+        },
       })
     },
 
     removePopupOpen() {
       if (this.removeAction) {
-        this.$store.dispatch(
-          this.removeAction.name,
-          { id: this.document.id },
-          { root: true }
-        )
+        this.$store.dispatch(this.removeAction.name, { id: this.document.id }, { root: true })
       } else {
         this.$store.commit('popupOpen', {
           component: DocumentRemovePopup,
           props: {
             title: this.title,
             document: this.document,
-            route: this.route
-          }
+            route: this.route,
+          },
         })
       }
     },
 
     dateFormat(date) {
       return dateFormat(date)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/entreprise.stories.tsx b/packages/ui/src/components/entreprise.stories.tsx
index a2a7b2c9a..fb0414c81 100644
--- a/packages/ui/src/components/entreprise.stories.tsx
+++ b/packages/ui/src/components/entreprise.stories.tsx
@@ -7,7 +7,7 @@ import { testBlankUser } from 'camino-common/src/tests-utils'
 
 const meta: Meta = {
   title: 'Components/Entreprise',
-  component: PureEntreprise
+  component: PureEntreprise,
 }
 export default meta
 
@@ -19,7 +19,7 @@ const getFiscaliteEntreprise = action('getFiscaliteEntreprise')
 const items: Item[] = [
   { id: 'id1', titre: 'titreItem1' },
   { id: 'id2', titre: 'titreItem2' },
-  { id: 'id3', titre: 'titreItem3' }
+  { id: 'id3', titre: 'titreItem3' },
 ]
 
 const annee = toCaminoAnnee('2023')
@@ -39,7 +39,7 @@ const entreprise = {
   titulaireTitres: [],
   amodiataireTitres: [],
   utilisateurs: [],
-  etablissements: []
+  etablissements: [],
 }
 export const Loading: Story = () => (
   <PureEntreprise
@@ -50,7 +50,7 @@ export const Loading: Story = () => (
       getFiscaliteEntreprise(data)
       return Promise.resolve({
         redevanceCommunale: 0,
-        redevanceDepartementale: 0
+        redevanceDepartementale: 0,
       })
     }}
     user={null}
@@ -66,7 +66,7 @@ export const NonConnecte: Story = () => (
       getFiscaliteEntreprise(data)
       return Promise.resolve({
         redevanceCommunale: 0,
-        redevanceDepartementale: 0
+        redevanceDepartementale: 0,
       })
     }}
     user={null}
@@ -78,7 +78,7 @@ const entrepriseId = newEntrepriseId('1')
 const entrepriseFull: Entreprise = {
   id: entrepriseId,
   nom: 'nom entreprise',
-  etablissements: []
+  etablissements: [],
 }
 
 const completeEntreprise: EntrepriseType = {
@@ -99,15 +99,15 @@ const completeEntreprise: EntrepriseType = {
       nom: 'Nouvel établissement',
       dateDebut: '2013-09-16',
       dateFin: null,
-      legalSiret: 'SIRET'
+      legalSiret: 'SIRET',
     },
     {
       id: '',
       nom: 'Ancien établissement',
       dateDebut: '2013-02-01',
       dateFin: '2013-09-15',
-      legalSiret: 'siret'
-    }
+      legalSiret: 'siret',
+    },
   ],
   utilisateurs: [
     {
@@ -118,10 +118,10 @@ const completeEntreprise: EntrepriseType = {
       entreprises: [
         {
           id: newEntrepriseId('1'),
-          nom: 'Nom entreprise'
-        }
+          nom: 'Nom entreprise',
+        },
       ] as Entreprise[],
-      role: 'entreprise'
+      role: 'entreprise',
     },
     {
       id: 'anotherId',
@@ -131,11 +131,11 @@ const completeEntreprise: EntrepriseType = {
       entreprises: [
         {
           id: 'fr-791652399',
-          nom: 'Nom entreprise'
-        }
+          nom: 'Nom entreprise',
+        },
       ] as Entreprise[],
-      role: 'entreprise'
-    }
+      role: 'entreprise',
+    },
   ],
   titulaireTitres: [
     {
@@ -145,7 +145,7 @@ const completeEntreprise: EntrepriseType = {
       typeId: 'arm',
       coordonnees: {
         x: -52.2567292479798,
-        y: 4.21739209644104
+        y: 4.21739209644104,
       },
       titreStatutId: 'ech',
       substances: ['auru'],
@@ -154,14 +154,14 @@ const completeEntreprise: EntrepriseType = {
       titulaires: [
         {
           id: '',
-          nom: 'Nom entreprise'
-        }
+          nom: 'Nom entreprise',
+        },
       ],
       communes: [
         {
-          departementId: '973'
-        }
-      ]
+          departementId: '973',
+        },
+      ],
     },
     {
       id: 'idTitre2',
@@ -170,7 +170,7 @@ const completeEntreprise: EntrepriseType = {
       typeId: 'axm',
       coordonnees: {
         x: -52.501264330237845,
-        y: 4.270507245123385
+        y: 4.270507245123385,
       },
       titreStatutId: 'ech',
       substances: ['auru'],
@@ -179,20 +179,20 @@ const completeEntreprise: EntrepriseType = {
       titulaires: [
         {
           id: 'entrepriseId',
-          nom: 'Nom entreprise'
-        }
+          nom: 'Nom entreprise',
+        },
       ],
       communes: [
         {
-          departementId: '973'
-        }
+          departementId: '973',
+        },
       ],
       references: [
         {
           referenceTypeId: 'dea',
-          nom: 'plop/toto'
-        }
-      ]
+          nom: 'plop/toto',
+        },
+      ],
     },
     {
       id: 'idTitre3',
@@ -201,7 +201,7 @@ const completeEntreprise: EntrepriseType = {
       typeId: 'arm',
       coordonnees: {
         x: -52.2331344122413,
-        y: 4.225520523981365
+        y: 4.225520523981365,
       },
       titreStatutId: 'ech',
       substances: ['auru'],
@@ -210,15 +210,15 @@ const completeEntreprise: EntrepriseType = {
       titulaires: [
         {
           id: 'idEntreprise',
-          nom: 'Nom entreprise'
-        }
+          nom: 'Nom entreprise',
+        },
       ],
       communes: [
         {
-          departementId: '973'
-        }
-      ]
-    }
+          departementId: '973',
+        },
+      ],
+    },
   ],
   amodiataireTitres: [
     {
@@ -228,7 +228,7 @@ const completeEntreprise: EntrepriseType = {
       typeId: 'arm',
       coordonnees: {
         x: -52.2331344122413,
-        y: 4.225520523981365
+        y: 4.225520523981365,
       },
       titreStatutId: 'ech',
       substances: ['auru'],
@@ -237,22 +237,22 @@ const completeEntreprise: EntrepriseType = {
       titulaires: [
         {
           id: 'idEntreprise',
-          nom: 'Nom entreprise'
-        }
+          nom: 'Nom entreprise',
+        },
       ],
       communes: [
         {
-          departementId: '973'
-        }
-      ]
-    }
+          departementId: '973',
+        },
+      ],
+    },
   ],
   documents: [
     {
       id: 'idDocument',
       type: {
         id: 'kbi',
-        nom: 'Kbis'
+        nom: 'Kbis',
       },
       date: '2019-08-26',
       description: 'Kbis',
@@ -260,13 +260,13 @@ const completeEntreprise: EntrepriseType = {
       fichierTypeId: 'pdf',
       entreprisesLecture: true,
       modification: true,
-      suppression: true
+      suppression: true,
     },
     {
       id: 'idDocument2',
       type: {
         id: 'idm',
-        nom: 'Identification de matériel'
+        nom: 'Identification de matériel',
       },
       date: '2019-08-26',
       description: 'Identification pelle mécanique',
@@ -274,9 +274,9 @@ const completeEntreprise: EntrepriseType = {
       fichierTypeId: 'pdf',
       entreprisesLecture: true,
       modification: false,
-      suppression: false
-    }
-  ]
+      suppression: false,
+    },
+  ],
 }
 
 export const Complet: Story = () => (
@@ -290,10 +290,10 @@ export const Complet: Story = () => (
         guyane: {
           taxeAurifere: 12,
           taxeAurifereBrute: 38,
-          totalInvestissementsDeduits: 1
+          totalInvestissementsDeduits: 1,
         },
         redevanceCommunale: 200,
-        redevanceDepartementale: 78
+        redevanceDepartementale: 78,
       })
     }}
     user={{ role: 'super', ...testBlankUser }}
diff --git a/packages/ui/src/components/entreprise.tsx b/packages/ui/src/components/entreprise.tsx
index 3111eb3e1..f75e244d1 100644
--- a/packages/ui/src/components/entreprise.tsx
+++ b/packages/ui/src/components/entreprise.tsx
@@ -8,33 +8,12 @@ import Documents from './documents/list.vue'
 import { dateFormat } from '../utils/index'
 import EntrepriseFiscalite from './entreprise/pure-entreprise-fiscalite.vue'
 
-import {
-  utilisateursColonnes,
-  utilisateursLignesBuild
-} from './utilisateurs/table'
-import {
-  Fiscalite,
-  fiscaliteVisible as fiscaliteVisibleFunc
-} from 'camino-common/src/fiscalite'
-import {
-  isAdministrationAdmin,
-  isAdministrationEditeur,
-  isSuper,
-  User
-} from 'camino-common/src/roles'
+import { utilisateursColonnes, utilisateursLignesBuild } from './utilisateurs/table'
+import { Fiscalite, fiscaliteVisible as fiscaliteVisibleFunc } from 'camino-common/src/fiscalite'
+import { isAdministrationAdmin, isAdministrationEditeur, isSuper, User } from 'camino-common/src/roles'
 import { Icon } from './_ui/icon'
-import {
-  CaminoAnnee,
-  getCurrentAnnee,
-  toCaminoAnnee
-} from 'camino-common/src/date'
-import {
-  computed,
-  onBeforeUnmount,
-  onMounted,
-  watch,
-  defineComponent
-} from 'vue'
+import { CaminoAnnee, getCurrentAnnee, toCaminoAnnee } from 'camino-common/src/date'
+import { computed, onBeforeUnmount, onMounted, watch, defineComponent } from 'vue'
 import { useStore } from 'vuex'
 import { useRoute } from 'vue-router'
 import { fetchWithJson } from '@/api/client-rest'
@@ -67,16 +46,12 @@ export const Entreprise = defineComponent({
   setup() {
     const store = useStore()
     const vueRoute = useRoute()
-    const entreprise = computed<EntrepriseType>(
-      () => store.state.entreprise.element
-    )
+    const entreprise = computed<EntrepriseType>(() => store.state.entreprise.element)
     const user = computed<User>(() => store.state.user.element)
-    const getFiscaliteEntreprise = async (
-      annee: CaminoAnnee
-    ): Promise<Fiscalite> =>
+    const getFiscaliteEntreprise = async (annee: CaminoAnnee): Promise<Fiscalite> =>
       fetchWithJson(CaminoRestRoutes.fiscaliteEntreprise, {
         annee,
-        entrepriseId: entreprise.value.id
+        entrepriseId: entreprise.value.id,
       })
 
     const get = async () => {
@@ -111,28 +86,20 @@ export const Entreprise = defineComponent({
         telephone: entreprise.value.telephone,
         url: entreprise.value.url,
         email: entreprise.value.email,
-        archive: entreprise.value.archive
+        archive: entreprise.value.archive,
       }
 
       store.commit('popupOpen', {
         component: EntrepriseEditPopup,
         props: {
-          entreprise: entrepriseEdit
-        }
+          entreprise: entrepriseEdit,
+        },
       })
     }
     const anneeCourante = getCurrentAnnee()
 
-    return () => (
-      <PureEntreprise
-        currentYear={anneeCourante}
-        editPopupOpen={editPopupOpen}
-        entreprise={entreprise.value}
-        getFiscaliteEntreprise={getFiscaliteEntreprise}
-        user={user.value}
-      />
-    )
-  }
+    return () => <PureEntreprise currentYear={anneeCourante} editPopupOpen={editPopupOpen} entreprise={entreprise.value} getFiscaliteEntreprise={getFiscaliteEntreprise} user={user.value} />
+  },
 })
 
 interface Props {
@@ -144,13 +111,7 @@ interface Props {
 }
 // FIXME SPLIT with PureEntreprise and TEST
 export const PureEntreprise = defineComponent<Props>({
-  props: [
-    'entreprise',
-    'getFiscaliteEntreprise',
-    'user',
-    'editPopupOpen',
-    'currentYear'
-  ] as unknown as undefined,
+  props: ['entreprise', 'getFiscaliteEntreprise', 'user', 'editPopupOpen', 'currentYear'] as unknown as undefined,
   setup(props) {
     const annees = computed(() => {
       const anneeDepart = 2021
@@ -164,19 +125,11 @@ export const PureEntreprise = defineComponent<Props>({
       return annees
     })
 
-    const nom = computed(
-      () => (props.entreprise && props.entreprise.nom) ?? '-'
-    )
+    const nom = computed(() => (props.entreprise && props.entreprise.nom) ?? '-')
     const utilisateurs = computed(() => props.entreprise?.utilisateurs ?? [])
-    const utilisateursLignes = computed(() =>
-      utilisateursLignesBuild(utilisateurs.value)
-    )
-    const titulaireTitres = computed(
-      () => props.entreprise?.titulaireTitres ?? []
-    )
-    const amodiataireTitres = computed(
-      () => props.entreprise?.amodiataireTitres ?? []
-    )
+    const utilisateursLignes = computed(() => utilisateursLignesBuild(utilisateurs.value))
+    const titulaireTitres = computed(() => props.entreprise?.titulaireTitres ?? [])
+    const amodiataireTitres = computed(() => props.entreprise?.amodiataireTitres ?? [])
     const loaded = computed(() => !!props.entreprise)
     const documentNew = computed(() => ({
       entrepriseId: props.entreprise?.id,
@@ -185,30 +138,17 @@ export const PureEntreprise = defineComponent<Props>({
       fichier: null,
       fichierNouveau: null,
       fichierTypeId: null,
-      typeId: ''
+      typeId: '',
     }))
 
     const route = computed(() => ({
       id: props.entreprise?.id,
-      name: 'entreprise'
+      name: 'entreprise',
     }))
-    const fiscaliteVisible = computed(() =>
-      fiscaliteVisibleFunc(props.user, props.entreprise?.id, [
-        ...titulaireTitres.value,
-        ...amodiataireTitres.value
-      ])
-    )
+    const fiscaliteVisible = computed(() => fiscaliteVisibleFunc(props.user, props.entreprise?.id, [...titulaireTitres.value, ...amodiataireTitres.value]))
 
-    const canDeleteDocument = (
-      entreprise: EntrepriseType,
-      user: User
-    ): boolean => {
-      return (
-        canEditEntreprise(user, entreprise.id) &&
-        (isSuper(user) ||
-          isAdministrationAdmin(user) ||
-          isAdministrationEditeur(user))
-      )
+    const canDeleteDocument = (entreprise: EntrepriseType, user: User): boolean => {
+      return canEditEntreprise(user, entreprise.id) && (isSuper(user) || isAdministrationAdmin(user) || isAdministrationEditeur(user))
     }
 
     return () => (
@@ -225,17 +165,8 @@ export const PureEntreprise = defineComponent<Props>({
                     return (
                       <>
                         {' '}
-                        <DocumentAddButton
-                          route={route.value}
-                          document={documentNew.value}
-                          title={nom.value}
-                          repertoire="entreprises"
-                          class="btn py-s px-m mr-px"
-                        />
-                        <button
-                          class="btn py-s px-m"
-                          onClick={props.editPopupOpen}
-                        >
+                        <DocumentAddButton route={route.value} document={documentNew.value} title={nom.value} repertoire="entreprises" class="btn py-s px-m mr-px" />
+                        <button class="btn py-s px-m" onClick={props.editPopupOpen}>
                           <Icon size="M" name="pencil" />
                         </button>
                       </>
@@ -269,19 +200,14 @@ export const PureEntreprise = defineComponent<Props>({
                         <div class="tablet-blob-1-4">
                           <h5>
                             Établissement
-                            {(props.entreprise?.etablissements?.length ?? 0) > 1
-                              ? 's'
-                              : ''}
+                            {(props.entreprise?.etablissements?.length ?? 0) > 1 ? 's' : ''}
                           </h5>
                         </div>
                         <div class="tablet-blob-3-4">
                           <ul class="list-sans">
                             {props.entreprise?.etablissements?.map(e => (
                               <li key={e.id}>
-                                <h6 class="inline-block">
-                                  {dateFormat(e.dateDebut)}
-                                </h6>
-                                : {e.nom}
+                                <h6 class="inline-block">{dateFormat(e.dateDebut)}</h6>: {e.nom}
                               </li>
                             ))}
                           </ul>
@@ -320,10 +246,7 @@ export const PureEntreprise = defineComponent<Props>({
                         <div class="tablet-blob-3-4">
                           <p class="word-break">
                             {props.entreprise?.email ? (
-                              <a
-                                href={`mailto:${props.entreprise.email}`}
-                                class="btn small bold py-xs px-s rnd"
-                              >
+                              <a href={`mailto:${props.entreprise.email}`} class="btn small bold py-xs px-s rnd">
                                 {props.entreprise.email}
                               </a>
                             ) : (
@@ -340,10 +263,7 @@ export const PureEntreprise = defineComponent<Props>({
                         <div class="tablet-blob-3-4">
                           <p class="word-break">
                             {props.entreprise?.url ? (
-                              <a
-                                href={props.entreprise.url}
-                                class="btn small bold py-xs px-s rnd"
-                              >
+                              <a href={props.entreprise.url} class="btn small bold py-xs px-s rnd">
                                 {props.entreprise.url}
                               </a>
                             ) : (
@@ -367,20 +287,11 @@ export const PureEntreprise = defineComponent<Props>({
                       <div>
                         <h4 class="px-m pt mb-0">Documents</h4>
                         <Documents
-                          boutonModification={canEditEntreprise(
-                            props.user,
-                            props.entreprise.id
-                          )}
-                          boutonSuppression={canDeleteDocument(
-                            props.entreprise,
-                            props.user
-                          )}
+                          boutonModification={canEditEntreprise(props.user, props.entreprise.id)}
+                          boutonSuppression={canDeleteDocument(props.entreprise, props.user)}
                           route={route.value}
                           documents={props.entreprise.documents}
-                          etiquette={canEditEntreprise(
-                            props.user,
-                            props.entreprise.id
-                          )}
+                          etiquette={canEditEntreprise(props.user, props.entreprise.id)}
                           parentId={props.entreprise.id}
                           title={nom.value}
                           repertoire="entreprises"
@@ -389,18 +300,14 @@ export const PureEntreprise = defineComponent<Props>({
                       </div>
                     ) : null}
                   </>
-                )
+                ),
               }}
             </Accordion>
             {fiscaliteVisible.value ? (
               <div class="mb-xxl">
                 <div class="line-neutral width-full mb-xxl" />
                 <h3>Fiscalité</h3>
-                <EntrepriseFiscalite
-                  getFiscaliteEntreprise={props.getFiscaliteEntreprise}
-                  anneeCourante={annees.value[annees.value.length - 1]}
-                  annees={annees.value}
-                />
+                <EntrepriseFiscalite getFiscaliteEntreprise={props.getFiscaliteEntreprise} anneeCourante={annees.value[annees.value.length - 1]} annees={annees.value} />
               </div>
             ) : null}
 
@@ -409,11 +316,7 @@ export const PureEntreprise = defineComponent<Props>({
                 <div class="line-neutral width-full mb-xxl" />
                 <h3>Utilisateurs</h3>
                 <div class="line width-full" />
-                <TableAuto
-                  class="width-full-p"
-                  columns={utilisateursColonnes}
-                  rows={utilisateursLignes.value}
-                />
+                <TableAuto class="width-full-p" columns={utilisateursColonnes} rows={utilisateursLignes.value} />
               </div>
             ) : null}
 
@@ -431,10 +334,7 @@ export const PureEntreprise = defineComponent<Props>({
                 <div class="line width-full my-xxl" />
                 <h3>Titres miniers et autorisations (amodiataire)</h3>
                 <div class="line width-full" />
-                <TitresTable
-                  titres={amodiataireTitres.value}
-                  user={props.user}
-                />
+                <TitresTable titres={amodiataireTitres.value} user={props.user} />
               </div>
             ) : null}
           </div>
@@ -443,5 +343,5 @@ export const PureEntreprise = defineComponent<Props>({
         )}
       </>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/entreprise/add-popup.vue b/packages/ui/src/components/entreprise/add-popup.vue
index 437988620..01b08141a 100644
--- a/packages/ui/src/components/entreprise/add-popup.vue
+++ b/packages/ui/src/components/entreprise/add-popup.vue
@@ -24,12 +24,7 @@
       </div>
       <div class="mb tablet-blob-2-3">
         <div>
-          <input
-            v-model="entreprise.legalSiren"
-            type="text"
-            class="p-s"
-            placeholder="123456789"
-          />
+          <input v-model="entreprise.legalSiren" type="text" class="p-s" placeholder="123456789" />
         </div>
       </div>
     </div>
@@ -37,20 +32,10 @@
     <template #footer>
       <div v-if="!loading" class="tablet-blobs">
         <div class="tablet-blob-1-3 mb tablet-mb-0">
-          <button class="btn-border rnd-xs p-s full-x" @click="cancel">
-            Annuler
-          </button>
+          <button class="btn-border rnd-xs p-s full-x" @click="cancel">Annuler</button>
         </div>
         <div class="tablet-blob-2-3">
-          <button
-            ref="save-button"
-            class="btn btn-primary"
-            :disabled="!complete"
-            :class="{ disabled: !complete }"
-            @click="save"
-          >
-            Enregistrer
-          </button>
+          <button ref="save-button" class="btn btn-primary" :disabled="!complete" :class="{ disabled: !complete }" @click="save">Enregistrer</button>
         </div>
       </div>
       <div v-else class="p-s full-x bold">Enregistrement en cours…</div>
@@ -65,13 +50,13 @@ export default {
   name: 'CaminoEntrepriseEditPopup',
 
   components: {
-    Popup
+    Popup,
   },
 
   data() {
     return {
       entreprise: { legalSiren: '', paysId: 'fr' },
-      pays: [{ id: 'fr', nom: 'France' }]
+      pays: [{ id: 'fr', nom: 'France' }],
     }
   },
 
@@ -89,11 +74,8 @@ export default {
     },
 
     sirenValide() {
-      return (
-        this.entreprise.legalSiren &&
-        this.entreprise.legalSiren.match('[0-9]{9}$')
-      )
-    }
+      return this.entreprise.legalSiren && this.entreprise.legalSiren.match('[0-9]{9}$')
+    },
   },
 
   created() {
@@ -130,7 +112,7 @@ export default {
 
     errorsRemove() {
       this.$store.commit('popupMessagesRemove')
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/entreprise/edit-popup.vue b/packages/ui/src/components/entreprise/edit-popup.vue
index 5068a3a94..f0bc7a664 100644
--- a/packages/ui/src/components/entreprise/edit-popup.vue
+++ b/packages/ui/src/components/entreprise/edit-popup.vue
@@ -11,12 +11,7 @@
         <h5>Téléphone</h5>
       </div>
       <div class="mb tablet-blob-2-3">
-        <input
-          v-model="entreprise.telephone"
-          type="text"
-          class="p-s"
-          placeholder="0100000000"
-        />
+        <input v-model="entreprise.telephone" type="text" class="p-s" placeholder="0100000000" />
       </div>
     </div>
 
@@ -26,12 +21,7 @@
         <h5>Adresse électronique</h5>
       </div>
       <div class="mb tablet-blob-2-3">
-        <input
-          v-model="entreprise.email"
-          type="text"
-          class="p-s"
-          placeholder="email@domain.tld"
-        />
+        <input v-model="entreprise.email" type="text" class="p-s" placeholder="email@domain.tld" />
       </div>
     </div>
 
@@ -41,12 +31,7 @@
         <h5>Site internet</h5>
       </div>
       <div class="mb tablet-blob-2-3">
-        <input
-          v-model="entreprise.url"
-          type="text"
-          class="p-s"
-          placeholder="http://…"
-        />
+        <input v-model="entreprise.url" type="text" class="p-s" placeholder="http://…" />
       </div>
     </div>
 
@@ -65,14 +50,10 @@
     <template #footer>
       <div v-if="!loading" class="tablet-blobs">
         <div class="tablet-blob-1-3 mb tablet-mb-0">
-          <button class="btn-border rnd-xs p-s full-x" @click="cancel">
-            Annuler
-          </button>
+          <button class="btn-border rnd-xs p-s full-x" @click="cancel">Annuler</button>
         </div>
         <div class="tablet-blob-2-3">
-          <button ref="save-button" class="btn btn-primary" @click="save">
-            Enregistrer
-          </button>
+          <button ref="save-button" class="btn btn-primary" @click="save">Enregistrer</button>
         </div>
       </div>
       <div v-else class="p-s full-x bold">Enregistrement en cours…</div>
@@ -88,14 +69,14 @@ export default {
   name: 'CaminoEntrepriseEditPopup',
 
   components: {
-    Popup
+    Popup,
   },
 
   props: {
     entreprise: {
       type: Object,
-      default: () => ({})
-    }
+      default: () => ({}),
+    },
   },
 
   computed: {
@@ -109,7 +90,7 @@ export default {
 
     user() {
       return this.$store.state.user.element
-    }
+    },
   },
 
   created() {
@@ -147,7 +128,7 @@ export default {
 
     isSuper(user) {
       return isSuper(user)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/entreprise/pure-entreprise-fiscalite.stories.ts b/packages/ui/src/components/entreprise/pure-entreprise-fiscalite.stories.ts
index 21db47f35..4fd033f20 100644
--- a/packages/ui/src/components/entreprise/pure-entreprise-fiscalite.stories.ts
+++ b/packages/ui/src/components/entreprise/pure-entreprise-fiscalite.stories.ts
@@ -6,7 +6,7 @@ import { CaminoAnnee, toCaminoAnnee } from 'camino-common/src/date'
 const meta: Meta = {
   title: 'Components/Entreprise/Fiscalite',
   component: PureEntrepriseFiscalite,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -21,7 +21,7 @@ const Template: Story<Props> = (args: Props) => ({
   setup() {
     return { args }
   },
-  template: '<PureEntrepriseFiscalite v-bind="args" />'
+  template: '<PureEntrepriseFiscalite v-bind="args" />',
 })
 
 export const Ok = Template.bind({})
@@ -29,10 +29,10 @@ Ok.args = {
   getFiscaliteEntreprise: () =>
     Promise.resolve({
       redevanceCommunale: 1600.071,
-      redevanceDepartementale: 330.98
+      redevanceDepartementale: 330.98,
     }),
   anneeCourante: toCaminoAnnee('2022'),
-  annees: [toCaminoAnnee('2021'), toCaminoAnnee('2022')]
+  annees: [toCaminoAnnee('2021'), toCaminoAnnee('2022')],
 }
 
 export const Guyane = Template.bind({})
@@ -44,11 +44,11 @@ Guyane.args = {
       guyane: {
         taxeAurifereBrute: Number.parseInt(annee) * 4100,
         totalInvestissementsDeduits: Number.parseInt(annee) * 100,
-        taxeAurifere: Number.parseInt(annee) * 210
-      }
+        taxeAurifere: Number.parseInt(annee) * 210,
+      },
     }),
   anneeCourante: toCaminoAnnee('2022'),
-  annees: [toCaminoAnnee('2021'), toCaminoAnnee('2022')]
+  annees: [toCaminoAnnee('2021'), toCaminoAnnee('2022')],
 }
 
 export const GuyaneAnneePrecedente = Template.bind({})
@@ -60,22 +60,22 @@ GuyaneAnneePrecedente.args = {
       guyane: {
         taxeAurifereBrute: Number.parseInt(annee) * 4100,
         totalInvestissementsDeduits: Number.parseInt(annee) * 100,
-        taxeAurifere: Number.parseInt(annee) * 210
-      }
+        taxeAurifere: Number.parseInt(annee) * 210,
+      },
     }),
   anneeCourante: toCaminoAnnee('2021'),
-  annees: [toCaminoAnnee('2021'), toCaminoAnnee('2022')]
+  annees: [toCaminoAnnee('2021'), toCaminoAnnee('2022')],
 }
 
 export const Loading = Template.bind({})
 Loading.args = {
   getFiscaliteEntreprise: () => new Promise<Fiscalite>(resolve => {}),
   anneeCourante: toCaminoAnnee('2022'),
-  annees: [toCaminoAnnee('2021'), toCaminoAnnee('2022')]
+  annees: [toCaminoAnnee('2021'), toCaminoAnnee('2022')],
 }
 export const WithError = Template.bind({})
 WithError.args = {
   getFiscaliteEntreprise: () => Promise.reject(new Error('because reasons')),
   anneeCourante: toCaminoAnnee('2022'),
-  annees: [toCaminoAnnee('2021'), toCaminoAnnee('2022')]
+  annees: [toCaminoAnnee('2021'), toCaminoAnnee('2022')],
 }
diff --git a/packages/ui/src/components/entreprise/pure-entreprise-fiscalite.vue b/packages/ui/src/components/entreprise/pure-entreprise-fiscalite.vue
index 23272e324..0e9438c87 100644
--- a/packages/ui/src/components/entreprise/pure-entreprise-fiscalite.vue
+++ b/packages/ui/src/components/entreprise/pure-entreprise-fiscalite.vue
@@ -1,51 +1,28 @@
 <template>
   <div>
-    Calcul, à titre indicatif, du montant de l'imposition minière de votre
-    entreprise (redevance départementale et communale des mines pour les
-    substances non énergétiques et taxe aurifère)
+    Calcul, à titre indicatif, du montant de l'imposition minière de votre entreprise (redevance départementale et communale des mines pour les substances non énergétiques et taxe aurifère)
 
     <div class="flex">
-      <div
-        v-for="tab in annees"
-        :key="tab"
-        class="mr-xs"
-        :class="{ active: tabId === tab }"
-      >
-        <button
-          :id="`cmn-titre-tab-${tab}`"
-          class="p-m btn-tab rnd-t-s"
-          @click="tabUpdate(tab)"
-        >
+      <div v-for="tab in annees" :key="tab" class="mr-xs" :class="{ active: tabId === tab }">
+        <button :id="`cmn-titre-tab-${tab}`" class="p-m btn-tab rnd-t-s" @click="tabUpdate(tab)">
           {{ tab }}
         </button>
       </div>
     </div>
     <div class="line-neutral mb" />
-    <template v-if="annees[annees.length - 1] === tabId"
-      >Estimation effectuée sur la base des tarifs et des productions déclarées
-      pour l'année {{ Number.parseInt(tabId) - 1 }} <br
-    /></template>
+    <template v-if="annees[annees.length - 1] === tabId">Estimation effectuée sur la base des tarifs et des productions déclarées pour l'année {{ Number.parseInt(tabId) - 1 }} <br /></template>
     <strong>Cotisations</strong>
     <div class="fiscalite-table">
       <div>a. Redevance communale</div>
-      <LoadingElement v-slot="{ item }" :data="data" class="fiscalite-value">{{
-        currencyFormat(item.redevanceCommunale)
-      }}</LoadingElement>
+      <LoadingElement v-slot="{ item }" :data="data" class="fiscalite-value">{{ currencyFormat(item.redevanceCommunale) }}</LoadingElement>
       <div>b. Redevance départementale</div>
-      <LoadingElement v-slot="{ item }" :data="data" class="fiscalite-value">{{
-        currencyFormat(item.redevanceDepartementale)
-      }}</LoadingElement>
-      <template
-        v-if="data.status === 'LOADED' && isFiscaliteGuyane(data.value)"
-      >
+      <LoadingElement v-slot="{ item }" :data="data" class="fiscalite-value">{{ currencyFormat(item.redevanceDepartementale) }}</LoadingElement>
+      <template v-if="data.status === 'LOADED' && isFiscaliteGuyane(data.value)">
         <div>c. Taxe minière sur l’or de Guyane</div>
         <div class="fiscalite-value">
           {{ currencyFormat(data.value.guyane.taxeAurifereBrute) }}
         </div>
-        <div>
-          d. Investissements déductibles de la taxe perçue pour la région de
-          Guyane
-        </div>
+        <div>d. Investissements déductibles de la taxe perçue pour la région de Guyane</div>
         <div class="fiscalite-value">
           {{ currencyFormat(data.value.guyane.totalInvestissementsDeduits) }}
         </div>
@@ -54,30 +31,17 @@
           {{ currencyFormat(montantNetTaxeAurifere(data.value)) }}
         </div>
       </template>
-      <div>
-        f. Frais de gestion de fiscalité directe locale (a+b{{
-          data.status === 'LOADED' && isFiscaliteGuyane(data.value) ? '+e' : ''
-        }})X 8%
-      </div>
-      <LoadingElement v-slot="{ item }" :data="data" class="fiscalite-value">{{
-        currencyFormat(fraisGestion(item))
-      }}</LoadingElement>
+      <div>f. Frais de gestion de fiscalité directe locale (a+b{{ data.status === 'LOADED' && isFiscaliteGuyane(data.value) ? '+e' : '' }})X 8%</div>
+      <LoadingElement v-slot="{ item }" :data="data" class="fiscalite-value">{{ currencyFormat(fraisGestion(item)) }}</LoadingElement>
       <div>Somme à payer auprès du comptable (2)</div>
-      <LoadingElement v-slot="{ item }" :data="data" class="fiscalite-value">{{
-        currencyFormat(sommeAPayer(item))
-      }}</LoadingElement>
+      <LoadingElement v-slot="{ item }" :data="data" class="fiscalite-value">{{ currencyFormat(sommeAPayer(item)) }}</LoadingElement>
     </div>
   </div>
 </template>
 
 <script setup lang="ts">
 import { onMounted, ref } from 'vue'
-import {
-  Fiscalite,
-  isFiscaliteGuyane,
-  montantNetTaxeAurifere,
-  fraisGestion
-} from 'camino-common/src/fiscalite'
+import { Fiscalite, isFiscaliteGuyane, montantNetTaxeAurifere, fraisGestion } from 'camino-common/src/fiscalite'
 import LoadingElement from '@/components/_ui/pure-loader.vue'
 import { AsyncData } from '@/api/client-rest'
 import { CaminoAnnee } from 'camino-common/src/date'
@@ -111,21 +75,17 @@ const reloadData = async (annee: CaminoAnnee) => {
   } catch (e: any) {
     data.value = {
       status: 'ERROR',
-      message: e.message ?? 'something wrong happened'
+      message: e.message ?? 'something wrong happened',
     }
   }
 }
 
-const sommeAPayer = (fiscalite: Fiscalite) =>
-  fiscalite.redevanceCommunale +
-  fiscalite.redevanceDepartementale +
-  montantNetTaxeAurifere(fiscalite) +
-  fraisGestion(fiscalite)
+const sommeAPayer = (fiscalite: Fiscalite) => fiscalite.redevanceCommunale + fiscalite.redevanceDepartementale + montantNetTaxeAurifere(fiscalite) + fraisGestion(fiscalite)
 
 const currencyFormat = (number: number) =>
   Intl.NumberFormat('FR-fr', {
     style: 'currency',
-    currency: 'EUR'
+    currency: 'EUR',
   }).format(number)
 </script>
 <style scoped>
diff --git a/packages/ui/src/components/entreprises.vue b/packages/ui/src/components/entreprises.vue
index 312b78141..8d356b4b9 100644
--- a/packages/ui/src/components/entreprises.vue
+++ b/packages/ui/src/components/entreprises.vue
@@ -1,31 +1,14 @@
 <template>
-  <Liste
-    nom="entreprises"
-    :filtres="filtres"
-    :colonnes="colonnes"
-    :lignes="lignes"
-    :elements="entreprises"
-    :params="params"
-    :total="total"
-    :initialized="initialized"
-    @params-update="paramsUpdate"
-  >
+  <Liste nom="entreprises" :filtres="filtres" :colonnes="colonnes" :lignes="lignes" :elements="entreprises" :params="params" :total="total" :initialized="initialized" @params-update="paramsUpdate">
     <template v-if="canCreateEntreprise" #addButton>
-      <button
-        class="btn small rnd-xs py-s px-m full-x flex mb-s"
-        @click="addPopupOpen"
-      >
+      <button class="btn small rnd-xs py-s px-m full-x flex mb-s" @click="addPopupOpen">
         <span class="mt-xxs">Ajouter une entreprise</span>
         <Icon name="plus" size="M" class="flex-right" />
       </button>
     </template>
 
     <template v-if="entreprises.length" #downloads>
-      <Downloads
-        :formats="['csv', 'xlsx', 'ods']"
-        section="entreprises"
-        class="flex-right full-x"
-      />
+      <Downloads :formats="['csv', 'xlsx', 'ods']" section="entreprises" class="flex-right full-x" />
     </template>
   </Liste>
 </template>
@@ -36,10 +19,7 @@ import { Downloads } from './_common/downloads'
 import EntrepriseAddPopup from './entreprise/add-popup.vue'
 
 import filtres from './entreprises/filtres'
-import {
-  entreprisesColonnes,
-  entreprisesLignesBuild
-} from './entreprises/table'
+import { entreprisesColonnes, entreprisesLignesBuild } from './entreprises/table'
 import { Icon } from './_ui/icon'
 import { canCreateEntreprise } from 'camino-common/src/permissions/utilisateurs'
 
@@ -52,7 +32,7 @@ export default {
     return {
       filtres,
       colonnes: entreprisesColonnes,
-      visible: false
+      visible: false,
     }
   },
 
@@ -83,15 +63,15 @@ export default {
 
     initialized() {
       return this.$store.state.entreprises.initialized
-    }
+    },
   },
 
   watch: {
     '$route.query': {
       handler: function () {
         this.$store.dispatch('entreprises/routeUpdate')
-      }
-    }
+      },
+    },
   },
 
   async created() {
@@ -113,7 +93,7 @@ export default {
 
     addPopupOpen() {
       this.$store.commit('popupOpen', { component: EntrepriseAddPopup })
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/entreprises/filtres.js b/packages/ui/src/components/entreprises/filtres.js
index 8daa646b2..b67e3f51f 100644
--- a/packages/ui/src/components/entreprises/filtres.js
+++ b/packages/ui/src/components/entreprises/filtres.js
@@ -4,8 +4,8 @@ const filtres = [
     type: 'input',
     value: '',
     name: 'Nom / Siren / Siret',
-    placeholder: `Nom d'entreprise ou d'établissement, Siren, ou Siret`
-  }
+    placeholder: `Nom d'entreprise ou d'établissement, Siren, ou Siret`,
+  },
 ]
 
 export default filtres
diff --git a/packages/ui/src/components/entreprises/table.js b/packages/ui/src/components/entreprises/table.js
index 67f762de4..a0cc256fd 100644
--- a/packages/ui/src/components/entreprises/table.js
+++ b/packages/ui/src/components/entreprises/table.js
@@ -1,12 +1,12 @@
 const entreprisesColonnes = [
   {
     id: 'nom',
-    name: 'Nom'
+    name: 'Nom',
   },
   {
     id: 'siren',
-    name: 'Siren'
-  }
+    name: 'Siren',
+  },
 ]
 
 const entreprisesLignesBuild = entreprises =>
@@ -14,14 +14,14 @@ const entreprisesLignesBuild = entreprises =>
     const columns = {
       nom: { value: entreprise.nom },
       siren: {
-        value: entreprise.legalEtranger || entreprise.legalSiren || '–'
-      }
+        value: entreprise.legalEtranger || entreprise.legalSiren || '–',
+      },
     }
 
     return {
       id: entreprise.id,
       link: { name: 'entreprise', params: { id: entreprise.id } },
-      columns
+      columns,
     }
   })
 
diff --git a/packages/ui/src/components/error.stories.ts b/packages/ui/src/components/error.stories.ts
index 1da339e91..b3a9d332a 100644
--- a/packages/ui/src/components/error.stories.ts
+++ b/packages/ui/src/components/error.stories.ts
@@ -5,7 +5,7 @@ import { Couleur } from 'camino-common/src/static/couleurs'
 const meta: Meta = {
   title: 'Components/Error',
   component: Error,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -16,22 +16,10 @@ const Template: Story<Props> = (args: Props) => ({
   setup() {
     return { args }
   },
-  template: '<Error v-bind="args" />'
+  template: '<Error v-bind="args" />',
 })
 
-export const Success = Template.bind(
-  {},
-  { couleur: 'success', message: 'Bravo c’est un succès' }
-)
-export const Info = Template.bind(
-  {},
-  { couleur: 'info', message: 'Message à caractère informatif' }
-)
-export const Warning = Template.bind(
-  {},
-  { couleur: 'warning', message: 'Attention danger' }
-)
-export const Erreur = Template.bind(
-  {},
-  { couleur: 'error', message: 'Erreur, c’est cassé.' }
-)
+export const Success = Template.bind({}, { couleur: 'success', message: 'Bravo c’est un succès' })
+export const Info = Template.bind({}, { couleur: 'info', message: 'Message à caractère informatif' })
+export const Warning = Template.bind({}, { couleur: 'warning', message: 'Attention danger' })
+export const Erreur = Template.bind({}, { couleur: 'error', message: 'Erreur, c’est cassé.' })
diff --git a/packages/ui/src/components/etape-edition.vue b/packages/ui/src/components/etape-edition.vue
index 65921c0d5..ad80fbd5e 100644
--- a/packages/ui/src/components/etape-edition.vue
+++ b/packages/ui/src/components/etape-edition.vue
@@ -2,27 +2,17 @@
   <Loader v-if="!loaded" />
   <div v-else>
     <h6>
-      <router-link
-        :to="{ name: 'titre', params: { id: titre.slug } }"
-        class="cap-first"
-      >
+      <router-link :to="{ name: 'titre', params: { id: titre.slug } }" class="cap-first">
         {{ titre.nom }}
       </router-link>
       <span class="color-neutral"> | </span>
-      <span class="cap-first">
-        {{ demarcheType.nom }} {{ demarcheDescription }}
-      </span>
+      <span class="cap-first"> {{ demarcheType.nom }} {{ demarcheDescription }} </span>
     </h6>
     <h1>Étape</h1>
 
     <div v-if="helpVisible" class="p-s bg-info color-bg mb">
       Besoin d'aide pour déposer votre demande ?
-      <router-link
-        to="/contacts"
-        target="_blank"
-        class="p-s bg-info color-bg mb"
-        >Contactez-nous</router-link
-      >
+      <router-link to="/contacts" target="_blank" class="p-s bg-info color-bg mb">Contactez-nous</router-link>
     </div>
 
     <div v-if="dateIsVisible" class="tablet-blobs">
@@ -30,11 +20,7 @@
         <h5>Date</h5>
       </div>
       <div class="tablet-blob-2-3">
-        <InputDate
-          :initialValue="newDate"
-          :dateChanged="dateChanged"
-          class="mb"
-        />
+        <InputDate :initialValue="newDate" :dateChanged="dateChanged" class="mb" />
       </div>
     </div>
 
@@ -63,33 +49,13 @@
     <div v-else-if="dateIsVisible" class="tablet-blobs mb">
       <div class="tablet-blob-1-3" />
       <div class="tablet-blob-2-3">
-        <button
-          ref="date-button"
-          class="btn btn-primary"
-          :disabled="!newDate"
-          :class="{ disabled: !newDate }"
-          @click="dateUpdate"
-        >
-          Valider
-        </button>
+        <button ref="date-button" class="btn btn-primary" :disabled="!newDate" :class="{ disabled: !newDate }" @click="dateUpdate">Valider</button>
       </div>
     </div>
 
-    <div
-      v-else
-      ref="save-btn-container"
-      class="tablet-blobs pb-m pt-m bg-bg b-0 sticky"
-    >
+    <div v-else ref="save-btn-container" class="tablet-blobs pb-m pt-m bg-bg b-0 sticky">
       <div class="tablet-blob-1-3" />
-      <FormSaveBtn
-        ref="save-btn"
-        :alertes="alertes"
-        :canSave="isFormComplete"
-        :canDepose="complete"
-        :showDepose="etapeIsDemandeEnConstruction"
-        @save="save"
-        @depose="depose"
-      />
+      <FormSaveBtn ref="save-btn" :alertes="alertes" :canSave="isFormComplete" :canDepose="complete" :showDepose="etapeIsDemandeEnConstruction" @save="save" @depose="depose" />
     </div>
   </div>
 </template>
@@ -121,7 +87,7 @@ export default {
       typeComplete: false,
       promptMsg: 'Quitter le formulaire sans enregistrer les changements ?',
       newDate: getCurrent(),
-      events: { saveKeyUp: true }
+      events: { saveKeyUp: true },
     }
   },
 
@@ -180,9 +146,7 @@ export default {
     },
 
     etapeIsDemandeEnConstruction() {
-      return (
-        this.etapeType?.id === 'mfr' && this.editedEtape?.statutId === 'aco'
-      )
+      return this.etapeType?.id === 'mfr' && this.editedEtape?.statutId === 'aco'
     },
 
     isPopupOpen() {
@@ -190,16 +154,11 @@ export default {
     },
 
     isFormComplete() {
-      return (
-        (this.etapeIsDemandeEnConstruction && this.typeComplete) ||
-        this.complete
-      )
+      return (this.etapeIsDemandeEnConstruction && this.typeComplete) || this.complete
     },
 
     documentPopupTitle() {
-      return `${cap(this.titre.nom)} | ${cap(this.demarcheType.nom)} | ${
-        this.etapeType ? cap(this.etapeType.nom) : ''
-      }`
+      return `${cap(this.titre.nom)} | ${cap(this.demarcheType.nom)} | ${this.etapeType ? cap(this.etapeType.nom) : ''}`
     },
 
     userIsAdmin() {
@@ -207,16 +166,12 @@ export default {
     },
 
     helpVisible() {
-      return (
-        !this.userIsAdmin &&
-        ['axm', 'arm'].includes(this.titre.typeId) &&
-        this.etapeType.id === 'mfr'
-      )
-    }
+      return !this.userIsAdmin && ['axm', 'arm'].includes(this.titre.typeId) && this.etapeType.id === 'mfr'
+    },
   },
 
   watch: {
-    user: 'init'
+    user: 'init',
   },
 
   async created() {
@@ -243,7 +198,7 @@ export default {
       await this.$store.dispatch('titreEtapeEdition/init', {
         titreDemarcheId: this.$route.query['demarche-id'],
         id: this.etapeId,
-        date: this.newDate
+        date: this.newDate,
       })
     },
 
@@ -254,8 +209,7 @@ export default {
     },
 
     async reroute(titreEtapeId) {
-      const tabId =
-        this.demarcheType?.travaux === true ? 'travaux' : 'demarches'
+      const tabId = this.demarcheType?.travaux === true ? 'travaux' : 'demarches'
 
       this.$store.commit('titre/open', { section: 'etapes', id: titreEtapeId })
       this.$store.commit('titre/openTab', tabId)
@@ -263,7 +217,7 @@ export default {
       await this.$router.push({
         name: 'titre',
         params: { id: this.titre.id },
-        hash: `#${titreEtapeId}`
+        hash: `#${titreEtapeId}`,
       })
     },
 
@@ -271,12 +225,9 @@ export default {
       this.isFormDirty = false
 
       if (this.isFormComplete) {
-        const titreEtapeId = await this.$store.dispatch(
-          'titreEtapeEdition/upsert',
-          {
-            etape: this.editedEtape
-          }
-        )
+        const titreEtapeId = await this.$store.dispatch('titreEtapeEdition/upsert', {
+          etape: this.editedEtape,
+        })
 
         if (titreEtapeId) {
           if (reroute) {
@@ -286,7 +237,7 @@ export default {
           this.eventTrack({
             categorie: 'titre-etape',
             action: 'titre-etape-enregistrer',
-            nom: titreEtapeId
+            nom: titreEtapeId,
           })
         }
         return titreEtapeId
@@ -309,10 +260,10 @@ export default {
                 this.eventTrack({
                   categorie: 'titre-etape',
                   action: 'titre-etape_depot',
-                  nom: this.$route.params.id
+                  nom: this.$route.params.id,
                 })
-              }
-            }
+              },
+            },
           })
         }
       }
@@ -325,20 +276,11 @@ export default {
     },
 
     keyUp(e) {
-      if (
-        (e.which || e.keyCode) === 13 &&
-        this.events.saveKeyUp &&
-        this.complete &&
-        !this.isPopupOpen
-      ) {
+      if ((e.which || e.keyCode) === 13 && this.events.saveKeyUp && this.complete && !this.isPopupOpen) {
         if (this.dateIsVisible && this.newDate) {
           this.$refs['date-button'].focus()
           this.dateUpdate()
-        } else if (
-          !this.dateIsVisible &&
-          !this.loading &&
-          this.isFormComplete
-        ) {
+        } else if (!this.dateIsVisible && !this.loading && this.isFormComplete) {
           this.$refs['save-btn'].focusBtn()
           this.save()
         }
@@ -360,13 +302,13 @@ export default {
 
     async dateUpdate() {
       await this.$store.dispatch('titreEtapeEdition/dateUpdate', {
-        date: this.newDate
+        date: this.newDate,
       })
     },
 
     dateFormat(date) {
       return dateFormat(date)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape.vue b/packages/ui/src/components/etape.vue
index 6c3025e9c..4042f1794 100644
--- a/packages/ui/src/components/etape.vue
+++ b/packages/ui/src/components/etape.vue
@@ -2,10 +2,7 @@
   <Loader v-if="!loaded" />
   <div v-else>
     <h6>
-      <router-link
-        :to="{ name: 'titre', params: { id: titre.slug } }"
-        class="cap-first"
-      >
+      <router-link :to="{ name: 'titre', params: { id: titre.slug } }" class="cap-first">
         {{ titre.nom }}
       </router-link>
       <span class="color-neutral"> | </span>
@@ -37,7 +34,7 @@ export default {
 
   data() {
     return {
-      opened: true
+      opened: true,
     }
   },
 
@@ -65,7 +62,7 @@ export default {
     },
     titreTypeId() {
       return this.titre ? this.titre.typeId : ''
-    }
+    },
   },
   watch: {
     '$route.params.id': function (id) {
@@ -73,7 +70,7 @@ export default {
         this.get()
       }
     },
-    user: 'get'
+    user: 'get',
   },
 
   async created() {
@@ -83,7 +80,7 @@ export default {
   methods: {
     async get() {
       await this.$store.dispatch('titreEtape/get', this.$route.params.id)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/accordion.vue b/packages/ui/src/components/etape/accordion.vue
index afe225eab..bed7d13bc 100644
--- a/packages/ui/src/components/etape/accordion.vue
+++ b/packages/ui/src/components/etape/accordion.vue
@@ -3,13 +3,7 @@
     <template #title>
       <div class="flex flex-center">
         <h2 class="cap-first mb-0">{{ step.name }}</h2>
-        <Tag
-          v-if="!complete"
-          :mini="true"
-          color="bg-warning"
-          class="ml-s mt-xs"
-          text="Incomplet"
-        />
+        <Tag v-if="!complete" :mini="true" color="bg-warning" class="ml-s mt-xs" text="Incomplet" />
 
         <HelpTooltip v-if="step.help" :text="step.help" class="ml-m" />
       </div>
@@ -33,7 +27,7 @@ export default {
     step: { type: Object, required: true },
     opened: { type: Boolean, required: true },
     complete: { type: Boolean, required: true },
-    enConstruction: { type: Boolean, required: true }
+    enConstruction: { type: Boolean, required: true },
   },
 
   emits: ['toggle'],
@@ -41,7 +35,7 @@ export default {
   methods: {
     toggle() {
       this.$emit('toggle')
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/autocomplete-entreprise.stories.ts b/packages/ui/src/components/etape/autocomplete-entreprise.stories.ts
index e0f35056f..336b44980 100644
--- a/packages/ui/src/components/etape/autocomplete-entreprise.stories.ts
+++ b/packages/ui/src/components/etape/autocomplete-entreprise.stories.ts
@@ -2,16 +2,12 @@ import AutoCompleteEntrepriseComponent from './autocomplete-entreprise.vue'
 import { Meta, Story } from '@storybook/vue3'
 import { action } from '@storybook/addon-actions'
 import { EtapeEntreprise } from 'camino-common/src/etape'
-import {
-  EntrepriseId,
-  Entreprise,
-  newEntrepriseId
-} from 'camino-common/src/entreprise'
+import { EntrepriseId, Entreprise, newEntrepriseId } from 'camino-common/src/entreprise'
 
 const meta: Meta = {
   title: 'Components/Etape/AutoCompleteEntreprise',
   component: AutoCompleteEntrepriseComponent,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -26,26 +22,23 @@ const Template: Story<Props> = (args: Props) => ({
   setup() {
     return { args }
   },
-  template:
-    '<AutoCompleteEntrepriseComponent v-bind="args" @onEntreprisesUpdate="onEntreprisesUpdate" />',
+  template: '<AutoCompleteEntrepriseComponent v-bind="args" @onEntreprisesUpdate="onEntreprisesUpdate" />',
   methods: {
-    onEntreprisesUpdate: action('onEntreprisesUpdate')
-  }
+    onEntreprisesUpdate: action('onEntreprisesUpdate'),
+  },
 })
 
 export const Default = Template.bind({})
 Default.args = {
   placeholder: 'placeholder',
-  allEntities: [
-    { id: newEntrepriseId('optionId1'), nom: 'optionNom1', etablissements: [] }
-  ]
+  allEntities: [{ id: newEntrepriseId('optionId1'), nom: 'optionNom1', etablissements: [] }],
 }
 export const WithEntitiesAlreadyPresent = Template.bind({})
 WithEntitiesAlreadyPresent.args = {
   placeholder: 'placeholder',
   selectedEntities: [
     { id: newEntrepriseId('optionId10'), operateur: false },
-    { id: newEntrepriseId('optionId2'), operateur: true }
+    { id: newEntrepriseId('optionId2'), operateur: true },
   ],
   allEntities: [
     { id: newEntrepriseId('optionId1'), nom: 'optionNom1', etablissements: [] },
@@ -56,8 +49,8 @@ WithEntitiesAlreadyPresent.args = {
     {
       id: newEntrepriseId('optionId10'),
       nom: 'optionNom10',
-      etablissements: []
-    }
+      etablissements: [],
+    },
   ],
-  nonSelectableEntities: [newEntrepriseId('optionId1')]
+  nonSelectableEntities: [newEntrepriseId('optionId1')],
 }
diff --git a/packages/ui/src/components/etape/autocomplete-entreprise.vue b/packages/ui/src/components/etape/autocomplete-entreprise.vue
index eb6209596..91c0e3896 100644
--- a/packages/ui/src/components/etape/autocomplete-entreprise.vue
+++ b/packages/ui/src/components/etape/autocomplete-entreprise.vue
@@ -7,20 +7,11 @@
         </div>
 
         <label style="flex: auto; user-select: none">
-          <input
-            :checked="entity.operateur"
-            type="checkbox"
-            class="mr-xs"
-            @change="toggleOperator(entity)"
-          />
+          <input :checked="entity.operateur" type="checkbox" class="mr-xs" @change="toggleOperator(entity)" />
           Opérateur
         </label>
 
-        <button
-          class="btn py-s px-m rnd-xs"
-          style=""
-          @click="removeEntity(entity)"
-        >
+        <button class="btn py-s px-m rnd-xs" style="" @click="removeEntity(entity)">
           <Icon name="minus" size="M" />
         </button>
       </div>
@@ -56,7 +47,7 @@ const props = withDefaults(
   }>(),
   {
     nonSelectableEntities: () => [],
-    selectedEntities: () => []
+    selectedEntities: () => [],
   }
 )
 
@@ -80,15 +71,8 @@ watch(
 const selectableEntities = computed(() =>
   props.allEntities
     .filter(entity => !props.nonSelectableEntities.some(id => id === entity.id))
-    .filter(
-      entity =>
-        !mySelectedEntities.value.some(
-          mySelectedEntitiy => mySelectedEntitiy.id === entity.id
-        )
-    )
-    .filter(entity =>
-      entity.nom.toLowerCase().includes(inputValue.value.toLowerCase())
-    )
+    .filter(entity => !mySelectedEntities.value.some(mySelectedEntitiy => mySelectedEntitiy.id === entity.id))
+    .filter(entity => entity.nom.toLowerCase().includes(inputValue.value.toLowerCase()))
 )
 
 const addEntity = (entity: Entreprise | undefined) => {
@@ -101,9 +85,7 @@ const addEntity = (entity: Entreprise | undefined) => {
 }
 
 const removeEntity = (entity: EtapeEntreprise) => {
-  mySelectedEntities.value = mySelectedEntities.value.filter(
-    e => e.id !== entity.id
-  )
+  mySelectedEntities.value = mySelectedEntities.value.filter(e => e.id !== entity.id)
   emit('onEntreprisesUpdate', mySelectedEntities.value)
 }
 
@@ -112,6 +94,5 @@ const toggleOperator = (entity: EtapeEntreprise) => {
   emit('onEntreprisesUpdate', mySelectedEntities.value)
 }
 
-const getEntrepriseNom = (entity: EtapeEntreprise) =>
-  props.allEntities.find(({ id }) => id === entity.id)?.nom ?? ''
+const getEntrepriseNom = (entity: EtapeEntreprise) => props.allEntities.find(({ id }) => id === entity.id)?.nom ?? ''
 </script>
diff --git a/packages/ui/src/components/etape/date-edit.tsx b/packages/ui/src/components/etape/date-edit.tsx
index 1f5a50fc3..e73021193 100644
--- a/packages/ui/src/components/etape/date-edit.tsx
+++ b/packages/ui/src/components/etape/date-edit.tsx
@@ -17,24 +17,11 @@ export const DateEdit: FunctionalComponent<Props> = props => {
         <h5>Date</h5>
       </div>
       <div class="tablet-blob-2-3">
-        <InputDate
-          dateChanged={props.onDateChanged}
-          initialValue={props.date}
-          class="mb-s"
-        />
+        <InputDate dateChanged={props.onDateChanged} initialValue={props.date} class="mb-s" />
         <div class="h6">
           {props.date ? (
             <label>
-              <input
-                checked={props.incertitude}
-                onChange={event =>
-                  isEventWithTarget(event)
-                    ? props.onIncertitudeChanged(event.target.checked)
-                    : null
-                }
-                type="checkbox"
-                class="mr-xs"
-              />
+              <input checked={props.incertitude} onChange={event => (isEventWithTarget(event) ? props.onIncertitudeChanged(event.target.checked) : null)} type="checkbox" class="mr-xs" />
               Incertain
             </label>
           ) : null}
diff --git a/packages/ui/src/components/etape/decisions-annexes-edit.vue b/packages/ui/src/components/etape/decisions-annexes-edit.vue
index d46f80fe7..382232b9a 100644
--- a/packages/ui/src/components/etape/decisions-annexes-edit.vue
+++ b/packages/ui/src/components/etape/decisions-annexes-edit.vue
@@ -13,9 +13,9 @@ export default {
   components: { SectionsEdit },
 
   props: {
-    etape: { type: Object, required: true }
+    etape: { type: Object, required: true },
   },
 
-  emits: ['complete-update']
+  emits: ['complete-update'],
 }
 </script>
diff --git a/packages/ui/src/components/etape/edit.vue b/packages/ui/src/components/etape/edit.vue
index 8d1b356d1..ba69b0bf5 100644
--- a/packages/ui/src/components/etape/edit.vue
+++ b/packages/ui/src/components/etape/edit.vue
@@ -1,27 +1,8 @@
 <template>
   <div class="mb">
-    <Accordion
-      v-if="stepType"
-      id="step-type"
-      :step="stepType"
-      :opened="opened['type']"
-      :complete="typeComplete"
-      :enConstruction="enConstruction"
-      @toggle="toggle('type')"
-    >
-      <DateEdit
-        v-if="userIsAdmin"
-        :date="etape.date"
-        :incertitude="etape.incertitudes.date"
-        :onDateChanged="onDateChanged"
-        :onIncertitudeChanged="onIncertitudeChanged"
-      />
-      <TypeEdit
-        :etape="etape"
-        :etapesTypesIds="etapesTypesIds"
-        :etapeIsDemandeEnConstruction="etapeIsDemandeEnConstruction"
-        :onEtapeChange="onEtapeTypeChange"
-      />
+    <Accordion v-if="stepType" id="step-type" :step="stepType" :opened="opened['type']" :complete="typeComplete" :enConstruction="enConstruction" @toggle="toggle('type')">
+      <DateEdit v-if="userIsAdmin" :date="etape.date" :incertitude="etape.incertitudes.date" :onDateChanged="onDateChanged" :onIncertitudeChanged="onIncertitudeChanged" />
+      <TypeEdit :etape="etape" :etapesTypesIds="etapesTypesIds" :etapeIsDemandeEnConstruction="etapeIsDemandeEnConstruction" :onEtapeChange="onEtapeTypeChange" />
     </Accordion>
 
     <Accordion
@@ -44,15 +25,7 @@
       />
     </Accordion>
 
-    <Accordion
-      v-if="stepPoints"
-      id="step-points"
-      :step="stepPoints"
-      :opened="opened['points']"
-      :complete="stepPerimetreComplete"
-      :enConstruction="enConstruction"
-      @toggle="toggle('points')"
-    >
+    <Accordion v-if="stepPoints" id="step-points" :step="stepPoints" :opened="opened['points']" :complete="stepPerimetreComplete" :enConstruction="enConstruction" @toggle="toggle('points')">
       <PointsEdit
         :etape="etape"
         :events="events"
@@ -63,15 +36,7 @@
       />
     </Accordion>
 
-    <Accordion
-      v-if="stepSections"
-      id="step-sections"
-      :step="stepSections"
-      :opened="opened['sections']"
-      :complete="stepSectionsComplete"
-      :enConstruction="enConstruction"
-      @toggle="toggle('sections')"
-    >
+    <Accordion v-if="stepSections" id="step-sections" :step="stepSections" :opened="opened['sections']" :complete="stepSectionsComplete" :enConstruction="enConstruction" @toggle="toggle('sections')">
       <SectionsEdit
         :etape="etape"
         :sections="etape.type.sections"
@@ -128,10 +93,7 @@
       :enConstruction="enConstruction"
       @toggle="toggle('decisionsAnnexes')"
     >
-      <DecisionsAnnexesEdit
-        :etape="etape"
-        @complete-update="decisionsAnnexesComplete = $event"
-      />
+      <DecisionsAnnexesEdit :etape="etape" @complete-update="decisionsAnnexesComplete = $event" />
     </Accordion>
   </div>
 </template>
@@ -157,7 +119,7 @@ export default {
     SectionsEdit,
     DocumentsEdit,
     JustificatifsEdit,
-    DateEdit
+    DateEdit,
   },
 
   props: {
@@ -168,16 +130,10 @@ export default {
     events: { type: Object, required: true },
     user: { type: Object, required: true },
     etapeIsDemandeEnConstruction: { type: Boolean, required: true },
-    documentPopupTitle: { type: String, required: true }
+    documentPopupTitle: { type: String, required: true },
   },
 
-  emits: [
-    'complete-update',
-    'type-complete-update',
-    'change',
-    'update:etape',
-    'update:events'
-  ],
+  emits: ['complete-update', 'type-complete-update', 'change', 'update:etape', 'update:events'],
 
   data() {
     return {
@@ -195,17 +151,15 @@ export default {
         sections: false,
         documents: false,
         justificatifs: false,
-        decisionsAnnexes: false
+        decisionsAnnexes: false,
       },
-      help: {}
+      help: {},
     }
   },
 
   computed: {
     etapesTypesIds() {
-      return this.$store.state.titreEtapeEdition.metas.etapesTypes.map(
-        t => t.id
-      )
+      return this.$store.state.titreEtapeEdition.metas.etapesTypes.map(t => t.id)
     },
 
     documentsTypes() {
@@ -220,9 +174,7 @@ export default {
       const titulaireIds = this.etape.titulaires.map(({ id }) => id)
       const amodiatairesIds = this.etape.amodiataires.map(({ id }) => id)
 
-      return this.entreprises.filter(
-        ({ id }) => titulaireIds.includes(id) || amodiatairesIds.includes(id)
-      )
+      return this.entreprises.filter(({ id }) => titulaireIds.includes(id) || amodiatairesIds.includes(id))
     },
 
     heritageLoaded() {
@@ -291,18 +243,18 @@ export default {
       if (this.userIsAdmin) {
         steps.push({
           id: 'type',
-          name: 'Type'
+          name: 'Type',
         })
       }
 
       if (this.heritageLoaded && this.etapeType?.fondamentale) {
         steps.push({
           id: 'fondamentales',
-          name: 'Propriétés'
+          name: 'Propriétés',
         })
         steps.push({
           id: 'points',
-          name: 'Périmètre'
+          name: 'Périmètre',
         })
       }
 
@@ -313,7 +265,7 @@ export default {
       if (this.heritageLoaded && this.etape.type.documentsTypes?.length) {
         steps.push({
           id: 'documents',
-          name: `Documents liés à l’étape ${this.etape.type.nom}`
+          name: `Documents liés à l’étape ${this.etape.type.nom}`,
         })
       }
 
@@ -365,7 +317,7 @@ export default {
 
     userIsAdmin() {
       return this.$store.getters['user/userIsAdmin']
-    }
+    },
   },
 
   watch: {
@@ -375,8 +327,8 @@ export default {
       handler: function () {
         this.$emit('change')
       },
-      deep: true
-    }
+      deep: true,
+    },
   },
 
   created() {
@@ -385,16 +337,13 @@ export default {
 
     if (this.etapeType?.id === 'mfr') {
       this.help.arm = {
-        fondamentales:
-          'Le renseignement d’une ou plusieurs substances est obligatoire.',
+        fondamentales: 'Le renseignement d’une ou plusieurs substances est obligatoire.',
         points:
           'Pour la Guyane, le système géographique de référence est le RGFG95 / UTM zone 22N (2972). Pour le renseigner, cliquez sur « ajouter un système géographique » et choisissez le système RGFG95. Vous pouvez ensuite cliquer sur « ajouter un point », renseigner le nom, (le décrire si besoin) et renseigner les coordonnées (l’abscisse « X » en coordonnées cartésiennes correspond à la longitude en coordonnées géographiques et l’ordonnée « Y » correspond à une  latitude ). Vous devez reproduire cette étape pour tous les sommets du ou des périmètres du titre. La surface du titre est calculée automatiquement d’après les sommets renseignés.',
-        sections:
-          'Ce bloc permet de savoir si la prospection est mécanisée ou non et s’il y a des franchissements de cours d’eau (si oui, combien ?)',
-        documents:
-          'Toutes les pièces obligatoires, spécifiques à la demande, doivent être déposées dans cette rubrique en format pdf.',
+        sections: 'Ce bloc permet de savoir si la prospection est mécanisée ou non et s’il y a des franchissements de cours d’eau (si oui, combien ?)',
+        documents: 'Toutes les pièces obligatoires, spécifiques à la demande, doivent être déposées dans cette rubrique en format pdf.',
         justificatifs:
-          "Les justificatifs sont des documents propres à l'entreprise, et pourront être réutilisés pour la création d'un autre dossier et mis à jour si nécessaire. Ces justificatifs sont consultables dans la fiche entreprise de votre société. Cette section permet de protéger et de centraliser les informations d'ordre privé relatives à la société et à son personnel."
+          "Les justificatifs sont des documents propres à l'entreprise, et pourront être réutilisés pour la création d'un autre dossier et mis à jour si nécessaire. Ces justificatifs sont consultables dans la fiche entreprise de votre société. Cette section permet de protéger et de centraliser les informations d'ordre privé relatives à la société et à son personnel.",
       }
 
       this.help.axm = this.help.arm
@@ -423,10 +372,7 @@ export default {
     },
 
     async sectionsUpdate() {
-      await this.$store.dispatch(
-        'titreEtapeEdition/documentInit',
-        this.etape.documents
-      )
+      await this.$store.dispatch('titreEtapeEdition/documentInit', this.etape.documents)
     },
 
     completeUpdate() {
@@ -445,9 +391,7 @@ export default {
 
     scrollToStep(stepId) {
       setTimeout(() => {
-        document
-          .getElementById(`step-${stepId}`)
-          .scrollIntoView({ behavior: 'smooth' })
+        document.getElementById(`step-${stepId}`).scrollIntoView({ behavior: 'smooth' })
       }, 500)
     },
 
@@ -467,7 +411,7 @@ export default {
           this.etape.type = {}
         }
         await this.$store.dispatch('titreEtapeEdition/heritageGet', {
-          typeId: etapeTypeId
+          typeId: etapeTypeId,
         })
       }
       // TODO 2023-01-13 Il faut que les données soient mises après l'appel au store, sinon l'étape est réinitialisée.
@@ -476,7 +420,7 @@ export default {
       this.etape.type.id = etapeTypeId
       this.$emit('type-complete-update', this.typeComplete)
       this.$emit('update:etape', this.etape)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/fondamentales-edit.stories.ts b/packages/ui/src/components/etape/fondamentales-edit.stories.ts
index a909a3ddc..703169324 100644
--- a/packages/ui/src/components/etape/fondamentales-edit.stories.ts
+++ b/packages/ui/src/components/etape/fondamentales-edit.stories.ts
@@ -11,7 +11,7 @@ import { testBlankUser } from 'camino-common/src/tests-utils'
 const meta: Meta = {
   title: 'Components/Etape/FondamentalesEdit',
   component: FondatementalesEditComponent,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -26,7 +26,7 @@ type Props = {
 const etape: EtapeFondamentale = {
   type: {
     id: 'mfr',
-    nom: 'demande'
+    nom: 'demande',
   },
   contenu: {},
   date: toCaminoDate('2022-02-02'),
@@ -40,20 +40,20 @@ const etape: EtapeFondamentale = {
     dateFin: false,
     amodiataires: false,
     titulaires: true,
-    substances: false
+    substances: false,
   },
   substances: ['arse'],
   titulaires: [{ id: newEntrepriseId('optionId1'), operateur: true }],
   amodiataires: [],
   heritageProps: {
     dateDebut: {
-      actif: false
+      actif: false,
     },
     dateFin: {
-      actif: false
+      actif: false,
     },
     duree: {
-      actif: false
+      actif: false,
     },
     substances: {
       actif: true,
@@ -61,19 +61,19 @@ const etape: EtapeFondamentale = {
         date: toCaminoDate('2022-01-01'),
         type: {
           id: 'mfr',
-          nom: 'étape précédente'
+          nom: 'étape précédente',
         },
         substances: ['arge'],
-        incertitudes: { substances: true }
-      }
+        incertitudes: { substances: true },
+      },
     },
     titulaires: {
-      actif: false
+      actif: false,
     },
     amodiataires: {
-      actif: false
-    }
-  }
+      actif: false,
+    },
+  },
 }
 const Template: Story<Props> = (args: Props) => ({
   components: { FondatementalesEditComponent },
@@ -86,10 +86,10 @@ const Template: Story<Props> = (args: Props) => ({
       handler: function (newValue) {
         this.etapeData = newValue.etape
       },
-      immediate: true
-    }
+      immediate: true,
+    },
   },
-  template: '<FondatementalesEditComponent v-bind="args" :etape="etapeData"/>'
+  template: '<FondatementalesEditComponent v-bind="args" :etape="etapeData"/>',
 })
 
 export const ArmDemandeONF = Template.bind(
@@ -101,15 +101,15 @@ export const ArmDemandeONF = Template.bind(
     user: {
       role: 'admin',
       administrationId: 'ope-onf-973-01',
-      ...testBlankUser
+      ...testBlankUser,
     },
     entreprises: [
       {
         id: newEntrepriseId('optionId1'),
         nom: 'optionNom1',
-        etablissements: []
-      }
-    ]
+        etablissements: [],
+      },
+    ],
   }
 )
 
@@ -124,9 +124,9 @@ export const ArmDemandeOperateur = Template.bind(
       {
         id: newEntrepriseId('optionId1'),
         nom: 'optionNom1',
-        etablissements: []
-      }
-    ]
+        etablissements: [],
+      },
+    ],
   }
 )
 
@@ -139,15 +139,15 @@ export const ArmJorfONF = Template.bind(
     user: {
       role: 'admin',
       administrationId: 'ope-onf-973-01',
-      ...testBlankUser
+      ...testBlankUser,
     },
     entreprises: [
       {
         id: newEntrepriseId('optionId1'),
         nom: 'optionNom1',
-        etablissements: []
-      }
-    ]
+        etablissements: [],
+      },
+    ],
   }
 )
 
@@ -160,15 +160,15 @@ export const AxmDemandeONF = Template.bind(
     user: {
       role: 'admin',
       administrationId: 'ope-onf-973-01',
-      ...testBlankUser
+      ...testBlankUser,
     },
     entreprises: [
       {
         id: newEntrepriseId('optionId1'),
         nom: 'optionNom1',
-        etablissements: []
-      }
-    ]
+        etablissements: [],
+      },
+    ],
   }
 )
 
@@ -181,15 +181,15 @@ export const PrmDemandeONF = Template.bind(
     user: {
       role: 'admin',
       administrationId: 'ope-onf-973-01',
-      ...testBlankUser
+      ...testBlankUser,
     },
     entreprises: [
       {
         id: newEntrepriseId('optionId1'),
         nom: 'optionNom1',
-        etablissements: []
-      }
-    ]
+        etablissements: [],
+      },
+    ],
   }
 )
 
@@ -202,14 +202,14 @@ export const PrmDeplacementDePerimetreONF = Template.bind(
     user: {
       role: 'admin',
       administrationId: 'ope-onf-973-01',
-      ...testBlankUser
+      ...testBlankUser,
     },
     entreprises: [
       {
         id: newEntrepriseId('optionId1'),
         nom: 'optionNom1',
-        etablissements: []
-      }
-    ]
+        etablissements: [],
+      },
+    ],
   }
 )
diff --git a/packages/ui/src/components/etape/fondamentales-edit.vue b/packages/ui/src/components/etape/fondamentales-edit.vue
index 38f40a346..5f8de4dbc 100644
--- a/packages/ui/src/components/etape/fondamentales-edit.vue
+++ b/packages/ui/src/components/etape/fondamentales-edit.vue
@@ -6,39 +6,19 @@
         <p v-if="dureeOptionalCheck" class="h6 italic mb-0">Optionnel</p>
       </div>
 
-      <HeritageEdit
-        v-model:prop="etape.heritageProps.duree"
-        class="tablet-blob-2-3"
-        propId="duree"
-      >
+      <HeritageEdit v-model:prop="etape.heritageProps.duree" class="tablet-blob-2-3" propId="duree">
         <template #write>
           <div class="blobs-mini">
             <div class="blob-mini-1-2">
-              <InputNumber
-                v-model="ans"
-                :integer="true"
-                placeholder="années"
-                class="py-s mb-s"
-                @blur="updateDuree"
-              />
+              <InputNumber v-model="ans" :integer="true" placeholder="années" class="py-s mb-s" @blur="updateDuree" />
             </div>
             <div class="blob-mini-1-2">
-              <InputNumber
-                v-model="mois"
-                :integer="true"
-                placeholder="mois"
-                class="p-s"
-                @blur="updateDuree"
-              />
+              <InputNumber v-model="mois" :integer="true" placeholder="mois" class="p-s" @blur="updateDuree" />
             </div>
           </div>
           <div v-if="ans || mois" class="h6">
             <label>
-              <input
-                v-model="etape.incertitudes.duree"
-                type="checkbox"
-                class="mr-xs"
-              />
+              <input v-model="etape.incertitudes.duree" type="checkbox" class="mr-xs" />
               Incertain
             </label>
           </div>
@@ -53,32 +33,18 @@
       <hr />
     </div>
 
-    <template
-      v-if="canEditDates(titreTypeId, demarcheTypeId, etape.type.id, user)"
-    >
+    <template v-if="canEditDates(titreTypeId, demarcheTypeId, etape.type.id, user)">
       <div class="tablet-blobs">
         <div class="tablet-blob-1-3 tablet-pt-s pb-s">
           <h5 class="mb-0">Date de début</h5>
           <p class="h6 italic mb-0">Optionnel</p>
         </div>
-        <HeritageEdit
-          v-model:prop="etape.heritageProps.dateDebut"
-          class="tablet-blob-2-3"
-          propId="dateDebut"
-        >
+        <HeritageEdit v-model:prop="etape.heritageProps.dateDebut" class="tablet-blob-2-3" propId="dateDebut">
           <template #write>
-            <InputDate
-              :initialValue="etape.dateDebut"
-              :dateChanged="dateDebutChanged"
-              class="mb-s"
-            />
+            <InputDate :initialValue="etape.dateDebut" :dateChanged="dateDebutChanged" class="mb-s" />
             <div v-if="etape.dateDebut" class="h6">
               <label>
-                <input
-                  v-model="etape.incertitudes.dateDebut"
-                  type="checkbox"
-                  class="mr-xs"
-                />
+                <input v-model="etape.incertitudes.dateDebut" type="checkbox" class="mr-xs" />
                 Incertain
               </label>
             </div>
@@ -94,33 +60,19 @@
       <hr />
     </template>
 
-    <template
-      v-if="canEditDates(titreTypeId, demarcheTypeId, etape.type.id, user)"
-    >
+    <template v-if="canEditDates(titreTypeId, demarcheTypeId, etape.type.id, user)">
       <div class="tablet-blobs">
         <hr />
         <div class="tablet-blob-1-3 tablet-pt-s pb-s">
           <h5 class="mb-0">Date d'échéance</h5>
           <p class="h6 italic mb-0">Optionnel</p>
         </div>
-        <HeritageEdit
-          v-model:prop="etape.heritageProps.dateFin"
-          class="tablet-blob-2-3"
-          propId="dateFin"
-        >
+        <HeritageEdit v-model:prop="etape.heritageProps.dateFin" class="tablet-blob-2-3" propId="dateFin">
           <template #write>
-            <InputDate
-              :initialValue="etape.dateFin"
-              :dateChanged="dateFinChanged"
-              class="mb-s"
-            />
+            <InputDate :initialValue="etape.dateFin" :dateChanged="dateFinChanged" class="mb-s" />
             <div v-if="etape.dateFin" class="h6">
               <label>
-                <input
-                  v-model="etape.incertitudes.dateFin"
-                  type="checkbox"
-                  class="mr-xs"
-                />
+                <input v-model="etape.incertitudes.dateFin" type="checkbox" class="mr-xs" />
                 Incertain
               </label>
             </div>
@@ -138,11 +90,7 @@
     <template v-if="canEditTitulaires(titreTypeId, user)">
       <h3 class="mb-s">Titulaires</h3>
       <p class="h6 italic">Optionnel</p>
-      <HeritageEdit
-        v-model:prop="etape.heritageProps.titulaires"
-        propId="titulaires"
-        :isArray="true"
-      >
+      <HeritageEdit v-model:prop="etape.heritageProps.titulaires" propId="titulaires" :isArray="true">
         <template #write>
           <AutocompleteEntreprise
             :allEntities="entreprises"
@@ -153,11 +101,7 @@
           />
           <div class="h6 mt-s">
             <label v-if="titulairesLength">
-              <input
-                v-model="etape.incertitudes.titulaires"
-                type="checkbox"
-                class="mr-xs"
-              />
+              <input v-model="etape.incertitudes.titulaires" type="checkbox" class="mr-xs" />
               Incertain
             </label>
           </div>
@@ -166,13 +110,7 @@
           <ul class="list-prefix">
             <li v-for="t in heritagePropEtape.titulaires" :key="t.id">
               {{ getEntrepriseNom(t) }}
-              <Tag
-                v-if="t.operateur"
-                :mini="true"
-                color="bg-info"
-                class="ml-xs"
-                text="Opérateur"
-              />
+              <Tag v-if="t.operateur" :mini="true" color="bg-info" class="ml-xs" text="Opérateur" />
             </li>
           </ul>
         </template>
@@ -186,11 +124,7 @@
       <h3 class="mb-s">Amodiataires</h3>
       <p class="h6 italic">Optionnel</p>
 
-      <HeritageEdit
-        v-model:prop="etape.heritageProps.amodiataires"
-        propId="amodiataires"
-        :isArray="true"
-      >
+      <HeritageEdit v-model:prop="etape.heritageProps.amodiataires" propId="amodiataires" :isArray="true">
         <template #write>
           <AutocompleteEntreprise
             :allEntities="entreprises"
@@ -201,11 +135,7 @@
           />
           <div class="h6 mt-s">
             <label v-if="amodiatairesLength">
-              <input
-                v-model="etape.incertitudes.amodiataires"
-                type="checkbox"
-                class="mr-xs"
-              />
+              <input v-model="etape.incertitudes.amodiataires" type="checkbox" class="mr-xs" />
               Incertain
             </label>
           </div>
@@ -214,13 +144,7 @@
           <ul class="list-prefix">
             <li v-for="t in heritagePropEtape.amodiataires" :key="t.id">
               {{ getEntrepriseNom(t) }}
-              <Tag
-                v-if="t.operateur"
-                :mini="true"
-                color="bg-info"
-                class="ml-xs"
-                text="Opérateur"
-              />
+              <Tag v-if="t.operateur" :mini="true" color="bg-info" class="ml-xs" text="Opérateur" />
             </li>
           </ul>
         </template>
@@ -229,12 +153,7 @@
       <hr />
     </template>
 
-    <SubstancesEdit
-      :substances="etape.substances"
-      :heritageProps="etape.heritageProps"
-      :incertitudes="etape.incertitudes"
-      :domaineId="domaineId"
-    />
+    <SubstancesEdit :substances="etape.substances" :heritageProps="etape.heritageProps" :incertitudes="etape.incertitudes" :domaineId="domaineId" />
 
     <hr />
   </div>
@@ -252,13 +171,7 @@ import { CaminoDate } from 'camino-common/src/date'
 
 import { etablissementNameFind } from '@/utils/entreprise'
 import SubstancesEdit from '@/components/etape/substances-edit.vue'
-import {
-  dureeOptionalCheck as titreEtapesDureeOptionalCheck,
-  canEditAmodiataires,
-  canEditTitulaires,
-  canEditDuree,
-  canEditDates
-} from 'camino-common/src/permissions/titres-etapes'
+import { dureeOptionalCheck as titreEtapesDureeOptionalCheck, canEditAmodiataires, canEditTitulaires, canEditDuree, canEditDates } from 'camino-common/src/permissions/titres-etapes'
 
 import { EtapeEntreprise, EtapeFondamentale } from 'camino-common/src/etape'
 import { DomaineId } from 'camino-common/src/static/domaines'
@@ -282,16 +195,10 @@ const emits = defineEmits<{
   (e: 'update:etape', etape: EtapeFondamentale): void
 }>()
 
-const ans = ref<number>(
-  props.etape.duree ? Math.floor(props.etape.duree / 12) : 0
-)
-const mois = ref<number>(
-  props.etape.duree ? Math.floor(props.etape.duree % 12) : 0
-)
+const ans = ref<number>(props.etape.duree ? Math.floor(props.etape.duree / 12) : 0)
+const mois = ref<number>(props.etape.duree ? Math.floor(props.etape.duree % 12) : 0)
 
-const entreprisesDisabled = computed<EntrepriseId[]>(() =>
-  [...props.etape.amodiataires, ...props.etape.titulaires].map(({ id }) => id)
-)
+const entreprisesDisabled = computed<EntrepriseId[]>(() => [...props.etape.amodiataires, ...props.etape.titulaires].map(({ id }) => id))
 
 const dateDebutChanged = (date: CaminoDate) => {
   props.etape.dateDebut = date
@@ -312,19 +219,11 @@ const amodiatairesLength = computed<number>(() => {
 })
 
 const dureeOptionalCheck = computed<boolean>(() => {
-  return titreEtapesDureeOptionalCheck(
-    props.etape.type.id,
-    props.demarcheTypeId,
-    props.titreTypeId
-  )
+  return titreEtapesDureeOptionalCheck(props.etape.type.id, props.demarcheTypeId, props.titreTypeId)
 })
 
 const complete = computed<boolean>(() => {
-  return (
-    props.etape.type.id !== ETAPES_TYPES.demande ||
-    (props.etape.substances?.filter(substanceId => !!substanceId)?.length > 0 &&
-      (dureeOptionalCheck.value || !!ans.value || !!mois.value))
-  )
+  return props.etape.type.id !== ETAPES_TYPES.demande || (props.etape.substances?.filter(substanceId => !!substanceId)?.length > 0 && (dureeOptionalCheck.value || !!ans.value || !!mois.value))
 })
 
 const completeUpdate = () => {
@@ -371,40 +270,27 @@ watch<EtapeFondamentale>(
 const titulairesUpdate = (titulaires: EtapeEntreprise[]) => {
   const newTitulaires = titulaires.map(titulaire => ({
     id: titulaire.id,
-    operateur: titulaire.operateur
+    operateur: titulaire.operateur,
   }))
-  props.etape.titulaires.splice(
-    0,
-    props.etape.titulaires.length,
-    ...newTitulaires
-  )
+  props.etape.titulaires.splice(0, props.etape.titulaires.length, ...newTitulaires)
 }
 
 const amodiatairesUpdate = (amodiataires: EtapeEntreprise[]) => {
   const newAmodiataires = amodiataires.map(amodiataire => ({
     id: amodiataire.id,
-    operateur: amodiataire.operateur
+    operateur: amodiataire.operateur,
   }))
-  props.etape.amodiataires.splice(
-    0,
-    props.etape.amodiataires.length,
-    ...newAmodiataires
-  )
+  props.etape.amodiataires.splice(0, props.etape.amodiataires.length, ...newAmodiataires)
 }
 
 const getEntrepriseNom = (etapeEntreprise: EtapeEntreprise): string => {
-  const entreprise = props.entreprises.find(
-    ({ id }) => id === etapeEntreprise.id
-  )
+  const entreprise = props.entreprises.find(({ id }) => id === etapeEntreprise.id)
 
   if (!entreprise) {
     return ''
   }
 
-  return (
-    etablissementNameFind(entreprise.etablissements, props.etape.date) ||
-    entreprise.nom
-  )
+  return etablissementNameFind(entreprise.etablissements, props.etape.date) || entreprise.nom
 }
 
 const updateDuree = (): void => {
diff --git a/packages/ui/src/components/etape/fondamentales.vue b/packages/ui/src/components/etape/fondamentales.vue
index a66a84ce2..eb3ce874f 100644
--- a/packages/ui/src/components/etape/fondamentales.vue
+++ b/packages/ui/src/components/etape/fondamentales.vue
@@ -4,13 +4,7 @@
       <div class="tablet-blob-1-4">
         <h5>
           Durée
-          <Tag
-            v-if="etape.incertitudes && etape.incertitudes.duree"
-            :mini="true"
-            color="bg-info"
-            class="ml-xs"
-            text="Incertain"
-          />
+          <Tag v-if="etape.incertitudes && etape.incertitudes.duree" :mini="true" color="bg-info" class="ml-xs" text="Incertain" />
         </h5>
       </div>
       <div class="tablet-blob-3-4">
@@ -24,13 +18,7 @@
       <div class="tablet-blob-1-4">
         <h5>
           Date de début
-          <Tag
-            v-if="etape.incertitudes && etape.incertitudes.dateDebut"
-            :mini="true"
-            color="bg-info"
-            class="ml-xs"
-            text="Incertain"
-          />
+          <Tag v-if="etape.incertitudes && etape.incertitudes.dateDebut" :mini="true" color="bg-info" class="ml-xs" text="Incertain" />
         </h5>
       </div>
       <div class="tablet-blob-3-4">
@@ -43,13 +31,7 @@
       <div class="tablet-blob-1-4">
         <h5>
           Date d'échéance
-          <Tag
-            v-if="etape.incertitudes && etape.incertitudes.dateFin"
-            :mini="true"
-            color="bg-info"
-            class="ml-xs"
-            text="Incertain"
-          />
+          <Tag v-if="etape.incertitudes && etape.incertitudes.dateFin" :mini="true" color="bg-info" class="ml-xs" text="Incertain" />
         </h5>
       </div>
       <div class="tablet-blob-3-4">
@@ -59,48 +41,28 @@
       </div>
     </div>
 
-    <div
-      v-if="etape.titulaires && etape.titulaires.length"
-      class="tablet-blobs"
-    >
+    <div v-if="etape.titulaires && etape.titulaires.length" class="tablet-blobs">
       <div class="tablet-blob-1-4">
         <h5>
           Titulaire{{ etape.titulaires.length > 1 ? 's' : '' }}
-          <Tag
-            v-if="etape.incertitudes && etape.incertitudes.titulaires"
-            :mini="true"
-            color="bg-info"
-            class="ml-xs"
-            text="Incertain"
-          />
+          <Tag v-if="etape.incertitudes && etape.incertitudes.titulaires" :mini="true" color="bg-info" class="ml-xs" text="Incertain" />
         </h5>
       </div>
       <div class="tablet-blob-3-4">
         <ul class="list-prefix mb">
           <li v-for="t in etape.titulaires" :key="t.id">
             {{ etablissementNameFind(t.etablissements, etape.date) || t.nom }}
-            <Tag v-if="t.operateur" :mini="true" color="bg-info" class="ml-xs">
-              Opérateur
-            </Tag>
+            <Tag v-if="t.operateur" :mini="true" color="bg-info" class="ml-xs"> Opérateur </Tag>
           </li>
         </ul>
       </div>
     </div>
 
-    <div
-      v-if="etape.amodiataires && etape.amodiataires.length"
-      class="tablet-blobs"
-    >
+    <div v-if="etape.amodiataires && etape.amodiataires.length" class="tablet-blobs">
       <div class="tablet-blob-1-4">
         <h5>
           Amodiataire{{ etape.amodiataires.length > 1 ? 's' : '' }}
-          <Tag
-            v-if="etape.incertitudes && etape.incertitudes.amodiataires"
-            :mini="true"
-            color="bg-info"
-            class="ml-xs"
-            text="Incertain"
-          />
+          <Tag v-if="etape.incertitudes && etape.incertitudes.amodiataires" :mini="true" color="bg-info" class="ml-xs" text="Incertain" />
         </h5>
       </div>
       <div class="tablet-blob-3-4">
@@ -112,30 +74,15 @@
       </div>
     </div>
 
-    <div
-      v-if="etape.substances && etape.substances?.length"
-      class="tablet-blobs"
-    >
+    <div v-if="etape.substances && etape.substances?.length" class="tablet-blobs">
       <div class="tablet-blob-1-4">
         <h5>
           Substance{{ etape.substances?.length > 1 ? 's' : '' }}
-          <Tag
-            v-if="etape.incertitudes && etape.incertitudes.substances"
-            :mini="true"
-            color="bg-info"
-            class="ml-xs"
-            text="Incertain"
-          />
+          <Tag v-if="etape.incertitudes && etape.incertitudes.substances" :mini="true" color="bg-info" class="ml-xs" text="Incertain" />
         </h5>
       </div>
       <div class="tablet-blob-3-4">
-        <TagList
-          :elements="
-            etape.substances?.map(
-              substanceId => SubstancesLegale[substanceId].nom
-            )
-          "
-        />
+        <TagList :elements="etape.substances?.map(substanceId => SubstancesLegale[substanceId].nom)" />
       </div>
     </div>
   </div>
diff --git a/packages/ui/src/components/etape/heritage-edit.types.ts b/packages/ui/src/components/etape/heritage-edit.types.ts
index 3fed97085..71238f957 100644
--- a/packages/ui/src/components/etape/heritage-edit.types.ts
+++ b/packages/ui/src/components/etape/heritage-edit.types.ts
@@ -1,10 +1,7 @@
 import { CaminoDate } from 'camino-common/src/date'
 import { Etape } from 'camino-common/src/etape'
 
-export type EtapeHeritageProps = keyof Omit<
-  Etape,
-  'incertitudes' | 'type' | 'heritageProps' | 'contenu' | 'date'
->
+export type EtapeHeritageProps = keyof Omit<Etape, 'incertitudes' | 'type' | 'heritageProps' | 'contenu' | 'date'>
 
 // TODO 2022-11-16 ça devrait être cette définition, cf heritage-edit.vue
 // export type EtapeHeritage<
diff --git a/packages/ui/src/components/etape/heritage-edit.vue b/packages/ui/src/components/etape/heritage-edit.vue
index 5d7da975f..dfb3c1139 100644
--- a/packages/ui/src/components/etape/heritage-edit.vue
+++ b/packages/ui/src/components/etape/heritage-edit.vue
@@ -5,38 +5,21 @@
       <slot v-if="hasHeritage" name="read" :heritagePropEtape="prop.etape" />
       <div v-else class="border p-s mb-s">Non renseigné</div>
       <div class="mb-s">
-        <Tag
-          v-if="
-            prop.etape.incertitudes && prop.etape.incertitudes[props.propId]
-          "
-          :mini="true"
-          color="bg-info"
-          text="Incertain"
-        />
+        <Tag v-if="prop.etape.incertitudes && prop.etape.incertitudes[props.propId]" :mini="true" color="bg-info" text="Incertain" />
       </div>
       <p class="h6 italic mb-s">
         Hérité de :
-        <span class="cap-first">{{ prop.etape.type.nom }}</span> ({{
-          dateFormat(prop.etape.date)
-        }})
+        <span class="cap-first">{{ prop.etape.type.nom }}</span> ({{ dateFormat(prop.etape.date) }})
       </p>
     </div>
     <slot />
-    <button
-      v-if="prop.etape"
-      class="btn full-x rnd-xs py-s px-m small mb-s"
-      @click="prop.actif = !prop.actif"
-    >
+    <button v-if="prop.etape" class="btn full-x rnd-xs py-s px-m small mb-s" @click="prop.actif = !prop.actif">
       {{ buttonText }}
     </button>
   </div>
 </template>
 
-<script
-  setup
-  lang="ts"
-  generic="P extends EtapeHeritageProps, T extends EtapeHeritage"
->
+<script setup lang="ts" generic="P extends EtapeHeritageProps, T extends EtapeHeritage">
 // TODO 2022-11-16 normalement T devrait étendre EtapeHeritage<P>, mais il y a un bug avec vite qui empêche de lancer l'appli en mode dev
 import { hasValeurCheck } from '@/utils/contenu'
 import { Tag } from '@/components/_ui/tag'
@@ -50,9 +33,7 @@ const props = defineProps<{
   propId: P
 }>()
 
-const buttonText = computed<string>(() =>
-  props.prop.actif ? 'Modifier' : `Hériter de l'étape précédente`
-)
+const buttonText = computed<string>(() => (props.prop.actif ? 'Modifier' : `Hériter de l'étape précédente`))
 
 const hasHeritage = computed<boolean>(() => {
   return hasValeurCheck(props.propId, props.prop.etape)
diff --git a/packages/ui/src/components/etape/justificatifs-edit.vue b/packages/ui/src/components/etape/justificatifs-edit.vue
index 5818f2496..dcd4128a2 100644
--- a/packages/ui/src/components/etape/justificatifs-edit.vue
+++ b/packages/ui/src/components/etape/justificatifs-edit.vue
@@ -1,10 +1,6 @@
 <template>
   <div v-if="entreprises.length">
-    <div
-      v-for="(e, eId) in entreprisesJustificatifsIndex"
-      :key="eId"
-      class="mb-xs"
-    >
+    <div v-for="(e, eId) in entreprisesJustificatifsIndex" :key="eId" class="mb-xs">
       <div class="flex">
         <h4>{{ e.nom }}</h4>
       </div>
@@ -17,19 +13,9 @@
             <h5 class="mt-s">Ajouter un justificatif existant</h5>
           </div>
           <div class="tablet-blob-2-3">
-            <select
-              class="p-s mb-s"
-              value="undefined"
-              @change="justificatifAdd(eId, $event)"
-            >
-              <option value="undefined" :disabled="true">
-                Sélectionner un type de justificatif
-              </option>
-              <option
-                v-for="jt in justificatifsTypes"
-                :key="jt.id"
-                :value="jt.id"
-              >
+            <select class="p-s mb-s" value="undefined" @change="justificatifAdd(eId, $event)">
+              <option value="undefined" :disabled="true">Sélectionner un type de justificatif</option>
+              <option v-for="jt in justificatifsTypes" :key="jt.id" :value="jt.id">
                 {{ jt.nom }}
               </option>
             </select>
@@ -44,56 +30,27 @@
           <div class="tablet-blob-1-3 flex flex-center">
             <h5 class="mt-s">{{ j.type.nom }}</h5>
             <span>
-              <HelpTooltip
-                v-if="j.type.description"
-                :text="j.type.description"
-                class="ml-xs"
-              />
+              <HelpTooltip v-if="j.type.description" :text="j.type.description" class="ml-xs" />
             </span>
-            <Tag
-              v-if="!j.id"
-              :mini="true"
-              color="bg-warning"
-              class="ml-xs"
-              text="Manquant"
-            />
+            <Tag v-if="!j.id" :mini="true" color="bg-warning" class="ml-xs" text="Manquant" />
           </div>
           <div class="tablet-blob-2-3">
             <div class="flex mb-s">
-              <select
-                class="p-s"
-                :value="j.id"
-                @change="justificatifsUpdate(j, e.nom, eId, $event)"
-              >
+              <select class="p-s" :value="j.id" @change="justificatifsUpdate(j, e.nom, eId, $event)">
                 <template v-if="j.documents.length">
-                  <option
-                    v-for="d in j.documents"
-                    :key="d.id"
-                    :value="d.id"
-                    :disabled="justificatifs.some(j => j.id === d.id)"
-                  >
-                    {{ d.type.nom }} : {{ d.description }} ({{
-                      dateFormat(d.date)
-                    }})
+                  <option v-for="d in j.documents" :key="d.id" :value="d.id" :disabled="justificatifs.some(j => j.id === d.id)">
+                    {{ d.type.nom }} : {{ d.description }} ({{ dateFormat(d.date) }})
                   </option>
                 </template>
                 <option v-else></option>
-                <option value="newDocument">
-                  Ajouter un nouveau justificatif
-                </option>
+                <option value="newDocument">Ajouter un nouveau justificatif</option>
               </select>
 
               <div v-if="j.id" class="flex-right flex flex-center ml-s">
-                <button
-                  class="btn-border py-s px-m rnd-l-xs"
-                  @click="justificatifRemove(eId, index)"
-                >
+                <button class="btn-border py-s px-m rnd-l-xs" @click="justificatifRemove(eId, index)">
                   <Icon size="M" name="delete" />
                 </button>
-                <button
-                  class="btn-border py-s px-m rnd-r-xs"
-                  @click="justificatifDownload(eId, index)"
-                >
+                <button class="btn-border py-s px-m rnd-r-xs" @click="justificatifDownload(eId, index)">
                   <Icon size="M" name="download" />
                 </button>
               </div>
@@ -118,7 +75,7 @@ export default {
   props: {
     justificatifs: { type: Array, required: true },
     justificatifsTypes: { type: Array, required: true },
-    entreprises: { type: Array, required: true }
+    entreprises: { type: Array, required: true },
   },
 
   emits: ['complete-update'],
@@ -126,7 +83,7 @@ export default {
   data() {
     return {
       entreprisesJustificatifsIndex: {},
-      entreprisesDocumentsIndex: {}
+      entreprisesDocumentsIndex: {},
     }
   },
 
@@ -142,18 +99,15 @@ export default {
         })
       })
 
-      return this.justificatifsTypes.every(
-        jt =>
-          jt.optionnel || justificatifs.find(({ type }) => type.id === jt.id)
-      )
-    }
+      return this.justificatifsTypes.every(jt => jt.optionnel || justificatifs.find(({ type }) => type.id === jt.id))
+    },
   },
 
   watch: {
     complete: 'completeUpdate',
     entreprises: { handler: 'reset', deep: true },
     justificatifsTypes: { handler: 'reset', deep: true },
-    justificatifs: { handler: 'indexReset', deep: true }
+    justificatifs: { handler: 'indexReset', deep: true },
   },
 
   created() {
@@ -181,7 +135,7 @@ export default {
         //  }}
         this.entreprisesJustificatifsIndex[e.id] = {
           nom: e.nom,
-          justificatifs: []
+          justificatifs: [],
         }
 
         this.justificatifsTypes.forEach(type => {
@@ -189,23 +143,21 @@ export default {
           const documentsIds = documents.map(({ id }) => id)
           this.entreprisesDocumentsIndex[e.id][type.id] = documents
 
-          const justificatifs = this.justificatifs.filter(j =>
-            documentsIds.includes(j.id)
-          )
+          const justificatifs = this.justificatifs.filter(j => documentsIds.includes(j.id))
 
           if (justificatifs.length) {
             justificatifs.forEach(j => {
               this.entreprisesJustificatifsIndex[e.id].justificatifs.push({
                 id: j.id,
                 type,
-                documents
+                documents,
               })
             })
           } else if (!type.optionnel) {
             this.entreprisesJustificatifsIndex[e.id].justificatifs.push({
               id: '',
               type,
-              documents
+              documents,
             })
           }
         })
@@ -220,7 +172,7 @@ export default {
       this.entreprisesJustificatifsIndex[entrepriseId].justificatifs.push({
         id: '',
         type,
-        documents
+        documents,
       })
 
       event.target.value = undefined
@@ -247,16 +199,16 @@ export default {
               fichier: null,
               fichierNouveau: null,
               fichierTypeId: null,
-              typeId: justificatif.type.id
+              typeId: justificatif.type.id,
             },
             action: {
               name: 'titreEtapeEdition/entrepriseDocumentAdd',
-              params: { entrepriseId }
+              params: { entrepriseId },
             },
             repertoire: 'entreprises',
             documentsTypes: this.justificatifsTypes,
-            title: entrepriseNom
-          }
+            title: entrepriseNom,
+          },
         })
       } else {
         justificatif.id = event.target.value
@@ -265,17 +217,13 @@ export default {
     },
 
     justificatifRemove(entrepriseId, index) {
-      this.entreprisesJustificatifsIndex[entrepriseId].justificatifs.splice(
-        index,
-        1
-      )
+      this.entreprisesJustificatifsIndex[entrepriseId].justificatifs.splice(index, 1)
 
       this.justificatifsReset()
     },
 
     async justificatifDownload(entrepriseId, index) {
-      const document =
-        this.entreprisesJustificatifsIndex[entrepriseId].justificatifs[index]
+      const document = this.entreprisesJustificatifsIndex[entrepriseId].justificatifs[index]
       await this.$store.dispatch('downloadDocument', document)
     },
 
@@ -283,15 +231,13 @@ export default {
       this.justificatifs.splice(0, this.justificatifs.length)
 
       Object.keys(this.entreprisesJustificatifsIndex).forEach(eId => {
-        this.entreprisesJustificatifsIndex[eId].justificatifs.forEach(
-          ({ id }) => {
-            if (!id) return
+        this.entreprisesJustificatifsIndex[eId].justificatifs.forEach(({ id }) => {
+          if (!id) return
 
-            this.justificatifs.push({ id })
-          }
-        )
+          this.justificatifs.push({ id })
+        })
       })
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/perimetre.vue b/packages/ui/src/components/etape/perimetre.vue
index eb466ebd0..36c75da10 100644
--- a/packages/ui/src/components/etape/perimetre.vue
+++ b/packages/ui/src/components/etape/perimetre.vue
@@ -4,24 +4,12 @@
       <div class="tablet-blob-1-4">
         <h5>
           Périmètre
-          <Tag
-            v-if="incertitude"
-            :mini="true"
-            color="bg-info"
-            class="ml-xs"
-            text="Incertain"
-          />
+          <Tag v-if="incertitude" :mini="true" color="bg-info" class="ml-xs" text="Incertain" />
         </h5>
       </div>
 
       <div class="tablet-blob-3-4">
-        <Perimetre
-          :titreTypeId="titreTypeId"
-          :points="etape.points"
-          :geojsonMultiPolygon="geojsonMultiPolygon"
-          :tabId="tabId"
-          :tabUpdate="tabUpdate"
-        />
+        <Perimetre :titreTypeId="titreTypeId" :points="etape.points" :geojsonMultiPolygon="geojsonMultiPolygon" :tabId="tabId" :tabUpdate="tabUpdate" />
       </div>
     </div>
 
@@ -29,13 +17,7 @@
       <div class="tablet-blob-1-4">
         <h5>
           Surface
-          <Tag
-            v-if="etape.incertitudes && etape.incertitudes.surface"
-            :mini="true"
-            color="bg-info"
-            class="ml-xs"
-            text="Incertain"
-          />
+          <Tag v-if="etape.incertitudes && etape.incertitudes.surface" :mini="true" color="bg-info" class="ml-xs" text="Incertain" />
         </h5>
       </div>
       <div class="tablet-blob-3-4">
@@ -57,12 +39,12 @@ export default {
     etape: { type: Object, required: true },
     geojsonMultiPolygon: { type: Object, required: true },
     titreTypeId: { type: String, required: true },
-    incertitude: { type: Boolean, default: false }
+    incertitude: { type: Boolean, default: false },
   },
 
   data() {
     return {
-      tabId: 'points'
+      tabId: 'points',
     }
   },
 
@@ -73,7 +55,7 @@ export default {
 
     numberFormat(number) {
       return numberFormat(number)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/points-edit.vue b/packages/ui/src/components/etape/points-edit.vue
index 7976b4fcf..497bc3c58 100644
--- a/packages/ui/src/components/etape/points-edit.vue
+++ b/packages/ui/src/components/etape/points-edit.vue
@@ -2,24 +2,14 @@
   <div>
     <h4 v-if="showTitle" class="mb-s">Périmètre</h4>
 
-    <HeritageEdit
-      v-model:prop="etape.heritageProps.points"
-      propId="points"
-      :isArray="true"
-    >
+    <HeritageEdit v-model:prop="etape.heritageProps.points" propId="points" :isArray="true">
       <template #write>
-        <button
-          class="btn small rnd-xs py-s px-m full-x flex mb-s"
-          @click="pointsImport"
-        >
+        <button class="btn small rnd-xs py-s px-m full-x flex mb-s" @click="pointsImport">
           <span class="mt-xxs">Importer depuis un fichier…</span>
           <Icon name="plus" size="M" class="flex-right" />
         </button>
 
-        <GeoSystemeEdit
-          :etape="etape"
-          @update:etape="newValue => $emit('update:etape', newValue)"
-        />
+        <GeoSystemeEdit :etape="etape" @update:etape="newValue => $emit('update:etape', newValue)" />
 
         <div v-if="etape.geoSystemeIds.length" class="mb-s">
           <hr />
@@ -31,8 +21,7 @@
             </ul>
             <p>
               Le premier contour d'un groupe définit un périmètre.
-              <br />Les contours suivants définissent des lacunes au sein de ce
-              périmètre.
+              <br />Les contours suivants définissent des lacunes au sein de ce périmètre.
             </p>
           </div>
 
@@ -41,85 +30,47 @@
             :key="groupeIndex + 1"
             class="geo-groupe mb-xs"
             :class="{
-              'geo-groupe-edit':
-                groupeContours.length && groupeContours[0].length
+              'geo-groupe-edit': groupeContours.length && groupeContours[0].length,
             }"
           >
             <div v-if="etape.groupes.length > 1" class="flex flex-full">
-              <h4 class="color-bg pt-s pl-m mb-s">
-                Groupe {{ groupeIndex + 1 }}
-              </h4>
+              <h4 class="color-bg pt-s pl-m mb-s">Groupe {{ groupeIndex + 1 }}</h4>
               <div class="flex-right hide">
-                <button
-                  class="btn-border py-s px-m rnd-xs"
-                  @click="groupeRemove(groupeIndex)"
-                >
+                <button class="btn-border py-s px-m rnd-xs" @click="groupeRemove(groupeIndex)">
                   <Icon name="minus" size="M" />
                 </button>
               </div>
             </div>
-            <div
-              v-for="(contourPoints, contourIndex) in groupeContours"
-              :key="contourIndex + 1"
-              class="geo-contour"
-            >
+            <div v-for="(contourPoints, contourIndex) in groupeContours" :key="contourIndex + 1" class="geo-contour">
               <div v-if="groupeContours.length > 1" class="flex flex-full">
                 <h4 class="pt-xs pl-s mb-s">
-                  {{
-                    contourIndex === 0 ? 'Contour' : `Lacune ${contourIndex}`
-                  }}
+                  {{ contourIndex === 0 ? 'Contour' : `Lacune ${contourIndex}` }}
                 </h4>
                 <div class="flex-right hide">
-                  <button
-                    class="btn-border py-s px-m rnd-xs"
-                    @click="contourRemove(groupeIndex, contourIndex)"
-                  >
+                  <button class="btn-border py-s px-m rnd-xs" @click="contourRemove(groupeIndex, contourIndex)">
                     <Icon name="minus" size="M" />
                   </button>
                 </div>
               </div>
-              <div
-                v-for="(point, pointIndex) in contourPoints"
-                :key="pointIndex + 1"
-                class="geo-point"
-              >
+              <div v-for="(point, pointIndex) in contourPoints" :key="pointIndex + 1" class="geo-point">
                 <div class="flex full-x">
                   <h4 v-if="point.lot" class="mt-s">Lot de points</h4>
                   <h4 v-else class="mt-s">Point {{ point.nom }}</h4>
                   <div class="flex-right">
                     <button
-                      v-if="
-                        !(
-                          etape.groupes.length === groupeIndex + 1 &&
-                          groupeContours.length === contourIndex + 1 &&
-                          contourPoints.length === pointIndex + 1
-                        )
-                      "
+                      v-if="!(etape.groupes.length === groupeIndex + 1 && groupeContours.length === contourIndex + 1 && contourPoints.length === pointIndex + 1)"
                       class="btn-border py-s px-m rnd-l-xs"
-                      @click="
-                        pointMoveDown(groupeIndex, contourIndex, pointIndex)
-                      "
+                      @click="pointMoveDown(groupeIndex, contourIndex, pointIndex)"
                     >
                       <Icon size="M" name="move-down" />
                     </button>
                     <button
-                      v-if="
-                        !(
-                          groupeIndex === 0 &&
-                          contourIndex === 0 &&
-                          pointIndex === 0
-                        )
-                      "
+                      v-if="!(groupeIndex === 0 && contourIndex === 0 && pointIndex === 0)"
                       :class="{
-                        'rnd-l-xs':
-                          etape.groupes.length === groupeIndex + 1 &&
-                          groupeContours.length === contourIndex + 1 &&
-                          contourPoints.length === pointIndex + 1
+                        'rnd-l-xs': etape.groupes.length === groupeIndex + 1 && groupeContours.length === contourIndex + 1 && contourPoints.length === pointIndex + 1,
                       }"
                       class="btn-border py-s px-m"
-                      @click="
-                        pointMoveUp(groupeIndex, contourIndex, pointIndex)
-                      "
+                      @click="pointMoveUp(groupeIndex, contourIndex, pointIndex)"
                     >
                       <Icon size="M" name="move-up" />
                     </button>
@@ -131,65 +82,32 @@
                           pointIndex === 0 &&
                           etape.groupes.length === groupeIndex + 1 &&
                           groupeContours.length === contourIndex + 1 &&
-                          contourPoints.length === pointIndex + 1
+                          contourPoints.length === pointIndex + 1,
                       }"
                       class="btn py-s px-m rnd-r-xs"
-                      @click="
-                        pointRemove(groupeIndex, contourIndex, pointIndex)
-                      "
+                      @click="pointRemove(groupeIndex, contourIndex, pointIndex)"
                     >
                       <Icon name="minus" size="M" />
                     </button>
                   </div>
                 </div>
 
-                <PointEdit
-                  v-if="!point.lot"
-                  v-model:point="contourPoints[pointIndex]"
-                  :geoSystemeOpposableId="etape.geoSystemeOpposableId"
-                  :geoSystemeIds="etape.geoSystemeIds"
-                />
-                <PointsLotEdit
-                  v-else
-                  v-model:point="contourPoints[pointIndex]"
-                  :geoSystemeOpposableId="etape.geoSystemeOpposableId"
-                  :geoSystemeIds="etape.geoSystemeIds"
-                  :events="events"
-                />
+                <PointEdit v-if="!point.lot" v-model:point="contourPoints[pointIndex]" :geoSystemeOpposableId="etape.geoSystemeOpposableId" :geoSystemeIds="etape.geoSystemeIds" />
+                <PointsLotEdit v-else v-model:point="contourPoints[pointIndex]" :geoSystemeOpposableId="etape.geoSystemeOpposableId" :geoSystemeIds="etape.geoSystemeIds" :events="events" />
               </div>
 
-              <button
-                class="btn-border rnd-s py-s px-m full-x mb-xs flex small"
-                @click="pointAdd(groupeIndex, contourIndex)"
-              >
+              <button class="btn-border rnd-s py-s px-m full-x mb-xs flex small" @click="pointAdd(groupeIndex, contourIndex)">
                 <span class="mt-xxs">Ajouter un point</span>
                 <Icon name="plus" size="M" class="flex-right" />
               </button>
             </div>
-            <button
-              v-if="groupeContours.length && groupeContours[0].length"
-              class="btn rnd-s py-s px-m full-x mb-xs flex h6"
-              @click="contourAdd(groupeIndex)"
-            >
-              <span class="mt-xxs"
-                >Ajouter
-                {{
-                  groupeContours.length >= 1 ? 'une lacune' : 'un contour'
-                }}</span
-              >
+            <button v-if="groupeContours.length && groupeContours[0].length" class="btn rnd-s py-s px-m full-x mb-xs flex h6" @click="contourAdd(groupeIndex)">
+              <span class="mt-xxs">Ajouter {{ groupeContours.length >= 1 ? 'une lacune' : 'un contour' }}</span>
               <Icon name="plus" size="M" class="flex-right" />
             </button>
           </div>
 
-          <button
-            v-if="
-              etape.groupes.length &&
-              etape.groupes[0].length &&
-              etape.groupes[0][0].length
-            "
-            class="btn rnd-s py-s px-m full-x mb-s flex h6"
-            @click="groupeAdd"
-          >
+          <button v-if="etape.groupes.length && etape.groupes[0].length && etape.groupes[0][0].length" class="btn rnd-s py-s px-m full-x mb-s flex h6" @click="groupeAdd">
             <span class="mt-xxs">Ajouter un groupe</span>
             <Icon name="plus" size="M" class="flex-right" />
           </button>
@@ -215,36 +133,16 @@
           <h5 class="mb-0">Surface (Km²)</h5>
           <p class="h6 italic mb-0">Optionnel</p>
         </div>
-        <button
-          v-if="!etape.heritageProps.surface.actif"
-          class="flex-right btn-border pill p-s tooltip"
-          @click="surfaceRefresh"
-        >
-          <HelpTooltip
-            icon="refresh"
-            text="Recalculer automatiquement la surface à partir du périmètre"
-          />
+        <button v-if="!etape.heritageProps.surface.actif" class="flex-right btn-border pill p-s tooltip" @click="surfaceRefresh">
+          <HelpTooltip icon="refresh" text="Recalculer automatiquement la surface à partir du périmètre" />
         </button>
       </div>
-      <HeritageEdit
-        v-model:prop="etape.heritageProps.surface"
-        class="tablet-blob-2-3"
-        propId="surface"
-      >
+      <HeritageEdit v-model:prop="etape.heritageProps.surface" class="tablet-blob-2-3" propId="surface">
         <template #write>
-          <inputNumber
-            v-model="etape.surface"
-            min="0"
-            placeholder="0"
-            class="mb-s"
-          />
+          <inputNumber v-model="etape.surface" min="0" placeholder="0" class="mb-s" />
           <div v-if="etape.surface" class="h6">
             <label>
-              <input
-                v-model="etape.incertitudes.surface"
-                type="checkbox"
-                class="mr-xs"
-              />
+              <input v-model="etape.incertitudes.surface" type="checkbox" class="mr-xs" />
               Incertain
             </label>
           </div>
@@ -279,13 +177,13 @@ export default {
     PointsLotEdit,
     HeritageEdit,
     Points,
-    InputNumber
+    InputNumber,
   },
 
   props: {
     etape: { type: Object, default: () => ({}) },
     events: { type: Object, default: () => ({ saveKeyUp: true }) },
-    showTitle: { type: Boolean, default: true }
+    showTitle: { type: Boolean, default: true },
   },
   emits: ['complete-update', 'update:etape'],
 
@@ -306,7 +204,7 @@ export default {
 
     complete() {
       return this.etape.type.id !== 'mfr' || this.pointsTotal?.length > 3
-    }
+    },
   },
 
   watch: {
@@ -315,17 +213,12 @@ export default {
       handler() {
         this.etapeGeoSystemeOpposableIdUpdate()
       },
-      deep: true
+      deep: true,
     },
 
     etape: {
       handler: function (etape) {
-        if (
-          !etape.groupes ||
-          !etape.groupes[0] ||
-          !etape.groupes[0][0] ||
-          !etape.groupes[0][0].length
-        ) {
+        if (!etape.groupes || !etape.groupes[0] || !etape.groupes[0][0] || !etape.groupes[0][0].length) {
           etape.incertitudes.points = false
         }
 
@@ -333,8 +226,8 @@ export default {
           etape.incertitudes.surface = false
         }
       },
-      deep: true
-    }
+      deep: true,
+    },
   },
 
   created() {
@@ -345,11 +238,7 @@ export default {
     etapeGeoSystemeOpposableIdUpdate() {
       if (this.etape.geoSystemeIds.length < 2) {
         this.etape.geoSystemeOpposableId = ''
-      } else if (
-        this.etape.geoSystemeIds.length > 1 &&
-        (!this.etape.geoSystemeOpposableId ||
-          !this.etape.geoSystemeIds.includes(this.etape.geoSystemeOpposableId))
-      ) {
+      } else if (this.etape.geoSystemeIds.length > 1 && (!this.etape.geoSystemeOpposableId || !this.etape.geoSystemeIds.includes(this.etape.geoSystemeOpposableId))) {
         this.etape.geoSystemeOpposableId = this.etape.geoSystemeIds[0]
       }
     },
@@ -380,7 +269,7 @@ export default {
         contour: contourIndex + 1,
         point: this.etape.groupes[groupeIndex][contourIndex].length,
         references: this.referencesInit(),
-        subsidiaire: false
+        subsidiaire: false,
       })
     },
 
@@ -391,7 +280,7 @@ export default {
         point: this.etape.groupes[groupeIndex][contourIndex].length,
         references: [],
         subsidiaire: false,
-        lot: true
+        lot: true,
       })
     },
 
@@ -435,9 +324,7 @@ export default {
         this.clean(groupes, groupeIndex, contourIndex)
       } else if (groupeIndex > 0) {
         const point = points.splice(pointIndex, 1)[0]
-        groupes[groupeIndex - 1][groupes[groupeIndex - 1].length - 1].push(
-          point
-        )
+        groupes[groupeIndex - 1][groupes[groupeIndex - 1].length - 1].push(point)
         this.clean(groupes, groupeIndex, contourIndex)
       }
     },
@@ -448,8 +335,8 @@ export default {
           groupe: groupeIndex + 1,
           contour: 1,
           point: 1,
-          references: this.referencesInit()
-        }
+          references: this.referencesInit(),
+        },
       ])
     },
 
@@ -464,9 +351,9 @@ export default {
             groupe: this.etape.groupes.length,
             contour: 1,
             point: 1,
-            references: this.referencesInit()
-          }
-        ]
+            references: this.referencesInit(),
+          },
+        ],
       ])
     },
 
@@ -480,13 +367,13 @@ export default {
 
     pointsImport() {
       this.$store.commit('popupOpen', {
-        component: PointsImportPopup
+        component: PointsImportPopup,
       })
     },
 
     surfaceRefresh() {
       this.$store.dispatch('titreEtapeEdition/surfaceRefresh', this.etape)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/points-geo-systemes-edit.vue b/packages/ui/src/components/etape/points-geo-systemes-edit.vue
index 24959dc94..a771b49a7 100644
--- a/packages/ui/src/components/etape/points-geo-systemes-edit.vue
+++ b/packages/ui/src/components/etape/points-geo-systemes-edit.vue
@@ -1,29 +1,14 @@
 <template>
   <div>
     <h4 class="mb-s">Systèmes géographiques</h4>
-    <div
-      v-for="(etapeGeoSystemeId, etapeGeoSystemeIndex) in etape.geoSystemeIds"
-      :key="etapeGeoSystemeIndex"
-    >
+    <div v-for="(etapeGeoSystemeId, etapeGeoSystemeIndex) in etape.geoSystemeIds" :key="etapeGeoSystemeIndex">
       <div class="flex mb-s">
-        <select
-          v-model="etape.geoSystemeIds[etapeGeoSystemeIndex]"
-          class="p-s mr-s"
-          @change="geoSystemeUpdate(etapeGeoSystemeIndex)"
-        >
-          <option
-            v-for="geoSysteme in geoSystemes"
-            :key="geoSysteme.id"
-            :value="geoSysteme.id"
-            :disabled="etape.geoSystemeIds.includes(geoSysteme.id)"
-          >
+        <select v-model="etape.geoSystemeIds[etapeGeoSystemeIndex]" class="p-s mr-s" @change="geoSystemeUpdate(etapeGeoSystemeIndex)">
+          <option v-for="geoSysteme in geoSystemes" :key="geoSysteme.id" :value="geoSysteme.id" :disabled="etape.geoSystemeIds.includes(geoSysteme.id)">
             {{ geoSysteme.nom }} ({{ geoSysteme.id }})
           </option>
         </select>
-        <button
-          class="btn py-s px-m rnd-xs"
-          @click="geoSystemeRemove(etapeGeoSystemeIndex)"
-        >
+        <button class="btn py-s px-m rnd-xs" @click="geoSystemeRemove(etapeGeoSystemeIndex)">
           <Icon name="minus" size="M" />
         </button>
       </div>
@@ -32,22 +17,14 @@
         <div v-if="etape.geoSystemeIds.length > 1" class="tablet-blob-1-2">
           <div class="h6 mb">
             <label>
-              <input
-                v-model="etape.geoSystemeOpposableId"
-                type="radio"
-                :value="etapeGeoSystemeId"
-              />
+              <input v-model="etape.geoSystemeOpposableId" type="radio" :value="etapeGeoSystemeId" />
               Opposable
             </label>
           </div>
         </div>
       </div>
     </div>
-    <button
-      v-if="!etape.geoSystemeIds.some(id => !id)"
-      class="btn small rnd-xs py-s px-m full-x flex mb-s"
-      @click="geoSystemeAdd"
-    >
+    <button v-if="!etape.geoSystemeIds.some(id => !id)" class="btn small rnd-xs py-s px-m full-x flex mb-s" @click="geoSystemeAdd">
       <span class="mt-xxs">Ajouter un système géographique</span>
       <Icon name="plus" size="M" class="flex-right" />
     </button>
@@ -61,13 +38,13 @@ import { Icon } from '@/components/_ui/icon'
 export default {
   components: { Icon },
   props: {
-    etape: { type: Object, default: () => ({}) }
+    etape: { type: Object, default: () => ({}) },
   },
   emits: ['update:etape'],
   computed: {
     geoSystemes() {
       return sortedGeoSystemes
-    }
+    },
   },
 
   methods: {
@@ -86,9 +63,7 @@ export default {
         contours.forEach(points => {
           points.forEach(point => {
             if (!point.references[etapeGeoSystemeId]) {
-              point.references[etapeGeoSystemeId] = point.lot
-                ? []
-                : [null, null]
+              point.references[etapeGeoSystemeId] = point.lot ? [] : [null, null]
             }
           })
         })
@@ -97,7 +72,7 @@ export default {
       if (!this.etape.groupes.length) {
         this.etape.groupes.push([[]])
       }
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/points-import-popup.vue b/packages/ui/src/components/etape/points-import-popup.vue
index 7536442a5..b8316c1cc 100644
--- a/packages/ui/src/components/etape/points-import-popup.vue
+++ b/packages/ui/src/components/etape/points-import-popup.vue
@@ -10,33 +10,19 @@
       </div>
       <div class="tablet-blob-2-3">
         <select v-model="geoSystemeId" class="p-s">
-          <option
-            v-for="geoSysteme in geoSystemes"
-            :key="geoSysteme.id"
-            :value="geoSysteme.id"
-          >
-            {{ geoSysteme.nom }} ({{ geoSysteme.id }})
-          </option>
+          <option v-for="geoSysteme in geoSystemes" :key="geoSysteme.id" :value="geoSysteme.id">{{ geoSysteme.nom }} ({{ geoSysteme.id }})</option>
         </select>
       </div>
     </div>
 
     <div v-if="geoSystemeId">
-      <InputFile
-        class="btn-border small bg-alt p-s full-x rnd-xs mb-s"
-        accept=".shp,.geojson"
-        @change="fileChange"
-      />
-      <p class="h6 italic mt-0">
-        Seul les fichiers Shape (.shp) et GeoJson (.geojson) sont acceptés.
-      </p>
+      <InputFile class="btn-border small bg-alt p-s full-x rnd-xs mb-s" accept=".shp,.geojson" @change="fileChange" />
+      <p class="h6 italic mt-0">Seul les fichiers Shape (.shp) et GeoJson (.geojson) sont acceptés.</p>
     </div>
     <template #footer>
       <div v-if="!loading" class="tablet-blobs">
         <div class="tablet-blob-1-3 mb tablet-mb-0 flex-right">
-          <button class="btn-border rnd-xs p-s full-x" @click="cancel">
-            Annuler
-          </button>
+          <button class="btn-border rnd-xs p-s full-x" @click="cancel">Annuler</button>
         </div>
       </div>
       <div v-else class="p-s full-x bold">Dépôt en cours…</div>
@@ -52,12 +38,12 @@ import { sortedGeoSystemes } from 'camino-common/src/static/geoSystemes'
 export default {
   components: {
     Popup,
-    InputFile
+    InputFile,
   },
 
   data: function () {
     return {
-      geoSystemeId: null
+      geoSystemeId: null,
     }
   },
 
@@ -72,7 +58,7 @@ export default {
 
     geoSystemes() {
       return sortedGeoSystemes
-    }
+    },
   },
 
   created() {
@@ -86,12 +72,12 @@ export default {
   methods: {
     async fileChange({
       target: {
-        files: [file]
-      }
+        files: [file],
+      },
     }) {
       await this.$store.dispatch('titreEtapeEdition/pointsImport', {
         file,
-        geoSystemeId: this.geoSystemeId
+        geoSystemeId: this.geoSystemeId,
       })
     },
 
@@ -104,7 +90,7 @@ export default {
       if ((e.which || e.keyCode) === 27) {
         this.cancel()
       }
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/points-lot-edit.vue b/packages/ui/src/components/etape/points-lot-edit.vue
index 2db8b25f5..9a423bbd2 100644
--- a/packages/ui/src/components/etape/points-lot-edit.vue
+++ b/packages/ui/src/components/etape/points-lot-edit.vue
@@ -8,16 +8,8 @@
       <input v-model="point.description" type="text" class="p-s" />
     </div>
 
-    <h5>
-      Coordonnées en {{ etapeGeoSysteme.nom }} ({{ etapeGeoSystemeUniteNom }})
-    </h5>
-    <textarea
-      class="p-s mb-s mono"
-      :value="point.references.join('\n')"
-      placeholder="1,4769;47,3469"
-      @blur="pointsLotUpdate($event)"
-      @focus="pointsLotEdit"
-    />
+    <h5>Coordonnées en {{ etapeGeoSysteme.nom }} ({{ etapeGeoSystemeUniteNom }})</h5>
+    <textarea class="p-s mb-s mono" :value="point.references.join('\n')" placeholder="1,4769;47,3469" @blur="pointsLotUpdate($event)" @focus="pointsLotEdit" />
 
     <div class="h6 p-s">
       <ul class="list-prefix">
@@ -46,7 +38,7 @@ export default {
     point: { type: Object, default: () => ({}) },
     geoSystemeIds: { type: Array, required: true },
     geoSystemeOpposableId: { type: String, required: true },
-    events: { type: Object, default: () => ({ saveKeyUp: true }) }
+    events: { type: Object, default: () => ({ saveKeyUp: true }) },
   },
 
   computed: {
@@ -58,7 +50,7 @@ export default {
 
     etapeGeoSystemeUniteNom() {
       return Unites[this.etapeGeoSysteme.uniteId].nom
-    }
+    },
   },
 
   methods: {
@@ -76,7 +68,7 @@ export default {
       }
 
       this.events.saveKeyUp = true
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/points-point-edit.vue b/packages/ui/src/components/etape/points-point-edit.vue
index 8efdb359a..ec92261f2 100644
--- a/packages/ui/src/components/etape/points-point-edit.vue
+++ b/packages/ui/src/components/etape/points-point-edit.vue
@@ -15,9 +15,7 @@
     </div>
 
     <div class="h6 mb">
-      <label>
-        <input v-model="point.subsidiaire" type="checkbox" /> Subsidiaire
-      </label>
+      <label> <input v-model="point.subsidiaire" type="checkbox" /> Subsidiaire </label>
     </div>
 
     <PointReferenceEdit
@@ -40,17 +38,15 @@ export default {
   props: {
     point: { type: Object, default: () => ({}) },
     geoSystemeIds: { type: Array, required: true },
-    geoSystemeOpposableId: { type: String, required: false, default: undefined }
+    geoSystemeOpposableId: { type: String, required: false, default: undefined },
   },
 
   emits: ['update:point'],
 
   computed: {
     geoSystemes() {
-      return sortedGeoSystemes.filter(({ id }) =>
-        this.geoSystemeIds.includes(id)
-      )
-    }
-  }
+      return sortedGeoSystemes.filter(({ id }) => this.geoSystemeIds.includes(id))
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/points-point-reference-edit.vue b/packages/ui/src/components/etape/points-point-reference-edit.vue
index 114413920..7e6286085 100644
--- a/packages/ui/src/components/etape/points-point-reference-edit.vue
+++ b/packages/ui/src/components/etape/points-point-reference-edit.vue
@@ -3,11 +3,7 @@
     <div class="mb tablet-blob-1-3">
       <h5>
         Système
-        <span
-          v-if="geoSystemeOpposableId === geoSysteme.id"
-          class="bg-info py-xxs px-xs rnd-xs color-bg ml-xxs"
-          >Opposable</span
-        >
+        <span v-if="geoSystemeOpposableId === geoSysteme.id" class="bg-info py-xxs px-xs rnd-xs color-bg ml-xxs">Opposable</span>
       </h5>
 
       <p class="py-s mb-0 h6 bold">
@@ -16,19 +12,11 @@
     </div>
     <div class="mb tablet-blob-1-3">
       <h5>X ({{ geoSystemeUniteNom }})</h5>
-      <inputNumber
-        v-model="pointReference.x"
-        :negative="true"
-        placeholder="0,01"
-      />
+      <inputNumber v-model="pointReference.x" :negative="true" placeholder="0,01" />
     </div>
     <div class="mb tablet-blob-1-3">
       <h5>Y ({{ geoSystemeUniteNom }})</h5>
-      <inputNumber
-        v-model="pointReference.y"
-        :negative="true"
-        placeholder="0,01"
-      />
+      <inputNumber v-model="pointReference.y" :negative="true" placeholder="0,01" />
     </div>
   </div>
 </template>
@@ -45,22 +33,20 @@ export default {
     geoSystemeOpposableId: {
       type: String,
       required: false,
-      default: undefined
+      default: undefined,
     },
-    pointReferences: { type: Object, required: true }
+    pointReferences: { type: Object, required: true },
   },
 
   emits: ['update:pointReferences'],
 
   computed: {
     pointReference() {
-      return this.pointReferences[this.geoSysteme.id]
-        ? this.pointReferences[this.geoSysteme.id]
-        : { id: undefined, x: 0, y: 0 }
+      return this.pointReferences[this.geoSysteme.id] ? this.pointReferences[this.geoSysteme.id] : { id: undefined, x: 0, y: 0 }
     },
     geoSystemeUniteNom() {
       return Unites[this.geoSysteme.uniteId].nom
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/preview.vue b/packages/ui/src/components/etape/preview.vue
index aca831faa..ece3d01b7 100644
--- a/packages/ui/src/components/etape/preview.vue
+++ b/packages/ui/src/components/etape/preview.vue
@@ -1,23 +1,9 @@
 <template>
-  <Accordion
-    :id="etape.id"
-    :opened="opened"
-    class="mb-s"
-    :slotDefault="hasSections || hasFondamentales || hasDocuments"
-    :slotButtons="canEdit"
-    @close="close"
-    @toggle="toggle"
-  >
+  <Accordion :id="etape.id" :opened="opened" class="mb-s" :slotDefault="hasSections || hasFondamentales || hasDocuments" :slotButtons="canEdit" @close="close" @toggle="toggle">
     <template #title>
       <h5>
         {{ dateFormat(etape.date) }}
-        <Tag
-          v-if="etape.incertitudes && etape.incertitudes.date"
-          :mini="true"
-          color="bg-info"
-          class="ml-xs"
-          text="Incertain"
-        />
+        <Tag v-if="etape.incertitudes && etape.incertitudes.date" :mini="true" color="bg-info" class="ml-xs" text="Incertain" />
       </h5>
 
       <h3 class="cap-first mb-s">{{ etape.type.nom }}</h3>
@@ -30,13 +16,7 @@
     </template>
 
     <template v-if="canEdit" #buttons>
-      <button
-        v-if="etapeIsDemandeEnConstruction"
-        class="btn btn-primary flex small rnd-0"
-        :disabled="!etape.deposable"
-        :class="{ disabled: !etape.deposable }"
-        @click="etapeDepot"
-      >
+      <button v-if="etapeIsDemandeEnConstruction" class="btn btn-primary flex small rnd-0" :disabled="!etape.deposable" :class="{ disabled: !etape.deposable }" @click="etapeDepot">
         <span class="mt-xxs mb-xxs">Déposer…</span>
       </button>
 
@@ -53,25 +33,12 @@
       <div v-if="hasFondamentales">
         <Fondamentales :etape="etape" />
 
-        <Perimetre
-          v-if="etape.points && etape.points.length"
-          :etape="etape"
-          :titreTypeId="titreTypeId"
-          :geojsonMultiPolygon="etape.geojsonMultiPolygon"
-          :incertitude="!!etape.incertitudes?.points"
-        />
+        <Perimetre v-if="etape.points && etape.points.length" :etape="etape" :titreTypeId="titreTypeId" :geojsonMultiPolygon="etape.geojsonMultiPolygon" :incertitude="!!etape.incertitudes?.points" />
         <hr class="mx--" />
       </div>
 
       <div v-if="etape.type.sections?.length">
-        <UiSection
-          v-for="s in etape.type.sections"
-          :key="s.id"
-          :section="s"
-          :contenu="etape.contenu ? etape.contenu[s.id] : {}"
-          :date="etape.date"
-          @file-download="fileDownload($event)"
-        />
+        <UiSection v-for="s in etape.type.sections" :key="s.id" :section="s" :contenu="etape.contenu ? etape.contenu[s.id] : {}" :date="etape.date" @file-download="fileDownload($event)" />
 
         <hr class="mx--" />
       </div>
@@ -109,9 +76,7 @@
         <hr class="mx--" />
       </div>
 
-      <div
-        v-if="etape.decisionsAnnexesSections && etape.decisionsAnnexesContenu"
-      >
+      <div v-if="etape.decisionsAnnexesSections && etape.decisionsAnnexesContenu">
         <UiSection
           v-for="s in etape.decisionsAnnexesSections"
           :key="s.id"
@@ -125,13 +90,8 @@
       </div>
 
       <div v-if="canDownloadZip" class="flex">
-        <span class="small bold mb-0 mt-s flex-grow text-right mr-l pt-xs">
-          Télécharger l'ensemble de la demande dans un fichier .zip
-        </span>
-        <button
-          class="btn-border rnd-xs flex-right py-s px-m mb-m"
-          @click="demandeDownload"
-        >
+        <span class="small bold mb-0 mt-s flex-grow text-right mr-l pt-xs"> Télécharger l'ensemble de la demande dans un fichier .zip </span>
+        <button class="btn-border rnd-xs flex-right py-s px-m mb-m" @click="demandeDownload">
           <Icon size="M" name="download" />
         </button>
       </div>
@@ -167,7 +127,7 @@ export default {
     Perimetre,
     Fondamentales,
     UiSection,
-    Documents
+    Documents,
   },
 
   props: {
@@ -179,7 +139,7 @@ export default {
     opened: { type: Boolean, default: false },
     titreStatutId: { type: String, required: true },
     titreAdministrations: { type: Array, required: true },
-    user: { type: Object, required: true }
+    user: { type: Object, required: true },
   },
 
   emits: ['close', 'toggle'],
@@ -189,14 +149,12 @@ export default {
       return {
         name: 'titre',
         section: 'etapes',
-        id: this.titreId
+        id: this.titreId,
       }
     },
 
     documentPopupTitle() {
-      return `${cap(this.titreNom)} | ${cap(this.demarcheType.nom)} | ${cap(
-        this.etape.type.nom
-      )}`
+      return `${cap(this.titreNom)} | ${cap(this.demarcheType.nom)} | ${cap(this.etape.type.nom)}`
     },
 
     etapeIsDemandeEnConstruction() {
@@ -229,9 +187,7 @@ export default {
     },
 
     statutNom() {
-      return this.etapeIsDemandeEnConstruction && !this.etape.deposable
-        ? `${this.etapeStatut.nom} (incomplet)`
-        : this.etapeStatut.nom
+      return this.etapeIsDemandeEnConstruction && !this.etape.deposable ? `${this.etapeStatut.nom} (incomplet)` : this.etapeStatut.nom
     },
 
     userIsAdmin() {
@@ -239,10 +195,7 @@ export default {
     },
 
     canDownloadZip() {
-      return (
-        this.etape.type.id === 'mfr' &&
-        (this.hasDocuments || this.hasJustificatifs)
-      )
+      return this.etape.type.id === 'mfr' && (this.hasDocuments || this.hasJustificatifs)
     },
     etapeStatut() {
       return EtapesStatuts[this.etape.statutId]
@@ -271,7 +224,7 @@ export default {
         { typeId: this.titreTypeId, titreStatutId: this.titreStatutId },
         'modification'
       )
-    }
+    },
   },
 
   methods: {
@@ -294,13 +247,13 @@ export default {
     etapeEdit() {
       this.$router.push({
         name: 'etape-edition',
-        params: { id: this.etape.slug }
+        params: { id: this.etape.slug },
       })
 
       this.eventTrack({
         categorie: 'titre-etape',
         action: 'titre-etape_editer',
-        nom: this.$route.params.id
+        nom: this.$route.params.id,
       })
     },
 
@@ -309,14 +262,14 @@ export default {
         component: DeposePopup,
         props: {
           etapeId: this.etape.id,
-          onDepotDone: () => this.$store.dispatch(`titre/get`, this.titreId)
-        }
+          onDepotDone: () => this.$store.dispatch(`titre/get`, this.titreId),
+        },
       })
 
       this.eventTrack({
         categorie: 'titre-etape',
         action: 'titre-etape_depot',
-        nom: this.$route.params.id
+        nom: this.$route.params.id,
       })
     },
 
@@ -328,14 +281,14 @@ export default {
           etapeId: this.etape.id,
           demarcheTypeNom: this.demarcheType.nom,
           titreNom: this.titreNom,
-          titreTypeNom: TitresTypesTypes[getTitreTypeType(this.titreTypeId)].nom
-        }
+          titreTypeNom: TitresTypesTypes[getTitreTypeType(this.titreTypeId)].nom,
+        },
       })
 
       this.eventTrack({
         categorie: 'titre-etape',
         action: 'supprimer une étape',
-        nom: this.$route.params.id
+        nom: this.$route.params.id,
       })
     },
 
@@ -347,7 +300,7 @@ export default {
 
     fileDownload(fileName) {
       this.$store.dispatch('download', `/etape/${this.etape.id}/${fileName}`)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/prop-duree.vue b/packages/ui/src/components/etape/prop-duree.vue
index 883e0272e..a72e12f34 100644
--- a/packages/ui/src/components/etape/prop-duree.vue
+++ b/packages/ui/src/components/etape/prop-duree.vue
@@ -1,8 +1,6 @@
 <template>
   <span>
-    <span v-if="dureeFormated.ans">{{
-      `${dureeFormated.ans} an${dureeFormated.ans > 1 ? 's' : ''}`
-    }}</span>
+    <span v-if="dureeFormated.ans">{{ `${dureeFormated.ans} an${dureeFormated.ans > 1 ? 's' : ''}` }}</span>
     <span v-if="dureeFormated.ans && dureeFormated.mois"> et </span>
     <span v-if="dureeFormated.mois">{{ `${dureeFormated.mois} mois` }}</span>
   </span>
@@ -11,16 +9,16 @@
 <script>
 export default {
   props: {
-    duree: { type: Number, default: null }
+    duree: { type: Number, default: null },
   },
 
   computed: {
     dureeFormated() {
       return {
         ans: this.duree && Math.floor(this.duree / 12),
-        mois: this.duree && Math.floor(this.duree % 12)
+        mois: this.duree && Math.floor(this.duree % 12),
       }
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/pure-form-save-btn.stories.ts b/packages/ui/src/components/etape/pure-form-save-btn.stories.ts
index 9aec590d3..b65dde430 100644
--- a/packages/ui/src/components/etape/pure-form-save-btn.stories.ts
+++ b/packages/ui/src/components/etape/pure-form-save-btn.stories.ts
@@ -5,7 +5,7 @@ import { action } from '@storybook/addon-actions'
 const meta: Meta = {
   title: 'Components/Etape/FormSaveBtn',
   component: PureFormSaveBtn,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -20,12 +20,11 @@ const Template: Story<Props> = (args: Props) => ({
   setup() {
     return { args }
   },
-  template:
-    '<PureFormSaveBtn v-bind="args" @save="onSave" @depose="onDepose" />',
+  template: '<PureFormSaveBtn v-bind="args" @save="onSave" @depose="onDepose" />',
   methods: {
     onSave: action('save'),
-    onDepose: action('depose')
-  }
+    onDepose: action('depose'),
+  },
 })
 
 export const DemandeEnConstructionIncomplete = Template.bind({})
@@ -33,7 +32,7 @@ DemandeEnConstructionIncomplete.args = {
   canSave: true,
   showDepose: true,
   canDepose: false,
-  alertes: [{ message: 'alerte', url: 'google.com' }]
+  alertes: [{ message: 'alerte', url: 'google.com' }],
 }
 
 export const DemandeEnConstructionComplete = Template.bind({})
@@ -41,7 +40,7 @@ DemandeEnConstructionComplete.args = {
   canSave: true,
   showDepose: true,
   canDepose: true,
-  alertes: [{ message: 'alerte', url: 'google.com' }]
+  alertes: [{ message: 'alerte', url: 'google.com' }],
 }
 
 export const CompletudeDeLaDemandeImcomplete = Template.bind({})
@@ -49,7 +48,7 @@ CompletudeDeLaDemandeImcomplete.args = {
   canSave: false,
   showDepose: false,
   canDepose: true,
-  alertes: [{ message: 'alerte', url: 'google.com' }]
+  alertes: [{ message: 'alerte', url: 'google.com' }],
 }
 
 export const CompletudeDeLaDemandeComplete = Template.bind({})
@@ -57,12 +56,12 @@ CompletudeDeLaDemandeComplete.args = {
   canSave: true,
   showDepose: false,
   canDepose: true,
-  alertes: [{ message: 'alerte', url: 'google.com' }]
+  alertes: [{ message: 'alerte', url: 'google.com' }],
 }
 
 export const SansMessage = Template.bind({})
 SansMessage.args = {
   canSave: true,
   showDepose: true,
-  canDepose: true
+  canDepose: true,
 }
diff --git a/packages/ui/src/components/etape/pure-form-save-btn.vue b/packages/ui/src/components/etape/pure-form-save-btn.vue
index 9cdb1d817..20049b2b5 100644
--- a/packages/ui/src/components/etape/pure-form-save-btn.vue
+++ b/packages/ui/src/components/etape/pure-form-save-btn.vue
@@ -1,9 +1,6 @@
 <template>
   <div class="flex flex-direction-column full-x">
-    <ul
-      v-if="alertes && alertes.length"
-      class="bg-warning color-bg list-none p-s bold"
-    >
+    <ul v-if="alertes && alertes.length" class="bg-warning color-bg list-none p-s bold">
       <li v-for="alerte in alertes" :key="alerte.message" class="flex">
         {{ alerte.message }}
         <a v-if="alerte.url" :href="alerte.url" target="_blank" class="ml-s">
@@ -15,24 +12,10 @@
       <div class="tablet-blob-1-3"></div>
       <div v-if="!showDepose" class="tablet-blob-1-3"></div>
       <div class="tablet-blob-1-3">
-        <button
-          class="btn"
-          :class="[showDepose ? 'btn-secondary' : 'btn-primary']"
-          :disabled="!canSave"
-          @click="emit('save')"
-        >
-          Enregistrer
-        </button>
+        <button class="btn" :class="[showDepose ? 'btn-secondary' : 'btn-primary']" :disabled="!canSave" @click="emit('save')">Enregistrer</button>
       </div>
       <div class="tablet-blob-1-3">
-        <button
-          v-if="showDepose"
-          class="btn btn-primary"
-          :disabled="!canDepose"
-          @click="emit('depose')"
-        >
-          Enregistrer et déposer
-        </button>
+        <button v-if="showDepose" class="btn btn-primary" :disabled="!canDepose" @click="emit('depose')">Enregistrer et déposer</button>
       </div>
     </div>
   </div>
diff --git a/packages/ui/src/components/etape/remove.vue b/packages/ui/src/components/etape/remove.vue
index 4f15eb4cd..5aa7b4ba9 100644
--- a/packages/ui/src/components/etape/remove.vue
+++ b/packages/ui/src/components/etape/remove.vue
@@ -3,8 +3,7 @@
     <template #header>
       <div>
         <h6>
-          <span class="cap-first"> {{ titreNom }} </span
-          ><span class="color-neutral"> | </span
+          <span class="cap-first"> {{ titreNom }} </span><span class="color-neutral"> | </span
           ><span class="cap-first">
             {{ demarcheTypeNom }}
           </span>
@@ -15,26 +14,18 @@
 
     <p class="bold">
       Souhaitez vous supprimer l'étape
-      <span class="color-inverse">{{ etapeTypeNom }}</span> de la démarche
-      <span class="color-inverse">{{ demarcheTypeNom }}</span> du titre
+      <span class="color-inverse">{{ etapeTypeNom }}</span> de la démarche <span class="color-inverse">{{ demarcheTypeNom }}</span> du titre
       <span class="color-inverse">{{ titreNom }} ({{ titreTypeNom }})</span> ?
     </p>
-    <div class="bg-warning color-bg p-s mb-l">
-      <span class="bold"> Attention </span>: cette opération est définitive et
-      ne peut pas être annulée.
-    </div>
+    <div class="bg-warning color-bg p-s mb-l"><span class="bold"> Attention </span>: cette opération est définitive et ne peut pas être annulée.</div>
 
     <template #footer>
       <div v-if="!loading" class="tablet-blobs">
         <div class="tablet-blob-1-3 mb tablet-mb-0">
-          <button class="btn-border rnd-xs p-s full-x" @click="cancel">
-            Annuler
-          </button>
+          <button class="btn-border rnd-xs p-s full-x" @click="cancel">Annuler</button>
         </div>
         <div class="tablet-blob-2-3">
-          <button class="btn-flash rnd-xs p-s full-x" @click="remove">
-            Supprimer
-          </button>
+          <button class="btn-flash rnd-xs p-s full-x" @click="remove">Supprimer</button>
         </div>
       </div>
       <div v-else class="p-s full-x bold">Suppression en cours…</div>
@@ -49,30 +40,30 @@ export default {
   name: 'CaminoEtapeRemovePopup',
 
   components: {
-    Popup
+    Popup,
   },
 
   props: {
     etapeTypeNom: {
       type: String,
-      default: ''
+      default: '',
     },
     demarcheTypeNom: {
       type: String,
-      default: ''
+      default: '',
     },
     etapeId: {
       type: String,
-      default: ''
+      default: '',
     },
     titreNom: {
       type: String,
-      default: ''
+      default: '',
     },
     titreTypeNom: {
       type: String,
-      default: ''
-    }
+      default: '',
+    },
   },
 
   computed: {
@@ -82,7 +73,7 @@ export default {
 
     messages() {
       return this.$store.state.popup.messages
-    }
+    },
   },
 
   created() {
@@ -113,7 +104,7 @@ export default {
 
     errorsRemove() {
       // this.$store.commit('utilisateur/loginMessagesRemove')
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/section-element-edit.vue b/packages/ui/src/components/etape/section-element-edit.vue
index 8f39498b9..24d54fe61 100644
--- a/packages/ui/src/components/etape/section-element-edit.vue
+++ b/packages/ui/src/components/etape/section-element-edit.vue
@@ -13,19 +13,14 @@
         class="mb"
         :class="{
           'tablet-blob-2-3': element.nom,
-          'tablet-blob-1': !element.nom
+          'tablet-blob-1': !element.nom,
         }"
         :propId="element.id"
         :sectionId="sectionId"
         :isArray="element.type === 'checkboxes'"
       >
         <template #write>
-          <SectionElementEdit
-            :contenu="contenu"
-            class="mb-s"
-            :element="element"
-            @update:contenu="newValue => $emit('update:contenu', newValue)"
-          />
+          <SectionElementEdit :contenu="contenu" class="mb-s" :element="element" @update:contenu="newValue => $emit('update:contenu', newValue)" />
         </template>
         <template #read>
           <p class="pt-s py-xs mb-0">
@@ -50,14 +45,14 @@ import SectionElementHeritageEdit from './section-element-heritage-edit.vue'
 export default {
   components: {
     SectionElementEdit,
-    SectionElementHeritageEdit
+    SectionElementHeritageEdit,
   },
 
   props: {
     contenu: { type: Object, required: true },
     element: { type: Object, required: true },
     heritage: { type: Object, required: true },
-    sectionId: { type: String, required: true }
+    sectionId: { type: String, required: true },
   },
   emits: ['update:contenu'],
 
@@ -67,11 +62,8 @@ export default {
     },
 
     valeur() {
-      return valeurFind(
-        this.element,
-        this.heritage[this.element.id].etape.contenu[this.sectionId]
-      )
-    }
-  }
+      return valeurFind(this.element, this.heritage[this.element.id].etape.contenu[this.sectionId])
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/section-element-heritage-edit.vue b/packages/ui/src/components/etape/section-element-heritage-edit.vue
index d52034622..2210a4350 100644
--- a/packages/ui/src/components/etape/section-element-heritage-edit.vue
+++ b/packages/ui/src/components/etape/section-element-heritage-edit.vue
@@ -6,17 +6,11 @@
       <div v-else class="border p-s mb-s">Non renseigné</div>
       <p class="h6 italic mb-s">
         Hérité de :
-        <span class="cap-first">{{ prop.etape.type.nom }}</span> ({{
-          dateFormat(prop.etape.date)
-        }})
+        <span class="cap-first">{{ prop.etape.type.nom }}</span> ({{ dateFormat(prop.etape.date) }})
       </p>
     </div>
     <slot />
-    <button
-      v-if="prop.etape"
-      class="btn full-x rnd-xs py-s px-m small mb-s"
-      @click="prop.actif = !prop.actif"
-    >
+    <button v-if="prop.etape" class="btn full-x rnd-xs py-s px-m small mb-s" @click="prop.actif = !prop.actif">
       {{ buttonText }}
     </button>
   </div>
@@ -35,15 +29,10 @@ const props = defineProps<{
   sectionId: string
 }>()
 
-const buttonText = computed<string>(() =>
-  props.prop.actif ? 'Modifier' : `Hériter de l'étape précédente`
-)
+const buttonText = computed<string>(() => (props.prop.actif ? 'Modifier' : `Hériter de l'étape précédente`))
 
 const hasHeritage = computed<boolean>(() => {
-  const contenu =
-    props.prop.etape &&
-    props.prop.etape.contenu &&
-    props.prop.etape.contenu[props.sectionId]
+  const contenu = props.prop.etape && props.prop.etape.contenu && props.prop.etape.contenu[props.sectionId]
 
   return hasValeurCheck(props.propId, contenu)
 })
diff --git a/packages/ui/src/components/etape/sections-edit.vue b/packages/ui/src/components/etape/sections-edit.vue
index 7623ed6c7..d2b0c57d4 100644
--- a/packages/ui/src/components/etape/sections-edit.vue
+++ b/packages/ui/src/components/etape/sections-edit.vue
@@ -3,47 +3,36 @@
     <div v-for="s in sections" :key="s.id">
       <h3 v-if="s.nom">{{ s.nom }}</h3>
 
-      <SectionElementEdit
-        v-for="e in s.elements"
-        :key="e.id"
-        v-model:contenu="contenu[s.id]"
-        :element="e"
-        :heritage="etape.heritageContenu[s.id]"
-        :sectionId="s.id"
-      />
+      <SectionElementEdit v-for="e in s.elements" :key="e.id" v-model:contenu="contenu[s.id]" :element="e" :heritage="etape.heritageContenu[s.id]" :sectionId="s.id" />
     </div>
   </div>
 </template>
 
 <script>
-import {
-  elementContenuBuild,
-  contenuBuild,
-  contenuCompleteCheck
-} from '@/utils/contenu'
+import { elementContenuBuild, contenuBuild, contenuCompleteCheck } from '@/utils/contenu'
 import SectionElementEdit from './section-element-edit.vue'
 
 export default {
   components: {
-    SectionElementEdit
+    SectionElementEdit,
   },
 
   props: {
     sections: { type: Array, required: true },
-    etape: { type: Object, required: true }
+    etape: { type: Object, required: true },
   },
 
   emits: ['complete-update', 'sections-update'],
   data() {
     return {
-      contenu: {}
+      contenu: {},
     }
   },
 
   computed: {
     complete() {
       return contenuCompleteCheck(this.sections, this.contenu)
-    }
+    },
   },
 
   watch: {
@@ -52,10 +41,10 @@ export default {
         this.etape.contenu = elementContenuBuild(this.sections, contenu)
         this.$emit('sections-update')
       },
-      deep: true
+      deep: true,
     },
 
-    complete: 'completeUpdate'
+    complete: 'completeUpdate',
   },
 
   created() {
@@ -66,7 +55,7 @@ export default {
   methods: {
     completeUpdate() {
       this.$emit('complete-update', this.complete)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/etape/substances-edit.stories.ts b/packages/ui/src/components/etape/substances-edit.stories.ts
index 9d9b62f1f..b3a3026c5 100644
--- a/packages/ui/src/components/etape/substances-edit.stories.ts
+++ b/packages/ui/src/components/etape/substances-edit.stories.ts
@@ -1,21 +1,13 @@
 import SubstancesEdit from './substances-edit.vue'
 import { Meta, Story } from '@storybook/vue3'
 import { toCaminoDate } from 'camino-common/src/date'
-import {
-  EtapeWithIncertitudesAndHeritage,
-  EtapeFondamentale
-} from 'camino-common/src/etape'
+import { EtapeWithIncertitudesAndHeritage, EtapeFondamentale } from 'camino-common/src/etape'
 import { DomaineId } from 'camino-common/src/static/domaines'
-import {
-  SubstanceLegaleId,
-  SubstancesLegale
-} from 'camino-common/src/static/substancesLegales'
+import { SubstanceLegaleId, SubstancesLegale } from 'camino-common/src/static/substancesLegales'
 
 type Props = {
   substances: (SubstanceLegaleId | undefined)[]
-  heritageProps: EtapeWithIncertitudesAndHeritage<
-    Pick<EtapeFondamentale, 'substances' | 'type' | 'date'>
-  >['heritageProps']
+  heritageProps: EtapeWithIncertitudesAndHeritage<Pick<EtapeFondamentale, 'substances' | 'type' | 'date'>>['heritageProps']
   incertitudes: { substances: boolean }
   domaineId: DomaineId
 }
@@ -23,7 +15,7 @@ type Props = {
 const meta: Meta = {
   title: 'Components/Etape/SubstancesEdit',
   component: SubstancesEdit,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -33,9 +25,9 @@ const Template: Story<Props> = (args: Props) => ({
     return { args }
   },
   data: () => ({
-    substances: ['auru']
+    substances: ['auru'],
   }),
-  template: `<SubstancesEdit  v-bind="args" :substances='substances'/>`
+  template: `<SubstancesEdit  v-bind="args" :substances='substances'/>`,
 })
 const heritageProps: Props['heritageProps']['substances'] = {
   actif: true,
@@ -43,19 +35,19 @@ const heritageProps: Props['heritageProps']['substances'] = {
     incertitudes: { substances: true },
     substances: [SubstancesLegale.auru.id],
     date: toCaminoDate('2020-01-01'),
-    type: { nom: 'Demande', id: 'aac' }
-  }
+    type: { nom: 'Demande', id: 'aac' },
+  },
 }
 export const SansHeritage = Template.bind({})
 SansHeritage.args = {
   domaineId: 'm',
   heritageProps: { substances: { ...heritageProps, actif: false } },
-  incertitudes: { substances: false }
+  incertitudes: { substances: false },
 }
 
 export const AvecHeritage = Template.bind({})
 AvecHeritage.args = {
   domaineId: 'm',
   heritageProps: { substances: { ...heritageProps } },
-  incertitudes: { substances: true }
+  incertitudes: { substances: true },
 }
diff --git a/packages/ui/src/components/etape/substances-edit.vue b/packages/ui/src/components/etape/substances-edit.vue
index 285b65960..16a51f39f 100644
--- a/packages/ui/src/components/etape/substances-edit.vue
+++ b/packages/ui/src/components/etape/substances-edit.vue
@@ -6,26 +6,17 @@
         <div v-for="(_substance, n) in substances" :key="n">
           <div class="flex mb-s">
             <select v-model="substances[n]" class="p-s mr-s">
-              <option
-                v-for="s in substancesByDomaine"
-                :key="s.id"
-                :value="s.id"
-                :disabled="substances.some(substanceId => substanceId === s.id)"
-              >
+              <option v-for="s in substancesByDomaine" :key="s.id" :value="s.id" :disabled="substances.some(substanceId => substanceId === s.id)">
                 {{ s.nom }}
               </option>
             </select>
-            <button
-              v-if="substancesLength && n + 1 < substancesLength"
-              class="btn-border py-s px-m rnd-l-xs"
-              @click="substanceMoveDown(n)"
-            >
+            <button v-if="substancesLength && n + 1 < substancesLength" class="btn-border py-s px-m rnd-l-xs" @click="substanceMoveDown(n)">
               <Icon size="M" name="move-down" />
             </button>
             <button
               v-if="substancesLength && n > 0 && substances[n]"
               :class="{
-                'rnd-l-xs': !(substancesLength && n + 1 < substancesLength)
+                'rnd-l-xs': !(substancesLength && n + 1 < substancesLength),
               }"
               class="btn-border py-s px-m"
               @click="substanceMoveUp(n)"
@@ -34,7 +25,7 @@
             </button>
             <button
               :class="{
-                'rnd-l-xs': !substances[n] || substancesLength === 1
+                'rnd-l-xs': !substances[n] || substancesLength === 1,
               }"
               class="btn py-s px-m rnd-r-xs"
               @click="substanceRemove(n)"
@@ -44,22 +35,14 @@
           </div>
         </div>
 
-        <button
-          v-if="substances?.every(substanceId => !!substanceId)"
-          class="btn small rnd-xs py-s px-m full-x flex mb-s"
-          @click="substanceAdd"
-        >
+        <button v-if="substances?.every(substanceId => !!substanceId)" class="btn small rnd-xs py-s px-m full-x flex mb-s" @click="substanceAdd">
           <span class="mt-xxs">Ajouter une substance</span>
           <Icon name="plus" size="M" class="flex-right" />
         </button>
 
         <div v-if="substancesLength" class="h6">
           <label>
-            <input
-              v-model="incertitudes.substances"
-              type="checkbox"
-              class="mr-xs"
-            />
+            <input v-model="incertitudes.substances" type="checkbox" class="mr-xs" />
             Incertain
           </label>
         </div>
@@ -72,47 +55,28 @@
   </div>
 </template>
 <script setup lang="ts">
-import {
-  SubstancesLegales,
-  SubstancesLegale,
-  SubstanceLegaleId
-} from 'camino-common/src/static/substancesLegales'
+import { SubstancesLegales, SubstancesLegale, SubstanceLegaleId } from 'camino-common/src/static/substancesLegales'
 import { computed } from 'vue'
 import HeritageEdit from '@/components/etape/heritage-edit.vue'
 import { TagList } from '@/components/_ui/tag-list'
 import { Icon } from '@/components/_ui/icon'
 import { DomaineId } from 'camino-common/src/static/domaines'
-import {
-  EtapeFondamentale,
-  EtapeWithIncertitudesAndHeritage
-} from 'camino-common/src/etape'
+import { EtapeFondamentale, EtapeWithIncertitudesAndHeritage } from 'camino-common/src/etape'
 
 export type Props = {
   substances: (SubstanceLegaleId | undefined)[]
-  heritageProps: EtapeWithIncertitudesAndHeritage<
-    Pick<EtapeFondamentale, 'substances' | 'type' | 'date'>
-  >['heritageProps']
+  heritageProps: EtapeWithIncertitudesAndHeritage<Pick<EtapeFondamentale, 'substances' | 'type' | 'date'>>['heritageProps']
   incertitudes: { substances: boolean }
   domaineId: DomaineId
 }
 const props = defineProps<Props>()
 
-const substancesLength = computed(
-  () => props.substances?.filter(substanceId => substanceId).length
-)
+const substancesLength = computed(() => props.substances?.filter(substanceId => substanceId).length)
 
-const substancesByDomaine = computed(() =>
-  SubstancesLegales.filter(({ domaineIds }) =>
-    domaineIds.includes(props.domaineId)
-  ).sort((a, b) => a.nom.localeCompare(b.nom))
-)
+const substancesByDomaine = computed(() => SubstancesLegales.filter(({ domaineIds }) => domaineIds.includes(props.domaineId)).sort((a, b) => a.nom.localeCompare(b.nom)))
 
 const substanceNoms = computed<string[]>(() => {
-  return (
-    props.heritageProps.substances.etape?.substances
-      .filter((substanceId): substanceId is SubstanceLegaleId => !!substanceId)
-      .map(substanceId => SubstancesLegale[substanceId].nom) || []
-  )
+  return props.heritageProps.substances.etape?.substances.filter((substanceId): substanceId is SubstanceLegaleId => !!substanceId).map(substanceId => SubstancesLegale[substanceId].nom) || []
 })
 
 const substanceAdd = () => {
diff --git a/packages/ui/src/components/etape/type-edit.stories.tsx b/packages/ui/src/components/etape/type-edit.stories.tsx
index 12d2490f7..0ca857332 100644
--- a/packages/ui/src/components/etape/type-edit.stories.tsx
+++ b/packages/ui/src/components/etape/type-edit.stories.tsx
@@ -1,16 +1,13 @@
 import { TypeEdit } from './type-edit'
 import { Meta, Story } from '@storybook/vue3'
 import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts'
-import {
-  ETAPES_TYPES,
-  etapesTypesIds
-} from 'camino-common/src/static/etapesTypes'
+import { ETAPES_TYPES, etapesTypesIds } from 'camino-common/src/static/etapesTypes'
 import { action } from '@storybook/addon-actions'
 
 const meta: Meta = {
   title: 'Components/Etape/TypeEdit',
   component: TypeEdit,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -24,7 +21,7 @@ export const Simple: Story = () => (
     etapesTypesIds={etapesTypesIds}
     etape={{
       statutId: ETAPES_STATUTS.EN_CONSTRUCTION,
-      type: { id: ETAPES_TYPES.demande }
+      type: { id: ETAPES_TYPES.demande },
     }}
   />
 )
@@ -36,7 +33,7 @@ export const DemandeAvecUnSeulStatut: Story = () => (
     etapesTypesIds={etapesTypesIds}
     etape={{
       statutId: null,
-      type: { id: ETAPES_TYPES.classementSansSuite }
+      type: { id: ETAPES_TYPES.classementSansSuite },
     }}
   />
 )
@@ -48,7 +45,7 @@ export const DemandeSansStatut: Story = () => (
     etapesTypesIds={etapesTypesIds}
     etape={{
       statutId: null,
-      type: { id: ETAPES_TYPES.demande }
+      type: { id: ETAPES_TYPES.demande },
     }}
   />
 )
@@ -60,7 +57,7 @@ export const DemandeEnConstruction: Story = () => (
     etapesTypesIds={etapesTypesIds}
     etape={{
       statutId: ETAPES_STATUTS.EN_CONSTRUCTION,
-      type: { id: ETAPES_TYPES.demande }
+      type: { id: ETAPES_TYPES.demande },
     }}
   />
 )
diff --git a/packages/ui/src/components/etape/type-edit.tsx b/packages/ui/src/components/etape/type-edit.tsx
index 91de3fead..59332a488 100644
--- a/packages/ui/src/components/etape/type-edit.tsx
+++ b/packages/ui/src/components/etape/type-edit.tsx
@@ -1,13 +1,5 @@
-import {
-  EtapeStatut,
-  EtapeStatutId,
-  isStatut
-} from 'camino-common/src/static/etapesStatuts'
-import {
-  EtapesTypes,
-  EtapeType,
-  EtapeTypeId
-} from 'camino-common/src/static/etapesTypes'
+import { EtapeStatut, EtapeStatutId, isStatut } from 'camino-common/src/static/etapesStatuts'
+import { EtapesTypes, EtapeType, EtapeTypeId } from 'camino-common/src/static/etapesTypes'
 import { getEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts'
 import { computed, ref, FunctionalComponent, defineComponent } from 'vue'
 import { TypeAhead } from '../_ui/typeahead'
@@ -20,10 +12,7 @@ export type Props = {
   }
   etapesTypesIds: EtapeTypeId[]
   etapeIsDemandeEnConstruction?: boolean
-  onEtapeChange: (
-    statutId: EtapeStatutId | null,
-    typeId: EtapeTypeId | null
-  ) => void
+  onEtapeChange: (statutId: EtapeStatutId | null, typeId: EtapeTypeId | null) => void
 }
 
 interface SelectStatutProps {
@@ -32,12 +21,8 @@ interface SelectStatutProps {
   onStatutChange: (statutId: EtapeStatutId | null) => void
 }
 
-const SelectStatut: FunctionalComponent<SelectStatutProps> = (
-  props: SelectStatutProps
-): JSX.Element => {
-  const etapesStatuts: EtapeStatut[] = props.typeId
-    ? getEtapesStatuts(props.typeId)
-    : []
+const SelectStatut: FunctionalComponent<SelectStatutProps> = (props: SelectStatutProps): JSX.Element => {
+  const etapesStatuts: EtapeStatut[] = props.typeId ? getEtapesStatuts(props.typeId) : []
 
   const etapeStatutIdSelected: EtapeStatutId | null = props.statutId
 
@@ -48,26 +33,10 @@ const SelectStatut: FunctionalComponent<SelectStatutProps> = (
           <h5>Statut</h5>
         </div>
         <div class="mb tablet-blob-2-3">
-          <select
-            onChange={event =>
-              props.onStatutChange(
-                isEventWithTarget(event) && isStatut(event.target.value)
-                  ? event.target.value
-                  : null
-              )
-            }
-            class="p-s"
-          >
-            {etapesStatuts.length > 1 && etapeStatutIdSelected === null ? (
-              <option value={null} selected={true}></option>
-            ) : null}
+          <select onChange={event => props.onStatutChange(isEventWithTarget(event) && isStatut(event.target.value) ? event.target.value : null)} class="p-s">
+            {etapesStatuts.length > 1 && etapeStatutIdSelected === null ? <option value={null} selected={true}></option> : null}
             {etapesStatuts.map(etapeStatut => (
-              <option
-                key={etapeStatut.id}
-                value={etapeStatut.id}
-                selected={etapeStatutIdSelected === etapeStatut.id}
-                disabled={etapeStatutIdSelected === etapeStatut.id}
-              >
+              <option key={etapeStatut.id} value={etapeStatut.id} selected={etapeStatutIdSelected === etapeStatut.id} disabled={etapeStatutIdSelected === etapeStatut.id}>
                 {etapeStatut.nom}
               </option>
             ))}
@@ -94,9 +63,7 @@ export const TypeEdit = defineComponent<Props>({
         })
     )
 
-    const etapeTypeExistante = computed<Pick<EtapeType, 'id'>[]>(() =>
-      etapeTypeId.value ? [{ id: etapeTypeId.value }] : []
-    )
+    const etapeTypeExistante = computed<Pick<EtapeType, 'id'>[]>(() => (etapeTypeId.value ? [{ id: etapeTypeId.value }] : []))
 
     return () => (
       <div>
@@ -128,9 +95,7 @@ export const TypeEdit = defineComponent<Props>({
                   props.onEtapeChange(etapeStatutId.value, etapeTypeId.value)
                 }
               }}
-              onInput={(searchTerm: string) =>
-                (etapeTypeSearch.value = searchTerm)
-              }
+              onInput={(searchTerm: string) => (etapeTypeSearch.value = searchTerm)}
             />
           </div>
         </div>
@@ -148,12 +113,7 @@ export const TypeEdit = defineComponent<Props>({
         )}
       </div>
     )
-  }
+  },
 })
 
-TypeEdit.props = [
-  'etape',
-  'onEtapeChange',
-  'etapesTypesIds',
-  'etapeIsDemandeEnConstruction'
-]
+TypeEdit.props = ['etape', 'onEtapeChange', 'etapesTypesIds', 'etapeIsDemandeEnConstruction']
diff --git a/packages/ui/src/components/journaux.vue b/packages/ui/src/components/journaux.vue
index d15287861..388ae75dd 100644
--- a/packages/ui/src/components/journaux.vue
+++ b/packages/ui/src/components/journaux.vue
@@ -15,8 +15,8 @@ export default defineComponent({
     '$route.query': {
       handler: function () {
         this.$store.dispatch('journaux/routeUpdate')
-      }
-    }
+      },
+    },
   },
 
   unmounted() {
@@ -26,7 +26,7 @@ export default defineComponent({
   methods: {
     async refresh() {
       await this.$store.dispatch('journaux/init')
-    }
-  }
+    },
+  },
 })
 </script>
diff --git a/packages/ui/src/components/journaux/differences.vue b/packages/ui/src/components/journaux/differences.vue
index 3085d0c29..3bd3a4071 100644
--- a/packages/ui/src/components/journaux/differences.vue
+++ b/packages/ui/src/components/journaux/differences.vue
@@ -15,7 +15,7 @@ import 'jsondiffpatch/dist/formatters-styles/html.css'
 
 export default defineComponent({
   props: {
-    journal: { type: Object, required: true }
+    journal: { type: Object, required: true },
   },
 
   computed: {
@@ -27,8 +27,8 @@ export default defineComponent({
       }
 
       return ''
-    }
-  }
+    },
+  },
 })
 </script>
 <style>
diff --git a/packages/ui/src/components/journaux/journaux.vue b/packages/ui/src/components/journaux/journaux.vue
index 5273eb186..2e40df87d 100644
--- a/packages/ui/src/components/journaux/journaux.vue
+++ b/packages/ui/src/components/journaux/journaux.vue
@@ -1,15 +1,5 @@
 <template>
-  <Liste
-    nom="journaux"
-    :colonnes="colonnes"
-    :lignes="lignes"
-    :elements="journaux"
-    :filtres="filtres"
-    :params="params"
-    :total="total"
-    :initialized="initialized"
-    @params-update="paramsUpdate"
-  />
+  <Liste nom="journaux" :colonnes="colonnes" :lignes="lignes" :elements="journaux" :filtres="filtres" :params="params" :total="total" :initialized="initialized" @params-update="paramsUpdate" />
 </template>
 
 <script lang="ts">
@@ -20,7 +10,7 @@ import Differences from './differences.vue'
 export default defineComponent({
   components: { Liste },
   props: {
-    titreId: { type: String, default: undefined }
+    titreId: { type: String, default: undefined },
   },
   computed: {
     journaux() {
@@ -43,8 +33,8 @@ export default defineComponent({
         { id: 'operation', name: 'Action' },
         {
           id: 'differences',
-          name: 'Modifications'
-        }
+          name: 'Modifications',
+        },
       ]
 
       if (!this.titreId) {
@@ -59,8 +49,8 @@ export default defineComponent({
               id: 'recherche',
               type: 'input',
               value: '',
-              name: 'Recherche'
-            }
+              name: 'Recherche',
+            },
           ]
         : []
     },
@@ -69,41 +59,39 @@ export default defineComponent({
         const date = new Date(Number.parseInt(journal.date))
         const columns = {
           date: {
-            value: date.toLocaleString('fr-FR')
+            value: date.toLocaleString('fr-FR'),
           },
           titre: {
-            value: journal.titre?.nom
+            value: journal.titre?.nom,
           },
           utilisateur: {
-            value: journal.utilisateur
-              ? `${journal.utilisateur.nom} ${journal.utilisateur.prenom}`
-              : 'Système'
+            value: journal.utilisateur ? `${journal.utilisateur.nom} ${journal.utilisateur.prenom}` : 'Système',
           },
           operation: {
-            value: journal.operation
+            value: journal.operation,
           },
           differences: {
             component: markRaw(Differences),
             props: {
-              journal
-            }
-          }
+              journal,
+            },
+          },
         }
 
         return {
           id: journal.id,
           link: { name: 'etape', params: { id: journal.elementId } },
-          columns
+          columns,
         }
       })
-    }
+    },
   },
 
   async created() {
     if (this.titreId) {
       this.paramsUpdate({
         section: 'filtres',
-        params: { titreId: this.titreId }
+        params: { titreId: this.titreId },
       })
     }
     await this.init()
@@ -119,7 +107,7 @@ export default defineComponent({
     },
     async paramsUpdate(options: any) {
       await this.$store.dispatch(`journaux/paramsSet`, options)
-    }
-  }
+    },
+  },
 })
 </script>
diff --git a/packages/ui/src/components/menu/button.tsx b/packages/ui/src/components/menu/button.tsx
index 6adb9d6ec..dbf14f749 100644
--- a/packages/ui/src/components/menu/button.tsx
+++ b/packages/ui/src/components/menu/button.tsx
@@ -20,21 +20,11 @@ export const MenuButton = defineComponent({
     }
 
     return () => (
-      <div
-        class={`${
-          menu.value.component && menu.value.component.name === 'MainMenu'
-            ? 'active'
-            : ''
-        }`}
-      >
-        <button
-          id="cmn-menu-button-button-menu"
-          class="btn-border small pill p-s"
-          onClick={() => menuToggle()}
-        >
+      <div class={`${menu.value.component && menu.value.component.name === 'MainMenu' ? 'active' : ''}`}>
+        <button id="cmn-menu-button-button-menu" class="btn-border small pill p-s" onClick={() => menuToggle()}>
           <Icon size="M" name="menu" />
         </button>
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/menu/menu.tsx b/packages/ui/src/components/menu/menu.tsx
index 558ff7acd..528653083 100644
--- a/packages/ui/src/components/menu/menu.tsx
+++ b/packages/ui/src/components/menu/menu.tsx
@@ -14,9 +14,7 @@ export const MainMenu = defineComponent({
     const matomo = inject('matomo', null)
 
     const user = computed<User>(() => store.state.user.element)
-    const hasEntreprises = computed<boolean>(
-      () => store.getters['user/hasEntreprises']
-    )
+    const hasEntreprises = computed<boolean>(() => store.getters['user/hasEntreprises'])
     const isONF = computed<boolean>(() => store.getters['user/isONF'])
     const isPTMG = computed<boolean>(() => store.getters['user/isPTMG'])
     const isDREAL = computed<boolean>(() => store.getters['user/isDREAL'])
@@ -51,45 +49,25 @@ export const MainMenu = defineComponent({
               <ul class="list-sans mb-0">
                 {dashboardLabel.value ? (
                   <li>
-                    <router-link
-                      id="cmn-menu-menu-a-dashboard"
-                      to={{ name: 'dashboard' }}
-                      class="btn-menu text-decoration-none bold"
-                      onClick={() => eventTrack('dashboard')}
-                    >
+                    <router-link id="cmn-menu-menu-a-dashboard" to={{ name: 'dashboard' }} class="btn-menu text-decoration-none bold" onClick={() => eventTrack('dashboard')}>
                       {dashboardLabel.value}
                     </router-link>
                   </li>
                 ) : null}
 
                 <li>
-                  <router-link
-                    id="cmn-menu-menu-a-titres"
-                    to={{ name: 'titres' }}
-                    class="btn-menu text-decoration-none bold"
-                    onClick={() => eventTrack('titres')}
-                  >
+                  <router-link id="cmn-menu-menu-a-titres" to={{ name: 'titres' }} class="btn-menu text-decoration-none bold" onClick={() => eventTrack('titres')}>
                     Titres miniers et autorisations
                   </router-link>
                 </li>
                 <li>
-                  <router-link
-                    id="cmn-menu-menu-a-demarches"
-                    to={{ name: 'demarches' }}
-                    class="btn-menu text-decoration-none bold"
-                    onClick={() => eventTrack('demarches')}
-                  >
+                  <router-link id="cmn-menu-menu-a-demarches" to={{ name: 'demarches' }} class="btn-menu text-decoration-none bold" onClick={() => eventTrack('demarches')}>
                     Démarches
                   </router-link>
                 </li>
                 {canReadTravaux(user.value) ? (
                   <li>
-                    <router-link
-                      id="cmn-menu-menu-a-travaux"
-                      to={{ name: 'travaux' }}
-                      class="btn-menu text-decoration-none bold"
-                      onClick={() => eventTrack('travaux')}
-                    >
+                    <router-link id="cmn-menu-menu-a-travaux" to={{ name: 'travaux' }} class="btn-menu text-decoration-none bold" onClick={() => eventTrack('travaux')}>
                       Travaux
                     </router-link>
                   </li>
@@ -100,12 +78,7 @@ export const MainMenu = defineComponent({
               <div class="tablet-blob-1-4 border-l pl-s">
                 <ul class="list-sans mb-0">
                   <li>
-                    <router-link
-                      id="cmn-menu-menu-a-activites"
-                      to={{ name: 'activites' }}
-                      class="btn-menu text-decoration-none bold"
-                      onClick={() => eventTrack('activites')}
-                    >
+                    <router-link id="cmn-menu-menu-a-activites" to={{ name: 'activites' }} class="btn-menu text-decoration-none bold" onClick={() => eventTrack('activites')}>
                       Activités
                     </router-link>
                   </li>
@@ -117,34 +90,19 @@ export const MainMenu = defineComponent({
               <ul class="list-sans mb-0">
                 {canReadAdministrations(user.value) ? (
                   <li>
-                    <router-link
-                      id="cmn-menu-menu-a-administrations"
-                      to={{ name: 'administrations' }}
-                      class="btn-menu text-decoration-none bold"
-                      onClick={() => eventTrack('administrations')}
-                    >
+                    <router-link id="cmn-menu-menu-a-administrations" to={{ name: 'administrations' }} class="btn-menu text-decoration-none bold" onClick={() => eventTrack('administrations')}>
                       Administrations
                     </router-link>
                   </li>
                 ) : null}
                 <li>
-                  <router-link
-                    id="cmn-menu-menu-a-entreprises"
-                    to={{ name: 'entreprises' }}
-                    class="btn-menu text-decoration-none bold"
-                    onClick={() => eventTrack('entreprises')}
-                  >
+                  <router-link id="cmn-menu-menu-a-entreprises" to={{ name: 'entreprises' }} class="btn-menu text-decoration-none bold" onClick={() => eventTrack('entreprises')}>
                     Entreprises
                   </router-link>
                 </li>
                 {canReadUtilisateurs(user.value) ? (
                   <li>
-                    <router-link
-                      id="cmn-menu-menu-a-utilisateurs"
-                      to={{ name: 'utilisateurs' }}
-                      class="btn-menu text-decoration-none bold"
-                      onClick={() => eventTrack('utilisateurs')}
-                    >
+                    <router-link id="cmn-menu-menu-a-utilisateurs" to={{ name: 'utilisateurs' }} class="btn-menu text-decoration-none bold" onClick={() => eventTrack('utilisateurs')}>
                       Utilisateurs
                     </router-link>
                   </li>
@@ -155,12 +113,7 @@ export const MainMenu = defineComponent({
               <ul class="list-sans mb-0">
                 {canReadMetas(user.value) ? (
                   <li>
-                    <router-link
-                      id="cmn-menu-menu-a-metas"
-                      to={{ name: 'metas' }}
-                      class="btn-menu text-decoration-none bold"
-                      onClick={() => eventTrack('metas')}
-                    >
+                    <router-link id="cmn-menu-menu-a-metas" to={{ name: 'metas' }} class="btn-menu text-decoration-none bold" onClick={() => eventTrack('metas')}>
                       Métas
                     </router-link>
                   </li>
@@ -168,11 +121,7 @@ export const MainMenu = defineComponent({
 
                 {canReadJournaux(user.value) ? (
                   <li>
-                    <router-link
-                      id="cmn-menu-menu-a-journaux"
-                      to={{ name: 'journaux' }}
-                      class="btn-menu text-decoration-none bold"
-                    >
+                    <router-link id="cmn-menu-menu-a-journaux" to={{ name: 'journaux' }} class="btn-menu text-decoration-none bold">
                       Journaux
                     </router-link>
                   </li>
@@ -183,5 +132,5 @@ export const MainMenu = defineComponent({
         </div>
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/meta-activite.vue b/packages/ui/src/components/meta-activite.vue
index 1761451b5..fa294f917 100644
--- a/packages/ui/src/components/meta-activite.vue
+++ b/packages/ui/src/components/meta-activite.vue
@@ -8,7 +8,7 @@ import Metas from '@/components/metas/meta-page-template.vue'
 
 export default defineComponent({
   components: {
-    Metas
+    Metas,
   },
 
   data() {
@@ -20,21 +20,21 @@ export default defineComponent({
           {
             id: 'titres-types',
             foreignKey: 'titreTypeId',
-            joinTable: 'activites-types--titres-types'
+            joinTable: 'activites-types--titres-types',
           },
           {
             id: 'documents-types',
             foreignKey: 'documentTypeId',
-            joinTable: 'activites-types--documents-types'
+            joinTable: 'activites-types--documents-types',
           },
           {
             id: 'pays',
             foreignKey: 'paysId',
-            joinTable: 'activites-types--pays'
-          }
-        ]
-      }
+            joinTable: 'activites-types--pays',
+          },
+        ],
+      },
     }
-  }
+  },
 })
 </script>
diff --git a/packages/ui/src/components/meta-demarche.vue b/packages/ui/src/components/meta-demarche.vue
index 6d8dd4135..06fbd7c0a 100644
--- a/packages/ui/src/components/meta-demarche.vue
+++ b/packages/ui/src/components/meta-demarche.vue
@@ -8,7 +8,7 @@ import Metas from '@/components/metas/meta-page-template.vue'
 
 export default defineComponent({
   components: {
-    Metas
+    Metas,
   },
 
   data() {
@@ -30,24 +30,22 @@ export default defineComponent({
                   {
                     id: 'documents-types',
                     foreignKey: 'documentTypeId',
-                    joinTable:
-                      'titres-types--demarches-types--etapes-types--documents-types',
-                    definitions: []
+                    joinTable: 'titres-types--demarches-types--etapes-types--documents-types',
+                    definitions: [],
                   },
                   {
                     id: 'documents-types',
                     foreignKey: 'documentTypeId',
-                    joinTable:
-                      'titres-types--demarches-types--etapes-types--justificatifs-types',
-                    definitions: []
-                  }
-                ]
-              }
-            ]
-          }
-        ]
-      }
+                    joinTable: 'titres-types--demarches-types--etapes-types--justificatifs-types',
+                    definitions: [],
+                  },
+                ],
+              },
+            ],
+          },
+        ],
+      },
     }
-  }
+  },
 })
 </script>
diff --git a/packages/ui/src/components/meta-etape.vue b/packages/ui/src/components/meta-etape.vue
index 518f16919..f9f0ac39d 100644
--- a/packages/ui/src/components/meta-etape.vue
+++ b/packages/ui/src/components/meta-etape.vue
@@ -8,7 +8,7 @@ import Metas from '@/components/metas/meta-page-template.vue'
 
 export default defineComponent({
   components: {
-    Metas
+    Metas,
   },
 
   data() {
@@ -21,19 +21,19 @@ export default defineComponent({
             id: 'etapes-statuts',
             foreignKey: 'etapeStatutId',
             joinTable: 'etapes-types--etapes-statuts',
-            definitions: []
+            definitions: [],
           },
           {
             id: 'documents-types',
             foreignKey: 'documentTypeId',
             joinTable: 'etapes-types--documents-types',
-            definitions: []
+            definitions: [],
           },
           {
             id: 'documents-types',
             foreignKey: 'documentTypeId',
             joinTable: 'etapes-types--justificatifs-types',
-            definitions: []
+            definitions: [],
           },
           {
             id: 'titres-types',
@@ -47,24 +47,22 @@ export default defineComponent({
                   {
                     id: 'documents-types',
                     foreignKey: 'documentTypeId',
-                    joinTable:
-                      'titres-types--demarches-types--etapes-types--documents-types',
-                    definitions: []
+                    joinTable: 'titres-types--demarches-types--etapes-types--documents-types',
+                    definitions: [],
                   },
                   {
                     id: 'documents-types',
                     foreignKey: 'documentTypeId',
-                    joinTable:
-                      'titres-types--demarches-types--etapes-types--justificatifs-types',
-                    definitions: []
-                  }
-                ]
-              }
-            ]
-          }
-        ]
-      }
+                    joinTable: 'titres-types--demarches-types--etapes-types--justificatifs-types',
+                    definitions: [],
+                  },
+                ],
+              },
+            ],
+          },
+        ],
+      },
     }
-  }
+  },
 })
 </script>
diff --git a/packages/ui/src/components/meta-titre.vue b/packages/ui/src/components/meta-titre.vue
index 1f888841e..e218a5b2f 100644
--- a/packages/ui/src/components/meta-titre.vue
+++ b/packages/ui/src/components/meta-titre.vue
@@ -8,7 +8,7 @@ import Metas from '@/components/metas/meta-page-template.vue'
 
 export default defineComponent({
   components: {
-    Metas
+    Metas,
   },
 
   data() {
@@ -20,7 +20,7 @@ export default defineComponent({
           {
             id: 'titres-statuts',
             foreignKey: 'titreStatutId',
-            joinTable: 'titre-types--titres-statuts'
+            joinTable: 'titre-types--titres-statuts',
           },
           {
             id: 'demarches-types',
@@ -35,24 +35,22 @@ export default defineComponent({
                   {
                     id: 'documents-types',
                     foreignKey: 'documentTypeId',
-                    joinTable:
-                      'titres-types--demarches-types--etapes-types--documents-types',
-                    definitions: []
+                    joinTable: 'titres-types--demarches-types--etapes-types--documents-types',
+                    definitions: [],
                   },
                   {
                     id: 'documents-types',
                     foreignKey: 'documentTypeId',
-                    joinTable:
-                      'titres-types--demarches-types--etapes-types--justificatifs-types',
-                    definitions: []
-                  }
-                ]
-              }
-            ]
-          }
-        ]
-      }
+                    joinTable: 'titres-types--demarches-types--etapes-types--justificatifs-types',
+                    definitions: [],
+                  },
+                ],
+              },
+            ],
+          },
+        ],
+      },
     }
-  }
+  },
 })
 </script>
diff --git a/packages/ui/src/components/meta.vue b/packages/ui/src/components/meta.vue
index 2b4398d49..d97e47079 100644
--- a/packages/ui/src/components/meta.vue
+++ b/packages/ui/src/components/meta.vue
@@ -15,12 +15,7 @@
         <div class="overflow-scroll-x mb">
           <table>
             <tr>
-              <th
-                v-for="colonne in definition.colonnes"
-                :key="colonne.id"
-                class="min-width-5"
-                :class="colonne.class"
-              >
+              <th v-for="colonne in definition.colonnes" :key="colonne.id" class="min-width-5" :class="colonne.class">
                 {{ colonne.nom }}
               </th>
             </tr>
@@ -44,12 +39,12 @@ import { canReadMetas } from 'camino-common/src/permissions/metas'
 
 export default {
   components: {
-    Loader
+    Loader,
   },
 
   data() {
     return {
-      elementNew: {}
+      elementNew: {},
     }
   },
 
@@ -79,10 +74,8 @@ export default {
     },
 
     elementNewComplete() {
-      return this.definition.colonnes.every(
-        c => !!this.elementNew[c.id] || c.optional
-      )
-    }
+      return this.definition.colonnes.every(c => !!this.elementNew[c.id] || c.optional)
+    },
   },
 
   watch: {
@@ -92,7 +85,7 @@ export default {
       }
     },
 
-    user: 'get'
+    user: 'get',
   },
 
   created() {
@@ -116,7 +109,7 @@ export default {
       if (!this.definition.ids) return element.id
 
       return this.definition.ids.map(id => element[id]).join('-')
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/metas.vue b/packages/ui/src/components/metas.vue
index 33f9fdbcb..0d845a2f8 100644
--- a/packages/ui/src/components/metas.vue
+++ b/packages/ui/src/components/metas.vue
@@ -1,14 +1,5 @@
 <template>
-  <Liste
-    nom="métas"
-    :colonnes="colonnes"
-    :lignes="lignes"
-    :elements="metas"
-    :params="params"
-    :total="metas.length"
-    :initialized="initialized"
-    @params-update="paramsUpdate"
-  />
+  <Liste nom="métas" :colonnes="colonnes" :lignes="lignes" :elements="metas" :params="params" :total="metas.length" :initialized="initialized" @params-update="paramsUpdate" />
 </template>
 
 <script>
@@ -24,7 +15,7 @@ export default {
   data() {
     return {
       colonnes: metasColonnes,
-      visible: false
+      visible: false,
     }
   },
 
@@ -51,11 +42,11 @@ export default {
 
     initialized() {
       return this.$store.state.metas.initialized
-    }
+    },
   },
 
   watch: {
-    user: 'init'
+    user: 'init',
   },
 
   async created() {
@@ -77,7 +68,7 @@ export default {
 
     async paramsUpdate(options) {
       await this.$store.dispatch(`metas/paramsSet`, options)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/metas/definition-edit.vue b/packages/ui/src/components/metas/definition-edit.vue
index 0dc125305..77d96535b 100644
--- a/packages/ui/src/components/metas/definition-edit.vue
+++ b/packages/ui/src/components/metas/definition-edit.vue
@@ -8,16 +8,8 @@
         </div>
 
         <div class="mb tablet-blob-2-3">
-          <select
-            :value="elementSelected?.id"
-            class="p-s"
-            @change="selectChange"
-          >
-            <option
-              v-for="element in elements"
-              :key="element.id"
-              :value="element.id"
-            >
+          <select :value="elementSelected?.id" class="p-s" @change="selectChange">
+            <option v-for="element in elements" :key="element.id" :value="element.id">
               {{ labelGet(element) }}
             </option>
           </select>
@@ -25,16 +17,9 @@
       </div>
 
       <div v-if="elementSelected" class="mb-xl">
-        <div
-          v-if="rootComponent || definitionsTree.joinTable"
-          class="rnd-s border p-m"
-        >
+        <div v-if="rootComponent || definitionsTree.joinTable" class="rnd-s border p-m">
           <div class="tablet-blobs">
-            <div
-              v-for="colonne of colonnesToEdit"
-              :key="colonne.id"
-              class="tablet-blob-1-2"
-            >
+            <div v-for="colonne of colonnesToEdit" :key="colonne.id" class="tablet-blob-1-2">
               <div class="tablet-blobs mb-s">
                 <div class="tablet-blob-1-3 tablet-pt-s pb-s">
                   <h5>
@@ -48,17 +33,9 @@
             </div>
           </div>
         </div>
-        <div
-          v-for="definitionChild of definitionsTree.definitions"
-          :key="definitionChild.joinTable"
-          class="pl-l"
-        >
+        <div v-for="definitionChild of definitionsTree.definitions" :key="definitionChild.joinTable" class="pl-l">
           <span class="separator" />
-          <DefinitionEdit
-            :definitionsTree="definitionChild"
-            :foreignKeys="foreignKeysNew"
-            :rootComponent="false"
-          />
+          <DefinitionEdit :definitionsTree="definitionChild" :foreignKeys="foreignKeysNew" :rootComponent="false" />
         </div>
       </div>
     </template>
@@ -73,37 +50,27 @@ import Loader from '@/components/_ui/loader.vue'
 export default defineComponent({
   name: 'DefinitionEdit',
   components: {
-    Loader
+    Loader,
   },
   props: {
     definitionsTree: { type: Object, required: true },
     foreignKeys: { type: Object, default: () => ({}) },
-    rootComponent: { type: Boolean, default: true }
+    rootComponent: { type: Boolean, default: true },
   },
   data() {
     return {
-      loaded: false
+      loaded: false,
     }
   },
   computed: {
     title() {
-      return (
-        this.definition.colonnes.find(
-          (colonne: any) => colonne.id === this.definitionsTree.foreignKey
-        )?.nom || this.definition.nom
-      )
+      return this.definition.colonnes.find((colonne: any) => colonne.id === this.definitionsTree.foreignKey)?.nom || this.definition.nom
     },
     elementSelected() {
-      return this.$store.getters['meta/elementSelected'](
-        this.definitionsTree.joinTable || this.definitionsTree.id
-      )
+      return this.$store.getters['meta/elementSelected'](this.definitionsTree.joinTable || this.definitionsTree.id)
     },
     definition() {
-      return (metasIndex as any)[
-        this.definitionsTree.joinTable
-          ? this.definitionsTree.joinTable
-          : this.definitionsTree.id
-      ]
+      return (metasIndex as any)[this.definitionsTree.joinTable ? this.definitionsTree.joinTable : this.definitionsTree.id]
     },
     elements() {
       if (!this.definitionsTree.joinTable) {
@@ -111,28 +78,16 @@ export default defineComponent({
         return this.$store.getters['meta/elements'](this.definitionsTree.id)
       }
       // via une table de jointure
-      const elementIdsFiltered = this.$store.getters['meta/elements'](
-        this.definitionsTree.joinTable
-      )
+      const elementIdsFiltered = this.$store.getters['meta/elements'](this.definitionsTree.joinTable)
         // on garde les lignes en fonction des éléments déjà sélectionnés
-        .filter((joinRow: any) =>
-          Object.keys(this.foreignKeys).every(
-            foreignKey => joinRow[foreignKey] === this.foreignKeys[foreignKey]
-          )
-        )
+        .filter((joinRow: any) => Object.keys(this.foreignKeys).every(foreignKey => joinRow[foreignKey] === this.foreignKeys[foreignKey]))
         .map((joinRow: any) => joinRow[this.definitionsTree.foreignKey])
 
-      return (
-        this.$store.getters['meta/elements'](this.definitionsTree.id)?.filter(
-          ({ id }: any) => elementIdsFiltered.includes(id)
-        ) || []
-      )
+      return this.$store.getters['meta/elements'](this.definitionsTree.id)?.filter(({ id }: any) => elementIdsFiltered.includes(id)) || []
     },
 
     colonnesToEdit() {
-      return this.definition.colonnes
-        .filter((colonne: any) => colonne.id !== 'id')
-        .filter((colonne: any) => colonne.type !== 'entities')
+      return this.definition.colonnes.filter((colonne: any) => colonne.id !== 'id').filter((colonne: any) => colonne.type !== 'entities')
     },
 
     elementToEdit() {
@@ -140,30 +95,24 @@ export default defineComponent({
         return this.elementSelected
       }
 
-      return this.$store.getters['meta/elements'](
-        this.definitionsTree.joinTable
-      ).find((joinRow: any) =>
-        Object.keys(this.foreignKeysNew).every(
-          foreignKey => joinRow[foreignKey] === this.foreignKeysNew[foreignKey]
-        )
+      return this.$store.getters['meta/elements'](this.definitionsTree.joinTable).find((joinRow: any) =>
+        Object.keys(this.foreignKeysNew).every(foreignKey => joinRow[foreignKey] === this.foreignKeysNew[foreignKey])
       )
     },
 
     foreignKeysNew(): Record<string, string> {
       return {
         ...this.foreignKeys,
-        [this.definitionsTree.foreignKey]: this.elementSelected?.id
+        [this.definitionsTree.foreignKey]: this.elementSelected?.id,
       }
-    }
+    },
   },
 
   async created() {
     const promises = []
     promises.push(this.$store.dispatch('meta/get', this.definitionsTree.id))
     if (this.definitionsTree.joinTable) {
-      promises.push(
-        this.$store.dispatch('meta/get', this.definitionsTree.joinTable)
-      )
+      promises.push(this.$store.dispatch('meta/get', this.definitionsTree.joinTable))
     }
     await Promise.all(promises)
     this.loaded = true
@@ -176,9 +125,7 @@ export default defineComponent({
   methods: {
     async selectChange(event: any) {
       const elementId = event.target.value
-      const element = this.elements.find(
-        ({ id }: { id: string }) => id === elementId
-      )
+      const element = this.elements.find(({ id }: { id: string }) => id === elementId)
       await this.elementSelect(element)
     },
     labelGet(element: any) {
@@ -187,9 +134,9 @@ export default defineComponent({
     async elementSelect(element: any) {
       await this.$store.dispatch('meta/elementSelect', {
         id: this.definitionsTree.joinTable || this.definitionsTree.id,
-        element
+        element,
       })
-    }
-  }
+    },
+  },
 })
 </script>
diff --git a/packages/ui/src/components/metas/meta-page-template.vue b/packages/ui/src/components/metas/meta-page-template.vue
index 0eeffe1f5..d91c2db75 100644
--- a/packages/ui/src/components/metas/meta-page-template.vue
+++ b/packages/ui/src/components/metas/meta-page-template.vue
@@ -25,21 +25,21 @@ import DefinitionEdit from '@/components/metas/definition-edit.vue'
 
 export default defineComponent({
   components: {
-    DefinitionEdit
+    DefinitionEdit,
   },
 
   props: {
     title: {
       type: String,
       required: true,
-      default: ''
+      default: '',
     },
 
     definitionsTree: {
       type: Object,
       required: true,
-      default: () => ({})
-    }
-  }
+      default: () => ({}),
+    },
+  },
 })
 </script>
diff --git a/packages/ui/src/components/metas/table.js b/packages/ui/src/components/metas/table.js
index e1af0254f..412673c2f 100644
--- a/packages/ui/src/components/metas/table.js
+++ b/packages/ui/src/components/metas/table.js
@@ -1,14 +1,14 @@
 const metasColonnes = [
   {
     id: 'nom',
-    name: 'Nom'
-  }
+    name: 'Nom',
+  },
 ]
 
 const metasLignesBuild = metas =>
   metas.map(meta => {
     const columns = {
-      nom: { value: meta.nom }
+      nom: { value: meta.nom },
     }
 
     const linkName = meta.linkName || 'meta'
@@ -16,7 +16,7 @@ const metasLignesBuild = metas =>
     return {
       id: meta.id,
       link: { name: linkName, params: { id: meta.id } },
-      columns
+      columns,
     }
   })
 
diff --git a/packages/ui/src/components/page/footer.stories.tsx b/packages/ui/src/components/page/footer.stories.tsx
index b40c8af05..8c198894a 100644
--- a/packages/ui/src/components/page/footer.stories.tsx
+++ b/packages/ui/src/components/page/footer.stories.tsx
@@ -4,20 +4,10 @@ import { Meta, Story } from '@storybook/vue3'
 const meta: Meta = {
   title: 'Components/Pages/Footer',
   component: PureFooter,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
-export const AvecNewsletter: Story = () => (
-  <PureFooter
-    version="310c30f5b4d779cd4bc17316f4b026292bb95c10"
-    displayNewsletter={true}
-  />
-)
+export const AvecNewsletter: Story = () => <PureFooter version="310c30f5b4d779cd4bc17316f4b026292bb95c10" displayNewsletter={true} />
 
-export const SansNewsletter: Story = () => (
-  <PureFooter
-    version="310c30f5b4d779cd4bc17316f4b026292bb95c10"
-    displayNewsletter={false}
-  />
-)
+export const SansNewsletter: Story = () => <PureFooter version="310c30f5b4d779cd4bc17316f4b026292bb95c10" displayNewsletter={false} />
diff --git a/packages/ui/src/components/page/footer.tsx b/packages/ui/src/components/page/footer.tsx
index d1654ebfa..d4031979b 100644
--- a/packages/ui/src/components/page/footer.tsx
+++ b/packages/ui/src/components/page/footer.tsx
@@ -13,13 +13,8 @@ export const Footer = defineComponent({
     const displayNewsletter = computed(() => {
       return !store.state.user.element
     })
-    return () => (
-      <PureFooter
-        version={version.value}
-        displayNewsletter={displayNewsletter.value}
-      />
-    )
-  }
+    return () => <PureFooter version={version.value} displayNewsletter={displayNewsletter.value} />
+  },
 })
 
 export interface Props {
@@ -37,12 +32,7 @@ export const PureFooter: FunctionalComponent<Props> = (props: Props) => (
               <h3 class="fr-footer__top-cat">Nous contacter</h3>
               <ul class="fr-footer__top-list">
                 <li>
-                  <a
-                    class="fr-footer__top-link"
-                    href="https://camino.gitbook.io/guide-dutilisation/a-propos/contact"
-                    target="_blank"
-                    rel="noopener noreferrer"
-                  >
+                  <a class="fr-footer__top-link" href="https://camino.gitbook.io/guide-dutilisation/a-propos/contact" target="_blank" rel="noopener noreferrer">
                     Contact
                   </a>
                 </li>
@@ -57,32 +47,17 @@ export const PureFooter: FunctionalComponent<Props> = (props: Props) => (
               <h3 class="fr-footer__top-cat">Utiliser Camino</h3>
               <ul class="fr-footer__top-list">
                 <li>
-                  <a
-                    class="fr-footer__top-link"
-                    href="https://camino.gitbook.io/guide-dutilisation/camino/glossaire"
-                    target="_blank"
-                    rel="noopener noreferrer"
-                  >
+                  <a class="fr-footer__top-link" href="https://camino.gitbook.io/guide-dutilisation/camino/glossaire" target="_blank" rel="noopener noreferrer">
                     Glossaire
                   </a>
                 </li>
                 <li>
-                  <a
-                    class="fr-footer__top-link"
-                    href="https://camino.gitbook.io/guide-dutilisation/camino/guide-dutilisation"
-                    target="_blank"
-                    rel="noopener noreferrer"
-                  >
+                  <a class="fr-footer__top-link" href="https://camino.gitbook.io/guide-dutilisation/camino/guide-dutilisation" target="_blank" rel="noopener noreferrer">
                     Tutoriel
                   </a>
                 </li>
                 <li>
-                  <a
-                    class="fr-footer__top-link"
-                    href="https://docs.camino.beta.gouv.fr/"
-                    target="_blank"
-                    rel="noopener noreferrer"
-                  >
+                  <a class="fr-footer__top-link" href="https://docs.camino.beta.gouv.fr/" target="_blank" rel="noopener noreferrer">
                     API
                   </a>
                 </li>
@@ -102,22 +77,12 @@ export const PureFooter: FunctionalComponent<Props> = (props: Props) => (
               <h3 class="fr-footer__top-cat">Lien externes</h3>
               <ul class="fr-footer__top-list">
                 <li>
-                  <a
-                    class="fr-footer__top-link"
-                    href="http://www.minergies.fr/"
-                    target="_blank"
-                    rel="noopener noreferrer"
-                  >
+                  <a class="fr-footer__top-link" href="http://www.minergies.fr/" target="_blank" rel="noopener noreferrer">
                     Minergies
                   </a>
                 </li>
                 <li>
-                  <a
-                    class="fr-footer__top-link"
-                    href="https://www.mineralinfo.fr/"
-                    target="_blank"
-                    rel="noopener noreferrer"
-                  >
+                  <a class="fr-footer__top-link" href="https://www.mineralinfo.fr/" target="_blank" rel="noopener noreferrer">
                     MinéralInfos
                   </a>
                 </li>
@@ -134,17 +99,8 @@ export const PureFooter: FunctionalComponent<Props> = (props: Props) => (
               de la transition <br />
               écologique
             </p>
-            <a
-              class="fr-footer__brand-link"
-              href="/"
-              title="Retour à l’accueil du site - Camino - République Française"
-            >
-              <img
-                class="fr-footer__logo"
-                style="width:9rem;"
-                src="/img/logo-fabriquenumerique.svg"
-                alt="La fabrique numérique"
-              />
+            <a class="fr-footer__brand-link" href="/" title="Retour à l’accueil du site - Camino - République Française">
+              <img class="fr-footer__logo" style="width:9rem;" src="/img/logo-fabriquenumerique.svg" alt="La fabrique numérique" />
             </a>
           </div>
           <div class="fr-footer__content">
@@ -155,42 +111,22 @@ export const PureFooter: FunctionalComponent<Props> = (props: Props) => (
             ) : null}
             <ul class="fr-footer__content-list">
               <li class="fr-footer__content-item">
-                <a
-                  class="fr-footer__content-link"
-                  target="_blank"
-                  href="https://economie.gouv.fr"
-                  rel="noopener noreferrer"
-                >
+                <a class="fr-footer__content-link" target="_blank" href="https://economie.gouv.fr" rel="noopener noreferrer">
                   economie.gouv.fr
                 </a>
               </li>
               <li class="fr-footer__content-item">
-                <a
-                  class="fr-footer__content-link"
-                  target="_blank"
-                  href="https://ecologie.gouv.fr"
-                  rel="noopener noreferrer"
-                >
+                <a class="fr-footer__content-link" target="_blank" href="https://ecologie.gouv.fr" rel="noopener noreferrer">
                   ecologie.gouv.fr
                 </a>
               </li>
               <li class="fr-footer__content-item">
-                <a
-                  class="fr-footer__content-link"
-                  target="_blank"
-                  href="https://onf.fr"
-                  rel="noopener noreferrer"
-                >
+                <a class="fr-footer__content-link" target="_blank" href="https://onf.fr" rel="noopener noreferrer">
                   onf.fr
                 </a>
               </li>
               <li class="fr-footer__content-item">
-                <a
-                  class="fr-footer__content-link"
-                  target="_blank"
-                  href="https://legifrance.gouv.fr"
-                  rel="noopener noreferrer"
-                >
+                <a class="fr-footer__content-link" target="_blank" href="https://legifrance.gouv.fr" rel="noopener noreferrer">
                   legifrance.gouv.fr
                 </a>
               </li>
@@ -199,44 +135,22 @@ export const PureFooter: FunctionalComponent<Props> = (props: Props) => (
           <div class="fr-footer__bottom" style="width: 100%;">
             <ul class="fr-footer__bottom-list">
               <li class="fr-footer__bottom-item">
-                <a
-                  class="fr-footer__bottom-link"
-                  href="https://camino.gitbook.io/guide-dutilisation/a-propos/accessibilite"
-                  target="_blank"
-                  rel="noopener noreferrer"
-                >
+                <a class="fr-footer__bottom-link" href="https://camino.gitbook.io/guide-dutilisation/a-propos/accessibilite" target="_blank" rel="noopener noreferrer">
                   Accessibilité : non conforme
                 </a>
               </li>
               <li class="fr-footer__bottom-item">
-                <a
-                  class="fr-footer__bottom-link"
-                  href="https://camino.gitbook.io/guide-dutilisation/a-propos/mentions-legales"
-                  target="_blank"
-                  rel="noopener noreferrer"
-                >
+                <a class="fr-footer__bottom-link" href="https://camino.gitbook.io/guide-dutilisation/a-propos/mentions-legales" target="_blank" rel="noopener noreferrer">
                   Mentions légales
                 </a>
               </li>
               <li class="fr-footer__bottom-item">
-                <a
-                  class="fr-footer__bottom-link"
-                  href="https://camino.gitbook.io/guide-dutilisation/a-propos/cgu"
-                  target="_blank"
-                  rel="noopener noreferrer"
-                >
+                <a class="fr-footer__bottom-link" href="https://camino.gitbook.io/guide-dutilisation/a-propos/cgu" target="_blank" rel="noopener noreferrer">
                   CGU
                 </a>
               </li>
               <li class="fr-footer__bottom-item">
-                <a
-                  class="fr-footer__bottom-link"
-                  href={
-                    'https://github.com/MTES-MCT/camino/commit/' + props.version
-                  }
-                  target="_blank"
-                  rel="noopener noreferrer"
-                >
+                <a class="fr-footer__bottom-link" href={'https://github.com/MTES-MCT/camino/commit/' + props.version} target="_blank" rel="noopener noreferrer">
                   Version {props.version.substring(0, 7)}
                 </a>
               </li>
@@ -244,11 +158,7 @@ export const PureFooter: FunctionalComponent<Props> = (props: Props) => (
             <div class="fr-footer__bottom-copy">
               <p>
                 Sauf mention contraire, tous les contenus de ce site sont sous{' '}
-                <a
-                  href="https://github.com/MTES-MCT/camino/blob/master/license.md"
-                  target="_blank"
-                  rel="noopener noreferrer"
-                >
+                <a href="https://github.com/MTES-MCT/camino/blob/master/license.md" target="_blank" rel="noopener noreferrer">
                   licence GNU AGPLv3
                 </a>
               </p>
diff --git a/packages/ui/src/components/page/footer/newsletter-form.stories.tsx b/packages/ui/src/components/page/footer/newsletter-form.stories.tsx
index d6b8ce388..0eecf63ff 100644
--- a/packages/ui/src/components/page/footer/newsletter-form.stories.tsx
+++ b/packages/ui/src/components/page/footer/newsletter-form.stories.tsx
@@ -3,46 +3,30 @@ import { PureNewsletterForm } from './newsletter-form'
 
 const meta: Meta = {
   title: 'Pages/NewsletterForm',
-  component: PureNewsletterForm
+  component: PureNewsletterForm,
 }
 export default meta
 
 export const NonAbonné: Story = () => (
   <div class="dsfr">
-    <PureNewsletterForm
-      state={'NOT_SUBSCRIBED'}
-      onEmailInput={() => ({})}
-      onSubscribe={() => ({})}
-    />
+    <PureNewsletterForm state={'NOT_SUBSCRIBED'} onEmailInput={() => ({})} onSubscribe={() => ({})} />
   </div>
 )
 
 export const Abonné: Story = () => (
   <div class="dsfr">
-    <PureNewsletterForm
-      state={'SUBSCRIBED'}
-      onEmailInput={() => ({})}
-      onSubscribe={() => ({})}
-    />
+    <PureNewsletterForm state={'SUBSCRIBED'} onEmailInput={() => ({})} onSubscribe={() => ({})} />
   </div>
 )
 
 export const EnCours: Story = () => (
   <div class="dsfr">
-    <PureNewsletterForm
-      state={'SUBSCRIBING'}
-      onEmailInput={() => ({})}
-      onSubscribe={() => ({})}
-    />
+    <PureNewsletterForm state={'SUBSCRIBING'} onEmailInput={() => ({})} onSubscribe={() => ({})} />
   </div>
 )
 
 export const Error: Story = () => (
   <div class="dsfr">
-    <PureNewsletterForm
-      state={'ERROR'}
-      onEmailInput={() => ({})}
-      onSubscribe={() => ({})}
-    />
+    <PureNewsletterForm state={'ERROR'} onEmailInput={() => ({})} onSubscribe={() => ({})} />
   </div>
 )
diff --git a/packages/ui/src/components/page/footer/newsletter-form.tsx b/packages/ui/src/components/page/footer/newsletter-form.tsx
index b46b0dbc9..c51e804ff 100644
--- a/packages/ui/src/components/page/footer/newsletter-form.tsx
+++ b/packages/ui/src/components/page/footer/newsletter-form.tsx
@@ -10,11 +10,7 @@ type Props = {
   onSubscribe: () => void
 }
 
-export const PureNewsletterForm: FunctionalComponent<Props> = ({
-  state,
-  onEmailInput,
-  onSubscribe
-}: Props) => (
+export const PureNewsletterForm: FunctionalComponent<Props> = ({ state, onEmailInput, onSubscribe }: Props) => (
   <div class="fr-follow">
     <div class="fr-container">
       <div class="fr-grid-row">
@@ -38,27 +34,17 @@ export const PureNewsletterForm: FunctionalComponent<Props> = ({
                   </label>
                   <div class="fr-input-wrap fr-input-wrap--addon">
                     <input
-                      class={`fr-input ${
-                        state === 'ERROR' ? 'fr-input--error' : ''
-                      }`}
+                      class={`fr-input ${state === 'ERROR' ? 'fr-input--error' : ''}`}
                       title="Votre adresse électronique (ex. : nom@domaine.fr)"
                       autocomplete="email"
                       aria-describedby="newsletter-email-hint-text newsletter-email-messages"
                       placeholder="Votre adresse électronique (ex. : nom@domaine.fr)"
                       id="newsletter-email"
                       type="email"
-                      onInput={event =>
-                        isEventWithTarget(event)
-                          ? onEmailInput(event.target.value)
-                          : null
-                      }
+                      onInput={event => (isEventWithTarget(event) ? onEmailInput(event.target.value) : null)}
                     />
                     <button
-                      class={`fr-btn ${
-                        state === 'SUBSCRIBED'
-                          ? 'fr-btn--icon-left fr-icon-checkbox-circle-line'
-                          : ''
-                      }`}
+                      class={`fr-btn ${state === 'SUBSCRIBED' ? 'fr-btn--icon-left fr-icon-checkbox-circle-line' : ''}`}
                       id="newsletter-button"
                       title="S‘abonner à notre lettre d’information"
                       disabled={state === 'SUBSCRIBING'}
@@ -73,17 +59,11 @@ export const PureNewsletterForm: FunctionalComponent<Props> = ({
                       Une erreur est survenue.
                     </p>
                   ) : null}
-                  <div
-                    class="fr-messages-group"
-                    id="newsletter-email-messages"
-                    aria-live="assertive"
-                  ></div>
+                  <div class="fr-messages-group" id="newsletter-email-messages" aria-live="assertive"></div>
                 </div>
                 <p id="newsletter-email-hint-text" class="fr-hint-text">
-                  En renseignant votre adresse électronique, vous acceptez de
-                  recevoir nos actualités par courriel. Vous pouvez vous
-                  désinscrire à tout moment à l’aide des liens de désinscription
-                  ou en nous contactant.
+                  En renseignant votre adresse électronique, vous acceptez de recevoir nos actualités par courriel. Vous pouvez vous désinscrire à tout moment à l’aide des liens de désinscription ou
+                  en nous contactant.
                 </p>
               </form>
             </div>
@@ -104,7 +84,7 @@ export const NewsletterForm = defineComponent<void>({
         try {
           subscribed.value = 'SUBSCRIBING'
           await newsletterInscrire({
-            email: email.value
+            email: email.value,
           })
           email.value = ''
           subscribed.value = 'SUBSCRIBED'
@@ -117,12 +97,8 @@ export const NewsletterForm = defineComponent<void>({
 
     return () => (
       <div>
-        <PureNewsletterForm
-          state={subscribed.value}
-          onEmailInput={e => (email.value = e)}
-          onSubscribe={() => subscribe()}
-        />
+        <PureNewsletterForm state={subscribed.value} onEmailInput={e => (email.value = e)} onSubscribe={() => subscribe()} />
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/page/header.tsx b/packages/ui/src/components/page/header.tsx
index 077df4a09..9f2fee052 100644
--- a/packages/ui/src/components/page/header.tsx
+++ b/packages/ui/src/components/page/header.tsx
@@ -22,18 +22,13 @@ export const Header = defineComponent<Props>({
     return () => (
       <div class={`mb ${styles['header-container']}`}>
         <div class="pt-m">
-          <router-link
-            to={{ name: 'homepage' }}
-            class="flex text-decoration-none"
-          >
+          <router-link to={{ name: 'homepage' }} class="flex text-decoration-none">
             <img src="/img/logo-rf.svg" alt="logo" class="logo mr" />
             <div>
               <p class="mb-0 mt-xs title">
                 camino<span class="color-neutral">.beta.gouv.fr</span>
               </p>
-              <p class="h6 mb-0 bold color-text">
-                Le cadastre minier numérique ouvert
-              </p>
+              <p class="h6 mb-0 bold color-text">Le cadastre minier numérique ouvert</p>
             </div>
           </router-link>
         </div>
@@ -58,5 +53,5 @@ export const Header = defineComponent<Props>({
         </div>
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/page/quick-access-titre.stories.tsx b/packages/ui/src/components/page/quick-access-titre.stories.tsx
index 3dd9023f5..ad4a54410 100644
--- a/packages/ui/src/components/page/quick-access-titre.stories.tsx
+++ b/packages/ui/src/components/page/quick-access-titre.stories.tsx
@@ -6,8 +6,8 @@ const meta: Meta = {
   title: 'Components/Page/QuickAccessTitre',
   component: PureQuickAccessTitre,
   argTypes: {
-    titres: { name: 'array', value: 'string', required: true }
-  }
+    titres: { name: 'array', value: 'string', required: true },
+  },
 }
 export default meta
 
@@ -20,23 +20,17 @@ export const Simple: Story = () => (
       {
         id: '1',
         nom: 'monTitre',
-        typeId: 'arm'
+        typeId: 'arm',
       },
       {
         id: '1',
         nom: 'monSecondTitre',
-        typeId: 'arg'
-      }
+        typeId: 'arg',
+      },
     ]}
     onSearch={onSearch}
     onSelectedTitre={onSelectedTitre}
   />
 )
 
-export const Empty: Story = () => (
-  <PureQuickAccessTitre
-    titres={[]}
-    onSearch={onSearch}
-    onSelectedTitre={onSelectedTitre}
-  />
-)
+export const Empty: Story = () => <PureQuickAccessTitre titres={[]} onSearch={onSearch} onSelectedTitre={onSelectedTitre} />
diff --git a/packages/ui/src/components/page/quick-access-titre.tsx b/packages/ui/src/components/page/quick-access-titre.tsx
index b59333389..98802359a 100644
--- a/packages/ui/src/components/page/quick-access-titre.tsx
+++ b/packages/ui/src/components/page/quick-access-titre.tsx
@@ -1,18 +1,8 @@
 import { TypeAhead } from '@/components/_ui/typeahead'
 import { Domaine } from '@/components/_common/domaine'
-import {
-  TitresTypesTypes,
-  TitreTypeTypeId
-} from 'camino-common/src/static/titresTypesTypes'
-import {
-  getDomaineId,
-  getTitreTypeType,
-  TitreTypeId
-} from 'camino-common/src/static/titresTypes'
-import {
-  titresRechercherByNom,
-  titresRechercherByReferences
-} from '@/api/titres'
+import { TitresTypesTypes, TitreTypeTypeId } from 'camino-common/src/static/titresTypesTypes'
+import { getDomaineId, getTitreTypeType, TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { titresRechercherByNom, titresRechercherByReferences } from '@/api/titres'
 import { useRouter } from 'vue-router'
 import { defineComponent, ref, inject } from 'vue'
 
@@ -39,13 +29,13 @@ export const QuickAccessTitre = defineComponent({
 
       let searchTitres = await titresRechercherByNom({
         intervalle,
-        noms: searchTerm
+        noms: searchTerm,
       })
 
       if (searchTitres.elements.length === 0) {
         searchTitres = await titresRechercherByReferences({
           intervalle,
-          references: searchTerm
+          references: searchTerm,
         })
       }
       titres.value.splice(0, titres.value.length, ...searchTitres.elements)
@@ -61,14 +51,8 @@ export const QuickAccessTitre = defineComponent({
       }
     }
 
-    return () => (
-      <PureQuickAccessTitre
-        titres={titres.value}
-        onSearch={search}
-        onSelectedTitre={onSelectedTitre}
-      />
-    )
-  }
+    return () => <PureQuickAccessTitre titres={titres.value} onSearch={search} onSelectedTitre={onSelectedTitre} />
+  },
 })
 
 interface Props {
@@ -84,10 +68,7 @@ export const PureQuickAccessTitre = defineComponent<Props>({
         <div class="flex flex-center">
           <Domaine domaineId={getDomaineId(item.typeId)} class="mr-s" />
           <span class="cap-first bold">{item.nom}</span>
-          <span class="ml-xs">
-            {' '}
-            ({TitresTypesTypes[getTitreTypeType(item.typeId)].nom}){' '}
-          </span>
+          <span class="ml-xs"> ({TitresTypesTypes[getTitreTypeType(item.typeId)].nom}) </span>
         </div>
       )
     }
@@ -125,5 +106,5 @@ export const PureQuickAccessTitre = defineComponent<Props>({
         displayItemInList={display}
       />
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/statistiques.vue b/packages/ui/src/components/statistiques.vue
index 5918ab428..532f3f251 100644
--- a/packages/ui/src/components/statistiques.vue
+++ b/packages/ui/src/components/statistiques.vue
@@ -2,12 +2,7 @@
   <div>
     <h1 class="mt-m">Statistiques</h1>
     <div class="flex">
-      <div
-        v-for="tab in tabs"
-        :key="tab.id"
-        class="mr-xs"
-        :class="{ active: tabActive === tab.id }"
-      >
+      <div v-for="tab in tabs" :key="tab.id" class="mr-xs" :class="{ active: tabActive === tab.id }">
         <router-link :to="{ name: tab.name }" class="p-m btn-tab rnd-t-s">
           {{ tab.nom }}
         </router-link>
@@ -31,21 +26,21 @@ export default {
         {
           id: 'granulats-marins',
           nom: 'Granulats marins',
-          name: 'statistiques-granulats-marins'
+          name: 'statistiques-granulats-marins',
         },
         {
           id: 'mineraux-metaux-metropole',
           nom: 'Mineraux & métaux métropole',
-          name: 'statistiques-mineraux-metaux-metropole'
-        }
-      ]
+          name: 'statistiques-mineraux-metaux-metropole',
+        },
+      ],
     }
   },
 
   computed: {
     tabActive() {
       return this.$route.name.replace(/statistiques-/, '')
-    }
+    },
   },
 
   created() {
@@ -57,6 +52,6 @@ export default {
     if (this.$route.name === 'statistiques') {
       this.$router.replace({ name: 'statistiques-globales' })
     }
-  }
+  },
 }
 </script>
diff --git a/packages/ui/src/components/statistiques/globales.stories.tsx b/packages/ui/src/components/statistiques/globales.stories.tsx
index b5d1d9ea5..aafd4938e 100644
--- a/packages/ui/src/components/statistiques/globales.stories.tsx
+++ b/packages/ui/src/components/statistiques/globales.stories.tsx
@@ -5,7 +5,7 @@ import { Statistiques } from 'camino-common/src/statistiques'
 const meta: Meta = {
   title: 'Components/Statistiques/GlobalesNoStoryshots',
   component: PureGlobales,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -26,7 +26,7 @@ export const DefaultNoSnapshot: Story = () => (
         { mois: '2022-01', quantite: 5358 },
         { mois: '2022-02', quantite: 5162 },
         { mois: '2022-03', quantite: 6769 },
-        { mois: '2022-04', quantite: 2612 }
+        { mois: '2022-04', quantite: 2612 },
       ],
       titresModifies: [
         { mois: '2021-05', quantite: 0 },
@@ -40,7 +40,7 @@ export const DefaultNoSnapshot: Story = () => (
         { mois: '2022-01', quantite: 178 },
         { mois: '2022-02', quantite: 189 },
         { mois: '2022-03', quantite: 223 },
-        { mois: '2022-04', quantite: 147 }
+        { mois: '2022-04', quantite: 147 },
       ],
       actions: 27.6,
       sessionDuree: 8,
@@ -55,11 +55,11 @@ export const DefaultNoSnapshot: Story = () => (
           dre: 38,
           min: 26,
           ope: 24,
-          pre: 8
+          pre: 8,
         },
         rattachesAUneEntreprise: 128,
-        visiteursAuthentifies: 124
-      }
+        visiteursAuthentifies: 124,
+      },
     }}
   />
 )
diff --git a/packages/ui/src/components/statistiques/globales.tsx b/packages/ui/src/components/statistiques/globales.tsx
index 7d4a2d814..7d64a4a4b 100644
--- a/packages/ui/src/components/statistiques/globales.tsx
+++ b/packages/ui/src/components/statistiques/globales.tsx
@@ -6,27 +6,19 @@ import { QuantiteParMois, Statistiques } from 'camino-common/src/statistiques'
 import type { ChartConfiguration } from 'chart.js'
 
 import { numberFormat } from '@/utils/number-format'
-import {
-  ADMINISTRATION_TYPE_IDS_ARRAY,
-  AdministrationTypeId,
-  sortedAdministrationTypes
-} from 'camino-common/src/static/administrations'
+import { ADMINISTRATION_TYPE_IDS_ARRAY, AdministrationTypeId, sortedAdministrationTypes } from 'camino-common/src/static/administrations'
 import { ConfigurableChart } from '../_charts/configurable-chart'
 
-const pieConfiguration = (
-  data: ChartConfiguration<'pie'>['data']
-): ChartConfiguration<'pie'> => ({
+const pieConfiguration = (data: ChartConfiguration<'pie'>['data']): ChartConfiguration<'pie'> => ({
   type: 'pie',
   data,
   options: {
     locale: 'fr-FR',
-    aspectRatio: 1.33
-  }
+    aspectRatio: 1.33,
+  },
 })
 
-const lineConfiguration = (
-  data: ChartConfiguration<'line'>['data']
-): ChartConfiguration<'line'> => ({
+const lineConfiguration = (data: ChartConfiguration<'line'>['data']): ChartConfiguration<'line'> => ({
   type: 'line',
   data,
   options: {
@@ -35,17 +27,11 @@ const lineConfiguration = (
     aspectRatio: 1.33,
     interaction: {
       mode: 'index',
-      intersect: false
-    }
-  }
+      intersect: false,
+    },
+  },
 })
-const statsLineFormat = ({
-  stats,
-  labelY
-}: {
-  stats: QuantiteParMois[]
-  labelY: string
-}) =>
+const statsLineFormat = ({ stats, labelY }: { stats: QuantiteParMois[]; labelY: string }) =>
   stats.reduce<{
     labels: string[]
     datasets: {
@@ -72,9 +58,9 @@ const statsLineFormat = ({
           fill: 'start',
           tension: 0.5,
           backgroundColor: 'rgba(118, 182, 189, 0.2)',
-          borderColor: 'rgb(118, 182, 189)'
-        }
-      ]
+          borderColor: 'rgb(118, 182, 189)',
+        },
+      ],
     }
   )
 export const Globales = defineComponent({
@@ -97,7 +83,7 @@ export const Globales = defineComponent({
         )}
       </>
     )
-  }
+  },
 })
 
 interface Props {
@@ -109,120 +95,65 @@ export const PureGlobales: FunctionalComponent<Props> = props => {
 
   const recherches = recherchesStats[recherchesStats.length - 1].quantite
 
-  const utilisateursAdmin = Object.keys(
-    props.statistiques.utilisateurs.rattachesAUnTypeDAdministration
-  )
-    .filter((value: string): value is AdministrationTypeId =>
-      ADMINISTRATION_TYPE_IDS_ARRAY.includes(value)
-    )
+  const utilisateursAdmin = Object.keys(props.statistiques.utilisateurs.rattachesAUnTypeDAdministration)
+    .filter((value: string): value is AdministrationTypeId => ADMINISTRATION_TYPE_IDS_ARRAY.includes(value))
     .filter(value => value !== 'ope')
-    .reduce(
-      (value: number, adminTypeId: AdministrationTypeId) =>
-        value +
-        props.statistiques.utilisateurs.rattachesAUnTypeDAdministration[
-          adminTypeId
-        ],
-      0
-    )
+    .reduce((value: number, adminTypeId: AdministrationTypeId) => value + props.statistiques.utilisateurs.rattachesAUnTypeDAdministration[adminTypeId], 0)
 
-  const totalUtilisateurs =
-    utilisateursAdmin +
-    props.statistiques.utilisateurs.rattachesAUneEntreprise +
-    props.statistiques.utilisateurs.visiteursAuthentifies
+  const totalUtilisateurs = utilisateursAdmin + props.statistiques.utilisateurs.rattachesAUneEntreprise + props.statistiques.utilisateurs.visiteursAuthentifies
 
   const utilisateurs = {
-    labels: [
-      'Utilisateurs avec un compte "Entreprise"',
-      'Utilisateurs avec un compte "Administration"',
-      'Utilisateurs par défaut'
-    ],
+    labels: ['Utilisateurs avec un compte "Entreprise"', 'Utilisateurs avec un compte "Administration"', 'Utilisateurs par défaut'],
     datasets: [
       {
         label: 'Utilisateurs',
-        data: [
-          props.statistiques.utilisateurs.rattachesAUneEntreprise,
-          utilisateursAdmin,
-          props.statistiques.utilisateurs.visiteursAuthentifies
-        ],
-        backgroundColor: [
-          'rgb(255, 99, 132)',
-          'rgb(54, 162, 235)',
-          'rgb(255, 205, 86)'
-        ],
-        hoverOffset: 4
-      }
-    ]
+        data: [props.statistiques.utilisateurs.rattachesAUneEntreprise, utilisateursAdmin, props.statistiques.utilisateurs.visiteursAuthentifies],
+        backgroundColor: ['rgb(255, 99, 132)', 'rgb(54, 162, 235)', 'rgb(255, 205, 86)'],
+        hoverOffset: 4,
+      },
+    ],
   }
 
-  const adminSansOperateurs = sortedAdministrationTypes.filter(
-    ({ id }) => id !== 'ope'
-  )
+  const adminSansOperateurs = sortedAdministrationTypes.filter(({ id }) => id !== 'ope')
   const labelsAdministrations = adminSansOperateurs.map(admin => admin.nom)
-  const data = adminSansOperateurs.map(
-    admin =>
-      props.statistiques.utilisateurs.rattachesAUnTypeDAdministration[admin.id]
-  )
+  const data = adminSansOperateurs.map(admin => props.statistiques.utilisateurs.rattachesAUnTypeDAdministration[admin.id])
   const utilisateursAdminChart = {
     labels: labelsAdministrations,
     datasets: [
       {
         label: 'Administrations',
         data,
-        backgroundColor: [
-          'rgba(255, 99, 132)',
-          'rgba(54, 162, 235)',
-          'rgba(255, 206, 86)',
-          'rgba(75, 192, 192)',
-          'rgba(153, 102, 255)',
-          'rgba(255, 159, 64)'
-        ],
-        hoverOffset: 4
-      }
-    ]
+        backgroundColor: ['rgba(255, 99, 132)', 'rgba(54, 162, 235)', 'rgba(255, 206, 86)', 'rgba(75, 192, 192)', 'rgba(153, 102, 255)', 'rgba(255, 159, 64)'],
+        hoverOffset: 4,
+      },
+    ],
   }
 
   const titresModifiesStats = props.statistiques.titresModifies
-  const titresModifies =
-    titresModifiesStats[titresModifiesStats.length - 1].quantite
+  const titresModifies = titresModifiesStats[titresModifiesStats.length - 1].quantite
 
   return (
     <div>
       <div id="engagement" class="mb-xxl">
         <h2 class="mt">Engagement général sur le site</h2>
         <span class="separator" />
-        <p class="mb-xl">
-          Les données retenues ici témoignent du comportement général des
-          utilisateurs sur le site et de leur engagement auprès du service
-        </p>
+        <p class="mb-xl">Les données retenues ici témoignent du comportement général des utilisateurs sur le site et de leur engagement auprès du service</p>
         <div class="tablet-float-blobs clearfix">
           <div class="tablet-float-blob-1-3">
             <div class="mb-xl mt">
               <p class="h0 text-center">{numberFormat(recherches)}</p>
-              <p class="bold text-center">
-                recherches effectuées le mois dernier
-              </p>
-              <p>
-                Le nombre de recherches mensuelles est l'indicateur clé de
-                l'utilisation du service de "cadastre minier"
-              </p>
+              <p class="bold text-center">recherches effectuées le mois dernier</p>
+              <p>Le nombre de recherches mensuelles est l'indicateur clé de l'utilisation du service de "cadastre minier"</p>
             </div>
 
             <div class="mb-xl">
-              <p class="h0 text-center">
-                {Math.round(props.statistiques.actions)}
-              </p>
-              <p class="bold text-center">
-                nombre moyen d'actions effectuées par utilisateur
-              </p>
+              <p class="h0 text-center">{Math.round(props.statistiques.actions)}</p>
+              <p class="bold text-center">nombre moyen d'actions effectuées par utilisateur</p>
             </div>
 
             <div class="mb-xl">
-              <p class="h0 text-center">
-                {props.statistiques.sessionDuree} min
-              </p>
-              <p class="bold text-center">
-                temps de session moyen par utilisateur
-              </p>
+              <p class="h0 text-center">{props.statistiques.sessionDuree} min</p>
+              <p class="bold text-center">temps de session moyen par utilisateur</p>
             </div>
           </div>
           <div class="tablet-float-blob-2-3 mb-xxl">
@@ -230,7 +161,7 @@ export const PureGlobales: FunctionalComponent<Props> = props => {
               chartConfiguration={lineConfiguration(
                 statsLineFormat({
                   stats: props.statistiques.recherches,
-                  labelY: 'recherches'
+                  labelY: 'recherches',
                 })
               )}
             />
@@ -247,31 +178,18 @@ export const PureGlobales: FunctionalComponent<Props> = props => {
               <p class="bold text-center">utilisateurs sur la plateforme</p>
             </div>
             <div class="mb-xl mt">
-              <p class="h0 text-center">
-                {numberFormat(
-                  props.statistiques.utilisateurs.rattachesAUneEntreprise
-                )}
-              </p>
-              <p class="bold text-center">
-                utilisateurs affiliés à une Entreprise
-              </p>
+              <p class="h0 text-center">{numberFormat(props.statistiques.utilisateurs.rattachesAUneEntreprise)}</p>
+              <p class="bold text-center">utilisateurs affiliés à une Entreprise</p>
             </div>
 
             <div class="mb-xl mt">
               <p class="h0 text-center">{numberFormat(utilisateursAdmin)}</p>
-              <p class="bold text-center">
-                utilisateurs rattachés à un compte Administration
-              </p>
+              <p class="bold text-center">utilisateurs rattachés à un compte Administration</p>
             </div>
           </div>
-          <div
-            class="tablet-float-blob-2-3 mb-xxl flex"
-            style="justify-content: center"
-          >
+          <div class="tablet-float-blob-2-3 mb-xxl flex" style="justify-content: center">
             <div style="width: 70%">
-              <ConfigurableChart
-                chartConfiguration={pieConfiguration(utilisateurs)}
-              />
+              <ConfigurableChart chartConfiguration={pieConfiguration(utilisateurs)} />
             </div>
           </div>
         </div>
@@ -283,19 +201,12 @@ export const PureGlobales: FunctionalComponent<Props> = props => {
           <div class="tablet-float-blob-1-3">
             <div class="mb-xl mt">
               <p class="h0 text-center">{numberFormat(utilisateursAdmin)}</p>
-              <p class="bold text-center">
-                utilisateurs rattachés à un compte Administration
-              </p>
+              <p class="bold text-center">utilisateurs rattachés à un compte Administration</p>
             </div>
           </div>
-          <div
-            class="tablet-float-blob-2-3 flex"
-            style="justify-content: center"
-          >
+          <div class="tablet-float-blob-2-3 flex" style="justify-content: center">
             <div style="width: 70%">
-              <ConfigurableChart
-                chartConfiguration={pieConfiguration(utilisateursAdminChart)}
-              />
+              <ConfigurableChart chartConfiguration={pieConfiguration(utilisateursAdminChart)} />
             </div>
           </div>
         </div>
@@ -303,25 +214,14 @@ export const PureGlobales: FunctionalComponent<Props> = props => {
       <div id="amelioration" class="mb-xxl content">
         <h2>Amélioration continue et accès aux données publiques</h2>
         <span class="separator" />
-        <p class="mb-xl">
-          En tant que secteur régulé par l'État, la publication en ligne des
-          données minières doit permettre leur amélioration et leur utilisation
-          par la communauté
-        </p>
+        <p class="mb-xl">En tant que secteur régulé par l'État, la publication en ligne des données minières doit permettre leur amélioration et leur utilisation par la communauté</p>
         <div class="tablet-float-blobs clearfix">
           <div class="tablet-float-blob-1-3 mb-xl">
             <p class="h0 text-center">{titresModifies}</p>
-            <p class="bold text-center">
-              mise à jour de titres miniers par l'administration et les
-              entreprises du secteur le mois dernier
-            </p>
+            <p class="bold text-center">mise à jour de titres miniers par l'administration et les entreprises du secteur le mois dernier</p>
             <p>
-              Le nombre de mises à jour mensuelles du cadastre par les
-              différents services de l'administration ou par les professionnels
-              du secteur reflète l'intensité de l'activité d'instruction et
-              administrative sur le domaine minier en France. Une mise à jour
-              peut être l'ajout d'un titre, une modification de son statut ou
-              des documents concernant son instruction.
+              Le nombre de mises à jour mensuelles du cadastre par les différents services de l'administration ou par les professionnels du secteur reflète l'intensité de l'activité d'instruction et
+              administrative sur le domaine minier en France. Une mise à jour peut être l'ajout d'un titre, une modification de son statut ou des documents concernant son instruction.
             </p>
           </div>
           <div class="tablet-float-blob-2-3 mb-xxl">
@@ -329,7 +229,7 @@ export const PureGlobales: FunctionalComponent<Props> = props => {
               chartConfiguration={lineConfiguration(
                 statsLineFormat({
                   stats: props.statistiques.titresModifies,
-                  labelY: 'titres modifiés'
+                  labelY: 'titres modifiés',
                 })
               )}
             />
@@ -338,23 +238,15 @@ export const PureGlobales: FunctionalComponent<Props> = props => {
         <div class="desktop-blobs">
           <div class="desktop-blob-1-3 mb-xl">
             <p class="h0 text-center">{props.statistiques.telechargements}</p>
-            <p class="bold text-center">
-              téléchargements de pièces relatives à la bonne instruction des
-              titres et autorisations miniers le mois dernier
-            </p>
+            <p class="bold text-center">téléchargements de pièces relatives à la bonne instruction des titres et autorisations miniers le mois dernier</p>
           </div>
           <div class="desktop-blob-1-3 mb-xl">
             <p class="h0 text-center">{props.statistiques.signalements}</p>
-            <p class="bold text-center">
-              erreurs corrigées sur les bases de données de l'État grâce à la
-              participation des utilisateurs
-            </p>
+            <p class="bold text-center">erreurs corrigées sur les bases de données de l'État grâce à la participation des utilisateurs</p>
           </div>
           <div class="desktop-blob-1-3 mb-xl">
             <p class="h0 text-center">{props.statistiques.reutilisations}</p>
-            <p class="bold text-center">
-              réutilisations connues des données ouvertes distribuées
-            </p>
+            <p class="bold text-center">réutilisations connues des données ouvertes distribuées</p>
           </div>
         </div>
       </div>
@@ -362,47 +254,26 @@ export const PureGlobales: FunctionalComponent<Props> = props => {
       <div id="gains" class="mb-xxl">
         <h2>Gains de la dématérialisation sur l'instruction minière</h2>
         <span class="separator" />
-        <p>
-          La dématérialisation des démarches relatives à l'instruction minière
-          doit permettre un gain de temps pour ceux qui les effectuent et ceux
-          qui les instruisent
-        </p>
+        <p>La dématérialisation des démarches relatives à l'instruction minière doit permettre un gain de temps pour ceux qui les effectuent et ceux qui les instruisent</p>
         <div class="desktop-blobs">
           <div class="desktop-blob-1-3 mb-xl">
             <p class="h0 text-center">{props.statistiques.demarches}</p>
-            <p class="bold text-center">
-              démarches effectuées en ligne cette année
-            </p>
+            <p class="bold text-center">démarches effectuées en ligne cette année</p>
           </div>
           <div class="desktop-blob-1-3 mb-xl">
-            <p class="h0 text-center">
-              {props.statistiques.titresActivitesBeneficesEntreprise}
-            </p>
-            <p class="bold text-center">
-              jours de travail sans valeur ajoutée économisés par les
-              entreprises en Guyane
-            </p>
+            <p class="h0 text-center">{props.statistiques.titresActivitesBeneficesEntreprise}</p>
+            <p class="bold text-center">jours de travail sans valeur ajoutée économisés par les entreprises en Guyane</p>
             <p>
-              La dématérialisation d’un rapport trimestriel d’activité de
-              production d’or en Guyane permet en moyenne l’économie de 2 heures
-              de travail de saisie ou de déplacement pour son dépôt physique à
-              l’administration.
+              La dématérialisation d’un rapport trimestriel d’activité de production d’or en Guyane permet en moyenne l’économie de 2 heures de travail de saisie ou de déplacement pour son dépôt
+              physique à l’administration.
             </p>
           </div>
           <div class="desktop-blob-1-3 mb-xl">
-            <p class="h0 text-center">
-              {props.statistiques.titresActivitesBeneficesAdministration}
-            </p>
-            <p class="bold text-center">
-              jours de travail à faible valeur ajoutée économisés par
-              l’administration
-            </p>
+            <p class="h0 text-center">{props.statistiques.titresActivitesBeneficesAdministration}</p>
+            <p class="bold text-center">jours de travail à faible valeur ajoutée économisés par l’administration</p>
             <p>
-              La dématérialisation d’un rapport trimestriel d’activité de
-              production d’or en Guyane permet en moyenne l’économie d’une heure
-              de travail de traitement et re-saisie de données par un agent de
-              l’administration. Le gain de temps est réinvesti sur
-              l’accompagnement et le contrôle de l’activité.
+              La dématérialisation d’un rapport trimestriel d’activité de production d’or en Guyane permet en moyenne l’économie d’une heure de travail de traitement et re-saisie de données par un
+              agent de l’administration. Le gain de temps est réinvesti sur l’accompagnement et le contrôle de l’activité.
             </p>
           </div>
         </div>
diff --git a/packages/ui/src/components/statistiques/granulats-marins-activite.tsx b/packages/ui/src/components/statistiques/granulats-marins-activite.tsx
index d7c81616b..5f7fb0559 100644
--- a/packages/ui/src/components/statistiques/granulats-marins-activite.tsx
+++ b/packages/ui/src/components/statistiques/granulats-marins-activite.tsx
@@ -9,20 +9,14 @@ interface Props {
 
 export const GranulatsMarinsActivite: FunctionalComponent<Props> = props => (
   <div id="indicateurs" class="mb-xxl">
-    {props.enConstruction ? (
-      <p class="p-s bg-warning color-bg">
-        Données en cours de collecte et consolidation
-      </p>
-    ) : null}
+    {props.enConstruction ? <p class="p-s bg-warning color-bg">Données en cours de collecte et consolidation</p> : null}
 
     <div class="tablet-blobs">
       <div class="tablet-blob-1-2 mb-xl">
         <h4 class="text-center">Production nette en volume</h4>
         {props.statistiqueGranulatsMarins.activitesDeposesQuantite > 3 ? (
           <div>
-            <p class="h0 text-center">
-              {numberFormat(props.statistiqueGranulatsMarins.volume)} m³
-            </p>
+            <p class="h0 text-center">{numberFormat(props.statistiqueGranulatsMarins.volume)} m³</p>
           </div>
         ) : (
           <div v-else>
@@ -34,9 +28,7 @@ export const GranulatsMarinsActivite: FunctionalComponent<Props> = props => (
         <h4 class="text-center">Production nette en masse</h4>
         {props.statistiqueGranulatsMarins.activitesDeposesQuantite > 3 ? (
           <div>
-            <p class="h0 text-center">
-              {numberFormat(props.statistiqueGranulatsMarins.masse)} t
-            </p>
+            <p class="h0 text-center">{numberFormat(props.statistiqueGranulatsMarins.masse)} t</p>
           </div>
         ) : (
           <div>
@@ -48,25 +40,13 @@ export const GranulatsMarinsActivite: FunctionalComponent<Props> = props => (
     <div class="tablet-blobs">
       <div class="tablet-blob-1-2 mb-xl">
         <h4 class="text-center">Sources des données</h4>
-        <p class="h0 text-center">
-          {numberFormat(
-            props.statistiqueGranulatsMarins.activitesDeposesQuantite
-          )}
-        </p>
-        <p>
-          Rapports d’activité de production collectés via Camino utilisés pour
-          consolider ces statistiques.
-        </p>
+        <p class="h0 text-center">{numberFormat(props.statistiqueGranulatsMarins.activitesDeposesQuantite)}</p>
+        <p>Rapports d’activité de production collectés via Camino utilisés pour consolider ces statistiques.</p>
       </div>
       <div class="tablet-blob-1-2 mb-xl">
         <h4 class="text-center">Taux de collecte</h4>
-        <p class="h0 text-center">
-          {props.statistiqueGranulatsMarins.activitesDeposesRatio} %
-        </p>
-        <p>
-          Des rapports d’activité de production attendus ont été déposés par les
-          opérateurs miniers pour consolider ces statistiques.
-        </p>
+        <p class="h0 text-center">{props.statistiqueGranulatsMarins.activitesDeposesRatio} %</p>
+        <p>Des rapports d’activité de production attendus ont été déposés par les opérateurs miniers pour consolider ces statistiques.</p>
       </div>
     </div>
   </div>
diff --git a/packages/ui/src/components/statistiques/granulats-marins.stories.tsx b/packages/ui/src/components/statistiques/granulats-marins.stories.tsx
index a8f861e27..825f25e4e 100644
--- a/packages/ui/src/components/statistiques/granulats-marins.stories.tsx
+++ b/packages/ui/src/components/statistiques/granulats-marins.stories.tsx
@@ -5,7 +5,7 @@ import { toCaminoDate } from 'camino-common/src/date'
 const meta: Meta = {
   title: 'Components/Statistiques/GranulatsMarins',
   component: PureGranulatsMarins,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -20,7 +20,7 @@ const data = {
       masse: 0,
       activitesDeposesQuantite: 0,
       activitesDeposesRatio: 0,
-      concessionsValides: { quantite: 8, surface: 3340 }
+      concessionsValides: { quantite: 8, surface: 3340 },
     },
     {
       annee: 2007,
@@ -31,7 +31,7 @@ const data = {
       masse: 0,
       activitesDeposesQuantite: 0,
       activitesDeposesRatio: 0,
-      concessionsValides: { quantite: 9, surface: 4340 }
+      concessionsValides: { quantite: 9, surface: 4340 },
     },
     {
       annee: 2008,
@@ -42,7 +42,7 @@ const data = {
       masse: 0,
       activitesDeposesQuantite: 0,
       activitesDeposesRatio: 0,
-      concessionsValides: { quantite: 11, surface: 5317 }
+      concessionsValides: { quantite: 11, surface: 5317 },
     },
     {
       annee: 2009,
@@ -53,7 +53,7 @@ const data = {
       masse: 0,
       activitesDeposesQuantite: 0,
       activitesDeposesRatio: 0,
-      concessionsValides: { quantite: 11, surface: 5317 }
+      concessionsValides: { quantite: 11, surface: 5317 },
     },
     {
       annee: 2010,
@@ -64,7 +64,7 @@ const data = {
       masse: 4454046,
       activitesDeposesQuantite: 9,
       activitesDeposesRatio: 60,
-      concessionsValides: { quantite: 12, surface: 5324 }
+      concessionsValides: { quantite: 12, surface: 5324 },
     },
     {
       annee: 2011,
@@ -75,7 +75,7 @@ const data = {
       masse: 4643521,
       activitesDeposesQuantite: 11,
       activitesDeposesRatio: 58,
-      concessionsValides: { quantite: 16, surface: 8852 }
+      concessionsValides: { quantite: 16, surface: 8852 },
     },
     {
       annee: 2012,
@@ -86,7 +86,7 @@ const data = {
       masse: 4749210,
       activitesDeposesQuantite: 12,
       activitesDeposesRatio: 71,
-      concessionsValides: { quantite: 16, surface: 13802 }
+      concessionsValides: { quantite: 16, surface: 13802 },
     },
     {
       annee: 2013,
@@ -97,7 +97,7 @@ const data = {
       masse: 5205372,
       activitesDeposesQuantite: 16,
       activitesDeposesRatio: 76,
-      concessionsValides: { quantite: 20, surface: 17498 }
+      concessionsValides: { quantite: 20, surface: 17498 },
     },
     {
       annee: 2014,
@@ -108,7 +108,7 @@ const data = {
       masse: 4154154,
       activitesDeposesQuantite: 16,
       activitesDeposesRatio: 84,
-      concessionsValides: { quantite: 18, surface: 16521 }
+      concessionsValides: { quantite: 18, surface: 16521 },
     },
     {
       annee: 2015,
@@ -119,7 +119,7 @@ const data = {
       masse: 4264723,
       activitesDeposesQuantite: 17,
       activitesDeposesRatio: 85,
-      concessionsValides: { quantite: 19, surface: 16921 }
+      concessionsValides: { quantite: 19, surface: 16921 },
     },
     {
       annee: 2016,
@@ -130,7 +130,7 @@ const data = {
       masse: 4275493,
       activitesDeposesQuantite: 17,
       activitesDeposesRatio: 85,
-      concessionsValides: { quantite: 19, surface: 16921 }
+      concessionsValides: { quantite: 19, surface: 16921 },
     },
     {
       annee: 2017,
@@ -141,7 +141,7 @@ const data = {
       masse: 4999512,
       activitesDeposesQuantite: 19,
       activitesDeposesRatio: 86,
-      concessionsValides: { quantite: 21, surface: 17841 }
+      concessionsValides: { quantite: 21, surface: 17841 },
     },
     {
       annee: 2018,
@@ -152,7 +152,7 @@ const data = {
       masse: 5451237,
       activitesDeposesQuantite: 19,
       activitesDeposesRatio: 90,
-      concessionsValides: { quantite: 21, surface: 17841 }
+      concessionsValides: { quantite: 21, surface: 17841 },
     },
     {
       annee: 2019,
@@ -163,7 +163,7 @@ const data = {
       masse: 5497390,
       activitesDeposesQuantite: 18,
       activitesDeposesRatio: 86,
-      concessionsValides: { quantite: 21, surface: 18071 }
+      concessionsValides: { quantite: 21, surface: 18071 },
     },
     {
       annee: 2020,
@@ -174,7 +174,7 @@ const data = {
       masse: 5621503,
       activitesDeposesQuantite: 21,
       activitesDeposesRatio: 100,
-      concessionsValides: { quantite: 21, surface: 18071 }
+      concessionsValides: { quantite: 21, surface: 18071 },
     },
     {
       annee: 2021,
@@ -185,7 +185,7 @@ const data = {
       masse: 6508080,
       activitesDeposesQuantite: 21,
       activitesDeposesRatio: 100,
-      concessionsValides: { quantite: 21, surface: 18071 }
+      concessionsValides: { quantite: 21, surface: 18071 },
     },
     {
       annee: 2022,
@@ -196,7 +196,7 @@ const data = {
       masse: 919566,
       activitesDeposesQuantite: 1,
       activitesDeposesRatio: 5,
-      concessionsValides: { quantite: 20, surface: 17967 }
+      concessionsValides: { quantite: 20, surface: 17967 },
     },
     {
       annee: 2023,
@@ -207,8 +207,8 @@ const data = {
       masse: 0,
       activitesDeposesQuantite: 0,
       activitesDeposesRatio: 0,
-      concessionsValides: { quantite: 20, surface: 17967 }
-    }
+      concessionsValides: { quantite: 20, surface: 17967 },
+    },
   ],
   surfaceExploration: 43386,
   surfaceExploitation: 17967,
@@ -218,27 +218,12 @@ const data = {
   titresValCxw: 19,
   titresDmiCxw: null,
   titresModCxw: null,
-  titresModPrw: null
+  titresModPrw: null,
 }
 
-export const DefaultNoSnapshot: Story = () => (
-  <PureGranulatsMarins getStatistiques={() => Promise.resolve(data)} />
-)
+export const DefaultNoSnapshot: Story = () => <PureGranulatsMarins getStatistiques={() => Promise.resolve(data)} />
 
-export const EnConstruction20210402NoSnapshot: Story = () => (
-  <PureGranulatsMarins
-    getStatistiques={() => Promise.resolve(data)}
-    currentDate={toCaminoDate('2021-04-02')}
-  />
-)
+export const EnConstruction20210402NoSnapshot: Story = () => <PureGranulatsMarins getStatistiques={() => Promise.resolve(data)} currentDate={toCaminoDate('2021-04-02')} />
 
-export const Loading: Story = () => (
-  <PureGranulatsMarins
-    getStatistiques={() => new Promise<any>(resolve => {})}
-  />
-)
-export const WithError: Story = () => (
-  <PureGranulatsMarins
-    getStatistiques={() => Promise.reject(new Error('because reasons'))}
-  />
-)
+export const Loading: Story = () => <PureGranulatsMarins getStatistiques={() => new Promise<any>(resolve => {})} />
+export const WithError: Story = () => <PureGranulatsMarins getStatistiques={() => Promise.reject(new Error('because reasons'))} />
diff --git a/packages/ui/src/components/statistiques/granulats-marins.tsx b/packages/ui/src/components/statistiques/granulats-marins.tsx
index 7b4e24617..d6c7e9d1b 100644
--- a/packages/ui/src/components/statistiques/granulats-marins.tsx
+++ b/packages/ui/src/components/statistiques/granulats-marins.tsx
@@ -3,27 +3,14 @@ import { GranulatsMarinsActivite } from './granulats-marins-activite'
 import { ConfigurableChart } from '../_charts/configurable-chart'
 import { numberFormat } from '@/utils/number-format'
 import { isEventWithTarget } from '@/utils/vue-tsx-utils'
-import {
-  StatistiqueGranulatsMarinsStatAnnee,
-  StatistiquesGranulatsMarins
-} from 'camino-common/src/statistiques.js'
+import { StatistiqueGranulatsMarinsStatAnnee, StatistiquesGranulatsMarins } from 'camino-common/src/statistiques.js'
 import { AsyncData, fetchWithJson } from '@/api/client-rest'
 import { CaminoRestRoutes } from 'camino-common/src/rest'
 import { LoadingElement } from '../_ui/functional-loader'
-import {
-  CaminoDate,
-  getAnnee,
-  getCurrent,
-  toCaminoDate
-} from 'camino-common/src/date'
+import { CaminoDate, getAnnee, getCurrent, toCaminoDate } from 'camino-common/src/date'
 import type { ChartConfiguration } from 'chart.js'
 
-const ids = [
-  'titresPrw',
-  'titresPxw',
-  'titresCxw',
-  'concessionsValides'
-] as const
+const ids = ['titresPrw', 'titresPxw', 'titresCxw', 'concessionsValides'] as const
 
 const suggestedMaxCalc = (annees: StatistiqueGranulatsMarinsStatAnnee[]) =>
   Math.max(
@@ -40,7 +27,7 @@ const statsBarFormat = ({
   bar,
   line,
   labelBar,
-  labelLine
+  labelLine,
 }: {
   annees: StatistiqueGranulatsMarinsStatAnnee[]
   id?: (typeof ids)[number]
@@ -64,12 +51,8 @@ const statsBarFormat = ({
   }>(
     (acc, stats) => {
       acc.labels.push(stats.annee)
-      const dataLine: number =
-        line === 'surface'
-          ? stats[id ?? 'concessionsValides'][line]
-          : stats[line]
-      const dataBar: number =
-        bar === 'quantite' ? stats[id ?? 'concessionsValides'][bar] : stats[bar]
+      const dataLine: number = line === 'surface' ? stats[id ?? 'concessionsValides'][line] : stats[line]
+      const dataBar: number = bar === 'quantite' ? stats[id ?? 'concessionsValides'][bar] : stats[bar]
       acc.datasets[0].data.push(dataLine)
       acc.datasets[1].data.push(dataBar)
 
@@ -86,31 +69,25 @@ const statsBarFormat = ({
           fill: 'start',
           tension: 0.5,
           backgroundColor: 'rgba(55, 111, 170, 0.2)',
-          borderColor: 'rgb(55, 111, 170)'
+          borderColor: 'rgb(55, 111, 170)',
         },
         {
           type: 'bar',
           label: labelBar,
           yAxisID: 'bar',
           data: [],
-          backgroundColor: 'rgb(118, 182, 189)'
-        }
-      ]
+          backgroundColor: 'rgb(118, 182, 189)',
+        },
+      ],
     }
   )
 
 const getStats = async (): Promise<StatistiquesGranulatsMarins> => {
-  const data: StatistiquesGranulatsMarins = await fetchWithJson(
-    CaminoRestRoutes.statistiquesGranulatsMarins,
-    {}
-  )
+  const data: StatistiquesGranulatsMarins = await fetchWithJson(CaminoRestRoutes.statistiquesGranulatsMarins, {})
   return data
 }
 
-const barChartConfig = (
-  data: ChartConfiguration<'bar' | 'line'>['data'],
-  suggestedMax: number
-): ChartConfiguration<'bar' | 'line'> => ({
+const barChartConfig = (data: ChartConfiguration<'bar' | 'line'>['data'], suggestedMax: number): ChartConfiguration<'bar' | 'line'> => ({
   type: 'bar',
   data,
   options: {
@@ -119,20 +96,20 @@ const barChartConfig = (
     responsive: true,
     scales: {
       bar: { min: 0, suggestedMax },
-      line: { min: 0, position: 'right' }
+      line: { min: 0, position: 'right' },
     },
     plugins: {
       legend: {
-        reverse: true
-      }
-    }
-  }
+        reverse: true,
+      },
+    },
+  },
 })
 
 export const GranulatsMarins = defineComponent({
   setup() {
     return () => <PureGranulatsMarins getStatistiques={getStats} />
-  }
+  },
 })
 
 interface Props {
@@ -158,16 +135,9 @@ export const PureGranulatsMarins = defineComponent<Props>({
         anneeActive.value = Number(event.target.value)
       }
     }
-    const suggestedMaxTitres = (
-      titreType: (typeof ids)[number],
-      annees: StatistiqueGranulatsMarinsStatAnnee[]
-    ) => {
+    const suggestedMaxTitres = (titreType: (typeof ids)[number], annees: StatistiqueGranulatsMarinsStatAnnee[]) => {
       // si le nombre maximum de titres est inférieur à 10
-      if (
-        titreType &&
-        ids.includes(titreType) &&
-        Math.max(...annees.map(annee => annee[titreType].quantite)) <= 10
-      ) {
+      if (titreType && ids.includes(titreType) && Math.max(...annees.map(annee => annee[titreType].quantite)) <= 10) {
         return 10
       }
 
@@ -179,17 +149,12 @@ export const PureGranulatsMarins = defineComponent<Props>({
       try {
         const data = await props.getStatistiques()
 
-        const statistiques = data.annees.reduce<Record<string, any>>(
-          (acc, statsAnnee) => {
-            acc[statsAnnee.annee] = statsAnnee
-            return acc
-          },
-          {}
-        )
+        const statistiques = data.annees.reduce<Record<string, any>>((acc, statsAnnee) => {
+          acc[statsAnnee.annee] = statsAnnee
+          return acc
+        }, {})
 
-        const statsAnneesAfter2010 = data.annees.filter(
-          annee => annee.annee >= 2010 && annee.annee < anneeCurrent
-        )
+        const statsAnneesAfter2010 = data.annees.filter(annee => annee.annee >= 2010 && annee.annee < anneeCurrent)
 
         // affichage des données de l'année n-2 à partir du 1er avril de l'année en cours
         const toggleDate = toCaminoDate(`${anneeCurrent}-04-01`)
@@ -200,17 +165,13 @@ export const PureGranulatsMarins = defineComponent<Props>({
           value: {
             raw: data,
             statistiques,
-            statsAnneesAfter2010: beforeToggleDate
-              ? statsAnneesAfter2010.filter(
-                  annee => annee.annee < anneeCurrent - 1
-                )
-              : statsAnneesAfter2010
-          }
+            statsAnneesAfter2010: beforeToggleDate ? statsAnneesAfter2010.filter(annee => annee.annee < anneeCurrent - 1) : statsAnneesAfter2010,
+          },
         }
       } catch (ex: any) {
         statistiquesGranulatsMarins.value = {
           status: 'ERROR',
-          message: ex.message ?? 'something wrong happened'
+          message: ex.message ?? 'something wrong happened',
         }
         console.error(ex)
       }
@@ -223,17 +184,12 @@ export const PureGranulatsMarins = defineComponent<Props>({
             <h2>État du domaine minier en temps réel</h2>
             <span class="separator" />
             <p>
-              Les données affichées ici sont celles contenues dans la base de
-              donnée Camino. Elles sont susceptibles d’évoluer chaque jour au
-              grès des décisions et de la fin de validité des titres et
+              Les données affichées ici sont celles contenues dans la base de donnée Camino. Elles sont susceptibles d’évoluer chaque jour au grès des décisions et de la fin de validité des titres et
               autorisations.
             </p>
             <p>
-              Les surfaces cumulées concernées par un titre ou une autorisation
-              n’impliquent pas qu’elles sont effectivement explorées ou
-              exploitées sur tout ou partie de l'année. Les travaux miniers font
-              l’objet de déclarations ou d’autorisations distinctes portant sur
-              une partie seulement de la surface des titres miniers.
+              Les surfaces cumulées concernées par un titre ou une autorisation n’impliquent pas qu’elles sont effectivement explorées ou exploitées sur tout ou partie de l'année. Les travaux miniers
+              font l’objet de déclarations ou d’autorisations distinctes portant sur une partie seulement de la surface des titres miniers.
             </p>
             <div class="mb-xxl">
               <h3>Titres d’exploration</h3>
@@ -241,12 +197,7 @@ export const PureGranulatsMarins = defineComponent<Props>({
               <div class="tablet-blobs">
                 <div class="tablet-blob-1-3">
                   <p class="h0 text-center">
-                    <LoadingElement
-                      data={statistiquesGranulatsMarins.value}
-                      renderItem={item => (
-                        <>{item.raw.titresInstructionExploration}</>
-                      )}
-                    />
+                    <LoadingElement data={statistiquesGranulatsMarins.value} renderItem={item => <>{item.raw.titresInstructionExploration}</>} />
                   </p>
 
                   <LoadingElement
@@ -255,19 +206,13 @@ export const PureGranulatsMarins = defineComponent<Props>({
                       if (item.raw.titresInstructionExploration > 1) {
                         return (
                           <div>
-                            <p class="bold text-center">
-                              Demandes en cours d'instruction (initiale et
-                              modification en instance)
-                            </p>
+                            <p class="bold text-center">Demandes en cours d'instruction (initiale et modification en instance)</p>
                           </div>
                         )
                       } else {
                         return (
                           <div>
-                            <p class="bold text-center">
-                              Demande en cours d'instruction (initiale et
-                              modification en instance)
-                            </p>
+                            <p class="bold text-center">Demande en cours d'instruction (initiale et modification en instance)</p>
                           </div>
                         )
                       }
@@ -281,8 +226,8 @@ export const PureGranulatsMarins = defineComponent<Props>({
                           domainesIds: 'w',
                           typesIds: 'ar,ap,pr',
                           statutsIds: 'dmi,mod',
-                          vueId: 'table'
-                        }
+                          vueId: 'table',
+                        },
                       }}
                     >
                       Voir les titres
@@ -291,10 +236,7 @@ export const PureGranulatsMarins = defineComponent<Props>({
                 </div>
                 <div class="tablet-blob-1-3">
                   <p class="h0 text-center">
-                    <LoadingElement
-                      data={statistiquesGranulatsMarins.value}
-                      renderItem={item => <>{item.raw.titresValPrw}</>}
-                    />
+                    <LoadingElement data={statistiquesGranulatsMarins.value} renderItem={item => <>{item.raw.titresValPrw}</>} />
                   </p>
                   <p class="bold text-center">Permis exclusifs de recherches</p>
                   <p class="h6 text-center">
@@ -305,8 +247,8 @@ export const PureGranulatsMarins = defineComponent<Props>({
                           domainesIds: 'w',
                           typesIds: 'pr',
                           statutsIds: 'val',
-                          vueId: 'table'
-                        }
+                          vueId: 'table',
+                        },
                       }}
                     >
                       Voir les titres
@@ -315,17 +257,9 @@ export const PureGranulatsMarins = defineComponent<Props>({
                 </div>
                 <div class="tablet-blob-1-3">
                   <p class="h0 text-center">
-                    <LoadingElement
-                      data={statistiquesGranulatsMarins.value}
-                      renderItem={item => (
-                        <>{numberFormat(item.raw.surfaceExploration)} ha</>
-                      )}
-                    />
-                  </p>
-                  <p class="bold text-center">
-                    Surfaces cumulées des titres pouvant faire l'objet d'une
-                    activité d’exploration
+                    <LoadingElement data={statistiquesGranulatsMarins.value} renderItem={item => <>{numberFormat(item.raw.surfaceExploration)} ha</>} />
                   </p>
+                  <p class="bold text-center">Surfaces cumulées des titres pouvant faire l'objet d'une activité d’exploration</p>
                 </div>
               </div>
             </div>
@@ -335,12 +269,7 @@ export const PureGranulatsMarins = defineComponent<Props>({
               <div class="tablet-blobs">
                 <div class="tablet-blob-1-3">
                   <p class="h0 text-center">
-                    <LoadingElement
-                      data={statistiquesGranulatsMarins.value}
-                      renderItem={item => (
-                        <>{item.raw.titresInstructionExploitation}</>
-                      )}
-                    />
+                    <LoadingElement data={statistiquesGranulatsMarins.value} renderItem={item => <>{item.raw.titresInstructionExploitation}</>} />
                   </p>
                   <LoadingElement
                     data={statistiquesGranulatsMarins.value}
@@ -348,19 +277,13 @@ export const PureGranulatsMarins = defineComponent<Props>({
                       if (item.raw.titresInstructionExploitation > 1) {
                         return (
                           <div>
-                            <p class="bold text-center">
-                              Demandes en cours d'instruction (initiale et
-                              modification en instance)
-                            </p>
+                            <p class="bold text-center">Demandes en cours d'instruction (initiale et modification en instance)</p>
                           </div>
                         )
                       } else {
                         return (
                           <div>
-                            <p class="bold text-center">
-                              Demande en cours d'instruction (initiale et
-                              modification en instance)
-                            </p>
+                            <p class="bold text-center">Demande en cours d'instruction (initiale et modification en instance)</p>
                           </div>
                         )
                       }
@@ -375,8 +298,8 @@ export const PureGranulatsMarins = defineComponent<Props>({
                           domainesIds: 'w',
                           typesIds: 'ax,cx,px',
                           statutsIds: 'dmi,mod',
-                          vueId: 'table'
-                        }
+                          vueId: 'table',
+                        },
                       }}
                     >
                       Voir les titres
@@ -385,18 +308,13 @@ export const PureGranulatsMarins = defineComponent<Props>({
                 </div>
                 <div class="tablet-blob-1-3">
                   <p class="h0 text-center">
-                    <LoadingElement
-                      data={statistiquesGranulatsMarins.value}
-                      renderItem={item => <>{item.raw.titresValCxw}</>}
-                    />
+                    <LoadingElement data={statistiquesGranulatsMarins.value} renderItem={item => <>{item.raw.titresValCxw}</>} />
                   </p>
                   <LoadingElement
                     data={statistiquesGranulatsMarins.value}
                     renderItem={item => (
                       <div>
-                        <p class="bold text-center">
-                          Concession{item.raw.titresValCxw > 1 ? 's' : ''}
-                        </p>
+                        <p class="bold text-center">Concession{item.raw.titresValCxw > 1 ? 's' : ''}</p>
                       </div>
                     )}
                   />
@@ -409,8 +327,8 @@ export const PureGranulatsMarins = defineComponent<Props>({
                           domainesIds: 'w',
                           typesIds: 'cx',
                           statutsIds: 'val',
-                          vueId: 'table'
-                        }
+                          vueId: 'table',
+                        },
                       }}
                     >
                       Voir les titres
@@ -419,17 +337,9 @@ export const PureGranulatsMarins = defineComponent<Props>({
                 </div>
                 <div class="tablet-blob-1-3">
                   <p class="h0 text-center">
-                    <LoadingElement
-                      data={statistiquesGranulatsMarins.value}
-                      renderItem={item => (
-                        <>{numberFormat(item.raw.surfaceExploitation)} ha</>
-                      )}
-                    />
-                  </p>
-                  <p class="bold text-center">
-                    Surfaces cumulées des titres pouvant faire l'objet d'une
-                    activité d’exploitation
+                    <LoadingElement data={statistiquesGranulatsMarins.value} renderItem={item => <>{numberFormat(item.raw.surfaceExploitation)} ha</>} />
                   </p>
+                  <p class="bold text-center">Surfaces cumulées des titres pouvant faire l'objet d'une activité d’exploitation</p>
                 </div>
               </div>
             </div>
@@ -439,10 +349,7 @@ export const PureGranulatsMarins = defineComponent<Props>({
 
           <h2>Production annuelle</h2>
           <span class="separator" />
-          <p class="mb-xl">
-            Données contenues dans la base de données Camino, stabilisées pour
-            l’année n-1.
-          </p>
+          <p class="mb-xl">Données contenues dans la base de données Camino, stabilisées pour l’année n-1.</p>
 
           <div class="tablet-pt-s pb-s">
             <LoadingElement
@@ -456,11 +363,9 @@ export const PureGranulatsMarins = defineComponent<Props>({
                         bar: 'volume',
                         line: 'masse',
                         labelBar: 'Volume en m³',
-                        labelLine: 'Tonnage'
+                        labelLine: 'Tonnage',
                       }),
-                      Math.max(
-                        ...statsAnneesAfter2010.map(annee => annee.volume)
-                      )
+                      Math.max(...statsAnneesAfter2010.map(annee => annee.volume))
                     )}
                   />
                 )
@@ -479,32 +384,20 @@ export const PureGranulatsMarins = defineComponent<Props>({
                 return {
                   id,
                   nom: id.toString(),
-                  enConstruction: id === anneeCurrent - 1 // l'année en cours n'étant pas affichée, seule l'année précédente est affichée à partir du 1er avril de l'année courante
+                  enConstruction: id === anneeCurrent - 1, // l'année en cours n'étant pas affichée, seule l'année précédente est affichée à partir du 1er avril de l'année courante
                 }
               })
               return (
                 <>
                   <select class="p-s mb-l full" onChange={anneeSelect}>
                     {annees.map(annee => (
-                      <option
-                        key={annee.id}
-                        value={annee.id}
-                        selected={anneeActive.value === annee.id}
-                      >
+                      <option key={annee.id} value={annee.id} selected={anneeActive.value === annee.id}>
                         {annee.nom}
                       </option>
                     ))}
                   </select>
 
-                  <GranulatsMarinsActivite
-                    statistiqueGranulatsMarins={
-                      item.statistiques[anneeActive.value]
-                    }
-                    enConstruction={
-                      annees.find(t => t.id === anneeActive.value)
-                        ?.enConstruction
-                    }
-                  />
+                  <GranulatsMarinsActivite statistiqueGranulatsMarins={item.statistiques[anneeActive.value]} enConstruction={annees.find(t => t.id === anneeActive.value)?.enConstruction} />
                 </>
               )
             }}
@@ -515,23 +408,13 @@ export const PureGranulatsMarins = defineComponent<Props>({
           <div id="evolution" class="mb-xxl">
             <h2>Titres octroyés et surface</h2>
             <span class="separator" />
-            <p>
-              Données contenues dans la base de données Camino, concernant
-              exclusivement le territoire français.
-            </p>
+            <p>Données contenues dans la base de données Camino, concernant exclusivement le territoire français.</p>
             <h3>Permis exclusif de recherche (PER) octroyés</h3>
             <hr />
             <div class="tablet-float-blobs clearfix">
               <div class="tablet-float-blob-1-3 mb-xl mt">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={statistiquesGranulatsMarins.value}
-                    renderItem={item => (
-                      <>
-                        {item.statistiques[anneeCurrent - 1].titresPrw.quantite}
-                      </>
-                    )}
-                  />
+                  <LoadingElement data={statistiquesGranulatsMarins.value} renderItem={item => <>{item.statistiques[anneeCurrent - 1].titresPrw.quantite}</>} />
                 </p>
                 <p>Permis exclusifs de recherches octroyés l’an dernier</p>
               </div>
@@ -547,7 +430,7 @@ export const PureGranulatsMarins = defineComponent<Props>({
                           bar: 'quantite',
                           line: 'surface',
                           labelBar: 'Permis de recherches',
-                          labelLine: 'Surface des permis de recherches (ha)'
+                          labelLine: 'Surface des permis de recherches (ha)',
                         }),
                         suggestedMaxTitres('titresPrw', item.raw.annees)
                       )}
@@ -559,12 +442,8 @@ export const PureGranulatsMarins = defineComponent<Props>({
             <LoadingElement
               data={statistiquesGranulatsMarins.value}
               renderItem={({ statistiques, raw }) => {
-                const statistiquesGranulatsMarinsAnneeCurrent = raw.annees.find(
-                  annee => annee.annee === anneeCurrent
-                )
-                const pexAnneeCurrent =
-                  (statistiquesGranulatsMarinsAnneeCurrent?.titresPxw
-                    ?.quantite ?? 0) > 0
+                const statistiquesGranulatsMarinsAnneeCurrent = raw.annees.find(annee => annee.annee === anneeCurrent)
+                const pexAnneeCurrent = (statistiquesGranulatsMarinsAnneeCurrent?.titresPxw?.quantite ?? 0) > 0
 
                 return (
                   <>
@@ -574,12 +453,7 @@ export const PureGranulatsMarins = defineComponent<Props>({
                         <hr />
                         <div class="tablet-float-blobs clearfix">
                           <div class="tablet-float-blob-1-3 mb-xl mt">
-                            <p class="h0 text-center">
-                              {
-                                statistiques[anneeCurrent - 1].titresPxw
-                                  .quantite
-                              }
-                            </p>
+                            <p class="h0 text-center">{statistiques[anneeCurrent - 1].titresPxw.quantite}</p>
                             <p>Permis d’exploitation octroyés l’an dernier</p>
                           </div>
                           <div class="tablet-float-blob-2-3 relative mb-xl">
@@ -591,8 +465,7 @@ export const PureGranulatsMarins = defineComponent<Props>({
                                   bar: 'quantite',
                                   line: 'surface',
                                   labelBar: "Permis d'exploitation",
-                                  labelLine:
-                                    "Surface des permis d'exploitation (ha)"
+                                  labelLine: "Surface des permis d'exploitation (ha)",
                                 }),
                                 suggestedMaxTitres('titresPxw', raw.annees)
                               )}
@@ -613,14 +486,7 @@ export const PureGranulatsMarins = defineComponent<Props>({
             <div class="tablet-float-blobs clearfix">
               <div class="tablet-float-blob-1-3 mb-xl mt">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={statistiquesGranulatsMarins.value}
-                    renderItem={item => (
-                      <>
-                        {item.statistiques[anneeCurrent - 1].titresCxw.quantite}
-                      </>
-                    )}
-                  />
+                  <LoadingElement data={statistiquesGranulatsMarins.value} renderItem={item => <>{item.statistiques[anneeCurrent - 1].titresCxw.quantite}</>} />
                 </p>
                 <p>Concessions octroyées l’an dernier</p>
               </div>
@@ -636,7 +502,7 @@ export const PureGranulatsMarins = defineComponent<Props>({
                           bar: 'quantite',
                           line: 'surface',
                           labelBar: 'Concessions',
-                          labelLine: 'Surfaces des concessions (ha)'
+                          labelLine: 'Surfaces des concessions (ha)',
                         }),
                         suggestedMaxTitres('titresCxw', item.raw.annees)
                       )}
@@ -650,17 +516,7 @@ export const PureGranulatsMarins = defineComponent<Props>({
             <div class="tablet-float-blobs clearfix">
               <div class="tablet-float-blob-1-3 mb-xl mt">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={statistiquesGranulatsMarins.value}
-                    renderItem={item => (
-                      <>
-                        {
-                          item.statistiques[anneeCurrent - 1].concessionsValides
-                            .quantite
-                        }
-                      </>
-                    )}
-                  />
+                  <LoadingElement data={statistiquesGranulatsMarins.value} renderItem={item => <>{item.statistiques[anneeCurrent - 1].concessionsValides.quantite}</>} />
                 </p>
                 <p>Concessions valides l’an dernier</p>
               </div>
@@ -676,12 +532,9 @@ export const PureGranulatsMarins = defineComponent<Props>({
                           bar: 'quantite',
                           line: 'surface',
                           labelBar: 'Concessions',
-                          labelLine: 'Surfaces des concessions (ha)'
+                          labelLine: 'Surfaces des concessions (ha)',
                         }),
-                        suggestedMaxTitres(
-                          'concessionsValides',
-                          item.raw.annees
-                        )
+                        suggestedMaxTitres('concessionsValides', item.raw.annees)
                       )}
                     />
                   )}
@@ -692,5 +545,5 @@ export const PureGranulatsMarins = defineComponent<Props>({
         </div>
       </>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/statistiques/guyane-activite.tsx b/packages/ui/src/components/statistiques/guyane-activite.tsx
index 758ba807d..fc7f485c5 100644
--- a/packages/ui/src/components/statistiques/guyane-activite.tsx
+++ b/packages/ui/src/components/statistiques/guyane-activite.tsx
@@ -7,27 +7,18 @@ export interface Props {
 }
 export const GuyaneActivite: FunctionalComponent<Props> = props => (
   <div id="indicateurs" class="mb-xxl">
-    {props.enConstruction ? (
-      <p class="p-s bg-warning color-bg">
-        Données en cours de collecte et consolidation
-      </p>
-    ) : null}
+    {props.enConstruction ? <p class="p-s bg-warning color-bg">Données en cours de collecte et consolidation</p> : null}
 
     <div class="tablet-blobs">
       <div class="tablet-blob-1-3 mb-xl">
         <h4 class="text-center">Production d'or nette</h4>
-        <p class="h0 text-center">
-          {numberFormat(props.statistiqueGuyane.orNet)} kg
-        </p>
+        <p class="h0 text-center">{numberFormat(props.statistiqueGuyane.orNet)} kg</p>
         <p>Production d’or nette (après affinage) issue des mines en Guyane.</p>
       </div>
       <div class="tablet-blob-1-3 mb-xl">
         <h4 class="text-center">Energie consommée</h4>
         <p class="h0 mb-s text-center">
-          {numberFormat(
-            props.statistiqueGuyane.carburantConventionnel +
-              props.statistiqueGuyane.carburantDetaxe
-          )}
+          {numberFormat(props.statistiqueGuyane.carburantConventionnel + props.statistiqueGuyane.carburantDetaxe)}
           kl
         </p>
         <p class="bold text-center">
@@ -38,63 +29,35 @@ export const GuyaneActivite: FunctionalComponent<Props> = props => (
       </div>
       <div class="tablet-blob-1-3 mb-xl">
         <h4 class="text-center">Mercure collecté</h4>
-        <p class="h0 text-center">
-          {numberFormat(props.statistiqueGuyane.mercure)} kg
-        </p>
-        <p>
-          Masse de mercure d’origine anthropique historique ou illégale récupéré
-          lors de l’exploitation.
-        </p>
+        <p class="h0 text-center">{numberFormat(props.statistiqueGuyane.mercure)} kg</p>
+        <p>Masse de mercure d’origine anthropique historique ou illégale récupéré lors de l’exploitation.</p>
       </div>
     </div>
     <div class="tablet-blobs">
       <div class="tablet-blob-1-2 mb-xl">
         <h4 class="text-center">Protection de l'environnement</h4>
-        <p class="h0 text-center">
-          {numberFormat(props.statistiqueGuyane.environnementCout)} €
-        </p>
-        <p>
-          Montant en euros des investissements * déclarés contribuant à la
-          protection de l’environnement.
-        </p>
+        <p class="h0 text-center">{numberFormat(props.statistiqueGuyane.environnementCout)} €</p>
+        <p>Montant en euros des investissements * déclarés contribuant à la protection de l’environnement.</p>
         <p>
-          <small>
-            * listés à l’article 318 C de l’annexe II du code général des
-            impôts.
-          </small>
+          <small>* listés à l’article 318 C de l’annexe II du code général des impôts.</small>
         </p>
       </div>
       <div class="tablet-blob-1-2 mb-xl">
         <h4 class="text-center">Emplois</h4>
-        <p class="h0 text-center">
-          {numberFormat(props.statistiqueGuyane.effectifs)}
-        </p>
-        <p>
-          Salariés mobilisés sur les exploitations minières (équivalent temps
-          plein).
-        </p>
+        <p class="h0 text-center">{numberFormat(props.statistiqueGuyane.effectifs)}</p>
+        <p>Salariés mobilisés sur les exploitations minières (équivalent temps plein).</p>
       </div>
     </div>
     <div class="tablet-blobs">
       <div class="tablet-blob-1-2 mb-xl">
         <h4 class="text-center">Sources des données</h4>
-        <p class="h0 text-center">
-          {numberFormat(props.statistiqueGuyane.activitesDeposesQuantite)}
-        </p>
-        <p>
-          Rapports d’activité de production collectés via Camino utilisés pour
-          consolider ces statistiques.
-        </p>
+        <p class="h0 text-center">{numberFormat(props.statistiqueGuyane.activitesDeposesQuantite)}</p>
+        <p>Rapports d’activité de production collectés via Camino utilisés pour consolider ces statistiques.</p>
       </div>
       <div class="tablet-blob-1-2 mb-xl">
         <h4 class="text-center">Taux de collecte</h4>
-        <p class="h0 text-center">
-          {props.statistiqueGuyane.activitesDeposesRatio} %
-        </p>
-        <p>
-          Des rapports d’activité de production attendus ont été déposés par les
-          opérateurs miniers pour consolider ces statistiques.
-        </p>
+        <p class="h0 text-center">{props.statistiqueGuyane.activitesDeposesRatio} %</p>
+        <p>Des rapports d’activité de production attendus ont été déposés par les opérateurs miniers pour consolider ces statistiques.</p>
       </div>
     </div>
   </div>
diff --git a/packages/ui/src/components/statistiques/guyane.stories.tsx b/packages/ui/src/components/statistiques/guyane.stories.tsx
index 4c555eeee..2501a4b41 100644
--- a/packages/ui/src/components/statistiques/guyane.stories.tsx
+++ b/packages/ui/src/components/statistiques/guyane.stories.tsx
@@ -6,7 +6,7 @@ import { PureGuyane } from './guyane'
 const meta: Meta = {
   title: 'Components/Statistiques/Guyane',
   component: PureGuyane,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -16,89 +16,89 @@ const data: Promise<StatistiquesGuyane> = Promise.resolve({
       depot: {
         [toCaminoAnnee('2017')]: 10,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
+        [toCaminoAnnee('2019')]: 3,
       },
       octroiEtProlongation: {
         [toCaminoAnnee('2017')]: 20,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
+        [toCaminoAnnee('2019')]: 3,
       },
       refusees: {
         [toCaminoAnnee('2017')]: 15,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
+        [toCaminoAnnee('2019')]: 3,
       },
       surface: {
         [toCaminoAnnee('2017')]: 500,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
-      }
+        [toCaminoAnnee('2019')]: 3,
+      },
     },
     axm: {
       depot: {
         [toCaminoAnnee('2017')]: 1,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
+        [toCaminoAnnee('2019')]: 3,
       },
       octroiEtProlongation: {
         [toCaminoAnnee('2017')]: 1,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
+        [toCaminoAnnee('2019')]: 3,
       },
       refusees: {
         [toCaminoAnnee('2017')]: 1,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
+        [toCaminoAnnee('2019')]: 3,
       },
       surface: {
         [toCaminoAnnee('2017')]: 1,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
-      }
+        [toCaminoAnnee('2019')]: 3,
+      },
     },
     prm: {
       depot: {
         [toCaminoAnnee('2017')]: 1,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
+        [toCaminoAnnee('2019')]: 3,
       },
       octroiEtProlongation: {
         [toCaminoAnnee('2017')]: 1,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
+        [toCaminoAnnee('2019')]: 3,
       },
       refusees: {
         [toCaminoAnnee('2017')]: 1,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
+        [toCaminoAnnee('2019')]: 3,
       },
       surface: {
         [toCaminoAnnee('2017')]: 1,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
-      }
+        [toCaminoAnnee('2019')]: 3,
+      },
     },
     cxm: {
       depot: {
         [toCaminoAnnee('2017')]: 1,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
+        [toCaminoAnnee('2019')]: 3,
       },
       octroiEtProlongation: {
         [toCaminoAnnee('2017')]: 1,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
+        [toCaminoAnnee('2019')]: 3,
       },
       refusees: {
         [toCaminoAnnee('2017')]: 1,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
+        [toCaminoAnnee('2019')]: 3,
       },
       surface: {
         [toCaminoAnnee('2017')]: 1,
         [toCaminoAnnee('2018')]: 2,
-        [toCaminoAnnee('2019')]: 3
-      }
+        [toCaminoAnnee('2019')]: 3,
+      },
     },
     surfaceExploration: 88736,
     surfaceExploitation: 57627,
@@ -111,19 +111,19 @@ const data: Promise<StatistiquesGuyane> = Promise.resolve({
         annee: toCaminoAnnee('2017'),
         titresArm: {
           quantite: 26,
-          surface: 5500
+          surface: 5500,
         },
         titresPrm: {
           quantite: 2,
-          surface: 7000
+          surface: 7000,
         },
         titresAxm: {
           quantite: 20,
-          surface: 2000
+          surface: 2000,
         },
         titresCxm: {
           quantite: 0,
-          surface: 0
+          surface: 0,
         },
         orNet: 1485,
         carburantConventionnel: 8841,
@@ -132,25 +132,25 @@ const data: Promise<StatistiquesGuyane> = Promise.resolve({
         environnementCout: 0,
         effectifs: 391,
         activitesDeposesQuantite: 439,
-        activitesDeposesRatio: 100
+        activitesDeposesRatio: 100,
       },
       {
         annee: toCaminoAnnee('2018'),
         titresArm: {
           quantite: 44,
-          surface: 8600
+          surface: 8600,
         },
         titresPrm: {
           quantite: 4,
-          surface: 11011
+          surface: 11011,
         },
         titresAxm: {
           quantite: 23,
-          surface: 2300
+          surface: 2300,
         },
         titresCxm: {
           quantite: 0,
-          surface: 0
+          surface: 0,
         },
         orNet: 1320,
         carburantConventionnel: 6866,
@@ -159,25 +159,25 @@ const data: Promise<StatistiquesGuyane> = Promise.resolve({
         environnementCout: 2195137,
         effectifs: 361,
         activitesDeposesQuantite: 523,
-        activitesDeposesRatio: 79
+        activitesDeposesRatio: 79,
       },
       {
         annee: toCaminoAnnee('2019'),
         titresArm: {
           quantite: 44,
-          surface: 10200
+          surface: 10200,
         },
         titresPrm: {
           quantite: 4,
-          surface: 19458
+          surface: 19458,
         },
         titresAxm: {
           quantite: 15,
-          surface: 1500
+          surface: 1500,
         },
         titresCxm: {
           quantite: 0,
-          surface: 0
+          surface: 0,
         },
         orNet: 1157,
         carburantConventionnel: 6680,
@@ -186,25 +186,25 @@ const data: Promise<StatistiquesGuyane> = Promise.resolve({
         environnementCout: 2152025,
         effectifs: 394,
         activitesDeposesQuantite: 563,
-        activitesDeposesRatio: 93
+        activitesDeposesRatio: 93,
       },
       {
         annee: toCaminoAnnee('2020'),
         titresArm: {
           quantite: 37,
-          surface: 7300
+          surface: 7300,
         },
         titresPrm: {
           quantite: 0,
-          surface: 0
+          surface: 0,
         },
         titresAxm: {
           quantite: 13,
-          surface: 1275
+          surface: 1275,
         },
         titresCxm: {
           quantite: 0,
-          surface: 0
+          surface: 0,
         },
         orNet: 1058,
         carburantConventionnel: 6553,
@@ -213,25 +213,25 @@ const data: Promise<StatistiquesGuyane> = Promise.resolve({
         environnementCout: 3578596,
         effectifs: 387,
         activitesDeposesQuantite: 523,
-        activitesDeposesRatio: 95
+        activitesDeposesRatio: 95,
       },
       {
         annee: toCaminoAnnee('2021'),
         titresArm: {
           quantite: 28,
-          surface: 5600
+          surface: 5600,
         },
         titresPrm: {
           quantite: 1,
-          surface: 4300
+          surface: 4300,
         },
         titresAxm: {
           quantite: 19,
-          surface: 1850
+          surface: 1850,
         },
         titresCxm: {
           quantite: 0,
-          surface: 0
+          surface: 0,
         },
         orNet: 1225,
         carburantConventionnel: 6581,
@@ -240,25 +240,25 @@ const data: Promise<StatistiquesGuyane> = Promise.resolve({
         environnementCout: 4057103,
         effectifs: 473,
         activitesDeposesQuantite: 488,
-        activitesDeposesRatio: 92
+        activitesDeposesRatio: 92,
       },
       {
         annee: toCaminoAnnee('2022'),
         titresArm: {
           quantite: 15,
-          surface: 2499
+          surface: 2499,
         },
         titresPrm: {
           quantite: 1,
-          surface: 4748
+          surface: 4748,
         },
         titresAxm: {
           quantite: 22,
-          surface: 2030
+          surface: 2030,
         },
         titresCxm: {
           quantite: 0,
-          surface: 0
+          surface: 0,
         },
         orNet: 0,
         carburantConventionnel: 3172,
@@ -267,28 +267,28 @@ const data: Promise<StatistiquesGuyane> = Promise.resolve({
         environnementCout: 1384773,
         effectifs: 240,
         activitesDeposesQuantite: 216,
-        activitesDeposesRatio: 68
-      }
-    ]
+        activitesDeposesRatio: 68,
+      },
+    ],
   },
   parAnnee: {
     2017: {
       annee: 2017,
       titresArm: {
         quantite: 26,
-        surface: 5500
+        surface: 5500,
       },
       titresPrm: {
         quantite: 2,
-        surface: 7000
+        surface: 7000,
       },
       titresAxm: {
         quantite: 20,
-        surface: 2000
+        surface: 2000,
       },
       titresCxm: {
         quantite: 0,
-        surface: 0
+        surface: 0,
       },
       orNet: 1485,
       carburantConventionnel: 8841,
@@ -297,25 +297,25 @@ const data: Promise<StatistiquesGuyane> = Promise.resolve({
       environnementCout: 0,
       effectifs: 391,
       activitesDeposesQuantite: 439,
-      activitesDeposesRatio: 100
+      activitesDeposesRatio: 100,
     },
     2018: {
       annee: 2018,
       titresArm: {
         quantite: 44,
-        surface: 8600
+        surface: 8600,
       },
       titresPrm: {
         quantite: 4,
-        surface: 11011
+        surface: 11011,
       },
       titresAxm: {
         quantite: 23,
-        surface: 2300
+        surface: 2300,
       },
       titresCxm: {
         quantite: 0,
-        surface: 0
+        surface: 0,
       },
       orNet: 1320,
       carburantConventionnel: 6866,
@@ -324,25 +324,25 @@ const data: Promise<StatistiquesGuyane> = Promise.resolve({
       environnementCout: 2195137,
       effectifs: 361,
       activitesDeposesQuantite: 523,
-      activitesDeposesRatio: 79
+      activitesDeposesRatio: 79,
     },
     2019: {
       annee: 2018,
       titresArm: {
         quantite: 44,
-        surface: 8600
+        surface: 8600,
       },
       titresPrm: {
         quantite: 4,
-        surface: 11011
+        surface: 11011,
       },
       titresAxm: {
         quantite: 23,
-        surface: 2300
+        surface: 2300,
       },
       titresCxm: {
         quantite: 0,
-        surface: 0
+        surface: 0,
       },
       orNet: 1320,
       carburantConventionnel: 6866,
@@ -351,25 +351,25 @@ const data: Promise<StatistiquesGuyane> = Promise.resolve({
       environnementCout: 2195137,
       effectifs: 361,
       activitesDeposesQuantite: 523,
-      activitesDeposesRatio: 79
+      activitesDeposesRatio: 79,
     },
     2020: {
       annee: 2018,
       titresArm: {
         quantite: 44,
-        surface: 8600
+        surface: 8600,
       },
       titresPrm: {
         quantite: 4,
-        surface: 11011
+        surface: 11011,
       },
       titresAxm: {
         quantite: 23,
-        surface: 2300
+        surface: 2300,
       },
       titresCxm: {
         quantite: 0,
-        surface: 0
+        surface: 0,
       },
       orNet: 1320,
       carburantConventionnel: 6866,
@@ -378,25 +378,25 @@ const data: Promise<StatistiquesGuyane> = Promise.resolve({
       environnementCout: 2195137,
       effectifs: 361,
       activitesDeposesQuantite: 523,
-      activitesDeposesRatio: 79
+      activitesDeposesRatio: 79,
     },
     2021: {
       annee: 2018,
       titresArm: {
         quantite: 44,
-        surface: 8600
+        surface: 8600,
       },
       titresPrm: {
         quantite: 4,
-        surface: 11011
+        surface: 11011,
       },
       titresAxm: {
         quantite: 23,
-        surface: 2300
+        surface: 2300,
       },
       titresCxm: {
         quantite: 0,
-        surface: 0
+        surface: 0,
       },
       orNet: 1320,
       carburantConventionnel: 6866,
@@ -405,25 +405,25 @@ const data: Promise<StatistiquesGuyane> = Promise.resolve({
       environnementCout: 2195137,
       effectifs: 361,
       activitesDeposesQuantite: 523,
-      activitesDeposesRatio: 79
+      activitesDeposesRatio: 79,
     },
     2022: {
       annee: 2018,
       titresArm: {
         quantite: 44,
-        surface: 8600
+        surface: 8600,
       },
       titresPrm: {
         quantite: 4,
-        surface: 11011
+        surface: 11011,
       },
       titresAxm: {
         quantite: 23,
-        surface: 2300
+        surface: 2300,
       },
       titresCxm: {
         quantite: 0,
-        surface: 0
+        surface: 0,
       },
       orNet: 1320,
       carburantConventionnel: 6866,
@@ -432,23 +432,13 @@ const data: Promise<StatistiquesGuyane> = Promise.resolve({
       environnementCout: 2195137,
       effectifs: 361,
       activitesDeposesQuantite: 523,
-      activitesDeposesRatio: 79
-    }
-  }
+      activitesDeposesRatio: 79,
+    },
+  },
 })
 
-export const DefaultNoSnapshot: Story = () => (
-  <PureGuyane getStats={() => data} />
-)
-export const DateSetTo20220830NoSnapshot: Story = () => (
-  <PureGuyane getStats={() => data} currentDate={toCaminoDate('2022-08-30')} />
-)
-export const DateSetTo20220902NoSnapshot: Story = () => (
-  <PureGuyane getStats={() => data} currentDate={toCaminoDate('2022-09-02')} />
-)
-export const Loading: Story = () => (
-  <PureGuyane getStats={() => new Promise<any>(resolve => {})} />
-)
-export const WithError: Story = () => (
-  <PureGuyane getStats={() => Promise.reject(new Error('because reasons'))} />
-)
+export const DefaultNoSnapshot: Story = () => <PureGuyane getStats={() => data} />
+export const DateSetTo20220830NoSnapshot: Story = () => <PureGuyane getStats={() => data} currentDate={toCaminoDate('2022-08-30')} />
+export const DateSetTo20220902NoSnapshot: Story = () => <PureGuyane getStats={() => data} currentDate={toCaminoDate('2022-09-02')} />
+export const Loading: Story = () => <PureGuyane getStats={() => new Promise<any>(resolve => {})} />
+export const WithError: Story = () => <PureGuyane getStats={() => Promise.reject(new Error('because reasons'))} />
diff --git a/packages/ui/src/components/statistiques/guyane.tsx b/packages/ui/src/components/statistiques/guyane.tsx
index e3130e69b..0122d8e61 100644
--- a/packages/ui/src/components/statistiques/guyane.tsx
+++ b/packages/ui/src/components/statistiques/guyane.tsx
@@ -1,18 +1,7 @@
-import {
-  FunctionalComponent,
-  Ref,
-  ref,
-  computed,
-  onMounted,
-  defineComponent
-} from 'vue'
+import { FunctionalComponent, Ref, ref, computed, onMounted, defineComponent } from 'vue'
 import { fetchWithJson, AsyncData } from '@/api/client-rest'
 import { CaminoRestRoutes } from 'camino-common/src/rest'
-import {
-  StatistiquesGuyane,
-  StatistiquesGuyaneActivite,
-  StatistiquesGuyaneData
-} from 'camino-common/src/statistiques'
+import { StatistiquesGuyane, StatistiquesGuyaneActivite, StatistiquesGuyaneData } from 'camino-common/src/statistiques'
 import { GuyaneActivite } from './guyane-activite'
 import { ConfigurableChart } from '../_charts/configurable-chart'
 import { LoadingElement } from '@/components/_ui/functional-loader'
@@ -20,41 +9,21 @@ import { numberFormat } from '@/utils/number-format'
 
 import { CHART_COLORS } from '../_charts/utils'
 import { ChartConfiguration, ChartData } from 'chart.js'
-import {
-  anneePrecedente,
-  anneeSuivante,
-  CaminoAnnee,
-  CaminoDate,
-  getAnnee,
-  getCurrent,
-  isAnnee,
-  toCaminoDate
-} from 'camino-common/src/date'
+import { anneePrecedente, anneeSuivante, CaminoAnnee, CaminoDate, getAnnee, getCurrent, isAnnee, toCaminoDate } from 'camino-common/src/date'
 
 const getStats = async (): Promise<StatistiquesGuyane> => {
-  const data: StatistiquesGuyaneData = await fetchWithJson(
-    CaminoRestRoutes.statistiquesGuyane,
-    {}
-  )
+  const data: StatistiquesGuyaneData = await fetchWithJson(CaminoRestRoutes.statistiquesGuyane, {})
   return {
     data,
-    parAnnee: data.annees.reduce(
-      (
-        acc: Record<CaminoAnnee, StatistiquesGuyaneActivite>,
-        statsAnnee: StatistiquesGuyaneActivite
-      ) => {
-        acc[statsAnnee.annee] = statsAnnee
+    parAnnee: data.annees.reduce((acc: Record<CaminoAnnee, StatistiquesGuyaneActivite>, statsAnnee: StatistiquesGuyaneActivite) => {
+      acc[statsAnnee.annee] = statsAnnee
 
-        return acc
-      },
-      {}
-    )
+      return acc
+    }, {}),
   }
 }
 
-export const Guyane: FunctionalComponent = () => (
-  <PureGuyane getStats={getStats} />
-)
+export const Guyane: FunctionalComponent = () => <PureGuyane getStats={getStats} />
 
 // Demandé par le router car utilisé dans un import asynchrone /shrug
 Guyane.displayName = 'Guyane'
@@ -68,32 +37,30 @@ const defaultConfiguration = (data: ChartData): ChartConfiguration => ({
         // TODO 2022-11-02 trouver un moyen de prendre plus de place
         display: true,
         position: 'top',
-        fullSize: true
-      }
+        fullSize: true,
+      },
     },
     locale: 'fr-FR',
     responsive: true,
     interaction: {
       mode: 'index',
-      intersect: false
+      intersect: false,
     },
     scales: {
       demandes: {
         type: 'linear',
         position: 'left',
-        ticks: { stepSize: 1 }
+        ticks: { stepSize: 1 },
       },
       surface: {
         type: 'linear',
-        position: 'right'
-      }
-    }
-  }
+        position: 'right',
+      },
+    },
+  },
 })
 
-const armChartConfiguration = (
-  data: StatistiquesGuyaneData
-): ChartConfiguration => {
+const armChartConfiguration = (data: StatistiquesGuyaneData): ChartConfiguration => {
   const annees: CaminoAnnee[] = [...Object.keys(data.arm.depot)].filter(isAnnee)
   const chartData: ChartData = {
     labels: annees,
@@ -103,38 +70,36 @@ const armChartConfiguration = (
         label: "Demandes d'octroi ARM déposées",
         yAxisID: 'demandes',
         data: annees.map(annee => data.arm.depot[annee]),
-        backgroundColor: CHART_COLORS.green
+        backgroundColor: CHART_COLORS.green,
       },
       {
         type: 'bar',
         label: "Demandes d'ARM octroyées",
         yAxisID: 'demandes',
         data: annees.map(annee => data.arm.octroiEtProlongation[annee]),
-        backgroundColor: CHART_COLORS.blue
+        backgroundColor: CHART_COLORS.blue,
       },
       {
         type: 'bar',
         label: "Demandes d'octroi d'ARM refusées",
         yAxisID: 'demandes',
         data: annees.map(annee => data.arm.refusees[annee]),
-        backgroundColor: CHART_COLORS.purple
+        backgroundColor: CHART_COLORS.purple,
       },
       {
         type: 'line',
         label: 'Surface cumulée des autorisations de recherche (ha)',
         yAxisID: 'surface',
         data: annees.map(annee => data.arm.surface[annee]),
-        backgroundColor: CHART_COLORS.blue
-      }
-    ]
+        backgroundColor: CHART_COLORS.blue,
+      },
+    ],
   }
 
   return defaultConfiguration(chartData)
 }
 
-const prmChartConfiguration = (
-  data: StatistiquesGuyaneData
-): ChartConfiguration => {
+const prmChartConfiguration = (data: StatistiquesGuyaneData): ChartConfiguration => {
   const annees: CaminoAnnee[] = [...Object.keys(data.prm.depot)].filter(isAnnee)
   const chartData: ChartData = {
     labels: annees,
@@ -144,38 +109,36 @@ const prmChartConfiguration = (
         label: 'Demandes de PER déposées (octroi et prolongation)',
         yAxisID: 'demandes',
         data: annees.map(annee => data.prm.depot[annee]),
-        backgroundColor: CHART_COLORS.green
+        backgroundColor: CHART_COLORS.green,
       },
       {
         type: 'bar',
         label: 'Demandes de PER octroyées et prolongées',
         yAxisID: 'demandes',
         data: annees.map(annee => data.prm.octroiEtProlongation[annee]),
-        backgroundColor: CHART_COLORS.blue
+        backgroundColor: CHART_COLORS.blue,
       },
       {
         type: 'bar',
         label: 'Demandes de PER refusées (octroi et prolongation)',
         yAxisID: 'demandes',
         data: annees.map(annee => data.prm.refusees[annee]),
-        backgroundColor: CHART_COLORS.purple
+        backgroundColor: CHART_COLORS.purple,
       },
       {
         type: 'line',
         label: 'Surface cumulée des permis de recherche (ha) accordés',
         yAxisID: 'surface',
         data: annees.map(annee => data.prm.surface[annee]),
-        backgroundColor: CHART_COLORS.blue
-      }
-    ]
+        backgroundColor: CHART_COLORS.blue,
+      },
+    ],
   }
 
   return defaultConfiguration(chartData)
 }
 
-const axmChartConfiguration = (
-  data: StatistiquesGuyaneData
-): ChartConfiguration => {
+const axmChartConfiguration = (data: StatistiquesGuyaneData): ChartConfiguration => {
   const annees: CaminoAnnee[] = [...Object.keys(data.axm.depot)].filter(isAnnee)
   const chartData: ChartData = {
     labels: annees,
@@ -185,37 +148,35 @@ const axmChartConfiguration = (
         label: "Demandes d'AEX déposées (octroi et prolongation)",
         yAxisID: 'demandes',
         data: annees.map(annee => data.axm.depot[annee]),
-        backgroundColor: CHART_COLORS.green
+        backgroundColor: CHART_COLORS.green,
       },
       {
         type: 'bar',
         label: "Demandes d'AEX octroyées et prolongées",
         yAxisID: 'demandes',
         data: annees.map(annee => data.axm.octroiEtProlongation[annee]),
-        backgroundColor: CHART_COLORS.blue
+        backgroundColor: CHART_COLORS.blue,
       },
       {
         type: 'bar',
         label: "Demandes d'AEX refusées (octroi et prolongation)",
         yAxisID: 'demandes',
         data: annees.map(annee => data.axm.refusees[annee]),
-        backgroundColor: CHART_COLORS.purple
+        backgroundColor: CHART_COLORS.purple,
       },
       {
         type: 'line',
         label: "Surface cumulée des autorisations d'exploitation (ha) accordés",
         yAxisID: 'surface',
         data: annees.map(annee => data.axm.surface[annee]),
-        backgroundColor: CHART_COLORS.blue
-      }
-    ]
+        backgroundColor: CHART_COLORS.blue,
+      },
+    ],
   }
   return defaultConfiguration(chartData)
 }
 
-const cxmChartConfiguration = (
-  data: StatistiquesGuyaneData
-): ChartConfiguration => {
+const cxmChartConfiguration = (data: StatistiquesGuyaneData): ChartConfiguration => {
   const annees: CaminoAnnee[] = [...Object.keys(data.cxm.depot)].filter(isAnnee)
   const chartData: ChartData = {
     labels: annees,
@@ -225,30 +186,30 @@ const cxmChartConfiguration = (
         label: 'Demandes de concessions déposées (octroi et prolongation)',
         yAxisID: 'demandes',
         data: annees.map(annee => data.cxm.depot[annee]),
-        backgroundColor: CHART_COLORS.green
+        backgroundColor: CHART_COLORS.green,
       },
       {
         type: 'bar',
         label: 'Demandes de concessions octroyées et prolongées',
         yAxisID: 'demandes',
         data: annees.map(annee => data.cxm.octroiEtProlongation[annee]),
-        backgroundColor: CHART_COLORS.blue
+        backgroundColor: CHART_COLORS.blue,
       },
       {
         type: 'bar',
         label: 'Demandes de concessions refusées (octroi et prolongation)',
         yAxisID: 'demandes',
         data: annees.map(annee => data.cxm.refusees[annee]),
-        backgroundColor: CHART_COLORS.purple
+        backgroundColor: CHART_COLORS.purple,
       },
       {
         type: 'line',
         label: 'Surface cumulée des concessions (ha) accordés',
         yAxisID: 'surface',
         data: annees.map(annee => data.cxm.surface[annee]),
-        backgroundColor: CHART_COLORS.blue
-      }
-    ]
+        backgroundColor: CHART_COLORS.blue,
+      },
+    ],
   }
 
   return defaultConfiguration(chartData)
@@ -263,7 +224,7 @@ export const PureGuyane = defineComponent<Props>({
   setup(props: Props) {
     const currentDate = props.currentDate ?? getCurrent()
     const data = ref<AsyncData<StatistiquesGuyane>>({
-      status: 'LOADING'
+      status: 'LOADING',
     })
 
     const tabs = computed<CaminoAnnee[]>(() => {
@@ -301,12 +262,12 @@ export const PureGuyane = defineComponent<Props>({
         const stats = await props.getStats()
         data.value = {
           status: 'LOADED',
-          value: stats
+          value: stats,
         }
       } catch (ex: any) {
         data.value = {
           status: 'ERROR',
-          message: ex.message ?? 'something wrong happened'
+          message: ex.message ?? 'something wrong happened',
         }
         console.error(ex)
       }
@@ -318,18 +279,12 @@ export const PureGuyane = defineComponent<Props>({
           <h2>État du domaine minier en temps réel</h2>
           <span class="separator" />
           <p>
-            Les données affichées ici sont celles contenues dans la base de
-            donnée Camino. Elles sont susceptibles d’évoluer chaque jour au grès
-            des décisions et de la fin de validité des titres et autorisations.
-            Ces données concernent exclusivement le territoire guyanais.
+            Les données affichées ici sont celles contenues dans la base de donnée Camino. Elles sont susceptibles d’évoluer chaque jour au grès des décisions et de la fin de validité des titres et
+            autorisations. Ces données concernent exclusivement le territoire guyanais.
           </p>
           <p>
-            Les surfaces cumulées concernées par un titre ou une autorisation
-            d’exploration et ou d’exploitation n’impliquent pas qu’elles sont
-            effectivement explorées ou exploitées sur tout ou partie de l'année.
-            Les travaux miniers font l’objet de déclarations ou d’autorisations
-            distinctes portant sur une partie seulement de la surface des titres
-            miniers.
+            Les surfaces cumulées concernées par un titre ou une autorisation d’exploration et ou d’exploitation n’impliquent pas qu’elles sont effectivement explorées ou exploitées sur tout ou partie
+            de l'année. Les travaux miniers font l’objet de déclarations ou d’autorisations distinctes portant sur une partie seulement de la surface des titres miniers.
           </p>
           <div class="mb-xxl">
             <h3>Autorisations et titres d’exploration</h3>
@@ -337,10 +292,7 @@ export const PureGuyane = defineComponent<Props>({
             <div class="tablet-blobs">
               <div class="tablet-blob-1-4">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={data.value}
-                    renderItem={item => <>{item.data.titresArm}</>}
-                  />
+                  <LoadingElement data={data.value} renderItem={item => <>{item.data.titresArm}</>} />
                 </p>
                 <p class="bold text-center">Autorisations de recherche</p>
                 <p class="h6 text-center">
@@ -352,8 +304,8 @@ export const PureGuyane = defineComponent<Props>({
                         typesIds: 'ar',
                         statutsIds: 'val,mod',
                         territoires: 'guyane',
-                        vueId: 'table'
-                      }
+                        vueId: 'table',
+                      },
                     }}
                   >
                     Voir les titres
@@ -362,10 +314,7 @@ export const PureGuyane = defineComponent<Props>({
               </div>
               <div class="tablet-blob-1-4">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={data.value}
-                    renderItem={item => <>{item.data.titresPrm}</>}
-                  />
+                  <LoadingElement data={data.value} renderItem={item => <>{item.data.titresPrm}</>} />
                 </p>
                 <p class="bold text-center">Permis exclusifs de recherches</p>
                 <p class="h6 text-center">
@@ -377,8 +326,8 @@ export const PureGuyane = defineComponent<Props>({
                         typesIds: 'pr',
                         statutsIds: 'val,mod',
                         territoires: 'guyane',
-                        vueId: 'table'
-                      }
+                        vueId: 'table',
+                      },
                     }}
                   >
                     Voir les titres
@@ -387,17 +336,9 @@ export const PureGuyane = defineComponent<Props>({
               </div>
               <div class="tablet-blob-1-2">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={data.value}
-                    renderItem={item => (
-                      <>{numberFormat(item.data.surfaceExploration)} ha</>
-                    )}
-                  />
-                </p>
-                <p class="bold text-center">
-                  Surfaces cumulées des titres pouvant faire l'objet d'une
-                  activité d’exploration
+                  <LoadingElement data={data.value} renderItem={item => <>{numberFormat(item.data.surfaceExploration)} ha</>} />
                 </p>
+                <p class="bold text-center">Surfaces cumulées des titres pouvant faire l'objet d'une activité d’exploration</p>
               </div>
             </div>
           </div>
@@ -407,10 +348,7 @@ export const PureGuyane = defineComponent<Props>({
             <div class="tablet-blobs">
               <div class="tablet-blob-1-4">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={data.value}
-                    renderItem={item => <>{item.data.titresAxm}</>}
-                  />
+                  <LoadingElement data={data.value} renderItem={item => <>{item.data.titresAxm}</>} />
                 </p>
                 <p class="bold text-center">Autorisations d'exploitation</p>
                 <p class="h6 text-center">
@@ -422,8 +360,8 @@ export const PureGuyane = defineComponent<Props>({
                         typesIds: 'ax',
                         statutsIds: 'val,mod',
                         territoires: 'guyane',
-                        vueId: 'table'
-                      }
+                        vueId: 'table',
+                      },
                     }}
                   >
                     Voir les titres
@@ -432,10 +370,7 @@ export const PureGuyane = defineComponent<Props>({
               </div>
               <div class="tablet-blob-1-4">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={data.value}
-                    renderItem={item => <>{item.data.titresCxm}</>}
-                  />
+                  <LoadingElement data={data.value} renderItem={item => <>{item.data.titresCxm}</>} />
                 </p>
                 <p class="bold text-center">Concessions</p>
                 <p class="h6 text-center">
@@ -447,8 +382,8 @@ export const PureGuyane = defineComponent<Props>({
                         typesIds: 'cx',
                         statutsIds: 'val,mod',
                         territoires: 'guyane',
-                        vueId: 'table'
-                      }
+                        vueId: 'table',
+                      },
                     }}
                   >
                     Voir les titres
@@ -457,17 +392,9 @@ export const PureGuyane = defineComponent<Props>({
               </div>
               <div class="tablet-blob-1-4">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={data.value}
-                    renderItem={item => (
-                      <>{numberFormat(item.data.surfaceExploitation)} ha</>
-                    )}
-                  />
-                </p>
-                <p class="bold text-center">
-                  Surfaces cumulées des titres pouvant faire l'objet d'une
-                  activité d’exploitation
+                  <LoadingElement data={data.value} renderItem={item => <>{numberFormat(item.data.surfaceExploitation)} ha</>} />
                 </p>
+                <p class="bold text-center">Surfaces cumulées des titres pouvant faire l'objet d'une activité d’exploitation</p>
               </div>
             </div>
           </div>
@@ -476,19 +403,13 @@ export const PureGuyane = defineComponent<Props>({
         <h2>Production et activité minière légales</h2>
         <span class="separator" />
         <p class="mb-xl">
-          Les données affichées ici sont celles contenues dans la base de donnée
-          Camino. Elles sont stabilisées pour l’année n-2 mais sont susceptibles
-          d’évoluer jusqu’à la cloture de la collecte des déclarations
-          règlementaires de l’année précédente et l'année en cours. Ces données
-          concernent exclusivement le territoire guyanais.
+          Les données affichées ici sont celles contenues dans la base de donnée Camino. Elles sont stabilisées pour l’année n-2 mais sont susceptibles d’évoluer jusqu’à la cloture de la collecte des
+          déclarations règlementaires de l’année précédente et l'année en cours. Ces données concernent exclusivement le territoire guyanais.
         </p>
 
         <div class="flex">
           {tabs.value.map(tab => (
-            <div
-              key={tab}
-              class={`${tabActive.value === tab ? 'active' : ''} mr-xs`}
-            >
+            <div key={tab} class={`${tabActive.value === tab ? 'active' : ''} mr-xs`}>
               <div class="p-m btn-tab rnd-t-s" onClick={() => tabToggle(tab)}>
                 {tab}
               </div>
@@ -497,76 +418,38 @@ export const PureGuyane = defineComponent<Props>({
         </div>
 
         <div class="line-neutral width-full mb" />
-        <LoadingElement
-          data={data.value}
-          renderItem={item => (
-            <GuyaneActivite
-              statistiqueGuyane={item.parAnnee[tabActive.value]}
-              enConstruction={enConstruction(tabActive.value)}
-            />
-          )}
-        />
+        <LoadingElement data={data.value} renderItem={item => <GuyaneActivite statistiqueGuyane={item.parAnnee[tabActive.value]} enConstruction={enConstruction(tabActive.value)} />} />
 
         <div class="line-neutral width-full mb-xl" />
         <div id="evolution" class="mb-xxl">
           <h2>Activité</h2>
           <span class="separator" />
           <p>
-            Les données affichées ici sont celles contenues dans la base de
-            donnée Camino. Les données antérieures à 2018 reprises d’anciens
-            systèmes peuvent ne pas être exhautives. Ces données concernent
-            exclusivement le territoire guyanais.
+            Les données affichées ici sont celles contenues dans la base de donnée Camino. Les données antérieures à 2018 reprises d’anciens systèmes peuvent ne pas être exhautives. Ces données
+            concernent exclusivement le territoire guyanais.
           </p>
           <div class="mb-xl">
             <h3>Autorisations de recherche</h3>
             <hr />
-            <LoadingElement
-              data={data.value}
-              renderItem={item => (
-                <ConfigurableChart
-                  chartConfiguration={armChartConfiguration(item.data)}
-                />
-              )}
-            />
+            <LoadingElement data={data.value} renderItem={item => <ConfigurableChart chartConfiguration={armChartConfiguration(item.data)} />} />
           </div>
           <div class="mb-xl">
             <h3>Permis de recherches</h3>
             <hr />
-            <LoadingElement
-              data={data.value}
-              renderItem={item => (
-                <ConfigurableChart
-                  chartConfiguration={prmChartConfiguration(item.data)}
-                />
-              )}
-            />
+            <LoadingElement data={data.value} renderItem={item => <ConfigurableChart chartConfiguration={prmChartConfiguration(item.data)} />} />
           </div>
           <div class="mb-xl">
             <h3>Autorisations d'exploitation</h3>
             <hr />
-            <LoadingElement
-              data={data.value}
-              renderItem={item => (
-                <ConfigurableChart
-                  chartConfiguration={axmChartConfiguration(item.data)}
-                />
-              )}
-            />
+            <LoadingElement data={data.value} renderItem={item => <ConfigurableChart chartConfiguration={axmChartConfiguration(item.data)} />} />
           </div>
           <div class="mb-xl">
             <h3>Concessions</h3>
             <hr />
-            <LoadingElement
-              data={data.value}
-              renderItem={item => (
-                <ConfigurableChart
-                  chartConfiguration={cxmChartConfiguration(item.data)}
-                />
-              )}
-            />
+            <LoadingElement data={data.value} renderItem={item => <ConfigurableChart chartConfiguration={cxmChartConfiguration(item.data)} />} />
           </div>
         </div>
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/statistiques/mineraux-metaux-metropole.stories.tsx b/packages/ui/src/components/statistiques/mineraux-metaux-metropole.stories.tsx
index d64f68ae8..b927d392f 100644
--- a/packages/ui/src/components/statistiques/mineraux-metaux-metropole.stories.tsx
+++ b/packages/ui/src/components/statistiques/mineraux-metaux-metropole.stories.tsx
@@ -6,7 +6,7 @@ import { toCaminoAnnee } from 'camino-common/src/date'
 const meta: Meta = {
   title: 'Components/Statistiques/MinerauxMetauxMetropole',
   component: PureMinerauxMetauxMetropole,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -28,7 +28,7 @@ export const DefaultNoSnapshot: Story = () => (
             [toCaminoAnnee('2018')]: 138.8,
             [toCaminoAnnee('2019')]: 120.76,
             [toCaminoAnnee('2020')]: 123.49600000000001,
-            [toCaminoAnnee('2021')]: 142.764
+            [toCaminoAnnee('2021')]: 142.764,
           },
           naca: {
             [toCaminoAnnee('2009')]: {
@@ -37,7 +37,7 @@ export const DefaultNoSnapshot: Story = () => (
               '75': 48.724,
               '76': 867.001,
               '84': 635.592,
-              '93': 274.732
+              '93': 274.732,
             },
             [toCaminoAnnee('2010')]: {
               '27': 11.645,
@@ -45,7 +45,7 @@ export const DefaultNoSnapshot: Story = () => (
               '75': 37.23,
               '76': 990.091,
               '84': 579.385,
-              '93': 500.564
+              '93': 500.564,
             },
             [toCaminoAnnee('2011')]: {
               '27': 0,
@@ -53,7 +53,7 @@ export const DefaultNoSnapshot: Story = () => (
               '75': 32.425,
               '76': 958.849,
               '84': 959.442,
-              '93': 421.48
+              '93': 421.48,
             },
             [toCaminoAnnee('2012')]: {
               '27': 0,
@@ -61,7 +61,7 @@ export const DefaultNoSnapshot: Story = () => (
               '75': 35.97,
               '76': 797.099,
               '84': 936.78,
-              '93': 1042.67
+              '93': 1042.67,
             },
             [toCaminoAnnee('2013')]: {
               '27': 0,
@@ -69,7 +69,7 @@ export const DefaultNoSnapshot: Story = () => (
               '75': 37.79,
               '76': 1010.892,
               '84': 907.994,
-              '93': 1300.854
+              '93': 1300.854,
             },
             [toCaminoAnnee('2014')]: {
               '27': 0,
@@ -77,7 +77,7 @@ export const DefaultNoSnapshot: Story = () => (
               '75': 34.285,
               '76': 1062.216,
               '84': 763.55,
-              '93': 843.83
+              '93': 843.83,
             },
             [toCaminoAnnee('2015')]: {
               '27': 0,
@@ -85,7 +85,7 @@ export const DefaultNoSnapshot: Story = () => (
               '75': 37.303,
               '76': 1007.542,
               '84': 799.949,
-              '93': 135.02
+              '93': 135.02,
             },
             [toCaminoAnnee('2016')]: {
               '27': 0,
@@ -93,7 +93,7 @@ export const DefaultNoSnapshot: Story = () => (
               '75': 35.841,
               '76': 926.388,
               '84': 830.577,
-              '93': 95.859
+              '93': 95.859,
             },
             [toCaminoAnnee('2017')]: {
               '27': 0,
@@ -101,7 +101,7 @@ export const DefaultNoSnapshot: Story = () => (
               '75': 34.219,
               '76': 1082.021,
               '84': 869.676,
-              '93': 91.718
+              '93': 91.718,
             },
             [toCaminoAnnee('2018')]: {
               '27': 0,
@@ -109,7 +109,7 @@ export const DefaultNoSnapshot: Story = () => (
               '75': 31.71,
               '76': 997.862,
               '84': 870.718,
-              '93': 150.524
+              '93': 150.524,
             },
             [toCaminoAnnee('2019')]: {
               '27': 0,
@@ -117,22 +117,22 @@ export const DefaultNoSnapshot: Story = () => (
               '75': 36.357,
               '76': 997.862,
               '84': 792.394,
-              '93': 196.828
+              '93': 196.828,
             },
             [toCaminoAnnee('2020')]: {
               '44': 0,
               '75': 0,
               '76': 0,
               '84': 0,
-              '93': 0
+              '93': 0,
             },
             [toCaminoAnnee('2021')]: {
               '44': 0,
               '75': 0,
               '76': 0,
               '84': 0,
-              '93': 0
-            }
+              '93': 0,
+            },
           },
           nacb: {
             [toCaminoAnnee('2020')]: {
@@ -140,15 +140,15 @@ export const DefaultNoSnapshot: Story = () => (
               '75': 1.0224,
               '76': 1089.707,
               '84': 0,
-              '93': 0
+              '93': 0,
             },
             [toCaminoAnnee('2021')]: {
               '44': 0,
               '75': 1.8883,
               '76': 0,
               '84': 0,
-              '93': 0
-            }
+              '93': 0,
+            },
           },
           nacc: {
             [toCaminoAnnee('2020')]: {
@@ -156,16 +156,16 @@ export const DefaultNoSnapshot: Story = () => (
               '75': 0,
               '76': 0,
               '84': 470.054,
-              '93': 215.397
+              '93': 215.397,
             },
             [toCaminoAnnee('2021')]: {
               '44': 0,
               '75': 0,
               '76': 1212.682,
               '84': 430.545,
-              '93': 194.664
-            }
-          }
+              '93': 194.664,
+            },
+          },
         },
         surfaceExploitation: 21050,
         surfaceExploration: 297966,
@@ -173,25 +173,25 @@ export const DefaultNoSnapshot: Story = () => (
           instructionExploitation: 2,
           instructionExploration: 11,
           valCxm: 19,
-          valPrm: 3
+          valPrm: 3,
         },
         fiscaliteParSubstanceParAnnee: {
           aloh: {
             [toCaminoAnnee('2021')]: 1_224_000,
-            [toCaminoAnnee('2022')]: 1_250_000
+            [toCaminoAnnee('2022')]: 1_250_000,
           },
           naca: {
             [toCaminoAnnee('2021')]: 1_224_000,
-            [toCaminoAnnee('2022')]: 1_250_000
+            [toCaminoAnnee('2022')]: 1_250_000,
           },
           nacb: {
             [toCaminoAnnee('2021')]: 1_225_000,
-            [toCaminoAnnee('2022')]: 700
+            [toCaminoAnnee('2022')]: 700,
           },
           nacc: {
             [toCaminoAnnee('2021')]: 800,
-            [toCaminoAnnee('2022')]: 2_000
-          }
+            [toCaminoAnnee('2022')]: 2_000,
+          },
         },
         prm: {
           depot: {
@@ -199,29 +199,29 @@ export const DefaultNoSnapshot: Story = () => (
             2018: 2,
             2019: 0,
             2020: 4,
-            2021: 0
+            2021: 0,
           },
           octroiEtProlongation: {
             2017: 0,
             2018: 1,
             2019: 3,
             2020: 4,
-            2021: 0
+            2021: 0,
           },
           refusees: {
             2017: 0,
             2018: 1,
             2019: 0,
             2020: 0,
-            2021: 1
+            2021: 1,
           },
           surface: {
             2017: 0,
             2018: 3000,
             2019: 0,
             2020: 50000,
-            2021: 0
-          }
+            2021: 0,
+          },
         },
         cxm: {
           depot: {
@@ -229,44 +229,34 @@ export const DefaultNoSnapshot: Story = () => (
             2018: 2,
             2019: 0,
             2020: 4,
-            2021: 0
+            2021: 0,
           },
           octroiEtProlongation: {
             2017: 0,
             2018: 1,
             2019: 3,
             2020: 4,
-            2021: 0
+            2021: 0,
           },
           refusees: {
             2017: 0,
             2018: 1,
             2019: 0,
             2020: 0,
-            2021: 1
+            2021: 1,
           },
           surface: {
             2017: 0,
             2018: 3000,
             2019: 0,
             2020: 50000,
-            2021: 0
-          }
-        }
+            2021: 0,
+          },
+        },
       })
     }
   />
 )
 
-export const Loading: Story = () => (
-  <PureMinerauxMetauxMetropole
-    getStats={() =>
-      new Promise<StatistiquesMinerauxMetauxMetropole>(resolve => {})
-    }
-  />
-)
-export const WithError: Story = () => (
-  <PureMinerauxMetauxMetropole
-    getStats={() => Promise.reject(new Error('because reasons'))}
-  />
-)
+export const Loading: Story = () => <PureMinerauxMetauxMetropole getStats={() => new Promise<StatistiquesMinerauxMetauxMetropole>(resolve => {})} />
+export const WithError: Story = () => <PureMinerauxMetauxMetropole getStats={() => Promise.reject(new Error('because reasons'))} />
diff --git a/packages/ui/src/components/statistiques/mineraux-metaux-metropole.tsx b/packages/ui/src/components/statistiques/mineraux-metaux-metropole.tsx
index bafe49e00..ac8868b39 100644
--- a/packages/ui/src/components/statistiques/mineraux-metaux-metropole.tsx
+++ b/packages/ui/src/components/statistiques/mineraux-metaux-metropole.tsx
@@ -8,29 +8,19 @@ import { numberFormat } from '@/utils/number-format'
 import { CaminoAnnee, isAnnee } from 'camino-common/src/date'
 import { ref, onMounted, defineComponent, FunctionalComponent } from 'vue'
 import { ChartConfiguration, ChartData, ChartDataset } from 'chart.js'
-import {
-  SubstancesFiscale,
-  SUBSTANCES_FISCALES_IDS
-} from 'camino-common/src/static/substancesFiscales'
+import { SubstancesFiscale, SUBSTANCES_FISCALES_IDS } from 'camino-common/src/static/substancesFiscales'
 import { Unites } from 'camino-common/src/static/unites'
 import { onlyUnique } from 'camino-common/src/typescript-tools'
 import { RegionId, isRegionId, Regions } from 'camino-common/src/static/region'
 import { CHART_COLORS, nextColor } from '../_charts/utils'
 import styles from './mineraux-metaux-metropole.module.css'
-const getStats = async (): Promise<StatistiquesMinerauxMetauxMetropole> =>
-  fetchWithJson(CaminoRestRoutes.statistiquesMinerauxMetauxMetropole, {})
+const getStats = async (): Promise<StatistiquesMinerauxMetauxMetropole> => fetchWithJson(CaminoRestRoutes.statistiquesMinerauxMetauxMetropole, {})
 
-export const MinerauxMetauxMetropole: FunctionalComponent = () => (
-  <PureMinerauxMetauxMetropole getStats={getStats} />
-)
+export const MinerauxMetauxMetropole: FunctionalComponent = () => <PureMinerauxMetauxMetropole getStats={getStats} />
 // Demandé par le router car utilisé dans un import asynchrone /shrug
 MinerauxMetauxMetropole.displayName = 'MinerauxMetauxMetropole'
-const bauxiteChartConfiguration = (
-  data: StatistiquesMinerauxMetauxMetropole
-): ChartConfiguration => {
-  const annees: CaminoAnnee[] = Object.keys(data.substances.aloh).filter(
-    isAnnee
-  )
+const bauxiteChartConfiguration = (data: StatistiquesMinerauxMetauxMetropole): ChartConfiguration => {
+  const annees: CaminoAnnee[] = Object.keys(data.substances.aloh).filter(isAnnee)
   const label = Unites[SubstancesFiscale.aloh.uniteId].nom
   const chartData: ChartData = {
     labels: annees,
@@ -39,9 +29,9 @@ const bauxiteChartConfiguration = (
         type: 'bar',
         yAxisID: 'bar',
         data: annees.map(annee => data.substances.aloh[annee] ?? 0),
-        backgroundColor: 'rgb(118, 182, 189)'
-      }
-    ]
+        backgroundColor: 'rgb(118, 182, 189)',
+      },
+    ],
   }
   return {
     type: 'bar',
@@ -51,58 +41,41 @@ const bauxiteChartConfiguration = (
       responsive: true,
       plugins: {
         legend: {
-          display: false
+          display: false,
         },
         title: {
           display: true,
-          text: `Production Bauxite (${
-            Unites[SubstancesFiscale.naca.uniteId].nom
-          })`,
+          text: `Production Bauxite (${Unites[SubstancesFiscale.naca.uniteId].nom})`,
           font: {
-            size: 16
-          }
-        }
-      }
-    }
+            size: 16,
+          },
+        },
+      },
+    },
   }
 }
 
-const selsChartConfiguration = (
-  data: StatistiquesMinerauxMetauxMetropole
-): ChartConfiguration => {
-  const annees: CaminoAnnee[] = [
-    ...Object.keys(data.substances.naca),
-    ...Object.keys(data.substances.nacb),
-    ...Object.keys(data.substances.nacc)
-  ]
-    .filter(isAnnee)
-    .filter(onlyUnique)
+const selsChartConfiguration = (data: StatistiquesMinerauxMetauxMetropole): ChartConfiguration => {
+  const annees: CaminoAnnee[] = [...Object.keys(data.substances.naca), ...Object.keys(data.substances.nacb), ...Object.keys(data.substances.nacc)].filter(isAnnee).filter(onlyUnique)
 
   const regionsIds: RegionId[] = annees
-    .flatMap(annee => [
-      ...Object.keys(data.substances?.naca[annee] ?? {}),
-      ...Object.keys(data.substances?.nacb[annee] ?? {}),
-      ...Object.keys(data.substances?.nacc[annee] ?? {})
-    ])
+    .flatMap(annee => [...Object.keys(data.substances?.naca[annee] ?? {}), ...Object.keys(data.substances?.nacb[annee] ?? {}), ...Object.keys(data.substances?.nacc[annee] ?? {})])
     .filter(isRegionId)
     .filter(onlyUnique)
 
   const datasetByRegion: ChartDataset[] = regionsIds.map((regionId, index) => {
     const label = Regions[regionId].nom
-    const sum = (annee: CaminoAnnee) =>
-      (data.substances.naca[annee]?.[regionId] ?? 0) +
-      (data.substances.nacb[annee]?.[regionId] ?? 0) +
-      (data.substances.nacc[annee]?.[regionId] ?? 0)
+    const sum = (annee: CaminoAnnee) => (data.substances.naca[annee]?.[regionId] ?? 0) + (data.substances.nacb[annee]?.[regionId] ?? 0) + (data.substances.nacc[annee]?.[regionId] ?? 0)
     return {
       type: 'bar',
       label: label[0].toUpperCase() + label.substring(1),
       data: annees.map(sum),
-      backgroundColor: nextColor(index)
+      backgroundColor: nextColor(index),
     }
   })
   const chartData: ChartData = {
     labels: annees,
-    datasets: datasetByRegion
+    datasets: datasetByRegion,
   }
   return {
     type: 'bar',
@@ -113,31 +86,27 @@ const selsChartConfiguration = (
       plugins: {
         title: {
           display: true,
-          text: `Production Sels (${
-            Unites[SubstancesFiscale.naca.uniteId].nom
-          })`,
+          text: `Production Sels (${Unites[SubstancesFiscale.naca.uniteId].nom})`,
           font: {
-            size: 16
-          }
-        }
+            size: 16,
+          },
+        },
       },
       interaction: {
         mode: 'index',
-        intersect: false
+        intersect: false,
       },
       scales: {
         x: {
-          stacked: true
+          stacked: true,
         },
-        y: { stacked: true }
-      }
-    }
+        y: { stacked: true },
+      },
+    },
   }
 }
 
-const perChartConfiguration = (
-  data: StatistiquesMinerauxMetauxMetropole
-): ChartConfiguration => {
+const perChartConfiguration = (data: StatistiquesMinerauxMetauxMetropole): ChartConfiguration => {
   const annees: CaminoAnnee[] = [...Object.keys(data.prm.depot)].filter(isAnnee)
   const chartData: ChartData = {
     labels: annees,
@@ -147,30 +116,30 @@ const perChartConfiguration = (
         label: 'Demandes de PER déposées (octroi et prolongation)',
         yAxisID: 'demandes',
         data: annees.map(annee => data.prm.depot[annee]),
-        backgroundColor: CHART_COLORS.green
+        backgroundColor: CHART_COLORS.green,
       },
       {
         type: 'bar',
         label: 'Demandes de PER octroyées et prolongées',
         yAxisID: 'demandes',
         data: annees.map(annee => data.prm.octroiEtProlongation[annee]),
-        backgroundColor: CHART_COLORS.blue
+        backgroundColor: CHART_COLORS.blue,
       },
       {
         type: 'bar',
         label: 'Demandes de PER refusées (octroi et prolongation)',
         yAxisID: 'demandes',
         data: annees.map(annee => data.prm.refusees[annee]),
-        backgroundColor: CHART_COLORS.purple
+        backgroundColor: CHART_COLORS.purple,
       },
       {
         type: 'line',
         label: 'Surface cumulée des permis de recherche (ha) accordés',
         yAxisID: 'surface',
         data: annees.map(annee => data.prm.surface[annee]),
-        backgroundColor: CHART_COLORS.blue
-      }
-    ]
+        backgroundColor: CHART_COLORS.blue,
+      },
+    ],
   }
 
   return {
@@ -182,33 +151,31 @@ const perChartConfiguration = (
           // TODO 2022-11-02 trouver un moyen de prendre plus de place
           display: true,
           position: 'top',
-          fullSize: true
-        }
+          fullSize: true,
+        },
       },
       locale: 'fr-FR',
       responsive: true,
       interaction: {
         mode: 'index',
-        intersect: false
+        intersect: false,
       },
       scales: {
         demandes: {
           type: 'linear',
           position: 'left',
-          ticks: { stepSize: 1 }
+          ticks: { stepSize: 1 },
         },
         surface: {
           type: 'linear',
-          position: 'right'
-        }
-      }
-    }
+          position: 'right',
+        },
+      },
+    },
   }
 }
 
-const concessionChartConfiguration = (
-  data: StatistiquesMinerauxMetauxMetropole
-): ChartConfiguration => {
+const concessionChartConfiguration = (data: StatistiquesMinerauxMetauxMetropole): ChartConfiguration => {
   const annees: CaminoAnnee[] = [...Object.keys(data.cxm.depot)].filter(isAnnee)
   const chartData: ChartData = {
     labels: annees,
@@ -218,30 +185,30 @@ const concessionChartConfiguration = (
         label: 'Demandes de concessions déposées (octroi et prolongation)',
         yAxisID: 'demandes',
         data: annees.map(annee => data.cxm.depot[annee]),
-        backgroundColor: CHART_COLORS.green
+        backgroundColor: CHART_COLORS.green,
       },
       {
         type: 'bar',
         label: 'Demandes de concessions octroyées et prolongées',
         yAxisID: 'demandes',
         data: annees.map(annee => data.cxm.octroiEtProlongation[annee]),
-        backgroundColor: CHART_COLORS.blue
+        backgroundColor: CHART_COLORS.blue,
       },
       {
         type: 'bar',
         label: 'Demandes de concessions refusées (octroi et prolongation)',
         yAxisID: 'demandes',
         data: annees.map(annee => data.cxm.refusees[annee]),
-        backgroundColor: CHART_COLORS.purple
+        backgroundColor: CHART_COLORS.purple,
       },
       {
         type: 'line',
         label: 'Surface cumulée des concessions (ha) accordées',
         yAxisID: 'surface',
         data: annees.map(annee => data.cxm.surface[annee]),
-        backgroundColor: CHART_COLORS.blue
-      }
-    ]
+        backgroundColor: CHART_COLORS.blue,
+      },
+    ],
   }
 
   return {
@@ -253,27 +220,27 @@ const concessionChartConfiguration = (
           // TODO 2022-11-02 trouver un moyen de prendre plus de place
           display: true,
           position: 'top',
-          fullSize: true
-        }
+          fullSize: true,
+        },
       },
       locale: 'fr-FR',
       responsive: true,
       interaction: {
         mode: 'index',
-        intersect: false
+        intersect: false,
       },
       scales: {
         demandes: {
           type: 'linear',
           position: 'left',
-          ticks: { stepSize: 1 }
+          ticks: { stepSize: 1 },
         },
         surface: {
           type: 'linear',
-          position: 'right'
-        }
-      }
-    }
+          position: 'right',
+        },
+      },
+    },
   }
 }
 
@@ -285,14 +252,12 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
   props: ['getStats'] as unknown as undefined,
   setup(props) {
     const data = ref<AsyncData<StatistiquesMinerauxMetauxMetropole>>({
-      status: 'LOADING'
+      status: 'LOADING',
     })
 
     const anneesBauxite = ref<CaminoAnnee[]>([])
 
-    const bauxiteTabId = ref<CaminoAnnee>(
-      anneesBauxite.value[anneesBauxite.value.length - 1]
-    )
+    const bauxiteTabId = ref<CaminoAnnee>(anneesBauxite.value[anneesBauxite.value.length - 1])
 
     const bauxiteFiscalite = ref<number>(0)
 
@@ -300,18 +265,13 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
       if (annee !== bauxiteTabId.value) {
         bauxiteTabId.value = annee
         if (data.value.status === 'LOADED') {
-          bauxiteFiscalite.value =
-            data.value.value.fiscaliteParSubstanceParAnnee[
-              SUBSTANCES_FISCALES_IDS.bauxite
-            ]?.[annee] ?? 0
+          bauxiteFiscalite.value = data.value.value.fiscaliteParSubstanceParAnnee[SUBSTANCES_FISCALES_IDS.bauxite]?.[annee] ?? 0
         }
       }
     }
     const anneesSels = ref<CaminoAnnee[]>([])
 
-    const selsTabId = ref<CaminoAnnee>(
-      anneesSels.value[anneesSels.value.length - 1]
-    )
+    const selsTabId = ref<CaminoAnnee>(anneesSels.value[anneesSels.value.length - 1])
 
     const selsFiscalite = ref<number>(0)
 
@@ -320,16 +280,9 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
         selsTabId.value = annee
         if (data.value.status === 'LOADED') {
           selsFiscalite.value =
-            data.value.value.fiscaliteParSubstanceParAnnee[
-              SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodiumContenu_
-            ]?.[annee] +
-              data.value.value.fiscaliteParSubstanceParAnnee[
-                SUBSTANCES_FISCALES_IDS
-                  .sel_ChlorureDeSodium_extraitEnDissolutionParSondage
-              ]?.[annee] +
-              data.value.value.fiscaliteParSubstanceParAnnee[
-                SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitParAbattage
-              ]?.[annee] ?? 0
+            data.value.value.fiscaliteParSubstanceParAnnee[SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodiumContenu_]?.[annee] +
+              data.value.value.fiscaliteParSubstanceParAnnee[SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitEnDissolutionParSondage]?.[annee] +
+              data.value.value.fiscaliteParSubstanceParAnnee[SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitParAbattage]?.[annee] ?? 0
         }
       }
     }
@@ -339,30 +292,13 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
         const stats = await props.getStats()
         data.value = {
           status: 'LOADED',
-          value: stats
+          value: stats,
         }
-        anneesBauxite.value = Object.keys(
-          stats.fiscaliteParSubstanceParAnnee[SUBSTANCES_FISCALES_IDS.bauxite]
-        )
-          .filter(isAnnee)
-          .sort()
+        anneesBauxite.value = Object.keys(stats.fiscaliteParSubstanceParAnnee[SUBSTANCES_FISCALES_IDS.bauxite]).filter(isAnnee).sort()
         anneesSels.value = [
-          ...Object.keys(
-            stats.fiscaliteParSubstanceParAnnee[
-              SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodiumContenu_
-            ]
-          ),
-          ...Object.keys(
-            stats.fiscaliteParSubstanceParAnnee[
-              SUBSTANCES_FISCALES_IDS
-                .sel_ChlorureDeSodium_extraitEnDissolutionParSondage
-            ]
-          ),
-          ...Object.keys(
-            stats.fiscaliteParSubstanceParAnnee[
-              SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitParAbattage
-            ]
-          )
+          ...Object.keys(stats.fiscaliteParSubstanceParAnnee[SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodiumContenu_]),
+          ...Object.keys(stats.fiscaliteParSubstanceParAnnee[SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitEnDissolutionParSondage]),
+          ...Object.keys(stats.fiscaliteParSubstanceParAnnee[SUBSTANCES_FISCALES_IDS.sel_ChlorureDeSodium_extraitParAbattage]),
         ]
           .filter(isAnnee)
           .filter(onlyUnique)
@@ -373,7 +309,7 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
         console.error(e)
         data.value = {
           status: 'ERROR',
-          message: e.message ?? "Une erreur s'est produite"
+          message: e.message ?? "Une erreur s'est produite",
         }
       }
     })
@@ -381,22 +317,15 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
     return () => (
       <div class="content">
         <div id="etat" class="mb-xxl mt">
-          <h2>
-            État du domaine minier des substances non énergétiques, en
-            métropole, en temps réel
-          </h2>
+          <h2>État du domaine minier des substances non énergétiques, en métropole, en temps réel</h2>
           <span class="separator" />
           <p>
-            Les données affichées ici sont celles contenues dans la base de
-            donnée Camino. Elles sont susceptibles d’évoluer chaque jour au grès
-            des décisions et de la fin de validité des titres et autorisations.
+            Les données affichées ici sont celles contenues dans la base de donnée Camino. Elles sont susceptibles d’évoluer chaque jour au grès des décisions et de la fin de validité des titres et
+            autorisations.
           </p>
           <p>
-            Les surfaces cumulées concernées par un titre ou une autorisation
-            n’impliquent pas qu’elles sont effectivement explorées ou exploitées
-            sur tout ou partie de l'année. Les travaux miniers font l’objet de
-            déclarations ou d’autorisations distinctes portant sur une partie
-            seulement de la surface des titres miniers.
+            Les surfaces cumulées concernées par un titre ou une autorisation n’impliquent pas qu’elles sont effectivement explorées ou exploitées sur tout ou partie de l'année. Les travaux miniers
+            font l’objet de déclarations ou d’autorisations distinctes portant sur une partie seulement de la surface des titres miniers.
           </p>
           <div class="mb-xxl">
             <h3>Titres d’exploration</h3>
@@ -404,22 +333,13 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
             <div class="tablet-blobs">
               <div class="tablet-blob-1-3">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={data.value}
-                    renderItem={item => (
-                      <>{item.titres.instructionExploration}</>
-                    )}
-                  />
+                  <LoadingElement data={data.value} renderItem={item => <>{item.titres.instructionExploration}</>} />
                 </p>
                 <div>
                   <p class="bold text-center">
                     Demande
-                    {data.value.status === 'LOADED' &&
-                    data.value.value.titres.instructionExploration > 1
-                      ? 's'
-                      : ''}
-                    en cours d'instruction (initiale et modification en
-                    instance)
+                    {data.value.status === 'LOADED' && data.value.value.titres.instructionExploration > 1 ? 's' : ''}
+                    en cours d'instruction (initiale et modification en instance)
                   </p>
                 </div>
                 <p class="h6 text-center">
@@ -431,8 +351,8 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
                         typesIds: 'ar,ap,pr',
                         statutsIds: 'dmi,mod',
                         territoires: 'FR',
-                        vueId: 'table'
-                      }
+                        vueId: 'table',
+                      },
                     }}
                   >
                     Voir les titres
@@ -441,10 +361,7 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
               </div>
               <div class="tablet-blob-1-3">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={data.value}
-                    renderItem={item => <>{item.titres.valPrm}</>}
-                  />
+                  <LoadingElement data={data.value} renderItem={item => <>{item.titres.valPrm}</>} />
                 </p>
                 <p class="bold text-center">Permis exclusifs de recherches</p>
                 <p class="h6 text-center">
@@ -456,8 +373,8 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
                         typesIds: 'pr',
                         statutsIds: 'val',
                         territoires: 'FR',
-                        vueId: 'table'
-                      }
+                        vueId: 'table',
+                      },
                     }}
                   >
                     Voir les titres
@@ -466,17 +383,9 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
               </div>
               <div class="tablet-blob-1-3">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={data.value}
-                    renderItem={item => (
-                      <>{numberFormat(item.surfaceExploration)} ha</>
-                    )}
-                  />
-                </p>
-                <p class="bold text-center">
-                  Surfaces cumulées des titres pouvant faire l'objet d'une
-                  activité d’exploration
+                  <LoadingElement data={data.value} renderItem={item => <>{numberFormat(item.surfaceExploration)} ha</>} />
                 </p>
+                <p class="bold text-center">Surfaces cumulées des titres pouvant faire l'objet d'une activité d’exploration</p>
               </div>
             </div>
           </div>
@@ -486,22 +395,13 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
             <div class="tablet-blobs">
               <div class="tablet-blob-1-3">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={data.value}
-                    renderItem={item => (
-                      <>{numberFormat(item.titres.instructionExploitation)}</>
-                    )}
-                  />
+                  <LoadingElement data={data.value} renderItem={item => <>{numberFormat(item.titres.instructionExploitation)}</>} />
                 </p>
                 <div>
                   <p class="bold text-center">
                     Demande
-                    {data.value.status === 'LOADED' &&
-                    data.value.value.titres.instructionExploitation > 1
-                      ? 's'
-                      : ''}
-                    en cours d'instruction (initiale et modification en
-                    instance)
+                    {data.value.status === 'LOADED' && data.value.value.titres.instructionExploitation > 1 ? 's' : ''}
+                    en cours d'instruction (initiale et modification en instance)
                   </p>
                 </div>
                 <p class="h6 text-center">
@@ -513,8 +413,8 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
                         typesIds: 'ax,cx,px',
                         statutsIds: 'dmi,mod',
                         territoires: 'FR',
-                        vueId: 'table'
-                      }
+                        vueId: 'table',
+                      },
                     }}
                   >
                     Voir les titres
@@ -523,18 +423,12 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
               </div>
               <div class="tablet-blob-1-3">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={data.value}
-                    renderItem={item => <>{numberFormat(item.titres.valCxm)}</>}
-                  />
+                  <LoadingElement data={data.value} renderItem={item => <>{numberFormat(item.titres.valCxm)}</>} />
                 </p>
                 <div>
                   <p class="bold text-center">
                     Concession
-                    {data.value.status === 'LOADED' &&
-                    data.value.value.titres.valCxm > 1
-                      ? 's'
-                      : ''}
+                    {data.value.status === 'LOADED' && data.value.value.titres.valCxm > 1 ? 's' : ''}
                   </p>
                 </div>
                 <p class="h6 text-center">
@@ -546,8 +440,8 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
                         typesIds: 'cx',
                         statutsIds: 'val',
                         territoires: 'FR',
-                        vueId: 'table'
-                      }
+                        vueId: 'table',
+                      },
                     }}
                   >
                     Voir les titres
@@ -556,17 +450,9 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
               </div>
               <div class="tablet-blob-1-3">
                 <p class="h0 text-center">
-                  <LoadingElement
-                    data={data.value}
-                    renderItem={item => (
-                      <>{numberFormat(item.surfaceExploitation)} ha</>
-                    )}
-                  />
-                </p>
-                <p class="bold text-center">
-                  Surfaces cumulées des titres pouvant faire l'objet d'une
-                  activité d’exploitation
+                  <LoadingElement data={data.value} renderItem={item => <>{numberFormat(item.surfaceExploitation)} ha</>} />
                 </p>
+                <p class="bold text-center">Surfaces cumulées des titres pouvant faire l'objet d'une activité d’exploitation</p>
               </div>
             </div>
           </div>
@@ -574,15 +460,9 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
 
         <div class="line-neutral width-full mb" />
 
-        <h2>
-          Production annuelle et fiscalité minière des ressources minérales non
-          énergétiques, par famille de substances
-        </h2>
+        <h2>Production annuelle et fiscalité minière des ressources minérales non énergétiques, par famille de substances</h2>
         <span class="separator" />
-        <p class="mb-xl">
-          Données contenues dans la base de données Camino, stabilisées pour
-          l’année n-1.
-        </p>
+        <p class="mb-xl">Données contenues dans la base de données Camino, stabilisées pour l’année n-1.</p>
 
         <div class={styles['grid-container']}>
           <div style="grid-column-end: span 2">
@@ -590,91 +470,47 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
             <hr />
           </div>
           <div>
-            <ChartWithExport
-              data={data.value}
-              getConfiguration={item => bauxiteChartConfiguration(item)}
-            />
+            <ChartWithExport data={data.value} getConfiguration={item => bauxiteChartConfiguration(item)} />
           </div>
           <div>
             <h4>Fiscalité minière</h4>
-            <p>
-              Les données sont calculées à partir des données de production. Il
-              s'agit des sommes dûes et non des recettes effectivement perçues
-              par les finances publiques.
-            </p>
+            <p>Les données sont calculées à partir des données de production. Il s'agit des sommes dûes et non des recettes effectivement perçues par les finances publiques.</p>
             <div class="flex">
               {anneesBauxite.value.map(tab => (
-                <div
-                  key={tab}
-                  class={`${bauxiteTabId.value === tab ? 'active' : ''} mr-xs`}
-                >
-                  <button
-                    id={`cmn-titre-tab-${tab}`}
-                    class="p-m btn-tab rnd-t-s"
-                    onClick={() => bauxiteTabUpdate(tab)}
-                  >
+                <div key={tab} class={`${bauxiteTabId.value === tab ? 'active' : ''} mr-xs`}>
+                  <button id={`cmn-titre-tab-${tab}`} class="p-m btn-tab rnd-t-s" onClick={() => bauxiteTabUpdate(tab)}>
                     {tab}
                   </button>
                 </div>
               ))}
             </div>
             <div class="line-neutral mb" />
-            <p>
-              Sommes dûes par les opérateurs miniers exploitant de la bauxite au
-              titre des redevances départementale et communale des mines, hors
-              frais de gestion
-            </p>
+            <p>Sommes dûes par les opérateurs miniers exploitant de la bauxite au titre des redevances départementale et communale des mines, hors frais de gestion</p>
             <p class="h1 text-center color-info bold">
-              <LoadingElement
-                data={data.value}
-                renderItem={_item => (
-                  <>{numberFormat(bauxiteFiscalite.value)} €</>
-                )}
-              />
+              <LoadingElement data={data.value} renderItem={_item => <>{numberFormat(bauxiteFiscalite.value)} €</>} />
             </p>
           </div>
           <div style="grid-column-end: span 2">
             <h3>Sels (sel de sodium, sel de potassium, sel gemme…)</h3>
             <hr />
           </div>
-          <ChartWithExport
-            data={data.value}
-            getConfiguration={item => selsChartConfiguration(item)}
-          />
+          <ChartWithExport data={data.value} getConfiguration={item => selsChartConfiguration(item)} />
           <div>
             <h4>Fiscalité minière</h4>
-            <p>
-              Les données sont calculées à partir des données de production. Il
-              s'agit des sommes dûes et non des recettes effectivement perçues
-              par les finances publiques.
-            </p>
+            <p>Les données sont calculées à partir des données de production. Il s'agit des sommes dûes et non des recettes effectivement perçues par les finances publiques.</p>
             <div class="flex">
               {anneesSels.value.map(tab => (
-                <div
-                  key={tab}
-                  class={`${selsTabId.value === tab ? 'active' : ''} mr-xs`}
-                >
-                  <button
-                    id={`cmn-titre-tab-${tab}`}
-                    class="p-m btn-tab rnd-t-s"
-                    onClick={_item => selsTabUpdate(tab)}
-                  >
+                <div key={tab} class={`${selsTabId.value === tab ? 'active' : ''} mr-xs`}>
+                  <button id={`cmn-titre-tab-${tab}`} class="p-m btn-tab rnd-t-s" onClick={_item => selsTabUpdate(tab)}>
                     {tab}
                   </button>
                 </div>
               ))}
             </div>
             <div class="line-neutral mb" />
-            <p>
-              Sommes dûes par les opérateurs miniers exploitant des sels au
-              titre des redevances départementale et communale des mines, hors
-              frais de gestion
-            </p>
+            <p>Sommes dûes par les opérateurs miniers exploitant des sels au titre des redevances départementale et communale des mines, hors frais de gestion</p>
             <p class="h1 text-center color-info bold">
-              <LoadingElement
-                data={data.value}
-                renderItem={item => <>{numberFormat(selsFiscalite.value)} €</>}
-              />
+              <LoadingElement data={data.value} renderItem={item => <>{numberFormat(selsFiscalite.value)} €</>} />
             </p>
           </div>
           <div style="grid-column-end: span 2">
@@ -682,40 +518,27 @@ export const PureMinerauxMetauxMetropole = defineComponent<Props>({
             <hr />
           </div>
           <div style="grid-column-end: span 2">
-            Pour les autres substances de mines exploitées en métropole,
-            l'agrégation des données n'est pas possible en raison du nombre
-            limité d'exploitant par type de substance.
+            Pour les autres substances de mines exploitées en métropole, l'agrégation des données n'est pas possible en raison du nombre limité d'exploitant par type de substance.
             <br />
             <br />
-            Au titre du secret des informations économiques et financières, les
-            volumes d'exploitation ne sont pas communicables.
+            Au titre du secret des informations économiques et financières, les volumes d'exploitation ne sont pas communicables.
           </div>
         </div>
         <div class="line-neutral width-full mb mt" />
         <h2>Evolution du nombre de titre et de leur surface</h2>
         <span class="separator" />
-        <p class="mb-xl">
-          Les données affichées ici sont celles contenues dans la base de donnée
-          Camino. Ces données concernent exclusivement le territoire
-          métropolitain.
-        </p>
+        <p class="mb-xl">Les données affichées ici sont celles contenues dans la base de donnée Camino. Ces données concernent exclusivement le territoire métropolitain.</p>
         <div class="mb-xl">
           <h3>Permis Exclusif de Recherche (PER)</h3>
           <hr />
-          <ChartWithExport
-            data={data.value}
-            getConfiguration={item => perChartConfiguration(item)}
-          />
+          <ChartWithExport data={data.value} getConfiguration={item => perChartConfiguration(item)} />
         </div>
         <div class="mb-xl">
           <h3>Concession</h3>
           <hr />
-          <ChartWithExport
-            data={data.value}
-            getConfiguration={item => concessionChartConfiguration(item)}
-          />
+          <ChartWithExport data={data.value} getConfiguration={item => concessionChartConfiguration(item)} />
         </div>
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/titre-creation.vue b/packages/ui/src/components/titre-creation.vue
index ce3b55c3c..230ac12ed 100644
--- a/packages/ui/src/components/titre-creation.vue
+++ b/packages/ui/src/components/titre-creation.vue
@@ -8,17 +8,8 @@
         <h5>Entreprise</h5>
       </div>
       <div class="tablet-blob-2-3">
-        <select
-          class="p-s mb"
-          :value="titreDemande?.entrepriseId"
-          @change="entrepriseUpdate"
-        >
-          <option
-            v-for="e in entreprises"
-            :key="e.id"
-            :value="e.id"
-            :disabled="titreDemande.entrepriseId === e.id"
-          >
+        <select class="p-s mb" :value="titreDemande?.entrepriseId" @change="entrepriseUpdate">
+          <option v-for="e in entreprises" :key="e.id" :value="e.id" :disabled="titreDemande.entrepriseId === e.id">
             {{ e.nom }}
           </option>
         </select>
@@ -27,14 +18,7 @@
 
     <hr />
 
-    <TitreTypeSelect
-      v-if="titreDemande.entrepriseId"
-      v-model:element="titreDemande"
-      :domaineId="
-        titreDemande.typeId ? getDomaineId(titreDemande.typeId) : undefined
-      "
-      :user="user"
-    />
+    <TitreTypeSelect v-if="titreDemande.entrepriseId" v-model:element="titreDemande" :domaineId="titreDemande.typeId ? getDomaineId(titreDemande.typeId) : undefined" :user="user" />
 
     <div v-if="titreDemande.typeId">
       <div class="tablet-blobs">
@@ -48,35 +32,16 @@
       <hr />
     </div>
 
-    <div
-      v-if="
-        titreDemande.typeId &&
-        titreDemande.entrepriseId &&
-        !entrepriseOuBureauDEtudeCheck
-      "
-    >
+    <div v-if="titreDemande.typeId && titreDemande.entrepriseId && !entrepriseOuBureauDEtudeCheck">
       <h3 class="mb-s">Références</h3>
       <p class="h6 italic">Optionnel</p>
-      <div
-        v-for="(reference, index) in titreDemande.references"
-        :key="index"
-        class="flex full-x mb-s"
-      >
+      <div v-for="(reference, index) in titreDemande.references" :key="index" class="flex full-x mb-s">
         <select v-model="reference.referenceTypeId" class="p-s mr-s">
-          <option
-            v-for="referenceType in sortedReferencesTypes"
-            :key="referenceType.id"
-            :value="referenceType.id"
-          >
+          <option v-for="referenceType in sortedReferencesTypes" :key="referenceType.id" :value="referenceType.id">
             {{ referenceType.nom }}
           </option>
         </select>
-        <input
-          v-model="reference.nom"
-          type="text"
-          class="p-s mr-s"
-          placeholder="valeur"
-        />
+        <input v-model="reference.nom" type="text" class="p-s mr-s" placeholder="valeur" />
         <div class="flex-right">
           <button class="btn py-s px-m rnd-xs" @click="referenceRemove(index)">
             <Icon name="minus" size="M" />
@@ -84,14 +49,7 @@
         </div>
       </div>
 
-      <button
-        v-if="
-          titreDemande.references &&
-          !titreDemande.references.find(r => !r.referenceTypeId || !r.nom)
-        "
-        class="btn small rnd-xs py-s px-m full-x mb flex"
-        @click="referenceAdd"
-      >
+      <button v-if="titreDemande.references && !titreDemande.references.find(r => !r.referenceTypeId || !r.nom)" class="btn small rnd-xs py-s px-m full-x mb flex" @click="referenceAdd">
         <span class="mt-xxs">Ajouter une référence</span>
         <Icon name="plus" size="M" class="flex-right" />
       </button>
@@ -102,17 +60,10 @@
     <div v-if="titreDemande.typeId && linkConfig">
       <div class="tablet-blobs">
         <div class="tablet-blob-1-3 tablet-pt-s pb-s">
-          <h5>
-            Titre {{ linkConfig.count === 'multiple' ? 's' : '' }} à l’origine
-            de cette nouvelle demande
-          </h5>
+          <h5>Titre {{ linkConfig.count === 'multiple' ? 's' : '' }} à l’origine de cette nouvelle demande</h5>
         </div>
         <div class="tablet-blob-2-3">
-          <PureTitresLink
-            :config="titreLinkConfig"
-            :loadLinkableTitres="loadLinkableTitresByTypeId"
-            @onSelectedTitres="onSelectedTitres"
-          />
+          <PureTitresLink :config="titreLinkConfig" :loadLinkableTitres="loadLinkableTitresByTypeId" @onSelectedTitres="onSelectedTitres" />
         </div>
       </div>
       <hr />
@@ -121,16 +72,7 @@
     <div class="tablet-blobs mb">
       <div class="tablet-blob-1-3" />
       <div class="tablet-blob-2-3">
-        <button
-          v-if="!loading"
-          id="cmn-titre-activite-edit-popup-button-enregistrer"
-          :ref="saveRef"
-          :disabled="!complete"
-          class="btn btn-primary"
-          @click="save"
-        >
-          Créer le titre
-        </button>
+        <button v-if="!loading" id="cmn-titre-activite-edit-popup-button-enregistrer" :ref="saveRef" :disabled="!complete" class="btn btn-primary" @click="save">Créer le titre</button>
         <div v-else class="p-s full-x bold">Enregistrement en cours…</div>
       </div>
     </div>
@@ -138,10 +80,7 @@
 </template>
 
 <script setup lang="ts">
-import {
-  ReferenceTypeId,
-  sortedReferencesTypes
-} from 'camino-common/src/static/referencesTypes'
+import { ReferenceTypeId, sortedReferencesTypes } from 'camino-common/src/static/referencesTypes'
 import { TitreTypeSelect } from './_common/titre-type-select'
 import { Icon } from '@/components/_ui/icon'
 import { isBureauDEtudes, isEntreprise } from 'camino-common/src/roles'
@@ -173,13 +112,13 @@ const titreLinkConfig = computed<TitresLinkConfig>(() => {
   if (linkConfig.value?.count === 'single') {
     return {
       type: 'single',
-      selectedTitreId: null
+      selectedTitreId: null,
     }
   }
 
   return {
     type: 'multiple',
-    selectedTitreIds: []
+    selectedTitreIds: [],
   }
 })
 
@@ -194,11 +133,7 @@ const entrepriseOuBureauDEtudeCheck = computed<boolean>(() => {
 })
 
 const complete = computed(() => {
-  return (
-    titreDemande.value.entrepriseId &&
-    titreDemande.value.typeId &&
-    titreDemande.value.nom
-  )
+  return titreDemande.value.entrepriseId && titreDemande.value.typeId && titreDemande.value.nom
 })
 
 const loading = computed(() => {
@@ -258,7 +193,7 @@ const entrepriseUpdate = (event: Event) => {
   titreDemande.value = {
     entrepriseId: (event.target as HTMLSelectElement)?.value,
     references: [],
-    typeId: undefined
+    typeId: undefined,
   }
 }
 
diff --git a/packages/ui/src/components/titre.vue b/packages/ui/src/components/titre.vue
index 870919476..f4ee31194 100644
--- a/packages/ui/src/components/titre.vue
+++ b/packages/ui/src/components/titre.vue
@@ -3,20 +3,13 @@
   <div v-else>
     <div v-if="titre.doublonTitre?.id" class="p-m bg-warning color-bg mb">
       Ce titre est un doublon. Le titre déjà existant est :
-      <a class="color-bg" :href="`/titres/${titre.doublonTitre.id}`">{{
-        titre.doublonTitre.nom
-      }}</a
+      <a class="color-bg" :href="`/titres/${titre.doublonTitre.id}`">{{ titre.doublonTitre.nom }}</a
       >.
     </div>
 
     <TitreHeader :titre="titre" @titre-event-track="eventTrack" />
 
-    <TitreInfos
-      :titre="titre"
-      :user="user"
-      :apiClient="apiClient()"
-      class="mb"
-    />
+    <TitreInfos :titre="titre" :user="user" :apiClient="apiClient()" class="mb" />
 
     <Perimetre
       v-if="titre.geojsonMultiPolygon && titre.points"
@@ -39,61 +32,25 @@
 
     <div class="line width-full mb-xl" />
 
-    <TitreRepertoire
-      :titreTypeId="titre.typeId"
-      :titulaires="titre.titulaires"
-      :amodiataires="titre.amodiataires"
-      :administrations="titre.administrations"
-      @titre-event-track="eventTrack"
-    />
+    <TitreRepertoire :titreTypeId="titre.typeId" :titulaires="titre.titulaires" :amodiataires="titre.amodiataires" :administrations="titre.administrations" @titre-event-track="eventTrack" />
 
     <div v-if="tabs.length > 1">
       <div class="flex">
-        <div
-          v-for="tab in tabs"
-          :key="tab.id"
-          class="mr-xs"
-          :class="{ active: tabId === tab.id }"
-        >
-          <button
-            :id="`cmn-titre-tab-${tab.id}`"
-            class="p-m btn-tab rnd-t-s"
-            @click="tabUpdate(tab.id)"
-          >
+        <div v-for="tab in tabs" :key="tab.id" class="mr-xs" :class="{ active: tabId === tab.id }">
+          <button :id="`cmn-titre-tab-${tab.id}`" class="p-m btn-tab rnd-t-s" @click="tabUpdate(tab.id)">
             {{ tab.nom }}
-            <ActivitesPills
-              v-if="tab.id === 'activites'"
-              class="inline-block ml-s"
-              :activitesAbsentes="titre.activitesAbsentes"
-              :activitesEnConstruction="titre.activitesEnConstruction"
-            />
+            <ActivitesPills v-if="tab.id === 'activites'" class="inline-block ml-s" :activitesAbsentes="titre.activitesAbsentes" :activitesEnConstruction="titre.activitesEnConstruction" />
           </button>
         </div>
       </div>
       <div class="line-neutral width-full mb" />
     </div>
 
-    <TitreDemarches
-      v-if="tabId === 'demarches'"
-      :user="user"
-      :demarches="demarches"
-      :tabId="tabId"
-      @event-track="eventTrack"
-    />
+    <TitreDemarches v-if="tabId === 'demarches'" :user="user" :demarches="demarches" :tabId="tabId" @event-track="eventTrack" />
 
-    <TitreActivitesList
-      v-if="tabId === 'activites'"
-      :activites="titre.activites"
-      :titreId="titre.id"
-    />
+    <TitreActivitesList v-if="tabId === 'activites'" :activites="titre.activites" :titreId="titre.id" />
 
-    <TitreDemarches
-      v-if="tabId === 'travaux'"
-      :demarches="travaux"
-      :tabId="tabId"
-      :user="user"
-      @titre-event-track="eventTrack"
-    />
+    <TitreDemarches v-if="tabId === 'travaux'" :demarches="travaux" :tabId="tabId" :user="user" @titre-event-track="eventTrack" />
 
     <Journaux v-if="tabId === 'journaux'" :titreId="titre.id" />
   </div>
@@ -124,13 +81,13 @@ export default {
     TitreDemarches,
     TitreActivitesList,
     Perimetre,
-    Journaux
+    Journaux,
   },
 
   data() {
     return {
       geoTabId: 'carte',
-      show: false
+      show: false,
     }
   },
 
@@ -161,7 +118,7 @@ export default {
 
     travaux() {
       return this.$store.getters['titre/travaux']
-    }
+    },
   },
 
   watch: {
@@ -171,7 +128,7 @@ export default {
       }
     },
 
-    user: 'get'
+    user: 'get',
   },
 
   async created() {
@@ -182,8 +139,7 @@ export default {
       const id = this.$route.hash.substring(1)
       const element = document.getElementById(id)
       if (element) {
-        const y =
-          element.getBoundingClientRect().top + window.pageYOffset + yOffset
+        const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset
 
         window.scrollTo({ top: y })
       }
@@ -207,7 +163,7 @@ export default {
       this.eventTrack({
         categorie: 'titre-sections',
         action: `titre-${this.tabId}_consulter`,
-        nom: this.$store.state.titre.element.id
+        nom: this.$store.state.titre.element.id,
       })
 
       this.$store.commit('titre/openTab', tabId)
@@ -217,7 +173,7 @@ export default {
       this.eventTrack({
         categorie: 'titre-sections',
         action: `titre-vue${this.tabId}_consulter`,
-        nom: this.$store.state.titre.element.id
+        nom: this.$store.state.titre.element.id,
       })
 
       this.geoTabId = tabId
@@ -227,7 +183,7 @@ export default {
       if (this.$matomo) {
         this.$matomo.trackEvent(event.categorie, event.action, event.nom)
       }
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/titre/administration.vue b/packages/ui/src/components/titre/administration.vue
index 34c97c167..6f89b4014 100644
--- a/packages/ui/src/components/titre/administration.vue
+++ b/packages/ui/src/components/titre/administration.vue
@@ -1,11 +1,5 @@
 <template>
-  <Accordion
-    class="mb"
-    :opened="opened"
-    :slotDefault="true"
-    @close="close"
-    @toggle="toggle"
-  >
+  <Accordion class="mb" :opened="opened" :slotDefault="true" @close="close" @toggle="toggle">
     <template #title>
       <span>{{ administration.nom }}</span>
     </template>
@@ -21,19 +15,14 @@
           </p>
         </div>
       </div>
-      <div
-        v-if="administration.adresse1 || administration.adresse2"
-        class="large-blobs"
-      >
+      <div v-if="administration.adresse1 || administration.adresse2" class="large-blobs">
         <div class="large-blob-1-6">
           <h5>Adresse</h5>
         </div>
         <div class="large-blob-5-6">
           <p>
             {{ administration.adresse1 }}
-            <span v-if="administration.adresse2"
-              ><br />{{ administration.adresse2 }}</span
-            >
+            <span v-if="administration.adresse2"><br />{{ administration.adresse2 }}</span>
             <br />{{ administration.codePostal }}
             {{ administration.commune }}
           </p>
@@ -55,10 +44,7 @@
         </div>
         <div class="large-blob-5-6">
           <p class="word-break">
-            <a
-              :href="`mailto:${administration.email}`"
-              class="btn small bold py-xs px-s rnd"
-            >
+            <a :href="`mailto:${administration.email}`" class="btn small bold py-xs px-s rnd">
               {{ administration.email }}
             </a>
           </p>
@@ -70,12 +56,7 @@
         </div>
         <div class="large-blob-5-6">
           <p class="word-break">
-            <a
-              :href="administration.url"
-              class="btn small bold py-xs px-s rnd"
-              target="_blank"
-              rel="noopener noreferrer"
-            >
+            <a :href="administration.url" class="btn small bold py-xs px-s rnd" target="_blank" rel="noopener noreferrer">
               {{ administration.url }}
             </a>
           </p>
@@ -91,28 +72,28 @@ import Accordion from '../_ui/accordion.vue'
 
 export default {
   components: {
-    Accordion
+    Accordion,
   },
 
   props: {
     administrationId: {
       type: String,
-      required: true
-    }
+      required: true,
+    },
   },
 
   emits: ['titre-event-track'],
 
   data() {
     return {
-      opened: false
+      opened: false,
     }
   },
 
   computed: {
     administration() {
       return Administrations[this.administrationId]
-    }
+    },
   },
 
   methods: {
@@ -131,9 +112,9 @@ export default {
       this.$emit('titre-event-track', {
         categorie: 'titre-sections',
         action: 'titre-administration_consulter',
-        nom: this.$route.params.id
+        nom: this.$route.params.id,
       })
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/titre/demarche-api-client.ts b/packages/ui/src/components/titre/demarche-api-client.ts
index b1159811b..d256b10cd 100644
--- a/packages/ui/src/components/titre/demarche-api-client.ts
+++ b/packages/ui/src/components/titre/demarche-api-client.ts
@@ -27,7 +27,7 @@ export const demarcheApiClient: DemarcheApiClient = {
         }
       }
     `)({
-      demarche
+      demarche,
     })
   },
 
@@ -39,7 +39,7 @@ export const demarcheApiClient: DemarcheApiClient = {
         }
       }
     `)({
-      demarche
+      demarche,
     })
   },
 
@@ -51,5 +51,5 @@ export const demarcheApiClient: DemarcheApiClient = {
         }
       }
     `)({ id: demarcheId })
-  }
+  },
 }
diff --git a/packages/ui/src/components/titre/demarche-edit-popup.stories.tsx b/packages/ui/src/components/titre/demarche-edit-popup.stories.tsx
index fdea94b98..59662b4f2 100644
--- a/packages/ui/src/components/titre/demarche-edit-popup.stories.tsx
+++ b/packages/ui/src/components/titre/demarche-edit-popup.stories.tsx
@@ -4,7 +4,7 @@ import { action } from '@storybook/addon-actions'
 
 const meta: Meta = {
   title: 'Components/Titre/DemarcheEditPopup',
-  component: PureDemarcheEditPopup
+  component: PureDemarcheEditPopup,
 }
 export default meta
 
@@ -23,7 +23,7 @@ const apiClient: Props['apiClient'] = {
   updateDemarche: demarche => {
     update(demarche)
     return new Promise(resolve => setTimeout(() => resolve(), 1000))
-  }
+  },
 }
 
 export const Create: Story = () => (
@@ -48,7 +48,7 @@ export const Edit: Story = () => (
       titreId: 'titreId',
       id: 'demarcheId',
       typeId: 'amo',
-      description: 'description'
+      description: 'description',
     }}
     titreTypeId={'apc'}
     titreNom="Nom du titre"
diff --git a/packages/ui/src/components/titre/demarche-edit-popup.tsx b/packages/ui/src/components/titre/demarche-edit-popup.tsx
index 5c9b3b61f..1bdaf8a79 100644
--- a/packages/ui/src/components/titre/demarche-edit-popup.tsx
+++ b/packages/ui/src/components/titre/demarche-edit-popup.tsx
@@ -1,10 +1,7 @@
 import { TitreTypeId } from 'camino-common/src/static/titresTypes'
 import { computed, defineComponent, inject, ref } from 'vue'
 import { FunctionalPopup } from '../_ui/functional-popup'
-import {
-  DemarcheTypeId,
-  isDemarcheTypeId
-} from 'camino-common/src/static/demarchesTypes'
+import { DemarcheTypeId, isDemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
 import { getDemarchesTypesByTitreType } from 'camino-common/src/static/titresTypesDemarchesTypes'
 import { isEventWithTarget } from '@/utils/vue-tsx-utils'
 import { DemarcheApiClient } from './demarche-api-client'
@@ -26,17 +23,8 @@ export interface Props {
   displayMessage: () => void
 }
 
-export const DemarcheEditPopup = defineComponent<
-  Omit<Props, 'reload' | 'displayMessage'>
->({
-  props: [
-    'demarche',
-    'titreNom',
-    'titreTypeId',
-    'tabId',
-    'apiClient',
-    'close'
-  ] as unknown as undefined,
+export const DemarcheEditPopup = defineComponent<Omit<Props, 'reload' | 'displayMessage'>>({
+  props: ['demarche', 'titreNom', 'titreTypeId', 'tabId', 'apiClient', 'close'] as unknown as undefined,
   setup(props) {
     const store = useStore()
     return () => (
@@ -47,47 +35,26 @@ export const DemarcheEditPopup = defineComponent<
         titreTypeId={props.titreTypeId}
         titreNom={props.titreNom}
         tabId={props.tabId}
-        reload={() =>
-          store.dispatch('titre/get', props.demarche.titreId, { root: true })
-        }
-        displayMessage={() =>
-          store.dispatch(
-            'messageAdd',
-            { value: `le titre a été mis à jour`, type: 'success' },
-            { root: true }
-          )
-        }
+        reload={() => store.dispatch('titre/get', props.demarche.titreId, { root: true })}
+        displayMessage={() => store.dispatch('messageAdd', { value: `le titre a été mis à jour`, type: 'success' }, { root: true })}
       />
     )
-  }
+  },
 })
 
 export const PureDemarcheEditPopup = defineComponent<Props>({
-  props: [
-    'demarche',
-    'titreNom',
-    'titreTypeId',
-    'tabId',
-    'apiClient',
-    'close',
-    'reload',
-    'displayMessage'
-  ] as unknown as undefined,
+  props: ['demarche', 'titreNom', 'titreTypeId', 'tabId', 'apiClient', 'close', 'reload', 'displayMessage'] as unknown as undefined,
   setup(props) {
     const matomo = inject('matomo', null)
     const typeId = ref<DemarcheTypeId | null>(props.demarche.typeId ?? null)
     const description = ref<string>(props.demarche.description ?? '')
 
     const title = computed(() => {
-      return `${
-        props.demarche.id ? 'Modification de la' : "Ajout d'une"
-      } démarche ${props.tabId === 'travaux' ? 'de travaux' : ''}`
+      return `${props.demarche.id ? 'Modification de la' : "Ajout d'une"} démarche ${props.tabId === 'travaux' ? 'de travaux' : ''}`
     })
 
     const types = computed(() => {
-      return getDemarchesTypesByTitreType(props.titreTypeId).filter(t =>
-        props.tabId === 'travaux' ? t.travaux : !t.travaux
-      )
+      return getDemarchesTypesByTitreType(props.titreTypeId).filter(t => (props.tabId === 'travaux' ? t.travaux : !t.travaux))
     })
 
     const selectDemarcheTypeId = (e: Event) => {
@@ -113,18 +80,10 @@ export const PureDemarcheEditPopup = defineComponent<Props>({
             <h5>Type</h5>
           </div>
           <div class="mb tablet-blob-2-3">
-            <select
-              class="p-s mr"
-              disabled={!!props.demarche.id}
-              onChange={selectDemarcheTypeId}
-            >
+            <select class="p-s mr" disabled={!!props.demarche.id} onChange={selectDemarcheTypeId}>
               {!props.demarche?.typeId ? <option>-</option> : null}
               {types.value.map(demarcheType => (
-                <option
-                  key={demarcheType.id}
-                  value={demarcheType.id}
-                  selected={props.demarche?.typeId === demarcheType.id}
-                >
+                <option key={demarcheType.id} value={demarcheType.id} selected={props.demarche?.typeId === demarcheType.id}>
                   {demarcheType.nom}
                 </option>
               ))}
@@ -136,12 +95,7 @@ export const PureDemarcheEditPopup = defineComponent<Props>({
             <h5>Description</h5>
             <p class="h6 italic mb-0 flex-right mt-xs">Optionnel</p>
           </div>
-          <input
-            onInput={updateDescription}
-            type="text"
-            class="tablet-blob-2-3 p-s"
-            value={description.value}
-          />
+          <input onInput={updateDescription} type="text" class="tablet-blob-2-3 p-s" value={description.value} />
         </div>
       </div>
     )
@@ -151,12 +105,12 @@ export const PureDemarcheEditPopup = defineComponent<Props>({
         const demarche = {
           titreId: props.demarche.titreId,
           typeId: typeId.value,
-          description: description.value
+          description: description.value,
         }
         if (props.demarche.id) {
           await props.apiClient.updateDemarche({
             ...demarche,
-            id: props.demarche.id
+            id: props.demarche.id,
           })
         } else {
           await props.apiClient.createDemarche(demarche)
@@ -166,20 +120,9 @@ export const PureDemarcheEditPopup = defineComponent<Props>({
       }
       if (matomo) {
         // @ts-ignore
-        matomo.trackEvent(
-          'titre-sections',
-          `titre-${props.tabId}-enregistrer`,
-          props.demarche.id
-        )
+        matomo.trackEvent('titre-sections', `titre-${props.tabId}-enregistrer`, props.demarche.id)
       }
     }
-    return () => (
-      <FunctionalPopup
-        title={title.value}
-        content={content}
-        close={props.close}
-        validate={{ action: save, can: !!typeId.value }}
-      />
-    )
-  }
+    return () => <FunctionalPopup title={title.value} content={content} close={props.close} validate={{ action: save, can: !!typeId.value }} />
+  },
 })
diff --git a/packages/ui/src/components/titre/demarche-remove-popup.stories.tsx b/packages/ui/src/components/titre/demarche-remove-popup.stories.tsx
index 3140bd05d..733dbe313 100644
--- a/packages/ui/src/components/titre/demarche-remove-popup.stories.tsx
+++ b/packages/ui/src/components/titre/demarche-remove-popup.stories.tsx
@@ -4,7 +4,7 @@ import { action } from '@storybook/addon-actions'
 
 const meta: Meta = {
   title: 'Components/Titre/DemarcheRemovePopup',
-  component: PureDemarcheRemovePopup
+  component: PureDemarcheRemovePopup,
 }
 export default meta
 
@@ -18,7 +18,7 @@ const apiClient: Props['apiClient'] = {
   deleteDemarche: demarcheId => {
     deleteAction(demarcheId)
     return new Promise(resolve => setTimeout(() => resolve(), 1000))
-  }
+  },
 }
 
 export const Main: Story = () => (
diff --git a/packages/ui/src/components/titre/demarche-remove-popup.tsx b/packages/ui/src/components/titre/demarche-remove-popup.tsx
index 6f00ee689..ab56902cb 100644
--- a/packages/ui/src/components/titre/demarche-remove-popup.tsx
+++ b/packages/ui/src/components/titre/demarche-remove-popup.tsx
@@ -1,12 +1,5 @@
-import {
-  DemarchesTypes,
-  DemarcheTypeId
-} from 'camino-common/src/static/demarchesTypes'
-import {
-  isTitreType,
-  TitresTypes,
-  TitreTypeId
-} from 'camino-common/src/static/titresTypes'
+import { DemarchesTypes, DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { isTitreType, TitresTypes, TitreTypeId } from 'camino-common/src/static/titresTypes'
 import { TitresTypesTypes } from 'camino-common/src/static/titresTypesTypes'
 import { defineComponent } from 'vue'
 import { useStore } from 'vuex'
@@ -25,18 +18,8 @@ export interface Props {
   displayMessage: () => void
 }
 
-export const DemarcheRemovePopup = defineComponent<
-  Omit<Props, 'reload' | 'displayMessage'>
->({
-  props: [
-    'titreTypeId',
-    'titreId',
-    'titreNom',
-    'demarcheTypeId',
-    'demarcheId',
-    'close',
-    'apiClient'
-  ] as unknown as undefined,
+export const DemarcheRemovePopup = defineComponent<Omit<Props, 'reload' | 'displayMessage'>>({
+  props: ['titreTypeId', 'titreId', 'titreNom', 'demarcheTypeId', 'demarcheId', 'close', 'apiClient'] as unknown as undefined,
   setup(props) {
     const store = useStore()
     return () => (
@@ -47,27 +30,15 @@ export const DemarcheRemovePopup = defineComponent<
         demarcheId={props.demarcheId}
         close={props.close}
         apiClient={props.apiClient}
-        reload={() =>
-          store.dispatch('titre/get', props.titreId, { root: true })
-        }
-        displayMessage={() =>
-          store.dispatch(
-            'messageAdd',
-            { value: `le titre a été mis à jour`, type: 'success' },
-            { root: true }
-          )
-        }
+        reload={() => store.dispatch('titre/get', props.titreId, { root: true })}
+        displayMessage={() => store.dispatch('messageAdd', { value: `le titre a été mis à jour`, type: 'success' }, { root: true })}
       />
     )
-  }
+  },
 })
 
-export const PureDemarcheRemovePopup = (
-  props: Omit<Props, 'titreId'>
-): JSX.Element => {
-  const titreTypeNom: string = isTitreType(props.titreTypeId)
-    ? TitresTypesTypes[TitresTypes[props.titreTypeId].typeId].nom
-    : ''
+export const PureDemarcheRemovePopup = (props: Omit<Props, 'titreId'>): JSX.Element => {
+  const titreTypeNom: string = isTitreType(props.titreTypeId) ? TitresTypesTypes[TitresTypes[props.titreTypeId].typeId].nom : ''
 
   const content = () => (
     <>
@@ -77,8 +48,7 @@ export const PureDemarcheRemovePopup = (
         <span> {props.titreNom} </span> (<span>{titreTypeNom}</span>) ?
       </p>
       <div class="bg-warning color-bg p-s mb-l">
-        <span class="bold"> Attention </span>: cette opération est définitive et
-        ne peut pas être annulée.
+        <span class="bold"> Attention </span>: cette opération est définitive et ne peut pas être annulée.
       </div>
     </>
   )
@@ -89,12 +59,5 @@ export const PureDemarcheRemovePopup = (
     props.reload()
   }
 
-  return (
-    <FunctionalPopup
-      title="Suppression de la démarche"
-      content={content}
-      close={props.close}
-      validate={{ action: deleteDemarche, text: 'Supprimer' }}
-    />
-  )
+  return <FunctionalPopup title="Suppression de la démarche" content={content} close={props.close} validate={{ action: deleteDemarche, text: 'Supprimer' }} />
 }
diff --git a/packages/ui/src/components/titre/demarche.vue b/packages/ui/src/components/titre/demarche.vue
index facae55cb..72e217b6f 100644
--- a/packages/ui/src/components/titre/demarche.vue
+++ b/packages/ui/src/components/titre/demarche.vue
@@ -6,42 +6,32 @@
           <h2 class="cap-first">
             {{ demarche.type.nom }}
           </h2>
-          <h3 v-if="demarche.description" class="ml-s">
-            ({{ demarche.description }})
-          </h3>
+          <h3 v-if="demarche.description" class="ml-s">({{ demarche.description }})</h3>
         </div>
         <div class="mb-s">
           <Statut :color="statut.couleur" :nom="statut.nom" />
         </div>
       </div>
       <div class="tablet-blob-1-2 flex">
-        <div
-          v-if="demarche.modification || demarche.suppression || canCreateEtape"
-          class="flex-right flex"
-        >
+        <div v-if="demarche.modification || demarche.suppression || canCreateEtape" class="flex-right flex">
           <button
             v-if="canCreateEtape"
             class="btn small rnd-l-xs py-s px-m flex mr-px"
             :class="{
-              'rnd-r-xs': !demarche.suppression && !demarche.modification
+              'rnd-r-xs': !demarche.suppression && !demarche.modification,
             }"
             @click="etapeAdd"
           >
             <span class="mt-xxs">Ajouter une étape…</span>
           </button>
-          <button
-            v-if="demarche.modification"
-            class="btn py-s px-m mr-px"
-            :class="{ 'rnd-l-xs': !canCreateEtape }"
-            @click="editPopupOpen"
-          >
+          <button v-if="demarche.modification" class="btn py-s px-m mr-px" :class="{ 'rnd-l-xs': !canCreateEtape }" @click="editPopupOpen">
             <Icon size="M" name="pencil" />
           </button>
           <button
             v-if="demarche.suppression"
             class="btn rnd-r-xs py-s px-m mr-px"
             :class="{
-              'rnd-l-xs': !demarche.modification && !canCreateEtape
+              'rnd-l-xs': !demarche.modification && !canCreateEtape,
             }"
             @click="removePopupOpen"
           >
@@ -108,7 +98,7 @@ export default {
     Statut,
     TitreEtape,
     DemarcheEditPopup,
-    DemarcheRemovePopup
+    DemarcheRemovePopup,
   },
 
   props: {
@@ -119,7 +109,7 @@ export default {
     titreStatutId: { type: String, required: true },
     titreAdministrations: { type: Array, required: true },
     tabId: { type: String, required: true },
-    user: { type: Object, required: true }
+    user: { type: Object, required: true },
   },
 
   emits: ['titre-event-track'],
@@ -147,9 +137,7 @@ export default {
     },
 
     eventPrefix() {
-      return this.tabId && this.tabId === 'travaux'
-        ? 'titre-travaux'
-        : 'titre-demarche'
+      return this.tabId && this.tabId === 'travaux' ? 'titre-travaux' : 'titre-demarche'
     },
 
     etapes() {
@@ -161,14 +149,8 @@ export default {
     },
 
     canCreateEtape() {
-      return canCreateEtapeByDemarche(
-        this.user,
-        this.titreTypeId,
-        this.demarche.type.id,
-        this.titreAdministrations,
-        this.titreStatutId
-      )
-    }
+      return canCreateEtapeByDemarche(this.user, this.titreTypeId, this.demarche.type.id, this.titreAdministrations, this.titreStatutId)
+    },
   },
 
   methods: {
@@ -177,7 +159,7 @@ export default {
       this.eventTrack({
         categorie: 'titre-sections',
         action: `${this.eventPrefix}_editer`,
-        nom: this.$route.params.id
+        nom: this.$route.params.id,
       })
     },
 
@@ -186,20 +168,20 @@ export default {
       this.eventTrack({
         categorie: 'titre-sections',
         action: `${this.eventPrefix}_supprimer`,
-        nom: this.$route.params.id
+        nom: this.$route.params.id,
       })
     },
 
     etapeAdd() {
       this.$router.push({
         name: 'etape-creation',
-        query: { 'demarche-id': this.demarche.slug }
+        query: { 'demarche-id': this.demarche.slug },
       })
 
       this.eventTrack({
         categorie: 'titre-sections',
         action: 'titre-etape_ajouter',
-        nom: this.$route.params.id
+        nom: this.$route.params.id,
       })
     },
 
@@ -213,7 +195,7 @@ export default {
 
     eventTrack(event) {
       this.$emit('titre-event-track', event)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/titre/demarches.vue b/packages/ui/src/components/titre/demarches.vue
index 893bed783..a77735d90 100644
--- a/packages/ui/src/components/titre/demarches.vue
+++ b/packages/ui/src/components/titre/demarches.vue
@@ -1,14 +1,8 @@
 <template>
   <div>
     <div v-if="canCreate">
-      <button
-        class="btn small rnd-xs py-s px-m full-x flex mb"
-        @click="demarcheAddPopupOpen"
-      >
-        <span class="mt-xxs"
-          >Ajouter une démarche
-          {{ tabId === 'travaux' ? 'de travaux' : '' }}</span
-        >
+      <button class="btn small rnd-xs py-s px-m full-x flex mb" @click="demarcheAddPopupOpen">
+        <span class="mt-xxs">Ajouter une démarche {{ tabId === 'travaux' ? 'de travaux' : '' }}</span>
         <Icon name="plus" size="M" class="flex-right" />
       </button>
       <div class="line width-full mb-xxl" />
@@ -27,15 +21,7 @@
       :user="user"
       @event-track="eventTrack"
     />
-    <DemarcheEditPopup
-      v-if="open"
-      :close="() => (open = !open)"
-      :demarche="myDemarche"
-      :apiClient="apiClient"
-      :titreTypeId="titre.typeId"
-      :titreNom="titre.nom"
-      :tabId="tabId"
-    />
+    <DemarcheEditPopup v-if="open" :close="() => (open = !open)" :demarche="myDemarche" :apiClient="apiClient" :titreTypeId="titre.typeId" :titreNom="titre.nom" :tabId="tabId" />
   </div>
 </template>
 
@@ -45,22 +31,19 @@ import { DemarcheEditPopup } from './demarche-edit-popup'
 import { Icon } from '@/components/_ui/icon'
 import { demarcheApiClient } from './demarche-api-client'
 
-import {
-  canCreateDemarche,
-  canCreateTravaux
-} from 'camino-common/src/permissions/titres-demarches'
+import { canCreateDemarche, canCreateTravaux } from 'camino-common/src/permissions/titres-demarches'
 
 export default {
   components: {
     Icon,
     TitreDemarche,
-    DemarcheEditPopup
+    DemarcheEditPopup,
   },
 
   props: {
     demarches: { type: Array, default: () => [] },
     tabId: { type: String, required: true },
-    user: { type: Object, required: true }
+    user: { type: Object, required: true },
   },
 
   emits: ['event-track'],
@@ -84,22 +67,13 @@ export default {
     canCreate() {
       if (this.titre) {
         if (this.tabId === 'travaux') {
-          return canCreateTravaux(
-            this.user,
-            this.titre.typeId,
-            this.titre.administrations
-          )
+          return canCreateTravaux(this.user, this.titre.typeId, this.titre.administrations)
         } else {
-          return canCreateDemarche(
-            this.user,
-            this.titre.typeId,
-            this.titre.titreStatutId,
-            this.titre.administrations
-          )
+          return canCreateDemarche(this.user, this.titre.typeId, this.titre.titreStatutId, this.titre.administrations)
         }
       }
       return false
-    }
+    },
   },
 
   methods: {
@@ -109,13 +83,13 @@ export default {
       this.eventTrack({
         categorie: 'titre-sections',
         action: `titre-${this.tabId}_ajouter`,
-        nom: this.$route.params.id
+        nom: this.$route.params.id,
       })
     },
 
     eventTrack(event) {
       this.$emit('event-track', event)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/titre/edit-popup.vue b/packages/ui/src/components/titre/edit-popup.vue
index 8735ff218..55015f7c2 100644
--- a/packages/ui/src/components/titre/edit-popup.vue
+++ b/packages/ui/src/components/titre/edit-popup.vue
@@ -22,26 +22,13 @@
       <h3 class="mb-s">Références</h3>
       <p class="h6 italic">Optionnel</p>
       <hr />
-      <div
-        v-for="(reference, index) in titre.references"
-        :key="index"
-        class="flex full-x mb-s"
-      >
+      <div v-for="(reference, index) in titre.references" :key="index" class="flex full-x mb-s">
         <select v-model="reference.referenceTypeId" class="p-s mr-s">
-          <option
-            v-for="referenceType in sortedReferencesTypes"
-            :key="referenceType.id"
-            :value="referenceType.id"
-          >
+          <option v-for="referenceType in sortedReferencesTypes" :key="referenceType.id" :value="referenceType.id">
             {{ referenceType.nom }}
           </option>
         </select>
-        <input
-          v-model="reference.nom"
-          type="text"
-          class="p-s mr-s"
-          placeholder="valeur"
-        />
+        <input v-model="reference.nom" type="text" class="p-s mr-s" placeholder="valeur" />
         <div class="flex-right">
           <button class="btn py-s px-m rnd-xs" @click="referenceRemove(index)">
             <Icon name="minus" size="M" />
@@ -49,14 +36,7 @@
         </div>
       </div>
 
-      <button
-        v-if="
-          titre.references &&
-          !titre.references.find(r => !r.referenceTypeId || !r.nom)
-        "
-        class="btn rnd-xs py-s px-m full-x mb flex h6"
-        @click="referenceAdd"
-      >
+      <button v-if="titre.references && !titre.references.find(r => !r.referenceTypeId || !r.nom)" class="btn rnd-xs py-s px-m full-x mb flex h6" @click="referenceAdd">
         <span class="mt-xxs">Ajouter une référence</span>
         <Icon name="plus" size="M" class="flex-right" />
       </button>
@@ -65,20 +45,10 @@
     <template #footer>
       <div v-if="!loading" class="tablet-blobs">
         <div class="tablet-blob-1-3 mb tablet-mb-0">
-          <button class="btn-border rnd-xs p-s full-x" @click="cancel">
-            Annuler
-          </button>
+          <button class="btn-border rnd-xs p-s full-x" @click="cancel">Annuler</button>
         </div>
         <div class="tablet-blob-2-3">
-          <button
-            :ref="saveRef"
-            class="btn btn-primary"
-            :disabled="!complete"
-            :class="{ disabled: !complete }"
-            @click="save"
-          >
-            Enregistrer
-          </button>
+          <button :ref="saveRef" class="btn btn-primary" :disabled="!complete" :class="{ disabled: !complete }" @click="save">Enregistrer</button>
         </div>
       </div>
       <div v-else class="p-s full-x bold">Enregistrement en cours…</div>
@@ -91,10 +61,7 @@ import Popup from '../_ui/popup.vue'
 
 import { Icon } from '@/components/_ui/icon'
 import { computed, ComputedRef, inject, onMounted, onUnmounted, ref } from 'vue'
-import {
-  ReferenceTypeId,
-  sortedReferencesTypes
-} from 'camino-common/src/static/referencesTypes'
+import { ReferenceTypeId, sortedReferencesTypes } from 'camino-common/src/static/referencesTypes'
 import { useStore } from 'vuex'
 
 export type Titre = {
@@ -157,7 +124,7 @@ const save = async () => {
     eventTrack({
       categorie: 'titre-sections',
       action: 'titre-enregistrer',
-      nom: titre.id
+      nom: titre.id,
     })
   }
 }
@@ -174,11 +141,7 @@ const referenceRemove = (index: number) => {
   props.titre.references.splice(index, 1)
 }
 
-const eventTrack = (event: {
-  categorie: string
-  action: string
-  nom: string
-}) => {
+const eventTrack = (event: { categorie: string; action: string; nom: string }) => {
   if (matomo) {
     // @ts-ignore
     matomo.trackEvent(event.categorie, event.action, event.nom)
diff --git a/packages/ui/src/components/titre/entreprise.vue b/packages/ui/src/components/titre/entreprise.vue
index 9ba3e3eb6..e181d2d19 100644
--- a/packages/ui/src/components/titre/entreprise.vue
+++ b/packages/ui/src/components/titre/entreprise.vue
@@ -1,34 +1,15 @@
 <template>
-  <Accordion
-    class="mb"
-    :opened="opened"
-    :slotDefault="true"
-    :slotButtons="true"
-    @close="close"
-    @toggle="toggle"
-  >
+  <Accordion class="mb" :opened="opened" :slotDefault="true" :slotButtons="true" @close="close" @toggle="toggle">
     <template #title>
       <h4 class="mb-0">
         {{ entrepriseNameFind(entreprise) }}
       </h4>
-      <Tag
-        v-if="entreprise.operateur"
-        :color="'bg-info'"
-        :mini="true"
-        text="Opérateur"
-      />
+      <Tag v-if="entreprise.operateur" :color="'bg-info'" :mini="true" text="Opérateur" />
     </template>
 
     <template #buttons>
-      <router-link
-        :to="{ name: 'entreprise', params: { id: entreprise.id } }"
-        class="btn-alt py-s px-m"
-      >
-        <Icon
-          name="external-link"
-          size="M"
-          @click="eventTrack('titre-entreprise_acceder')"
-        />
+      <router-link :to="{ name: 'entreprise', params: { id: entreprise.id } }" class="btn-alt py-s px-m">
+        <Icon name="external-link" size="M" @click="eventTrack('titre-entreprise_acceder')" />
       </router-link>
     </template>
 
@@ -51,14 +32,9 @@
         </div>
       </div>
 
-      <div
-        v-if="entreprise.etablissements && entreprise.etablissements.length"
-        class="large-blobs"
-      >
+      <div v-if="entreprise.etablissements && entreprise.etablissements.length" class="large-blobs">
         <div class="large-blob-1-4">
-          <h5>
-            Établissement{{ entreprise.etablissements.length > 1 ? 's' : '' }}
-          </h5>
+          <h5>Établissement{{ entreprise.etablissements.length > 1 ? 's' : '' }}</h5>
         </div>
         <div class="large-blob-3-4">
           <ul class="list-sans">
@@ -100,10 +76,7 @@
         </div>
         <div class="large-blob-3-4">
           <p class="word-break">
-            <a
-              :href="`mailto:${entreprise.email}`"
-              class="btn small bold py-xs px-s rnd"
-            >
+            <a :href="`mailto:${entreprise.email}`" class="btn small bold py-xs px-s rnd">
               {{ entreprise.email }}
             </a>
           </p>
@@ -135,21 +108,21 @@ export default {
   components: {
     Icon,
     Accordion,
-    Tag
+    Tag,
   },
 
   props: {
     entreprise: {
       type: Object,
-      default: () => {}
-    }
+      default: () => {},
+    },
   },
 
   emits: ['titre-event-track'],
 
   data() {
     return {
-      opened: false
+      opened: false,
     }
   },
 
@@ -166,7 +139,7 @@ export default {
         this.entreprise.email ||
         this.entreprise.url
       )
-    }
+    },
   },
 
   methods: {
@@ -174,10 +147,7 @@ export default {
       return (
         entreprise.nom ||
         // trouve l'établissement le plus récent
-        entreprise.etablissements.reduce(
-          (res, e) => (res && res.dateDebut > e.dateDebut ? res : e),
-          null
-        ).nom
+        entreprise.etablissements.reduce((res, e) => (res && res.dateDebut > e.dateDebut ? res : e), null).nom
       )
     },
 
@@ -196,13 +166,13 @@ export default {
       this.$emit('titre-event-track', {
         categorie: 'titre-sections',
         action,
-        nom: this.$route.params.id
+        nom: this.$route.params.id,
       })
     },
 
     dateFormat(date) {
       return dateFormat(date)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/titre/header.vue b/packages/ui/src/components/titre/header.vue
index 9d5c30c58..4e2cec384 100644
--- a/packages/ui/src/components/titre/header.vue
+++ b/packages/ui/src/components/titre/header.vue
@@ -14,39 +14,27 @@
               class="btn small rnd-0 rnd-l-xs px-m py-s lh-2 mr-px"
               :class="{
                 'btn-primary': !titre.abonnement,
-                'btn-secondary': titre.abonnement
+                'btn-secondary': titre.abonnement,
               }"
               @click="subscribe(!titre.abonnement)"
             >
-              <span class="mt-xs"
-                >{{ titre.abonnement ? 'Se désabonner' : 'S’abonner' }} au
-                titre</span
-              >
+              <span class="mt-xs">{{ titre.abonnement ? 'Se désabonner' : 'S’abonner' }} au titre</span>
             </button>
             <button
               class="btn-border small px-m py-s lh-2"
               :class="{
                 'rnd-l-xs': !user,
                 'rnd-r-xs': !suppression || !titre.modification,
-                'mr-px': suppression || titre.modification
+                'mr-px': suppression || titre.modification,
               }"
               @click="emailSend"
             >
               <span class="mt-xs nowrap">Signaler une erreur…</span>
             </button>
-            <button
-              v-if="titre.modification"
-              class="btn py-s px-m mr-px"
-              :class="{ 'rnd-r-xs': !suppression }"
-              @click="editPopupOpen"
-            >
+            <button v-if="titre.modification" class="btn py-s px-m mr-px" :class="{ 'rnd-r-xs': !suppression }" @click="editPopupOpen">
               <Icon size="M" name="pencil" />
             </button>
-            <button
-              v-if="suppression"
-              class="btn rnd-r-xs py-s px-m"
-              @click="removePopupOpen"
-            >
+            <button v-if="suppression" class="btn rnd-r-xs py-s px-m" @click="removePopupOpen">
               <Icon size="M" name="delete" />
             </button>
           </div>
@@ -69,8 +57,8 @@ export default {
   props: {
     titre: {
       type: Object,
-      default: () => ({})
-    }
+      default: () => ({}),
+    },
   },
 
   emits: ['titre-event-track'],
@@ -81,7 +69,7 @@ export default {
     },
     suppression() {
       return canDeleteTitre(this.user)
-    }
+    },
   },
   methods: {
     editPopupOpen() {
@@ -93,14 +81,14 @@ export default {
       this.$store.commit('popupOpen', {
         component: EditPopup,
         props: {
-          titre
-        }
+          titre,
+        },
       })
 
       this.eventTrack({
         categorie: 'titre-sections',
         action: 'titre-editer',
-        nom: this.$route.params.id
+        nom: this.$route.params.id,
       })
     },
 
@@ -110,14 +98,14 @@ export default {
         props: {
           titreNom: this.titre.nom,
           titreId: this.titre.id,
-          typeNom: this.titre.type.type.nom
-        }
+          typeNom: this.titre.type.type.nom,
+        },
       })
 
       this.eventTrack({
         categorie: 'titre-sections',
         action: 'titre-supprimer',
-        nom: this.$route.params.id
+        nom: this.$route.params.id,
       })
     },
 
@@ -125,7 +113,7 @@ export default {
       this.eventTrack({
         categorie: 'titre-sections',
         action: 'titre-erreur_signaler',
-        nom: this.$route.params.id
+        nom: this.$route.params.id,
       })
       window.location.href = `mailto:camino@beta.gouv.fr?subject=Erreur ${this.$route.params.id}&body=Bonjour, j'ai repéré une erreur sur le titre ${window.location.href} : `
     },
@@ -133,13 +121,13 @@ export default {
     subscribe(abonner) {
       this.$store.dispatch('titre/subscribe', {
         titreId: this.titre.id,
-        abonner
+        abonner,
       })
     },
 
     eventTrack(event) {
       this.$emit('titre-event-track', event)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/titre/infos.stories.tsx b/packages/ui/src/components/titre/infos.stories.tsx
index 87fe763f1..dca963cf4 100644
--- a/packages/ui/src/components/titre/infos.stories.tsx
+++ b/packages/ui/src/components/titre/infos.stories.tsx
@@ -5,7 +5,7 @@ import { testBlankUser } from 'camino-common/src/tests-utils'
 
 const meta: Meta = {
   title: 'Components/Titre/Infos',
-  component: Infos
+  component: Infos,
 }
 export default meta
 
@@ -15,10 +15,7 @@ const titresFrom: TitreLink[] = [{ id: 'id11', nom: 'Titre père' }]
 const apiClient: Props['apiClient'] = {
   loadLinkableTitres: () => () => Promise.resolve([]),
   loadTitreLinks: () => Promise.resolve({ aval: titresTo, amont: titresFrom }),
-  linkTitres: () =>
-    new Promise<TitreLinks>(resolve =>
-      resolve({ aval: titresTo, amont: titresFrom })
-    ),
+  linkTitres: () => new Promise<TitreLinks>(resolve => resolve({ aval: titresTo, amont: titresFrom })),
   loadTitreSections: (_titreId: string) =>
     new Promise<Section[]>(resolve =>
       resolve([
@@ -32,12 +29,12 @@ const apiClient: Props['apiClient'] = {
               nom: 'Second élément',
               description: 'avec description',
               type: 'radio',
-              value: true
-            }
-          ]
-        }
+              value: true,
+            },
+          ],
+        },
       ])
-    )
+    ),
 }
 
 export const Default: Story = () => (
@@ -53,19 +50,19 @@ export const Default: Story = () => (
           phase: {
             dateDebut: '2020-01-01',
             dateFin: '2022-01-01',
-            phaseStatutId: 'ech'
+            phaseStatutId: 'ech',
           },
-          type: { id: 'oct' }
+          type: { id: 'oct' },
         },
         {
           id: 'pro',
           phase: {
             dateDebut: '2022-01-01',
             dateFin: '2025-01-01',
-            phaseStatutId: 'val'
+            phaseStatutId: 'val',
           },
-          type: { id: 'pro' }
-        }
+          type: { id: 'pro' },
+        },
       ],
       administrations: ['ope-onf-973-01'],
       titulaires: [
@@ -73,25 +70,25 @@ export const Default: Story = () => (
           id: 'entreprise1',
           nom: 'Entreprise 1',
           legalSiren: 'Entreprise 1 Siren',
-          operateur: true
+          operateur: true,
         },
         {
           id: 'entreprise2',
           nom: 'Entreprise 2',
           legalSiren: 'Entreprise 2 Siren',
-          operateur: false
-        }
+          operateur: false,
+        },
       ],
       amodiataires: [
         {
           id: 'entreprise3',
           nom: 'Entreprise 3',
           legalSiren: 'Entreprise 3 Siren',
-          operateur: false
-        }
+          operateur: false,
+        },
       ],
       substances: ['auru', 'scoc'],
-      references: [{ nom: '2023/01', referenceTypeId: 'ifr' }]
+      references: [{ nom: '2023/01', referenceTypeId: 'ifr' }],
     }}
     user={{ role: 'super', ...testBlankUser }}
     apiClient={apiClient}
@@ -110,16 +107,14 @@ export const Empty: Story = () => (
       titulaires: [],
       amodiataires: [],
       substances: [],
-      references: []
+      references: [],
     }}
     user={{ role: 'super', ...testBlankUser }}
     apiClient={{
       loadLinkableTitres: () => () => Promise.resolve([]),
       loadTitreLinks: () => Promise.resolve({ aval: [], amont: [] }),
-      linkTitres: () =>
-        new Promise<TitreLinks>(resolve => resolve({ aval: [], amont: [] })),
-      loadTitreSections: (_titreId: string) =>
-        new Promise<Section[]>(resolve => resolve([]))
+      linkTitres: () => new Promise<TitreLinks>(resolve => resolve({ aval: [], amont: [] })),
+      loadTitreSections: (_titreId: string) => new Promise<Section[]>(resolve => resolve([])),
     }}
   ></Infos>
 )
diff --git a/packages/ui/src/components/titre/infos.tsx b/packages/ui/src/components/titre/infos.tsx
index 8fbcb6dcd..cc2f282f5 100644
--- a/packages/ui/src/components/titre/infos.tsx
+++ b/packages/ui/src/components/titre/infos.tsx
@@ -7,29 +7,13 @@ import { Statut } from '../_common/statut'
 import { dateFormat } from '@/utils'
 import PureTitresLinkForm from './pure-titres-link-form.vue'
 import { User } from 'camino-common/src/roles'
-import {
-  getDomaineId,
-  getTitreTypeType,
-  TitreTypeId
-} from 'camino-common/src/static/titresTypes'
-import {
-  DemarchesTypes,
-  DemarcheTypeId
-} from 'camino-common/src/static/demarchesTypes'
+import { getDomaineId, getTitreTypeType, TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { DemarchesTypes, DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
 import { AdministrationId } from 'camino-common/src/static/administrations'
 import { TitresTypesTypes } from 'camino-common/src/static/titresTypesTypes'
-import {
-  SubstanceLegaleId,
-  SubstancesLegale
-} from 'camino-common/src/static/substancesLegales'
-import {
-  TitresStatuts,
-  TitreStatutId
-} from 'camino-common/src/static/titresStatuts'
-import {
-  PhaseStatutId,
-  phaseStatuts
-} from 'camino-common/src/static/phasesStatuts'
+import { SubstanceLegaleId, SubstancesLegale } from 'camino-common/src/static/substancesLegales'
+import { TitresStatuts, TitreStatutId } from 'camino-common/src/static/titresStatuts'
+import { PhaseStatutId, phaseStatuts } from 'camino-common/src/static/phasesStatuts'
 import { TitreReference } from 'camino-common/src/titres-references'
 import { ApiClient } from '@/api/api-client'
 import { LoadingElement } from '@/components/_ui/functional-loader'
@@ -67,41 +51,20 @@ export interface Props {
     references: TitreReference[]
   }
   user: User
-  apiClient: Pick<
-    ApiClient,
-    'loadTitreLinks' | 'loadLinkableTitres' | 'linkTitres' | 'loadTitreSections'
-  >
+  apiClient: Pick<ApiClient, 'loadTitreLinks' | 'loadLinkableTitres' | 'linkTitres' | 'loadTitreSections'>
 }
 
-const Entreprises = ({
-  entreprises,
-  label
-}: {
-  entreprises: Entreprise[] | undefined
-  label: 'Titulaire' | 'Amodiataire'
-}): JSX.Element | null => {
+const Entreprises = ({ entreprises, label }: { entreprises: Entreprise[] | undefined; label: 'Titulaire' | 'Amodiataire' }): JSX.Element | null => {
   return entreprises?.length ? (
     <div class="mb">
       <h5>{entreprises.length > 1 ? `${label}s` : label}</h5>
       <ul class="list-inline">
         {entreprises.map(e => (
           <li key={e.id} class="mb-xs mr-xs">
-            <router-link
-              to={{ name: 'entreprise', params: { id: e.id } }}
-              class="btn-border small p-s rnd-xs mr-xs"
-            >
-              <span class="mr-xs">
-                {e.legalSiren ? `${e.nom} (${e.legalSiren})` : e.nom}
-              </span>
+            <router-link to={{ name: 'entreprise', params: { id: e.id } }} class="btn-border small p-s rnd-xs mr-xs">
+              <span class="mr-xs">{e.legalSiren ? `${e.nom} (${e.legalSiren})` : e.nom}</span>
 
-              {e.operateur ? (
-                <Tag
-                  mini={true}
-                  color="bg-info"
-                  class="ml-xs"
-                  text="Opérateur"
-                />
-              ) : null}
+              {e.operateur ? <Tag mini={true} color="bg-info" class="ml-xs" text="Opérateur" /> : null}
             </router-link>
           </li>
         ))}
@@ -127,18 +90,13 @@ const InfosSections = defineComponent<InfosSectionsProps>({
         console.error('error', e)
         load.value = {
           status: 'ERROR',
-          message: e.message ?? "Une erreur s'est produite"
+          message: e.message ?? "Une erreur s'est produite",
         }
       }
     })
 
-    return () => (
-      <LoadingElement
-        data={load.value}
-        renderItem={item => <Sections sections={item} />}
-      />
-    )
-  }
+    return () => <LoadingElement data={load.value} renderItem={item => <Sections sections={item} />} />
+  },
 })
 
 export const Infos = ({ titre, user, apiClient }: Props): JSX.Element => {
@@ -151,15 +109,10 @@ export const Infos = ({ titre, user, apiClient }: Props): JSX.Element => {
       <div class="desktop-blob-1-2">
         <div class="rnd-b-s bg-alt pt px overflow-auto">
           <h4 class="mb">
-            <Pill
-              color={`bg-domaine-${getDomaineId(titre.typeId)}`}
-              class="mono mr-s"
-            >
+            <Pill color={`bg-domaine-${getDomaineId(titre.typeId)}`} class="mono mr-s">
               {getDomaineId(titre.typeId)}
             </Pill>
-            <span class="cap-first">
-              {TitresTypesTypes[getTitreTypeType(titre.typeId)].nom}
-            </span>
+            <span class="cap-first">{TitresTypesTypes[getTitreTypeType(titre.typeId)].nom}</span>
           </h4>
 
           <div class="mb">
@@ -178,27 +131,16 @@ export const Infos = ({ titre, user, apiClient }: Props): JSX.Element => {
                 {phases.map(demarche => (
                   <tr key={demarche.id}>
                     <td class="max-width-1">
-                      <Dot
-                        class="mt-xs"
-                        color={`bg-${
-                          phaseStatuts[demarche.phase.phaseStatutId].couleur
-                        }`}
-                      />
+                      <Dot class="mt-xs" color={`bg-${phaseStatuts[demarche.phase.phaseStatutId].couleur}`} />
                     </td>
                     <td>
-                      <span class="cap-first bold h5 mb-0">
-                        {DemarchesTypes[demarche.type.id].nom}
-                      </span>
+                      <span class="cap-first bold h5 mb-0">{DemarchesTypes[demarche.type.id].nom}</span>
                     </td>
                     <td>
-                      <span class="h5 mb-0">
-                        {dateFormat(demarche.phase.dateDebut)}
-                      </span>
+                      <span class="h5 mb-0">{dateFormat(demarche.phase.dateDebut)}</span>
                     </td>
                     <td>
-                      <span class="h5 mb-0">
-                        {dateFormat(demarche.phase.dateFin)}
-                      </span>
+                      <span class="h5 mb-0">{dateFormat(demarche.phase.dateFin)}</span>
                     </td>
                   </tr>
                 ))}
@@ -211,11 +153,7 @@ export const Infos = ({ titre, user, apiClient }: Props): JSX.Element => {
               <ul class="list-prefix h6">
                 {titre.references.map(reference => (
                   <li key={reference.nom}>
-                    {reference.referenceTypeId ? (
-                      <span class="word-break fixed-width bold">
-                        {ReferencesTypes[reference.referenceTypeId].nom}
-                      </span>
-                    ) : null}
+                    {reference.referenceTypeId ? <span class="word-break fixed-width bold">{ReferencesTypes[reference.referenceTypeId].nom}</span> : null}
                     {reference.nom}
                   </li>
                 ))}
@@ -232,7 +170,7 @@ export const Infos = ({ titre, user, apiClient }: Props): JSX.Element => {
             id: titre.id,
             typeId: titre.typeId,
             administrations: titre.administrations,
-            demarches: titre.demarches.map(d => ({ typeId: d.type.id }))
+            demarches: titre.demarches.map(d => ({ typeId: d.type.id })),
           }}
           apiClient={apiClient}
         />
@@ -240,11 +178,7 @@ export const Infos = ({ titre, user, apiClient }: Props): JSX.Element => {
         {titre.substances?.length ? (
           <div class="mb">
             <h5>Substances</h5>
-            <TagList
-              elements={titre.substances?.map(
-                substanceId => SubstancesLegale[substanceId].nom
-              )}
-            />
+            <TagList elements={titre.substances?.map(substanceId => SubstancesLegale[substanceId].nom)} />
           </div>
         ) : null}
 
diff --git a/packages/ui/src/components/titre/pure-titres-link-form-api-client.ts b/packages/ui/src/components/titre/pure-titres-link-form-api-client.ts
index 25344cc72..7eec0d51c 100644
--- a/packages/ui/src/components/titre/pure-titres-link-form-api-client.ts
+++ b/packages/ui/src/components/titre/pure-titres-link-form-api-client.ts
@@ -27,22 +27,16 @@ export type LinkableTitre = TitreLink & {
 export interface PureTitresLinkFormApiClient {
   linkTitres: (titreId: string, titreFromIds: string[]) => Promise<TitreLinks>
   loadTitreLinks: (titreId: string) => Promise<TitreLinks>
-  loadLinkableTitres: (
-    titreTypeId: TitreTypeId,
-    demarches: { typeId: DemarcheTypeId }[]
-  ) => () => Promise<LinkableTitre[]>
+  loadLinkableTitres: (titreTypeId: TitreTypeId, demarches: { typeId: DemarcheTypeId }[]) => () => Promise<LinkableTitre[]>
 }
 
 export const pureTitresLinkFormApiClient: PureTitresLinkFormApiClient = {
-  linkTitres: async (
-    titreId: string,
-    titreFromIds: string[]
-  ): Promise<TitreLinks> => {
+  linkTitres: async (titreId: string, titreFromIds: string[]): Promise<TitreLinks> => {
     return (
       await fetch(`/apiUrl/titres/${titreId}/titreLiaisons`, {
         method: 'post',
         body: JSON.stringify(titreFromIds),
-        headers: { 'Content-Type': 'application/json' }
+        headers: { 'Content-Type': 'application/json' },
       })
     ).json()
   },
@@ -51,42 +45,36 @@ export const pureTitresLinkFormApiClient: PureTitresLinkFormApiClient = {
     return (await fetch(`/apiUrl/titres/${titreId}/titreLiaisons`)).json()
   },
 
-  loadLinkableTitres:
-    (titreTypeId: TitreTypeId, demarches: { typeId: DemarcheTypeId }[]) =>
-    async () => {
-      const linkConfig = getLinkConfig(titreTypeId, demarches)
+  loadLinkableTitres: (titreTypeId: TitreTypeId, demarches: { typeId: DemarcheTypeId }[]) => async () => {
+    const linkConfig = getLinkConfig(titreTypeId, demarches)
 
-      if (linkConfig) {
-        const titreTypeFrom = TitresTypes[linkConfig.typeId]
-        const result = await apiGraphQLFetch(
-          gql`
-            query Titres($typesIds: [ID!], $domainesIds: [ID!]) {
-              titres(
-                typesIds: $typesIds
-                domainesIds: $domainesIds
-                statutsIds: ["ech", "mod", "val"]
-              ) {
-                elements {
-                  id
-                  nom
-                  titreStatutId
-                  demarches {
-                    phase {
-                      dateDebut
-                      dateFin
-                    }
+    if (linkConfig) {
+      const titreTypeFrom = TitresTypes[linkConfig.typeId]
+      const result = await apiGraphQLFetch(
+        gql`
+          query Titres($typesIds: [ID!], $domainesIds: [ID!]) {
+            titres(typesIds: $typesIds, domainesIds: $domainesIds, statutsIds: ["ech", "mod", "val"]) {
+              elements {
+                id
+                nom
+                titreStatutId
+                demarches {
+                  phase {
+                    dateDebut
+                    dateFin
                   }
                 }
               }
             }
-          `
-        )({
-          typesIds: [titreTypeFrom.typeId],
-          domainesIds: [titreTypeFrom.domaineId]
-        })
-        return result.elements
-      } else {
-        return []
-      }
+          }
+        `
+      )({
+        typesIds: [titreTypeFrom.typeId],
+        domainesIds: [titreTypeFrom.domaineId],
+      })
+      return result.elements
+    } else {
+      return []
     }
+  },
 }
diff --git a/packages/ui/src/components/titre/pure-titres-link-form.stories.ts b/packages/ui/src/components/titre/pure-titres-link-form.stories.ts
index 6278b7d8c..16305ed0b 100644
--- a/packages/ui/src/components/titre/pure-titres-link-form.stories.ts
+++ b/packages/ui/src/components/titre/pure-titres-link-form.stories.ts
@@ -12,7 +12,7 @@ import { testBlankUser } from 'camino-common/src/tests-utils'
 const meta: Meta = {
   title: 'Components/Titre/TitresLinkForm',
   component: PureTitresLinkForm,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -25,17 +25,14 @@ type Props = {
     demarches: { typeId: DemarcheTypeId }[]
   }
 
-  apiClient: Pick<
-    ApiClient,
-    'loadTitreLinks' | 'loadLinkableTitres' | 'linkTitres'
-  >
+  apiClient: Pick<ApiClient, 'loadTitreLinks' | 'loadLinkableTitres' | 'linkTitres'>
 }
 const Template: Story<Props> = (args: Props) => ({
   components: { PureTitresLinkForm },
   setup() {
     return { args }
   },
-  template: '<PureTitresLinkForm v-bind="args" />'
+  template: '<PureTitresLinkForm v-bind="args" />',
 })
 const linkableTitres: LinkableTitre[] = [
   {
@@ -46,10 +43,10 @@ const linkableTitres: LinkableTitre[] = [
       {
         phase: {
           dateDebut: '2016-10-28',
-          dateFin: '2017-03-17'
-        }
-      }
-    ]
+          dateFin: '2017-03-17',
+        },
+      },
+    ],
   },
   {
     id: 'id2',
@@ -59,10 +56,10 @@ const linkableTitres: LinkableTitre[] = [
       {
         phase: {
           dateDebut: '2008-11-30',
-          dateFin: '2019-02-27'
-        }
-      }
-    ]
+          dateFin: '2019-02-27',
+        },
+      },
+    ],
   },
   {
     id: 'id3',
@@ -72,11 +69,11 @@ const linkableTitres: LinkableTitre[] = [
       {
         phase: {
           dateDebut: '2008-11-30',
-          dateFin: '2019-02-27'
-        }
-      }
-    ]
-  }
+          dateFin: '2019-02-27',
+        },
+      },
+    ],
+  },
 ]
 
 const titresTo: TitreLink[] = [{ id: 'id10', nom: 'Titre fils' }]
@@ -85,17 +82,14 @@ const titresFrom: TitreLink[] = [linkableTitres[0]]
 const apiClient: Props['apiClient'] = {
   loadLinkableTitres: () => () => Promise.resolve(linkableTitres),
   loadTitreLinks: () => Promise.resolve({ aval: titresTo, amont: titresFrom }),
-  linkTitres: () =>
-    new Promise<TitreLinks>(resolve =>
-      resolve({ aval: titresTo, amont: titresFrom })
-    )
+  linkTitres: () => new Promise<TitreLinks>(resolve => resolve({ aval: titresTo, amont: titresFrom })),
 }
 
 export const AxmWithAlreadySelectedTitre = Template.bind({})
 AxmWithAlreadySelectedTitre.args = {
   user: { role: 'super', ...testBlankUser },
   titre: { typeId: 'axm', administrations: [], id: 'titreId', demarches: [] },
-  apiClient
+  apiClient,
 }
 
 export const FusionWithAlreadySelectedTitre = Template.bind({})
@@ -105,9 +99,9 @@ FusionWithAlreadySelectedTitre.args = {
     typeId: 'cxm',
     administrations: [],
     id: 'titreId',
-    demarches: [{ typeId: 'fus' }]
+    demarches: [{ typeId: 'fus' }],
   },
-  apiClient
+  apiClient,
 }
 
 export const TitreWithTitreLinksLoading = Template.bind({})
@@ -116,13 +110,13 @@ TitreWithTitreLinksLoading.args = {
   titre: { typeId: 'axm', administrations: [], id: 'titreId', demarches: [] },
   apiClient: {
     ...apiClient,
-    loadTitreLinks: () => new Promise<TitreLinks>(() => ({}))
-  }
+    loadTitreLinks: () => new Promise<TitreLinks>(() => ({})),
+  },
 }
 
 export const DefautCantUpdateLinks = Template.bind({})
 DefautCantUpdateLinks.args = {
   user: { role: 'defaut', ...testBlankUser },
   titre: { typeId: 'axm', administrations: [], id: 'titreId', demarches: [] },
-  apiClient
+  apiClient,
 }
diff --git a/packages/ui/src/components/titre/pure-titres-link-form.vue b/packages/ui/src/components/titre/pure-titres-link-form.vue
index 22ae0bc06..c090edc1a 100644
--- a/packages/ui/src/components/titre/pure-titres-link-form.vue
+++ b/packages/ui/src/components/titre/pure-titres-link-form.vue
@@ -2,59 +2,25 @@
   <div>
     <LoadingElement v-slot="{ item }" :data="titresLinks">
       <div v-if="item.amont.length || canLink">
-        <h5>
-          Titre{{ linkConfig && linkConfig.count === 'multiple' ? 's' : '' }} à
-          l’origine de ce titre
-        </h5>
+        <h5>Titre{{ linkConfig && linkConfig.count === 'multiple' ? 's' : '' }} à l’origine de ce titre</h5>
         <div v-if="mode === 'edit'">
-          <PureTitresLink
-            v-if="titreLinkConfig"
-            :config="titreLinkConfig"
-            :loadLinkableTitres="
-              apiClient.loadLinkableTitres(titre.typeId, titre.demarches)
-            "
-            @onSelectedTitres="onSelectedTitres"
-          />
+          <PureTitresLink v-if="titreLinkConfig" :config="titreLinkConfig" :loadLinkableTitres="apiClient.loadLinkableTitres(titre.typeId, titre.demarches)" @onSelectedTitres="onSelectedTitres" />
           <div class="flex mt-m" style="flex-direction: row-reverse">
-            <button
-              class="btn-primary ml-s"
-              style="flex: 0 1 min-content"
-              @click="saveLink"
-            >
-              Enregistrer
-            </button>
-            <button
-              class="btn-secondary"
-              style="flex: 0 1 min-content"
-              @click="mode = 'read'"
-            >
-              Annuler
-            </button>
+            <button class="btn-primary ml-s" style="flex: 0 1 min-content" @click="saveLink">Enregistrer</button>
+            <button class="btn-secondary" style="flex: 0 1 min-content" @click="mode = 'read'">Annuler</button>
           </div>
         </div>
 
         <div v-else class="flex flex-center">
           <ul class="list-inline" style="margin-bottom: 0">
-            <li
-              v-for="titreFrom in item.amont"
-              :key="titreFrom.id"
-              class="mr-xs"
-            >
-              <router-link
-                :to="{ name: 'titre', params: { id: titreFrom.id } }"
-                class="btn-border small p-s rnd-xs mr-xs"
-              >
+            <li v-for="titreFrom in item.amont" :key="titreFrom.id" class="mr-xs">
+              <router-link :to="{ name: 'titre', params: { id: titreFrom.id } }" class="btn-border small p-s rnd-xs mr-xs">
                 <span class="mr-xs">{{ titreFrom.nom }}</span>
               </router-link>
             </li>
           </ul>
 
-          <button
-            v-if="canLink"
-            class="btn-alt p-xs rnd-s"
-            title="modifie les titres liés"
-            @click="mode = 'edit'"
-          >
+          <button v-if="canLink" class="btn-alt p-xs rnd-s" title="modifie les titres liés" @click="mode = 'edit'">
             <Icon size="M" name="pencil" />
           </button>
         </div>
@@ -65,10 +31,7 @@
         <div class="flex flex-center">
           <ul class="list-inline" style="margin-bottom: 0">
             <li v-for="titreTo in item.aval" :key="titreTo.id" class="mr-xs">
-              <router-link
-                :to="{ name: 'titre', params: { id: titreTo.id } }"
-                class="btn-border small p-s rnd-xs mr-xs"
-              >
+              <router-link :to="{ name: 'titre', params: { id: titreTo.id } }" class="btn-border small p-s rnd-xs mr-xs">
                 <span class="mr-xs">{{ titreTo.nom }}</span>
               </router-link>
             </li>
@@ -80,10 +43,7 @@
 </template>
 
 <script lang="ts" setup>
-import {
-  canLinkTitres,
-  getLinkConfig
-} from 'camino-common/src/permissions/titres'
+import { canLinkTitres, getLinkConfig } from 'camino-common/src/permissions/titres'
 import { computed, onMounted, ref, watch } from 'vue'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes'
 import { User } from 'camino-common/src/roles'
@@ -105,10 +65,7 @@ const props = defineProps<{
     administrations: AdministrationId[]
     demarches: { typeId: DemarcheTypeId }[]
   }
-  apiClient: Pick<
-    ApiClient,
-    'loadTitreLinks' | 'loadLinkableTitres' | 'linkTitres'
-  >
+  apiClient: Pick<ApiClient, 'loadTitreLinks' | 'loadLinkableTitres' | 'linkTitres'>
 }>()
 
 const emit = defineEmits<{
@@ -120,9 +77,7 @@ const mode = ref<'read' | 'edit'>('read')
 const selectedTitres = ref<TitreLink[]>([])
 const titresLinks = ref<AsyncData<TitreLinks>>({ status: 'LOADING' })
 
-const linkConfig = computed(() =>
-  getLinkConfig(props.titre.typeId, props.titre.demarches)
-)
+const linkConfig = computed(() => getLinkConfig(props.titre.typeId, props.titre.demarches))
 
 onMounted(async () => {
   await init()
@@ -143,7 +98,7 @@ const init = async () => {
   } catch (e: any) {
     titresLinks.value = {
       status: 'ERROR',
-      message: e.message ?? 'something wrong happened'
+      message: e.message ?? 'something wrong happened',
     }
   }
 }
@@ -166,13 +121,13 @@ const titreLinkConfig = computed<TitresLinkConfig | null>(() => {
   if (linkConfig.value?.count === 'single') {
     return {
       type: 'single',
-      selectedTitreId: titreFromIds.length === 1 ? titreFromIds[0] : null
+      selectedTitreId: titreFromIds.length === 1 ? titreFromIds[0] : null,
     }
   }
 
   return {
     type: 'multiple',
-    selectedTitreIds: titreFromIds
+    selectedTitreIds: titreFromIds,
   }
 })
 
@@ -190,12 +145,12 @@ const saveLink = async () => {
     mode.value = 'read'
     titresLinks.value = {
       status: 'LOADED',
-      value: links
+      value: links,
     }
   } catch (e: any) {
     titresLinks.value = {
       status: 'ERROR',
-      message: e.message ?? 'something wrong happened'
+      message: e.message ?? 'something wrong happened',
     }
   }
 }
diff --git a/packages/ui/src/components/titre/pure-titres-link.stories.ts b/packages/ui/src/components/titre/pure-titres-link.stories.ts
index 375b16ebb..2ce660936 100644
--- a/packages/ui/src/components/titre/pure-titres-link.stories.ts
+++ b/packages/ui/src/components/titre/pure-titres-link.stories.ts
@@ -1,14 +1,11 @@
 import TitresLink from './pure-titres-link.vue'
 import { Meta, Story } from '@storybook/vue3'
-import {
-  LinkableTitre,
-  TitresLinkConfig
-} from '@/components/titre/pure-titres-link-form-api-client'
+import { LinkableTitre, TitresLinkConfig } from '@/components/titre/pure-titres-link-form-api-client'
 
 const meta: Meta = {
   title: 'Components/Titre/TitresLink',
   component: TitresLink,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -25,10 +22,10 @@ const titres: LinkableTitre[] = [
       {
         phase: {
           dateDebut: '2016-10-28',
-          dateFin: '2017-03-17'
-        }
-      }
-    ]
+          dateFin: '2017-03-17',
+        },
+      },
+    ],
   },
   {
     id: 'id2',
@@ -38,10 +35,10 @@ const titres: LinkableTitre[] = [
       {
         phase: {
           dateDebut: '2008-11-30',
-          dateFin: '2019-02-27'
-        }
-      }
-    ]
+          dateFin: '2019-02-27',
+        },
+      },
+    ],
   },
   {
     id: 'id3',
@@ -51,11 +48,11 @@ const titres: LinkableTitre[] = [
       {
         phase: {
           dateDebut: '2008-11-30',
-          dateFin: '2019-02-27'
-        }
-      }
-    ]
-  }
+          dateFin: '2019-02-27',
+        },
+      },
+    ],
+  },
 ]
 
 const Template: Story<Props> = (args: Props) => ({
@@ -63,37 +60,37 @@ const Template: Story<Props> = (args: Props) => ({
   setup() {
     return { args }
   },
-  template: '<TitresLink v-bind="args" />'
+  template: '<TitresLink v-bind="args" />',
 })
 
 export const AXM = Template.bind({})
 AXM.args = {
   config: { type: 'single', selectedTitreId: null },
-  loadLinkableTitres: () => Promise.resolve(titres)
+  loadLinkableTitres: () => Promise.resolve(titres),
 }
 
 export const AXMWithAlreadySelectedTitre = Template.bind({})
 AXMWithAlreadySelectedTitre.args = {
   config: { type: 'single', selectedTitreId: 'id1' },
-  loadLinkableTitres: () => Promise.resolve(titres)
+  loadLinkableTitres: () => Promise.resolve(titres),
 }
 
 export const DemarcheFusion = Template.bind({})
 DemarcheFusion.args = {
   config: {
     type: 'multiple',
-    selectedTitreIds: []
+    selectedTitreIds: [],
   },
-  loadLinkableTitres: () => Promise.resolve(titres)
+  loadLinkableTitres: () => Promise.resolve(titres),
 }
 
 export const DemarcheFusionWithAlreadySelectedTitre = Template.bind({})
 DemarcheFusionWithAlreadySelectedTitre.args = {
   config: {
     type: 'multiple',
-    selectedTitreIds: ['id1', 'id2']
+    selectedTitreIds: ['id1', 'id2'],
   },
-  loadLinkableTitres: () => Promise.resolve(titres)
+  loadLinkableTitres: () => Promise.resolve(titres),
 }
 
 export const Loading = Template.bind({})
@@ -101,14 +98,14 @@ Loading.args = {
   loadLinkableTitres: () => new Promise<LinkableTitre[]>(resolve => {}),
   config: {
     type: 'multiple',
-    selectedTitreIds: ['id1']
-  }
+    selectedTitreIds: ['id1'],
+  },
 }
 export const WithError = Template.bind({})
 WithError.args = {
   loadLinkableTitres: () => Promise.reject(new Error('because reasons')),
   config: {
     type: 'multiple',
-    selectedTitreIds: ['id1']
-  }
+    selectedTitreIds: ['id1'],
+  },
 }
diff --git a/packages/ui/src/components/titre/pure-titres-link.vue b/packages/ui/src/components/titre/pure-titres-link.vue
index e5d06c417..75a6e1e78 100644
--- a/packages/ui/src/components/titre/pure-titres-link.vue
+++ b/packages/ui/src/components/titre/pure-titres-link.vue
@@ -3,9 +3,7 @@
     <TypeAhead
       id="titre-link-typeahead"
       itemKey="id"
-      :placeholder="
-        config.type === 'single' ? 'Lier un titre' : 'Lier plusieurs titres'
-      "
+      :placeholder="config.type === 'single' ? 'Lier un titre' : 'Lier plusieurs titres'"
       :type="config.type"
       :items="titresFiltered"
       :itemChipLabel="item => item.nom"
@@ -26,22 +24,13 @@ import { Statut } from '@/components/_common/statut'
 import { AsyncData } from '@/api/client-rest'
 import LoadingElement from '@/components/_ui/pure-loader.vue'
 import { TitreLink } from 'camino-common/src/titres'
-import {
-  TitresStatuts,
-  TitreStatutId
-} from 'camino-common/src/static/titresStatuts'
-import {
-  LinkableTitre,
-  TitresLinkConfig
-} from '@/components/titre/pure-titres-link-form-api-client'
+import { TitresStatuts, TitreStatutId } from 'camino-common/src/static/titresStatuts'
+import { LinkableTitre, TitresLinkConfig } from '@/components/titre/pure-titres-link-form-api-client'
 
 const display = (item: LinkableTitre) => {
   return (
     <div class="flex flex-center">
-      <Statut
-        color={titreStatut(item.titreStatutId).couleur}
-        nom={titreStatut(item.titreStatutId).nom}
-      />
+      <Statut color={titreStatut(item.titreStatutId).couleur} nom={titreStatut(item.titreStatutId).nom} />
       <span class="cap-first bold ml-m">{item.nom}</span>
       <span class="ml-m" style="margin-left: auto">
         {getDateDebutEtDateFin(item)}
@@ -71,10 +60,7 @@ const init = async () => {
 
     data.value = { status: 'LOADED', value: titresLinkables }
     const titreIds: string[] = []
-    if (
-      props.config.type === 'single' &&
-      props.config.selectedTitreId !== null
-    ) {
+    if (props.config.type === 'single' && props.config.selectedTitreId !== null) {
       titreIds.push(props.config.selectedTitreId)
     }
     if (props.config.type === 'multiple') {
@@ -82,9 +68,7 @@ const init = async () => {
     }
 
     if (titreIds.length) {
-      const selectedTitreList = data.value.value.filter(({ id }) =>
-        titreIds.includes(id)
-      )
+      const selectedTitreList = data.value.value.filter(({ id }) => titreIds.includes(id))
       if (selectedTitreList) {
         selectedTitres.value.push(...selectedTitreList)
       }
@@ -92,7 +76,7 @@ const init = async () => {
   } catch (e: any) {
     data.value = {
       status: 'ERROR',
-      message: e.message ?? 'something wrong happened'
+      message: e.message ?? 'something wrong happened',
     }
   }
 }
@@ -113,11 +97,7 @@ onMounted(async () => {
 
 const titresFiltered = computed(() => {
   if (data.value.status === 'LOADED') {
-    return search.value.length
-      ? data.value.value.filter(({ nom }) =>
-          nom.toLowerCase().includes(search.value)
-        )
-      : data.value.value
+    return search.value.length ? data.value.value.filter(({ nom }) => nom.toLowerCase().includes(search.value)) : data.value.value
   }
   return []
 })
@@ -135,9 +115,7 @@ const onSelectItems = (titres: TitreLink[]) => {
 
 const getDateDebutEtDateFin = (titre: LinkableTitre): string => {
   const titreLinkDemarches = titre.demarches.filter(({ phase }) => phase)
-  const dateDebut = titreLinkDemarches
-    .map(({ phase }) => phase?.dateDebut)
-    .sort()[0]
+  const dateDebut = titreLinkDemarches.map(({ phase }) => phase?.dateDebut).sort()[0]
   const dateFin = titreLinkDemarches
     .map(({ phase }) => phase?.dateFin)
     .sort()
@@ -145,6 +123,5 @@ const getDateDebutEtDateFin = (titre: LinkableTitre): string => {
 
   return `${dateDebut} - ${dateFin}`
 }
-const titreStatut = (titreStatutId: TitreStatutId) =>
-  TitresStatuts[titreStatutId]
+const titreStatut = (titreStatutId: TitreStatutId) => TitresStatuts[titreStatutId]
 </script>
diff --git a/packages/ui/src/components/titre/remove-popup.vue b/packages/ui/src/components/titre/remove-popup.vue
index 703ba08a1..af8f48df9 100644
--- a/packages/ui/src/components/titre/remove-popup.vue
+++ b/packages/ui/src/components/titre/remove-popup.vue
@@ -3,8 +3,7 @@
     <template #header>
       <div>
         <h6>
-          <span class="cap-first"> {{ titreNom }} </span
-          ><span class="color-neutral"> | </span
+          <span class="cap-first"> {{ titreNom }} </span><span class="color-neutral"> | </span
           ><span class="cap-first">
             {{ typeNom }}
           </span>
@@ -15,27 +14,18 @@
 
     <p class="bold">
       Souhaitez vous supprimer le titre
-      <span class="color-inverse">{{ titreNom }}</span> (<span
-        class="color-inverse"
-        >{{ typeNom }}</span
+      <span class="color-inverse">{{ titreNom }}</span> (<span class="color-inverse">{{ typeNom }}</span
       >) ?
     </p>
-    <div class="bg-warning color-bg p-s mb-l">
-      <span class="bold"> Attention </span>: cette opération est définitive et
-      ne peut pas être annulée.
-    </div>
+    <div class="bg-warning color-bg p-s mb-l"><span class="bold"> Attention </span>: cette opération est définitive et ne peut pas être annulée.</div>
 
     <template #footer>
       <div v-if="!loading" class="tablet-blobs">
         <div class="tablet-blob-1-3 mb tablet-mb-0">
-          <button class="btn-border rnd-xs p-s full-x" @click="cancel">
-            Annuler
-          </button>
+          <button class="btn-border rnd-xs p-s full-x" @click="cancel">Annuler</button>
         </div>
         <div class="tablet-blob-2-3">
-          <button class="btn-flash rnd-xs p-s full-x" @click="remove">
-            Supprimer
-          </button>
+          <button class="btn-flash rnd-xs p-s full-x" @click="remove">Supprimer</button>
         </div>
       </div>
       <div v-else class="p-s full-x bold">Suppression en cours…</div>
@@ -50,24 +40,24 @@ export default {
   name: 'CaminoTitreRemovePopup',
 
   components: {
-    Popup
+    Popup,
   },
 
   props: {
     titreId: {
       type: String,
-      default: ''
+      default: '',
     },
 
     titreNom: {
       type: String,
-      default: ''
+      default: '',
     },
 
     typeNom: {
       type: String,
-      default: ''
-    }
+      default: '',
+    },
   },
 
   computed: {
@@ -77,7 +67,7 @@ export default {
 
     messages() {
       return this.$store.state.popup.messages
-    }
+    },
   },
 
   created() {
@@ -108,7 +98,7 @@ export default {
 
     errorsRemove() {
       // this.$store.commit('utilisateur/loginMessagesRemove')
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/titre/repertoire.vue b/packages/ui/src/components/titre/repertoire.vue
index f65e5db94..4ca22ba8e 100644
--- a/packages/ui/src/components/titre/repertoire.vue
+++ b/packages/ui/src/components/titre/repertoire.vue
@@ -3,36 +3,18 @@
     <div class="tablet-blob-1-2">
       <div v-if="titulaires.length" class="mb">
         <h5>Titulaire{{ titulaires.length > 1 ? 's' : '' }}</h5>
-        <Entreprise
-          v-for="titulaire in titulaires"
-          :key="titulaire.id"
-          :entreprise="titulaire"
-          class="mb-s"
-          @titre-event-track="eventTrack"
-        />
+        <Entreprise v-for="titulaire in titulaires" :key="titulaire.id" :entreprise="titulaire" class="mb-s" @titre-event-track="eventTrack" />
       </div>
       <div v-if="amodiataires.length" class="mb">
         <h5>Amodiataire{{ amodiataires.length > 1 ? 's' : '' }}</h5>
-        <Entreprise
-          v-for="amodiataire in amodiataires"
-          :key="amodiataire.id"
-          :entreprise="amodiataire"
-          class="mb-s"
-          @titre-event-track="eventTrack"
-        />
+        <Entreprise v-for="amodiataire in amodiataires" :key="amodiataire.id" :entreprise="amodiataire" class="mb-s" @titre-event-track="eventTrack" />
       </div>
     </div>
 
     <div class="tablet-blob-1-2">
       <div v-if="administrations.length" class="mb">
         <h5>Administrations</h5>
-        <Administration
-          v-for="administrationId in admins"
-          :key="administrationId"
-          :administrationId="administrationId"
-          class="mb-s"
-          @titre-event-track="eventTrack"
-        />
+        <Administration v-for="administrationId in admins" :key="administrationId" :administrationId="administrationId" class="mb-s" @titre-event-track="eventTrack" />
       </div>
     </div>
   </div>
@@ -64,16 +46,12 @@ const eventTrack = (event: unknown) => {
 }
 
 const mustFilterOutAssociee = () => {
-  return !(
-    store.getters['user/userIsAdmin'] || store.getters['user/userIsSuper']
-  )
+  return !(store.getters['user/userIsAdmin'] || store.getters['user/userIsSuper'])
 }
 
 const admins = computed(() => {
   if (mustFilterOutAssociee()) {
-    return props.administrations.filter(
-      id => !isAssociee(id, props.titreTypeId)
-    )
+    return props.administrations.filter(id => !isAssociee(id, props.titreTypeId))
   } else {
     return props.administrations
   }
diff --git a/packages/ui/src/components/titre/territoires.stories.ts b/packages/ui/src/components/titre/territoires.stories.ts
index 21386e91d..c35e84654 100644
--- a/packages/ui/src/components/titre/territoires.stories.ts
+++ b/packages/ui/src/components/titre/territoires.stories.ts
@@ -5,7 +5,7 @@ import { DEPARTEMENT_IDS } from 'camino-common/src/static/departement'
 const meta: Meta = {
   title: 'Components/Titre/Territoires',
   component: Territoires,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -14,7 +14,7 @@ const Template: Story<TerritoiresProps> = (args: TerritoiresProps) => ({
   setup() {
     return { args }
   },
-  template: '<Territoires v-bind="args" />'
+  template: '<Territoires v-bind="args" />',
 })
 
 export const OnlySurface = Template.bind(
@@ -23,7 +23,7 @@ export const OnlySurface = Template.bind(
     surface: 4,
     forets: [],
     communes: [],
-    secteursMaritimes: []
+    secteursMaritimes: [],
   }
 )
 
@@ -34,7 +34,7 @@ export const OnlyForets = Template.bind(
     sdomZones: [],
     communes: [],
     secteursMaritimes: [],
-    forets: [{ nom: 'Forêt 1' }, { nom: 'Forêt 2' }]
+    forets: [{ nom: 'Forêt 1' }, { nom: 'Forêt 2' }],
   }
 )
 
@@ -45,7 +45,7 @@ export const OnlySdomZones = Template.bind(
     forets: [],
     communes: [],
     secteursMaritimes: [],
-    sdomZones: ['1', '2']
+    sdomZones: ['1', '2'],
   }
 )
 export const OnlySecteursMaritimes = Template.bind(
@@ -55,7 +55,7 @@ export const OnlySecteursMaritimes = Template.bind(
     forets: [],
     sdomZones: [],
     communes: [],
-    secteursMaritimes: ['Balagne', 'Bretagne nord', 'Bretagne sud']
+    secteursMaritimes: ['Balagne', 'Bretagne nord', 'Bretagne sud'],
   }
 )
 
@@ -69,13 +69,10 @@ export const All = Template.bind(
       { nom: 'Flée', departementId: DEPARTEMENT_IDS.Sarthe },
       { nom: 'Montval-sur-loir', departementId: DEPARTEMENT_IDS.Sarthe },
       { nom: 'Tours', departementId: DEPARTEMENT_IDS['Indre-et-Loire'] },
-      { nom: 'Ville de Guyane', departementId: DEPARTEMENT_IDS.Guyane }
+      { nom: 'Ville de Guyane', departementId: DEPARTEMENT_IDS.Guyane },
     ],
-    secteursMaritimes: ['Balagne', 'Bretagne nord', 'Bretagne sud']
+    secteursMaritimes: ['Balagne', 'Bretagne nord', 'Bretagne sud'],
   }
 )
 
-export const Empty = Template.bind(
-  {},
-  { forets: [], communes: [], secteursMaritimes: [] }
-)
+export const Empty = Template.bind({}, { forets: [], communes: [], secteursMaritimes: [] })
diff --git a/packages/ui/src/components/titre/territoires.tsx b/packages/ui/src/components/titre/territoires.tsx
index ed2564b32..af5616ad2 100644
--- a/packages/ui/src/components/titre/territoires.tsx
+++ b/packages/ui/src/components/titre/territoires.tsx
@@ -1,13 +1,6 @@
 import { numberFormat } from '@/utils/number-format'
-import {
-  DepartementId,
-  Departements
-} from 'camino-common/src/static/departement'
-import {
-  getFacadesComputed,
-  SecteursMaritimes,
-  FacadeComputed
-} from 'camino-common/src/static/facades'
+import { DepartementId, Departements } from 'camino-common/src/static/departement'
+import { getFacadesComputed, SecteursMaritimes, FacadeComputed } from 'camino-common/src/static/facades'
 import { PaysId, PAYS_IDS } from 'camino-common/src/static/pays'
 import { Regions } from 'camino-common/src/static/region'
 import { SDOMZoneId, SDOMZones } from 'camino-common/src/static/sdom'
@@ -49,19 +42,17 @@ function CommunesEtRegions(communes: TerritoiresCommune[]) {
           id: region.id,
           paysId: region.paysId,
           nom: region.nom,
-          departements: []
+          departements: [],
         }
         acc.push(regionToUpdate)
       }
 
-      let departementToUpdate = regionToUpdate.departements.find(
-        ({ id }) => id === departement.id
-      )
+      let departementToUpdate = regionToUpdate.departements.find(({ id }) => id === departement.id)
       if (!departementToUpdate) {
         departementToUpdate = {
           id: departement.id,
           nom: departement.nom,
-          communes: []
+          communes: [],
         }
         regionToUpdate.departements.push(departementToUpdate)
       }
@@ -79,11 +70,7 @@ function CommunesEtRegions(communes: TerritoiresCommune[]) {
               {region.departements.map(departement => {
                 return (
                   <div key={departement.id}>
-                    <h6 class="mb-s">
-                      {region.paysId === PAYS_IDS['République Française']
-                        ? region.nom + ' / ' + departement.nom
-                        : region.nom}
-                    </h6>
+                    <h6 class="mb-s">{region.paysId === PAYS_IDS['République Française'] ? region.nom + ' / ' + departement.nom : region.nom}</h6>
                     <TagList elements={departement.communes} />
                   </div>
                 )
@@ -121,8 +108,7 @@ function SdomZones(sdomZones?: SDOMZoneId[]) {
 
 function SecteursMaritimesTsx(secteursMaritimes: SecteursMaritimes[]) {
   if (secteursMaritimes.length) {
-    const facadesMaritime: FacadeComputed[] =
-      getFacadesComputed(secteursMaritimes)
+    const facadesMaritime: FacadeComputed[] = getFacadesComputed(secteursMaritimes)
     return (
       <>
         {facadesMaritime.map(facade => {
@@ -149,10 +135,7 @@ function Surface(surface?: number) {
 }
 
 function TerritoiresSansSurface(props: TerritoiresProps) {
-  return props.communes.length ||
-    props.forets.length ||
-    props.sdomZones?.length ||
-    props.secteursMaritimes.length ? (
+  return props.communes.length || props.forets.length || props.sdomZones?.length || props.secteursMaritimes.length ? (
     <div class="tablet-blob-3-4">
       <h5>Territoires</h5>
       {CommunesEtRegions(props.communes)}
diff --git a/packages/ui/src/components/titre/titre-api-client.ts b/packages/ui/src/components/titre/titre-api-client.ts
index 9ab07892d..a4216b2bc 100644
--- a/packages/ui/src/components/titre/titre-api-client.ts
+++ b/packages/ui/src/components/titre/titre-api-client.ts
@@ -9,5 +9,5 @@ export interface TitreApiClient {
 export const titreApiClient: TitreApiClient = {
   loadTitreSections: async (titreId: string): Promise<Section[]> => {
     return fetchWithJson(CaminoRestRoutes.titreSections, { titreId })
-  }
+  },
 }
diff --git a/packages/ui/src/components/titres.tsx b/packages/ui/src/components/titres.tsx
index cafdc7039..8f69343e4 100644
--- a/packages/ui/src/components/titres.tsx
+++ b/packages/ui/src/components/titres.tsx
@@ -13,10 +13,7 @@ import { TablePagination } from './titres/table-pagination'
 function DemandeTitreButton(user: User, router: Router) {
   if (TitresTypesIds.some(titreTypeId => canCreateTitre(user, titreTypeId))) {
     return (
-      <button
-        class="btn btn-primary small flex"
-        onClick={() => router.push({ name: 'titre-creation' })}
-      >
+      <button class="btn btn-primary small flex" onClick={() => router.push({ name: 'titre-creation' })}>
         <span class="mt-xxs">Demander un titre…</span>
         <Icon name="plus" size="M" class="flex-right" color="white" />
       </button>
@@ -27,17 +24,12 @@ function DemandeTitreButton(user: User, router: Router) {
 
 const vues = [
   { id: 'carte', icon: 'globe' },
-  { id: 'table', icon: 'list' }
+  { id: 'table', icon: 'list' },
 ] as const
 
 type VueId = (typeof vues)[number]['id']
 
-function AfficheData(
-  initialized: boolean,
-  vueId: VueId,
-  titres: any,
-  total: number
-): JSX.Element {
+function AfficheData(initialized: boolean, vueId: VueId, titres: any, total: number): JSX.Element {
   if (initialized) {
     switch (vueId) {
       case 'carte':
@@ -61,18 +53,13 @@ export const Titres = defineComponent({
 
     const user = computed<User>(() => store.state.user.element)
     const initialized = computed<boolean>(() => store.state.titres.initialized)
-    const loading = computed<boolean>(() =>
-      store.state.loading.includes('titres')
-    )
+    const loading = computed<boolean>(() => store.state.loading.includes('titres'))
     const titres = computed<any[]>(() => store.state.titres.elements)
     const total = computed<number>(() => store.state.titres.total)
 
     const vueId = computed<VueId>(() => store.state.titres.vueId)
     const resultat = computed<string>(() => {
-      const res =
-        total.value > titres.value.length
-          ? `${titres.value.length} / ${total.value}`
-          : titres.value.length
+      const res = total.value > titres.value.length ? `${titres.value.length} / ${total.value}` : titres.value.length
 
       return `${res} résultat${titres.value.length > 1 ? 's' : ''}`
     })
@@ -98,35 +85,18 @@ export const Titres = defineComponent({
             <h1 class="mt-xs mb-m">Titres miniers et autorisations</h1>
           </div>
 
-          <div class="desktop-blob-1-3">
-            {DemandeTitreButton(user.value, router)}
-          </div>
+          <div class="desktop-blob-1-3">{DemandeTitreButton(user.value, router)}</div>
         </div>
 
         <Filtres initialized={initialized.value} />
         <div class="tablet-blobs tablet-flex-direction-reverse">
-          <div class="tablet-blob-1-3 flex mb-s">
-            {titres.value.length > 0 ? (
-              <Downloads
-                formats={['geojson', 'csv', 'xlsx', 'ods']}
-                section="titres"
-                class="flex-right full-x downloads"
-              />
-            ) : null}
-          </div>
+          <div class="tablet-blob-1-3 flex mb-s">{titres.value.length > 0 ? <Downloads formats={['geojson', 'csv', 'xlsx', 'ods']} section="titres" class="flex-right full-x downloads" /> : null}</div>
 
           <div class="tablet-blob-2-3 flex">
             {vues.map(vue => {
               return (
-                <div
-                  key={vue.id}
-                  class={vueId.value === vue.id ? 'active mr-xs' : 'mr-xs'}
-                >
-                  <button
-                    class="p-m btn-tab rnd-t-s"
-                    style={vueId.value === vue.id ? { cursor: 'default' } : {}}
-                    onClick={() => vueId.value !== vue.id && vueClick(vue.id)}
-                  >
+                <div key={vue.id} class={vueId.value === vue.id ? 'active mr-xs' : 'mr-xs'}>
+                  <button class="p-m btn-tab rnd-t-s" style={vueId.value === vue.id ? { cursor: 'default' } : {}} onClick={() => vueId.value !== vue.id && vueClick(vue.id)}>
                     <Icon name={vue.icon} size="M" />
                   </button>
                 </div>
@@ -139,5 +109,5 @@ export const Titres = defineComponent({
         {AfficheData(initialized.value, vueId.value, titres.value, total.value)}
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/titres/filtres.js b/packages/ui/src/components/titres/filtres.js
index 04a22ab80..3de2fe897 100644
--- a/packages/ui/src/components/titres/filtres.js
+++ b/packages/ui/src/components/titres/filtres.js
@@ -17,56 +17,56 @@ const filtres = [
     name: 'Noms',
     lazy: true,
     search: value => titresRechercherByNom({ noms: value, intervalle: 100 }),
-    load: value => titresFiltres({ titresIds: value })
+    load: value => titresFiltres({ titresIds: value }),
   },
   {
     id: 'entreprisesIds',
     type: 'autocomplete',
     value: [],
     name: 'Entreprises',
-    elementsFormat
+    elementsFormat,
   },
   {
     id: 'substancesIds',
     type: 'autocomplete',
     value: [],
     elements: SubstancesLegales,
-    name: 'Substances'
+    name: 'Substances',
   },
   {
     id: 'references',
     type: 'input',
     value: '',
     name: 'Références',
-    placeholder: 'Référence DGEC, DEAL, DEB, BRGM, Ifremer, …'
+    placeholder: 'Référence DGEC, DEAL, DEB, BRGM, Ifremer, …',
   },
   {
     id: 'communes',
     type: 'input',
     value: '',
     name: 'Communes',
-    placeholder: 'Communes'
+    placeholder: 'Communes',
   },
   {
     id: 'departements',
     name: 'Départements',
     type: 'autocomplete',
     value: [],
-    elements: departements
+    elements: departements,
   },
   {
     id: 'regions',
     name: 'Régions',
     type: 'autocomplete',
     value: [],
-    elements: regions
+    elements: regions,
   },
   {
     id: 'facadesMaritimes',
     name: 'Façades Maritimes',
     type: 'autocomplete',
     value: [],
-    elements: FACADES.map(facade => ({ id: facade, nom: facade }))
+    elements: FACADES.map(facade => ({ id: facade, nom: facade })),
   },
   {
     id: 'domainesIds',
@@ -74,7 +74,7 @@ const filtres = [
     type: 'checkboxes',
     value: [],
     elements: sortedDomaines,
-    component: 'FiltreDomaine'
+    component: 'FiltreDomaine',
   },
   {
     id: 'typesIds',
@@ -82,7 +82,7 @@ const filtres = [
     type: 'checkboxes',
     value: [],
     elements: sortedTitreTypesTypes,
-    component: 'FiltresTypes'
+    component: 'FiltresTypes',
   },
   {
     id: 'statutsIds',
@@ -90,8 +90,8 @@ const filtres = [
     type: 'checkboxes',
     value: [],
     elements: sortedTitresStatuts,
-    component: 'FiltresStatuts'
-  }
+    component: 'FiltresStatuts',
+  },
 ]
 
 export default filtres
diff --git a/packages/ui/src/components/titres/filtres.vue b/packages/ui/src/components/titres/filtres.vue
index 92e6899bb..154916118 100644
--- a/packages/ui/src/components/titres/filtres.vue
+++ b/packages/ui/src/components/titres/filtres.vue
@@ -1,12 +1,5 @@
 <template>
-  <Filtres
-    :filtres="filtres"
-    :initialized="initialized"
-    :metas="metas"
-    :params="params"
-    @params-update="paramsFiltresUpdate"
-    @toggle="filtresToggle"
-  />
+  <Filtres :filtres="filtres" :initialized="initialized" :metas="metas" :params="params" @params-update="paramsFiltresUpdate" @toggle="filtresToggle" />
 </template>
 
 <script>
@@ -18,12 +11,12 @@ export default {
   components: { Filtres },
 
   props: {
-    initialized: { type: Boolean, required: true }
+    initialized: { type: Boolean, required: true },
   },
 
   data() {
     return {
-      filtres
+      filtres,
     }
   },
 
@@ -38,39 +31,33 @@ export default {
 
     definitions() {
       return this.$store.state.titres.definitions
-    }
+    },
   },
 
   methods: {
     paramsFiltresUpdate(params) {
       this.$store.dispatch('titres/paramsSet', {
         section: 'filtres',
-        params
+        params,
       })
 
       this.$store.dispatch('titres/paramsSet', {
         section: 'table',
-        params: { page: 1 }
+        params: { page: 1 },
       })
 
       this.paramsEventTrack(params)
     },
 
     paramsEventTrack(params) {
-      paramsEventTrack(
-        params,
-        this.definitions,
-        this.$matomo,
-        'titres',
-        'filtres'
-      )
+      paramsEventTrack(params, this.definitions, this.$matomo, 'titres', 'filtres')
     },
 
     filtresToggle(opened) {
       if (opened) {
         this.paramsEventTrack()
       }
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/titres/map.tsx b/packages/ui/src/components/titres/map.tsx
index 8224b556c..c839b79ec 100644
--- a/packages/ui/src/components/titres/map.tsx
+++ b/packages/ui/src/components/titres/map.tsx
@@ -1,32 +1,13 @@
-import {
-  nextTick,
-  defineComponent,
-  ref,
-  Ref,
-  computed,
-  onMounted,
-  onBeforeUnmount,
-  inject,
-  watch
-} from 'vue'
+import { nextTick, defineComponent, ref, Ref, computed, onMounted, onBeforeUnmount, inject, watch } from 'vue'
 import { CaminoMap, Props as CaminoMapProps } from '../_map/index'
 import { leafletGeojsonBoundsGet } from '../_map/leaflet'
-import {
-  clustersBuild,
-  layersBuild,
-  zones,
-  CaminoMarker,
-  TitreWithPoint
-} from './mapUtil'
+import { clustersBuild, layersBuild, zones, CaminoMarker, TitreWithPoint } from './mapUtil'
 import { Icon } from '@/components/_ui/icon'
 import { isDomaineId } from 'camino-common/src/static/domaines'
 import { useStore } from 'vuex'
 import { useRouter } from 'vue-router'
 import { Layer, Marker, MarkerClusterGroup } from 'leaflet'
-import {
-  getKeys,
-  isNotNullNorUndefined
-} from 'camino-common/src/typescript-tools'
+import { getKeys, isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
 interface Props {
   titres: TitreWithPoint[]
 }
@@ -82,10 +63,7 @@ export const CaminoTitresMap = defineComponent<Props>({
     }
 
     const titresInit = (titres: TitreWithPoint[]) => {
-      const { geojsons: geojsonLayer, markers: markersLayer } = layersBuild(
-        titres,
-        router
-      )
+      const { geojsons: geojsonLayer, markers: markersLayer } = layersBuild(titres, router)
       const clustersBuilt = clustersBuild()
       geojsons.value = geojsonLayer
       markers.value = markersLayer
@@ -105,11 +83,7 @@ export const CaminoTitresMap = defineComponent<Props>({
       geojsonLayersDisplay()
     }
 
-    const titresPreferencesUpdate = (params: {
-      center?: number[]
-      zoom?: number
-      bbox?: number[]
-    }) => {
+    const titresPreferencesUpdate = (params: { center?: number[]; zoom?: number; bbox?: number[] }) => {
       if (params.center || params.zoom || params.bbox) {
         const myParams: {
           zoom?: number
@@ -126,7 +100,7 @@ export const CaminoTitresMap = defineComponent<Props>({
 
         store.dispatch('titres/paramsSet', {
           section: 'carte',
-          params: myParams
+          params: myParams,
         })
       }
     }
@@ -144,7 +118,7 @@ export const CaminoTitresMap = defineComponent<Props>({
 
       await store.dispatch('titres/paramsSet', {
         section: 'carte',
-        params
+        params,
       })
 
       if (map.value) {
@@ -178,9 +152,7 @@ export const CaminoTitresMap = defineComponent<Props>({
       })
     }
 
-    const markerLayersIdSet = (
-      markerLayersId: 'clusters' | 'markers' | 'none'
-    ) => {
+    const markerLayersIdSet = (markerLayersId: 'clusters' | 'markers' | 'none') => {
       const params = { markerLayersId }
       if (matomo) {
         // @ts-ignore
@@ -188,7 +160,7 @@ export const CaminoTitresMap = defineComponent<Props>({
       }
       store.dispatch('user/preferencesSet', {
         section: 'carte',
-        params
+        params,
       })
       geojsonLayersDisplay()
     }
@@ -210,23 +182,14 @@ export const CaminoTitresMap = defineComponent<Props>({
     )
     return () => (
       <div class="width-full bg-alt">
-        <CaminoMap
-          ref={map}
-          markerLayers={markerLayers.value}
-          geojsonLayers={geojsonLayers.value}
-          mapUpdate={titresPreferencesUpdate}
-          class="map map-view mb-s"
-        />
+        <CaminoMap ref={map} markerLayers={markerLayers.value} geojsonLayers={geojsonLayers.value} mapUpdate={titresPreferencesUpdate} class="map map-view mb-s" />
 
         <div class="container overflow-auto">
           <div class="desktop-blobs">
             <div class="desktop-blob-1-2 desktop-flex">
               <div class="mb-s">
                 <span class="mr-s">
-                  <button
-                    class="btn-border small rnd-m px-s py-xs"
-                    onClick={() => mapFrame()}
-                  >
+                  <button class="btn-border small rnd-m px-s py-xs" onClick={() => mapFrame()}>
                     Tout afficher
                   </button>
                 </span>
@@ -234,10 +197,7 @@ export const CaminoTitresMap = defineComponent<Props>({
               <ul class="list-inline pill-list mb-s">
                 {zones.map(z => (
                   <li key={z.id} class="mr-px mb-px">
-                    <button
-                      class="btn-border small pill-item px-s py-xs"
-                      onClick={() => mapCenter(z.id)}
-                    >
+                    <button class="btn-border small pill-item px-s py-xs" onClick={() => mapCenter(z.id)}>
                       {z.name}
                     </button>
                   </li>
@@ -247,42 +207,18 @@ export const CaminoTitresMap = defineComponent<Props>({
 
             <div class="desktop-blob-1-2 desktop-flex">
               <div class="flex mb-s">
-                <div
-                  class={`${
-                    markerLayersId.value === 'clusters' ? 'active' : ''
-                  }`}
-                >
-                  <button
-                    class="btn-border p-s rnd-l-s"
-                    title="regroupe les marqueurs"
-                    onClick={() => markerLayersIdSet('clusters')}
-                  >
+                <div class={`${markerLayersId.value === 'clusters' ? 'active' : ''}`}>
+                  <button class="btn-border p-s rnd-l-s" title="regroupe les marqueurs" onClick={() => markerLayersIdSet('clusters')}>
                     <Icon size="M" name="marker-cluster" />
                   </button>
                 </div>
-                <div
-                  class={`${
-                    markerLayersId.value === 'markers' ? 'active' : ''
-                  }`}
-                >
-                  <button
-                    class="btn-border p-s"
-                    title="affiche les marqueurs"
-                    onClick={() => markerLayersIdSet('markers')}
-                  >
+                <div class={`${markerLayersId.value === 'markers' ? 'active' : ''}`}>
+                  <button class="btn-border p-s" title="affiche les marqueurs" onClick={() => markerLayersIdSet('markers')}>
                     <Icon size="M" name="marker-ungrouped" />
                   </button>
                 </div>
-                <div
-                  class={`${
-                    markerLayersId.value === 'none' ? 'active' : ''
-                  } mr-s`}
-                >
-                  <button
-                    class="btn-border p-s rnd-r-s"
-                    title="affiche les contours uniquement"
-                    onClick={() => markerLayersIdSet('none')}
-                  >
+                <div class={`${markerLayersId.value === 'none' ? 'active' : ''} mr-s`}>
+                  <button class="btn-border p-s rnd-r-s" title="affiche les contours uniquement" onClick={() => markerLayersIdSet('none')}>
                     <Icon size="M" name="marker-none" />
                   </button>
                 </div>
@@ -292,5 +228,5 @@ export const CaminoTitresMap = defineComponent<Props>({
         </div>
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/titres/mapUtil.ts b/packages/ui/src/components/titres/mapUtil.ts
index f6819edb9..3ab7a7e29 100644
--- a/packages/ui/src/components/titres/mapUtil.ts
+++ b/packages/ui/src/components/titres/mapUtil.ts
@@ -1,37 +1,18 @@
-import {
-  leafletMarkerClusterGroupBuild,
-  leafletGeojsonCenterFind,
-  leafletGeojsonBuild,
-  leafletMarkerBuild,
-  leafletIconBuild
-} from '../_map/leaflet'
+import { leafletMarkerClusterGroupBuild, leafletGeojsonCenterFind, leafletGeojsonBuild, leafletMarkerBuild, leafletIconBuild } from '../_map/leaflet'
 import { TitresStatuts } from 'camino-common/src/static/titresStatuts'
-import {
-  getDomaineId,
-  getTitreTypeType
-} from 'camino-common/src/static/titresTypes'
+import { getDomaineId, getTitreTypeType } from 'camino-common/src/static/titresTypes'
 import { DomaineId, sortedDomaines } from 'camino-common/src/static/domaines'
-import {
-  DivIconOptions,
-  GeoJSONOptions,
-  LeafletEventHandlerFnMap,
-  Map,
-  Marker,
-  MarkerClusterGroup,
-  PopupOptions
-} from 'leaflet'
+import { DivIconOptions, GeoJSONOptions, LeafletEventHandlerFnMap, Map, Marker, MarkerClusterGroup, PopupOptions } from 'leaflet'
 import { Router } from 'vue-router'
 import { CommonTitre } from 'camino-common/src/titres'
 import { GeoJsonObject } from 'geojson'
 
-const leafletCoordinatesFind = (geojson: {
-  geometry: { coordinates: [number, number] }
-}) => {
+const leafletCoordinatesFind = (geojson: { geometry: { coordinates: [number, number] } }) => {
   const coordinates = geojson.geometry.coordinates
 
   return {
     lng: coordinates[0],
-    lat: coordinates[1]
+    lat: coordinates[1],
   }
 }
 export const zones = [
@@ -41,8 +22,8 @@ export const zones = [
     type: 'LineString',
     coordinates: [
       [-5, 41],
-      [10, 51]
-    ]
+      [10, 51],
+    ],
   },
   {
     id: 'gf',
@@ -50,8 +31,8 @@ export const zones = [
     type: 'LineString',
     coordinates: [
       [-55, 6],
-      [-51, 2]
-    ]
+      [-51, 2],
+    ],
   },
   {
     id: 'oi',
@@ -59,8 +40,8 @@ export const zones = [
     type: 'LineString',
     coordinates: [
       [39, -23],
-      [58, -13]
-    ]
+      [58, -13],
+    ],
   },
   {
     id: 'an',
@@ -68,27 +49,24 @@ export const zones = [
     type: 'LineString',
     coordinates: [
       [-64, 15],
-      [-59, 16]
-    ]
-  }
+      [-59, 16],
+    ],
+  },
 ] as const
 
 export const clustersBuild = () =>
-  sortedDomaines.reduce<{ [key in DomaineId]?: MarkerClusterGroup }>(
-    (clusters, { id }) => {
-      const divIconOptions: DivIconOptions = {
-        html: id.toUpperCase(),
-        className: `py-xs px-s pill small mono color-bg bold bg-domaine-${id}`,
-        iconSize: undefined,
-        iconAnchor: [0, 0]
-      }
+  sortedDomaines.reduce<{ [key in DomaineId]?: MarkerClusterGroup }>((clusters, { id }) => {
+    const divIconOptions: DivIconOptions = {
+      html: id.toUpperCase(),
+      className: `py-xs px-s pill small mono color-bg bold bg-domaine-${id}`,
+      iconSize: undefined,
+      iconAnchor: [0, 0],
+    }
 
-      clusters[id] = leafletMarkerClusterGroupBuild(divIconOptions)
+    clusters[id] = leafletMarkerClusterGroupBuild(divIconOptions)
 
-      return clusters
-    },
-    {}
-  )
+    return clusters
+  }, {})
 
 const domainesColors: Record<DomaineId, string> = {
   c: '#b88847',
@@ -98,7 +76,7 @@ const domainesColors: Record<DomaineId, string> = {
   m: '#376faa',
   r: '#a0aa31',
   s: '#7657b5',
-  w: '#1ea88c'
+  w: '#1ea88c',
 } as const
 
 const iconUrlFind = (domaineId: DomaineId) => {
@@ -121,48 +99,34 @@ export type CaminoMarker = {
 export const layersBuild = (titres: TitreWithPoint[], router: Router) =>
   titres.reduce<{ geojsons: Record<string, any>; markers: CaminoMarker[] }>(
     ({ geojsons, markers }, titre, index) => {
-      if (!titre.geojsonMultiPolygon && !titre.geojsonCentre)
-        return { geojsons, markers }
+      if (!titre.geojsonMultiPolygon && !titre.geojsonCentre) return { geojsons, markers }
 
       const titreId = titre.id || index
       const domaineId = getDomaineId(titre.typeId)
       const icon = leafletIconBuild({
         iconUrl: iconUrlFind(domaineId),
         iconSize: [32, 40],
-        iconAnchor: [16, 40]
+        iconAnchor: [16, 40],
       })
 
-      const latLng = titre.geojsonCentre
-        ? leafletCoordinatesFind(titre.geojsonCentre)
-        : leafletGeojsonCenterFind(titre.geojsonMultiPolygon)
+      const latLng = titre.geojsonCentre ? leafletCoordinatesFind(titre.geojsonCentre) : leafletGeojsonCenterFind(titre.geojsonMultiPolygon)
 
       const marker = leafletMarkerBuild(latLng, icon)
 
-      const popupHtmlTitulaires =
-        titre.titulaires && titre.titulaires.length
-          ? titre.titulaires.map(tt => `<li>${tt.nom}</li>`).join('')
-          : ''
-
-      const statut = titre.titreStatutId
-        ? TitresStatuts[titre.titreStatutId]
-        : { couleur: 'error', nom: 'Inconnu' }
-      const popupHtml = `<h4 class="mb-s">${
-        titre.nom ? titre.nom : ''
-      }</h4><div class="mb-m"><span class="rnd py-xxs px-s cap-first mb-0 bold color-bg h6 bg-${
-        statut.couleur
-      }">${
+      const popupHtmlTitulaires = titre.titulaires && titre.titulaires.length ? titre.titulaires.map(tt => `<li>${tt.nom}</li>`).join('') : ''
+
+      const statut = titre.titreStatutId ? TitresStatuts[titre.titreStatutId] : { couleur: 'error', nom: 'Inconnu' }
+      const popupHtml = `<h4 class="mb-s">${titre.nom ? titre.nom : ''}</h4><div class="mb-m"><span class="rnd py-xxs px-s cap-first mb-0 bold color-bg h6 bg-${statut.couleur}">${
         statut.nom
       }</span></div><ul class="list-prefix h6">${popupHtmlTitulaires}</ul>`
 
       const popupOptions: PopupOptions = {
         closeButton: false,
         offset: [0, -24],
-        autoPan: false
+        autoPan: false,
       }
 
-      const titreRoute = titre.slug
-        ? { name: 'titre', params: { id: titre.slug } }
-        : null
+      const titreRoute = titre.slug ? { name: 'titre', params: { id: titre.slug } } : null
 
       marker.bindPopup(popupHtml, popupOptions)
 
@@ -177,25 +141,20 @@ export const layersBuild = (titres: TitreWithPoint[], router: Router) =>
         },
         mouseout(_e) {
           marker.closePopup()
-        }
+        },
       }
       marker.on(methods)
 
-      const className = `svg-fill-pattern-${getTitreTypeType(
-        titre.typeId
-      )}-${domaineId}`
+      const className = `svg-fill-pattern-${getTitreTypeType(titre.typeId)}-${domaineId}`
       const geojsonOptions: GeoJSONOptions = {
         style: { fillOpacity: 0.75, weight: 1, color: 'white', className },
         onEachFeature: (_feature, layer) => {
           layer.bindPopup(popupHtml, popupOptions)
           layer.on(methods)
-        }
+        },
       }
 
-      const geojson = leafletGeojsonBuild(
-        titre.geojsonMultiPolygon,
-        geojsonOptions
-      )
+      const geojson = leafletGeojsonBuild(titre.geojsonMultiPolygon, geojsonOptions)
 
       if (marker) {
         markers.push({ marker, id: titreId, domaineId })
diff --git a/packages/ui/src/components/titres/table-pagination.tsx b/packages/ui/src/components/titres/table-pagination.tsx
index febe80ec4..66d13c9a6 100644
--- a/packages/ui/src/components/titres/table-pagination.tsx
+++ b/packages/ui/src/components/titres/table-pagination.tsx
@@ -1,15 +1,8 @@
 import { computed, defineComponent } from 'vue'
 import { useStore } from 'vuex'
-import {
-  Params,
-  TablePagination as UITablePagination
-} from '../_ui/table-pagination'
+import { Params, TablePagination as UITablePagination } from '../_ui/table-pagination'
 import { canReadActivites } from 'camino-common/src/permissions/activites'
-import {
-  TitreEntreprise,
-  titresColonnes,
-  titresLignesBuild
-} from './table-utils'
+import { TitreEntreprise, titresColonnes, titresLignesBuild } from './table-utils'
 import { TableSortEvent } from '../_ui/table'
 
 interface Props {
@@ -17,9 +10,7 @@ interface Props {
   total: number
 }
 
-const isTableSortEvent = (
-  params: Params | TableSortEvent
-): params is TableSortEvent => {
+const isTableSortEvent = (params: Params | TableSortEvent): params is TableSortEvent => {
   return 'column' in params && 'order' in params
 }
 
@@ -49,7 +40,7 @@ export const TablePagination = defineComponent<Props>({
 
       store.dispatch('titres/paramsSet', {
         section: 'table',
-        params: newParams
+        params: newParams,
       })
     }
 
@@ -64,9 +55,7 @@ export const TablePagination = defineComponent<Props>({
     })
 
     const colonnes = computed(() => {
-      return titresColonnes.filter(({ id }) =>
-        activitesCol.value ? true : id !== 'activites'
-      )
+      return titresColonnes.filter(({ id }) => (activitesCol.value ? true : id !== 'activites'))
     })
 
     const lignes = computed(() => {
@@ -85,5 +74,5 @@ export const TablePagination = defineComponent<Props>({
         paramsUpdate={preferencesUpdate}
       />
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/titres/table-utils.ts b/packages/ui/src/components/titres/table-utils.ts
index 9561b5e65..fe0904bc3 100644
--- a/packages/ui/src/components/titres/table-utils.ts
+++ b/packages/ui/src/components/titres/table-utils.ts
@@ -9,36 +9,15 @@ import ActivitesPills from '../_common/pills.vue'
 import { Statut } from '../_common/statut'
 import { DomaineId } from 'camino-common/src/static/domaines'
 import { TitresTypesTypes } from 'camino-common/src/static/titresTypesTypes'
-import {
-  Departement,
-  DepartementId,
-  Departements
-} from 'camino-common/src/static/departement'
+import { Departement, DepartementId, Departements } from 'camino-common/src/static/departement'
 import { onlyUnique } from 'camino-common/src/typescript-tools'
 import { Regions } from 'camino-common/src/static/region'
-import {
-  SubstanceLegaleId,
-  SubstancesLegale
-} from 'camino-common/src/static/substancesLegales'
-import {
-  sortedTitresStatuts,
-  TitresStatuts,
-  TitreStatutId
-} from 'camino-common/src/static/titresStatuts'
-import {
-  ReferencesTypes,
-  ReferenceTypeId
-} from 'camino-common/src/static/referencesTypes'
+import { SubstanceLegaleId, SubstancesLegale } from 'camino-common/src/static/substancesLegales'
+import { sortedTitresStatuts, TitresStatuts, TitreStatutId } from 'camino-common/src/static/titresStatuts'
+import { ReferencesTypes, ReferenceTypeId } from 'camino-common/src/static/referencesTypes'
 import { TitreReference } from 'camino-common/src/titres-references'
-import {
-  getDomaineId,
-  getTitreTypeType,
-  TitreTypeId
-} from 'camino-common/src/static/titresTypes'
-import {
-  getDepartementsBySecteurs,
-  SecteursMaritimes
-} from 'camino-common/src/static/facades'
+import { getDomaineId, getTitreTypeType, TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { getDepartementsBySecteurs, SecteursMaritimes } from 'camino-common/src/static/facades'
 import { Column } from '../_ui/table-auto'
 import { ComponentColumnData, TableRow, TextColumnData } from '../_ui/table'
 
@@ -69,7 +48,7 @@ const ordreStatut: { [key in TitreStatutId]: number } = {
   val: 2,
   dmc: 3,
   ech: 4,
-  ind: 5
+  ind: 5,
 }
 
 const ordreFromStatut = (entry: string) => {
@@ -80,25 +59,23 @@ const ordreFromStatut = (entry: string) => {
   return -1
 }
 
-const isTitreStatut = (
-  entry: string | number | string[] | undefined
-): entry is string => {
+const isTitreStatut = (entry: string | number | string[] | undefined): entry is string => {
   return sortedTitresStatuts.some(({ nom }) => nom === entry)
 }
 
 export const nomColumn: Column<'nom'> = {
   id: 'nom',
   name: 'Nom',
-  class: ['min-width-8']
+  class: ['min-width-8'],
 }
 export const domaineColumn: Column<'domaine'> = {
   id: 'domaine',
-  name: ''
+  name: '',
 }
 export const typeColumn: Column<'type'> = {
   id: 'type',
   name: 'Type',
-  class: ['min-width-8']
+  class: ['min-width-8'],
 }
 
 export const activiteColumn: Column<'activites'> = {
@@ -112,7 +89,7 @@ export const activiteColumn: Column<'activites'> = {
       return row1Statut - row2Statut
     }
     return 0
-  }
+  },
 }
 
 export const statutColumn: Column<'statut'> = {
@@ -126,18 +103,18 @@ export const statutColumn: Column<'statut'> = {
       return ordreFromStatut(row1Statut) - ordreFromStatut(row2Statut)
     }
     return 0
-  }
+  },
 }
 export const referencesColumn: Column<'references'> = {
   id: 'references',
   name: 'Références',
   class: ['min-width-8'],
-  noSort: true
+  noSort: true,
 }
 export const titulairesColumn: Column<'titulaires'> = {
   id: 'titulaires',
   name: 'Titulaires',
-  class: ['min-width-10']
+  class: ['min-width-10'],
 }
 export const titresColonnes: Column[] = [
   nomColumn,
@@ -149,77 +126,71 @@ export const titresColonnes: Column[] = [
     id: 'substances',
     name: 'Substances',
     class: ['min-width-6'],
-    noSort: true
+    noSort: true,
   },
   {
     id: 'coordonnees',
-    name: 'Carte'
+    name: 'Carte',
   },
   titulairesColumn,
   {
     id: 'regions',
     name: 'Régions',
     class: ['min-width-8'],
-    noSort: true
+    noSort: true,
   },
   {
     id: 'departements',
     name: 'Départements',
     class: ['min-width-8'],
-    noSort: true
+    noSort: true,
   },
-  referencesColumn
+  referencesColumn,
 ]
 
 export const nomCell = (titre: { nom: string }): ComponentColumnData => ({
   component: markRaw(TitreNom),
   props: { nom: titre.nom },
-  value: titre.nom
+  value: titre.nom,
 })
-export const statutCell = (titre: {
-  titreStatutId: TitreStatutId
-}): ComponentColumnData => {
+export const statutCell = (titre: { titreStatutId: TitreStatutId }): ComponentColumnData => {
   const statut = TitresStatuts[titre.titreStatutId]
   return {
     component: markRaw(Statut),
     props: {
       color: statut.couleur,
-      nom: statut.nom
+      nom: statut.nom,
     },
-    value: statut.nom
+    value: statut.nom,
   }
 }
 
-export const referencesCell = (titre: {
-  references?: { nom: string; referenceTypeId: ReferenceTypeId }[]
-}) => {
-  const references = titre.references?.map(
-    ref => `${ReferencesTypes[ref.referenceTypeId].nom} : ${ref.nom}`
-  )
+export const referencesCell = (titre: { references?: { nom: string; referenceTypeId: ReferenceTypeId }[] }) => {
+  const references = titre.references?.map(ref => `${ReferencesTypes[ref.referenceTypeId].nom} : ${ref.nom}`)
 
   return {
     component: List,
     props: {
       elements: references,
-      mini: true
+      mini: true,
     },
     class: 'mb--xs',
-    value: references
+    value: references,
   }
 }
 export const titulairesCell = (titre: { titulaires?: { nom?: string }[] }) => ({
   component: markRaw(List),
   props: {
     elements: titre.titulaires?.map(({ nom }) => nom ?? ''),
-    mini: true
+    mini: true,
   },
   class: 'mb--xs',
-  value: titre.titulaires?.map(({ nom }) => nom ?? '').join(', ')
+  value: titre.titulaires?.map(({ nom }) => nom ?? '').join(', '),
 })
 export const domaineCell = (titre: { domaineId: DomaineId }) => ({
   component: markRaw(CaminoDomaine),
   props: { domaineId: titre.domaineId },
-  value: titre.domaineId
+  value: titre.domaineId,
 })
 
 export const typeCell = (typeId: TitreTypeId) => {
@@ -227,37 +198,25 @@ export const typeCell = (typeId: TitreTypeId) => {
   return {
     component: markRaw(TitreTypeTypeNom),
     props: { nom: titreTypeType.nom },
-    value: titreTypeType.nom
+    value: titreTypeType.nom,
   }
 }
-export const activitesCell = (titre: {
-  activitesAbsentes: number | null
-  activitesEnConstruction: number | null
-}) => ({
+export const activitesCell = (titre: { activitesAbsentes: number | null; activitesEnConstruction: number | null }) => ({
   component: markRaw(ActivitesPills),
   props: {
     activitesAbsentes: titre.activitesAbsentes,
-    activitesEnConstruction: titre.activitesEnConstruction
+    activitesEnConstruction: titre.activitesEnConstruction,
   },
-  value: (titre?.activitesAbsentes ?? 0) + (titre?.activitesEnConstruction ?? 0)
+  value: (titre?.activitesAbsentes ?? 0) + (titre?.activitesEnConstruction ?? 0),
 })
-export const titresLignesBuild = (
-  titres: TitreEntreprise[],
-  activitesCol: boolean,
-  ordre = 'asc'
-): TableRow[] =>
+export const titresLignesBuild = (titres: TitreEntreprise[], activitesCol: boolean, ordre = 'asc'): TableRow[] =>
   titres.map(titre => {
-    const departements: Departement[] = [
-      ...(titre.communes?.map(({ departementId }) => departementId) ?? []),
-      ...getDepartementsBySecteurs(titre.secteursMaritime ?? [])
-    ]
+    const departements: Departement[] = [...(titre.communes?.map(({ departementId }) => departementId) ?? []), ...getDepartementsBySecteurs(titre.secteursMaritime ?? [])]
       .filter(onlyUnique)
       .map(departementId => Departements[departementId])
 
     const departementNoms: string[] = departements.map(({ nom }) => nom)
-    const regionNoms: string[] = departements
-      .map(({ regionId }) => Regions[regionId].nom)
-      .filter(onlyUnique)
+    const regionNoms: string[] = departements.map(({ regionId }) => Regions[regionId].nom).filter(onlyUnique)
 
     const columns: { [key in string]: ComponentColumnData | TextColumnData } = {
       nom: nomCell(titre),
@@ -265,43 +224,38 @@ export const titresLignesBuild = (
       coordonnees: {
         component: markRaw(CoordonneesIcone),
         props: { coordonnees: titre.coordonnees },
-        value: titre.coordonnees ? '·' : ''
+        value: titre.coordonnees ? '·' : '',
       },
       type: typeCell(titre.typeId),
       statut: statutCell(titre),
       substances: {
         component: markRaw(TagList),
         props: {
-          elements:
-            titre.substances?.map(
-              substanceId => SubstancesLegale[substanceId].nom
-            ) ?? []
+          elements: titre.substances?.map(substanceId => SubstancesLegale[substanceId].nom) ?? [],
         },
         class: 'mb--xs',
-        value: titre.substances
-          ?.map(substanceId => SubstancesLegale[substanceId].nom)
-          .join(', ')
+        value: titre.substances?.map(substanceId => SubstancesLegale[substanceId].nom).join(', '),
       },
       titulaires: titulairesCell(titre),
       regions: {
         component: markRaw(List),
         props: {
           elements: regionNoms,
-          mini: true
+          mini: true,
         },
         class: 'mb--xs',
-        value: regionNoms
+        value: regionNoms,
       },
       departements: {
         component: markRaw(List),
         props: {
           elements: departementNoms,
-          mini: true
+          mini: true,
         },
         class: 'mb--xs',
-        value: departementNoms
+        value: departementNoms,
       },
-      references: referencesCell(titre)
+      references: referencesCell(titre),
     }
 
     if (activitesCol) {
@@ -311,6 +265,6 @@ export const titresLignesBuild = (
     return {
       id: titre.id,
       link: { name: 'titre', params: { id: titre.slug } },
-      columns
+      columns,
     }
   })
diff --git a/packages/ui/src/components/titres/table.tsx b/packages/ui/src/components/titres/table.tsx
index 1848936ce..cc3aadd91 100644
--- a/packages/ui/src/components/titres/table.tsx
+++ b/packages/ui/src/components/titres/table.tsx
@@ -1,10 +1,6 @@
 import { FunctionalComponent } from 'vue'
 import { TableAuto } from '../_ui/table-auto'
-import {
-  TitreEntreprise,
-  titresColonnes,
-  titresLignesBuild
-} from './table-utils'
+import { TitreEntreprise, titresColonnes, titresLignesBuild } from './table-utils'
 import { canReadActivites } from 'camino-common/src/permissions/activites'
 import { User } from 'camino-common/src/roles'
 
@@ -16,9 +12,7 @@ interface Props {
 export const TitresTable: FunctionalComponent<Props> = props => {
   const accessActivites = canReadActivites(props.user)
 
-  const colonnes = titresColonnes.filter(({ id }) =>
-    accessActivites ? true : id !== 'activites'
-  )
+  const colonnes = titresColonnes.filter(({ id }) => (accessActivites ? true : id !== 'activites'))
 
   const lignes = titresLignesBuild(props.titres, accessActivites)
   return <TableAuto columns={colonnes} rows={lignes} class="width-full-p" />
diff --git a/packages/ui/src/components/travaux.vue b/packages/ui/src/components/travaux.vue
index f067d4407..0ebabb76b 100644
--- a/packages/ui/src/components/travaux.vue
+++ b/packages/ui/src/components/travaux.vue
@@ -8,6 +8,6 @@ import Page from './demarches/page.vue'
 export default {
   name: 'Travaux',
 
-  components: { Page }
+  components: { Page },
 }
 </script>
diff --git a/packages/ui/src/components/user/add-popup.vue b/packages/ui/src/components/user/add-popup.vue
index 7edc954df..539c343bf 100644
--- a/packages/ui/src/components/user/add-popup.vue
+++ b/packages/ui/src/components/user/add-popup.vue
@@ -14,33 +14,17 @@
         <h5>Email</h5>
       </div>
       <div class="mb tablet-blob-2-3">
-        <input
-          id="cmn-user-add-popup-input-email"
-          v-model="email"
-          type="email"
-          class="p-s"
-          placeholder="Email"
-        />
+        <input id="cmn-user-add-popup-input-email" v-model="email" type="email" class="p-s" placeholder="Email" />
       </div>
     </div>
 
     <template #footer>
       <div class="tablet-blobs">
         <div class="tablet-blob-1-3 mb tablet-mb-0">
-          <button class="btn-border rnd-xs p-s full-x" @click="cancel">
-            Annuler
-          </button>
+          <button class="btn-border rnd-xs p-s full-x" @click="cancel">Annuler</button>
         </div>
         <div class="tablet-blob-2-3">
-          <button
-            id="cmn-user-add-popup-button-valider"
-            :disabled="!complete"
-            :class="{ disabled: !complete }"
-            class="btn-flash rnd-xs p-s full-x"
-            @click="save"
-          >
-            Valider
-          </button>
+          <button id="cmn-user-add-popup-button-valider" :disabled="!complete" :class="{ disabled: !complete }" class="btn-flash rnd-xs p-s full-x" @click="save">Valider</button>
         </div>
       </div>
     </template>
@@ -55,12 +39,12 @@ export default {
   name: 'CaminoUserAccountCreatePopup',
 
   components: {
-    Popup
+    Popup,
   },
 
   data() {
     return {
-      email: ''
+      email: '',
     }
   },
 
@@ -71,7 +55,7 @@ export default {
 
     complete() {
       return emailValidator.validate(this.email)
-    }
+    },
   },
 
   created() {
@@ -106,7 +90,7 @@ export default {
 
     errorsRemove() {
       this.$store.commit('popupMessagesRemove')
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/user/button.vue b/packages/ui/src/components/user/button.vue
index 587d5b042..fc99b75ce 100644
--- a/packages/ui/src/components/user/button.vue
+++ b/packages/ui/src/components/user/button.vue
@@ -1,10 +1,5 @@
 <template>
-  <pure-button
-    :menuActive="menuActive"
-    :user="user"
-    @onConnectionClicked="popupOpen"
-    @onUserClicked="goToUser"
-  />
+  <pure-button :menuActive="menuActive" :user="user" @onConnectionClicked="popupOpen" @onUserClicked="goToUser" />
 </template>
 
 <script>
@@ -19,14 +14,12 @@ export default {
     },
     menuActive() {
       return (this.$store.state.menu?.component?.name ?? '') === 'UserMenu'
-    }
+    },
   },
 
   methods: {
     popupOpen() {
-      window.location.replace(
-        '/oauth2/sign_in?rd=' + encodeURIComponent(window.location.href)
-      )
+      window.location.replace('/oauth2/sign_in?rd=' + encodeURIComponent(window.location.href))
     },
     goToUser() {
       this.eventTrack()
@@ -36,7 +29,7 @@ export default {
       if (this.$matomo) {
         this.$matomo.trackEvent('menu', 'bouton', 'utilisateur')
       }
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/user/pure-button.stories.ts b/packages/ui/src/components/user/pure-button.stories.ts
index 3912ea703..c1b1b88c2 100644
--- a/packages/ui/src/components/user/pure-button.stories.ts
+++ b/packages/ui/src/components/user/pure-button.stories.ts
@@ -8,8 +8,8 @@ const meta: Meta = {
   component: PureButton,
   argTypes: {
     user: Object,
-    menuActive: Boolean
-  }
+    menuActive: Boolean,
+  },
 }
 export default meta
 
@@ -22,24 +22,23 @@ const Template: Story<Props> = (args: Props) => ({
   setup() {
     return { args }
   },
-  template:
-    '<PureButton @onConnectionClicked="onConnectionClicked" @onUserClicked="onUserClicked" v-bind="args" />',
+  template: '<PureButton @onConnectionClicked="onConnectionClicked" @onUserClicked="onUserClicked" v-bind="args" />',
   methods: {
     onConnectionClicked: action('onConnectionClicked'),
-    onUserClicked: action('onUserClicked')
-  }
+    onUserClicked: action('onUserClicked'),
+  },
 })
 
 export const NotConnected = Template.bind({})
 NotConnected.args = {
-  menuActive: false
+  menuActive: false,
 }
 const user: User = {
   nom: 'Nom',
-  prenom: 'prenom'
+  prenom: 'prenom',
 }
 export const Connected = Template.bind({})
 Connected.args = {
   user,
-  menuActive: false
+  menuActive: false,
 }
diff --git a/packages/ui/src/components/user/pure-button.vue b/packages/ui/src/components/user/pure-button.vue
index 933dd5984..2f91ef285 100644
--- a/packages/ui/src/components/user/pure-button.vue
+++ b/packages/ui/src/components/user/pure-button.vue
@@ -1,22 +1,9 @@
 <template>
   <div :class="{ active: menuActive }" class="flex">
-    <button
-      v-if="user"
-      id="cmn-user-button-menu"
-      class="btn-menu text-decoration-none bold p-0"
-      aria-label="profil utilisateur"
-      @click="$emit('onUserClicked')"
-    >
+    <button v-if="user" id="cmn-user-button-menu" class="btn-menu text-decoration-none bold p-0" aria-label="profil utilisateur" @click="$emit('onUserClicked')">
       {{ user.prenom || '–' }} {{ user.nom || '–' }}
     </button>
-    <button
-      v-else
-      id="cmn-user-button-connexion"
-      class="btn btn-primary small lh-2"
-      @click="$emit('onConnectionClicked')"
-    >
-      Connexion
-    </button>
+    <button v-else id="cmn-user-button-connexion" class="btn btn-primary small lh-2" @click="$emit('onConnectionClicked')">Connexion</button>
   </div>
 </template>
 
diff --git a/packages/ui/src/components/utilisateur.stories.tsx b/packages/ui/src/components/utilisateur.stories.tsx
index 466963ecf..18a16d505 100644
--- a/packages/ui/src/components/utilisateur.stories.tsx
+++ b/packages/ui/src/components/utilisateur.stories.tsx
@@ -8,7 +8,7 @@ import { UtilisateurApiClient } from './utilisateur/utilisateur-api-client'
 const meta: Meta = {
   title: 'Components/Utilisateur',
   component: PureUtilisateur,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -26,7 +26,7 @@ const apiClientMock: UtilisateurApiClient = {
       email: 'email@gmail.com',
       nom: 'nom',
       prenom: 'prenom',
-      role: 'super'
+      role: 'super',
     }),
   getUtilisateurNewsletter: () => Promise.resolve(true),
   removeUtilisateur: () => Promise.resolve(),
@@ -35,14 +35,8 @@ const apiClientMock: UtilisateurApiClient = {
     editNewsletter(values)
     return Promise.resolve()
   },
-  getEntreprises: () =>
-    Promise.resolve([
-      { id: newEntrepriseId('id'), nom: 'Entreprise1', etablissements: [] }
-    ]),
-  getQGISToken: () =>
-    new Promise(resolve =>
-      setTimeout(() => resolve({ token: 'token123' }), 1000)
-    )
+  getEntreprises: () => Promise.resolve([{ id: newEntrepriseId('id'), nom: 'Entreprise1', etablissements: [] }]),
+  getQGISToken: () => new Promise(resolve => setTimeout(() => resolve({ token: 'token123' }), 1000)),
 }
 
 export const MySelf: Story = () => (
@@ -73,7 +67,7 @@ export const Loading: Story = () => (
     passwordUpdate={passwordUpdate}
     apiClient={{
       ...apiClientMock,
-      getUtilisateur: () => new Promise(() => ({}))
+      getUtilisateur: () => new Promise(() => ({})),
     }}
   />
 )
@@ -92,7 +86,7 @@ export const error: Story = () => (
     apiClient={{
       ...apiClientMock,
       getUtilisateurNewsletter: () => Promise.reject(new Error('Cassé')),
-      getUtilisateur: () => Promise.reject(new Error('Cassé'))
+      getUtilisateur: () => Promise.reject(new Error('Cassé')),
     }}
   />
 )
diff --git a/packages/ui/src/components/utilisateur.tsx b/packages/ui/src/components/utilisateur.tsx
index f6c066cb7..2e8d057fb 100644
--- a/packages/ui/src/components/utilisateur.tsx
+++ b/packages/ui/src/components/utilisateur.tsx
@@ -9,10 +9,7 @@ import { QGisToken } from './utilisateur/qgis-token'
 import { AsyncData } from '@/api/client-rest'
 import { useStore } from 'vuex'
 import { useRoute, useRouter } from 'vue-router'
-import {
-  UtilisateurApiClient,
-  utilisateurApiClient
-} from './utilisateur/utilisateur-api-client'
+import { UtilisateurApiClient, utilisateurApiClient } from './utilisateur/utilisateur-api-client'
 import { Utilisateur as ApiUser } from '@/api/api-client'
 import { LoadingElement } from './_ui/functional-loader'
 import { RemovePopup } from './utilisateur/remove-popup'
@@ -42,7 +39,7 @@ export const Utilisateur = defineComponent({
         'messageAdd',
         {
           value: `l'utilisateur ${utilisateur.prenom} ${utilisateur.nom} a été supprimé`,
-          type: 'success'
+          type: 'success',
         },
         { root: true }
       )
@@ -56,7 +53,7 @@ export const Utilisateur = defineComponent({
           'messageAdd',
           {
             value: `l'utilisateur ${utilisateur.prenom} ${utilisateur.nom} a été modifié`,
-            type: 'success'
+            type: 'success',
           },
           { root: true }
         )
@@ -65,7 +62,7 @@ export const Utilisateur = defineComponent({
           'messageAdd',
           {
             value: `Erreur lors de la modification de l'utilisateur ${utilisateur.prenom} ${utilisateur.nom}`,
-            type: 'error'
+            type: 'error',
           },
           { root: true }
         )
@@ -74,9 +71,7 @@ export const Utilisateur = defineComponent({
     const passwordUpdate = () => {
       window.location.replace('/apiUrl/changerMotDePasse')
     }
-    const utilisateurId = Array.isArray(route.params.id)
-      ? route.params.id[0]
-      : route.params.id
+    const utilisateurId = Array.isArray(route.params.id) ? route.params.id[0] : route.params.id
     return () => (
       <PureUtilisateur
         passwordUpdate={passwordUpdate}
@@ -88,7 +83,7 @@ export const Utilisateur = defineComponent({
         deleteUtilisateur={deleteUtilisateur}
       />
     )
-  }
+  },
 })
 interface Props {
   user: User
@@ -100,15 +95,7 @@ interface Props {
   passwordUpdate: () => void
 }
 export const PureUtilisateur = defineComponent<Props>({
-  props: [
-    'user',
-    'logout',
-    'deleteUtilisateur',
-    'utilisateurId',
-    'apiClient',
-    'updateUtilisateur',
-    'passwordUpdate'
-  ] as unknown as undefined,
+  props: ['user', 'logout', 'deleteUtilisateur', 'utilisateurId', 'apiClient', 'updateUtilisateur', 'passwordUpdate'] as unknown as undefined,
   setup(props) {
     watch(
       () => props.user,
@@ -128,33 +115,29 @@ export const PureUtilisateur = defineComponent<Props>({
 
     const get = async () => {
       try {
-        const utilisateurFromApi = await props.apiClient.getUtilisateur(
-          props.utilisateurId
-        )
+        const utilisateurFromApi = await props.apiClient.getUtilisateur(props.utilisateurId)
         utilisateur.value = {
           status: 'LOADED',
-          value: utilisateurFromApi
+          value: utilisateurFromApi,
         }
       } catch (e: any) {
         console.error('error', e)
         utilisateur.value = {
           status: 'ERROR',
-          message: e.message ?? "Une erreur s'est produite"
+          message: e.message ?? "Une erreur s'est produite",
         }
       }
       if (isMe.value) {
         try {
           subscription.value = {
             status: 'LOADED',
-            value: await props.apiClient.getUtilisateurNewsletter(
-              props.utilisateurId
-            )
+            value: await props.apiClient.getUtilisateurNewsletter(props.utilisateurId),
           }
         } catch (e: any) {
           console.error('error', e)
           subscription.value = {
             status: 'ERROR',
-            message: e.message ?? "Une erreur s'est produite"
+            message: e.message ?? "Une erreur s'est produite",
           }
         }
       }
@@ -176,27 +159,21 @@ export const PureUtilisateur = defineComponent<Props>({
       await get()
     }
 
-    const updateSubscription = async (
-      utilisateurId: string,
-      newsletterChecked: boolean
-    ) => {
+    const updateSubscription = async (utilisateurId: string, newsletterChecked: boolean) => {
       subscription.value = { status: 'LOADING' }
       try {
-        await props.apiClient.updateUtilisateurNewsletter(
-          utilisateurId,
-          newsletterChecked
-        )
+        await props.apiClient.updateUtilisateurNewsletter(utilisateurId, newsletterChecked)
         // Hack for mailjet latency
         await new Promise(resolve => setTimeout(resolve, 500))
         subscription.value = {
           status: 'LOADED',
-          value: newsletterChecked
+          value: newsletterChecked,
         }
       } catch (e: any) {
         console.error('error', e)
         subscription.value = {
           status: 'ERROR',
-          message: e.message ?? "Une erreur s'est produite"
+          message: e.message ?? "Une erreur s'est produite",
         }
       }
     }
@@ -205,20 +182,11 @@ export const PureUtilisateur = defineComponent<Props>({
         <h5>Utilisateur</h5>
         <div class="flex">
           <h1>
-            <LoadingElement
-              data={utilisateur.value}
-              renderItem={item => (
-                <>{item ? `${item.prenom || '–'} ${item.nom || '–'}` : '–'}</>
-              )}
-            />
+            <LoadingElement data={utilisateur.value} renderItem={item => <>{item ? `${item.prenom || '–'} ${item.nom || '–'}` : '–'}</>} />
           </h1>
 
           {isMe.value ? (
-            <button
-              id="cmn-user-menu-button-deconnexion"
-              class="btn-menu text-decoration-none bold p-0 flex-right"
-              onClick={() => props.logout()}
-            >
+            <button id="cmn-user-menu-button-deconnexion" class="btn-menu text-decoration-none bold p-0 flex-right" onClick={() => props.logout()}>
               Déconnexion
             </button>
           ) : null}
@@ -235,11 +203,7 @@ export const PureUtilisateur = defineComponent<Props>({
                     {canEditUtilisateur(props.user, item) ? (
                       <>
                         {isMe.value ? (
-                          <button
-                            class="btn-alt py-s px-m"
-                            title="changer de mot de passe"
-                            onClick={props.passwordUpdate}
-                          >
+                          <button class="btn-alt py-s px-m" title="changer de mot de passe" onClick={props.passwordUpdate}>
                             <Icon size="M" name="key" />
                           </button>
                         ) : null}
@@ -278,20 +242,14 @@ export const PureUtilisateur = defineComponent<Props>({
                   <div class="tablet-blob-1-4">
                     <h5>Prénom</h5>
                   </div>
-                  <LoadingElement
-                    data={utilisateur.value}
-                    renderItem={item => <p>{item.prenom || '–'}</p>}
-                  />
+                  <LoadingElement data={utilisateur.value} renderItem={item => <p>{item.prenom || '–'}</p>} />
                 </div>
 
                 <div class="tablet-blobs">
                   <div class="tablet-blob-1-4">
                     <h5>Nom</h5>
                   </div>
-                  <LoadingElement
-                    data={utilisateur.value}
-                    renderItem={item => <p>{item.nom || '–'}</p>}
-                  />
+                  <LoadingElement data={utilisateur.value} renderItem={item => <p>{item.nom || '–'}</p>} />
                 </div>
 
                 <div class="tablet-blobs">
@@ -299,10 +257,7 @@ export const PureUtilisateur = defineComponent<Props>({
                     <h5>Email</h5>
                   </div>
                   <div>
-                    <LoadingElement
-                      data={utilisateur.value}
-                      renderItem={item => <p>{item.email || '–'}</p>}
-                    />
+                    <LoadingElement data={utilisateur.value} renderItem={item => <p>{item.email || '–'}</p>} />
                   </div>
                 </div>
 
@@ -310,38 +265,21 @@ export const PureUtilisateur = defineComponent<Props>({
                   <div class="tablet-blob-1-4">
                     <h5>Téléphone fixe</h5>
                   </div>
-                  <LoadingElement
-                    data={utilisateur.value}
-                    renderItem={item => <p>{item.telephoneFixe || '–'}</p>}
-                  />
+                  <LoadingElement data={utilisateur.value} renderItem={item => <p>{item.telephoneFixe || '–'}</p>} />
                 </div>
 
                 <div class="tablet-blobs">
                   <div class="tablet-blob-1-4">
                     <h5>Téléphone mobile</h5>
                   </div>
-                  <LoadingElement
-                    data={utilisateur.value}
-                    renderItem={item => <p>{item.telephoneMobile || '–'}</p>}
-                  />
+                  <LoadingElement data={utilisateur.value} renderItem={item => <p>{item.telephoneMobile || '–'}</p>} />
                 </div>
 
                 <div class="tablet-blobs">
                   <div class="tablet-blob-1-4">
                     <h5>Permissions</h5>
                   </div>
-                  <LoadingElement
-                    data={utilisateur.value}
-                    renderItem={item => (
-                      <>
-                        {item.role ? (
-                          <Pill class="mb">{item.role}</Pill>
-                        ) : (
-                          <p>–</p>
-                        )}
-                      </>
-                    )}
-                  />
+                  <LoadingElement data={utilisateur.value} renderItem={item => <>{item.role ? <Pill class="mb">{item.role}</Pill> : <p>–</p>}</>} />
                 </div>
 
                 <LoadingElement
@@ -351,9 +289,7 @@ export const PureUtilisateur = defineComponent<Props>({
                       {item.entreprises?.length ? (
                         <div class="tablet-blobs">
                           <div class="tablet-blob-1-4">
-                            <h5>
-                              Entreprise{item.entreprises.length > 1 ? 's' : ''}
-                            </h5>
+                            <h5>Entreprise{item.entreprises.length > 1 ? 's' : ''}</h5>
                           </div>
 
                           <div>
@@ -363,13 +299,11 @@ export const PureUtilisateur = defineComponent<Props>({
                                   <router-link
                                     to={{
                                       name: 'entreprise',
-                                      params: { id: e.id }
+                                      params: { id: e.id },
                                     }}
                                     class="btn-border small p-s rnd-xs mr-xs"
                                   >
-                                    {e.legalSiren
-                                      ? `${e.nom} (${e.legalSiren})`
-                                      : e.nom}
+                                    {e.legalSiren ? `${e.nom} (${e.legalSiren})` : e.nom}
                                   </router-link>
                                 </li>
                               ))}
@@ -385,16 +319,7 @@ export const PureUtilisateur = defineComponent<Props>({
                           </div>
 
                           <div class="tablet-blob-3-4">
-                            {`${
-                              Administrations[item.administrationId].abreviation
-                            }${
-                              Administrations[item.administrationId].service
-                                ? ` - ${
-                                    Administrations[item.administrationId]
-                                      .service
-                                  }`
-                                : ''
-                            }`}
+                            {`${Administrations[item.administrationId].abreviation}${Administrations[item.administrationId].service ? ` - ${Administrations[item.administrationId].service}` : ''}`}
                           </div>
                         </div>
                       ) : null}
@@ -414,10 +339,7 @@ export const PureUtilisateur = defineComponent<Props>({
                           <input
                             onInput={e => {
                               if (isEventWithTarget(e)) {
-                                updateSubscription(
-                                  props.utilisateurId,
-                                  e.target.checked
-                                )
+                                updateSubscription(props.utilisateurId, e.target.checked)
                               }
                             }}
                             type="checkbox"
@@ -436,19 +358,13 @@ export const PureUtilisateur = defineComponent<Props>({
                   </>
                 ) : null}
               </div>
-            )
+            ),
           }}
         </Accordion>
         {removePopup.value && utilisateur.value.status === 'LOADED' ? (
-          <RemovePopup
-            close={() => (removePopup.value = !removePopup.value)}
-            utilisateur={utilisateur.value.value}
-            deleteUser={deleteUser}
-          />
+          <RemovePopup close={() => (removePopup.value = !removePopup.value)} utilisateur={utilisateur.value.value} deleteUser={deleteUser} />
         ) : null}
-        {editPopup.value &&
-        utilisateur.value.status === 'LOADED' &&
-        subscription.value.status === 'LOADED' ? (
+        {editPopup.value && utilisateur.value.status === 'LOADED' && subscription.value.status === 'LOADED' ? (
           <EditPopup
             close={() => (editPopup.value = !editPopup.value)}
             utilisateur={utilisateur.value.value}
@@ -459,5 +375,5 @@ export const PureUtilisateur = defineComponent<Props>({
         ) : null}
       </div>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/utilisateur/edit-popup.stories.tsx b/packages/ui/src/components/utilisateur/edit-popup.stories.tsx
index 5d7123314..c44dea7e9 100644
--- a/packages/ui/src/components/utilisateur/edit-popup.stories.tsx
+++ b/packages/ui/src/components/utilisateur/edit-popup.stories.tsx
@@ -8,7 +8,7 @@ import { EditPopup } from './edit-popup'
 const meta: Meta = {
   title: 'Components/Utilisateur/EditPopup',
   component: EditPopup,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
@@ -19,11 +19,7 @@ export const SuperEditDefaut: Story = () => (
   <EditPopup
     user={{ ...testBlankUser, role: 'super' }}
     utilisateur={{ id: 'id', email: 'email@gmail.fr', role: 'defaut' }}
-    getEntreprises={() =>
-      Promise.resolve([
-        { id: newEntrepriseId('id'), nom: 'Entreprise1', etablissements: [] }
-      ])
-    }
+    getEntreprises={() => Promise.resolve([{ id: newEntrepriseId('id'), nom: 'Entreprise1', etablissements: [] }])}
     update={user => {
       editUser(user)
       return Promise.resolve()
@@ -40,18 +36,14 @@ const utilisateurAdmin: Utilisateur = {
   role: 'lecteur',
   telephoneFixe: '0102030405',
   telephoneMobile: '0601020304',
-  administrationId: 'aut-97300-01'
+  administrationId: 'aut-97300-01',
 }
 
 export const SuperEditLecteur: Story = () => (
   <EditPopup
     user={{ ...testBlankUser, role: 'super' }}
     utilisateur={utilisateurAdmin}
-    getEntreprises={() =>
-      Promise.resolve([
-        { id: newEntrepriseId('id'), nom: 'Entreprise1', etablissements: [] }
-      ])
-    }
+    getEntreprises={() => Promise.resolve([{ id: newEntrepriseId('id'), nom: 'Entreprise1', etablissements: [] }])}
     update={user => {
       editUser(user)
       return Promise.resolve()
@@ -67,15 +59,9 @@ export const SuperEditEntreprise: Story = () => (
       id: 'id',
       email: 'email@gmail.fr',
       role: 'entreprise',
-      entreprises: [
-        { id: newEntrepriseId('id'), nom: 'Entreprise1', etablissements: [] }
-      ]
+      entreprises: [{ id: newEntrepriseId('id'), nom: 'Entreprise1', etablissements: [] }],
     }}
-    getEntreprises={() =>
-      Promise.resolve([
-        { id: newEntrepriseId('id'), nom: 'Entreprise1', etablissements: [] }
-      ])
-    }
+    getEntreprises={() => Promise.resolve([{ id: newEntrepriseId('id'), nom: 'Entreprise1', etablissements: [] }])}
     update={user => {
       editUser(user)
       return Promise.resolve()
@@ -88,11 +74,7 @@ export const AdminEditLecteur: Story = () => (
   <EditPopup
     user={{ ...testBlankUser, role: 'admin', administrationId: 'aut-97300-01' }}
     utilisateur={utilisateurAdmin}
-    getEntreprises={() =>
-      Promise.resolve([
-        { id: newEntrepriseId('id'), nom: 'Entreprise1', etablissements: [] }
-      ])
-    }
+    getEntreprises={() => Promise.resolve([{ id: newEntrepriseId('id'), nom: 'Entreprise1', etablissements: [] }])}
     update={user => {
       editUser(user)
       return Promise.resolve()
diff --git a/packages/ui/src/components/utilisateur/edit-popup.tsx b/packages/ui/src/components/utilisateur/edit-popup.tsx
index 4f0b5a3bd..7aa67ae9e 100644
--- a/packages/ui/src/components/utilisateur/edit-popup.tsx
+++ b/packages/ui/src/components/utilisateur/edit-popup.tsx
@@ -1,18 +1,7 @@
 import { Utilisateur } from '@/api/api-client'
-import {
-  isEntrepriseOrBureauDetudeRole,
-  Role,
-  User,
-  isAdministration,
-  isBureauDEtudes,
-  isEntreprise,
-  isSuper
-} from 'camino-common/src/roles'
+import { isEntrepriseOrBureauDetudeRole, Role, User, isAdministration, isBureauDEtudes, isEntreprise, isSuper } from 'camino-common/src/roles'
 import { computed, defineComponent, onMounted, ref } from 'vue'
-import {
-  isAdministrationId,
-  sortedAdministrations
-} from 'camino-common/src/static/administrations'
+import { isAdministrationId, sortedAdministrations } from 'camino-common/src/static/administrations'
 import { Entreprise } from 'camino-common/src/entreprise'
 import { AsyncData } from '@/api/client-rest'
 import { LoadingElement } from '../_ui/functional-loader'
@@ -32,31 +21,16 @@ interface Props {
 }
 
 export const EditPopup = defineComponent<Props>({
-  props: [
-    'user',
-    'getEntreprises',
-    'utilisateur',
-    'update',
-    'close'
-  ] as unknown as undefined,
+  props: ['user', 'getEntreprises', 'utilisateur', 'update', 'close'] as unknown as undefined,
   setup(props) {
     const assignableRoles = getAssignableRoles(props.user)
-    const onSelectEntreprises = (
-      elements: Element[],
-      entreprises: Entreprise[]
-    ) => {
-      const entrs = elements
-        .map(({ id }) => entreprises.find(({ id: entrId }) => id === entrId))
-        .filter(isNotNullNorUndefined)
+    const onSelectEntreprises = (elements: Element[], entreprises: Entreprise[]) => {
+      const entrs = elements.map(({ id }) => entreprises.find(({ id: entrId }) => id === entrId)).filter(isNotNullNorUndefined)
 
       if (!utilisateurPopup.value.entreprises) {
         utilisateurPopup.value.entreprises = entrs
       } else {
-        utilisateurPopup.value.entreprises.splice(
-          0,
-          utilisateurPopup.value.entreprises.length,
-          ...entrs
-        )
+        utilisateurPopup.value.entreprises.splice(0, utilisateurPopup.value.entreprises.length, ...entrs)
       }
     }
     const entreprises = ref<AsyncData<Entreprise[]>>({ status: 'LOADING' })
@@ -68,32 +42,22 @@ export const EditPopup = defineComponent<Props>({
         console.error('error', e)
         entreprises.value = {
           status: 'ERROR',
-          message: e.message ?? "Une erreur s'est produite"
+          message: e.message ?? "Une erreur s'est produite",
         }
       }
     })
     const complete = computed(() => {
-      const formComplete =
-        utilisateurPopup.value.nom &&
-        utilisateurPopup.value.prenom &&
-        utilisateurPopup.value.id &&
-        utilisateurPopup.value.email
+      const formComplete = utilisateurPopup.value.nom && utilisateurPopup.value.prenom && utilisateurPopup.value.id && utilisateurPopup.value.email
 
       if (!formComplete) {
         return false
       }
 
-      if (
-        isEntrepriseOrBureauDetudeRole(utilisateurPopup.value.role) &&
-        !utilisateurPopup.value.entreprises?.length
-      ) {
+      if (isEntrepriseOrBureauDetudeRole(utilisateurPopup.value.role) && !utilisateurPopup.value.entreprises?.length) {
         return false
       }
 
-      if (
-        isAdministration(utilisateurPopup.value) &&
-        !utilisateurPopup.value.administrationId
-      ) {
+      if (isAdministration(utilisateurPopup.value) && !utilisateurPopup.value.administrationId) {
         return false
       }
 
@@ -101,11 +65,7 @@ export const EditPopup = defineComponent<Props>({
     })
 
     const selectAdministration = (e: Event) => {
-      if (
-        isEventWithTarget(e) &&
-        isAdministration(utilisateurPopup.value) &&
-        isAdministrationId(e.target.value)
-      ) {
+      if (isEventWithTarget(e) && isAdministration(utilisateurPopup.value) && isAdministrationId(e.target.value)) {
         utilisateurPopup.value.administrationId = e.target.value
       }
     }
@@ -118,12 +78,7 @@ export const EditPopup = defineComponent<Props>({
             <h5>Téléphone fixe</h5>
           </div>
           <div class="mb tablet-blob-2-3">
-            <input
-              value={utilisateurPopup.value.telephoneFixe}
-              type="text"
-              class="p-s"
-              placeholder="0100000000"
-            />
+            <input value={utilisateurPopup.value.telephoneFixe} type="text" class="p-s" placeholder="0100000000" />
           </div>
         </div>
 
@@ -133,12 +88,7 @@ export const EditPopup = defineComponent<Props>({
             <h5>Téléphone mobile</h5>
           </div>
           <div class="mb tablet-blob-2-3">
-            <input
-              value={utilisateurPopup.value.telephoneMobile}
-              type="text"
-              class="p-s"
-              placeholder="0100000000"
-            />
+            <input value={utilisateurPopup.value.telephoneMobile} type="text" class="p-s" placeholder="0100000000" />
           </div>
         </div>
 
@@ -153,12 +103,7 @@ export const EditPopup = defineComponent<Props>({
                 <ul class="list-inline mb-0 tablet-pt-s">
                   {assignableRoles.map(role => (
                     <li key={role} class="mb-xs">
-                      <button
-                        class={`btn-flash small py-xs px-s pill cap-first mr-xs ${
-                          utilisateurPopup.value.role === role ? 'active' : ''
-                        }`}
-                        onClick={() => roleToggle(role)}
-                      >
+                      <button class={`btn-flash small py-xs px-s pill cap-first mr-xs ${utilisateurPopup.value.role === role ? 'active' : ''}`} onClick={() => roleToggle(role)}>
                         {role}
                       </button>
                     </li>
@@ -167,8 +112,7 @@ export const EditPopup = defineComponent<Props>({
               </div>
             </div>
 
-            {isEntreprise(utilisateurPopup.value) ||
-            isBureauDEtudes(utilisateurPopup.value) ? (
+            {isEntreprise(utilisateurPopup.value) || isBureauDEtudes(utilisateurPopup.value) ? (
               <div>
                 <hr />
                 <h3 class="mb-s">Entreprises</h3>
@@ -181,16 +125,11 @@ export const EditPopup = defineComponent<Props>({
                         filter={{
                           id: 'entreprises',
                           name: 'Entreprises',
-                          value:
-                            utilisateurPopup.value.entreprises?.map(
-                              ({ id }) => id
-                            ) ?? [],
+                          value: utilisateurPopup.value.entreprises?.map(({ id }) => id) ?? [],
                           elements: items,
-                          lazy: false
+                          lazy: false,
                         }}
-                        onSelectItems={elements =>
-                          onSelectEntreprises(elements, items)
-                        }
+                        onSelectItems={elements => onSelectEntreprises(elements, items)}
                       />
                     </div>
                   )}
@@ -204,11 +143,7 @@ export const EditPopup = defineComponent<Props>({
                 <h3 class="mb-s">Administration</h3>
 
                 <div class="flex full-x mb">
-                  <select
-                    onChange={selectAdministration}
-                    value={utilisateurPopup.value.administrationId}
-                    class="p-s mr-s"
-                  >
+                  <select onChange={selectAdministration} value={utilisateurPopup.value.administrationId} class="p-s mr-s">
                     {sortedAdministrations.map(a => (
                       <option key={a.id} value={a.id}>
                         {a.abreviation}
@@ -231,13 +166,8 @@ export const EditPopup = defineComponent<Props>({
           utilisateur.administrationId = undefined
         }
 
-        if (
-          isEntreprise(utilisateurPopup.value) ||
-          isBureauDEtudes(utilisateurPopup.value)
-        ) {
-          utilisateur.entreprises = utilisateur.entreprises.map(
-            ({ id }: { id: string }) => ({ id })
-          )
+        if (isEntreprise(utilisateurPopup.value) || isBureauDEtudes(utilisateurPopup.value)) {
+          utilisateur.entreprises = utilisateur.entreprises.map(({ id }: { id: string }) => ({ id }))
         } else {
           utilisateur.entreprises = []
         }
@@ -248,21 +178,13 @@ export const EditPopup = defineComponent<Props>({
 
     const roleToggle = (role: Role) => {
       utilisateurPopup.value.role = role
-      if (
-        isAdministration(props.user) &&
-        isAdministration(utilisateurPopup.value)
-      ) {
+      if (isAdministration(props.user) && isAdministration(utilisateurPopup.value)) {
         utilisateurPopup.value.administrationId = props.user.administrationId
       }
     }
 
     return () => (
-      <FunctionalPopup
-        title={`Modification du compte ${props.utilisateur.email}`}
-        content={content}
-        validate={{ text: 'Enregistrer', can: complete.value, action: save }}
-        close={props.close}
-      />
+      <FunctionalPopup title={`Modification du compte ${props.utilisateur.email}`} content={content} validate={{ text: 'Enregistrer', can: complete.value, action: save }} close={props.close} />
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/utilisateur/qgis-token.stories.tsx b/packages/ui/src/components/utilisateur/qgis-token.stories.tsx
index 0457395a6..98283c740 100644
--- a/packages/ui/src/components/utilisateur/qgis-token.stories.tsx
+++ b/packages/ui/src/components/utilisateur/qgis-token.stories.tsx
@@ -4,17 +4,14 @@ import { QGisToken } from './qgis-token'
 const meta: Meta = {
   title: 'Components/Utilisateur/QGISToken',
   component: QGisToken,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
 export const Default: Story = () => (
   <QGisToken
     apiClient={{
-      getQGISToken: () =>
-        new Promise(resolve =>
-          setTimeout(() => resolve({ token: 'token123' }), 1000)
-        )
+      getQGISToken: () => new Promise(resolve => setTimeout(() => resolve({ token: 'token123' }), 1000)),
     }}
   />
 )
diff --git a/packages/ui/src/components/utilisateur/qgis-token.tsx b/packages/ui/src/components/utilisateur/qgis-token.tsx
index bd662a7c4..6c9c5cf28 100644
--- a/packages/ui/src/components/utilisateur/qgis-token.tsx
+++ b/packages/ui/src/components/utilisateur/qgis-token.tsx
@@ -27,7 +27,7 @@ export const QGisToken = defineComponent<Props>({
       } catch (e: any) {
         data.value = {
           status: 'ERROR',
-          message: e.message ?? 'something wrong happened'
+          message: e.message ?? 'something wrong happened',
         }
       }
     }
@@ -37,7 +37,7 @@ export const QGisToken = defineComponent<Props>({
         navigator.clipboard.writeText(token)
         messages.value.push({
           type: 'success',
-          value: "Le jeton vient d'être copié dans votre presse papier"
+          value: "Le jeton vient d'être copié dans votre presse papier",
         })
         setTimeout(() => {
           messages.value.shift()
@@ -53,10 +53,7 @@ export const QGisToken = defineComponent<Props>({
             <>
               {item.token ? (
                 <div class="mb-s">
-                  Voici le jeton généré{' '}
-                  <Pill onClick={() => copyToClipboard(item.token)}>
-                    {item.token}
-                  </Pill>
+                  Voici le jeton généré <Pill onClick={() => copyToClipboard(item.token)}>{item.token}</Pill>
                   <br />
                   Assurez-vous de le copier, vous ne pourrez plus le revoir !
                 </div>
@@ -71,5 +68,5 @@ export const QGisToken = defineComponent<Props>({
         <Messages messages={messages.value} />
       </>
     )
-  }
+  },
 })
diff --git a/packages/ui/src/components/utilisateur/remove-popup.stories.tsx b/packages/ui/src/components/utilisateur/remove-popup.stories.tsx
index b402ff309..1c724d613 100644
--- a/packages/ui/src/components/utilisateur/remove-popup.stories.tsx
+++ b/packages/ui/src/components/utilisateur/remove-popup.stories.tsx
@@ -5,7 +5,7 @@ import { RemovePopup } from './remove-popup'
 const meta: Meta = {
   title: 'Components/Utilisateur/RemovePopup',
   component: RemovePopup,
-  argTypes: {}
+  argTypes: {},
 }
 export default meta
 
diff --git a/packages/ui/src/components/utilisateur/remove-popup.tsx b/packages/ui/src/components/utilisateur/remove-popup.tsx
index 2edb28b58..d23fe0fec 100644
--- a/packages/ui/src/components/utilisateur/remove-popup.tsx
+++ b/packages/ui/src/components/utilisateur/remove-popup.tsx
@@ -11,22 +11,13 @@ export const RemovePopup = defineComponent<Props>({
     const content = () => (
       <>
         <p class="bold">
-          Souhaitez vous supprimer le compte de {props.utilisateur.prenom}{' '}
-          {props.utilisateur.nom} ?
+          Souhaitez vous supprimer le compte de {props.utilisateur.prenom} {props.utilisateur.nom} ?
         </p>
         <div class="bg-warning color-bg p-s mb-l">
-          <span class="bold"> Attention </span>: cette opération est définitive
-          et ne peut pas être annulée.
+          <span class="bold"> Attention </span>: cette opération est définitive et ne peut pas être annulée.
         </div>
       </>
     )
-    return () => (
-      <FunctionalPopup
-        title="Suppression du compte utilisateur"
-        content={content}
-        close={props.close}
-        validate={{ action: props.deleteUser, text: 'Supprimer' }}
-      />
-    )
-  }
+    return () => <FunctionalPopup title="Suppression du compte utilisateur" content={content} close={props.close} validate={{ action: props.deleteUser, text: 'Supprimer' }} />
+  },
 })
diff --git a/packages/ui/src/components/utilisateur/utilisateur-api-client.ts b/packages/ui/src/components/utilisateur/utilisateur-api-client.ts
index dd81ea964..ca8b81d04 100644
--- a/packages/ui/src/components/utilisateur/utilisateur-api-client.ts
+++ b/packages/ui/src/components/utilisateur/utilisateur-api-client.ts
@@ -12,10 +12,7 @@ import { fetchWithJson, postWithJson } from '../../api/client-rest'
 export interface UtilisateurApiClient {
   getUtilisateur: (userId: string) => Promise<Utilisateur>
   getUtilisateurNewsletter: (userId: string) => Promise<boolean>
-  updateUtilisateurNewsletter: (
-    userId: string,
-    subscribe: boolean
-  ) => Promise<void>
+  updateUtilisateurNewsletter: (userId: string, subscribe: boolean) => Promise<void>
   removeUtilisateur: (userId: string) => Promise<void>
   updateUtilisateur: (user: Utilisateur) => Promise<void>
   getEntreprises: () => Promise<Entreprise[]>
@@ -33,23 +30,15 @@ export const utilisateurApiClient: UtilisateurApiClient = {
 
       ${fragmentUtilisateur}
     `)({
-      id: userId
+      id: userId,
     })
     return data
   },
   getUtilisateurNewsletter: async (userId: string) => {
-    return await fetchWithJson(
-      CaminoRestRoutes.newsletter,
-      { id: userId },
-      'get'
-    )
+    return await fetchWithJson(CaminoRestRoutes.newsletter, { id: userId }, 'get')
   },
   updateUtilisateurNewsletter: async (userId: string, newsletter: boolean) => {
-    return await postWithJson(
-      CaminoRestRoutes.newsletter,
-      { id: userId },
-      { newsletter }
-    )
+    return await postWithJson(CaminoRestRoutes.newsletter, { id: userId }, { newsletter })
   },
   removeUtilisateur: async (userId: string) => {
     await apiGraphQLFetch(gql`
@@ -64,9 +53,7 @@ export const utilisateurApiClient: UtilisateurApiClient = {
   },
   updateUtilisateur: async (utilisateur: Utilisateur) => {
     await apiGraphQLFetch(gql`
-      mutation UtilisateurModifier(
-        $utilisateur: InputUtilisateurModification!
-      ) {
+      mutation UtilisateurModifier($utilisateur: InputUtilisateurModification!) {
         utilisateurModifier(utilisateur: $utilisateur) {
           id
         }
@@ -89,6 +76,5 @@ export const utilisateurApiClient: UtilisateurApiClient = {
     )()
     return elements
   },
-  getQGISToken: async () =>
-    fetchWithJson(CaminoRestRoutes.generateQgisToken, {}, 'post')
+  getQGISToken: async () => fetchWithJson(CaminoRestRoutes.generateQgisToken, {}, 'post'),
 }
diff --git a/packages/ui/src/components/utilisateurs.vue b/packages/ui/src/components/utilisateurs.vue
index 3fd8cdf7d..8a5b99be2 100644
--- a/packages/ui/src/components/utilisateurs.vue
+++ b/packages/ui/src/components/utilisateurs.vue
@@ -13,11 +13,7 @@
     @params-update="paramsUpdate"
   >
     <template v-if="utilisateurs.length" #downloads>
-      <Downloads
-        :formats="['csv', 'xlsx', 'ods']"
-        section="utilisateurs"
-        class="flex-right full-x"
-      />
+      <Downloads :formats="['csv', 'xlsx', 'ods']" section="utilisateurs" class="flex-right full-x" />
     </template>
   </liste>
 </template>
@@ -27,10 +23,7 @@ import Liste from './_common/liste.vue'
 import { Downloads } from './_common/downloads'
 
 import filtres from './utilisateurs/filtres'
-import {
-  utilisateursColonnes,
-  utilisateursLignesBuild
-} from './utilisateurs/table'
+import { utilisateursColonnes, utilisateursLignesBuild } from './utilisateurs/table'
 import { canReadUtilisateurs } from 'camino-common/src/permissions/utilisateurs'
 
 export default {
@@ -42,7 +35,7 @@ export default {
     return {
       filtres,
       colonnes: utilisateursColonnes,
-      visible: false
+      visible: false,
     }
   },
 
@@ -61,7 +54,7 @@ export default {
 
     metas() {
       return {
-        ...this.$store.state.utilisateurs.metas
+        ...this.$store.state.utilisateurs.metas,
       }
     },
 
@@ -75,7 +68,7 @@ export default {
 
     initialized() {
       return this.$store.state.utilisateurs.initialized
-    }
+    },
   },
 
   watch: {
@@ -84,8 +77,8 @@ export default {
     '$route.query': {
       handler: function () {
         this.$store.dispatch('utilisateurs/routeUpdate')
-      }
-    }
+      },
+    },
   },
 
   async created() {
@@ -108,7 +101,7 @@ export default {
 
     async paramsUpdate(options) {
       await this.$store.dispatch(`utilisateurs/paramsSet`, options)
-    }
-  }
+    },
+  },
 }
 </script>
diff --git a/packages/ui/src/components/utilisateurs/filtres.js b/packages/ui/src/components/utilisateurs/filtres.js
index 346c932bf..1d6d3d356 100644
--- a/packages/ui/src/components/utilisateurs/filtres.js
+++ b/packages/ui/src/components/utilisateurs/filtres.js
@@ -8,21 +8,21 @@ const utilisateursFiltres = [
     type: 'input',
     value: '',
     name: 'Noms, prénoms',
-    placeholder: '...'
+    placeholder: '...',
   },
   {
     id: 'emails',
     type: 'input',
     value: '',
     name: 'Emails',
-    placeholder: 'prenom.nom@domaine.fr, ...'
+    placeholder: 'prenom.nom@domaine.fr, ...',
   },
   {
     id: 'roles',
     name: 'Rôles',
     type: 'checkboxes',
     value: [],
-    elements: ROLES.map(r => ({ id: r, nom: r }))
+    elements: ROLES.map(r => ({ id: r, nom: r })),
   },
   {
     id: 'administrationIds',
@@ -31,15 +31,15 @@ const utilisateursFiltres = [
     value: [],
     elements: sortedAdministrations,
     buttonAdd: 'Ajouter une administration',
-    elementName: 'abreviation'
+    elementName: 'abreviation',
   },
   {
     id: 'entrepriseIds',
     type: 'autocomplete',
     value: [],
     name: 'Entreprises',
-    elementsFormat
-  }
+    elementsFormat,
+  },
 ]
 
 export default utilisateursFiltres
diff --git a/packages/ui/src/components/utilisateurs/table.ts b/packages/ui/src/components/utilisateurs/table.ts
index a201041fb..d854d7a8a 100644
--- a/packages/ui/src/components/utilisateurs/table.ts
+++ b/packages/ui/src/components/utilisateurs/table.ts
@@ -1,50 +1,39 @@
 import List from '../_ui/list.vue'
-import {
-  isAdministration,
-  isBureauDEtudes,
-  isEntreprise
-} from 'camino-common/src/roles'
+import { isAdministration, isBureauDEtudes, isEntreprise } from 'camino-common/src/roles'
 import { Administrations } from 'camino-common/src/static/administrations'
 import { Utilisateur } from '@/api/api-client'
-import {
-  Column,
-  ComponentColumnData,
-  TableRow,
-  TextColumnData
-} from '../_ui/table'
+import { Column, ComponentColumnData, TableRow, TextColumnData } from '../_ui/table'
 import { markRaw } from 'vue'
 
 export const utilisateursColonnes: Column[] = [
   {
     id: 'nom',
     name: 'Nom',
-    class: ['min-width-6']
+    class: ['min-width-6'],
   },
   {
     id: 'prenom',
     name: 'Prénom',
-    class: ['min-width-6']
+    class: ['min-width-6'],
   },
   {
     id: 'email',
-    name: 'Email'
+    name: 'Email',
   },
   {
     id: 'role',
     name: 'Rôle',
-    class: ['min-width-6']
+    class: ['min-width-6'],
   },
   {
     id: 'lien',
     name: 'Lien',
     noSort: true,
-    class: ['min-width-6']
-  }
+    class: ['min-width-6'],
+  },
 ]
 
-export const utilisateursLignesBuild = (
-  utilisateurs: Utilisateur[]
-): TableRow[] =>
+export const utilisateursLignesBuild = (utilisateurs: Utilisateur[]): TableRow[] =>
   utilisateurs.map(utilisateur => {
     let elements
 
@@ -60,10 +49,10 @@ export const utilisateursLignesBuild = (
             component: markRaw(List),
             props: {
               elements,
-              mini: true
+              mini: true,
             },
             class: 'mb--xs',
-            value: elements.join(', ')
+            value: elements.join(', '),
           }
         : { value: '' }
 
@@ -73,22 +62,14 @@ export const utilisateursLignesBuild = (
       email: { value: utilisateur.email || '–', class: ['h6'] },
       role: {
         value: utilisateur.role,
-        class: [
-          'bg-neutral',
-          'color-bg',
-          'pill',
-          'py-xs',
-          'px-s',
-          'small',
-          'bold'
-        ]
+        class: ['bg-neutral', 'color-bg', 'pill', 'py-xs', 'px-s', 'small', 'bold'],
       },
-      lien
+      lien,
     }
 
     return {
       id: utilisateur.id,
       link: { name: 'utilisateur', params: { id: utilisateur.id } },
-      columns
+      columns,
     }
   })
diff --git a/packages/ui/src/index.html b/packages/ui/src/index.html
index 37cdbc074..a2375ec9a 100644
--- a/packages/ui/src/index.html
+++ b/packages/ui/src/index.html
@@ -14,26 +14,16 @@
       <h2>le cadastre minier numérique ouvert</h2>
 
       <p>
-        Camino ouvre les projets miniers pour mieux les gérer. Il présente les
-        caractéristiques des titres miniers sur une carte, détaille chaque étape
-        de leur vie et expose les données publiques dans un format ouvert et
-        réutilisable.
+        Camino ouvre les projets miniers pour mieux les gérer. Il présente les caractéristiques des titres miniers sur une carte, détaille chaque étape de leur vie et expose les données publiques dans
+        un format ouvert et réutilisable.
       </p>
 
       <h3>Usages</h3>
 
       <ul>
-        <li>
-          Les <b>entreprises</b> gagnent en visibilité sur leur business et cela
-          simplifie leurs démarches.
-        </li>
-        <li>
-          Les <b>citoyens</b> accèdent simplement aux informations publiques.
-        </li>
-        <li>
-          Les <b>agents publics</b> centralisent leurs contributions et
-          bénéficient d’une vision partagée.
-        </li>
+        <li>Les <b>entreprises</b> gagnent en visibilité sur leur business et cela simplifie leurs démarches.</li>
+        <li>Les <b>citoyens</b> accèdent simplement aux informations publiques.</li>
+        <li>Les <b>agents publics</b> centralisent leurs contributions et bénéficient d’une vision partagée.</li>
       </ul>
     </noscript>
     <app-root></app-root>
diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts
index 221c0eaa7..4a559fe1c 100644
--- a/packages/ui/src/index.ts
+++ b/packages/ui/src/index.ts
@@ -18,17 +18,11 @@ Promise.resolve().then(async (): Promise<void> => {
   import('./styles/dsfr/dsfr.css')
   const app = createApp(App)
   sync(store, router)
-  const configFromJson: CaminoConfig = await fetchWithJson(
-    CaminoRestRoutes.config,
-    {}
-  )
+  const configFromJson: CaminoConfig = await fetchWithJson(CaminoRestRoutes.config, {})
   const eventSource = new EventSource('/stream/version')
 
   eventSource.addEventListener('version', event => {
-    if (
-      caminoApplicationVersion === null ||
-      caminoApplicationVersion === undefined
-    ) {
+    if (caminoApplicationVersion === null || caminoApplicationVersion === undefined) {
       localStorage.setItem('caminoApplicationVersion', event.data)
       caminoApplicationVersion = event.data
     } else if (event.data !== caminoApplicationVersion) {
@@ -49,22 +43,17 @@ Promise.resolve().then(async (): Promise<void> => {
         integrations: [
           new BrowserTracing({
             routingInstrumentation: Sentry.vueRouterInstrumentation(router),
-            tracingOrigins: ['localhost', configFromJson.uiHost, /^\//]
-          })
+            tracingOrigins: ['localhost', configFromJson.uiHost, /^\//],
+          }),
         ],
         release: `camino-ui-${caminoApplicationVersion}`,
-        logErrors: true
+        logErrors: true,
       })
     } catch (e) {
       console.error('erreur : Sentry :', e)
     }
     try {
-      if (
-        !configFromJson.matomoHost ||
-        !configFromJson.matomoSiteId ||
-        !configFromJson.environment
-      )
-        throw new Error('host et/ou siteId manquant(s)')
+      if (!configFromJson.matomoHost || !configFromJson.matomoSiteId || !configFromJson.environment) throw new Error('host et/ou siteId manquant(s)')
 
       const matomo = await VueMatomo({
         host: configFromJson.matomoHost,
@@ -77,7 +66,7 @@ Promise.resolve().then(async (): Promise<void> => {
         trackInitialView: true,
         trackerFileName: 'piwik',
         enableHeartBeatTimer: true,
-        enableLinkTracking: true
+        enableLinkTracking: true,
       })
       app.provide('matomo', matomo)
       app.config.globalProperties.$matomo = matomo
diff --git a/packages/ui/src/router/index.ts b/packages/ui/src/router/index.ts
index c12ad8098..55c122e6b 100644
--- a/packages/ui/src/router/index.ts
+++ b/packages/ui/src/router/index.ts
@@ -48,15 +48,11 @@ const StatsGuyane = async () => {
   return Guyane
 }
 const StatistiquesGranulatsMarins = async () => {
-  const { GranulatsMarins } = await import(
-    '../components/statistiques/granulats-marins'
-  )
+  const { GranulatsMarins } = await import('../components/statistiques/granulats-marins')
   return GranulatsMarins
 }
 const StatistiquesMinerauxMetauxMetropole = async () => {
-  const { MinerauxMetauxMetropole } = await import(
-    '../components/statistiques/mineraux-metaux-metropole'
-  )
+  const { MinerauxMetauxMetropole } = await import('../components/statistiques/mineraux-metaux-metropole')
   return MinerauxMetauxMetropole
 }
 const Journaux = () => import('../components/journaux.vue')
@@ -66,127 +62,127 @@ const routes: RouteRecordRaw[] = [
   {
     path: '/dashboard',
     name: 'dashboard',
-    component: Dashboard
+    component: Dashboard,
   },
   {
     path: '/dashboard/dgtmstats',
     name: 'Stats DGTM',
-    component: DGTMStatsFull
+    component: DGTMStatsFull,
   },
   {
     path: '/titres',
     name: 'titres',
-    component: Titres
+    component: Titres,
   },
   {
     path: '/titres/creation',
     name: 'titre-creation',
-    component: TitreCreation
+    component: TitreCreation,
   },
   {
     path: '/titres/:id',
     name: 'titre',
-    component: Titre
+    component: Titre,
   },
   {
     path: '/demarches',
     name: 'demarches',
-    component: Demarches
+    component: Demarches,
   },
   {
     path: '/travaux',
     name: 'travaux',
-    component: Travaux
+    component: Travaux,
   },
   {
     path: '/etapes/:id',
     name: 'etape',
-    component: Etape
+    component: Etape,
   },
   {
     path: '/etapes/creation',
     name: 'etape-creation',
-    component: EtapeEdition
+    component: EtapeEdition,
   },
   {
     path: '/etapes/:id/edition',
     name: 'etape-edition',
-    component: EtapeEdition
+    component: EtapeEdition,
   },
   {
     path: '/utilisateurs',
     name: 'utilisateurs',
-    component: Utilisateurs
+    component: Utilisateurs,
   },
   {
     path: '/utilisateurs/:id',
     name: 'utilisateur',
-    component: Utilisateur
+    component: Utilisateur,
   },
   {
     path: '/entreprises',
     name: 'entreprises',
-    component: Entreprises
+    component: Entreprises,
   },
   {
     path: '/entreprises/:id',
     name: 'entreprise',
-    component: Entreprise
+    component: Entreprise,
   },
   {
     path: '/administrations',
     name: 'administrations',
-    component: Administrations
+    component: Administrations,
   },
   {
     path: '/administrations/:id',
     name: 'administration',
-    component: Administration
+    component: Administration,
   },
   {
     path: '/metas',
     name: 'metas',
-    component: Metas
+    component: Metas,
   },
   {
     path: '/metas/titre',
     name: 'meta-titre',
-    component: MetaTitre
+    component: MetaTitre,
   },
   {
     path: '/metas/demarche',
     name: 'meta-demarche',
-    component: MetaDemarche
+    component: MetaDemarche,
   },
   {
     path: '/metas/etape',
     name: 'meta-etape',
-    component: MetaEtape
+    component: MetaEtape,
   },
   {
     path: '/metas/activite',
     name: 'meta-activite',
-    component: MetaActivite
+    component: MetaActivite,
   },
   {
     path: '/metas/:id',
     name: 'meta',
-    component: Meta
+    component: Meta,
   },
   {
     path: '/activites',
     name: 'activites',
-    component: Activites
+    component: Activites,
   },
   {
     path: '/activites/:id',
     name: 'activite',
-    component: Activite
+    component: Activite,
   },
   {
     path: '/activites/:id/edition',
     name: 'activite-edition',
-    component: ActiviteEdition
+    component: ActiviteEdition,
   },
   {
     path: '/statistiques',
@@ -196,41 +192,41 @@ const routes: RouteRecordRaw[] = [
       {
         path: 'guyane',
         name: 'statistiques-guyane',
-        component: StatsGuyane
+        component: StatsGuyane,
       },
       {
         path: 'globales',
         name: 'statistiques-globales',
-        component: StatistiquesGlobales
+        component: StatistiquesGlobales,
       },
       {
         path: 'granulats-marins',
         name: 'statistiques-granulats-marins',
-        component: StatistiquesGranulatsMarins
+        component: StatistiquesGranulatsMarins,
       },
       {
         path: 'mineraux-metaux-metropole',
         name: 'statistiques-mineraux-metaux-metropole',
-        component: StatistiquesMinerauxMetauxMetropole
-      }
-    ]
+        component: StatistiquesMinerauxMetauxMetropole,
+      },
+    ],
   },
   { path: '/journaux', name: 'journaux', component: Journaux },
   // url /stats : demande de Samuel
   // pour avoir une uniformité entre toutes les start-ups
   {
     path: '/stats',
-    redirect: 'statistiques'
+    redirect: 'statistiques',
   },
   {
     path: '/a-propos',
     name: 'a-propos',
-    component: About
+    component: About,
   },
   {
     name: 'homepage',
     path: '/',
-    redirect: { name: 'dashboard', replace: true }
+    redirect: { name: 'dashboard', replace: true },
   },
   {
     path: '/:pathMatch(.*)*',
@@ -238,9 +234,9 @@ const routes: RouteRecordRaw[] = [
     component: Error,
     props: {
       couleur: 'error',
-      message: 'Page introuvable'
-    }
-  }
+      message: 'Page introuvable',
+    },
+  },
 ]
 
 const history = createWebHistory()
@@ -249,7 +245,7 @@ const router = createRouter({
   routes,
   history,
   linkActiveClass: 'active',
-  linkExactActiveClass: 'exact-active'
+  linkExactActiveClass: 'exact-active',
 })
 
 router.isReady().then(async () => {})
diff --git a/packages/ui/src/stats/bootstrap.js b/packages/ui/src/stats/bootstrap.js
index 6f719258c..491bdeb3c 100755
--- a/packages/ui/src/stats/bootstrap.js
+++ b/packages/ui/src/stats/bootstrap.js
@@ -14,8 +14,6 @@ export default function (options) {
     script.onload = resolve
     script.onerror = reject
   }).catch(error => {
-    console.info(
-      `Warning: ${error.target.src}. If the file exists, you may have a tracking blocker enabled.`
-    )
+    console.info(`Warning: ${error.target.src}. If the file exists, you may have a tracking blocker enabled.`)
   })
 }
diff --git a/packages/ui/src/stats/custom-variables.js b/packages/ui/src/stats/custom-variables.js
index a1dd73f97..4e3eb60b5 100644
--- a/packages/ui/src/stats/custom-variables.js
+++ b/packages/ui/src/stats/custom-variables.js
@@ -3,12 +3,7 @@ import { isAdministration } from 'camino-common/src/roles'
 const visitUser = matomo => user => {
   if (user) {
     if (isAdministration(user)) {
-      matomo.setCustomVariable(
-        1,
-        'administrationId',
-        user.administrationId,
-        'visit'
-      )
+      matomo.setCustomVariable(1, 'administrationId', user.administrationId, 'visit')
     }
 
     if (user.entreprises && user.entreprises.length) {
diff --git a/packages/ui/src/stats/index.js b/packages/ui/src/stats/index.js
index dc54dbbee..8675921ec 100755
--- a/packages/ui/src/stats/index.js
+++ b/packages/ui/src/stats/index.js
@@ -9,7 +9,7 @@ const defaultOptions = {
   enableHeartBeatTimer: false,
   enableLinkTracking: false,
   heartBeatTimerInterval: 60,
-  environnement: 'dev'
+  environnement: 'dev',
 }
 
 const install = (setupOptions = {}) => {
@@ -17,10 +17,7 @@ const install = (setupOptions = {}) => {
 
   return bootstrap(options)
     .then(() => {
-      const matomo = window.Piwik.getTracker(
-        `${options.host}/${options.trackerFileName}.php`,
-        options.siteId
-      )
+      const matomo = window.Piwik.getTracker(`${options.host}/${options.trackerFileName}.php`, options.siteId)
 
       // dimension d'environnement : https://stats.data.gouv.fr/index.php?module=CustomDimensions&action=manage&idSite=70&period=day&date=yesterday#?idDimension=1&scope=visit
       matomo.setCustomDimension(1, options.environnement)
diff --git a/packages/ui/src/store/__mocks__/titre-etape.js b/packages/ui/src/store/__mocks__/titre-etape.js
index bb681564f..1c8030fd7 100644
--- a/packages/ui/src/store/__mocks__/titre-etape.js
+++ b/packages/ui/src/store/__mocks__/titre-etape.js
@@ -3,50 +3,50 @@ const titreEtapeMetas = {
   entreprises: {
     elements: [
       { id: 'ent-1', nom: '1' },
-      { id: 'ent-2', nom: '2' }
-    ]
+      { id: 'ent-2', nom: '2' },
+    ],
   },
   demarche: {
     id: 'demarche-id',
     type: { nom: 'nom de la démarche' },
-    titre: { nom: 'nom du titre', domaine: { id: 'm' } }
-  }
+    titre: { nom: 'nom du titre', domaine: { id: 'm' } },
+  },
 }
 
 const titreEtapeMetasRes = {
   etapesTypes: [
     { id: 'w', nom: 'granulats' },
-    { id: 'c', nom: 'carrières' }
+    { id: 'c', nom: 'carrières' },
   ],
   substances: [],
   entreprises: [
     { id: 'ent-1', nom: '1' },
-    { id: 'ent-2', nom: '2' }
+    { id: 'ent-2', nom: '2' },
   ],
   demarche: {
     id: 'demarche-id',
     type: { nom: 'nom de la démarche' },
-    titre: { nom: 'nom du titre', domaine: { id: 'm' } }
-  }
+    titre: { nom: 'nom du titre', domaine: { id: 'm' } },
+  },
 }
 
 const titreEtapeMetasRes2 = {
   substances: [],
   entreprises: [
     { id: 'ent-1', nom: '1' },
-    { id: 'ent-2', nom: '2' }
+    { id: 'ent-2', nom: '2' },
   ],
   demarche: {
     id: 'demarche-id',
     type: { nom: 'nom de la démarche' },
-    titre: { nom: 'nom du titre', domaine: { id: 'm' } }
+    titre: { nom: 'nom du titre', domaine: { id: 'm' } },
   },
-  etapesTypes: []
+  etapesTypes: [],
 }
 
 const titreEtapeEtapesTypes = [
   { id: 'w', nom: 'granulats' },
-  { id: 'c', nom: 'carrières' }
+  { id: 'c', nom: 'carrières' },
 ]
 
 const titreEtapeEdited = {
@@ -62,7 +62,7 @@ const titreEtapeEdited = {
   incertitudes: {},
   substances: [],
   documents: [],
-  justificatifs: []
+  justificatifs: [],
 }
 
 const titreEtapeCreation = {
@@ -79,7 +79,7 @@ const titreEtapeCreation = {
   statutId: '',
   substances: [],
   documents: [],
-  justificatifs: []
+  justificatifs: [],
 }
 
 const titreEtapeHeritage1 = {
@@ -87,11 +87,11 @@ const titreEtapeHeritage1 = {
   titreDemarcheId: 'demarche-id',
   date: '2020-01-02',
   incertitudes: {
-    date: undefined
+    date: undefined,
   },
   statutId: '',
   type: {
-    id: 'new-etape-type-id'
+    id: 'new-etape-type-id',
   },
   dateDebut: undefined,
   dateFin: undefined,
@@ -105,39 +105,39 @@ const titreEtapeHeritage1 = {
   geoSystemeOpposableId: null,
   contenu: {
     sectionId1: { elementId1: 'valeur', elementId2: 'valeur' },
-    sectionId2: {}
+    sectionId2: {},
   },
   heritageProps: {},
   heritageContenu: {
     sectionId1: {
       elementId1: { etape: { id: 'etape-id' }, actif: true },
-      elementId2: { etape: { id: 'etape-id' }, actif: false }
+      elementId2: { etape: { id: 'etape-id' }, actif: false },
     },
     sectionId2: {
-      elementId1: { etape: { id: 'etape-id' }, actif: true }
-    }
+      elementId1: { etape: { id: 'etape-id' }, actif: true },
+    },
   },
-  documents: []
+  documents: [],
 }
 
 const titreEtapeHeritageRes1 = {
   type: {
-    id: 'new-etape-type-id'
+    id: 'new-etape-type-id',
   },
   heritageProps: {},
   heritageContenu: {
     sectionId1: {
       elementId1: { etape: { id: 'etape-id' }, actif: true },
-      elementId2: { etape: { id: 'etape-id' }, actif: false }
+      elementId2: { etape: { id: 'etape-id' }, actif: false },
     },
     sectionId2: {
-      elementId1: { etape: { id: 'etape-id' }, actif: true }
+      elementId1: { etape: { id: 'etape-id' }, actif: true },
     },
-    sectionId3: {}
+    sectionId3: {},
   },
   contenu: {
-    sectionId1: { elementId1: 'valeur', elementId2: 'valeur' }
-  }
+    sectionId1: { elementId1: 'valeur', elementId2: 'valeur' },
+  },
 }
 
 const titreEtapeHeritage2 = {
@@ -155,17 +155,17 @@ const titreEtapeHeritage2 = {
   titreDemarcheId: 'demarche-id',
   titulaires: [],
   type: {
-    id: 'new-etape-type-id'
-  }
+    id: 'new-etape-type-id',
+  },
 }
 
 const titreEtapeHeritageRes2 = {
   type: {
-    id: 'new-etape-type-id'
+    id: 'new-etape-type-id',
   },
   heritageProps: {},
   heritageContenu: {},
-  contenu: {}
+  contenu: {},
 }
 
 export {
@@ -178,5 +178,5 @@ export {
   titreEtapeHeritage1,
   titreEtapeHeritageRes1,
   titreEtapeHeritage2,
-  titreEtapeHeritageRes2
+  titreEtapeHeritageRes2,
 }
diff --git a/packages/ui/src/store/_liste-build.js b/packages/ui/src/store/_liste-build.js
index 8d2404868..b6b6132ab 100644
--- a/packages/ui/src/store/_liste-build.js
+++ b/packages/ui/src/store/_liste-build.js
@@ -35,10 +35,7 @@ const listeActionsBuild = (id, name, elements, metas) => ({
 
       await dispatch('urlQueryUpdate')
 
-      const p = paramsBuild(
-        state.definitions,
-        Object.assign({}, state.params.filtres, state.params.table)
-      )
+      const p = paramsBuild(state.definitions, Object.assign({}, state.params.filtres, state.params.table))
 
       const data = await elements({ ...p, ...state.additionalParams })
 
@@ -55,7 +52,7 @@ const listeActionsBuild = (id, name, elements, metas) => ({
         'messageAdd',
         {
           value: `mise à jour : ${name}`,
-          type: 'success'
+          type: 'success',
         },
         { root: true }
       )
@@ -87,11 +84,7 @@ const listeActionsBuild = (id, name, elements, metas) => ({
   async paramsFromQueryUpdate({ rootState, state, commit }) {
     let hasChanged = false
 
-    const tableParams = urlQueryParamsGet(
-      state.params.table,
-      rootState.route.query,
-      state.definitions
-    )
+    const tableParams = urlQueryParamsGet(state.params.table, rootState.route.query, state.definitions)
 
     if (Object.keys(tableParams).length) {
       commit('paramsSet', { section: 'table', params: tableParams })
@@ -99,11 +92,7 @@ const listeActionsBuild = (id, name, elements, metas) => ({
     }
 
     if (state.params.filtres) {
-      const filtresParams = urlQueryParamsGet(
-        state.params.filtres,
-        rootState.route.query,
-        state.definitions
-      )
+      const filtresParams = urlQueryParamsGet(state.params.filtres, rootState.route.query, state.definitions)
 
       if (Object.keys(filtresParams).length) {
         commit('paramsSet', { section: 'filtres', params: filtresParams })
@@ -118,13 +107,9 @@ const listeActionsBuild = (id, name, elements, metas) => ({
     if (state.params.filtres) {
       const params = Object.assign(state.params.filtres, state.params.table)
 
-      await dispatch(
-        'urlQueryUpdate',
-        { params, definitions: state.definitions },
-        { root: true }
-      )
+      await dispatch('urlQueryUpdate', { params, definitions: state.definitions }, { root: true })
     }
-  }
+  },
 })
 
 export const listeMutationsWithDefaultState = getDefaultState => {
@@ -133,7 +118,7 @@ export const listeMutationsWithDefaultState = getDefaultState => {
       // Merge rather than replace so we don't lose observers
       // https://github.com/vuejs/vuex/issues/1118
       Object.assign(state, getDefaultState())
-    }
+    },
   })
 }
 
@@ -164,7 +149,7 @@ export const listeMutations = {
 
   init(state) {
     state.initialized = true
-  }
+  },
 }
 
 export { listeActionsBuild }
diff --git a/packages/ui/src/store/_liste-build.test.js b/packages/ui/src/store/_liste-build.test.js
index f13612c60..d8f7b0183 100644
--- a/packages/ui/src/store/_liste-build.test.js
+++ b/packages/ui/src/store/_liste-build.test.js
@@ -15,12 +15,7 @@ describe('listes', () => {
   let route
   const liste = { namespaced: true }
 
-  liste.actions = listeActionsBuild(
-    'elements',
-    'élements',
-    listeElementsGet,
-    listeMetasGet
-  )
+  liste.actions = listeActionsBuild('elements', 'élements', listeElementsGet, listeMetasGet)
 
   liste.mutations = Object.assign({}, listeMutations, {
     metasSet(state, metas) {
@@ -28,7 +23,7 @@ describe('listes', () => {
 
       const definition = state.definitions.find(p => p.id === 'typesIds')
       definition.elements = metas.map(e => e.id)
-    }
+    },
   })
 
   beforeEach(() => {
@@ -36,7 +31,7 @@ describe('listes', () => {
     liste.state = {
       elements: null,
       metas: {
-        types: []
+        types: [],
       },
       definitions: [
         { id: 'page', type: 'number', min: 0 },
@@ -44,32 +39,32 @@ describe('listes', () => {
         {
           id: 'colonne',
           type: 'string',
-          elements: ['nom', 'type', 'abreviation']
+          elements: ['nom', 'type', 'abreviation'],
         },
         { id: 'ordre', type: 'string', elements: ['asc', 'desc'] },
-        { id: 'typesIds', type: 'strings', elements: [] }
+        { id: 'typesIds', type: 'strings', elements: [] },
       ],
       params: {
         table: { page: 1, intervalle: 200, ordre: 'asc', colonne: null },
-        filtres: { typesIds: [] }
+        filtres: { typesIds: [] },
       },
-      initialized: false
+      initialized: false,
     }
 
     mutations = {
       loadingAdd: vi.fn(),
-      loadingRemove: vi.fn()
+      loadingRemove: vi.fn(),
     }
 
     actions = {
       apiError: vi.fn(),
       messageAdd: vi.fn(),
-      urlQueryUpdate: vi.fn()
+      urlQueryUpdate: vi.fn(),
     }
 
     route = {
       namespaced: true,
-      state: { query: {} }
+      state: { query: {} },
     }
 
     // eslint-disable-next-line vue/one-component-per-file
@@ -78,7 +73,7 @@ describe('listes', () => {
     store = createStore({
       modules: { liste, route },
       mutations,
-      actions
+      actions,
     })
 
     app.use(store)
@@ -87,13 +82,13 @@ describe('listes', () => {
   test('initialise une liste', async () => {
     const types = [
       { id: 'ope', nom: 'Opérateur' },
-      { id: 'dea', nom: 'Déal' }
+      { id: 'dea', nom: 'Déal' },
     ]
     const apiMetasMock = listeMetasGet.mockResolvedValue(types)
 
     const apiMock = listeElementsGet.mockResolvedValue({
       elements: [{ id: 'el-1', nom: 'élement 1' }],
-      total: 1
+      total: 1,
     })
 
     await store.dispatch('liste/init')
@@ -101,13 +96,9 @@ describe('listes', () => {
     expect(apiMetasMock).toHaveBeenCalled()
     expect(apiMock).toHaveBeenCalled()
     expect(store.state.liste.metas).toEqual({ types })
-    expect(
-      store.state.liste.definitions.find(d => d.id === 'typesIds')
-    ).toEqual({ id: 'typesIds', type: 'strings', elements: ['ope', 'dea'] })
+    expect(store.state.liste.definitions.find(d => d.id === 'typesIds')).toEqual({ id: 'typesIds', type: 'strings', elements: ['ope', 'dea'] })
     expect(store.state.liste.initialized).toBeTruthy()
-    expect(store.state.liste.elements).toEqual([
-      { id: 'el-1', nom: 'élement 1' }
-    ])
+    expect(store.state.liste.elements).toEqual([{ id: 'el-1', nom: 'élement 1' }])
 
     await store.dispatch('liste/init')
 
@@ -117,9 +108,7 @@ describe('listes', () => {
   })
 
   test("retourne une erreur si l'api renvoit une erreur", async () => {
-    const apiMetasMock = listeMetasGet.mockRejectedValue(
-      new Error("erreur de l'api")
-    )
+    const apiMetasMock = listeMetasGet.mockRejectedValue(new Error("erreur de l'api"))
 
     await store.dispatch('liste/init')
 
@@ -129,9 +118,7 @@ describe('listes', () => {
     expect(store.state.liste.initialized).toBeFalsy()
 
     store.state.liste.initialized = true
-    const apiMock = listeElementsGet.mockRejectedValue(
-      new Error("erreur de l'api")
-    )
+    const apiMock = listeElementsGet.mockRejectedValue(new Error("erreur de l'api"))
 
     await store.dispatch('liste/get')
 
@@ -142,14 +129,14 @@ describe('listes', () => {
   test('modifie les paramètres de filtre', async () => {
     const apiMock = listeElementsGet.mockResolvedValue({
       elements: [{ id: 'el-1', nom: 'élement 1' }],
-      total: 1
+      total: 1,
     })
 
     store.state.liste.params.table.page = 2
 
     await store.dispatch('liste/paramsSet', {
       section: 'filtres',
-      params: { typesIds: ['dea'] }
+      params: { typesIds: ['dea'] },
     })
 
     expect(apiMock).not.toHaveBeenCalled()
@@ -160,7 +147,7 @@ describe('listes', () => {
     await store.dispatch('liste/paramsSet', {
       section: 'table',
       params: { ordre: 'desc' },
-      pageReset: true
+      pageReset: true,
     })
 
     expect(apiMock).toHaveBeenCalled()
@@ -168,17 +155,15 @@ describe('listes', () => {
       page: 1,
       intervalle: 200,
       ordre: 'desc',
-      colonne: null
+      colonne: null,
     })
-    expect(store.state.liste.elements).toEqual([
-      { id: 'el-1', nom: 'élement 1' }
-    ])
+    expect(store.state.liste.elements).toEqual([{ id: 'el-1', nom: 'élement 1' }])
   })
 
   test("met à jour la liste si les paramètres d'url changent", async () => {
     const apiMock = listeElementsGet.mockResolvedValue({
       elements: [{ id: 'el-1', nom: 'élement 1' }],
-      total: 1
+      total: 1,
     })
 
     await store.dispatch('liste/routeUpdate')
@@ -193,9 +178,7 @@ describe('listes', () => {
 
     expect(apiMock).toHaveBeenCalled()
 
-    expect(store.state.liste.elements).toEqual([
-      { id: 'el-1', nom: 'élement 1' }
-    ])
+    expect(store.state.liste.elements).toEqual([{ id: 'el-1', nom: 'élement 1' }])
   })
 })
 
@@ -220,30 +203,30 @@ describe('listes sans metas', () => {
         {
           id: 'colonne',
           type: 'string',
-          elements: ['nom', 'type', 'abreviation']
-        }
+          elements: ['nom', 'type', 'abreviation'],
+        },
       ],
       params: {
-        table: { page: 1, intervalle: 200, ordre: 'asc', colonne: null }
+        table: { page: 1, intervalle: 200, ordre: 'asc', colonne: null },
       },
-      initialized: false
+      initialized: false,
     }
 
     mutations = {
       loadingAdd: vi.fn(),
-      loadingRemove: vi.fn()
+      loadingRemove: vi.fn(),
     }
 
     actions = {
       apiError: vi.fn(),
       messageAdd: vi.fn(),
-      urlQueryUpdate: vi.fn()
+      urlQueryUpdate: vi.fn(),
     }
 
     route = {
       state: {
-        query: {}
-      }
+        query: {},
+      },
     }
 
     // eslint-disable-next-line vue/one-component-per-file
@@ -252,7 +235,7 @@ describe('listes sans metas', () => {
     store = createStore({
       modules: { liste, route },
       mutations,
-      actions
+      actions,
     })
 
     app.use(store)
@@ -261,15 +244,13 @@ describe('listes sans metas', () => {
   test('initialise une liste sans metas', async () => {
     const apiMock = listeElementsGet.mockResolvedValue({
       elements: [{ id: 'el-1', nom: 'élement 1' }],
-      total: 1
+      total: 1,
     })
 
     await store.dispatch('liste/init')
 
     expect(apiMock).toHaveBeenCalled()
     expect(store.state.liste.initialized).toBeTruthy()
-    expect(store.state.liste.elements).toEqual([
-      { id: 'el-1', nom: 'élement 1' }
-    ])
+    expect(store.state.liste.elements).toEqual([{ id: 'el-1', nom: 'élement 1' }])
   })
 })
diff --git a/packages/ui/src/store/document.js b/packages/ui/src/store/document.js
index 2f70e1910..572b75d2c 100644
--- a/packages/ui/src/store/document.js
+++ b/packages/ui/src/store/document.js
@@ -1,15 +1,10 @@
-import {
-  documentMetas,
-  documentCreer,
-  documentModifier,
-  documentSupprimer
-} from '../api/documents'
+import { documentMetas, documentCreer, documentModifier, documentSupprimer } from '../api/documents'
 import { uploadCall } from '../api/_upload'
 
 const state = {
   metas: {
-    documentsTypes: []
-  }
+    documentsTypes: [],
+  },
 }
 
 const actions = {
@@ -53,35 +48,29 @@ const actions = {
         })
       }
 
-      const nomTemporaire = uploadURL
-        ? uploadURL.substring(uploadURL.lastIndexOf('/') + 1)
-        : null
+      const nomTemporaire = uploadURL ? uploadURL.substring(uploadURL.lastIndexOf('/') + 1) : null
 
       const idOld = document.id
       try {
         if (!document.id) {
           documentReturned = await documentCreer({
-            document: { ...documentToSend, nomTemporaire }
+            document: { ...documentToSend, nomTemporaire },
           })
         } else {
           delete documentToSend.typeId
           documentReturned = await documentModifier({
-            document: { ...documentToSend, nomTemporaire }
+            document: { ...documentToSend, nomTemporaire },
           })
         }
 
-        dispatch(
-          'messageAdd',
-          { value: `le document a été mis à jour`, type: 'success' },
-          { root: true }
-        )
+        dispatch('messageAdd', { value: `le document a été mis à jour`, type: 'success' }, { root: true })
 
         dispatch('refreshAfterUpsert', {
           route,
           idOld,
           titreEtapeId: document.titreEtapeId,
           document: documentReturned,
-          action
+          action,
         })
 
         // Ne ferme la popup automatiquement que si tout s'est passé sans erreur
@@ -96,10 +85,7 @@ const actions = {
     }
   },
 
-  async refreshAfterUpsert(
-    { commit, dispatch },
-    { route, idOld, titreEtapeId, document, action }
-  ) {
+  async refreshAfterUpsert({ commit, dispatch }, { route, idOld, titreEtapeId, document, action }) {
     if (route) {
       await dispatch('reload', route, { root: true })
 
@@ -135,11 +121,7 @@ const actions = {
       if (route) {
         commit('popupClose', null, { root: true })
 
-        dispatch(
-          'messageAdd',
-          { value: `le document a été supprimé`, type: 'success' },
-          { root: true }
-        )
+        dispatch('messageAdd', { value: `le document a été supprimé`, type: 'success' }, { root: true })
         await dispatch('reload', route, { root: true })
       }
     } catch (e) {
@@ -147,7 +129,7 @@ const actions = {
     } finally {
       commit('loadingRemove', 'documentRemove', { root: true })
     }
-  }
+  },
 }
 
 const mutations = {
@@ -157,12 +139,12 @@ const mutations = {
 
   uploadProgress(state, progress) {
     state.upload.progress = progress
-  }
+  },
 }
 
 export default {
   namespaced: true,
   state,
   actions,
-  mutations
+  mutations,
 }
diff --git a/packages/ui/src/store/document.test.js b/packages/ui/src/store/document.test.js
index eb42cecab..fe96db54c 100644
--- a/packages/ui/src/store/document.test.js
+++ b/packages/ui/src/store/document.test.js
@@ -9,11 +9,11 @@ vi.mock('../api/documents', () => ({
   documentMetas: vi.fn(),
   documentCreer: vi.fn(),
   documentModifier: vi.fn(),
-  documentSupprimer: vi.fn()
+  documentSupprimer: vi.fn(),
 }))
 
 vi.mock('../api/_upload', () => ({
-  uploadCall: vi.fn()
+  uploadCall: vi.fn(),
 }))
 
 console.info = vi.fn()
@@ -28,7 +28,7 @@ describe('documents', () => {
 
     document.state = {
       metas: { documentsTypes: [] },
-      preferences: { types: [] }
+      preferences: { types: [] },
     }
 
     actions = {
@@ -36,7 +36,7 @@ describe('documents', () => {
       apiError: vi.fn(),
       reload: vi.fn(),
       messageAdd: vi.fn(),
-      test: vi.fn()
+      test: vi.fn(),
     }
 
     mutations = {
@@ -47,7 +47,7 @@ describe('documents', () => {
       popupMessagesRemove: vi.fn(),
       popupClose: vi.fn(),
       popupMessageAdd: vi.fn(),
-      fileLoad: vi.fn()
+      fileLoad: vi.fn(),
     }
 
     store = createStore({
@@ -57,9 +57,9 @@ describe('documents', () => {
         document,
         titre: {
           namespaced: true,
-          mutations: { open: vi.fn() }
-        }
-      }
+          mutations: { open: vi.fn() },
+        },
+      },
     })
 
     const app = createApp({})
@@ -68,7 +68,7 @@ describe('documents', () => {
   test('récupère les métas pour éditer un document', async () => {
     const apiMock = api.documentMetas.mockResolvedValueOnce([
       { id: 'arr', nom: 'Arrêté' },
-      { id: 'avi', nom: 'Avis' }
+      { id: 'avi', nom: 'Avis' },
     ])
 
     await store.dispatch('document/init')
@@ -76,15 +76,13 @@ describe('documents', () => {
     expect(apiMock).toHaveBeenCalled()
     expect(store.state.document.metas.documentsTypes).toEqual([
       { id: 'arr', nom: 'Arrêté' },
-      { id: 'avi', nom: 'Avis' }
+      { id: 'avi', nom: 'Avis' },
     ])
     expect(mutations.loadingRemove).toHaveBeenCalled()
   })
 
   test("retourne une erreur si l'api ne répond pas", async () => {
-    const apiMock = api.documentMetas.mockRejectedValue(
-      new Error("erreur de l'api")
-    )
+    const apiMock = api.documentMetas.mockRejectedValue(new Error("erreur de l'api"))
 
     await store.dispatch('document/init')
 
@@ -99,15 +97,15 @@ describe('documents', () => {
       typeId: 1,
       fichier: true,
       fichierNouveau: new Blob(),
-      nomTemporaire: null
+      nomTemporaire: null,
     }
     const apiMock = api.documentCreer.mockResolvedValue({
-      nom: 'champs'
+      nom: 'champs',
     })
 
     await store.dispatch('document/upsert', {
       document,
-      route: { name: 'titre', id: 'titre-id', section: 'etapes' }
+      route: { name: 'titre', id: 'titre-id', section: 'etapes' },
     })
     expect(upload.uploadCall).toHaveBeenCalled()
     const sentDocument = { ...document }
@@ -118,7 +116,7 @@ describe('documents', () => {
 
     await store.dispatch('document/upsert', {
       document,
-      route: 'something'
+      route: 'something',
     })
     expect(upload.uploadCall).toHaveBeenCalled()
     expect(apiMock).toHaveBeenCalledWith({ document: sentDocument })
@@ -129,11 +127,11 @@ describe('documents', () => {
       nom: 'champs',
       typeId: 1,
       fichier: true,
-      nomTemporaire: null
+      nomTemporaire: null,
     }
     await store.dispatch('document/upsert', {
       document,
-      route: { name: 'titre', id: 'titre-id', section: 'travaux' }
+      route: { name: 'titre', id: 'titre-id', section: 'travaux' },
     })
     expect(upload.uploadCall).not.toHaveBeenCalled()
     expect(apiMock).toHaveBeenCalledWith({ document })
@@ -142,7 +140,7 @@ describe('documents', () => {
   test("retourne une erreur si l'API retourne une erreur lors de l'ajout d'un document", async () => {
     api.documentCreer.mockRejectedValueOnce(() => new Error('erreur api'))
     await store.dispatch('document/upsert', {
-      document: { nom: 'champs', fichierNouveau: new Blob() }
+      document: { nom: 'champs', fichierNouveau: new Blob() },
     })
 
     expect(upload.uploadCall).toHaveBeenCalled()
@@ -156,16 +154,16 @@ describe('documents', () => {
       typeId: 1,
       fichier: true,
       fichierNouveau: new Blob(),
-      nomTemporaire: null
+      nomTemporaire: null,
     }
     const apiMock = api.documentModifier.mockResolvedValue({
       id: 14,
-      nom: 'champs'
+      nom: 'champs',
     })
 
     await store.dispatch('document/upsert', {
       document,
-      route: { name: 'titre', id: 'titre-id', section: 'etapes' }
+      route: { name: 'titre', id: 'titre-id', section: 'etapes' },
     })
     expect(upload.uploadCall).toHaveBeenCalled()
     let sentDocument = { ...document }
@@ -177,7 +175,7 @@ describe('documents', () => {
 
     await store.dispatch('document/upsert', {
       document,
-      route: 'something'
+      route: 'something',
     })
     expect(upload.uploadCall).toHaveBeenCalled()
     expect(apiMock).toHaveBeenCalledWith({ document: sentDocument })
@@ -189,11 +187,11 @@ describe('documents', () => {
       id: 14,
       typeId: 1,
       fichier: true,
-      nomTemporaire: null
+      nomTemporaire: null,
     }
     await store.dispatch('document/upsert', {
       document,
-      route: { name: 'titre', id: 'titre-id', section: 'travaux' }
+      route: { name: 'titre', id: 'titre-id', section: 'travaux' },
     })
     expect(upload.uploadCall).not.toHaveBeenCalled()
     sentDocument = { ...document }
@@ -207,16 +205,16 @@ describe('documents', () => {
       typeId: 1,
       fichier: true,
       fichierNouveau: new Blob(),
-      nomTemporaire: null
+      nomTemporaire: null,
     }
     const apiMock = api.documentCreer.mockResolvedValue({
       id: 14,
-      nom: 'champs'
+      nom: 'champs',
     })
 
     await store.dispatch('document/upsert', {
       document,
-      route: { name: 'titre', id: 'titre-id' }
+      route: { name: 'titre', id: 'titre-id' },
     })
     expect(upload.uploadCall).toHaveBeenCalled()
     const sentDocument = { ...document }
@@ -227,13 +225,13 @@ describe('documents', () => {
   test('applique une action au lieu d’être redirigé', async () => {
     api.documentCreer.mockImplementationOnce(async () => {
       await store.dispatch('document/refreshAfterUpsert', {
-        action: { name: 'test' }
+        action: { name: 'test' },
       })
     })
 
     await store.dispatch('document/upsert', {
       document: { id: 14, nom: 'champs', typeId: 1 },
-      action: { name: 'test' }
+      action: { name: 'test' },
     })
 
     expect(actions.test).toHaveBeenCalled()
@@ -242,7 +240,7 @@ describe('documents', () => {
   test("retourne une erreur si l'API retourne une erreur lors de la mise à jour d'un document", async () => {
     api.documentModifier.mockRejectedValue(new Error("erreur de l'api"))
     await store.dispatch('document/upsert', {
-      document: { id: 14, nom: 'champs' }
+      document: { id: 14, nom: 'champs' },
     })
 
     expect(mutations.popupMessageAdd).toHaveBeenCalled()
@@ -252,13 +250,13 @@ describe('documents', () => {
     const apiMock = api.documentSupprimer.mockResolvedValue(true)
     await store.dispatch('document/remove', {
       id: 62,
-      route: { name: 'titre', id: 'titre-id' }
+      route: { name: 'titre', id: 'titre-id' },
     })
 
     expect(apiMock).toHaveBeenCalledWith({ id: 62 })
     expect(mutations.popupClose).toHaveBeenCalled()
     await store.dispatch('document/remove', {
-      id: 62
+      id: 62,
     })
 
     expect(apiMock).toHaveBeenCalledWith({ id: 62 })
@@ -266,9 +264,7 @@ describe('documents', () => {
   })
 
   test("retourne une erreur si l'API retourne une erreur lors de la suppression d'un document", async () => {
-    const apiMock = api.documentSupprimer.mockRejectedValue(
-      new Error("erreur de l'api")
-    )
+    const apiMock = api.documentSupprimer.mockRejectedValue(new Error("erreur de l'api"))
     await store.dispatch('document/remove', { id: 62 })
 
     expect(apiMock).toHaveBeenCalledWith({ id: 62 })
diff --git a/packages/ui/src/store/entreprise.js b/packages/ui/src/store/entreprise.js
index 6d78f5cc8..368d29b80 100644
--- a/packages/ui/src/store/entreprise.js
+++ b/packages/ui/src/store/entreprise.js
@@ -1,16 +1,12 @@
-import {
-  entreprise,
-  entrepriseCreer,
-  entrepriseModifier
-} from '../api/entreprises'
+import { entreprise, entrepriseCreer, entrepriseModifier } from '../api/entreprises'
 
 import router from '../router'
 
 const state = {
   element: null,
   metas: {
-    domaines: []
-  }
+    domaines: [],
+  },
 }
 
 const actions = {
@@ -42,11 +38,7 @@ const actions = {
       commit('popupClose', null, { root: true })
 
       router.push({ name: 'entreprise', params: { id: data.id } })
-      dispatch(
-        'messageAdd',
-        { value: `l'entreprise a été créée`, type: 'success' },
-        { root: true }
-      )
+      dispatch('messageAdd', { value: `l'entreprise a été créée`, type: 'success' }, { root: true })
     } catch (e) {
       commit('popupMessageAdd', { value: e, type: 'error' }, { root: true })
     } finally {
@@ -63,23 +55,15 @@ const actions = {
 
       commit('popupClose', null, { root: true })
 
-      await dispatch(
-        'reload',
-        { name: 'entreprise', id: data.id },
-        { root: true }
-      )
-
-      dispatch(
-        'messageAdd',
-        { value: `l'entreprise a été mise à jour`, type: 'success' },
-        { root: true }
-      )
+      await dispatch('reload', { name: 'entreprise', id: data.id }, { root: true })
+
+      dispatch('messageAdd', { value: `l'entreprise a été mise à jour`, type: 'success' }, { root: true })
     } catch (e) {
       commit('popupMessageAdd', { value: e, type: 'error' }, { root: true })
     } finally {
       commit('loadingRemove', 'entrepriseUpdate', { root: true })
     }
-  }
+  },
 }
 
 const mutations = {
@@ -95,12 +79,12 @@ const mutations = {
 
   reset(state) {
     state.element = null
-  }
+  },
 }
 
 export default {
   namespaced: true,
   state,
   actions,
-  mutations
+  mutations,
 }
diff --git a/packages/ui/src/store/entreprise.test.js b/packages/ui/src/store/entreprise.test.js
index 5cf820624..0d809062c 100644
--- a/packages/ui/src/store/entreprise.test.js
+++ b/packages/ui/src/store/entreprise.test.js
@@ -6,13 +6,13 @@ import { vi, describe, expect, beforeEach, test } from 'vitest'
 
 vi.mock('../router', () => ({
   push: () => {},
-  replace: () => {}
+  replace: () => {},
 }))
 
 vi.mock('../api/entreprises', () => ({
   entreprise: vi.fn(),
   entrepriseCreer: vi.fn(),
-  entrepriseModifier: vi.fn()
+  entrepriseModifier: vi.fn(),
 }))
 
 console.info = vi.fn()
@@ -26,14 +26,14 @@ describe("état de l'entreprise sélectionnée", () => {
     entreprise.state = {
       element: null,
       metas: {
-        domaines: []
-      }
+        domaines: [],
+      },
     }
     actions = {
       pageError: vi.fn(),
       apiError: vi.fn(),
       reload: vi.fn(),
-      messageAdd: vi.fn()
+      messageAdd: vi.fn(),
     }
 
     mutations = {
@@ -43,13 +43,13 @@ describe("état de l'entreprise sélectionnée", () => {
       popupMessagesRemove: vi.fn(),
       popupClose: vi.fn(),
       popupMessageAdd: vi.fn(),
-      messageAdd: vi.fn()
+      messageAdd: vi.fn(),
     }
 
     store = createStore({
       modules: { entreprise },
       mutations,
-      actions
+      actions,
     })
 
     const app = createApp({})
@@ -73,9 +73,7 @@ describe("état de l'entreprise sélectionnée", () => {
   })
 
   test("retourne une erreur de l'api dans l'obtention de l'entreprise", async () => {
-    const apiMock = api.entreprise.mockRejectedValue(
-      new Error("l'api ne répond pas")
-    )
+    const apiMock = api.entreprise.mockRejectedValue(new Error("l'api ne répond pas"))
     await store.dispatch('entreprise/get', 71)
 
     expect(apiMock).toHaveBeenCalledWith({ id: 71 })
@@ -93,37 +91,35 @@ describe("état de l'entreprise sélectionnée", () => {
   test('ajoute une entreprise', async () => {
     const apiMock = api.entrepriseCreer.mockResolvedValue({
       id: 71,
-      nom: 'toto'
+      nom: 'toto',
     })
 
     await store.dispatch('entreprise/add', {
       legalSiren: '123456789',
-      paysId: 'fr'
+      paysId: 'fr',
     })
 
     expect(apiMock).toHaveBeenCalledWith({
       entreprise: {
         legalSiren: '123456789',
-        paysId: 'fr'
-      }
+        paysId: 'fr',
+      },
     })
     expect(mutations.popupClose).toHaveBeenCalled()
   })
 
   test("retourne une erreur si l'API retourne une erreur lors de l'ajout d'une entreprise", async () => {
-    const apiMock = api.entrepriseCreer.mockRejectedValue(
-      new Error('erreur api')
-    )
+    const apiMock = api.entrepriseCreer.mockRejectedValue(new Error('erreur api'))
     await store.dispatch('entreprise/add', {
       legalSiren: '123456789',
-      paysId: 'fr'
+      paysId: 'fr',
     })
 
     expect(apiMock).toHaveBeenCalledWith({
       entreprise: {
         legalSiren: '123456789',
-        paysId: 'fr'
-      }
+        paysId: 'fr',
+      },
     })
 
     expect(mutations.popupMessageAdd).toHaveBeenCalled()
@@ -132,37 +128,35 @@ describe("état de l'entreprise sélectionnée", () => {
   test('modifie une entreprise', async () => {
     const apiMock = api.entrepriseModifier.mockResolvedValue({
       id: 71,
-      nom: 'toto'
+      nom: 'toto',
     })
 
     await store.dispatch('entreprise/update', {
       legalSiren: '123456789',
-      paysId: 'fr'
+      paysId: 'fr',
     })
 
     expect(apiMock).toHaveBeenCalledWith({
       entreprise: {
         legalSiren: '123456789',
-        paysId: 'fr'
-      }
+        paysId: 'fr',
+      },
     })
     expect(mutations.popupClose).toHaveBeenCalled()
   })
 
   test("retourne une erreur si l'API retourne une erreur lors de la modification d'une entreprise", async () => {
-    const apiMock = api.entrepriseModifier.mockRejectedValue(
-      new Error('erreur api')
-    )
+    const apiMock = api.entrepriseModifier.mockRejectedValue(new Error('erreur api'))
     await store.dispatch('entreprise/update', {
       legalSiren: '123456789',
-      paysId: 'fr'
+      paysId: 'fr',
     })
 
     expect(apiMock).toHaveBeenCalledWith({
       entreprise: {
         legalSiren: '123456789',
-        paysId: 'fr'
-      }
+        paysId: 'fr',
+      },
     })
 
     expect(mutations.popupMessageAdd).toHaveBeenCalled()
diff --git a/packages/ui/src/store/entreprises.js b/packages/ui/src/store/entreprises.js
index af73bdbd1..2ba7e3081 100644
--- a/packages/ui/src/store/entreprises.js
+++ b/packages/ui/src/store/entreprises.js
@@ -10,25 +10,25 @@ const state = {
     {
       id: 'colonne',
       type: 'string',
-      values: ['nom', 'siren']
+      values: ['nom', 'siren'],
     },
     {
       id: 'ordre',
       type: 'string',
-      values: ['asc', 'desc']
+      values: ['asc', 'desc'],
     },
-    { id: 'noms', type: 'string' }
+    { id: 'noms', type: 'string' },
   ],
   params: {
     table: {
       page: 1,
       intervalle: 200,
       ordre: 'asc',
-      colonne: null
+      colonne: null,
     },
-    filtres: { noms: '' }
+    filtres: { noms: '' },
   },
-  initialized: false
+  initialized: false,
 }
 
 const actions = listeActionsBuild('entreprises', 'entreprises', entreprises)
@@ -39,5 +39,5 @@ export default {
   namespaced: true,
   state,
   actions,
-  mutations
+  mutations,
 }
diff --git a/packages/ui/src/store/index.js b/packages/ui/src/store/index.js
index c61e6928f..b10d78dd9 100644
--- a/packages/ui/src/store/index.js
+++ b/packages/ui/src/store/index.js
@@ -40,7 +40,7 @@ const modules = {
   titreActivite,
   titreActiviteEdition,
   titresActivites,
-  journaux
+  journaux,
 }
 
 const state = {
@@ -52,16 +52,12 @@ const state = {
   loading: [],
   fileLoading: {
     loaded: 0,
-    total: 0
-  }
+    total: 0,
+  },
 }
 
 function isOnPristineLandingPage(query) {
-  return (
-    query.centre === '46.227103425310766,2.499999999999991' &&
-    query.vueId === 'carte' &&
-    Object.keys(query).length === 3
-  )
+  return query.centre === '46.227103425310766,2.499999999999991' && query.vueId === 'carte' && Object.keys(query).length === 3
 }
 
 const actions = {
@@ -73,7 +69,7 @@ const actions = {
     commit('messageAdd', {
       id,
       type: 'error',
-      value: `Erreur : ${error}`
+      value: `Erreur : ${error}`,
     })
 
     setTimeout(() => {
@@ -87,12 +83,12 @@ const actions = {
     if (getters['user/user'] !== null) {
       commit('errorUpdate', {
         type: 'error',
-        value: `Erreur: page introuvable`
+        value: `Erreur: page introuvable`,
       })
     } else {
       commit('errorUpdate', {
         type: 'info',
-        value: `Vous n'avez pas accès à cette page, veuillez vous connecter.`
+        value: `Vous n'avez pas accès à cette page, veuillez vous connecter.`,
       })
     }
   },
@@ -144,7 +140,7 @@ const actions = {
       saveAs(document.fichierNouveau)
       dispatch('messageAdd', {
         type: 'success',
-        value: `fichier téléchargé : ${document.fichierNouveau.name}`
+        value: `fichier téléchargé : ${document.fichierNouveau.name}`,
       })
     } else {
       await dispatch('download', `/fichiers/${document.id}`)
@@ -157,7 +153,7 @@ const actions = {
 
       dispatch('messageAdd', {
         type: 'success',
-        value: `fichier téléchargé`
+        value: `fichier téléchargé`,
       })
     } catch (e) {
       dispatch('apiError', `téléchargement : ${path}, ${e}`)
@@ -168,11 +164,7 @@ const actions = {
   },
 
   async urlQueryUpdate({ rootState }, { params, definitions }) {
-    const { status, query } = urlQueryUpdate(
-      params,
-      rootState.route.query,
-      definitions
-    )
+    const { status, query } = urlQueryUpdate(params, rootState.route.query, definitions)
 
     if (status === 'updated') {
       await router.push({ query })
@@ -183,7 +175,7 @@ const actions = {
     if (isOnPristineLandingPage(query)) {
       history.replaceState({}, null, '/')
     }
-  }
+  },
 }
 
 const mutations = {
@@ -250,7 +242,7 @@ const mutations = {
   fileLoad(state, { loaded, total }) {
     state.fileLoading.loaded = loaded
     state.fileLoading.total = total
-  }
+  },
 }
 
 export { state, actions, mutations }
@@ -259,5 +251,5 @@ export default createStore({
   state,
   actions,
   mutations,
-  modules
+  modules,
 })
diff --git a/packages/ui/src/store/index.test.js b/packages/ui/src/store/index.test.js
index 7562f580b..01ec6cf86 100644
--- a/packages/ui/src/store/index.test.js
+++ b/packages/ui/src/store/index.test.js
@@ -22,8 +22,8 @@ vi.mock('./user', () => ({ default: { user: vi.fn() } }))
 vi.mock('./titre-activite', () => ({ default: { titreActivite: vi.fn() } }))
 vi.mock('./titre-activite-edition', () => ({
   default: {
-    titreActiviteEdition: vi.fn()
-  }
+    titreActiviteEdition: vi.fn(),
+  },
 }))
 vi.mock('./titres-activites', () => ({ default: { titresActivites: vi.fn() } }))
 vi.mock('./statistiques', () => ({ default: { statistiques: vi.fn() } }))
@@ -35,8 +35,8 @@ vi.mock('./journaux', () => ({ default: { journaux: vi.fn() } }))
 vi.mock('../router', () => ({
   default: {
     replace: vi.fn(),
-    push: vi.fn()
-  }
+    push: vi.fn(),
+  },
 }))
 
 console.info = vi.fn()
@@ -54,15 +54,15 @@ describe("état général de l'application", () => {
         namespaced: true,
         state: { element: null },
         actions: {
-          get: vi.fn()
-        }
+          get: vi.fn(),
+        },
       },
       route: {
         namespaced: true,
         state: {
-          query: {}
-        }
-      }
+          query: {},
+        },
+      },
     }
 
     state = {
@@ -75,15 +75,15 @@ describe("état général de l'application", () => {
       loaded: false,
       fileLoading: {
         loaded: 0,
-        total: 0
-      }
+        total: 0,
+      },
     }
 
     store = createStore({
       modules,
       state,
       actions,
-      mutations
+      mutations,
     })
 
     const app = createApp({})
@@ -123,7 +123,7 @@ describe("état général de l'application", () => {
       component: { _value: null },
       props: null,
       messages: [],
-      loading: false
+      loading: false,
     })
   })
 
@@ -159,8 +159,8 @@ describe("état général de l'application", () => {
       {
         id: 1487076708000,
         type: 'error',
-        value: 'Erreur : message'
-      }
+        value: 'Erreur : message',
+      },
     ])
   })
 
@@ -169,7 +169,7 @@ describe("état général de l'application", () => {
 
     expect(state.error).toEqual({
       type: 'error',
-      value: `Erreur: page introuvable`
+      value: `Erreur: page introuvable`,
     })
   })
 
@@ -242,7 +242,7 @@ describe("état général de l'application", () => {
   test("met à jour les paramètres d'url", async () => {
     await store.dispatch('urlQueryUpdate', {
       params: { typesIds: null },
-      definitions: [{ id: 'typesIds', type: 'strings', elements: [] }]
+      definitions: [{ id: 'typesIds', type: 'strings', elements: [] }],
     })
 
     expect(router.default.push).not.toHaveBeenCalled()
@@ -250,22 +250,22 @@ describe("état général de l'application", () => {
 
     await store.dispatch('urlQueryUpdate', {
       params: { typesIds: ['pr', 'ar'] },
-      definitions: [{ id: 'typesIds', type: 'strings', elements: [] }]
+      definitions: [{ id: 'typesIds', type: 'strings', elements: [] }],
     })
 
     expect(router.default.replace).toHaveBeenCalledWith({
-      query: { typesIds: 'pr,ar' }
+      query: { typesIds: 'pr,ar' },
     })
 
     store.state.route.query.typesIds = 'pr,ar'
 
     await store.dispatch('urlQueryUpdate', {
       params: { typesIds: ['cx'] },
-      definitions: [{ id: 'typesIds', type: 'strings', elements: [] }]
+      definitions: [{ id: 'typesIds', type: 'strings', elements: [] }],
     })
 
     expect(router.default.push).toHaveBeenCalledWith({
-      query: { typesIds: 'cx' }
+      query: { typesIds: 'cx' },
     })
   })
 })
@@ -280,8 +280,8 @@ describe("état général de l'application", () => {
       loading: [],
       fileLoading: {
         loaded: 0,
-        total: 0
-      }
+        total: 0,
+      },
     }
 
     localStorage.clear()
@@ -323,7 +323,7 @@ describe("état général de l'application", () => {
     store = createStore({ state, actions, mutations })
 
     await store.dispatch('downloadDocument', {
-      fichierNouveau: { name: 'document-titre' }
+      fichierNouveau: { name: 'document-titre' },
     })
 
     expect(fileSaver.saveAs).toHaveBeenCalled()
@@ -341,9 +341,7 @@ describe("état général de l'application", () => {
 
     await store.dispatch('download', `/${section}?${params}`)
 
-    expect(fileSaver.saveAs).toHaveBeenCalledWith(
-      `/apiUrl/${section}?${params}`
-    )
+    expect(fileSaver.saveAs).toHaveBeenCalledWith(`/apiUrl/${section}?${params}`)
     expect(messageAddMock).toHaveBeenCalled()
     expect(state.loading).toEqual([])
   })
diff --git a/packages/ui/src/store/journaux.js b/packages/ui/src/store/journaux.js
index 9c9e73054..6870b38ac 100644
--- a/packages/ui/src/store/journaux.js
+++ b/packages/ui/src/store/journaux.js
@@ -9,13 +9,13 @@ const state = {
     { id: 'intervalle', type: 'number', min: 10, max: 500 },
     { id: 'ordre', type: 'string', values: ['asc', 'desc'] },
     { id: 'recherche', type: 'string' },
-    { id: 'titreId', type: 'string' }
+    { id: 'titreId', type: 'string' },
   ],
   params: {
     table: { page: 1, intervalle: 50 },
-    filtres: { recherche: '' }
+    filtres: { recherche: '' },
   },
-  initialized: false
+  initialized: false,
 }
 
 const actions = listeActionsBuild('journaux', 'journaux', journaux)
diff --git a/packages/ui/src/store/meta.js b/packages/ui/src/store/meta.js
index d85c1893f..5ad58bebc 100644
--- a/packages/ui/src/store/meta.js
+++ b/packages/ui/src/store/meta.js
@@ -3,7 +3,7 @@ import { nextTick } from 'vue'
 
 const state = {
   elementsIndex: {},
-  elementsSelectedIndex: {}
+  elementsSelectedIndex: {},
 }
 
 const idsFind = (element, definition) =>
@@ -17,7 +17,7 @@ const idsFind = (element, definition) =>
 
 const getters = {
   elements: state => id => state.elementsIndex[id],
-  elementSelected: state => id => state.elementsSelectedIndex[id]
+  elementSelected: state => id => state.elementsSelectedIndex[id],
 }
 
 const actions = {
@@ -31,11 +31,7 @@ const actions = {
         commit('set', { id, elements })
 
         for (const colonne of definition.colonnes) {
-          if (
-            colonne.type === 'entities' &&
-            colonne.entities &&
-            !state.elementsIndex[colonne.entities]
-          ) {
+          if (colonne.type === 'entities' && colonne.entities && !state.elementsIndex[colonne.entities]) {
             const entities = await metasIndex[colonne.entities].get()
 
             commit('set', { id: colonne.entities, elements: entities })
@@ -56,7 +52,7 @@ const actions = {
         commit('elementSelectedSet', { id, element })
       })
     }
-  }
+  },
 }
 
 const mutations = {
@@ -72,9 +68,9 @@ const mutations = {
   elementSelectedSet(state, { id, element }) {
     state.elementsSelectedIndex = {
       ...state.elementsSelectedIndex,
-      [id]: element
+      [id]: element,
     }
-  }
+  },
 }
 
 export default {
@@ -82,5 +78,5 @@ export default {
   state,
   actions,
   mutations,
-  getters
+  getters,
 }
diff --git a/packages/ui/src/store/metas-definitions.js b/packages/ui/src/store/metas-definitions.js
index 0ec41b4a3..be10ec847 100644
--- a/packages/ui/src/store/metas-definitions.js
+++ b/packages/ui/src/store/metas-definitions.js
@@ -6,14 +6,10 @@ import {
   titresTypesDemarchesTypesEtapesTypes,
   etapesTypesDocumentsTypes,
   etapesTypesJustificatifsTypes,
-  titresTypesDemarchesTypesEtapesTypesJustificatifsTypes
+  titresTypesDemarchesTypesEtapesTypesJustificatifsTypes,
 } from '@/api/metas'
 
-import {
-  activitesTypes,
-  activitesTypesDocumentsTypes,
-  activitesTypesPays
-} from '@/api/metas-activites'
+import { activitesTypes, activitesTypesDocumentsTypes, activitesTypesPays } from '@/api/metas-activites'
 import { PaysList } from 'camino-common/src/static/pays'
 import { FREQUENCES_IDS } from 'camino-common/src/static/frequence'
 import { Domaines } from 'camino-common/src/static/domaines'
@@ -28,8 +24,7 @@ const labelGet = entity => (entity ? `${entity.id} - ${entity.nom}` : '')
 const metasIndex = {
   'titres-types': {
     get: titresTypes,
-    labelGet: titreType =>
-      `${titreType.id} - ${titreType.type.nom}- ${titreType.domaine.nom} `,
+    labelGet: titreType => `${titreType.id} - ${titreType.type.nom}- ${titreType.domaine.nom} `,
     nom: 'Domaines | Types des titres',
     colonnes: [
       { id: 'id', nom: 'Id' },
@@ -38,17 +33,16 @@ const metasIndex = {
         nom: 'Domaine',
         type: 'static',
         elements: Object.values(Domaines),
-        display: domaineId => `${domaineId} - ${Domaines[domaineId].nom}`
+        display: domaineId => `${domaineId} - ${Domaines[domaineId].nom}`,
       },
       {
         id: 'typeId',
         nom: 'Type',
         type: 'static',
         elements: Object.values(TitresTypesTypes),
-        display: titreTypeTypeId =>
-          `${titreTypeTypeId} - ${TitresTypesTypes[titreTypeTypeId].nom}`
-      }
-    ]
+        display: titreTypeTypeId => `${titreTypeTypeId} - ${TitresTypesTypes[titreTypeTypeId].nom}`,
+      },
+    ],
   },
   'titres-statuts': {
     get: () => sortedTitresStatuts,
@@ -62,10 +56,10 @@ const metasIndex = {
         id: 'couleur',
         nom: 'Couleur',
         type: Array,
-        elements: ['warning', 'neutral', 'success']
+        elements: ['warning', 'neutral', 'success'],
       },
-      { id: 'ordre', nom: 'Ordre', type: Number }
-    ]
+      { id: 'ordre', nom: 'Ordre', type: Number },
+    ],
   },
   'titre-types--titres-statuts': {
     get: () => titreTypesStatutsTitresPublicLecture,
@@ -75,17 +69,17 @@ const metasIndex = {
         id: 'titreTypeId',
         nom: 'Type de titre',
         type: 'entities',
-        entities: 'titres-types'
+        entities: 'titres-types',
       },
       {
         id: 'titreStatutId',
         nom: 'Statut de titre',
         type: 'entities',
-        entities: 'titres-statuts'
+        entities: 'titres-statuts',
       },
-      { id: 'publicLecture', nom: 'Public', type: Boolean, optional: true }
+      { id: 'publicLecture', nom: 'Public', type: Boolean, optional: true },
     ],
-    ids: ['titreTypeId', 'titreStatutId']
+    ids: ['titreTypeId', 'titreStatutId'],
   },
   'demarches-types': {
     get: demarchesTypes,
@@ -105,10 +99,10 @@ const metasIndex = {
         id: 'renouvelable',
         nom: 'Renouvelable',
         type: Boolean,
-        optional: true
+        optional: true,
       },
-      { id: 'travaux', nom: 'Travaux', type: Boolean, optional: true }
-    ]
+      { id: 'travaux', nom: 'Travaux', type: Boolean, optional: true },
+    ],
   },
   'phases-statuts': {
     get: () => phasesStatuts,
@@ -120,9 +114,9 @@ const metasIndex = {
         id: 'couleur',
         nom: 'Couleur',
         type: Array,
-        elements: ['warning', 'neutral', 'success', 'error']
-      }
-    ]
+        elements: ['warning', 'neutral', 'success', 'error'],
+      },
+    ],
   },
   'etapes-types': {
     get: etapesTypes,
@@ -139,34 +133,34 @@ const metasIndex = {
         nom: 'Date de fin',
         type: Date,
         class: ['min-width-12'],
-        optional: true
+        optional: true,
       },
       {
         id: 'fondamentale',
         nom: 'Fondamentale',
         type: Boolean,
-        optional: true
+        optional: true,
       },
       { id: 'unique', nom: 'Unique', type: Boolean, optional: true },
       {
         id: 'acceptationAuto',
         nom: 'Acceptation auto',
         type: Boolean,
-        optional: true
+        optional: true,
       },
       {
         id: 'publicLecture',
         nom: 'Lecture public',
         type: Boolean,
-        optional: true
+        optional: true,
       },
       {
         id: 'entrepriseLecture',
         nom: 'Lecture entreprises',
         type: Boolean,
-        optional: true
-      }
-    ]
+        optional: true,
+      },
+    ],
   },
   'titres-types--demarches-types--etapes-types': {
     get: titresTypesDemarchesTypesEtapesTypes,
@@ -176,24 +170,24 @@ const metasIndex = {
         id: 'titreTypeId',
         nom: 'Type de titre',
         type: 'entities',
-        entities: 'titres-types'
+        entities: 'titres-types',
       },
       {
         id: 'demarcheTypeId',
         nom: 'Type de démarche',
         type: 'entities',
-        entities: 'demarches-types'
+        entities: 'demarches-types',
       },
       {
         id: 'etapeTypeId',
         nom: "Type d'étape",
         type: 'entities',
-        entities: 'etapes-types'
+        entities: 'etapes-types',
       },
       { id: 'sections', nom: 'Sections', type: 'json', optional: true },
-      { id: 'ordre', nom: 'Ordre', type: Number }
+      { id: 'ordre', nom: 'Ordre', type: Number },
     ],
-    ids: ['titreTypeId', 'demarcheTypeId', 'etapeTypeId']
+    ids: ['titreTypeId', 'demarcheTypeId', 'etapeTypeId'],
   },
   'titres-types--demarches-types--etapes-types--justificatifs-types': {
     get: titresTypesDemarchesTypesEtapesTypesJustificatifsTypes,
@@ -203,30 +197,30 @@ const metasIndex = {
         id: 'titreTypeId',
         nom: 'Type de titre',
         type: 'entities',
-        entities: 'titres-types'
+        entities: 'titres-types',
       },
       {
         id: 'demarcheTypeId',
         nom: 'Type de démarche',
         type: 'entities',
-        entities: 'demarches-types'
+        entities: 'demarches-types',
       },
       {
         id: 'etapeTypeId',
         nom: "Type d'étape",
         type: 'entities',
-        entities: 'etapes-types'
+        entities: 'etapes-types',
       },
       {
         id: 'documentTypeId',
         nom: 'Type de justificatif',
         type: 'entities',
-        entities: 'documents-types'
+        entities: 'documents-types',
       },
       { id: 'optionnel', nom: 'Optionnel', type: Boolean, optional: true },
-      { id: 'description', nom: 'Description', type: String, optional: true }
+      { id: 'description', nom: 'Description', type: String, optional: true },
     ],
-    ids: ['titreTypeId', 'demarcheTypeId', 'etapeTypeId', 'documentTypeId']
+    ids: ['titreTypeId', 'demarcheTypeId', 'etapeTypeId', 'documentTypeId'],
   },
   'etapes-types--documents-types': {
     get: etapesTypesDocumentsTypes,
@@ -236,18 +230,18 @@ const metasIndex = {
         id: 'etapeTypeId',
         nom: "Type d'étape",
         type: 'entities',
-        entities: 'etapes-types'
+        entities: 'etapes-types',
       },
       {
         id: 'documentTypeId',
         nom: 'Type de documents',
         type: 'entities',
-        entities: 'documents-types'
+        entities: 'documents-types',
       },
       { id: 'optionnel', nom: 'Optionnel', type: Boolean, optional: true },
-      { id: 'description', nom: 'Description', type: String, optional: true }
+      { id: 'description', nom: 'Description', type: String, optional: true },
     ],
-    ids: ['etapeTypeId', 'documentTypeId']
+    ids: ['etapeTypeId', 'documentTypeId'],
   },
   'etapes-types--justificatifs-types': {
     get: etapesTypesJustificatifsTypes,
@@ -257,18 +251,18 @@ const metasIndex = {
         id: 'etapeTypeId',
         nom: "Type d'étape",
         type: 'entities',
-        entities: 'etapes-types'
+        entities: 'etapes-types',
       },
       {
         id: 'documentTypeId',
         nom: 'Type de justificatifs',
         type: 'entities',
-        entities: 'documents-types'
+        entities: 'documents-types',
       },
       { id: 'optionnel', nom: 'Optionnel', type: Boolean, optional: true },
-      { id: 'description', nom: 'Description', type: String, optional: true }
+      { id: 'description', nom: 'Description', type: String, optional: true },
     ],
-    ids: ['etapeTypeId', 'documentTypeId']
+    ids: ['etapeTypeId', 'documentTypeId'],
   },
   'documents-types': {
     get: documentsTypes,
@@ -277,8 +271,8 @@ const metasIndex = {
     colonnes: [
       { id: 'id', nom: 'Id' },
       { id: 'nom', nom: 'Nom', type: String },
-      { id: 'description', nom: 'Description', type: String, optional: true }
-    ]
+      { id: 'description', nom: 'Description', type: String, optional: true },
+    ],
   },
   'activites-types': {
     get: activitesTypes,
@@ -291,7 +285,7 @@ const metasIndex = {
         id: 'frequenceId',
         nom: 'Id la fréquence',
         type: Array,
-        elements: Object.values(FREQUENCES_IDS)
+        elements: Object.values(FREQUENCES_IDS),
       },
       { id: 'ordre', nom: 'Ordre', type: Number },
       {
@@ -299,17 +293,17 @@ const metasIndex = {
         nom: 'Description',
         type: String,
         optional: true,
-        class: ['min-width-12']
+        class: ['min-width-12'],
       },
       { id: 'sections', nom: 'Sections', type: 'json', optional: true },
       {
         id: 'dateDebut',
         nom: 'Date de début',
         type: Date,
-        class: ['min-width-12']
+        class: ['min-width-12'],
       },
-      { id: 'delaiMois', nom: 'Délai', type: Number }
-    ]
+      { id: 'delaiMois', nom: 'Délai', type: Number },
+    ],
   },
   'activites-statuts': {
     get: () => activitesStatuts,
@@ -321,9 +315,9 @@ const metasIndex = {
         id: 'couleur',
         nom: 'Couleur',
         type: Array,
-        elements: ['warning', 'neutral', 'success', 'error']
-      }
-    ]
+        elements: ['warning', 'neutral', 'success', 'error'],
+      },
+    ],
   },
 
   'activites-types--documents-types': {
@@ -334,17 +328,17 @@ const metasIndex = {
         id: 'activiteTypeId',
         nom: "Type d'activité",
         type: 'entities',
-        entities: 'activites-types'
+        entities: 'activites-types',
       },
       {
         id: 'documentTypeId',
         nom: 'Type de document',
         type: 'entities',
-        entities: 'documents-types'
+        entities: 'documents-types',
       },
-      { id: 'optionnel', nom: 'Optionnel', type: Boolean, optional: true }
+      { id: 'optionnel', nom: 'Optionnel', type: Boolean, optional: true },
     ],
-    ids: ['activiteTypeId', 'documentTypeId']
+    ids: ['activiteTypeId', 'documentTypeId'],
   },
 
   'activites-types--pays': {
@@ -355,37 +349,37 @@ const metasIndex = {
         id: 'activiteTypeId',
         nom: "Type d'activité",
         type: 'entities',
-        entities: 'activites-types'
+        entities: 'activites-types',
       },
       {
         id: 'paysId',
         nom: 'Pays',
         type: Array,
-        elements: Object.keys(PaysList)
-      }
+        elements: Object.keys(PaysList),
+      },
     ],
-    ids: ['activiteTypeId', 'paysId']
+    ids: ['activiteTypeId', 'paysId'],
   },
 
   titre: {
     nom: 'Titre',
-    linkName: 'meta-titre'
+    linkName: 'meta-titre',
   },
 
   demarche: {
     nom: 'Démarche',
-    linkName: 'meta-demarche'
+    linkName: 'meta-demarche',
   },
 
   etape: {
     nom: 'Étape',
-    linkName: 'meta-etape'
+    linkName: 'meta-etape',
   },
 
   activite: {
     nom: 'Activité',
-    linkName: 'meta-activite'
-  }
+    linkName: 'meta-activite',
+  },
 }
 
 export default metasIndex
diff --git a/packages/ui/src/store/metas.js b/packages/ui/src/store/metas.js
index bb379130c..f1143d666 100644
--- a/packages/ui/src/store/metas.js
+++ b/packages/ui/src/store/metas.js
@@ -4,17 +4,17 @@ const state = {
   total: 0,
   definitions: [
     { id: 'colonne', type: 'string', elements: ['id', 'nom'] },
-    { id: 'ordre', type: 'string', elements: ['asc', 'desc'] }
+    { id: 'ordre', type: 'string', elements: ['asc', 'desc'] },
   ],
   params: {
-    table: { ordre: 'asc', colonne: null }
-  }
+    table: { ordre: 'asc', colonne: null },
+  },
 }
 
 const actions = {
   async paramsSet({ commit }, { section, params }) {
     commit('paramsSet', { section, params })
-  }
+  },
 }
 
 const getters = {
@@ -22,11 +22,11 @@ const getters = {
     const elements = Object.keys(metasIndex).map(id => ({
       id,
       nom: metasIndex[id].nom,
-      linkName: metasIndex[id].linkName
+      linkName: metasIndex[id].linkName,
     }))
 
     return state.params.table.ordre === 'desc' ? elements.reverse() : elements
-  }
+  },
 }
 
 const mutations = {
@@ -44,7 +44,7 @@ const mutations = {
     Object.keys(params).forEach(id => {
       state.params[section][id] = params[id]
     })
-  }
+  },
 }
 
 export default {
@@ -52,5 +52,5 @@ export default {
   state,
   getters,
   actions,
-  mutations
+  mutations,
 }
diff --git a/packages/ui/src/store/titre-activite-edition.js b/packages/ui/src/store/titre-activite-edition.js
index 1b7434db3..97177185c 100644
--- a/packages/ui/src/store/titre-activite-edition.js
+++ b/packages/ui/src/store/titre-activite-edition.js
@@ -2,7 +2,7 @@ import { activite, activiteModifier } from '../api/titres-activites'
 import { documentsRequiredAdd } from '../utils/documents'
 
 const state = {
-  element: null
+  element: null,
 }
 
 const actions = {
@@ -32,17 +32,15 @@ const actions = {
         activite: {
           id: activite.id,
           contenu: activite.contenu,
-          documentIds: activite.documents
-            ?.filter(d => d.id !== d.type.id)
-            .map(({ id }) => id)
-        }
+          documentIds: activite.documents?.filter(d => d.id !== d.type.id).map(({ id }) => id),
+        },
       })
 
       await dispatch(
         'messageAdd',
         {
           value: `l'activité a été enregistrée`,
-          type: 'success'
+          type: 'success',
         },
         { root: true }
       )
@@ -56,11 +54,7 @@ const actions = {
   async documentInit({ state, commit, rootGetters }, documents) {
     const documentsTypes = state.element.type.documentsTypes
 
-    const newDocuments = documentsRequiredAdd(
-      documents,
-      documentsTypes,
-      rootGetters['user/userIsAdmin']
-    )
+    const newDocuments = documentsRequiredAdd(documents, documentsTypes, rootGetters['user/userIsAdmin'])
 
     commit('documentsSet', newDocuments)
   },
@@ -82,17 +76,14 @@ const actions = {
       'documentInit',
       state.element.documents.filter(d => d.id !== id)
     )
-  }
+  },
 }
 
 const mutations = {
   set(state, activite) {
     activite.contenu = activite.sections?.reduce((sections, s) => {
       sections[s.id] = s.elements.reduce((elements, e) => {
-        const value =
-          activite.contenu &&
-          activite.contenu[s.id] &&
-          activite.contenu[s.id][e.id]
+        const value = activite.contenu && activite.contenu[s.id] && activite.contenu[s.id][e.id]
 
         elements[e.id] = value || e.type !== 'checkboxes' ? value : []
 
@@ -111,12 +102,12 @@ const mutations = {
 
   reset(state) {
     state.element = null
-  }
+  },
 }
 
 export default {
   namespaced: true,
   actions,
   mutations,
-  state
+  state,
 }
diff --git a/packages/ui/src/store/titre-activite-edition.test.js b/packages/ui/src/store/titre-activite-edition.test.js
index 9f5409adc..e8ce3beef 100644
--- a/packages/ui/src/store/titre-activite-edition.test.js
+++ b/packages/ui/src/store/titre-activite-edition.test.js
@@ -6,7 +6,7 @@ import { vi, describe, expect, beforeEach, test } from 'vitest'
 
 vi.mock('../api/titres-activites', () => ({
   activiteModifier: vi.fn(),
-  activite: vi.fn()
+  activite: vi.fn(),
 }))
 console.info = vi.fn()
 
@@ -22,12 +22,12 @@ describe("état d'une activité", () => {
       reload: vi.fn(),
       messageAdd: vi.fn(),
       pageError: vi.fn(),
-      apiError: vi.fn()
+      apiError: vi.fn(),
     }
 
     mutations = {
       loadingAdd: vi.fn(),
-      loadingRemove: vi.fn()
+      loadingRemove: vi.fn(),
     }
 
     store = createStore({
@@ -36,11 +36,11 @@ describe("état d'une activité", () => {
         titre: {
           namespaced: true,
           state: { element: { id: 5 } },
-          mutations: {}
-        }
+          mutations: {},
+        },
       },
       mutations,
-      actions
+      actions,
     })
 
     const app = createApp({})
@@ -49,7 +49,7 @@ describe("état d'une activité", () => {
 
   test('enregistre une activité sur un titre', async () => {
     const apiMock = api.activiteModifier.mockResolvedValue({
-      activiteStatutId: 'enc'
+      activiteStatutId: 'enc',
     })
 
     await store.dispatch('titreActiviteEdition/update', {
@@ -58,8 +58,8 @@ describe("état d'une activité", () => {
       activiteStatutId: 'enc',
       documents: [
         { id: 'toto', desc: 'desc', type: { id: 'aaa' } },
-        { id: 'titi', type: { id: 'titi' } }
-      ]
+        { id: 'titi', type: { id: 'titi' } },
+      ],
     })
 
     expect(mutations.loadingRemove).toHaveBeenCalled()
@@ -68,24 +68,22 @@ describe("état d'une activité", () => {
       activite: {
         id: 27,
         contenu: [],
-        documentIds: ['toto']
-      }
+        documentIds: ['toto'],
+      },
     })
   })
 
   test("erreur dans l'api lors de l'enregistrement d'une activité", async () => {
-    const apiMock = api.activiteModifier.mockRejectedValue(
-      new Error("l'api ne répond pas")
-    )
+    const apiMock = api.activiteModifier.mockRejectedValue(new Error("l'api ne répond pas"))
     await store.dispatch('titreActiviteEdition/update', {
       id: 27,
       contenu: [],
-      activiteStatutId: 'dep'
+      activiteStatutId: 'dep',
     })
 
     expect(apiMock).toHaveBeenCalled()
     expect(apiMock).toHaveBeenCalledWith({
-      activite: { id: 27, contenu: [], documents: undefined }
+      activite: { id: 27, contenu: [], documents: undefined },
     })
     expect(actions.apiError).toHaveBeenCalled()
     expect(actions.messageAdd).not.toHaveBeenCalled()
@@ -96,7 +94,7 @@ describe("état d'une activité", () => {
       id: 27,
       contenu: [],
       activiteStatutId: 'dep',
-      sections: []
+      sections: [],
     })
 
     await store.dispatch('titreActiviteEdition/init', 27)
@@ -105,7 +103,7 @@ describe("état d'une activité", () => {
       id: 27,
       contenu: {},
       sections: [],
-      activiteStatutId: 'dep'
+      activiteStatutId: 'dep',
     })
 
     expect(mutations.loadingRemove).toHaveBeenCalled()
@@ -120,9 +118,7 @@ describe("état d'une activité", () => {
   })
 
   test("retourne une erreur de l'api dans l'obtention de l'activité", async () => {
-    const apiMock = api.activite.mockRejectedValue(
-      new Error("l'api ne répond pas")
-    )
+    const apiMock = api.activite.mockRejectedValue(new Error("l'api ne répond pas"))
     await store.dispatch('titreActiviteEdition/init', 'activite-id')
 
     expect(apiMock).toHaveBeenCalledWith({ id: 'activite-id' })
@@ -139,46 +135,42 @@ describe("état d'une activité", () => {
   test('ajoute un nouveau document', async () => {
     const type = { id: 'type-id', optionnel: false }
     store.state.titreActiviteEdition.element = {
-      type: { id: 'gpr', documentsTypes: [type] }
+      type: { id: 'gpr', documentsTypes: [type] },
     }
 
     await store.dispatch('titreActiviteEdition/documentAdd', {
-      document: { id: 'document-id', type }
+      document: { id: 'document-id', type },
     })
 
     expect(store.state.titreActiviteEdition.element.documents).toHaveLength(1)
-    expect(store.state.titreActiviteEdition.element.documents[0].id).toEqual(
-      'document-id'
-    )
+    expect(store.state.titreActiviteEdition.element.documents[0].id).toEqual('document-id')
   })
 
   test('remplace un document existant par un nouveau', async () => {
     const type = { id: 'type-id', optionnel: false }
     store.state.titreActiviteEdition.element = {
       documents: [{ id: 'document-id1' }],
-      type: { id: 'gpr', documentsTypes: [type] }
+      type: { id: 'gpr', documentsTypes: [type] },
     }
 
     await store.dispatch('titreActiviteEdition/documentAdd', {
       document: { id: 'document-id2', type },
-      idOld: 'document-id1'
+      idOld: 'document-id1',
     })
 
     expect(store.state.titreActiviteEdition.element.documents).toHaveLength(1)
-    expect(store.state.titreActiviteEdition.element.documents[0].id).toEqual(
-      'document-id2'
-    )
+    expect(store.state.titreActiviteEdition.element.documents[0].id).toEqual('document-id2')
   })
 
   test('supprime un document', async () => {
     const type = { id: 'type-id', optionnel: true }
     store.state.titreActiviteEdition.element = {
       documents: [{ id: 'document-id' }],
-      type: { id: 'gpr', documentsTypes: [type] }
+      type: { id: 'gpr', documentsTypes: [type] },
     }
 
     await store.dispatch('titreActiviteEdition/documentRemove', {
-      id: 'document-id'
+      id: 'document-id',
     })
 
     expect(store.state.titreActiviteEdition.element.documents).toHaveLength(0)
diff --git a/packages/ui/src/store/titre-activite.js b/packages/ui/src/store/titre-activite.js
index ce0b695b3..6e33ebf77 100644
--- a/packages/ui/src/store/titre-activite.js
+++ b/packages/ui/src/store/titre-activite.js
@@ -1,11 +1,7 @@
-import {
-  activite,
-  activiteDeposer,
-  activiteSupprimer
-} from '../api/titres-activites'
+import { activite, activiteDeposer, activiteSupprimer } from '../api/titres-activites'
 
 const state = {
-  element: null
+  element: null,
 }
 
 const actions = {
@@ -39,11 +35,7 @@ const actions = {
 
       await dispatch('reloadRoute', route)
 
-      dispatch(
-        'messageAdd',
-        { value: `l'activité à été supprimée`, type: 'success' },
-        { root: true }
-      )
+      dispatch('messageAdd', { value: `l'activité à été supprimée`, type: 'success' }, { root: true })
     } catch (e) {
       commit('popupMessageAdd', { value: e, type: 'error' }, { root: true })
     } finally {
@@ -69,17 +61,13 @@ const actions = {
 
       commit('popupClose', null, { root: true })
 
-      dispatch(
-        'messageAdd',
-        { value: `la demande a été déposée`, type: 'success' },
-        { root: true }
-      )
+      dispatch('messageAdd', { value: `la demande a été déposée`, type: 'success' }, { root: true })
     } catch (e) {
       commit('popupMessageAdd', { value: e, type: 'error' }, { root: true })
     } finally {
       commit('loadingRemove', 'titreActiviteDepose', { root: true })
     }
-  }
+  },
 }
 
 const mutations = {
@@ -89,12 +77,12 @@ const mutations = {
 
   reset(state) {
     state.element = null
-  }
+  },
 }
 
 export default {
   namespaced: true,
   actions,
   mutations,
-  state
+  state,
 }
diff --git a/packages/ui/src/store/titre-activite.test.js b/packages/ui/src/store/titre-activite.test.js
index 0a786560e..33b23c843 100644
--- a/packages/ui/src/store/titre-activite.test.js
+++ b/packages/ui/src/store/titre-activite.test.js
@@ -7,7 +7,7 @@ import { vi, describe, expect, beforeEach, test } from 'vitest'
 vi.mock('../api/titres-activites', () => ({
   activiteSupprimer: vi.fn(),
   activiteDeposer: vi.fn(),
-  activite: vi.fn()
+  activite: vi.fn(),
 }))
 console.info = vi.fn()
 
@@ -23,7 +23,7 @@ describe("état d'une activité", () => {
       reload: vi.fn(),
       messageAdd: vi.fn(),
       pageError: vi.fn(),
-      apiError: vi.fn()
+      apiError: vi.fn(),
     }
 
     mutations = {
@@ -32,7 +32,7 @@ describe("état d'une activité", () => {
       loadingRemove: vi.fn(),
       popupClose: vi.fn(),
       popupMessageAdd: vi.fn(),
-      popupLoad: vi.fn()
+      popupLoad: vi.fn(),
     }
 
     store = createStore({
@@ -41,11 +41,11 @@ describe("état d'une activité", () => {
         titre: {
           namespaced: true,
           state: { element: { id: 5 } },
-          mutations: { open: vi.fn() }
-        }
+          mutations: { open: vi.fn() },
+        },
       },
       mutations,
-      actions
+      actions,
     })
 
     const app = createApp({})
@@ -56,7 +56,7 @@ describe("état d'une activité", () => {
     api.activite.mockResolvedValue({
       id: 27,
       contenu: [],
-      activitesStatutId: 'dep'
+      activitesStatutId: 'dep',
     })
 
     await store.dispatch('titreActivite/get', 27)
@@ -64,7 +64,7 @@ describe("état d'une activité", () => {
     expect(store.state.titreActivite.element).toEqual({
       id: 27,
       contenu: [],
-      activitesStatutId: 'dep'
+      activitesStatutId: 'dep',
     })
 
     expect(mutations.loadingRemove).toHaveBeenCalled()
@@ -79,9 +79,7 @@ describe("état d'une activité", () => {
   })
 
   test("retourne une erreur de l'api dans l'obtention de l'activité", async () => {
-    const apiMock = api.activite.mockRejectedValue(
-      new Error("l'api ne répond pas")
-    )
+    const apiMock = api.activite.mockRejectedValue(new Error("l'api ne répond pas"))
     await store.dispatch('titreActivite/get', 'activite-id')
 
     expect(apiMock).toHaveBeenCalledWith({ id: 'activite-id' })
@@ -99,12 +97,12 @@ describe("état d'une activité", () => {
     api.activiteSupprimer.mockResolvedValue({ id: 71 })
     await store.dispatch('titreActivite/remove', {
       id: 71,
-      route: { name: 'titre', id: 'titre-id' }
+      route: { name: 'titre', id: 'titre-id' },
     })
 
     expect(actions.reload).toHaveBeenCalledWith(expect.anything(), {
       name: 'titre',
-      id: 'titre-id'
+      id: 'titre-id',
     })
     expect(api.activiteSupprimer).toHaveBeenCalled()
   })
@@ -113,11 +111,11 @@ describe("état d'une activité", () => {
     api.activiteSupprimer.mockResolvedValue({ id: 71 })
 
     await store.dispatch('titreActivite/remove', {
-      id: 71
+      id: 71,
     })
 
     expect(actions.reload).toHaveBeenCalledWith(expect.anything(), {
-      name: 'activites'
+      name: 'activites',
     })
 
     expect(api.activiteSupprimer).toHaveBeenCalled()
@@ -126,7 +124,7 @@ describe("état d'une activité", () => {
   test("retourne une erreur si l'api ne répond pas lors de la suppression d'une activité", async () => {
     api.activiteSupprimer.mockRejectedValue(new Error("l'api ne répond pas"))
     await store.dispatch('titreActivite/remove', {
-      id: 71
+      id: 71,
     })
 
     expect(api.activiteSupprimer).toHaveBeenCalled()
@@ -138,7 +136,7 @@ describe("état d'une activité", () => {
 
     await store.dispatch('titreActivite/depose', {
       id: 12,
-      route: null
+      route: null,
     })
 
     expect(mutations.loadingRemove).toHaveBeenCalled()
@@ -150,7 +148,7 @@ describe("état d'une activité", () => {
 
     await store.dispatch('titreActivite/depose', {
       id: 12,
-      route: null
+      route: null,
     })
 
     expect(mutations.loadingRemove).toHaveBeenCalled()
diff --git a/packages/ui/src/store/titre-creation.js b/packages/ui/src/store/titre-creation.js
index 08e93c120..6a755dd1a 100644
--- a/packages/ui/src/store/titre-creation.js
+++ b/packages/ui/src/store/titre-creation.js
@@ -7,23 +7,21 @@ const actions = {
       commit('loadingAdd', 'titreCreationAdd', { root: true })
 
       if (titreDemande.references) {
-        titreDemande.references = titreDemande.references.filter(
-          reference => reference.nom
-        )
+        titreDemande.references = titreDemande.references.filter(reference => reference.nom)
       }
 
       const data = await titreDemandeCreer({ titreDemande })
 
       await router.push({
         name: 'etape-edition',
-        params: { id: data.titreEtapeId }
+        params: { id: data.titreEtapeId },
       })
 
       dispatch(
         'messageAdd',
         {
           value: 'la demande de titre a été créée',
-          type: 'success'
+          type: 'success',
         },
         { root: true }
       )
@@ -32,10 +30,10 @@ const actions = {
     } finally {
       commit('loadingRemove', 'titreCreationAdd', { root: true })
     }
-  }
+  },
 }
 
 export default {
   namespaced: true,
-  actions
+  actions,
 }
diff --git a/packages/ui/src/store/titre-etape-edition.js b/packages/ui/src/store/titre-etape-edition.js
index 19133354d..a63c10a4d 100644
--- a/packages/ui/src/store/titre-etape-edition.js
+++ b/packages/ui/src/store/titre-etape-edition.js
@@ -1,25 +1,10 @@
-import {
-  documentEtapeFormat,
-  etapeEditFormat,
-  etapePointsFormat
-} from '../utils/titre-etape-edit'
+import { documentEtapeFormat, etapeEditFormat, etapePointsFormat } from '../utils/titre-etape-edit'
 import { etapeSaveFormat, pointsBuild } from '../utils/titre-etape-save'
 import { etapeHeritageBuild } from '../utils/titre-etape-heritage-build'
 
-import {
-  etape,
-  etapeCreer,
-  etapeHeritage,
-  etapeModifier,
-  titreEtapeEtapesTypes,
-  titreEtapeMetas
-} from '../api/titres-etapes'
+import { etape, etapeCreer, etapeHeritage, etapeModifier, titreEtapeEtapesTypes, titreEtapeMetas } from '../api/titres-etapes'
 import { documentsRequiredAdd } from '../utils/documents'
-import {
-  pointsImporter,
-  perimetreInformations,
-  titreEtapePerimetreInformations
-} from '../api/geojson'
+import { pointsImporter, perimetreInformations, titreEtapePerimetreInformations } from '../api/geojson'
 
 const state = {
   element: null,
@@ -29,10 +14,10 @@ const state = {
     entreprises: [],
     documentsTypes: [],
     sdomZonesDocumentTypeIds: [],
-    alertes: []
+    alertes: [],
   },
   heritageLoaded: false,
-  loaded: false
+  loaded: false,
 }
 
 const getters = {
@@ -48,25 +33,19 @@ const getters = {
       return []
     }
 
-    const documentsTypes = JSON.parse(
-      JSON.stringify(state.element.type.documentsTypes)
-    )
+    const documentsTypes = JSON.parse(JSON.stringify(state.element.type.documentsTypes))
 
     // si la démarche est mécanisée il faut ajouter des documents obligatoires
     if (state.element.contenu && state.element.contenu.arm) {
-      documentsTypes
-        .filter(dt => ['doe', 'dep'].includes(dt.id))
-        .forEach(dt => (dt.optionnel = !state.element.contenu.arm.mecanise))
+      documentsTypes.filter(dt => ['doe', 'dep'].includes(dt.id)).forEach(dt => (dt.optionnel = !state.element.contenu.arm.mecanise))
     }
 
     if (state.metas.sdomZonesDocumentTypeIds?.length) {
-      documentsTypes
-        .filter(dt => state.metas.sdomZonesDocumentTypeIds.includes(dt.id))
-        .forEach(dt => (dt.optionnel = false))
+      documentsTypes.filter(dt => state.metas.sdomZonesDocumentTypeIds.includes(dt.id)).forEach(dt => (dt.optionnel = false))
     }
 
     return documentsTypes
-  }
+  },
 }
 
 const actions = {
@@ -91,14 +70,13 @@ const actions = {
       if (id) {
         await dispatch('dateUpdate', { date: state.element.date })
 
-        const { documentTypeIds, alertes } =
-          await titreEtapePerimetreInformations({
-            titreEtapeId: id
-          })
+        const { documentTypeIds, alertes } = await titreEtapePerimetreInformations({
+          titreEtapeId: id,
+        })
 
         commit('metasSet', {
           sdomZonesDocumentTypeIds: documentTypeIds,
-          alertes
+          alertes,
         })
 
         await dispatch('documentInit', state.element.documents)
@@ -118,7 +96,7 @@ const actions = {
 
       const metas = await titreEtapeMetas({
         titreDemarcheId,
-        id
+        id,
       })
 
       commit('metasSet', metas)
@@ -135,7 +113,7 @@ const actions = {
       const metas = await titreEtapeEtapesTypes({
         id: state.element?.id,
         date,
-        titreDemarcheId: state.metas.demarche.id
+        titreDemarcheId: state.metas.demarche.id,
       })
 
       commit('metasSet', { etapesTypes: metas })
@@ -155,7 +133,7 @@ const actions = {
       const data = await etapeHeritage({
         titreDemarcheId: state.metas.demarche.id,
         date: state.element.date,
-        typeId
+        typeId,
       })
 
       const apiEtape = etapeEditFormat(data)
@@ -167,10 +145,10 @@ const actions = {
       const { alertes } = await perimetreInformations({
         points: [],
         demarcheId: state.metas.demarche.id,
-        etapeTypeId: typeId
+        etapeTypeId: typeId,
       })
       commit('metasSet', {
-        alertes
+        alertes,
       })
 
       commit('heritageLoaded', true)
@@ -178,7 +156,7 @@ const actions = {
       dispatch('apiError', e, { root: true })
     } finally {
       commit('loadingRemove', 'titreEtapeHeritageGet', {
-        root: true
+        root: true,
       })
     }
   },
@@ -187,11 +165,7 @@ const actions = {
     if (!state.element.type) {
       commit('documentsSet', [])
     } else {
-      documents = documentsRequiredAdd(
-        documents,
-        getters.documentsTypes,
-        rootGetters['user/userIsAdmin']
-      )
+      documents = documentsRequiredAdd(documents, getters.documentsTypes, rootGetters['user/userIsAdmin'])
 
       commit('documentsSet', documents)
     }
@@ -242,13 +216,12 @@ const actions = {
     try {
       commit('loadingAdd', 'pointsImport', { root: true })
 
-      const { points, surface, documentTypeIds, alertes } =
-        await pointsImporter({
-          file,
-          geoSystemeId,
-          demarcheId: state.metas.demarche.id,
-          etapeTypeId: state.element.type.id
-        })
+      const { points, surface, documentTypeIds, alertes } = await pointsImporter({
+        file,
+        geoSystemeId,
+        demarcheId: state.metas.demarche.id,
+        etapeTypeId: state.element.type.id,
+      })
       const etape = etapePointsFormat(state.element, points)
       // pour modifier la surface, on doit désactiver l’héritage
       etape.heritageProps.surface.actif = false
@@ -257,7 +230,7 @@ const actions = {
 
       commit('metasSet', {
         sdomZonesDocumentTypeIds: documentTypeIds,
-        alertes
+        alertes,
       })
       await dispatch('documentInit', state.element.documents)
       commit('popupClose', null, { root: true })
@@ -265,7 +238,7 @@ const actions = {
         'messageAdd',
         {
           value: `${points.length} points ont été importés avec succès`,
-          type: 'success'
+          type: 'success',
         },
         { root: true }
       )
@@ -280,28 +253,19 @@ const actions = {
     try {
       commit('loadingAdd', 'surfaceRefresh', { root: true })
 
-      if (
-        etape.geoSystemeIds &&
-        etape.geoSystemeIds.length &&
-        etape.groupes.length
-      ) {
-        const points = pointsBuild(
-          etape.groupes,
-          etape.geoSystemeIds,
-          etape.geoSystemeOpposableId || etape.geoSystemeIds[0]
-        )
-        const { surface, documentTypeIds, alertes } =
-          await perimetreInformations({
-            points,
-            demarcheId: state.metas.demarche.id,
-            etapeTypeId: etape.type.id
-          })
+      if (etape.geoSystemeIds && etape.geoSystemeIds.length && etape.groupes.length) {
+        const points = pointsBuild(etape.groupes, etape.geoSystemeIds, etape.geoSystemeOpposableId || etape.geoSystemeIds[0])
+        const { surface, documentTypeIds, alertes } = await perimetreInformations({
+          points,
+          demarcheId: state.metas.demarche.id,
+          etapeTypeId: etape.type.id,
+        })
         state.element.surface = surface
         commit('set', state.element)
 
         commit('metasSet', {
           sdomZonesDocumentTypeIds: documentTypeIds,
-          alertes
+          alertes,
         })
         await dispatch('documentInit', state.element.documents)
 
@@ -310,7 +274,7 @@ const actions = {
           'messageAdd',
           {
             value: `la surface a été recalculée à partir du périmètre`,
-            type: 'success'
+            type: 'success',
           },
           { root: true }
         )
@@ -319,7 +283,7 @@ const actions = {
           'messageAdd',
           {
             value: `la surface ne peut-être calculée car le périmètre est invalide`,
-            type: 'warning'
+            type: 'warning',
           },
           { root: true }
         )
@@ -333,7 +297,7 @@ const actions = {
 
   entrepriseDocumentAdd({ commit }, { entrepriseId, document }) {
     commit('entrepriseDocumentAdd', { entrepriseId, document })
-  }
+  },
 }
 
 const mutations = {
@@ -357,7 +321,7 @@ const mutations = {
       entreprises: [],
       documentsTypes: [],
       sdomZonesDocumentTypeIds: [],
-      alertes: []
+      alertes: [],
     }
     state.heritageLoaded = false
     state.loaded = false
@@ -382,9 +346,7 @@ const mutations = {
   },
 
   entrepriseDocumentAdd(state, { entrepriseId, document }) {
-    const entreprise = state.metas.entreprises.find(
-      ({ id }) => id === entrepriseId
-    )
+    const entreprise = state.metas.entreprises.find(({ id }) => id === entrepriseId)
 
     entreprise.documents.push(document)
     state.element.justificatifs.push({ id: document.id })
@@ -392,7 +354,7 @@ const mutations = {
 
   documentsSet(state, documents) {
     state.element.documents = documents
-  }
+  },
 }
 
 export default {
@@ -400,5 +362,5 @@ export default {
   state,
   getters,
   actions,
-  mutations
+  mutations,
 }
diff --git a/packages/ui/src/store/titre-etape-edition.test.js b/packages/ui/src/store/titre-etape-edition.test.js
index ed4bf9a88..e66c8b8a3 100644
--- a/packages/ui/src/store/titre-etape-edition.test.js
+++ b/packages/ui/src/store/titre-etape-edition.test.js
@@ -13,7 +13,7 @@ import {
   titreEtapeHeritageRes1,
   titreEtapeHeritageRes2,
   titreEtapeHeritage2,
-  titreEtapeEtapesTypes
+  titreEtapeEtapesTypes,
 } from './__mocks__/titre-etape'
 
 vi.mock('../api/titres-etapes', () => ({
@@ -23,7 +23,7 @@ vi.mock('../api/titres-etapes', () => ({
   titreEtapeEtapesTypes: vi.fn(),
   etapeCreer: vi.fn(),
   etapeModifier: vi.fn(),
-  etapeSupprimer: vi.fn()
+  etapeSupprimer: vi.fn(),
 }))
 
 console.info = vi.fn()
@@ -40,10 +40,10 @@ describe('étapes', () => {
         demarche: {},
         etapesTypes: [],
         substances: [],
-        entreprises: []
+        entreprises: [],
       },
       heritageLoaded: false,
-      loaded: false
+      loaded: false,
     }
 
     actions = {
@@ -51,7 +51,7 @@ describe('étapes', () => {
       apiError: vi.fn(),
       reload: vi.fn(),
       messageAdd: vi.fn(),
-      dateUpdate: vi.fn()
+      dateUpdate: vi.fn(),
     }
 
     mutations = {
@@ -61,7 +61,7 @@ describe('étapes', () => {
       popupLoad: vi.fn(),
       popupMessagesRemove: vi.fn(),
       popupClose: vi.fn(),
-      popupMessageAdd: vi.fn()
+      popupMessageAdd: vi.fn(),
     }
 
     store = createStore({
@@ -69,8 +69,8 @@ describe('étapes', () => {
       mutations,
       modules: {
         titreEtapeEdition,
-        titre: { namespaced: true, mutations: { open: vi.fn() } }
-      }
+        titre: { namespaced: true, mutations: { open: vi.fn() } },
+      },
     })
 
     const app = createApp({})
@@ -79,18 +79,16 @@ describe('étapes', () => {
 
   test('récupère les métas pour éditer une étape', async () => {
     const apiMockMetas = api.titreEtapeMetas.mockResolvedValue(titreEtapeMetas)
-    const apiMockEtapesTypes = api.titreEtapeEtapesTypes.mockResolvedValue(
-      titreEtapeEtapesTypes
-    )
+    const apiMockEtapesTypes = api.titreEtapeEtapesTypes.mockResolvedValue(titreEtapeEtapesTypes)
     const apiMockEtape = api.etape.mockResolvedValue({
       id: 'etape-id',
       titreDemarcheId: 'demarche-id',
-      date: '2020-01-01'
+      date: '2020-01-01',
     })
 
     await store.dispatch('titreEtapeEdition/init', {
       id: 'etape-id',
-      titreDemarcheId: 'demarche-id'
+      titreDemarcheId: 'demarche-id',
     })
 
     expect(apiMockMetas).toHaveBeenCalled()
@@ -105,12 +103,12 @@ describe('étapes', () => {
     const apiMockEtape = api.etape.mockResolvedValue({
       id: 'etape-id',
       titreDemarcheId: 'demarche-id',
-      date: '2020-01-01'
+      date: '2020-01-01',
     })
 
     await store.dispatch('titreEtapeEdition/init', {
       id: 'etape-id',
-      titreDemarcheId: 'demarche-id'
+      titreDemarcheId: 'demarche-id',
     })
 
     expect(apiMockEtape).toHaveBeenCalled()
@@ -121,7 +119,7 @@ describe('étapes', () => {
     const apiMockMetas = api.titreEtapeMetas.mockResolvedValue(titreEtapeMetas)
 
     await store.dispatch('titreEtapeEdition/init', {
-      titreDemarcheId: 'demarche-id'
+      titreDemarcheId: 'demarche-id',
     })
 
     expect(apiMockMetas).toHaveBeenCalled()
@@ -130,9 +128,7 @@ describe('étapes', () => {
   })
 
   test("retourne une erreur si l'api ne répond pas", async () => {
-    const apiMock = api.titreEtapeMetas.mockRejectedValue(
-      new Error("erreur de l'api")
-    )
+    const apiMock = api.titreEtapeMetas.mockRejectedValue(new Error("erreur de l'api"))
 
     await store.dispatch('titreEtapeEdition/init', { etape: {} })
 
@@ -147,17 +143,15 @@ describe('étapes', () => {
       typeId: 'etape-type-id',
       incertitudes: {},
       date: '2020-01-02',
-      titreDemarcheId: 'demarche-id'
+      titreDemarcheId: 'demarche-id',
     }
 
     store.state.titreEtapeEdition.metas.demarche = { id: 'demarche-id' }
-    store.state.titreEtapeEdition.metas.etapesTypes = [
-      { id: 'etape-type-id', documentsTypes: [], justificatifsTypes: [] }
-    ]
+    store.state.titreEtapeEdition.metas.etapesTypes = [{ id: 'etape-type-id', documentsTypes: [], justificatifsTypes: [] }]
 
     const apiMock1 = api.etapeHeritage.mockResolvedValue(titreEtapeHeritageRes1)
     await store.dispatch('titreEtapeEdition/heritageGet', {
-      typeId: 'etape-type-id'
+      typeId: 'etape-type-id',
     })
 
     expect(apiMock1).toHaveBeenCalled()
@@ -165,7 +159,7 @@ describe('étapes', () => {
 
     const apiMock2 = api.etapeHeritage.mockResolvedValue(titreEtapeHeritageRes1)
     await store.dispatch('titreEtapeEdition/heritageGet', {
-      typeId: 'etape-type-id'
+      typeId: 'etape-type-id',
     })
 
     expect(apiMock2).toHaveBeenCalled()
@@ -176,16 +170,16 @@ describe('étapes', () => {
       typeId: 'etape-type-id',
       incertitudes: {},
       titreDemarcheId: 'demarche-id',
-      heritageProps: {}
+      heritageProps: {},
     }
 
     const apiMock3 = api.etapeHeritage.mockResolvedValue({
-      type: { id: 'new-etape-type-id' }
+      type: { id: 'new-etape-type-id' },
     })
     await store.dispatch('titreEtapeEdition/heritageGet', {
       typeId: 'etape-type-id',
       titreDemarcheId: 'demarche-id',
-      date: '2020-01-02'
+      date: '2020-01-02',
     })
 
     expect(apiMock3).toHaveBeenCalled()
@@ -195,16 +189,16 @@ describe('étapes', () => {
       statutId: '',
       titreDemarcheId: 'demarche-id',
       type: {
-        id: 'new-etape-type-id'
+        id: 'new-etape-type-id',
       },
-      documents: []
+      documents: [],
     })
 
     const apiMock4 = api.etapeHeritage.mockResolvedValue(titreEtapeHeritageRes2)
     await store.dispatch('titreEtapeEdition/heritageGet', {
       typeId: 'etape-type-id',
       titreDemarcheId: 'demarche-id',
-      date: '2020-01-02'
+      date: '2020-01-02',
     })
 
     expect(apiMock4).toHaveBeenCalled()
@@ -216,7 +210,7 @@ describe('étapes', () => {
     await store.dispatch('titreEtapeEdition/heritageGet', {
       typeId: 'etape-type-id',
       titreDemarcheId: 'demarche-id',
-      date: '2020-01-02'
+      date: '2020-01-02',
     })
 
     expect(actions.apiError).toHaveBeenCalled()
@@ -225,7 +219,7 @@ describe('étapes', () => {
   test("retourne une erreur si l'API retourne une erreur lors de la récupération des etapesTypes", async () => {
     api.titreEtapeEtapesTypes.mockRejectedValue(new Error('erreur api'))
     await store.dispatch('titreEtapeEdition/dateUpdate', {
-      date: '2020-01-02'
+      date: '2020-01-02',
     })
 
     expect(actions.pageError).toHaveBeenCalled()
@@ -238,8 +232,8 @@ describe('étapes', () => {
       etape: {
         nom: 'champs',
         incertitudes: {},
-        type: {}
-      }
+        type: {},
+      },
     })
 
     store.commit('titreEtapeEdition/reset')
@@ -251,7 +245,7 @@ describe('étapes', () => {
     api.etapeCreer.mockRejectedValue(new Error('erreur api'))
     await store.dispatch('titreEtapeEdition/upsert', {
       nom: 'champs',
-      incertitudes: {}
+      incertitudes: {},
     })
 
     expect(actions.apiError).toHaveBeenCalled()
@@ -265,8 +259,8 @@ describe('étapes', () => {
         id: 14,
         nom: 'champs',
         incertitudes: {},
-        type: {}
-      }
+        type: {},
+      },
     })
   })
 
@@ -276,8 +270,8 @@ describe('étapes', () => {
       etape: {
         id: 14,
         nom: 'champs',
-        incertitudes: {}
-      }
+        incertitudes: {},
+      },
     })
 
     expect(actions.apiError).toHaveBeenCalled()
@@ -287,14 +281,14 @@ describe('étapes', () => {
     const type = { id: 'type-id', optionnel: false }
     store.state.titreEtapeEdition.element = {
       documents: [],
-      type: { id: 'mfr', documentsTypes: [type] }
+      type: { id: 'mfr', documentsTypes: [type] },
     }
 
     store.state.titreEtapeEdition.metas = {
-      etapesTypes: [{ id: 'mfr' }]
+      etapesTypes: [{ id: 'mfr' }],
     }
     await store.dispatch('titreEtapeEdition/documentAdd', {
-      document: { id: 'document-id', type }
+      document: { id: 'document-id', type },
     })
 
     expect(store.state.titreEtapeEdition.element.documents).toHaveLength(1)
@@ -304,21 +298,19 @@ describe('étapes', () => {
     const type = { id: 'type-id', optionnel: false }
     store.state.titreEtapeEdition.element = {
       documents: [{ id: 'document-id1' }],
-      type: { id: 'mfr', documentsTypes: [type] }
+      type: { id: 'mfr', documentsTypes: [type] },
     }
 
     store.state.titreEtapeEdition.metas = {
-      etapesTypes: [{ id: 'mfr' }]
+      etapesTypes: [{ id: 'mfr' }],
     }
     await store.dispatch('titreEtapeEdition/documentAdd', {
       document: { id: 'document-id2', type },
-      idOld: 'document-id1'
+      idOld: 'document-id1',
     })
 
     expect(store.state.titreEtapeEdition.element.documents).toHaveLength(1)
-    expect(store.state.titreEtapeEdition.element.documents[0].id).toEqual(
-      'document-id2'
-    )
+    expect(store.state.titreEtapeEdition.element.documents[0].id).toEqual('document-id2')
   })
 
   test('supprime un document', async () => {
@@ -326,21 +318,19 @@ describe('étapes', () => {
     store.state.titreEtapeEdition.element = {
       documents: [
         { id: 'document-id1', type, typeId: type.id },
-        { id: 'document-id2', type, typeId: type.id }
+        { id: 'document-id2', type, typeId: type.id },
       ],
-      type: { id: 'mfr', documentsTypes: [type] }
+      type: { id: 'mfr', documentsTypes: [type] },
     }
 
     store.state.titreEtapeEdition.metas = {
-      etapesTypes: [{ id: 'mfr' }]
+      etapesTypes: [{ id: 'mfr' }],
     }
     await store.dispatch('titreEtapeEdition/documentRemove', {
-      id: 'document-id2'
+      id: 'document-id2',
     })
 
     expect(store.state.titreEtapeEdition.element.documents).toHaveLength(1)
-    expect(store.state.titreEtapeEdition.element.documents[0].id).toEqual(
-      'document-id1'
-    )
+    expect(store.state.titreEtapeEdition.element.documents[0].id).toEqual('document-id1')
   })
 })
diff --git a/packages/ui/src/store/titre-etape.js b/packages/ui/src/store/titre-etape.js
index b4eb453ea..b74ab195f 100644
--- a/packages/ui/src/store/titre-etape.js
+++ b/packages/ui/src/store/titre-etape.js
@@ -1,7 +1,7 @@
 import { etape, etapeDeposer, etapeSupprimer } from '../api/titres-etapes'
 
 const stateInitial = {
-  element: null
+  element: null,
 }
 
 const state = JSON.parse(JSON.stringify(stateInitial))
@@ -35,11 +35,7 @@ const actions = {
       await etapeDeposer({ id: etapeId })
 
       commit('popupClose', null, { root: true })
-      dispatch(
-        'messageAdd',
-        { value: `la demande a été déposée`, type: 'success' },
-        { root: true }
-      )
+      dispatch('messageAdd', { value: `la demande a été déposée`, type: 'success' }, { root: true })
     } catch (e) {
       commit('popupMessageAdd', { value: e, type: 'error' }, { root: true })
     } finally {
@@ -56,28 +52,24 @@ const actions = {
 
       commit('popupClose', null, { root: true })
       await dispatch('reload', { name: 'titre', id: data.slug }, { root: true })
-      dispatch(
-        'messageAdd',
-        { value: `le titre a été mis à jour`, type: 'success' },
-        { root: true }
-      )
+      dispatch('messageAdd', { value: `le titre a été mis à jour`, type: 'success' }, { root: true })
     } catch (e) {
       commit('popupMessageAdd', { value: e, type: 'error' }, { root: true })
     } finally {
       commit('loadingRemove', 'titreEtapeRemove', { root: true })
     }
-  }
+  },
 }
 
 const mutations = {
   set(state, { etape }) {
     state.element = etape
-  }
+  },
 }
 
 export default {
   namespaced: true,
   state,
   actions,
-  mutations
+  mutations,
 }
diff --git a/packages/ui/src/store/titre-etape.test.js b/packages/ui/src/store/titre-etape.test.js
index b18ba853e..c712c37bb 100644
--- a/packages/ui/src/store/titre-etape.test.js
+++ b/packages/ui/src/store/titre-etape.test.js
@@ -7,7 +7,7 @@ import { vi, describe, expect, beforeEach, test } from 'vitest'
 vi.mock('../api/titres-etapes', () => ({
   etape: vi.fn(),
   etapeDeposer: vi.fn(),
-  etapeSupprimer: vi.fn()
+  etapeSupprimer: vi.fn(),
 }))
 
 console.info = vi.fn()
@@ -19,14 +19,14 @@ describe('étapes', () => {
 
   beforeEach(() => {
     titreEtape.state = {
-      element: null
+      element: null,
     }
 
     actions = {
       pageError: vi.fn(),
       apiError: vi.fn(),
       reload: vi.fn(),
-      messageAdd: vi.fn()
+      messageAdd: vi.fn(),
     }
 
     mutations = {
@@ -37,7 +37,7 @@ describe('étapes', () => {
       fileLoad: vi.fn(),
       popupMessagesRemove: vi.fn(),
       popupClose: vi.fn(),
-      popupMessageAdd: vi.fn()
+      popupMessageAdd: vi.fn(),
     }
 
     store = createStore({
@@ -45,8 +45,8 @@ describe('étapes', () => {
       mutations,
       modules: {
         titreEtape,
-        titre: { namespaced: true, mutations: { open: vi.fn() } }
-      }
+        titre: { namespaced: true, mutations: { open: vi.fn() } },
+      },
     })
 
     const app = createApp({})
@@ -86,9 +86,7 @@ describe('étapes', () => {
   })
 
   test("retourne une erreur si l'API retourne une erreur lors du dépot d'une étape", async () => {
-    const apiMock = api.etapeDeposer.mockRejectedValue(
-      new Error("erreur de l'api")
-    )
+    const apiMock = api.etapeDeposer.mockRejectedValue(new Error("erreur de l'api"))
     await store.dispatch('titreEtape/depose', 14)
 
     expect(apiMock).toHaveBeenCalledWith({ id: 14 })
@@ -104,9 +102,7 @@ describe('étapes', () => {
   })
 
   test("retourne une erreur si l'API retourne une erreur lors de la suppression d'une étape", async () => {
-    const apiMock = api.etapeSupprimer.mockRejectedValue(
-      new Error("erreur de l'api")
-    )
+    const apiMock = api.etapeSupprimer.mockRejectedValue(new Error("erreur de l'api"))
     await store.dispatch('titreEtape/remove', 14)
 
     expect(apiMock).toHaveBeenCalledWith({ id: 14 })
diff --git a/packages/ui/src/store/titre.js b/packages/ui/src/store/titre.js
index 1ba2f89f8..958f53aa9 100644
--- a/packages/ui/src/store/titre.js
+++ b/packages/ui/src/store/titre.js
@@ -9,9 +9,9 @@ const state = {
   opened: {
     etapes: {},
     activites: {},
-    travaux: {}
+    travaux: {},
   },
-  tabId: 'demarches'
+  tabId: 'demarches',
 }
 
 const getters = {
@@ -33,14 +33,7 @@ const getters = {
         tabs.push({ id: 'activites', nom: 'Activités' })
       }
 
-      if (
-        getters.travaux.length ||
-        canCreateTravaux(
-          rootState.user.element,
-          state.element.typeId,
-          state.element.administrations
-        )
-      ) {
+      if (getters.travaux.length || canCreateTravaux(rootState.user.element, state.element.typeId, state.element.administrations)) {
         tabs.push({ id: 'travaux', nom: 'Travaux' })
       }
     }
@@ -58,7 +51,7 @@ const getters = {
 
   travaux(state) {
     return state.element?.demarches?.filter(d => d.type.travaux) || []
-  }
+  },
 }
 
 const actions = {
@@ -96,7 +89,7 @@ const actions = {
         'messageAdd',
         {
           value: 'le titre a été créé',
-          type: 'success'
+          type: 'success',
         },
         { root: true }
       )
@@ -117,11 +110,7 @@ const actions = {
 
       commit('popupClose', null, { root: true })
       await dispatch('reload', { name: 'titre', id: data.slug }, { root: true })
-      dispatch(
-        'messageAdd',
-        { value: 'le titre a été mis à jour', type: 'success' },
-        { root: true }
-      )
+      dispatch('messageAdd', { value: 'le titre a été mis à jour', type: 'success' }, { root: true })
     } catch (e) {
       commit('popupMessageAdd', { value: e, type: 'error' }, { root: true })
     } finally {
@@ -142,7 +131,7 @@ const actions = {
         'messageAdd',
         {
           value: `le titre a été supprimé`,
-          type: 'success'
+          type: 'success',
         },
         { root: true }
       )
@@ -167,7 +156,7 @@ const actions = {
         'messageAdd',
         {
           value: `Vous êtes ${abonner ? 'abonné' : 'désabonné'} à ce titre`,
-          type: 'success'
+          type: 'success',
         },
         { root: true }
       )
@@ -176,7 +165,7 @@ const actions = {
     } finally {
       commit('loadingRemove', 'titreSubscribe', { root: true })
     }
-  }
+  },
 }
 
 const mutations = {
@@ -208,7 +197,7 @@ const mutations = {
 
   openTab(state, tabId) {
     state.tabId = tabId
-  }
+  },
 }
 
 export default {
@@ -216,5 +205,5 @@ export default {
   state,
   actions,
   mutations,
-  getters
+  getters,
 }
diff --git a/packages/ui/src/store/titre.test.js b/packages/ui/src/store/titre.test.js
index a03809e0c..f252695c2 100644
--- a/packages/ui/src/store/titre.test.js
+++ b/packages/ui/src/store/titre.test.js
@@ -5,7 +5,7 @@ import { createStore } from 'vuex'
 import { vi, describe, expect, beforeEach, test } from 'vitest'
 
 vi.mock('../router', () => ({
-  push: () => {}
+  push: () => {},
 }))
 
 vi.mock('../api/titres', () => ({
@@ -14,7 +14,7 @@ vi.mock('../api/titres', () => ({
   titreCreer: vi.fn(),
   titreModifier: vi.fn(),
   titreSupprimer: vi.fn(),
-  utilisateurTitreAbonner: vi.fn()
+  utilisateurTitreAbonner: vi.fn(),
 }))
 
 console.info = vi.fn()
@@ -28,20 +28,20 @@ describe('état du titre sélectionné', () => {
     titre.state = {
       element: null,
       metas: {
-        referencesTypes: []
+        referencesTypes: [],
       },
       opened: {
         etapes: {},
         activites: { 'activite-id': false },
-        travaux: {}
-      }
+        travaux: {},
+      },
     }
 
     actions = {
       pageError: vi.fn(),
       apiError: vi.fn(),
       reload: vi.fn(),
-      messageAdd: vi.fn()
+      messageAdd: vi.fn(),
     }
 
     mutations = {
@@ -50,13 +50,13 @@ describe('état du titre sélectionné', () => {
       popupLoad: vi.fn(),
       popupMessagesRemove: vi.fn(),
       popupClose: vi.fn(),
-      popupMessageAdd: vi.fn()
+      popupMessageAdd: vi.fn(),
     }
 
     store = createStore({
       modules: { titre },
       actions,
-      mutations
+      mutations,
     })
 
     const app = createApp({})
@@ -125,9 +125,7 @@ describe('état du titre sélectionné', () => {
   })
 
   test("retourne une erreur si l'API retourne une erreur lors de la suppression d'un titre", async () => {
-    const apiMock = api.titreSupprimer.mockRejectedValue(
-      new Error("error de l'api")
-    )
+    const apiMock = api.titreSupprimer.mockRejectedValue(new Error("error de l'api"))
     await store.dispatch('titre/remove', 83)
 
     expect(apiMock).toHaveBeenCalledWith({ id: 83 })
@@ -177,19 +175,13 @@ describe('état du titre sélectionné', () => {
   test('la tab des activités est visible si il existe au moins une activité', () => {
     store.state.user = { element: { role: 'defaut' } }
     store.state.titre.element = { activites: [{}], demarches: [] }
-    expect(store.getters['titre/tabs']).toMatchObject([
-      { id: 'demarches' },
-      { id: 'activites' }
-    ])
+    expect(store.getters['titre/tabs']).toMatchObject([{ id: 'demarches' }, { id: 'activites' }])
   })
 
   test('la tab des travaux est visible si il existe au moins un travaux', () => {
     store.state.titre.element = {
-      demarches: [{ type: { travaux: true } }]
+      demarches: [{ type: { travaux: true } }],
     }
-    expect(store.getters['titre/tabs']).toMatchObject([
-      { id: 'demarches' },
-      { id: 'travaux' }
-    ])
+    expect(store.getters['titre/tabs']).toMatchObject([{ id: 'demarches' }, { id: 'travaux' }])
   })
 })
diff --git a/packages/ui/src/store/titres-activites.js b/packages/ui/src/store/titres-activites.js
index ca23a7d64..e6fda8e4e 100644
--- a/packages/ui/src/store/titres-activites.js
+++ b/packages/ui/src/store/titres-activites.js
@@ -16,7 +16,7 @@ const state = {
   total: 0,
   metas: {
     annees: anneesGet(new Date().getFullYear()),
-    titresEntreprises: []
+    titresEntreprises: [],
   },
   definitions: [
     { id: 'typesIds', type: 'strings', values: [] },
@@ -35,20 +35,20 @@ const state = {
     {
       id: 'colonne',
       type: 'string',
-      values: ['titreNom', 'titulaires', 'annee', 'periode', 'statut']
+      values: ['titreNom', 'titulaires', 'annee', 'periode', 'statut'],
     },
     {
       id: 'ordre',
       type: 'string',
-      values: ['asc', 'desc']
-    }
+      values: ['asc', 'desc'],
+    },
   ],
   params: {
     table: {
       page: 1,
       intervalle: 200,
       ordre: 'asc',
-      colonne: null
+      colonne: null,
     },
     filtres: {
       typesIds: [],
@@ -61,32 +61,25 @@ const state = {
       titresTerritoires: '',
       titresTypesIds: [],
       titresDomainesIds: [],
-      titresStatutsIds: []
-    }
+      titresStatutsIds: [],
+    },
   },
-  initialized: false
+  initialized: false,
 }
 
-const actions = listeActionsBuild(
-  'titresActivites',
-  'activités',
-  activites,
-  activitesMetas
-)
+const actions = listeActionsBuild('titresActivites', 'activités', activites, activitesMetas)
 
 const mutations = Object.assign({}, listeMutations, {
   metasSet(state, data) {
     state.metas.titresEntreprises = data.elements
-    const definition = state.definitions.find(
-      p => p.id === 'titresEntreprisesIds'
-    )
+    const definition = state.definitions.find(p => p.id === 'titresEntreprisesIds')
     definition.values = data.elements.map(e => e.id)
-  }
+  },
 })
 
 export default {
   namespaced: true,
   state,
   actions,
-  mutations
+  mutations,
 }
diff --git a/packages/ui/src/store/titres-activites.test.js b/packages/ui/src/store/titres-activites.test.js
index 661bed02e..adda8ec7a 100644
--- a/packages/ui/src/store/titres-activites.test.js
+++ b/packages/ui/src/store/titres-activites.test.js
@@ -12,7 +12,7 @@ describe("état d'une activité", () => {
       { id: 2000, nom: 2000 },
       { id: 1999, nom: 1999 },
       { id: 1998, nom: 1998 },
-      { id: 1997, nom: 1997 }
+      { id: 1997, nom: 1997 },
     ])
   })
 })
diff --git a/packages/ui/src/store/titres-demarches.js b/packages/ui/src/store/titres-demarches.js
index fbf1141b4..44dfd53e1 100644
--- a/packages/ui/src/store/titres-demarches.js
+++ b/packages/ui/src/store/titres-demarches.js
@@ -8,7 +8,7 @@ const state = {
     etapesTypes: [],
     titresTypes: [],
     titresStatuts: [],
-    titresEntreprises: []
+    titresEntreprises: [],
   },
   definitions: [
     { id: 'typesIds', type: 'strings', values: [] },
@@ -28,28 +28,20 @@ const state = {
     {
       id: 'colonne',
       type: 'string',
-      values: [
-        'titreNom',
-        'titreDomaine',
-        'titreType',
-        'titreStatut',
-        'type',
-        'statut',
-        'reference'
-      ]
+      values: ['titreNom', 'titreDomaine', 'titreType', 'titreStatut', 'type', 'statut', 'reference'],
     },
     {
       id: 'ordre',
       type: 'string',
-      values: ['asc', 'desc']
-    }
+      values: ['asc', 'desc'],
+    },
   ],
   params: {
     table: {
       page: 1,
       intervalle: 200,
       ordre: 'asc',
-      colonne: null
+      colonne: null,
     },
     filtres: {
       typesIds: [],
@@ -63,18 +55,13 @@ const state = {
       titresEntreprisesIds: [],
       titresSubstancesIds: [],
       titresReferences: '',
-      titresTerritoires: ''
-    }
+      titresTerritoires: '',
+    },
   },
-  initialized: false
+  initialized: false,
 }
 
-const actions = listeActionsBuild(
-  'titresDemarches',
-  'démarches',
-  demarches,
-  demarchesMetas
-)
+const actions = listeActionsBuild('titresDemarches', 'démarches', demarches, demarchesMetas)
 
 const mutations = Object.assign({}, listeMutations, {
   reset(state) {
@@ -83,14 +70,14 @@ const mutations = Object.assign({}, listeMutations, {
       etapesTypes: [],
       titresTypes: [],
       titresStatuts: [],
-      titresEntreprises: []
+      titresEntreprises: [],
     }
     state.params = {
       table: {
         page: 1,
         intervalle: 200,
         ordre: 'asc',
-        colonne: null
+        colonne: null,
       },
       filtres: {
         typesIds: [],
@@ -104,8 +91,8 @@ const mutations = Object.assign({}, listeMutations, {
         titresEntreprisesIds: [],
         titresSubstancesIds: [],
         titresReferences: '',
-        titresTerritoires: ''
-      }
+        titresTerritoires: '',
+      },
     }
   },
   metasSet(state, data) {
@@ -139,12 +126,12 @@ const mutations = Object.assign({}, listeMutations, {
         })
       }
     })
-  }
+  },
 })
 
 export default {
   namespaced: true,
   state,
   actions,
-  mutations
+  mutations,
 }
diff --git a/packages/ui/src/store/titres-demarches.test.js b/packages/ui/src/store/titres-demarches.test.js
index d06940fc7..41fd939f0 100644
--- a/packages/ui/src/store/titres-demarches.test.js
+++ b/packages/ui/src/store/titres-demarches.test.js
@@ -5,7 +5,7 @@ import { vi, describe, expect, beforeEach, test } from 'vitest'
 
 vi.mock('../api/titres-demarches', () => ({
   demarchesMetas: vi.fn(),
-  demarches: vi.fn()
+  demarches: vi.fn(),
 }))
 
 console.info = vi.fn()
@@ -18,7 +18,7 @@ describe('liste des demarches', () => {
       metas: {
         etapesTypes: [],
         titresTypes: [],
-        titresStatuts: []
+        titresStatuts: [],
       },
       definitions: [
         { id: 'statutsIds', type: 'strings', values: [] },
@@ -26,12 +26,12 @@ describe('liste des demarches', () => {
         { id: 'etapesExclues', type: 'objects', values: [] },
         { id: 'titresDomainesIds', type: 'strings', values: [] },
         { id: 'titresTypesIds', type: 'strings', values: [] },
-        { id: 'titresStatutsIds', type: 'strings', values: [] }
-      ]
+        { id: 'titresStatutsIds', type: 'strings', values: [] },
+      ],
     }
 
     store = createStore({
-      modules: { titresDemarches }
+      modules: { titresDemarches },
     })
 
     const app = createApp({})
@@ -41,11 +41,11 @@ describe('liste des demarches', () => {
   test('enregistre les métas', () => {
     const statuts = [
       { id: 'val', nom: 'valide', couleur: 'success' },
-      { id: 'ech', nom: 'échu', couleur: 'neutral' }
+      { id: 'ech', nom: 'échu', couleur: 'neutral' },
     ]
     const types = [
       { id: 'cx', nom: 'concession', exploitation: true },
-      { id: 'pr', nom: 'permis exclusif de recherches', exploitation: false }
+      { id: 'pr', nom: 'permis exclusif de recherches', exploitation: false },
     ]
     const etapesTypes = [{ id: 'dpu', nom: 'publication au Jorf' }]
 
@@ -53,13 +53,13 @@ describe('liste des demarches', () => {
       statuts,
       types,
       etapesTypes,
-      truc: {}
+      truc: {},
     })
 
     expect(store.state.titresDemarches.metas).toEqual({
       titresTypes: types,
       titresStatuts: statuts,
-      etapesTypes
+      etapesTypes,
     })
 
     expect(store.state.titresDemarches.definitions).toEqual([
@@ -68,7 +68,7 @@ describe('liste des demarches', () => {
       { values: ['dpu'], id: 'etapesExclues', type: 'objects' },
       { values: [], id: 'titresDomainesIds', type: 'strings' },
       { values: ['cx', 'pr'], id: 'titresTypesIds', type: 'strings' },
-      { values: ['val', 'ech'], id: 'titresStatutsIds', type: 'strings' }
+      { values: ['val', 'ech'], id: 'titresStatutsIds', type: 'strings' },
     ])
   })
 })
diff --git a/packages/ui/src/store/titres.js b/packages/ui/src/store/titres.js
index d6dc58955..5ea595088 100644
--- a/packages/ui/src/store/titres.js
+++ b/packages/ui/src/store/titres.js
@@ -26,28 +26,19 @@ const getDefaultState = () => {
       {
         id: 'colonne',
         type: 'string',
-        values: [
-          'nom',
-          'domaine',
-          'type',
-          'statut',
-          'activitesTotal',
-          'substances',
-          'titulaires',
-          'references'
-        ]
+        values: ['nom', 'domaine', 'type', 'statut', 'activitesTotal', 'substances', 'titulaires', 'references'],
       },
       {
         id: 'ordre',
         type: 'string',
-        values: ['asc', 'desc']
+        values: ['asc', 'desc'],
       },
-      { id: 'perimetre', type: 'numbers' }
+      { id: 'perimetre', type: 'numbers' },
     ],
     urlDefinitions: [
       { id: 'zoom', type: 'number', min: 1, max: 18 },
       { id: 'centre', type: 'tuple' },
-      { id: 'vueId', type: 'string', values: ['carte', 'table'] }
+      { id: 'vueId', type: 'string', values: ['carte', 'table'] },
     ],
     params: {
       table: { page: 1, intervalle: 200, ordre: 'asc', colonne: 'nom' },
@@ -63,10 +54,10 @@ const getDefaultState = () => {
         communes: '',
         departements: [],
         regions: [],
-        facadesMaritimes: []
-      }
+        facadesMaritimes: [],
+      },
     },
-    initialized: false
+    initialized: false,
   }
 }
 
@@ -108,10 +99,7 @@ const actions = {
       let data
 
       if (state.vueId === 'carte') {
-        const definitions = paramsBuild(
-          state.definitions,
-          Object.assign({}, state.params.filtres, state.params.carte)
-        )
+        const definitions = paramsBuild(state.definitions, Object.assign({}, state.params.filtres, state.params.carte))
 
         if (state.params.carte.zoom > 7) {
           data = await titresGeoPolygon(definitions)
@@ -119,10 +107,7 @@ const actions = {
           data = await titresGeo(definitions)
         }
       } else {
-        const definitions = paramsBuild(
-          state.definitions,
-          Object.assign({}, state.params.filtres, state.params.table)
-        )
+        const definitions = paramsBuild(state.definitions, Object.assign({}, state.params.filtres, state.params.table))
         data = await titres(definitions)
         if (!data.elements.length && data.total) {
           commit('paramsSet', { section: 'table', params: { page: 1 } })
@@ -152,10 +137,7 @@ const actions = {
     if (Object.keys(newParams).length) {
       commit('paramsSet', { section, params: newParams })
 
-      if (
-        section === 'carte' &&
-        !Object.keys(newParams).includes('perimetre')
-      ) {
+      if (section === 'carte' && !Object.keys(newParams).includes('perimetre')) {
         return
       }
 
@@ -204,7 +186,7 @@ const actions = {
       const carteParams = urlQueryParamsGet(
         {
           zoom: state.params.carte.zoom,
-          centre: state.params.carte.centre
+          centre: state.params.carte.centre,
         },
         rootState.route.query,
         state.urlDefinitions
@@ -217,11 +199,7 @@ const actions = {
     }
 
     if (state.vueId === 'table') {
-      const tableParams = urlQueryParamsGet(
-        state.params.table,
-        rootState.route.query,
-        state.definitions
-      )
+      const tableParams = urlQueryParamsGet(state.params.table, rootState.route.query, state.definitions)
 
       if (Object.keys(tableParams).length) {
         commit('paramsSet', { section: 'table', params: tableParams })
@@ -229,11 +207,7 @@ const actions = {
       }
     }
 
-    const filtresParams = urlQueryParamsGet(
-      state.params.filtres,
-      rootState.route.query,
-      state.definitions
-    )
+    const filtresParams = urlQueryParamsGet(state.params.filtres, rootState.route.query, state.definitions)
 
     if (Object.keys(filtresParams).length) {
       commit('paramsSet', { section: 'filtres', params: filtresParams })
@@ -248,41 +222,33 @@ const actions = {
       state.vueId === 'carte'
         ? {
             zoom: state.params.carte.zoom,
-            centre: state.params.carte.centre
+            centre: state.params.carte.centre,
           }
         : state.params.table
 
-    const params = Object.assign(
-      { vueId: state.vueId },
-      state.params.filtres,
-      paramsVue
-    )
+    const params = Object.assign({ vueId: state.vueId }, state.params.filtres, paramsVue)
 
     const definitions = [...state.definitions, ...state.urlDefinitions]
 
     await dispatch('urlQueryUpdate', { params, definitions }, { root: true })
-  }
+  },
 }
 
-const mutations = Object.assign(
-  {},
-  listeMutationsWithDefaultState(getDefaultState),
-  {
-    metasSet(state, data) {
-      state.metas.entreprises = data.elements
-      const definition = state.definitions.find(p => p.id === 'entreprisesIds')
-      definition.values = data.elements.map(e => e.id)
-    },
+const mutations = Object.assign({}, listeMutationsWithDefaultState(getDefaultState), {
+  metasSet(state, data) {
+    state.metas.entreprises = data.elements
+    const definition = state.definitions.find(p => p.id === 'entreprisesIds')
+    definition.values = data.elements.map(e => e.id)
+  },
 
-    vueSet(state, vueId) {
-      state.vueId = vueId
-    }
-  }
-)
+  vueSet(state, vueId) {
+    state.vueId = vueId
+  },
+})
 
 export default {
   namespaced: true,
   state,
   actions,
-  mutations
+  mutations,
 }
diff --git a/packages/ui/src/store/titres.test.js b/packages/ui/src/store/titres.test.js
index 6444820ab..0578c5f09 100644
--- a/packages/ui/src/store/titres.test.js
+++ b/packages/ui/src/store/titres.test.js
@@ -8,7 +8,7 @@ vi.mock('../api/titres', () => ({
   titres: vi.fn(),
   titresGeo: vi.fn(),
   titresGeoPolygon: vi.fn(),
-  titresMetas: vi.fn()
+  titresMetas: vi.fn(),
 }))
 
 console.info = vi.fn()
@@ -36,7 +36,7 @@ describe('liste des titres', () => {
           page: 1,
           intervalle: 200,
           ordre: 'asc',
-          colonne: 'nom'
+          colonne: 'nom',
         },
         carte: { zoom: null, centre: [], perimetre: [] },
         filtres: {
@@ -47,8 +47,8 @@ describe('liste des titres', () => {
           territoires: null,
           noms: 's',
           domainesIds: ['c', 'w'],
-          statutsIds: ['val']
-        }
+          statutsIds: ['val'],
+        },
       },
       definitions: [
         { id: 'typesIds', type: 'strings', values: [] },
@@ -65,44 +65,44 @@ describe('liste des titres', () => {
         {
           id: 'colonne',
           type: 'string',
-          values: ['nom', 'domaine', 'type', 'statut', 'activitesTotal']
+          values: ['nom', 'domaine', 'type', 'statut', 'activitesTotal'],
         },
         {
           id: 'ordre',
           type: 'string',
-          values: ['asc', 'desc']
-        }
+          values: ['asc', 'desc'],
+        },
       ],
       urlDefinitions: [
         { id: 'zoom', type: 'number', min: 1, max: 18 },
         { id: 'centre', type: 'tuple' },
-        { id: 'vueId', type: 'string', values: ['carte', 'table'] }
+        { id: 'vueId', type: 'string', values: ['carte', 'table'] },
       ],
-      initialized: false
+      initialized: false,
     }
 
     mutations = {
       loadingAdd: vi.fn(),
-      loadingRemove: vi.fn()
+      loadingRemove: vi.fn(),
     }
 
     actions = {
       apiError: vi.fn(),
       messageAdd: vi.fn(),
-      urlQueryUpdate: vi.fn()
+      urlQueryUpdate: vi.fn(),
     }
 
     route = {
       namespaced: true,
       state: {
-        query: {}
-      }
+        query: {},
+      },
     }
 
     store = createStore({
       modules: { titres, route },
       mutations,
-      actions
+      actions,
     })
 
     const app = createApp({})
@@ -111,12 +111,12 @@ describe('liste des titres', () => {
 
   test('initialise le composant', async () => {
     const apiMetasMock = api.titresMetas.mockResolvedValue({
-      elements: [{ id: 'entrepriseId' }]
+      elements: [{ id: 'entrepriseId' }],
     })
 
     const apiMock = api.titres.mockResolvedValue({
       elements: [{ id: 'titre-id', nom: 'Nom du titre' }],
-      total: 1
+      total: 1,
     })
 
     await store.dispatch('titres/init')
@@ -133,15 +133,11 @@ describe('liste des titres', () => {
 
     expect(apiMock).toHaveBeenCalled()
 
-    expect(store.state.titres.elements).toEqual([
-      { id: 'titre-id', nom: 'Nom du titre' }
-    ])
+    expect(store.state.titres.elements).toEqual([{ id: 'titre-id', nom: 'Nom du titre' }])
   })
 
   test("retourne une erreur si l'api ne répond pas", async () => {
-    const apiMock = api.titresMetas.mockRejectedValue(
-      new Error("erreur de l'api")
-    )
+    const apiMock = api.titresMetas.mockRejectedValue(new Error("erreur de l'api"))
 
     await store.dispatch('titres/init')
 
@@ -154,7 +150,7 @@ describe('liste des titres', () => {
   test('obtient la liste des titres dans la vue "carte"', async () => {
     const apiMock = api.titresGeoPolygon.mockResolvedValue({
       elements: titresCarte,
-      total: 4
+      total: 4,
     })
 
     store.state.titres.initialized = true
@@ -166,7 +162,7 @@ describe('liste des titres', () => {
       noms: 's',
       domainesIds: ['c', 'w'],
       statutsIds: ['val'],
-      entreprises: 'fr-'
+      entreprises: 'fr-',
     })
     expect(store.state.titres.elements).toEqual(titresCarte)
   })
@@ -174,7 +170,7 @@ describe('liste des titres', () => {
   test('obtient la liste des titres dans la vue "carte" sans les périmètres', async () => {
     const apiMock = api.titresGeo.mockResolvedValue({
       elements: titresCarte,
-      total: 4
+      total: 4,
     })
 
     store.state.titres.initialized = true
@@ -186,7 +182,7 @@ describe('liste des titres', () => {
       noms: 's',
       domainesIds: ['c', 'w'],
       statutsIds: ['val'],
-      entreprises: 'fr-'
+      entreprises: 'fr-',
     })
     expect(store.state.titres.elements).toEqual(titresCarte)
   })
@@ -194,7 +190,7 @@ describe('liste des titres', () => {
   test('obtient la liste des titres dans la vue "table"', async () => {
     const apiMock = api.titres.mockResolvedValue({
       elements: titresListe,
-      total: 3
+      total: 3,
     })
     store.state.titres.initialized = true
     store.state.titres.vueId = 'table'
@@ -209,7 +205,7 @@ describe('liste des titres', () => {
       page: 1,
       intervalle: 200,
       ordre: 'asc',
-      colonne: 'nom'
+      colonne: 'nom',
     })
     expect(store.state.titres.elements).toEqual(titresListe)
 
@@ -219,9 +215,7 @@ describe('liste des titres', () => {
   })
 
   test("retourne une erreur si l'api ne repond pas", async () => {
-    const apiMock = api.titresGeo.mockRejectedValue(
-      new Error("l'api ne répond pas")
-    )
+    const apiMock = api.titresGeo.mockRejectedValue(new Error("l'api ne répond pas"))
     store.state.titres.initialized = true
 
     await store.dispatch('titres/get')
@@ -230,7 +224,7 @@ describe('liste des titres', () => {
       noms: 's',
       domainesIds: ['c', 'w'],
       statutsIds: ['val'],
-      entreprises: 'fr-'
+      entreprises: 'fr-',
     })
 
     expect(actions.apiError).toHaveBeenCalled()
@@ -239,20 +233,18 @@ describe('liste des titres', () => {
   test('change la vue et recharges les titres', async () => {
     const apiTableMock = api.titres.mockResolvedValue({
       elements: [{ id: 'titre-id', nom: 'Nom du titre' }],
-      total: 1
+      total: 1,
     })
     const apiGeoMock = api.titresGeo.mockResolvedValue({
       elements: [{ id: 'titre-id-geo', nom: 'Nom du titre' }],
-      total: 1
+      total: 1,
     })
 
     store.state.titres.elements = [{ id: 'titre-id-init', nom: 'Nom du titre' }]
 
     await store.dispatch('titres/vueSet', 'carte')
 
-    expect(store.state.titres.elements).toEqual([
-      { id: 'titre-id-init', nom: 'Nom du titre' }
-    ])
+    expect(store.state.titres.elements).toEqual([{ id: 'titre-id-init', nom: 'Nom du titre' }])
 
     store.state.titres.initialized = true
 
@@ -261,9 +253,7 @@ describe('liste des titres', () => {
     expect(apiTableMock).toHaveBeenCalled()
     expect(store.state.titres.vueId).toEqual('table')
 
-    expect(store.state.titres.elements).toEqual([
-      { id: 'titre-id', nom: 'Nom du titre' }
-    ])
+    expect(store.state.titres.elements).toEqual([{ id: 'titre-id', nom: 'Nom du titre' }])
 
     await store.dispatch('titres/vueSet', 'carte')
 
@@ -275,11 +265,11 @@ describe('liste des titres', () => {
   test("met à jour la liste si les paramètres d'url changent", async () => {
     const apiTableMock = api.titres.mockResolvedValue({
       elements: [{ id: 'titre-id-table', nom: 'Nom du titre' }],
-      total: 1
+      total: 1,
     })
     const apiGeoMock = api.titresGeo.mockResolvedValue({
       elements: [{ id: 'titre-id-geo', nom: 'Nom du titre' }],
-      total: 1
+      total: 1,
     })
 
     await store.dispatch('titres/routeUpdate')
@@ -295,9 +285,7 @@ describe('liste des titres', () => {
 
     expect(apiTableMock).toHaveBeenCalled()
 
-    expect(store.state.titres.elements).toEqual([
-      { id: 'titre-id-table', nom: 'Nom du titre' }
-    ])
+    expect(store.state.titres.elements).toEqual([{ id: 'titre-id-table', nom: 'Nom du titre' }])
 
     expect(store.state.titres.params.table.page).toEqual(4)
 
@@ -309,9 +297,7 @@ describe('liste des titres', () => {
 
     expect(apiGeoMock).toHaveBeenCalled()
 
-    expect(store.state.titres.elements).toEqual([
-      { id: 'titre-id-geo', nom: 'Nom du titre' }
-    ])
+    expect(store.state.titres.elements).toEqual([{ id: 'titre-id-geo', nom: 'Nom du titre' }])
   })
 
   test('initialise les paramètres de filtre', async () => {
@@ -325,7 +311,7 @@ describe('liste des titres', () => {
 
     await store.dispatch('titres/paramsSet', {
       section: 'carte',
-      params: { zoom: 5 }
+      params: { zoom: 5 },
     })
   })
 })
diff --git a/packages/ui/src/store/user.js b/packages/ui/src/store/user.js
index d02275814..3363a0cf4 100644
--- a/packages/ui/src/store/user.js
+++ b/packages/ui/src/store/user.js
@@ -1,22 +1,14 @@
-import {
-  ADMINISTRATION_IDS,
-  ADMINISTRATION_TYPES,
-  Administrations
-} from 'camino-common/src/static/administrations'
-import {
-  isAdministrationAdmin,
-  isAdministrationEditeur,
-  isSuper
-} from 'camino-common/src/roles'
+import { ADMINISTRATION_IDS, ADMINISTRATION_TYPES, Administrations } from 'camino-common/src/static/administrations'
+import { isAdministrationAdmin, isAdministrationEditeur, isSuper } from 'camino-common/src/roles'
 import { fetchWithJson } from '@/api/client-rest'
 import { CaminoRestRoutes } from 'camino-common/src/rest'
 
 const state = {
   element: null,
   preferences: {
-    carte: { markerLayersId: 'clusters' }
+    carte: { markerLayersId: 'clusters' },
   },
-  loaded: false
+  loaded: false,
 }
 
 const actions = {
@@ -41,7 +33,7 @@ const actions = {
     } else {
       commit('preferencesSet', { section, params })
     }
-  }
+  },
 }
 
 const getters = {
@@ -62,11 +54,7 @@ const getters = {
 
     const threedays = 1000 * 60 * 60
 
-    if (
-      localStorage.getItem('conditions') &&
-      Number(localStorage.getItem('conditions')) + threedays >
-        new Date().getTime()
-    ) {
+    if (localStorage.getItem('conditions') && Number(localStorage.getItem('conditions')) + threedays > new Date().getTime()) {
       return true
     }
 
@@ -76,49 +64,28 @@ const getters = {
   / @deprecated
   */
   userIsAdmin(state) {
-    return (
-      isSuper(state.element) ||
-      isAdministrationAdmin(state.element) ||
-      isAdministrationEditeur(state.element)
-    )
+    return isSuper(state.element) || isAdministrationAdmin(state.element) || isAdministrationEditeur(state.element)
   },
 
   isONF(state) {
-    return (
-      (isAdministrationAdmin(state.element) ||
-        isAdministrationEditeur(state.element)) &&
-      state.element.administrationId ===
-        ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
-    )
+    return (isAdministrationAdmin(state.element) || isAdministrationEditeur(state.element)) && state.element.administrationId === ADMINISTRATION_IDS['OFFICE NATIONAL DES FORÊTS']
   },
   isPTMG(state) {
-    return (
-      (isAdministrationAdmin(state.element) ||
-        isAdministrationEditeur(state.element)) &&
-      state.element.administrationId ===
-        ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
-    )
+    return (isAdministrationAdmin(state.element) || isAdministrationEditeur(state.element)) && state.element.administrationId === ADMINISTRATION_IDS['PÔLE TECHNIQUE MINIER DE GUYANE']
   },
   isDREAL(state) {
     return (
-      (isAdministrationAdmin(state.element) ||
-        isAdministrationEditeur(state.element)) &&
-      [ADMINISTRATION_TYPES.dea.id, ADMINISTRATION_TYPES.dre.id].includes(
-        Administrations[state.element.administrationId].typeId
-      )
+      (isAdministrationAdmin(state.element) || isAdministrationEditeur(state.element)) &&
+      [ADMINISTRATION_TYPES.dea.id, ADMINISTRATION_TYPES.dre.id].includes(Administrations[state.element.administrationId].typeId)
     )
   },
   isDGTM(state) {
-    return (
-      (isAdministrationAdmin(state.element) ||
-        isAdministrationEditeur(state.element)) &&
-      state.element.administrationId === ADMINISTRATION_IDS['DGTM - GUYANE']
-    )
+    return (isAdministrationAdmin(state.element) || isAdministrationEditeur(state.element)) && state.element.administrationId === ADMINISTRATION_IDS['DGTM - GUYANE']
   },
 
   userIsSuper(state) {
     return isSuper(state.element)
-  }
+  },
 }
 
 const mutations = {
@@ -138,7 +105,7 @@ const mutations = {
 
   reset(state) {
     state.element = null
-  }
+  },
 }
 
 export default {
@@ -146,5 +113,5 @@ export default {
   state,
   actions,
   getters,
-  mutations
+  mutations,
 }
diff --git a/packages/ui/src/store/user.test.js b/packages/ui/src/store/user.test.js
index 3dc165a23..0cfc9b390 100644
--- a/packages/ui/src/store/user.test.js
+++ b/packages/ui/src/store/user.test.js
@@ -8,11 +8,11 @@ import { vi, describe, test, beforeEach, expect } from 'vitest'
 import { testBlankUser } from 'camino-common/src/tests-utils'
 
 vi.mock('../api/utilisateurs', () => ({
-  utilisateurCreer: vi.fn()
+  utilisateurCreer: vi.fn(),
 }))
 
 vi.mock('../api/client-rest', () => ({
-  fetchWithJson: vi.fn()
+  fetchWithJson: vi.fn(),
 }))
 
 vi.mock('../router', () => [])
@@ -36,20 +36,20 @@ describe("état de l'utilisateur connecté", () => {
       nom: 'lataupe',
       role: 'admin',
       entreprise: 'macdo',
-      email: 'rene@la.taupe'
+      email: 'rene@la.taupe',
     }
 
     user.state = {
       element: null,
       preferences: {
-        carte: {}
-      }
+        carte: {},
+      },
     }
 
     actions = {
       messageAdd: vi.fn(),
       errorRemove: vi.fn(),
-      apiError: vi.fn()
+      apiError: vi.fn(),
     }
 
     mutations = {
@@ -58,7 +58,7 @@ describe("état de l'utilisateur connecté", () => {
       popupClose: vi.fn(),
       popupMessageAdd: vi.fn(),
       loadingRemove: vi.fn(),
-      menuClose: vi.fn()
+      menuClose: vi.fn(),
     }
 
     map = { state: {} }
@@ -66,7 +66,7 @@ describe("état de l'utilisateur connecté", () => {
     store = createStore({
       modules: { user, map },
       actions,
-      mutations
+      mutations,
     })
 
     const app = createApp({})
@@ -86,7 +86,7 @@ describe("état de l'utilisateur connecté", () => {
       nom: 'lataupe',
       email: 'rene@la.taupe',
       role: 'admin',
-      entreprise: 'macdo'
+      entreprise: 'macdo',
     })
     expect(apiMock).toHaveBeenCalled()
   })
@@ -130,14 +130,14 @@ describe("état de l'utilisateur connecté", () => {
       id: 66,
       prenom: 'rene',
       nom: 'lataupe',
-      role: 'admin'
+      role: 'admin',
     })
 
     expect(store.state.user.element).toEqual({
       id: 66,
       prenom: 'rene',
       nom: 'lataupe',
-      role: 'admin'
+      role: 'admin',
     })
     expect(store.state.user.element.entreprise).toBeUndefined()
   })
@@ -147,15 +147,12 @@ describe("état de l'utilisateur connecté", () => {
     [{ role: 'admin', administrationId: 'dea-guadeloupe-01' }, true],
     [{ role: 'editeur', administrationId: 'dea-guadeloupe-01' }, true],
     [{ role: 'entreprise', entreprises: [] }, false],
-    [undefined, false]
-  ])(
-    'ajoute un utilisateur au store avec le role $role et vérifie si il est admin $isAdmin',
-    (user, isAdmin) => {
-      store.commit('user/set', {
-        ...testBlankUser,
-        ...user
-      })
-      expect(store.getters['user/userIsAdmin']).toEqual(isAdmin)
-    }
-  )
+    [undefined, false],
+  ])('ajoute un utilisateur au store avec le role $role et vérifie si il est admin $isAdmin', (user, isAdmin) => {
+    store.commit('user/set', {
+      ...testBlankUser,
+      ...user,
+    })
+    expect(store.getters['user/userIsAdmin']).toEqual(isAdmin)
+  })
 })
diff --git a/packages/ui/src/store/utilisateurs.js b/packages/ui/src/store/utilisateurs.js
index 69d5c1c77..8097901bf 100644
--- a/packages/ui/src/store/utilisateurs.js
+++ b/packages/ui/src/store/utilisateurs.js
@@ -1,14 +1,11 @@
 import { utilisateurs, utilisateurMetas } from '../api/utilisateurs'
-import {
-  listeActionsBuild,
-  listeMutationsWithDefaultState
-} from './_liste-build'
+import { listeActionsBuild, listeMutationsWithDefaultState } from './_liste-build'
 
 const getDefaultState = () => ({
   elements: [],
   total: 0,
   metas: {
-    entreprise: []
+    entreprise: [],
   },
   definitions: [
     { id: 'noms', type: 'string' },
@@ -21,13 +18,13 @@ const getDefaultState = () => ({
     {
       id: 'colonne',
       type: 'string',
-      values: ['nom', 'prenom', 'email', 'role', 'lien']
+      values: ['nom', 'prenom', 'email', 'role', 'lien'],
     },
     {
       id: 'ordre',
       type: 'string',
-      values: ['asc', 'desc']
-    }
+      values: ['asc', 'desc'],
+    },
   ],
   params: {
     filtres: {
@@ -35,40 +32,31 @@ const getDefaultState = () => ({
       emails: '',
       roles: [],
       administrationIds: [],
-      entrepriseIds: []
+      entrepriseIds: [],
     },
     table: {
       page: 1,
       intervalle: 200,
       ordre: 'asc',
-      colonne: null
-    }
+      colonne: null,
+    },
   },
-  initialized: false
+  initialized: false,
 })
 
 const state = getDefaultState()
 
-const actions = listeActionsBuild(
-  'utilisateurs',
-  'utilisateurs',
-  utilisateurs,
-  utilisateurMetas
-)
+const actions = listeActionsBuild('utilisateurs', 'utilisateurs', utilisateurs, utilisateurMetas)
 
-const mutations = Object.assign(
-  {},
-  listeMutationsWithDefaultState(getDefaultState),
-  {
-    metasSet(state, data) {
-      state.metas.entreprise = data.elements
-    }
-  }
-)
+const mutations = Object.assign({}, listeMutationsWithDefaultState(getDefaultState), {
+  metasSet(state, data) {
+    state.metas.entreprise = data.elements
+  },
+})
 
 export default {
   namespaced: true,
   state,
   actions,
-  mutations
+  mutations,
 }
diff --git a/packages/ui/src/store/utilisateurs.test.js b/packages/ui/src/store/utilisateurs.test.js
index c1fd093ae..90a9f30b2 100644
--- a/packages/ui/src/store/utilisateurs.test.js
+++ b/packages/ui/src/store/utilisateurs.test.js
@@ -5,7 +5,7 @@ import { vi, describe, expect, beforeEach, test } from 'vitest'
 
 vi.mock('../api/utilisateurs', () => ({
   utilisateurs: vi.fn(),
-  utilisateurMetas: vi.fn()
+  utilisateurMetas: vi.fn(),
 }))
 
 console.info = vi.fn()
@@ -16,13 +16,13 @@ describe('liste des utilisateurs', () => {
   beforeEach(() => {
     utilisateurs.state = {
       metas: {
-        entreprise: []
+        entreprise: [],
       },
       definitions: [
         { id: 'roles', type: 'strings', values: [] },
         { id: 'administrationIds', type: 'strings', values: [] },
-        { id: 'entrepriseIds', type: 'strings', values: [] }
-      ]
+        { id: 'entrepriseIds', type: 'strings', values: [] },
+      ],
     }
 
     store = createStore({
@@ -31,10 +31,10 @@ describe('liste des utilisateurs', () => {
         titre: {
           namespaced: true,
           actions: {
-            openTab: vi.fn()
-          }
-        }
-      }
+            openTab: vi.fn(),
+          },
+        },
+      },
     })
 
     const app = createApp({})
@@ -45,19 +45,19 @@ describe('liste des utilisateurs', () => {
     const entreprisesElements = [
       {
         id: 'fr-513863217',
-        nom: "SOCIETE GUYANAISE DES MINES D'OR (SOGUMINOR)"
+        nom: "SOCIETE GUYANAISE DES MINES D'OR (SOGUMINOR)",
       },
-      { id: 'fr-821136710', nom: 'SASU SOFERRO (SOFERRO)' }
+      { id: 'fr-821136710', nom: 'SASU SOFERRO (SOFERRO)' },
     ]
     const entreprises = {
       elements: entreprisesElements,
-      total: 4
+      total: 4,
     }
 
     store.commit('utilisateurs/metasSet', entreprises)
 
     expect(store.state.utilisateurs.metas).toEqual({
-      entreprise: entreprises.elements
+      entreprise: entreprises.elements,
     })
 
     expect(store.state.utilisateurs.definitions).toEqual([
@@ -65,13 +65,13 @@ describe('liste des utilisateurs', () => {
       {
         id: 'administrationIds',
         type: 'strings',
-        values: []
+        values: [],
       },
       {
         id: 'entrepriseIds',
         type: 'strings',
-        values: []
-      }
+        values: [],
+      },
     ])
   })
 })
diff --git a/packages/ui/src/storybook.spec.ts b/packages/ui/src/storybook.spec.ts
index 9ccaa72fc..41cc5879f 100644
--- a/packages/ui/src/storybook.spec.ts
+++ b/packages/ui/src/storybook.spec.ts
@@ -14,18 +14,14 @@ console.error = vi.fn()
 vi.mock('vue-router', () => ({
   useRoute: vi.fn(),
   useRouter: vi.fn(() => ({
-    push: () => {}
-  }))
+    push: () => {},
+  })),
 }))
 
 vi.mock('vuex', () => ({ useStore: vi.fn() }))
 
 describe('Storybook Tests', async () => {
-  const modules = await Promise.all(
-    Object.values(import.meta.glob<StoryFile>('../**/*.stories.ts(x)?')).map(
-      fn => fn()
-    )
-  )
+  const modules = await Promise.all(Object.values(import.meta.glob<StoryFile>('../**/*.stories.ts(x)?')).map(fn => fn()))
   describe.each(
     modules.map(module => {
       return { name: module.default.title, module }
@@ -34,15 +30,12 @@ describe('Storybook Tests', async () => {
     test.skipIf(name?.includes('NoStoryshots')).each(
       Object.entries<ContextedStory<unknown>>(composeStories(module))
         .map(([name, story]) => ({ name, story }))
-        .filter(
-          env =>
-            name?.includes('NoStoryshots') || !env.name?.includes('NoSnapshot')
-        )
+        .filter(env => name?.includes('NoStoryshots') || !env.name?.includes('NoSnapshot'))
     )('$name', async ({ story }) => {
       const mounted = render(story(), {
         global: {
-          components: { 'router-link': h('a', { type: 'primary' }) }
-        }
+          components: { 'router-link': h('a', { type: 'primary' }) },
+        },
       })
       await new Promise<void>(resolve => setTimeout(() => resolve(), 1))
       expect(mounted.html()).toMatchSnapshot()
diff --git a/packages/ui/src/styles/buttons.css b/packages/ui/src/styles/buttons.css
index c5f5ebca0..a5c5e1feb 100644
--- a/packages/ui/src/styles/buttons.css
+++ b/packages/ui/src/styles/buttons.css
@@ -4,8 +4,7 @@
 */
 
 :root {
-  --transition: opacity 0.25s, background-color 0.25s, border 0.25s,
-    box-shadow 0.25s, fill 0.25s;
+  --transition: opacity 0.25s, background-color 0.25s, border 0.25s, box-shadow 0.25s, fill 0.25s;
 }
 
 .btn-menu,
diff --git a/packages/ui/src/styles/dsfr/dsfr.css b/packages/ui/src/styles/dsfr/dsfr.css
index c3a9c0831..597aac1ad 100644
--- a/packages/ui/src/styles/dsfr/dsfr.css
+++ b/packages/ui/src/styles/dsfr/dsfr.css
@@ -1,80 +1,70 @@
 @charset "UTF-8";
 @font-face {
   font-family: Marianne;
-  src: url('fonts/Marianne-Light.woff2') format('woff2'),
-    url('fonts/Marianne-Light.woff') format('woff');
+  src: url('fonts/Marianne-Light.woff2') format('woff2'), url('fonts/Marianne-Light.woff') format('woff');
   font-weight: 300;
   font-style: normal;
   font-display: swap;
 }
 @font-face {
   font-family: Marianne;
-  src: url('fonts/Marianne-Light_Italic.woff2') format('woff2'),
-    url('fonts/Marianne-Light_Italic.woff') format('woff');
+  src: url('fonts/Marianne-Light_Italic.woff2') format('woff2'), url('fonts/Marianne-Light_Italic.woff') format('woff');
   font-weight: 300;
   font-style: italic;
   font-display: swap;
 }
 @font-face {
   font-family: Marianne;
-  src: url('fonts/Marianne-Regular.woff2') format('woff2'),
-    url('fonts/Marianne-Regular.woff') format('woff');
+  src: url('fonts/Marianne-Regular.woff2') format('woff2'), url('fonts/Marianne-Regular.woff') format('woff');
   font-weight: 400;
   font-style: normal;
   font-display: swap;
 }
 @font-face {
   font-family: Marianne;
-  src: url('fonts/Marianne-Regular_Italic.woff2') format('woff2'),
-    url('fonts/Marianne-Regular_Italic.woff') format('woff');
+  src: url('fonts/Marianne-Regular_Italic.woff2') format('woff2'), url('fonts/Marianne-Regular_Italic.woff') format('woff');
   font-weight: 400;
   font-style: italic;
   font-display: swap;
 }
 @font-face {
   font-family: Marianne;
-  src: url('fonts/Marianne-Medium.woff2') format('woff2'),
-    url('fonts/Marianne-Medium.woff') format('woff');
+  src: url('fonts/Marianne-Medium.woff2') format('woff2'), url('fonts/Marianne-Medium.woff') format('woff');
   font-weight: 500;
   font-style: normal;
   font-display: swap;
 }
 @font-face {
   font-family: Marianne;
-  src: url('fonts/Marianne-Medium_Italic.woff2') format('woff2'),
-    url('fonts/Marianne-Medium_Italic.woff') format('woff');
+  src: url('fonts/Marianne-Medium_Italic.woff2') format('woff2'), url('fonts/Marianne-Medium_Italic.woff') format('woff');
   font-weight: 500;
   font-style: italic;
   font-display: swap;
 }
 @font-face {
   font-family: Marianne;
-  src: url('fonts/Marianne-Bold.woff2') format('woff2'),
-    url('fonts/Marianne-Bold.woff') format('woff');
+  src: url('fonts/Marianne-Bold.woff2') format('woff2'), url('fonts/Marianne-Bold.woff') format('woff');
   font-weight: 700;
   font-style: normal;
   font-display: swap;
 }
 @font-face {
   font-family: Marianne;
-  src: url('fonts/Marianne-Bold_Italic.woff2') format('woff2'),
-    url('fonts/Marianne-Bold_Italic.woff') format('woff');
+  src: url('fonts/Marianne-Bold_Italic.woff2') format('woff2'), url('fonts/Marianne-Bold_Italic.woff') format('woff');
   font-weight: 700;
   font-style: italic;
   font-display: swap;
 }
 @font-face {
   font-family: Spectral;
-  src: url('fonts/Spectral-Regular.woff2') format('woff2'),
-    url('fonts/Spectral-Regular.woff') format('woff');
+  src: url('fonts/Spectral-Regular.woff2') format('woff2'), url('fonts/Spectral-Regular.woff') format('woff');
   font-weight: 400;
   font-style: normal;
   font-display: swap;
 }
 @font-face {
   font-family: Spectral;
-  src: url('fonts/Spectral-ExtraBold.woff2') format('woff2'),
-    url('fonts/Spectral-ExtraBold.woff') format('woff');
+  src: url('fonts/Spectral-ExtraBold.woff2') format('woff2'), url('fonts/Spectral-ExtraBold.woff') format('woff');
   font-weight: 900;
   font-style: normal;
   font-display: swap;
@@ -403,12 +393,8 @@
   --background-alt-red-marianne-hover: var(--red-marianne-975-75-hover);
   --background-alt-red-marianne-active: var(--red-marianne-975-75-active);
   --background-alt-green-tilleul-verveine: var(--green-tilleul-verveine-975-75);
-  --background-alt-green-tilleul-verveine-hover: var(
-    --green-tilleul-verveine-975-75-hover
-  );
-  --background-alt-green-tilleul-verveine-active: var(
-    --green-tilleul-verveine-975-75-active
-  );
+  --background-alt-green-tilleul-verveine-hover: var(--green-tilleul-verveine-975-75-hover);
+  --background-alt-green-tilleul-verveine-active: var(--green-tilleul-verveine-975-75-active);
   --background-alt-green-bourgeon: var(--green-bourgeon-975-75);
   --background-alt-green-bourgeon-hover: var(--green-bourgeon-975-75-hover);
   --background-alt-green-bourgeon-active: var(--green-bourgeon-975-75-active);
@@ -438,24 +424,16 @@
   --background-alt-pink-tuile-active: var(--pink-tuile-975-75-active);
   --background-alt-yellow-tournesol: var(--yellow-tournesol-975-75);
   --background-alt-yellow-tournesol-hover: var(--yellow-tournesol-975-75-hover);
-  --background-alt-yellow-tournesol-active: var(
-    --yellow-tournesol-975-75-active
-  );
+  --background-alt-yellow-tournesol-active: var(--yellow-tournesol-975-75-active);
   --background-alt-yellow-moutarde: var(--yellow-moutarde-975-75);
   --background-alt-yellow-moutarde-hover: var(--yellow-moutarde-975-75-hover);
   --background-alt-yellow-moutarde-active: var(--yellow-moutarde-975-75-active);
   --background-alt-orange-terre-battue: var(--orange-terre-battue-975-75);
-  --background-alt-orange-terre-battue-hover: var(
-    --orange-terre-battue-975-75-hover
-  );
-  --background-alt-orange-terre-battue-active: var(
-    --orange-terre-battue-975-75-active
-  );
+  --background-alt-orange-terre-battue-hover: var(--orange-terre-battue-975-75-hover);
+  --background-alt-orange-terre-battue-active: var(--orange-terre-battue-975-75-active);
   --background-alt-brown-cafe-creme: var(--brown-cafe-creme-975-75);
   --background-alt-brown-cafe-creme-hover: var(--brown-cafe-creme-975-75-hover);
-  --background-alt-brown-cafe-creme-active: var(
-    --brown-cafe-creme-975-75-active
-  );
+  --background-alt-brown-cafe-creme-active: var(--brown-cafe-creme-975-75-active);
   --background-alt-brown-caramel: var(--brown-caramel-975-75);
   --background-alt-brown-caramel-hover: var(--brown-caramel-975-75-hover);
   --background-alt-brown-caramel-active: var(--brown-caramel-975-75-active);
@@ -464,9 +442,7 @@
   --background-alt-brown-opera-active: var(--brown-opera-975-75-active);
   --background-alt-beige-gris-galet: var(--beige-gris-galet-975-75);
   --background-alt-beige-gris-galet-hover: var(--beige-gris-galet-975-75-hover);
-  --background-alt-beige-gris-galet-active: var(
-    --beige-gris-galet-975-75-active
-  );
+  --background-alt-beige-gris-galet-active: var(--beige-gris-galet-975-75-active);
   --background-contrast-grey: var(--grey-950-100);
   --background-contrast-grey-hover: var(--grey-950-100-hover);
   --background-contrast-grey-active: var(--grey-950-100-active);
@@ -476,39 +452,21 @@
   --background-contrast-red-marianne: var(--red-marianne-950-100);
   --background-contrast-red-marianne-hover: var(--red-marianne-950-100-hover);
   --background-contrast-red-marianne-active: var(--red-marianne-950-100-active);
-  --background-contrast-green-tilleul-verveine: var(
-    --green-tilleul-verveine-950-100
-  );
-  --background-contrast-green-tilleul-verveine-hover: var(
-    --green-tilleul-verveine-950-100-hover
-  );
-  --background-contrast-green-tilleul-verveine-active: var(
-    --green-tilleul-verveine-950-100-active
-  );
+  --background-contrast-green-tilleul-verveine: var(--green-tilleul-verveine-950-100);
+  --background-contrast-green-tilleul-verveine-hover: var(--green-tilleul-verveine-950-100-hover);
+  --background-contrast-green-tilleul-verveine-active: var(--green-tilleul-verveine-950-100-active);
   --background-contrast-green-bourgeon: var(--green-bourgeon-950-100);
-  --background-contrast-green-bourgeon-hover: var(
-    --green-bourgeon-950-100-hover
-  );
-  --background-contrast-green-bourgeon-active: var(
-    --green-bourgeon-950-100-active
-  );
+  --background-contrast-green-bourgeon-hover: var(--green-bourgeon-950-100-hover);
+  --background-contrast-green-bourgeon-active: var(--green-bourgeon-950-100-active);
   --background-contrast-green-emeraude: var(--green-emeraude-950-100);
-  --background-contrast-green-emeraude-hover: var(
-    --green-emeraude-950-100-hover
-  );
-  --background-contrast-green-emeraude-active: var(
-    --green-emeraude-950-100-active
-  );
+  --background-contrast-green-emeraude-hover: var(--green-emeraude-950-100-hover);
+  --background-contrast-green-emeraude-active: var(--green-emeraude-950-100-active);
   --background-contrast-green-menthe: var(--green-menthe-950-100);
   --background-contrast-green-menthe-hover: var(--green-menthe-950-100-hover);
   --background-contrast-green-menthe-active: var(--green-menthe-950-100-active);
   --background-contrast-green-archipel: var(--green-archipel-950-100);
-  --background-contrast-green-archipel-hover: var(
-    --green-archipel-950-100-hover
-  );
-  --background-contrast-green-archipel-active: var(
-    --green-archipel-950-100-active
-  );
+  --background-contrast-green-archipel-hover: var(--green-archipel-950-100-hover);
+  --background-contrast-green-archipel-active: var(--green-archipel-950-100-active);
   --background-contrast-blue-ecume: var(--blue-ecume-950-100);
   --background-contrast-blue-ecume-hover: var(--blue-ecume-950-100-hover);
   --background-contrast-blue-ecume-active: var(--blue-ecume-950-100-active);
@@ -516,12 +474,8 @@
   --background-contrast-blue-cumulus-hover: var(--blue-cumulus-950-100-hover);
   --background-contrast-blue-cumulus-active: var(--blue-cumulus-950-100-active);
   --background-contrast-purple-glycine: var(--purple-glycine-950-100);
-  --background-contrast-purple-glycine-hover: var(
-    --purple-glycine-950-100-hover
-  );
-  --background-contrast-purple-glycine-active: var(
-    --purple-glycine-950-100-active
-  );
+  --background-contrast-purple-glycine-hover: var(--purple-glycine-950-100-hover);
+  --background-contrast-purple-glycine-active: var(--purple-glycine-950-100-active);
   --background-contrast-pink-macaron: var(--pink-macaron-950-100);
   --background-contrast-pink-macaron-hover: var(--pink-macaron-950-100-hover);
   --background-contrast-pink-macaron-active: var(--pink-macaron-950-100-active);
@@ -529,48 +483,26 @@
   --background-contrast-pink-tuile-hover: var(--pink-tuile-950-100-hover);
   --background-contrast-pink-tuile-active: var(--pink-tuile-950-100-active);
   --background-contrast-yellow-tournesol: var(--yellow-tournesol-950-100);
-  --background-contrast-yellow-tournesol-hover: var(
-    --yellow-tournesol-950-100-hover
-  );
-  --background-contrast-yellow-tournesol-active: var(
-    --yellow-tournesol-950-100-active
-  );
+  --background-contrast-yellow-tournesol-hover: var(--yellow-tournesol-950-100-hover);
+  --background-contrast-yellow-tournesol-active: var(--yellow-tournesol-950-100-active);
   --background-contrast-yellow-moutarde: var(--yellow-moutarde-950-100);
-  --background-contrast-yellow-moutarde-hover: var(
-    --yellow-moutarde-950-100-hover
-  );
-  --background-contrast-yellow-moutarde-active: var(
-    --yellow-moutarde-950-100-active
-  );
+  --background-contrast-yellow-moutarde-hover: var(--yellow-moutarde-950-100-hover);
+  --background-contrast-yellow-moutarde-active: var(--yellow-moutarde-950-100-active);
   --background-contrast-orange-terre-battue: var(--orange-terre-battue-950-100);
-  --background-contrast-orange-terre-battue-hover: var(
-    --orange-terre-battue-950-100-hover
-  );
-  --background-contrast-orange-terre-battue-active: var(
-    --orange-terre-battue-950-100-active
-  );
+  --background-contrast-orange-terre-battue-hover: var(--orange-terre-battue-950-100-hover);
+  --background-contrast-orange-terre-battue-active: var(--orange-terre-battue-950-100-active);
   --background-contrast-brown-cafe-creme: var(--brown-cafe-creme-950-100);
-  --background-contrast-brown-cafe-creme-hover: var(
-    --brown-cafe-creme-950-100-hover
-  );
-  --background-contrast-brown-cafe-creme-active: var(
-    --brown-cafe-creme-950-100-active
-  );
+  --background-contrast-brown-cafe-creme-hover: var(--brown-cafe-creme-950-100-hover);
+  --background-contrast-brown-cafe-creme-active: var(--brown-cafe-creme-950-100-active);
   --background-contrast-brown-caramel: var(--brown-caramel-950-100);
   --background-contrast-brown-caramel-hover: var(--brown-caramel-950-100-hover);
-  --background-contrast-brown-caramel-active: var(
-    --brown-caramel-950-100-active
-  );
+  --background-contrast-brown-caramel-active: var(--brown-caramel-950-100-active);
   --background-contrast-brown-opera: var(--brown-opera-950-100);
   --background-contrast-brown-opera-hover: var(--brown-opera-950-100-hover);
   --background-contrast-brown-opera-active: var(--brown-opera-950-100-active);
   --background-contrast-beige-gris-galet: var(--beige-gris-galet-950-100);
-  --background-contrast-beige-gris-galet-hover: var(
-    --beige-gris-galet-950-100-hover
-  );
-  --background-contrast-beige-gris-galet-active: var(
-    --beige-gris-galet-950-100-active
-  );
+  --background-contrast-beige-gris-galet-hover: var(--beige-gris-galet-950-100-hover);
+  --background-contrast-beige-gris-galet-active: var(--beige-gris-galet-950-100-active);
   --background-contrast-info: var(--info-950-100);
   --background-contrast-info-hover: var(--info-950-100-hover);
   --background-contrast-info-active: var(--info-950-100-active);
@@ -589,158 +521,62 @@
   --background-flat-warning: var(--warning-425-625);
   --background-flat-error: var(--error-425-625);
   --background-action-high-blue-france: var(--blue-france-sun-113-625);
-  --background-action-high-blue-france-hover: var(
-    --blue-france-sun-113-625-hover
-  );
-  --background-action-high-blue-france-active: var(
-    --blue-france-sun-113-625-active
-  );
+  --background-action-high-blue-france-hover: var(--blue-france-sun-113-625-hover);
+  --background-action-high-blue-france-active: var(--blue-france-sun-113-625-active);
   --background-action-high-red-marianne: var(--red-marianne-425-625);
-  --background-action-high-red-marianne-hover: var(
-    --red-marianne-425-625-hover
-  );
-  --background-action-high-red-marianne-active: var(
-    --red-marianne-425-625-active
-  );
-  --background-action-high-green-tilleul-verveine: var(
-    --green-tilleul-verveine-sun-418-moon-817
-  );
-  --background-action-high-green-tilleul-verveine-hover: var(
-    --green-tilleul-verveine-sun-418-moon-817-hover
-  );
-  --background-action-high-green-tilleul-verveine-active: var(
-    --green-tilleul-verveine-sun-418-moon-817-active
-  );
-  --background-action-high-green-bourgeon: var(
-    --green-bourgeon-sun-425-moon-759
-  );
-  --background-action-high-green-bourgeon-hover: var(
-    --green-bourgeon-sun-425-moon-759-hover
-  );
-  --background-action-high-green-bourgeon-active: var(
-    --green-bourgeon-sun-425-moon-759-active
-  );
-  --background-action-high-green-emeraude: var(
-    --green-emeraude-sun-425-moon-753
-  );
-  --background-action-high-green-emeraude-hover: var(
-    --green-emeraude-sun-425-moon-753-hover
-  );
-  --background-action-high-green-emeraude-active: var(
-    --green-emeraude-sun-425-moon-753-active
-  );
+  --background-action-high-red-marianne-hover: var(--red-marianne-425-625-hover);
+  --background-action-high-red-marianne-active: var(--red-marianne-425-625-active);
+  --background-action-high-green-tilleul-verveine: var(--green-tilleul-verveine-sun-418-moon-817);
+  --background-action-high-green-tilleul-verveine-hover: var(--green-tilleul-verveine-sun-418-moon-817-hover);
+  --background-action-high-green-tilleul-verveine-active: var(--green-tilleul-verveine-sun-418-moon-817-active);
+  --background-action-high-green-bourgeon: var(--green-bourgeon-sun-425-moon-759);
+  --background-action-high-green-bourgeon-hover: var(--green-bourgeon-sun-425-moon-759-hover);
+  --background-action-high-green-bourgeon-active: var(--green-bourgeon-sun-425-moon-759-active);
+  --background-action-high-green-emeraude: var(--green-emeraude-sun-425-moon-753);
+  --background-action-high-green-emeraude-hover: var(--green-emeraude-sun-425-moon-753-hover);
+  --background-action-high-green-emeraude-active: var(--green-emeraude-sun-425-moon-753-active);
   --background-action-high-green-menthe: var(--green-menthe-sun-373-moon-652);
-  --background-action-high-green-menthe-hover: var(
-    --green-menthe-sun-373-moon-652-hover
-  );
-  --background-action-high-green-menthe-active: var(
-    --green-menthe-sun-373-moon-652-active
-  );
-  --background-action-high-green-archipel: var(
-    --green-archipel-sun-391-moon-716
-  );
-  --background-action-high-green-archipel-hover: var(
-    --green-archipel-sun-391-moon-716-hover
-  );
-  --background-action-high-green-archipel-active: var(
-    --green-archipel-sun-391-moon-716-active
-  );
+  --background-action-high-green-menthe-hover: var(--green-menthe-sun-373-moon-652-hover);
+  --background-action-high-green-menthe-active: var(--green-menthe-sun-373-moon-652-active);
+  --background-action-high-green-archipel: var(--green-archipel-sun-391-moon-716);
+  --background-action-high-green-archipel-hover: var(--green-archipel-sun-391-moon-716-hover);
+  --background-action-high-green-archipel-active: var(--green-archipel-sun-391-moon-716-active);
   --background-action-high-blue-ecume: var(--blue-ecume-sun-247-moon-675);
-  --background-action-high-blue-ecume-hover: var(
-    --blue-ecume-sun-247-moon-675-hover
-  );
-  --background-action-high-blue-ecume-active: var(
-    --blue-ecume-sun-247-moon-675-active
-  );
+  --background-action-high-blue-ecume-hover: var(--blue-ecume-sun-247-moon-675-hover);
+  --background-action-high-blue-ecume-active: var(--blue-ecume-sun-247-moon-675-active);
   --background-action-high-blue-cumulus: var(--blue-cumulus-sun-368-moon-732);
-  --background-action-high-blue-cumulus-hover: var(
-    --blue-cumulus-sun-368-moon-732-hover
-  );
-  --background-action-high-blue-cumulus-active: var(
-    --blue-cumulus-sun-368-moon-732-active
-  );
-  --background-action-high-purple-glycine: var(
-    --purple-glycine-sun-319-moon-630
-  );
-  --background-action-high-purple-glycine-hover: var(
-    --purple-glycine-sun-319-moon-630-hover
-  );
-  --background-action-high-purple-glycine-active: var(
-    --purple-glycine-sun-319-moon-630-active
-  );
+  --background-action-high-blue-cumulus-hover: var(--blue-cumulus-sun-368-moon-732-hover);
+  --background-action-high-blue-cumulus-active: var(--blue-cumulus-sun-368-moon-732-active);
+  --background-action-high-purple-glycine: var(--purple-glycine-sun-319-moon-630);
+  --background-action-high-purple-glycine-hover: var(--purple-glycine-sun-319-moon-630-hover);
+  --background-action-high-purple-glycine-active: var(--purple-glycine-sun-319-moon-630-active);
   --background-action-high-pink-macaron: var(--pink-macaron-sun-406-moon-833);
-  --background-action-high-pink-macaron-hover: var(
-    --pink-macaron-sun-406-moon-833-hover
-  );
-  --background-action-high-pink-macaron-active: var(
-    --pink-macaron-sun-406-moon-833-active
-  );
+  --background-action-high-pink-macaron-hover: var(--pink-macaron-sun-406-moon-833-hover);
+  --background-action-high-pink-macaron-active: var(--pink-macaron-sun-406-moon-833-active);
   --background-action-high-pink-tuile: var(--pink-tuile-sun-425-moon-750);
-  --background-action-high-pink-tuile-hover: var(
-    --pink-tuile-sun-425-moon-750-hover
-  );
-  --background-action-high-pink-tuile-active: var(
-    --pink-tuile-sun-425-moon-750-active
-  );
-  --background-action-high-yellow-tournesol: var(
-    --yellow-tournesol-sun-407-moon-922
-  );
-  --background-action-high-yellow-tournesol-hover: var(
-    --yellow-tournesol-sun-407-moon-922-hover
-  );
-  --background-action-high-yellow-tournesol-active: var(
-    --yellow-tournesol-sun-407-moon-922-active
-  );
-  --background-action-high-yellow-moutarde: var(
-    --yellow-moutarde-sun-348-moon-860
-  );
-  --background-action-high-yellow-moutarde-hover: var(
-    --yellow-moutarde-sun-348-moon-860-hover
-  );
-  --background-action-high-yellow-moutarde-active: var(
-    --yellow-moutarde-sun-348-moon-860-active
-  );
-  --background-action-high-orange-terre-battue: var(
-    --orange-terre-battue-sun-370-moon-672
-  );
-  --background-action-high-orange-terre-battue-hover: var(
-    --orange-terre-battue-sun-370-moon-672-hover
-  );
-  --background-action-high-orange-terre-battue-active: var(
-    --orange-terre-battue-sun-370-moon-672-active
-  );
-  --background-action-high-brown-cafe-creme: var(
-    --brown-cafe-creme-sun-383-moon-885
-  );
-  --background-action-high-brown-cafe-creme-hover: var(
-    --brown-cafe-creme-sun-383-moon-885-hover
-  );
-  --background-action-high-brown-cafe-creme-active: var(
-    --brown-cafe-creme-sun-383-moon-885-active
-  );
+  --background-action-high-pink-tuile-hover: var(--pink-tuile-sun-425-moon-750-hover);
+  --background-action-high-pink-tuile-active: var(--pink-tuile-sun-425-moon-750-active);
+  --background-action-high-yellow-tournesol: var(--yellow-tournesol-sun-407-moon-922);
+  --background-action-high-yellow-tournesol-hover: var(--yellow-tournesol-sun-407-moon-922-hover);
+  --background-action-high-yellow-tournesol-active: var(--yellow-tournesol-sun-407-moon-922-active);
+  --background-action-high-yellow-moutarde: var(--yellow-moutarde-sun-348-moon-860);
+  --background-action-high-yellow-moutarde-hover: var(--yellow-moutarde-sun-348-moon-860-hover);
+  --background-action-high-yellow-moutarde-active: var(--yellow-moutarde-sun-348-moon-860-active);
+  --background-action-high-orange-terre-battue: var(--orange-terre-battue-sun-370-moon-672);
+  --background-action-high-orange-terre-battue-hover: var(--orange-terre-battue-sun-370-moon-672-hover);
+  --background-action-high-orange-terre-battue-active: var(--orange-terre-battue-sun-370-moon-672-active);
+  --background-action-high-brown-cafe-creme: var(--brown-cafe-creme-sun-383-moon-885);
+  --background-action-high-brown-cafe-creme-hover: var(--brown-cafe-creme-sun-383-moon-885-hover);
+  --background-action-high-brown-cafe-creme-active: var(--brown-cafe-creme-sun-383-moon-885-active);
   --background-action-high-brown-caramel: var(--brown-caramel-sun-425-moon-901);
-  --background-action-high-brown-caramel-hover: var(
-    --brown-caramel-sun-425-moon-901-hover
-  );
-  --background-action-high-brown-caramel-active: var(
-    --brown-caramel-sun-425-moon-901-active
-  );
+  --background-action-high-brown-caramel-hover: var(--brown-caramel-sun-425-moon-901-hover);
+  --background-action-high-brown-caramel-active: var(--brown-caramel-sun-425-moon-901-active);
   --background-action-high-brown-opera: var(--brown-opera-sun-395-moon-820);
-  --background-action-high-brown-opera-hover: var(
-    --brown-opera-sun-395-moon-820-hover
-  );
-  --background-action-high-brown-opera-active: var(
-    --brown-opera-sun-395-moon-820-active
-  );
-  --background-action-high-beige-gris-galet: var(
-    --beige-gris-galet-sun-407-moon-821
-  );
-  --background-action-high-beige-gris-galet-hover: var(
-    --beige-gris-galet-sun-407-moon-821-hover
-  );
-  --background-action-high-beige-gris-galet-active: var(
-    --beige-gris-galet-sun-407-moon-821-active
-  );
+  --background-action-high-brown-opera-hover: var(--brown-opera-sun-395-moon-820-hover);
+  --background-action-high-brown-opera-active: var(--brown-opera-sun-395-moon-820-active);
+  --background-action-high-beige-gris-galet: var(--beige-gris-galet-sun-407-moon-821);
+  --background-action-high-beige-gris-galet-hover: var(--beige-gris-galet-sun-407-moon-821-hover);
+  --background-action-high-beige-gris-galet-active: var(--beige-gris-galet-sun-407-moon-821-active);
   --background-action-high-info: var(--info-425-625);
   --background-action-high-info-hover: var(--info-425-625-hover);
   --background-action-high-info-active: var(--info-425-625-active);
@@ -758,114 +594,58 @@
   --background-action-low-blue-france-active: var(--blue-france-925-125-active);
   --background-action-low-red-marianne: var(--red-marianne-925-125);
   --background-action-low-red-marianne-hover: var(--red-marianne-925-125-hover);
-  --background-action-low-red-marianne-active: var(
-    --red-marianne-925-125-active
-  );
-  --background-action-low-green-tilleul-verveine: var(
-    --green-tilleul-verveine-925-125
-  );
-  --background-action-low-green-tilleul-verveine-hover: var(
-    --green-tilleul-verveine-925-125-hover
-  );
-  --background-action-low-green-tilleul-verveine-active: var(
-    --green-tilleul-verveine-925-125-active
-  );
+  --background-action-low-red-marianne-active: var(--red-marianne-925-125-active);
+  --background-action-low-green-tilleul-verveine: var(--green-tilleul-verveine-925-125);
+  --background-action-low-green-tilleul-verveine-hover: var(--green-tilleul-verveine-925-125-hover);
+  --background-action-low-green-tilleul-verveine-active: var(--green-tilleul-verveine-925-125-active);
   --background-action-low-green-bourgeon: var(--green-bourgeon-925-125);
-  --background-action-low-green-bourgeon-hover: var(
-    --green-bourgeon-925-125-hover
-  );
-  --background-action-low-green-bourgeon-active: var(
-    --green-bourgeon-925-125-active
-  );
+  --background-action-low-green-bourgeon-hover: var(--green-bourgeon-925-125-hover);
+  --background-action-low-green-bourgeon-active: var(--green-bourgeon-925-125-active);
   --background-action-low-green-emeraude: var(--green-emeraude-925-125);
-  --background-action-low-green-emeraude-hover: var(
-    --green-emeraude-925-125-hover
-  );
-  --background-action-low-green-emeraude-active: var(
-    --green-emeraude-925-125-active
-  );
+  --background-action-low-green-emeraude-hover: var(--green-emeraude-925-125-hover);
+  --background-action-low-green-emeraude-active: var(--green-emeraude-925-125-active);
   --background-action-low-green-menthe: var(--green-menthe-925-125);
   --background-action-low-green-menthe-hover: var(--green-menthe-925-125-hover);
-  --background-action-low-green-menthe-active: var(
-    --green-menthe-925-125-active
-  );
+  --background-action-low-green-menthe-active: var(--green-menthe-925-125-active);
   --background-action-low-green-archipel: var(--green-archipel-925-125);
-  --background-action-low-green-archipel-hover: var(
-    --green-archipel-925-125-hover
-  );
-  --background-action-low-green-archipel-active: var(
-    --green-archipel-925-125-active
-  );
+  --background-action-low-green-archipel-hover: var(--green-archipel-925-125-hover);
+  --background-action-low-green-archipel-active: var(--green-archipel-925-125-active);
   --background-action-low-blue-ecume: var(--blue-ecume-925-125);
   --background-action-low-blue-ecume-hover: var(--blue-ecume-925-125-hover);
   --background-action-low-blue-ecume-active: var(--blue-ecume-925-125-active);
   --background-action-low-blue-cumulus: var(--blue-cumulus-925-125);
   --background-action-low-blue-cumulus-hover: var(--blue-cumulus-925-125-hover);
-  --background-action-low-blue-cumulus-active: var(
-    --blue-cumulus-925-125-active
-  );
+  --background-action-low-blue-cumulus-active: var(--blue-cumulus-925-125-active);
   --background-action-low-purple-glycine: var(--purple-glycine-925-125);
-  --background-action-low-purple-glycine-hover: var(
-    --purple-glycine-925-125-hover
-  );
-  --background-action-low-purple-glycine-active: var(
-    --purple-glycine-925-125-active
-  );
+  --background-action-low-purple-glycine-hover: var(--purple-glycine-925-125-hover);
+  --background-action-low-purple-glycine-active: var(--purple-glycine-925-125-active);
   --background-action-low-pink-macaron: var(--pink-macaron-925-125);
   --background-action-low-pink-macaron-hover: var(--pink-macaron-925-125-hover);
-  --background-action-low-pink-macaron-active: var(
-    --pink-macaron-925-125-active
-  );
+  --background-action-low-pink-macaron-active: var(--pink-macaron-925-125-active);
   --background-action-low-pink-tuile: var(--pink-tuile-925-125);
   --background-action-low-pink-tuile-hover: var(--pink-tuile-925-125-hover);
   --background-action-low-pink-tuile-active: var(--pink-tuile-925-125-active);
   --background-action-low-yellow-tournesol: var(--yellow-tournesol-925-125);
-  --background-action-low-yellow-tournesol-hover: var(
-    --yellow-tournesol-925-125-hover
-  );
-  --background-action-low-yellow-tournesol-active: var(
-    --yellow-tournesol-925-125-active
-  );
+  --background-action-low-yellow-tournesol-hover: var(--yellow-tournesol-925-125-hover);
+  --background-action-low-yellow-tournesol-active: var(--yellow-tournesol-925-125-active);
   --background-action-low-yellow-moutarde: var(--yellow-moutarde-925-125);
-  --background-action-low-yellow-moutarde-hover: var(
-    --yellow-moutarde-925-125-hover
-  );
-  --background-action-low-yellow-moutarde-active: var(
-    --yellow-moutarde-925-125-active
-  );
-  --background-action-low-orange-terre-battue: var(
-    --orange-terre-battue-925-125
-  );
-  --background-action-low-orange-terre-battue-hover: var(
-    --orange-terre-battue-925-125-hover
-  );
-  --background-action-low-orange-terre-battue-active: var(
-    --orange-terre-battue-925-125-active
-  );
+  --background-action-low-yellow-moutarde-hover: var(--yellow-moutarde-925-125-hover);
+  --background-action-low-yellow-moutarde-active: var(--yellow-moutarde-925-125-active);
+  --background-action-low-orange-terre-battue: var(--orange-terre-battue-925-125);
+  --background-action-low-orange-terre-battue-hover: var(--orange-terre-battue-925-125-hover);
+  --background-action-low-orange-terre-battue-active: var(--orange-terre-battue-925-125-active);
   --background-action-low-brown-cafe-creme: var(--brown-cafe-creme-925-125);
-  --background-action-low-brown-cafe-creme-hover: var(
-    --brown-cafe-creme-925-125-hover
-  );
-  --background-action-low-brown-cafe-creme-active: var(
-    --brown-cafe-creme-925-125-active
-  );
+  --background-action-low-brown-cafe-creme-hover: var(--brown-cafe-creme-925-125-hover);
+  --background-action-low-brown-cafe-creme-active: var(--brown-cafe-creme-925-125-active);
   --background-action-low-brown-caramel: var(--brown-caramel-925-125);
-  --background-action-low-brown-caramel-hover: var(
-    --brown-caramel-925-125-hover
-  );
-  --background-action-low-brown-caramel-active: var(
-    --brown-caramel-925-125-active
-  );
+  --background-action-low-brown-caramel-hover: var(--brown-caramel-925-125-hover);
+  --background-action-low-brown-caramel-active: var(--brown-caramel-925-125-active);
   --background-action-low-brown-opera: var(--brown-opera-925-125);
   --background-action-low-brown-opera-hover: var(--brown-opera-925-125-hover);
   --background-action-low-brown-opera-active: var(--brown-opera-925-125-active);
   --background-action-low-beige-gris-galet: var(--beige-gris-galet-925-125);
-  --background-action-low-beige-gris-galet-hover: var(
-    --beige-gris-galet-925-125-hover
-  );
-  --background-action-low-beige-gris-galet-active: var(
-    --beige-gris-galet-925-125-active
-  );
+  --background-action-low-beige-gris-galet-hover: var(--beige-gris-galet-925-125-hover);
+  --background-action-low-beige-gris-galet-active: var(--beige-gris-galet-925-125-active);
   --background-active-blue-france: var(--blue-france-sun-113-625);
   --background-active-blue-france-hover: var(--blue-france-sun-113-625-hover);
   --background-active-blue-france-active: var(--blue-france-sun-113-625-active);
@@ -908,9 +688,7 @@
   --text-action-high-grey: var(--grey-50-1000);
   --text-action-high-blue-france: var(--blue-france-sun-113-625);
   --text-action-high-red-marianne: var(--red-marianne-425-625);
-  --text-action-high-green-tilleul-verveine: var(
-    --green-tilleul-verveine-sun-418-moon-817
-  );
+  --text-action-high-green-tilleul-verveine: var(--green-tilleul-verveine-sun-418-moon-817);
   --text-action-high-green-bourgeon: var(--green-bourgeon-sun-425-moon-759);
   --text-action-high-green-emeraude: var(--green-emeraude-sun-425-moon-753);
   --text-action-high-green-menthe: var(--green-menthe-sun-373-moon-652);
@@ -922,9 +700,7 @@
   --text-action-high-pink-tuile: var(--pink-tuile-sun-425-moon-750);
   --text-action-high-yellow-tournesol: var(--yellow-tournesol-sun-407-moon-922);
   --text-action-high-yellow-moutarde: var(--yellow-moutarde-sun-348-moon-860);
-  --text-action-high-orange-terre-battue: var(
-    --orange-terre-battue-sun-370-moon-672
-  );
+  --text-action-high-orange-terre-battue: var(--orange-terre-battue-sun-370-moon-672);
   --text-action-high-brown-cafe-creme: var(--brown-cafe-creme-sun-383-moon-885);
   --text-action-high-brown-caramel: var(--brown-caramel-sun-425-moon-901);
   --text-action-high-brown-opera: var(--brown-opera-sun-395-moon-820);
@@ -935,9 +711,7 @@
   --text-label-grey: var(--grey-50-1000);
   --text-label-blue-france: var(--blue-france-sun-113-625);
   --text-label-red-marianne: var(--red-marianne-425-625);
-  --text-label-green-tilleul-verveine: var(
-    --green-tilleul-verveine-sun-418-moon-817
-  );
+  --text-label-green-tilleul-verveine: var(--green-tilleul-verveine-sun-418-moon-817);
   --text-label-green-bourgeon: var(--green-bourgeon-sun-425-moon-759);
   --text-label-green-emeraude: var(--green-emeraude-sun-425-moon-753);
   --text-label-green-menthe: var(--green-menthe-sun-373-moon-652);
@@ -986,9 +760,7 @@
   --border-default-grey: var(--grey-900-175);
   --border-default-blue-france: var(--blue-france-main-525);
   --border-default-red-marianne: var(--red-marianne-main-472);
-  --border-default-green-tilleul-verveine: var(
-    --green-tilleul-verveine-main-707
-  );
+  --border-default-green-tilleul-verveine: var(--green-tilleul-verveine-main-707);
   --border-default-green-bourgeon: var(--green-bourgeon-main-640);
   --border-default-green-emeraude: var(--green-emeraude-main-632);
   --border-default-green-menthe: var(--green-menthe-main-548);
@@ -1016,9 +788,7 @@
   --border-action-high-error: var(--error-425-625);
   --border-action-low-blue-france: var(--blue-france-850-200);
   --border-action-low-red-marianne: var(--red-marianne-850-200);
-  --border-action-low-green-tilleul-verveine: var(
-    --green-tilleul-verveine-850-200
-  );
+  --border-action-low-green-tilleul-verveine: var(--green-tilleul-verveine-850-200);
   --border-action-low-green-bourgeon: var(--green-bourgeon-850-200);
   --border-action-low-green-emeraude: var(--green-emeraude-850-200);
   --border-action-low-green-menthe: var(--green-menthe-850-200);
@@ -1044,9 +814,7 @@
   --border-plain-success: var(--success-425-625);
   --border-plain-warning: var(--warning-425-625);
   --border-plain-error: var(--error-425-625);
-  --border-plain-green-tilleul-verveine: var(
-    --green-tilleul-verveine-sun-418-moon-817
-  );
+  --border-plain-green-tilleul-verveine: var(--green-tilleul-verveine-sun-418-moon-817);
   --border-plain-green-bourgeon: var(--green-bourgeon-sun-425-moon-759);
   --border-plain-green-emeraude: var(--green-emeraude-sun-425-moon-753);
   --border-plain-green-menthe: var(--green-menthe-sun-373-moon-652);
@@ -1058,9 +826,7 @@
   --border-plain-pink-tuile: var(--pink-tuile-sun-425-moon-750);
   --border-plain-yellow-tournesol: var(--yellow-tournesol-sun-407-moon-922);
   --border-plain-yellow-moutarde: var(--yellow-moutarde-sun-348-moon-860);
-  --border-plain-orange-terre-battue: var(
-    --orange-terre-battue-sun-370-moon-672
-  );
+  --border-plain-orange-terre-battue: var(--orange-terre-battue-sun-370-moon-672);
   --border-plain-brown-cafe-creme: var(--brown-cafe-creme-sun-383-moon-885);
   --border-plain-brown-caramel: var(--brown-caramel-sun-425-moon-901);
   --border-plain-brown-opera: var(--brown-opera-sun-395-moon-820);
@@ -1072,124 +838,60 @@
   --artwork-major-red-marianne: var(--red-marianne-425-625);
   --artwork-major-red-marianne-hover: var(--red-marianne-425-625-hover);
   --artwork-major-red-marianne-active: var(--red-marianne-425-625-active);
-  --artwork-major-green-tilleul-verveine: var(
-    --green-tilleul-verveine-sun-418-moon-817
-  );
-  --artwork-major-green-tilleul-verveine-hover: var(
-    --green-tilleul-verveine-sun-418-moon-817-hover
-  );
-  --artwork-major-green-tilleul-verveine-active: var(
-    --green-tilleul-verveine-sun-418-moon-817-active
-  );
+  --artwork-major-green-tilleul-verveine: var(--green-tilleul-verveine-sun-418-moon-817);
+  --artwork-major-green-tilleul-verveine-hover: var(--green-tilleul-verveine-sun-418-moon-817-hover);
+  --artwork-major-green-tilleul-verveine-active: var(--green-tilleul-verveine-sun-418-moon-817-active);
   --artwork-major-green-bourgeon: var(--green-bourgeon-sun-425-moon-759);
-  --artwork-major-green-bourgeon-hover: var(
-    --green-bourgeon-sun-425-moon-759-hover
-  );
-  --artwork-major-green-bourgeon-active: var(
-    --green-bourgeon-sun-425-moon-759-active
-  );
+  --artwork-major-green-bourgeon-hover: var(--green-bourgeon-sun-425-moon-759-hover);
+  --artwork-major-green-bourgeon-active: var(--green-bourgeon-sun-425-moon-759-active);
   --artwork-major-green-emeraude: var(--green-emeraude-sun-425-moon-753);
-  --artwork-major-green-emeraude-hover: var(
-    --green-emeraude-sun-425-moon-753-hover
-  );
-  --artwork-major-green-emeraude-active: var(
-    --green-emeraude-sun-425-moon-753-active
-  );
+  --artwork-major-green-emeraude-hover: var(--green-emeraude-sun-425-moon-753-hover);
+  --artwork-major-green-emeraude-active: var(--green-emeraude-sun-425-moon-753-active);
   --artwork-major-green-menthe: var(--green-menthe-sun-373-moon-652);
-  --artwork-major-green-menthe-hover: var(
-    --green-menthe-sun-373-moon-652-hover
-  );
-  --artwork-major-green-menthe-active: var(
-    --green-menthe-sun-373-moon-652-active
-  );
+  --artwork-major-green-menthe-hover: var(--green-menthe-sun-373-moon-652-hover);
+  --artwork-major-green-menthe-active: var(--green-menthe-sun-373-moon-652-active);
   --artwork-major-green-archipel: var(--green-archipel-sun-391-moon-716);
-  --artwork-major-green-archipel-hover: var(
-    --green-archipel-sun-391-moon-716-hover
-  );
-  --artwork-major-green-archipel-active: var(
-    --green-archipel-sun-391-moon-716-active
-  );
+  --artwork-major-green-archipel-hover: var(--green-archipel-sun-391-moon-716-hover);
+  --artwork-major-green-archipel-active: var(--green-archipel-sun-391-moon-716-active);
   --artwork-major-blue-ecume: var(--blue-ecume-sun-247-moon-675);
   --artwork-major-blue-ecume-hover: var(--blue-ecume-sun-247-moon-675-hover);
   --artwork-major-blue-ecume-active: var(--blue-ecume-sun-247-moon-675-active);
   --artwork-major-blue-cumulus: var(--blue-cumulus-sun-368-moon-732);
-  --artwork-major-blue-cumulus-hover: var(
-    --blue-cumulus-sun-368-moon-732-hover
-  );
-  --artwork-major-blue-cumulus-active: var(
-    --blue-cumulus-sun-368-moon-732-active
-  );
+  --artwork-major-blue-cumulus-hover: var(--blue-cumulus-sun-368-moon-732-hover);
+  --artwork-major-blue-cumulus-active: var(--blue-cumulus-sun-368-moon-732-active);
   --artwork-major-purple-glycine: var(--purple-glycine-sun-319-moon-630);
-  --artwork-major-purple-glycine-hover: var(
-    --purple-glycine-sun-319-moon-630-hover
-  );
-  --artwork-major-purple-glycine-active: var(
-    --purple-glycine-sun-319-moon-630-active
-  );
+  --artwork-major-purple-glycine-hover: var(--purple-glycine-sun-319-moon-630-hover);
+  --artwork-major-purple-glycine-active: var(--purple-glycine-sun-319-moon-630-active);
   --artwork-major-pink-macaron: var(--pink-macaron-sun-406-moon-833);
-  --artwork-major-pink-macaron-hover: var(
-    --pink-macaron-sun-406-moon-833-hover
-  );
-  --artwork-major-pink-macaron-active: var(
-    --pink-macaron-sun-406-moon-833-active
-  );
+  --artwork-major-pink-macaron-hover: var(--pink-macaron-sun-406-moon-833-hover);
+  --artwork-major-pink-macaron-active: var(--pink-macaron-sun-406-moon-833-active);
   --artwork-major-pink-tuile: var(--pink-tuile-sun-425-moon-750);
   --artwork-major-pink-tuile-hover: var(--pink-tuile-sun-425-moon-750-hover);
   --artwork-major-pink-tuile-active: var(--pink-tuile-sun-425-moon-750-active);
   --artwork-major-yellow-tournesol: var(--yellow-tournesol-sun-407-moon-922);
-  --artwork-major-yellow-tournesol-hover: var(
-    --yellow-tournesol-sun-407-moon-922-hover
-  );
-  --artwork-major-yellow-tournesol-active: var(
-    --yellow-tournesol-sun-407-moon-922-active
-  );
+  --artwork-major-yellow-tournesol-hover: var(--yellow-tournesol-sun-407-moon-922-hover);
+  --artwork-major-yellow-tournesol-active: var(--yellow-tournesol-sun-407-moon-922-active);
   --artwork-major-yellow-moutarde: var(--yellow-moutarde-sun-348-moon-860);
-  --artwork-major-yellow-moutarde-hover: var(
-    --yellow-moutarde-sun-348-moon-860-hover
-  );
-  --artwork-major-yellow-moutarde-active: var(
-    --yellow-moutarde-sun-348-moon-860-active
-  );
-  --artwork-major-orange-terre-battue: var(
-    --orange-terre-battue-sun-370-moon-672
-  );
-  --artwork-major-orange-terre-battue-hover: var(
-    --orange-terre-battue-sun-370-moon-672-hover
-  );
-  --artwork-major-orange-terre-battue-active: var(
-    --orange-terre-battue-sun-370-moon-672-active
-  );
+  --artwork-major-yellow-moutarde-hover: var(--yellow-moutarde-sun-348-moon-860-hover);
+  --artwork-major-yellow-moutarde-active: var(--yellow-moutarde-sun-348-moon-860-active);
+  --artwork-major-orange-terre-battue: var(--orange-terre-battue-sun-370-moon-672);
+  --artwork-major-orange-terre-battue-hover: var(--orange-terre-battue-sun-370-moon-672-hover);
+  --artwork-major-orange-terre-battue-active: var(--orange-terre-battue-sun-370-moon-672-active);
   --artwork-major-brown-cafe-creme: var(--brown-cafe-creme-sun-383-moon-885);
-  --artwork-major-brown-cafe-creme-hover: var(
-    --brown-cafe-creme-sun-383-moon-885-hover
-  );
-  --artwork-major-brown-cafe-creme-active: var(
-    --brown-cafe-creme-sun-383-moon-885-active
-  );
+  --artwork-major-brown-cafe-creme-hover: var(--brown-cafe-creme-sun-383-moon-885-hover);
+  --artwork-major-brown-cafe-creme-active: var(--brown-cafe-creme-sun-383-moon-885-active);
   --artwork-major-brown-caramel: var(--brown-caramel-sun-425-moon-901);
-  --artwork-major-brown-caramel-hover: var(
-    --brown-caramel-sun-425-moon-901-hover
-  );
-  --artwork-major-brown-caramel-active: var(
-    --brown-caramel-sun-425-moon-901-active
-  );
+  --artwork-major-brown-caramel-hover: var(--brown-caramel-sun-425-moon-901-hover);
+  --artwork-major-brown-caramel-active: var(--brown-caramel-sun-425-moon-901-active);
   --artwork-major-brown-opera: var(--brown-opera-sun-395-moon-820);
   --artwork-major-brown-opera-hover: var(--brown-opera-sun-395-moon-820-hover);
-  --artwork-major-brown-opera-active: var(
-    --brown-opera-sun-395-moon-820-active
-  );
+  --artwork-major-brown-opera-active: var(--brown-opera-sun-395-moon-820-active);
   --artwork-major-beige-gris-galet: var(--beige-gris-galet-sun-407-moon-821);
-  --artwork-major-beige-gris-galet-hover: var(
-    --beige-gris-galet-sun-407-moon-821-hover
-  );
-  --artwork-major-beige-gris-galet-active: var(
-    --beige-gris-galet-sun-407-moon-821-active
-  );
+  --artwork-major-beige-gris-galet-hover: var(--beige-gris-galet-sun-407-moon-821-hover);
+  --artwork-major-beige-gris-galet-active: var(--beige-gris-galet-sun-407-moon-821-active);
   --artwork-minor-blue-france: var(--blue-france-main-525);
   --artwork-minor-red-marianne: var(--red-marianne-main-472);
-  --artwork-minor-green-tilleul-verveine: var(
-    --green-tilleul-verveine-main-707
-  );
+  --artwork-minor-green-tilleul-verveine: var(--green-tilleul-verveine-main-707);
   --artwork-minor-green-bourgeon: var(--green-bourgeon-main-640);
   --artwork-minor-green-emeraude: var(--green-emeraude-main-632);
   --artwork-minor-green-menthe: var(--green-menthe-main-548);
@@ -1547,12 +1249,10 @@
 }
 .dsfr [href] {
   background-image: var(--underline-img), var(--underline-img);
-  background-position: var(--underline-x) 100%,
-    var(--underline-x) calc(100% - 0.0625em);
+  background-position: var(--underline-x) 100%, var(--underline-x) calc(100% - 0.0625em);
   background-repeat: no-repeat, no-repeat;
   transition: background-size 0s;
-  background-size: var(--underline-hover-width) 0.125em,
-    var(--underline-idle-width) 0.0625em;
+  background-size: var(--underline-hover-width) 0.125em, var(--underline-idle-width) 0.0625em;
 }
 .dsfr [target='_blank']::after {
   flex: 0 0 auto;
@@ -1684,8 +1384,7 @@
 .dsfr [tabindex]:focus:not(:focus-visible),
 .dsfr video:focus:not(:focus-visible)[controls],
 .dsfr audio:focus:not(:focus-visible)[controls],
-.dsfr
-  [contenteditable]:not([contenteditable='false']):focus:not(:focus-visible),
+.dsfr [contenteditable]:not([contenteditable='false']):focus:not(:focus-visible),
 .dsfr details:focus:not(:focus-visible),
 .dsfr details > summary:first-of-type:focus:not(:focus-visible) {
   outline-style: none;
@@ -2097,11 +1796,7 @@ body {
   background-size: 100% 1px;
   background-repeat: no-repeat;
   background-position: 0 0;
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-grey),
-    var(--border-default-grey)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
 }
 .dsfr .fr-hr {
   padding: var(--text-spacing);
@@ -2111,11 +1806,7 @@ body {
   background-size: 100% 1px;
   background-repeat: no-repeat;
   background-position: 0 0;
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-grey),
-    var(--border-default-grey)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
 }
 .dsfr .fr-hr--sm {
   width: 10rem;
@@ -6740,8 +6431,7 @@ body {
   width: 100%;
   height: 100%;
   pointer-events: none;
-  box-shadow: inset 0 1px 0 0 var(--border-default-grey),
-    0 1px 0 0 var(--border-default-grey);
+  box-shadow: inset 0 1px 0 0 var(--border-default-grey), 0 1px 0 0 var(--border-default-grey);
 }
 .dsfr .fr-accordion__title {
   margin: 0;
@@ -7199,8 +6889,7 @@ body {
   display: block;
   background-repeat: no-repeat, no-repeat, no-repeat;
   background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 18'%3E%3Cpath fill='%23fff' d='M11.3 10.2c-.9.6-1.7 1.3-2.3 2.1v-.1c.4-.5.7-1 1-1.5.4-.2.7-.5 1-.8.5-.5 1-1 1.7-1.3.3-.1.5-.1.8 0-.1.1-.2.1-.4.2H13v-.1c-.3.3-.7.5-1 .9-.1.2-.2.6-.7.6 0 .1.1 0 0 0zm1.6 4.6c0-.1-.1 0-.2 0l-.1.1-.1.1-.2.2s.1.1.2 0l.1-.1c.1 0 .2-.1.2-.2.1 0 .1 0 .1-.1 0 .1 0 0 0 0zm-1.6-4.3c.1 0 .2 0 .2-.1s.1-.1.1-.1v-.1c-.2.1-.3.2-.3.3zm2.4 1.9s0-.1 0 0c.1-.1.2-.1.3-.1.7-.1 1.4-.3 2.1-.6-.8-.5-1.7-.9-2.6-1h.1c-.1-.1-.3-.1-.5-.2h.1c-.2-.1-.5-.1-.7-.2.1 0 .2-.2.2-.3h-.1c-.4.2-.6.5-.8.9.2.1.5 0 .7.1h-.3c-.1 0-.2.1-.2.2h.1c-.1 0-.1.1-.2.1.1.1.2 0 .4 0 0 .1.1.1.1.1-.1 0-.2.1-.3.3-.1.2-.2.2-.3.3v.1c-.3.2-.6.5-.9.8v.1c-.1.1-.2.1-.2.2v.1c.4-.1.6-.4 1-.5l.6-.3c.2 0 .3-.1.5-.1v.1h.2c0 .1-.2 0-.1.1s.3.1.4 0c.2-.2.3-.2.4-.2zM12.4 14c-.4.2-.9.2-1.2.4 0 0 0 .1-.1.1 0 0-.1 0-.1.1-.1 0-.1.1-.2.2l-.1.1s0 .1.1 0l.1-.1s-.1.1-.1.2V15.3l-.1.1s0 .1-.1.1l-.1.1.2-.2.1-.1h.2s0-.1.1-.1c.1-.1.2-.2.3-.2h.1c.1-.1.3-.1.4-.2.1-.1.2-.2.3-.2.2-.2.5-.3.8-.5-.1 0-.2-.1-.3-.1 0 .1-.2 0-.3 0zM30 9.7c-.1.2-.4.2-.6.3-.2.2 0 .4.1.5.1.3-.2.5-.4.5.1.1.2.1.2.1 0 .2.2.2.1.4s-.5.3-.3.5c.1.2.1.5 0 .7-.1.2-.3.4-.5.5-.2.1-.4.1-.6 0-.1 0-.1-.1-.2-.1-.5-.1-1-.2-1.5-.2-.1 0-.3.1-.4.1-.1.1-.3.2-.4.3l-.1.1c-.1.1-.2.2-.2.3-.1.2-.2.4-.2.6-.2.5-.2 1 0 1.4 0 0 1 .3 1.7.6.2.1.5.2.7.4l1.7 1H13.2l1.6-1c.6-.4 1.3-.7 2-1 .5-.2 1.1-.5 1.5-.9.2-.2.3-.4.5-.5.3-.4.6-.7 1-1l.3-.3s0-.1.1-.1c-.2.1-.2.2-.4.2 0 0-.1 0 0-.1s.2-.2.3-.2v-.1c-.4 0-.7.2-1 .5h-.2c-.5.2-.8.5-1.2.7v-.1c-.2.1-.4.2-.5.2-.2 0-.5.1-.8 0-.4 0-.7.1-1.1.2-.2.1-.4.1-.6.2v.1l-.2.2c-.2.1-.3.2-.5.4l-.5.5h-.1l.1-.1.1-.1c0-.1.1-.1.1-.2.2-.1.3-.3.5-.4 0 0-.1 0 0 0 0 0 0-.1.1-.1l-.1.1c-.1.1-.1.2-.2.2v-.1-.1l.2-.2c.1-.1.2-.1.3-.2h.1c-.2.1-.3.1-.5.2H14h-.1c0-.1.1-.1.2-.2h.1c1-.8 2.3-.6 3.4-1 .1-.1.2-.1.3-.2.1-.1.3-.2.5-.3.2-.2.4-.4.5-.7v-.1c-.4.4-.8.7-1.3 1-.6.2-1.3.4-2 .4 0-.1.1-.1.1-.1 0-.1.1-.1.1-.2h.1s0-.1.1-.1h.1c-.1-.1-.3.1-.4 0 .1-.1 0-.2.1-.2h.1s0-.1.1-.1c.5-.3.9-.5 1.3-.7-.1 0-.1.1-.2 0 .1 0 0-.1.1-.1.3-.1.6-.3.9-.4-.1 0-.2.1-.3 0 .1 0 .1-.1.2-.1v-.1h0c0-.1.1 0 .2-.1h-.1c.1-.1.2-.2.4-.2 0-.1-.1 0-.1-.1h.1-.5c-.1 0 0-.1 0-.1.1-.2.2-.5.3-.7h-.1c-.3.3-.8.5-1.2.6h-.2c-.2.1-.4.1-.5 0-.1-.1-.2-.2-.3-.2-.2-.1-.5-.3-.8-.4-.7-.2-1.5-.4-2.3-.3.3-.1.7-.2 1.1-.3.5-.2 1-.3 1.5-.3h-.3c-.4 0-.9.1-1.3.2-.3.1-.6.2-.9.2-.2.1-.3.2-.5.2v-.1c.3-.4.7-.7 1.1-.8.5-.1 1.1 0 1.6.1.4 0 .8.1 1.1.2.1 0 .2.2.3.3.2.1.4 0 .5.1v-.2c.1-.1.3 0 .4 0 .2-.2-.2-.4-.3-.6v-.1c.2.2.5.4.7.6.1.1.5.2.5 0-.2-.3-.4-.6-.7-.9v-.2c-.1 0-.1 0-.1-.1-.1-.1-.1-.2-.1-.3-.1-.2 0-.4-.1-.5-.1-.2-.1-.3-.1-.5-.1-.5-.2-1-.3-1.4-.1-.6.3-1 .6-1.5.2-.4.5-.7.8-1 .1-.4.3-.7.6-1 .3-.3.6-.5.9-.6.3-.1.5-.2.8-.3l2.5-.4H25l1.8.3c.1 0 .2 0 .2.1.1.1.3.2.4.2.2.1.4.3.6.5.1.1.2.3.1.4-.1.1-.1.4-.2.4-.2.1-.4.1-.6.1-.1 0-.2 0-.4-.1.5.2.9.4 1.2.8 0 .1.2.1.3.1v.1c-.1.1-.1.1-.1.2h.1c.1-.1.1-.4.3-.3.2.1.2.3.1.4-.1.1-.2.2-.4.3v.2c.1.1.1.2.2.4s.1.5.2.7c.1.5.2.9.2 1.4 0 .2-.1.5 0 .7l.3.6c.1.2.2.3.3.5.2.3.6.6.4 1zm-15.6 5.2c-.1 0-.1.1-.1.1s.1 0 .1-.1zm5.8-1.8c-.1.1 0 0 0 0zm-6.7-.2c0 .1.1 0 .1 0 .2-.1.5 0 .6-.2-.1-.1-.2 0-.2-.1-.1 0-.2 0-.2.1-.1.1-.3.1-.3.2z'/%3E%3Cpath fill='gray' d='M27.9 6.8c.1 0 .3 0 .3.1-.1.2-.4.3-.6.5h-.1c-.1.1-.1.2-.1.2h-.3c.1.1.3.2.5.2l.1.1h.2V8c-.1.1-.2.1-.4.1.2.1.5.1.7 0 .2-.1 0-.4.1-.5-.1 0 0-.1-.1-.1.1-.1.1-.2.2-.2s.1 0 .2-.1c0-.1-.1-.1-.1-.2.2-.1.3-.3.3-.5 0-.1-.3-.1-.4-.2h-.5c-.2 0-.3.1-.5.1l-.6.3c.2-.1.4-.1.7-.2 0 .3.2.3.4.3'/%3E%3C/svg%3E"),
-    linear-gradient(90deg, #000091 0%, #000091 50%, #e1000f 50%, #e1000f 100%),
-    linear-gradient(90deg, #161616 0%, #161616 100%);
+    linear-gradient(90deg, #000091 0%, #000091 50%, #e1000f 50%, #e1000f 100%), linear-gradient(90deg, #161616 0%, #161616 100%);
 }
 :root[data-fr-mourning] .fr-logo::before {
   background-size: 2.75rem 1.125rem, 0, 2.75rem 1rem;
@@ -7326,13 +7015,10 @@ body {
   margin-left: 0;
   margin-right: 0.5rem;
 }
-.dsfr
-  .fr-btn--align-on-content[class^='fr-icon-']:not([class*='fr-btn--icon-']),
-.dsfr
-  .fr-btn--align-on-content[class*=' fr-icon-']:not([class*='fr-btn--icon-']),
+.dsfr .fr-btn--align-on-content[class^='fr-icon-']:not([class*='fr-btn--icon-']),
+.dsfr .fr-btn--align-on-content[class*=' fr-icon-']:not([class*='fr-btn--icon-']),
 .dsfr .fr-btn--align-on-content[class^='fr-fi-']:not([class*='fr-btn--icon-']),
-.dsfr
-  .fr-btn--align-on-content[class*=' fr-fi-']:not([class*='fr-btn--icon-']) {
+.dsfr .fr-btn--align-on-content[class*=' fr-fi-']:not([class*='fr-btn--icon-']) {
   margin-left: -0.5rem;
   margin-right: -0.5rem;
 }
@@ -7432,22 +7118,10 @@ body {
   margin-left: 0;
   margin-right: 0.5rem;
 }
-.dsfr
-  .fr-btn--sm.fr-btn--align-on-content[class^='fr-icon-']:not(
-    [class*='fr-btn--icon-']
-  ),
-.dsfr
-  .fr-btn--sm.fr-btn--align-on-content[class*=' fr-icon-']:not(
-    [class*='fr-btn--icon-']
-  ),
-.dsfr
-  .fr-btn--sm.fr-btn--align-on-content[class^='fr-fi-']:not(
-    [class*='fr-btn--icon-']
-  ),
-.dsfr
-  .fr-btn--sm.fr-btn--align-on-content[class*=' fr-fi-']:not(
-    [class*='fr-btn--icon-']
-  ) {
+.dsfr .fr-btn--sm.fr-btn--align-on-content[class^='fr-icon-']:not([class*='fr-btn--icon-']),
+.dsfr .fr-btn--sm.fr-btn--align-on-content[class*=' fr-icon-']:not([class*='fr-btn--icon-']),
+.dsfr .fr-btn--sm.fr-btn--align-on-content[class^='fr-fi-']:not([class*='fr-btn--icon-']),
+.dsfr .fr-btn--sm.fr-btn--align-on-content[class*=' fr-fi-']:not([class*='fr-btn--icon-']) {
   margin-left: -0.5rem;
   margin-right: -0.5rem;
 }
@@ -7468,8 +7142,7 @@ body {
   margin-right: 0.5rem;
 }
 .dsfr .fr-btn--sm.fr-btn--align-on-content.fr-btn--icon-left[class^='fr-icon-'],
-.dsfr
-  .fr-btn--sm.fr-btn--align-on-content.fr-btn--icon-left[class*=' fr-icon-'],
+.dsfr .fr-btn--sm.fr-btn--align-on-content.fr-btn--icon-left[class*=' fr-icon-'],
 .dsfr .fr-btn--sm.fr-btn--align-on-content.fr-btn--icon-left[class^='fr-fi-'],
 .dsfr .fr-btn--sm.fr-btn--align-on-content.fr-btn--icon-left[class*=' fr-fi-'] {
   margin-left: -0.625rem;
@@ -7498,13 +7171,10 @@ body {
 .dsfr .fr-btn--sm.fr-btn--icon-right[class*=' fr-fi-']::before {
   content: none;
 }
-.dsfr
-  .fr-btn--sm.fr-btn--align-on-content.fr-btn--icon-right[class^='fr-icon-'],
-.dsfr
-  .fr-btn--sm.fr-btn--align-on-content.fr-btn--icon-right[class*=' fr-icon-'],
+.dsfr .fr-btn--sm.fr-btn--align-on-content.fr-btn--icon-right[class^='fr-icon-'],
+.dsfr .fr-btn--sm.fr-btn--align-on-content.fr-btn--icon-right[class*=' fr-icon-'],
 .dsfr .fr-btn--sm.fr-btn--align-on-content.fr-btn--icon-right[class^='fr-fi-'],
-.dsfr
-  .fr-btn--sm.fr-btn--align-on-content.fr-btn--icon-right[class*=' fr-fi-'] {
+.dsfr .fr-btn--sm.fr-btn--align-on-content.fr-btn--icon-right[class*=' fr-fi-'] {
   margin-left: -0.75rem;
   margin-right: -0.625rem;
 }
@@ -7551,22 +7221,10 @@ body {
   margin-left: 0;
   margin-right: 0.5rem;
 }
-.dsfr
-  .fr-btn--lg.fr-btn--align-on-content[class^='fr-icon-']:not(
-    [class*='fr-btn--icon-']
-  ),
-.dsfr
-  .fr-btn--lg.fr-btn--align-on-content[class*=' fr-icon-']:not(
-    [class*='fr-btn--icon-']
-  ),
-.dsfr
-  .fr-btn--lg.fr-btn--align-on-content[class^='fr-fi-']:not(
-    [class*='fr-btn--icon-']
-  ),
-.dsfr
-  .fr-btn--lg.fr-btn--align-on-content[class*=' fr-fi-']:not(
-    [class*='fr-btn--icon-']
-  ) {
+.dsfr .fr-btn--lg.fr-btn--align-on-content[class^='fr-icon-']:not([class*='fr-btn--icon-']),
+.dsfr .fr-btn--lg.fr-btn--align-on-content[class*=' fr-icon-']:not([class*='fr-btn--icon-']),
+.dsfr .fr-btn--lg.fr-btn--align-on-content[class^='fr-fi-']:not([class*='fr-btn--icon-']),
+.dsfr .fr-btn--lg.fr-btn--align-on-content[class*=' fr-fi-']:not([class*='fr-btn--icon-']) {
   margin-left: -0.5rem;
   margin-right: -0.5rem;
 }
@@ -7587,8 +7245,7 @@ body {
   margin-right: 0.5rem;
 }
 .dsfr .fr-btn--lg.fr-btn--align-on-content.fr-btn--icon-left[class^='fr-icon-'],
-.dsfr
-  .fr-btn--lg.fr-btn--align-on-content.fr-btn--icon-left[class*=' fr-icon-'],
+.dsfr .fr-btn--lg.fr-btn--align-on-content.fr-btn--icon-left[class*=' fr-icon-'],
 .dsfr .fr-btn--lg.fr-btn--align-on-content.fr-btn--icon-left[class^='fr-fi-'],
 .dsfr .fr-btn--lg.fr-btn--align-on-content.fr-btn--icon-left[class*=' fr-fi-'] {
   margin-left: -1.3125rem;
@@ -7617,13 +7274,10 @@ body {
 .dsfr .fr-btn--lg.fr-btn--icon-right[class*=' fr-fi-']::before {
   content: none;
 }
-.dsfr
-  .fr-btn--lg.fr-btn--align-on-content.fr-btn--icon-right[class^='fr-icon-'],
-.dsfr
-  .fr-btn--lg.fr-btn--align-on-content.fr-btn--icon-right[class*=' fr-icon-'],
+.dsfr .fr-btn--lg.fr-btn--align-on-content.fr-btn--icon-right[class^='fr-icon-'],
+.dsfr .fr-btn--lg.fr-btn--align-on-content.fr-btn--icon-right[class*=' fr-icon-'],
 .dsfr .fr-btn--lg.fr-btn--align-on-content.fr-btn--icon-right[class^='fr-fi-'],
-.dsfr
-  .fr-btn--lg.fr-btn--align-on-content.fr-btn--icon-right[class*=' fr-fi-'] {
+.dsfr .fr-btn--lg.fr-btn--align-on-content.fr-btn--icon-right[class*=' fr-fi-'] {
   margin-left: -1.5rem;
   margin-right: -1.3125rem;
 }
@@ -7689,8 +7343,7 @@ body {
   max-width: 100%;
   width: auto;
 }
-.dsfr
-  .fr-btns-group--inline.fr-btns-group--right.fr-btns-group--inline-reverse {
+.dsfr .fr-btns-group--inline.fr-btns-group--right.fr-btns-group--inline-reverse {
   flex-direction: row-reverse;
   justify-content: flex-start;
 }
@@ -7721,36 +7374,16 @@ body {
   justify-content: center;
   width: var(--equisized-width);
 }
-.dsfr
-  .fr-btns-group--sm
-  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-']) {
+.dsfr .fr-btns-group--sm .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-']) {
   font-size: 0.875rem;
   line-height: 1.5rem;
   min-height: 2rem;
   padding: 0.25rem 0.75rem;
 }
-.dsfr
-  .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class^='fr-icon-'],
-.dsfr
-  .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class*=' fr-icon-'],
-.dsfr
-  .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class^='fr-fi-'],
-.dsfr
-  .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class*=' fr-fi-'] {
+.dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-icon-'],
+.dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-icon-'],
+.dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-fi-'],
+.dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-fi-'] {
   font-size: 0.875rem;
   line-height: 1.5rem;
   min-height: 2rem;
@@ -7763,26 +7396,10 @@ body {
   padding-right: 0.5rem;
   justify-content: flex-start;
 }
-.dsfr
-  .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class^='fr-icon-']::before,
-.dsfr
-  .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class*=' fr-icon-']::before,
-.dsfr
-  .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class^='fr-fi-']::before,
-.dsfr
-  .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class*=' fr-fi-']::before {
+.dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-icon-']::before,
+.dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-icon-']::before,
+.dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-fi-']::before,
+.dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-fi-']::before {
   --icon-size: 1rem;
   margin-left: 0;
   margin-right: 0.5rem;
@@ -7799,18 +7416,10 @@ body {
   max-width: 100%;
   max-height: none;
 }
-.dsfr
-  .fr-btns-group--sm.fr-btns-group--icon-left
-  .fr-btn[class^='fr-icon-']::before,
-.dsfr
-  .fr-btns-group--sm.fr-btns-group--icon-left
-  .fr-btn[class*=' fr-icon-']::before,
-.dsfr
-  .fr-btns-group--sm.fr-btns-group--icon-left
-  .fr-btn[class^='fr-fi-']::before,
-.dsfr
-  .fr-btns-group--sm.fr-btns-group--icon-left
-  .fr-btn[class*=' fr-fi-']::before {
+.dsfr .fr-btns-group--sm.fr-btns-group--icon-left .fr-btn[class^='fr-icon-']::before,
+.dsfr .fr-btns-group--sm.fr-btns-group--icon-left .fr-btn[class*=' fr-icon-']::before,
+.dsfr .fr-btns-group--sm.fr-btns-group--icon-left .fr-btn[class^='fr-fi-']::before,
+.dsfr .fr-btns-group--sm.fr-btns-group--icon-left .fr-btn[class*=' fr-fi-']::before {
   --icon-size: 1rem;
   margin-left: -0.125rem;
   margin-right: 0.5rem;
@@ -7827,67 +7436,31 @@ body {
   max-width: 100%;
   max-height: none;
 }
-.dsfr
-  .fr-btns-group--sm.fr-btns-group--icon-right
-  .fr-btn[class^='fr-icon-']::after,
-.dsfr
-  .fr-btns-group--sm.fr-btns-group--icon-right
-  .fr-btn[class*=' fr-icon-']::after,
-.dsfr
-  .fr-btns-group--sm.fr-btns-group--icon-right
-  .fr-btn[class^='fr-fi-']::after,
-.dsfr
-  .fr-btns-group--sm.fr-btns-group--icon-right
-  .fr-btn[class*=' fr-fi-']::after {
+.dsfr .fr-btns-group--sm.fr-btns-group--icon-right .fr-btn[class^='fr-icon-']::after,
+.dsfr .fr-btns-group--sm.fr-btns-group--icon-right .fr-btn[class*=' fr-icon-']::after,
+.dsfr .fr-btns-group--sm.fr-btns-group--icon-right .fr-btn[class^='fr-fi-']::after,
+.dsfr .fr-btns-group--sm.fr-btns-group--icon-right .fr-btn[class*=' fr-fi-']::after {
   content: '';
   --icon-size: 1rem;
   margin-right: -0.125rem;
   margin-left: 0.5rem;
 }
-.dsfr
-  .fr-btns-group--sm.fr-btns-group--icon-right
-  .fr-btn[class^='fr-icon-']::before,
-.dsfr
-  .fr-btns-group--sm.fr-btns-group--icon-right
-  .fr-btn[class*=' fr-icon-']::before,
-.dsfr
-  .fr-btns-group--sm.fr-btns-group--icon-right
-  .fr-btn[class^='fr-fi-']::before,
-.dsfr
-  .fr-btns-group--sm.fr-btns-group--icon-right
-  .fr-btn[class*=' fr-fi-']::before {
+.dsfr .fr-btns-group--sm.fr-btns-group--icon-right .fr-btn[class^='fr-icon-']::before,
+.dsfr .fr-btns-group--sm.fr-btns-group--icon-right .fr-btn[class*=' fr-icon-']::before,
+.dsfr .fr-btns-group--sm.fr-btns-group--icon-right .fr-btn[class^='fr-fi-']::before,
+.dsfr .fr-btns-group--sm.fr-btns-group--icon-right .fr-btn[class*=' fr-fi-']::before {
   content: none;
 }
-.dsfr
-  .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg))
-  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-']) {
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)) .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-']) {
   font-size: 1rem;
   line-height: 1.5rem;
   min-height: 2.5rem;
   padding: 0.5rem 1rem;
 }
-.dsfr
-  .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class^='fr-icon-'],
-.dsfr
-  .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class*=' fr-icon-'],
-.dsfr
-  .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class^='fr-fi-'],
-.dsfr
-  .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class*=' fr-fi-'] {
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-icon-'],
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-icon-'],
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-fi-'],
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-fi-'] {
   font-size: 1rem;
   line-height: 1.5rem;
   min-height: 2.5rem;
@@ -7900,50 +7473,18 @@ body {
   padding-right: 0.5rem;
   justify-content: flex-start;
 }
-.dsfr
-  .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class^='fr-icon-']::before,
-.dsfr
-  .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class*=' fr-icon-']::before,
-.dsfr
-  .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class^='fr-fi-']::before,
-.dsfr
-  .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class*=' fr-fi-']::before {
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-icon-']::before,
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-icon-']::before,
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-fi-']::before,
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-fi-']::before {
   --icon-size: 1.5rem;
   margin-left: 0;
   margin-right: 0.5rem;
 }
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-left
-  .fr-btn[class^='fr-icon-'],
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-left
-  .fr-btn[class*=' fr-icon-'],
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-left
-  .fr-btn[class^='fr-fi-'],
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-left
-  .fr-btn[class*=' fr-fi-'] {
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-left .fr-btn[class^='fr-icon-'],
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-left .fr-btn[class*=' fr-icon-'],
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-left .fr-btn[class^='fr-fi-'],
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-left .fr-btn[class*=' fr-fi-'] {
   font-size: 1rem;
   line-height: 1.5rem;
   min-height: 2.5rem;
@@ -7952,50 +7493,18 @@ body {
   max-width: 100%;
   max-height: none;
 }
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-left
-  .fr-btn[class^='fr-icon-']::before,
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-left
-  .fr-btn[class*=' fr-icon-']::before,
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-left
-  .fr-btn[class^='fr-fi-']::before,
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-left
-  .fr-btn[class*=' fr-fi-']::before {
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-left .fr-btn[class^='fr-icon-']::before,
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-left .fr-btn[class*=' fr-icon-']::before,
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-left .fr-btn[class^='fr-fi-']::before,
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-left .fr-btn[class*=' fr-fi-']::before {
   --icon-size: 1rem;
   margin-left: -0.125rem;
   margin-right: 0.5rem;
 }
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-right
-  .fr-btn[class^='fr-icon-'],
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-right
-  .fr-btn[class*=' fr-icon-'],
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-right
-  .fr-btn[class^='fr-fi-'],
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-right
-  .fr-btn[class*=' fr-fi-'] {
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-right .fr-btn[class^='fr-icon-'],
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-right .fr-btn[class*=' fr-icon-'],
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-right .fr-btn[class^='fr-fi-'],
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-right .fr-btn[class*=' fr-fi-'] {
   font-size: 1rem;
   line-height: 1.5rem;
   min-height: 2.5rem;
@@ -8004,83 +7513,31 @@ body {
   max-width: 100%;
   max-height: none;
 }
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-right
-  .fr-btn[class^='fr-icon-']::after,
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-right
-  .fr-btn[class*=' fr-icon-']::after,
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-right
-  .fr-btn[class^='fr-fi-']::after,
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-right
-  .fr-btn[class*=' fr-fi-']::after {
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-right .fr-btn[class^='fr-icon-']::after,
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-right .fr-btn[class*=' fr-icon-']::after,
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-right .fr-btn[class^='fr-fi-']::after,
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-right .fr-btn[class*=' fr-fi-']::after {
   content: '';
   --icon-size: 1rem;
   margin-right: -0.125rem;
   margin-left: 0.5rem;
 }
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-right
-  .fr-btn[class^='fr-icon-']::before,
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-right
-  .fr-btn[class*=' fr-icon-']::before,
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-right
-  .fr-btn[class^='fr-fi-']::before,
-.dsfr
-  .fr-btns-group:where(
-    :not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  ).fr-btns-group--icon-right
-  .fr-btn[class*=' fr-fi-']::before {
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-right .fr-btn[class^='fr-icon-']::before,
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-right .fr-btn[class*=' fr-icon-']::before,
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-right .fr-btn[class^='fr-fi-']::before,
+.dsfr .fr-btns-group:where(:not(.fr-btns-group--sm):not(.fr-btns-group--lg)).fr-btns-group--icon-right .fr-btn[class*=' fr-fi-']::before {
   content: none;
 }
-.dsfr
-  .fr-btns-group--lg
-  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-']) {
+.dsfr .fr-btns-group--lg .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-']) {
   font-size: 1.125rem;
   line-height: 1.75rem;
   min-height: 3rem;
   padding: 0.5rem 1.5rem;
 }
-.dsfr
-  .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class^='fr-icon-'],
-.dsfr
-  .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class*=' fr-icon-'],
-.dsfr
-  .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class^='fr-fi-'],
-.dsfr
-  .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class*=' fr-fi-'] {
+.dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-icon-'],
+.dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-icon-'],
+.dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-fi-'],
+.dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-fi-'] {
   font-size: 1.125rem;
   line-height: 1.75rem;
   min-height: 3rem;
@@ -8093,26 +7550,10 @@ body {
   padding-right: 0.5rem;
   justify-content: flex-start;
 }
-.dsfr
-  .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class^='fr-icon-']::before,
-.dsfr
-  .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class*=' fr-icon-']::before,
-.dsfr
-  .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class^='fr-fi-']::before,
-.dsfr
-  .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-    [class*=' fr-btns-group--icon-']
-  )
-  .fr-btn[class*=' fr-fi-']::before {
+.dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-icon-']::before,
+.dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-icon-']::before,
+.dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-fi-']::before,
+.dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-fi-']::before {
   --icon-size: 2rem;
   margin-left: 0;
   margin-right: 0.5rem;
@@ -8129,18 +7570,10 @@ body {
   max-width: 100%;
   max-height: none;
 }
-.dsfr
-  .fr-btns-group--lg.fr-btns-group--icon-left
-  .fr-btn[class^='fr-icon-']::before,
-.dsfr
-  .fr-btns-group--lg.fr-btns-group--icon-left
-  .fr-btn[class*=' fr-icon-']::before,
-.dsfr
-  .fr-btns-group--lg.fr-btns-group--icon-left
-  .fr-btn[class^='fr-fi-']::before,
-.dsfr
-  .fr-btns-group--lg.fr-btns-group--icon-left
-  .fr-btn[class*=' fr-fi-']::before {
+.dsfr .fr-btns-group--lg.fr-btns-group--icon-left .fr-btn[class^='fr-icon-']::before,
+.dsfr .fr-btns-group--lg.fr-btns-group--icon-left .fr-btn[class*=' fr-icon-']::before,
+.dsfr .fr-btns-group--lg.fr-btns-group--icon-left .fr-btn[class^='fr-fi-']::before,
+.dsfr .fr-btns-group--lg.fr-btns-group--icon-left .fr-btn[class*=' fr-fi-']::before {
   --icon-size: 1.5rem;
   margin-left: -0.1875rem;
   margin-right: 0.5rem;
@@ -8157,35 +7590,19 @@ body {
   max-width: 100%;
   max-height: none;
 }
-.dsfr
-  .fr-btns-group--lg.fr-btns-group--icon-right
-  .fr-btn[class^='fr-icon-']::after,
-.dsfr
-  .fr-btns-group--lg.fr-btns-group--icon-right
-  .fr-btn[class*=' fr-icon-']::after,
-.dsfr
-  .fr-btns-group--lg.fr-btns-group--icon-right
-  .fr-btn[class^='fr-fi-']::after,
-.dsfr
-  .fr-btns-group--lg.fr-btns-group--icon-right
-  .fr-btn[class*=' fr-fi-']::after {
+.dsfr .fr-btns-group--lg.fr-btns-group--icon-right .fr-btn[class^='fr-icon-']::after,
+.dsfr .fr-btns-group--lg.fr-btns-group--icon-right .fr-btn[class*=' fr-icon-']::after,
+.dsfr .fr-btns-group--lg.fr-btns-group--icon-right .fr-btn[class^='fr-fi-']::after,
+.dsfr .fr-btns-group--lg.fr-btns-group--icon-right .fr-btn[class*=' fr-fi-']::after {
   content: '';
   --icon-size: 1.5rem;
   margin-right: -0.1875rem;
   margin-left: 0.5rem;
 }
-.dsfr
-  .fr-btns-group--lg.fr-btns-group--icon-right
-  .fr-btn[class^='fr-icon-']::before,
-.dsfr
-  .fr-btns-group--lg.fr-btns-group--icon-right
-  .fr-btn[class*=' fr-icon-']::before,
-.dsfr
-  .fr-btns-group--lg.fr-btns-group--icon-right
-  .fr-btn[class^='fr-fi-']::before,
-.dsfr
-  .fr-btns-group--lg.fr-btns-group--icon-right
-  .fr-btn[class*=' fr-fi-']::before {
+.dsfr .fr-btns-group--lg.fr-btns-group--icon-right .fr-btn[class^='fr-icon-']::before,
+.dsfr .fr-btns-group--lg.fr-btns-group--icon-right .fr-btn[class*=' fr-icon-']::before,
+.dsfr .fr-btns-group--lg.fr-btns-group--icon-right .fr-btn[class^='fr-fi-']::before,
+.dsfr .fr-btns-group--lg.fr-btns-group--icon-right .fr-btn[class*=' fr-fi-']::before {
   content: none;
 }
 .dsfr .fr-fieldset__element > .fr-btns-group {
@@ -8413,16 +7830,7 @@ body {
   color: var(--text-action-high-blue-france);
 }
 .dsfr .fr-connect::after {
-  background-image: linear-gradient(
-      0deg,
-      var(--text-inverted-blue-france),
-      var(--text-inverted-blue-france)
-    ),
-    linear-gradient(
-      0deg,
-      var(--text-inverted-blue-france),
-      var(--text-inverted-blue-france)
-    );
+  background-image: linear-gradient(0deg, var(--text-inverted-blue-france), var(--text-inverted-blue-france)), linear-gradient(0deg, var(--text-inverted-blue-france), var(--text-inverted-blue-france));
 }
 .dsfr .fr-connect:disabled,
 .dsfr a.fr-connect:not([href]) {
@@ -8434,12 +7842,7 @@ body {
 }
 .dsfr .fr-connect:disabled::after,
 .dsfr a.fr-connect:not([href])::after {
-  background-image: linear-gradient(
-      0deg,
-      var(--text-disabled-grey),
-      var(--text-disabled-grey)
-    ),
-    linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey));
+  background-image: linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey)), linear-gradient(0deg, var(--text-disabled-grey), var(--text-disabled-grey));
 }
 .dsfr .fr-quote {
   position: relative;
@@ -8448,11 +7851,7 @@ body {
   background-size: 50% 1px;
   background-repeat: no-repeat;
   background-position: 0.5rem 100%;
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-grey),
-    var(--border-default-grey)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
 }
 .dsfr .fr-quote::before,
 .dsfr .fr-quote::after {
@@ -8621,12 +8020,10 @@ body {
 }
 .dsfr .fr-breadcrumb__button {
   background-image: var(--underline-img), var(--underline-img);
-  background-position: var(--underline-x) 100%,
-    var(--underline-x) calc(100% - 0.0625em);
+  background-position: var(--underline-x) 100%, var(--underline-x) calc(100% - 0.0625em);
   background-repeat: no-repeat, no-repeat;
   transition: background-size 0s;
-  background-size: var(--underline-hover-width) 0.125em,
-    var(--underline-idle-width) 0.0625em;
+  background-size: var(--underline-hover-width) 0.125em, var(--underline-idle-width) 0.0625em;
   font-size: 0.75rem;
   line-height: 1.25rem;
   margin: 0;
@@ -8903,11 +8300,7 @@ body {
 }
 .dsfr .fr-fieldset--error,
 .dsfr .fr-fieldset--error .fr-fieldset__legend {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-error),
-    var(--border-plain-error)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-error), var(--border-plain-error));
 }
 .dsfr .fr-fieldset--error .fr-fieldset__legend,
 .dsfr .fr-fieldset--error .fr-label {
@@ -8915,11 +8308,7 @@ body {
 }
 .dsfr .fr-fieldset--valid,
 .dsfr .fr-fieldset--valid .fr-fieldset__legend {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-success),
-    var(--border-plain-success)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-success), var(--border-plain-success));
 }
 .dsfr .fr-fieldset--valid .fr-fieldset__legend,
 .dsfr .fr-fieldset--valid .fr-label {
@@ -8927,11 +8316,7 @@ body {
 }
 .dsfr .fr-fieldset--info,
 .dsfr .fr-fieldset--info .fr-fieldset__legend {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-info),
-    var(--border-plain-info)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-info), var(--border-plain-info));
 }
 .dsfr .fr-fieldset--info .fr-fieldset__legend,
 .dsfr .fr-fieldset--info .fr-label {
@@ -8968,31 +8353,19 @@ body {
 .dsfr .fr-fieldset--inline .fr-radio-group {
   display: inline-flex;
 }
-.dsfr
-  .fr-fieldset--inline
-  .fr-radio-group:not(:last-child)
-  input[type='radio']
-  + label {
+.dsfr .fr-fieldset--inline .fr-radio-group:not(:last-child) input[type='radio'] + label {
   margin-right: 1.75rem;
 }
 .dsfr .fr-fieldset--inline .fr-radio-group:first-child {
   margin-top: 0;
 }
-.dsfr
-  .fr-fieldset--inline
-  .fr-radio-group:first-child
-  input[type='radio']
-  + label {
+.dsfr .fr-fieldset--inline .fr-radio-group:first-child input[type='radio'] + label {
   margin-top: 0;
 }
 .dsfr .fr-fieldset--inline .fr-radio-group:last-child {
   margin-bottom: 0;
 }
-.dsfr
-  .fr-fieldset--inline
-  .fr-radio-group:last-child
-  input[type='radio']
-  + label {
+.dsfr .fr-fieldset--inline .fr-radio-group:last-child input[type='radio'] + label {
   margin-bottom: 0;
 }
 .dsfr .fr-fieldset__content {
@@ -9119,34 +8492,13 @@ body {
   margin-top: 0.75rem;
   color: var(--text-mention-grey);
 }
-.dsfr
-  .fr-stepper
-  .fr-stepper__steps[data-fr-steps='2'][data-fr-current-step='2']
-  + .fr-stepper__details,
-.dsfr
-  .fr-stepper
-  .fr-stepper__steps[data-fr-steps='3'][data-fr-current-step='3']
-  + .fr-stepper__details,
-.dsfr
-  .fr-stepper
-  .fr-stepper__steps[data-fr-steps='4'][data-fr-current-step='4']
-  + .fr-stepper__details,
-.dsfr
-  .fr-stepper
-  .fr-stepper__steps[data-fr-steps='5'][data-fr-current-step='5']
-  + .fr-stepper__details,
-.dsfr
-  .fr-stepper
-  .fr-stepper__steps[data-fr-steps='6'][data-fr-current-step='6']
-  + .fr-stepper__details,
-.dsfr
-  .fr-stepper
-  .fr-stepper__steps[data-fr-steps='7'][data-fr-current-step='7']
-  + .fr-stepper__details,
-.dsfr
-  .fr-stepper
-  .fr-stepper__steps[data-fr-steps='8'][data-fr-current-step='8']
-  + .fr-stepper__details {
+.dsfr .fr-stepper .fr-stepper__steps[data-fr-steps='2'][data-fr-current-step='2'] + .fr-stepper__details,
+.dsfr .fr-stepper .fr-stepper__steps[data-fr-steps='3'][data-fr-current-step='3'] + .fr-stepper__details,
+.dsfr .fr-stepper .fr-stepper__steps[data-fr-steps='4'][data-fr-current-step='4'] + .fr-stepper__details,
+.dsfr .fr-stepper .fr-stepper__steps[data-fr-steps='5'][data-fr-current-step='5'] + .fr-stepper__details,
+.dsfr .fr-stepper .fr-stepper__steps[data-fr-steps='6'][data-fr-current-step='6'] + .fr-stepper__details,
+.dsfr .fr-stepper .fr-stepper__steps[data-fr-steps='7'][data-fr-current-step='7'] + .fr-stepper__details,
+.dsfr .fr-stepper .fr-stepper__steps[data-fr-steps='8'][data-fr-current-step='8'] + .fr-stepper__details {
   display: none;
 }
 .dsfr .fr-stepper__steps {
@@ -9157,9 +8509,7 @@ body {
   width: 100%;
   height: 6px;
   background-repeat: no-repeat;
-  background-size: calc((100% + 6px) * var(--current-step) / var(--steps) - 6px)
-      100%,
-    100% 100%;
+  background-size: calc((100% + 6px) * var(--current-step) / var(--steps) - 6px) 100%, 100% 100%;
   background-position: 0 0, 0 0;
   --current-step: 0;
   background-image: repeating-linear-gradient(
@@ -9169,13 +8519,7 @@ body {
       transparent var(--active-inner),
       transparent var(--active-outer)
     ),
-    repeating-linear-gradient(
-      to right,
-      var(--background-contrast-grey) 0,
-      var(--background-contrast-grey) var(--default-inner),
-      transparent var(--default-inner),
-      transparent var(--default-outer)
-    );
+    repeating-linear-gradient(to right, var(--background-contrast-grey) 0, var(--background-contrast-grey) var(--default-inner), transparent var(--default-inner), transparent var(--default-outer));
 }
 .dsfr .fr-stepper__steps[data-fr-steps='2'] {
   --steps: 2;
@@ -9603,8 +8947,7 @@ body {
   /**
    * Variantes du sidemenu proposées juste à partir du breakpoint md
    */
-  box-shadow: inset 0 -1px 0 0 var(--border-default-grey),
-    inset 0 1px 0 0 var(--border-default-grey);
+  box-shadow: inset 0 -1px 0 0 var(--border-default-grey), inset 0 1px 0 0 var(--border-default-grey);
   /*
   @include elevation.elevate(raised, (legacy:$legacy));
   @include respond-from(md) {
@@ -9652,16 +8995,8 @@ body {
   line-height: 1.5rem;
   font-weight: 400;
 }
-.dsfr
-  .fr-sidemenu__list
-  .fr-sidemenu__list
-  .fr-sidemenu__list
-  .fr-sidemenu__link,
-.dsfr
-  .fr-sidemenu__list
-  .fr-sidemenu__list
-  .fr-sidemenu__list
-  .fr-sidemenu__btn {
+.dsfr .fr-sidemenu__list .fr-sidemenu__list .fr-sidemenu__list .fr-sidemenu__link,
+.dsfr .fr-sidemenu__list .fr-sidemenu__list .fr-sidemenu__list .fr-sidemenu__btn {
   font-size: 0.875rem;
   line-height: 1.5rem;
 }
@@ -9679,8 +9014,7 @@ body {
   width: 100%;
   height: 100%;
   pointer-events: none;
-  box-shadow: 0 -1px 0 0 var(--border-default-grey),
-    inset 0 -1px 0 0 var(--border-default-grey);
+  box-shadow: 0 -1px 0 0 var(--border-default-grey), inset 0 -1px 0 0 var(--border-default-grey);
 }
 .dsfr .fr-sidemenu__item .fr-sidemenu__item .fr-sidemenu__item::before {
   content: none;
@@ -9870,26 +9204,8 @@ body {
   background-size: 0 2px, 1px 0, 1px 0, 100% 1px;
   background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
   background-position: 0 0, 0 calc(100% - 1px), 100% calc(100% - 1px), 100% 100%;
-  background-image: linear-gradient(
-      0deg,
-      var(--border-active-blue-france),
-      var(--border-active-blue-france)
-    ),
-    linear-gradient(
-      0deg,
-      var(--border-default-grey),
-      var(--border-default-grey)
-    ),
-    linear-gradient(
-      0deg,
-      var(--border-default-grey),
-      var(--border-default-grey)
-    ),
-    linear-gradient(
-      0deg,
-      var(--border-default-grey),
-      var(--border-default-grey)
-    );
+  background-image: linear-gradient(0deg, var(--border-active-blue-france), var(--border-active-blue-france)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)),
+    linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey)), linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
   box-shadow: 0 2px 0 0 var(--background-default-grey);
 }
 .dsfr .fr-tabs__tab::before,
@@ -9907,14 +9223,10 @@ body {
   padding-left: 0.75rem;
   padding-right: 0.75rem;
 }
-.dsfr
-  .fr-tabs__tab[class^='fr-icon-']:not([class*='fr-tabs__tab--icon-'])::before,
-.dsfr
-  .fr-tabs__tab[class*=' fr-icon-']:not([class*='fr-tabs__tab--icon-'])::before,
-.dsfr
-  .fr-tabs__tab[class^='fr-fi-']:not([class*='fr-tabs__tab--icon-'])::before,
-.dsfr
-  .fr-tabs__tab[class*=' fr-fi-']:not([class*='fr-tabs__tab--icon-'])::before {
+.dsfr .fr-tabs__tab[class^='fr-icon-']:not([class*='fr-tabs__tab--icon-'])::before,
+.dsfr .fr-tabs__tab[class*=' fr-icon-']:not([class*='fr-tabs__tab--icon-'])::before,
+.dsfr .fr-tabs__tab[class^='fr-fi-']:not([class*='fr-tabs__tab--icon-'])::before,
+.dsfr .fr-tabs__tab[class*=' fr-fi-']:not([class*='fr-tabs__tab--icon-'])::before {
   --icon-size: 1rem;
   margin-left: 0;
   margin-right: 0.75rem;
@@ -9988,9 +9300,7 @@ body {
   height: 100%;
   margin-top: -1px;
   order: 2;
-  box-shadow: inset 0 1px 0 0 var(--border-default-grey),
-    inset 1px 0 0 0 var(--border-default-grey),
-    inset -1px 0 0 0 var(--border-default-grey);
+  box-shadow: inset 0 1px 0 0 var(--border-default-grey), inset 1px 0 0 0 var(--border-default-grey), inset -1px 0 0 0 var(--border-default-grey);
 }
 .dsfr .fr-tabs__list {
   display: flex;
@@ -10080,24 +9390,20 @@ body {
   right: 0;
   left: 0;
   z-index: 2;
-  box-shadow: inset 0 0 0 0 rgba(22, 22, 22, 0),
-    inset 0 0 0 0 rgba(22, 22, 22, 0);
+  box-shadow: inset 0 0 0 0 rgba(22, 22, 22, 0), inset 0 0 0 0 rgba(22, 22, 22, 0);
   height: calc(var(--tab-list-height) - 8px);
   opacity: 0.8;
   pointer-events: none;
   transition: box-shadow 0.3s;
 }
 .dsfr .fr-tabs__shadow--left > .fr-tabs__list::before {
-  box-shadow: inset 2rem 0 1.5rem -2rem #161616,
-    inset 0 0 0 0 rgba(22, 22, 22, 0);
+  box-shadow: inset 2rem 0 1.5rem -2rem #161616, inset 0 0 0 0 rgba(22, 22, 22, 0);
 }
 .dsfr .fr-tabs__shadow--right > .fr-tabs__list::before {
-  box-shadow: inset 0 0 0 0 rgba(22, 22, 22, 0),
-    inset -2rem 0 1.5rem -2rem #161616;
+  box-shadow: inset 0 0 0 0 rgba(22, 22, 22, 0), inset -2rem 0 1.5rem -2rem #161616;
 }
 .dsfr .fr-tabs__shadow--left.fr-tabs__shadow--right > .fr-tabs__list::before {
-  box-shadow: inset 2rem 0 1.5rem -2rem #161616,
-    inset -2rem 0 1.5rem -2rem #161616;
+  box-shadow: inset 2rem 0 1.5rem -2rem #161616, inset -2rem 0 1.5rem -2rem #161616;
 }
 :root:where([data-fr-theme='dark']) .fr-tabs__shadow > .fr-tabs__list::before {
   opacity: 1;
@@ -10511,11 +9817,7 @@ body {
   background-size: 100% 2px;
   background-position: bottom;
   background-repeat: no-repeat;
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-grey),
-    var(--border-plain-grey)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-grey), var(--border-plain-grey));
   background-color: var(--background-contrast-grey);
   --idle: transparent;
   --hover: var(--background-contrast-grey-hover);
@@ -10581,11 +9883,7 @@ body {
   background-size: 100% 1px;
   background-position: bottom;
   background-repeat: no-repeat;
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-grey),
-    var(--border-default-grey)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
   /* Style bordered, enleve le style even/odd  */
   /* Style bordered, enleve le style even/odd  */
 }
@@ -10663,11 +9961,7 @@ body {
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--green-tilleul-verveine thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-green-tilleul-verveine),
-    var(--border-plain-green-tilleul-verveine)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-green-tilleul-verveine), var(--border-plain-green-tilleul-verveine));
   background-color: var(--background-contrast-green-tilleul-verveine);
   --idle: transparent;
   --hover: var(--background-contrast-green-tilleul-verveine-hover);
@@ -10686,22 +9980,14 @@ body {
   --active: var(--background-contrast-green-tilleul-verveine-active);
 }
 .dsfr .fr-table--green-tilleul-verveine.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-green-tilleul-verveine),
-    var(--border-default-green-tilleul-verveine)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-green-tilleul-verveine), var(--border-default-green-tilleul-verveine));
 }
 .dsfr .fr-table--green-bourgeon {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--green-bourgeon thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-green-bourgeon),
-    var(--border-plain-green-bourgeon)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-green-bourgeon), var(--border-plain-green-bourgeon));
   background-color: var(--background-contrast-green-bourgeon);
   --idle: transparent;
   --hover: var(--background-contrast-green-bourgeon-hover);
@@ -10720,22 +10006,14 @@ body {
   --active: var(--background-contrast-green-bourgeon-active);
 }
 .dsfr .fr-table--green-bourgeon.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-green-bourgeon),
-    var(--border-default-green-bourgeon)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-green-bourgeon), var(--border-default-green-bourgeon));
 }
 .dsfr .fr-table--green-emeraude {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--green-emeraude thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-green-emeraude),
-    var(--border-plain-green-emeraude)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-green-emeraude), var(--border-plain-green-emeraude));
   background-color: var(--background-contrast-green-emeraude);
   --idle: transparent;
   --hover: var(--background-contrast-green-emeraude-hover);
@@ -10754,22 +10032,14 @@ body {
   --active: var(--background-contrast-green-emeraude-active);
 }
 .dsfr .fr-table--green-emeraude.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-green-emeraude),
-    var(--border-default-green-emeraude)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-green-emeraude), var(--border-default-green-emeraude));
 }
 .dsfr .fr-table--green-menthe {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--green-menthe thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-green-menthe),
-    var(--border-plain-green-menthe)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-green-menthe), var(--border-plain-green-menthe));
   background-color: var(--background-contrast-green-menthe);
   --idle: transparent;
   --hover: var(--background-contrast-green-menthe-hover);
@@ -10788,22 +10058,14 @@ body {
   --active: var(--background-contrast-green-menthe-active);
 }
 .dsfr .fr-table--green-menthe.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-green-menthe),
-    var(--border-default-green-menthe)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-green-menthe), var(--border-default-green-menthe));
 }
 .dsfr .fr-table--green-archipel {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--green-archipel thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-green-archipel),
-    var(--border-plain-green-archipel)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-green-archipel), var(--border-plain-green-archipel));
   background-color: var(--background-contrast-green-archipel);
   --idle: transparent;
   --hover: var(--background-contrast-green-archipel-hover);
@@ -10822,22 +10084,14 @@ body {
   --active: var(--background-contrast-green-archipel-active);
 }
 .dsfr .fr-table--green-archipel.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-green-archipel),
-    var(--border-default-green-archipel)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-green-archipel), var(--border-default-green-archipel));
 }
 .dsfr .fr-table--blue-ecume {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--blue-ecume thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-blue-ecume),
-    var(--border-plain-blue-ecume)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-blue-ecume), var(--border-plain-blue-ecume));
   background-color: var(--background-contrast-blue-ecume);
   --idle: transparent;
   --hover: var(--background-contrast-blue-ecume-hover);
@@ -10856,22 +10110,14 @@ body {
   --active: var(--background-contrast-blue-ecume-active);
 }
 .dsfr .fr-table--blue-ecume.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-blue-ecume),
-    var(--border-default-blue-ecume)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-blue-ecume), var(--border-default-blue-ecume));
 }
 .dsfr .fr-table--blue-cumulus {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--blue-cumulus thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-blue-cumulus),
-    var(--border-plain-blue-cumulus)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-blue-cumulus), var(--border-plain-blue-cumulus));
   background-color: var(--background-contrast-blue-cumulus);
   --idle: transparent;
   --hover: var(--background-contrast-blue-cumulus-hover);
@@ -10890,22 +10136,14 @@ body {
   --active: var(--background-contrast-blue-cumulus-active);
 }
 .dsfr .fr-table--blue-cumulus.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-blue-cumulus),
-    var(--border-default-blue-cumulus)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-blue-cumulus), var(--border-default-blue-cumulus));
 }
 .dsfr .fr-table--purple-glycine {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--purple-glycine thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-purple-glycine),
-    var(--border-plain-purple-glycine)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-purple-glycine), var(--border-plain-purple-glycine));
   background-color: var(--background-contrast-purple-glycine);
   --idle: transparent;
   --hover: var(--background-contrast-purple-glycine-hover);
@@ -10924,22 +10162,14 @@ body {
   --active: var(--background-contrast-purple-glycine-active);
 }
 .dsfr .fr-table--purple-glycine.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-purple-glycine),
-    var(--border-default-purple-glycine)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-purple-glycine), var(--border-default-purple-glycine));
 }
 .dsfr .fr-table--pink-macaron {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--pink-macaron thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-pink-macaron),
-    var(--border-plain-pink-macaron)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-pink-macaron), var(--border-plain-pink-macaron));
   background-color: var(--background-contrast-pink-macaron);
   --idle: transparent;
   --hover: var(--background-contrast-pink-macaron-hover);
@@ -10958,22 +10188,14 @@ body {
   --active: var(--background-contrast-pink-macaron-active);
 }
 .dsfr .fr-table--pink-macaron.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-pink-macaron),
-    var(--border-default-pink-macaron)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-pink-macaron), var(--border-default-pink-macaron));
 }
 .dsfr .fr-table--pink-tuile {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--pink-tuile thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-pink-tuile),
-    var(--border-plain-pink-tuile)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-pink-tuile), var(--border-plain-pink-tuile));
   background-color: var(--background-contrast-pink-tuile);
   --idle: transparent;
   --hover: var(--background-contrast-pink-tuile-hover);
@@ -10992,22 +10214,14 @@ body {
   --active: var(--background-contrast-pink-tuile-active);
 }
 .dsfr .fr-table--pink-tuile.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-pink-tuile),
-    var(--border-default-pink-tuile)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-pink-tuile), var(--border-default-pink-tuile));
 }
 .dsfr .fr-table--yellow-tournesol {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--yellow-tournesol thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-yellow-tournesol),
-    var(--border-plain-yellow-tournesol)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-yellow-tournesol), var(--border-plain-yellow-tournesol));
   background-color: var(--background-contrast-yellow-tournesol);
   --idle: transparent;
   --hover: var(--background-contrast-yellow-tournesol-hover);
@@ -11026,22 +10240,14 @@ body {
   --active: var(--background-contrast-yellow-tournesol-active);
 }
 .dsfr .fr-table--yellow-tournesol.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-yellow-tournesol),
-    var(--border-default-yellow-tournesol)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-yellow-tournesol), var(--border-default-yellow-tournesol));
 }
 .dsfr .fr-table--yellow-moutarde {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--yellow-moutarde thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-yellow-moutarde),
-    var(--border-plain-yellow-moutarde)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-yellow-moutarde), var(--border-plain-yellow-moutarde));
   background-color: var(--background-contrast-yellow-moutarde);
   --idle: transparent;
   --hover: var(--background-contrast-yellow-moutarde-hover);
@@ -11060,22 +10266,14 @@ body {
   --active: var(--background-contrast-yellow-moutarde-active);
 }
 .dsfr .fr-table--yellow-moutarde.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-yellow-moutarde),
-    var(--border-default-yellow-moutarde)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-yellow-moutarde), var(--border-default-yellow-moutarde));
 }
 .dsfr .fr-table--orange-terre-battue {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--orange-terre-battue thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-orange-terre-battue),
-    var(--border-plain-orange-terre-battue)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-orange-terre-battue), var(--border-plain-orange-terre-battue));
   background-color: var(--background-contrast-orange-terre-battue);
   --idle: transparent;
   --hover: var(--background-contrast-orange-terre-battue-hover);
@@ -11094,22 +10292,14 @@ body {
   --active: var(--background-contrast-orange-terre-battue-active);
 }
 .dsfr .fr-table--orange-terre-battue.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-orange-terre-battue),
-    var(--border-default-orange-terre-battue)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-orange-terre-battue), var(--border-default-orange-terre-battue));
 }
 .dsfr .fr-table--brown-cafe-creme {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--brown-cafe-creme thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-brown-cafe-creme),
-    var(--border-plain-brown-cafe-creme)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-brown-cafe-creme), var(--border-plain-brown-cafe-creme));
   background-color: var(--background-contrast-brown-cafe-creme);
   --idle: transparent;
   --hover: var(--background-contrast-brown-cafe-creme-hover);
@@ -11128,22 +10318,14 @@ body {
   --active: var(--background-contrast-brown-cafe-creme-active);
 }
 .dsfr .fr-table--brown-cafe-creme.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-brown-cafe-creme),
-    var(--border-default-brown-cafe-creme)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-brown-cafe-creme), var(--border-default-brown-cafe-creme));
 }
 .dsfr .fr-table--brown-caramel {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--brown-caramel thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-brown-caramel),
-    var(--border-plain-brown-caramel)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-brown-caramel), var(--border-plain-brown-caramel));
   background-color: var(--background-contrast-brown-caramel);
   --idle: transparent;
   --hover: var(--background-contrast-brown-caramel-hover);
@@ -11162,22 +10344,14 @@ body {
   --active: var(--background-contrast-brown-caramel-active);
 }
 .dsfr .fr-table--brown-caramel.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-brown-caramel),
-    var(--border-default-brown-caramel)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-brown-caramel), var(--border-default-brown-caramel));
 }
 .dsfr .fr-table--brown-opera {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--brown-opera thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-brown-opera),
-    var(--border-plain-brown-opera)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-brown-opera), var(--border-plain-brown-opera));
   background-color: var(--background-contrast-brown-opera);
   --idle: transparent;
   --hover: var(--background-contrast-brown-opera-hover);
@@ -11196,22 +10370,14 @@ body {
   --active: var(--background-contrast-brown-opera-active);
 }
 .dsfr .fr-table--brown-opera.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-brown-opera),
-    var(--border-default-brown-opera)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-brown-opera), var(--border-default-brown-opera));
 }
 .dsfr .fr-table--beige-gris-galet {
   /* Style bordered, ajoute des bordures entre chaque ligne */
   /* Style bordered, ajoute des bordures entre chaque ligne */
 }
 .dsfr .fr-table--beige-gris-galet thead {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-plain-beige-gris-galet),
-    var(--border-plain-beige-gris-galet)
-  );
+  background-image: linear-gradient(0deg, var(--border-plain-beige-gris-galet), var(--border-plain-beige-gris-galet));
   background-color: var(--background-contrast-beige-gris-galet);
   --idle: transparent;
   --hover: var(--background-contrast-beige-gris-galet-hover);
@@ -11230,11 +10396,7 @@ body {
   --active: var(--background-contrast-beige-gris-galet-active);
 }
 .dsfr .fr-table--beige-gris-galet.fr-table--bordered tbody tr {
-  background-image: linear-gradient(
-    0deg,
-    var(--border-default-beige-gris-galet),
-    var(--border-default-beige-gris-galet)
-  );
+  background-image: linear-gradient(0deg, var(--border-default-beige-gris-galet), var(--border-default-beige-gris-galet));
 }
 .dsfr .fr-table--bordered tbody tr:nth-child(even) {
   background-color: transparent;
@@ -11477,9 +10639,7 @@ body {
   --icon-size: 0.75rem;
 }
 .dsfr .fr-tags-group.fr-tags-group--sm button.fr-tag.fr-tag--dismiss::after,
-.dsfr
-  .fr-tags-group.fr-tags-group--sm
-  input[type='button'].fr-tag.fr-tag--dismiss::after {
+.dsfr .fr-tags-group.fr-tags-group--sm input[type='button'].fr-tag.fr-tag--dismiss::after {
   flex: 0 0 auto;
   display: inline-block;
   vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
@@ -11492,12 +10652,8 @@ body {
   content: '';
   margin-right: -0.1875rem;
 }
-.dsfr
-  .fr-tags-group.fr-tags-group--sm
-  button.fr-tag[aria-pressed='true']::after,
-.dsfr
-  .fr-tags-group.fr-tags-group--sm
-  input[type='button'].fr-tag[aria-pressed='true']::after {
+.dsfr .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed='true']::after,
+.dsfr .fr-tags-group.fr-tags-group--sm input[type='button'].fr-tag[aria-pressed='true']::after {
   flex: 0 0 auto;
   display: inline-block;
   vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
@@ -11693,27 +10849,15 @@ body {
 .dsfr input[type='button'].fr-tag[aria-pressed='true']:not(:disabled) {
   background-color: transparent;
   color: var(--text-inverted-grey);
-  background-image: radial-gradient(
-    circle at 100% 0.25rem,
-    transparent 0.578125rem,
-    var(--background-action-high-blue-france) 0.625rem
-  );
+  background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, var(--background-action-high-blue-france) 0.625rem);
 }
 .dsfr button.fr-tag[aria-pressed='true']:not(:disabled):hover,
 .dsfr input[type='button'].fr-tag[aria-pressed='true']:not(:disabled):hover {
-  background-image: radial-gradient(
-    circle at 100% 0.25rem,
-    transparent 0.578125rem,
-    var(--background-action-high-blue-france-hover) 0.625rem
-  );
+  background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, var(--background-action-high-blue-france-hover) 0.625rem);
 }
 .dsfr button.fr-tag[aria-pressed='true']:not(:disabled):active,
 .dsfr input[type='button'].fr-tag[aria-pressed='true']:not(:disabled):active {
-  background-image: radial-gradient(
-    circle at 100% 0.25rem,
-    transparent 0.578125rem,
-    var(--background-action-high-blue-france-active) 0.625rem
-  );
+  background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, var(--background-action-high-blue-france-active) 0.625rem);
 }
 .dsfr button.fr-tag[aria-pressed='true']::after,
 .dsfr input[type='button'].fr-tag[aria-pressed='true']::after {
@@ -11722,11 +10866,7 @@ body {
 .dsfr button.fr-tag[aria-pressed='true']:disabled,
 .dsfr input[type='button'].fr-tag[aria-pressed='true']:disabled {
   background-color: transparent;
-  background-image: radial-gradient(
-    circle at 100% 0.25rem,
-    transparent 0.578125rem,
-    var(--background-disabled-grey) 0.625rem
-  );
+  background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, var(--background-disabled-grey) 0.625rem);
 }
 .dsfr button.fr-tag[aria-pressed='true']:disabled::after,
 .dsfr input[type='button'].fr-tag[aria-pressed='true']:disabled::after {
@@ -11734,35 +10874,19 @@ body {
 }
 .dsfr button.fr-tag[aria-pressed='true'].fr-tag--sm,
 .dsfr input[type='button'].fr-tag[aria-pressed='true'].fr-tag--sm {
-  background-image: radial-gradient(
-    circle at 100% 0.1875rem,
-    transparent 0.4475rem,
-    var(--background-action-high-blue-france) 0.5rem
-  );
+  background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, var(--background-action-high-blue-france) 0.5rem);
 }
 .dsfr button.fr-tag[aria-pressed='true'].fr-tag--sm:hover,
 .dsfr input[type='button'].fr-tag[aria-pressed='true'].fr-tag--sm:hover {
-  background-image: radial-gradient(
-    circle at 100% 0.1875rem,
-    transparent 0.4475rem,
-    var(--background-action-high-blue-france-hover) 0.5rem
-  );
+  background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, var(--background-action-high-blue-france-hover) 0.5rem);
 }
 .dsfr button.fr-tag[aria-pressed='true'].fr-tag--sm:active,
 .dsfr input[type='button'].fr-tag[aria-pressed='true'].fr-tag--sm:active {
-  background-image: radial-gradient(
-    circle at 100% 0.1875rem,
-    transparent 0.4475rem,
-    var(--background-action-high-blue-france-active) 0.5rem
-  );
+  background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, var(--background-action-high-blue-france-active) 0.5rem);
 }
 .dsfr button.fr-tag[aria-pressed='true'].fr-tag--sm:disabled,
 .dsfr input[type='button'].fr-tag[aria-pressed='true'].fr-tag--sm:disabled {
-  background-image: radial-gradient(
-    circle at 100% 0.1875rem,
-    transparent 0.4475rem,
-    var(--background-disabled-grey) 0.5rem
-  );
+  background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, var(--background-disabled-grey) 0.5rem);
 }
 .dsfr button.fr-tag:disabled,
 .dsfr input[type='button'].fr-tag:disabled {
@@ -11773,48 +10897,20 @@ body {
   --active: var(--background-disabled-grey-active);
 }
 .dsfr .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed='true'],
-.dsfr
-  .fr-tags-group.fr-tags-group--sm
-  input[type='button'].fr-tag[aria-pressed='true'] {
-  background-image: radial-gradient(
-    circle at 100% 0.1875rem,
-    transparent 0.4475rem,
-    var(--background-action-high-blue-france) 0.5rem
-  );
+.dsfr .fr-tags-group.fr-tags-group--sm input[type='button'].fr-tag[aria-pressed='true'] {
+  background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, var(--background-action-high-blue-france) 0.5rem);
 }
 .dsfr .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed='true']:hover,
-.dsfr
-  .fr-tags-group.fr-tags-group--sm
-  input[type='button'].fr-tag[aria-pressed='true']:hover {
-  background-image: radial-gradient(
-    circle at 100% 0.1875rem,
-    transparent 0.4475rem,
-    var(--background-action-high-blue-france-hover) 0.5rem
-  );
+.dsfr .fr-tags-group.fr-tags-group--sm input[type='button'].fr-tag[aria-pressed='true']:hover {
+  background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, var(--background-action-high-blue-france-hover) 0.5rem);
 }
-.dsfr
-  .fr-tags-group.fr-tags-group--sm
-  button.fr-tag[aria-pressed='true']:active,
-.dsfr
-  .fr-tags-group.fr-tags-group--sm
-  input[type='button'].fr-tag[aria-pressed='true']:active {
-  background-image: radial-gradient(
-    circle at 100% 0.1875rem,
-    transparent 0.4475rem,
-    var(--background-action-high-blue-france-active) 0.5rem
-  );
+.dsfr .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed='true']:active,
+.dsfr .fr-tags-group.fr-tags-group--sm input[type='button'].fr-tag[aria-pressed='true']:active {
+  background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, var(--background-action-high-blue-france-active) 0.5rem);
 }
-.dsfr
-  .fr-tags-group.fr-tags-group--sm
-  button.fr-tag[aria-pressed='true']:disabled,
-.dsfr
-  .fr-tags-group.fr-tags-group--sm
-  input[type='button'].fr-tag[aria-pressed='true']:disabled {
-  background-image: radial-gradient(
-    circle at 100% 0.1875rem,
-    transparent 0.4475rem,
-    var(--background-disabled-grey) 0.5rem
-  );
+.dsfr .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed='true']:disabled,
+.dsfr .fr-tags-group.fr-tags-group--sm input[type='button'].fr-tag[aria-pressed='true']:disabled {
+  background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, var(--background-disabled-grey) 0.5rem);
 }
 .dsfr .fr-download__link {
   --text-spacing: 0;
@@ -11921,16 +11017,10 @@ body {
 .dsfr .fr-download--card .fr-download__detail[class*=' fr-fi-']::before {
   margin-right: 0.5rem;
 }
-.dsfr
-  .fr-download--card
-  .fr-download__detail[class^='fr-icon-']::before::before,
+.dsfr .fr-download--card .fr-download__detail[class^='fr-icon-']::before::before,
 .dsfr .fr-download--card .fr-download__detail[class^='fr-icon-']::before::after,
-.dsfr
-  .fr-download--card
-  .fr-download__detail[class*=' fr-icon-']::before::before,
-.dsfr
-  .fr-download--card
-  .fr-download__detail[class*=' fr-icon-']::before::after,
+.dsfr .fr-download--card .fr-download__detail[class*=' fr-icon-']::before::before,
+.dsfr .fr-download--card .fr-download__detail[class*=' fr-icon-']::before::after,
 .dsfr .fr-download--card .fr-download__detail[class^='fr-fi-']::before::before,
 .dsfr .fr-download--card .fr-download__detail[class^='fr-fi-']::before::after,
 .dsfr .fr-download--card .fr-download__detail[class*=' fr-fi-']::before::before,
@@ -11990,8 +11080,7 @@ body {
   /**
   * Modificateur horizontal à partir du breakpoint md -> vertical en dessous du breakpoint md
   **/
-  box-shadow: inset 0 0 0 1px var(--border-default-grey),
-    inset 0 -0.25rem 0 0 var(--border-plain-blue-france);
+  box-shadow: inset 0 0 0 1px var(--border-default-grey), inset 0 -0.25rem 0 0 var(--border-plain-blue-france);
   background-color: var(--background-default-grey);
   --idle: transparent;
   --hover: var(--background-default-grey-hover);
@@ -12104,8 +11193,7 @@ body {
   padding: 1rem 2.25rem 0.75rem 3.5rem;
   --title-spacing: 0 0 0.25rem;
   --text-spacing: 0 0 0.25rem;
-  box-shadow: inset 0 0 0 1px var(--border-plain-grey),
-    inset 2.5rem 0 0 0 var(--background-flat-grey);
+  box-shadow: inset 0 0 0 1px var(--border-plain-grey), inset 2.5rem 0 0 0 var(--background-flat-grey);
 }
 .dsfr .fr-alert::before {
   --icon-size: 1.5rem;
@@ -12223,20 +11311,16 @@ body {
   content: '';
 }
 .dsfr .fr-alert--info {
-  box-shadow: inset 0 0 0 1px var(--border-plain-info),
-    inset 2.5rem 0 0 0 var(--background-flat-info);
+  box-shadow: inset 0 0 0 1px var(--border-plain-info), inset 2.5rem 0 0 0 var(--background-flat-info);
 }
 .dsfr .fr-alert--error {
-  box-shadow: inset 0 0 0 1px var(--border-plain-error),
-    inset 2.5rem 0 0 0 var(--background-flat-error);
+  box-shadow: inset 0 0 0 1px var(--border-plain-error), inset 2.5rem 0 0 0 var(--background-flat-error);
 }
 .dsfr .fr-alert--success {
-  box-shadow: inset 0 0 0 1px var(--border-plain-success),
-    inset 2.5rem 0 0 0 var(--background-flat-success);
+  box-shadow: inset 0 0 0 1px var(--border-plain-success), inset 2.5rem 0 0 0 var(--background-flat-success);
 }
 .dsfr .fr-alert--warning {
-  box-shadow: inset 0 0 0 1px var(--border-plain-warning),
-    inset 2.5rem 0 0 0 var(--background-flat-warning);
+  box-shadow: inset 0 0 0 1px var(--border-plain-warning), inset 2.5rem 0 0 0 var(--background-flat-warning);
 }
 .dsfr .fr-notice {
   position: relative;
@@ -12347,17 +11431,13 @@ body {
   height: 1.5rem;
   margin-right: 0.5rem;
   border-radius: 50%;
-  box-shadow: inset 0 0 0 1px var(--border-action-high-grey),
-    inset 0 0 0 12px var(--background-default-grey),
-    inset 0 0 0 12px var(--background-action-high-blue-france);
+  box-shadow: inset 0 0 0 1px var(--border-action-high-grey), inset 0 0 0 12px var(--background-default-grey), inset 0 0 0 12px var(--background-action-high-blue-france);
 }
 .dsfr .fr-radio-group--sm input[type='radio'] + label::before {
   width: 1rem;
   height: 1rem;
   margin-top: 0.25rem;
-  box-shadow: inset 0 0 0 1px var(--border-action-high-grey),
-    inset 0 0 0 8px var(--background-default-grey),
-    inset 0 0 0 8px var(--background-action-high-blue-france);
+  box-shadow: inset 0 0 0 1px var(--border-action-high-grey), inset 0 0 0 8px var(--background-default-grey), inset 0 0 0 8px var(--background-action-high-blue-france);
 }
 .dsfr .fr-radio-rich {
   position: relative;
@@ -12387,9 +11467,7 @@ body {
   top: 50%;
   left: 1.75rem;
   margin-top: -0.5rem;
-  box-shadow: inset 0 0 0 1px var(--border-action-high-grey),
-    inset 0 0 0 8px var(--background-default-grey),
-    inset 0 0 0 8px var(--background-action-high-blue-france);
+  box-shadow: inset 0 0 0 1px var(--border-action-high-grey), inset 0 0 0 8px var(--background-default-grey), inset 0 0 0 8px var(--background-action-high-blue-france);
 }
 .dsfr .fr-radio-rich input[type='radio'] + label .fr-hint-text {
   margin-left: 0;
@@ -12408,18 +11486,10 @@ body {
 .dsfr .fr-radio-rich input[type='radio']:not(:disabled) ~ label:active {
   background-color: var(--active-tint);
 }
-.dsfr
-  .fr-radio-rich
-  input[type='radio']:not(:disabled)
-  ~ label:hover
-  ~ .fr-radio-rich__img {
+.dsfr .fr-radio-rich input[type='radio']:not(:disabled) ~ label:hover ~ .fr-radio-rich__img {
   --brightness: calc(100% + var(--brighten) * 10%);
 }
-.dsfr
-  .fr-radio-rich
-  input[type='radio']:not(:disabled)
-  ~ label:active
-  ~ .fr-radio-rich__img {
+.dsfr .fr-radio-rich input[type='radio']:not(:disabled) ~ label:active ~ .fr-radio-rich__img {
   --brightness: calc(100% + var(--brighten) * 20%);
 }
 .dsfr .fr-radio-rich__img {
@@ -12445,128 +11515,71 @@ body {
   margin-bottom: 0;
 }
 .dsfr .fr-radio-group input[type='radio']:disabled + label::before {
-  box-shadow: inset 0 0 0 1px var(--border-disabled-grey),
-    inset 0 0 0 12px var(--background-default-grey),
-    inset 0 0 0 12px var(--text-disabled-grey);
+  box-shadow: inset 0 0 0 1px var(--border-disabled-grey), inset 0 0 0 12px var(--background-default-grey), inset 0 0 0 12px var(--text-disabled-grey);
 }
 .dsfr .fr-radio-group input[type='radio']:checked + label::before {
-  box-shadow: inset 0 0 0 1px var(--border-action-high-grey),
-    inset 0 0 0 6px var(--background-default-grey),
-    inset 0 0 0 12px var(--background-action-high-blue-france);
+  box-shadow: inset 0 0 0 1px var(--border-action-high-grey), inset 0 0 0 6px var(--background-default-grey), inset 0 0 0 12px var(--background-action-high-blue-france);
 }
 .dsfr .fr-radio-group input[type='radio']:checked:disabled + label::before {
-  box-shadow: inset 0 0 0 1px var(--border-disabled-grey),
-    inset 0 0 0 6px var(--background-default-grey),
-    inset 0 0 0 12px var(--text-disabled-grey);
+  box-shadow: inset 0 0 0 1px var(--border-disabled-grey), inset 0 0 0 6px var(--background-default-grey), inset 0 0 0 12px var(--text-disabled-grey);
 }
 .dsfr .fr-radio-group--sm input[type='radio']:disabled + label::before {
-  box-shadow: inset 0 0 0 1px var(--border-disabled-grey),
-    inset 0 0 0 8px var(--background-disabled-grey),
-    inset 0 0 0 8px var(--text-disabled-grey);
+  box-shadow: inset 0 0 0 1px var(--border-disabled-grey), inset 0 0 0 8px var(--background-disabled-grey), inset 0 0 0 8px var(--text-disabled-grey);
 }
 .dsfr .fr-radio-group--sm input[type='radio']:checked + label::before {
-  box-shadow: inset 0 0 0 1px var(--border-action-high-grey),
-    inset 0 0 0 4px var(--background-default-grey),
-    inset 0 0 0 8px var(--background-action-high-blue-france);
+  box-shadow: inset 0 0 0 1px var(--border-action-high-grey), inset 0 0 0 4px var(--background-default-grey), inset 0 0 0 8px var(--background-action-high-blue-france);
 }
 .dsfr .fr-radio-group--sm input[type='radio']:checked:disabled + label::before {
-  box-shadow: inset 0 0 0 1px var(--border-disabled-grey),
-    inset 0 0 0 4px var(--background-disabled-grey),
-    inset 0 0 0 8px var(--text-disabled-grey);
+  box-shadow: inset 0 0 0 1px var(--border-disabled-grey), inset 0 0 0 4px var(--background-disabled-grey), inset 0 0 0 8px var(--text-disabled-grey);
 }
 .dsfr .fr-radio-rich input[type='radio']:disabled + label::before {
-  box-shadow: inset 0 0 0 1px var(--border-disabled-grey),
-    inset 0 0 0 8px var(--background-default-grey),
-    inset 0 0 0 8px var(--text-disabled-grey);
+  box-shadow: inset 0 0 0 1px var(--border-disabled-grey), inset 0 0 0 8px var(--background-default-grey), inset 0 0 0 8px var(--text-disabled-grey);
 }
 .dsfr .fr-radio-rich input[type='radio']:checked + label {
   box-shadow: inset 0 0 0 1px var(--border-action-high-blue-france);
 }
 .dsfr .fr-radio-rich input[type='radio']:checked + label::before {
-  box-shadow: inset 0 0 0 1px var(--border-action-high-grey),
-    inset 0 0 0 4px var(--background-default-grey),
-    inset 0 0 0 8px var(--background-action-high-blue-france);
+  box-shadow: inset 0 0 0 1px var(--border-action-high-grey), inset 0 0 0 4px var(--background-default-grey), inset 0 0 0 8px var(--background-action-high-blue-france);
 }
 .dsfr .fr-radio-rich input[type='radio']:checked:disabled + label {
   box-shadow: inset 0 0 0 1px var(--text-disabled-grey);
 }
 .dsfr .fr-radio-rich input[type='radio']:checked:disabled + label::before {
-  box-shadow: inset 0 0 0 1px var(--border-disabled-grey),
-    inset 0 0 0 4px var(--background-default-grey),
-    inset 0 0 0 8px var(--text-disabled-grey);
+  box-shadow: inset 0 0 0 1px var(--border-disabled-grey), inset 0 0 0 4px var(--background-default-grey), inset 0 0 0 8px var(--text-disabled-grey);
 }
 .dsfr .fr-fieldset .fr-fieldset__content .fr-radio-group--sm label::before {
   margin-top: 1rem;
 }
-.dsfr
-  .fr-fieldset
-  .fr-fieldset__content
-  .fr-radio-rich:first-child
-  input[type='radio']
-  + label {
+.dsfr .fr-fieldset .fr-fieldset__content .fr-radio-rich:first-child input[type='radio'] + label {
   margin-top: 0.75rem;
 }
-.dsfr
-  .fr-fieldset
-  .fr-fieldset__content
-  .fr-radio-rich
-  input[type='radio']
-  + label {
+.dsfr .fr-fieldset .fr-fieldset__content .fr-radio-rich input[type='radio'] + label {
   margin-top: 0.5rem;
   margin-bottom: 1rem;
 }
-.dsfr
-  .fr-fieldset
-  .fr-fieldset__content
-  .fr-radio-rich:last-child
-  input[type='radio']
-  + label {
+.dsfr .fr-fieldset .fr-fieldset__content .fr-radio-rich:last-child input[type='radio'] + label {
   margin-bottom: 0.75rem;
 }
-.dsfr
-  .fr-fieldset--inline
-  .fr-fieldset__content
-  .fr-radio-rich:not(:last-child)
-  input[type='radio']
-  + label {
+.dsfr .fr-fieldset--inline .fr-fieldset__content .fr-radio-rich:not(:last-child) input[type='radio'] + label {
   margin-right: 0.75rem;
   margin-bottom: 0.5rem;
 }
-.dsfr
-  .fr-fieldset--inline
-  .fr-fieldset__content
-  .fr-radio-rich:not(:last-child)
-  .fr-radio-rich__img {
+.dsfr .fr-fieldset--inline .fr-fieldset__content .fr-radio-rich:not(:last-child) .fr-radio-rich__img {
   right: 1rem;
 }
 .dsfr .fr-fieldset--inline .fr-fieldset__content .fr-radio-rich:last-child {
   margin-bottom: 0;
 }
-.dsfr
-  .fr-fieldset--inline
-  .fr-fieldset__content
-  .fr-radio-rich:last-child
-  input[type='radio']
-  + label {
+.dsfr .fr-fieldset--inline .fr-fieldset__content .fr-radio-rich:last-child input[type='radio'] + label {
   margin-bottom: 0.75rem;
 }
-.dsfr
-  .fr-fieldset--inline
-  .fr-fieldset__content
-  .fr-radio-rich:first-child
-  .fr-radio-rich__img {
+.dsfr .fr-fieldset--inline .fr-fieldset__content .fr-radio-rich:first-child .fr-radio-rich__img {
   top: 1rem;
 }
 .dsfr .fr-fieldset--inline .fr-fieldset__content .fr-radio-rich__img {
   top: 0.75rem;
 }
-.dsfr
-  .fr-fieldset--inline
-  .fr-hint-text
-  + .fr-fieldset__content
-  .fr-radio-rich:first-child
-  input[type='radio']
-  + label {
+.dsfr .fr-fieldset--inline .fr-hint-text + .fr-fieldset__content .fr-radio-rich:first-child input[type='radio'] + label {
   margin-top: 1.5rem;
 }
 .dsfr .fr-card {
@@ -12871,20 +11884,11 @@ body {
 .dsfr .fr-card__body > .fr-card__desc {
   margin-top: -1rem;
 }
-.dsfr
-  .fr-card.fr-enlarge-link:not(.fr-card--no-arrow)
-  .fr-card__body
-  > .fr-card__desc,
-.dsfr
-  .fr-card.fr-enlarge-link:not(.fr-card--no-arrow)
-  .fr-card__body
-  > .fr-card__title {
+.dsfr .fr-card.fr-enlarge-link:not(.fr-card--no-arrow) .fr-card__body > .fr-card__desc,
+.dsfr .fr-card.fr-enlarge-link:not(.fr-card--no-arrow) .fr-card__body > .fr-card__title {
   margin-bottom: 4.5rem;
 }
-.dsfr
-  .fr-card.fr-enlarge-link:not(.fr-card--no-arrow)
-  .fr-card__body
-  > .fr-card__desc {
+.dsfr .fr-card.fr-enlarge-link:not(.fr-card--no-arrow) .fr-card__body > .fr-card__desc {
   margin-top: -3.5rem;
 }
 .dsfr .fr-card:not(.fr-card--no-border):not(.fr-card--shadow) {
@@ -13017,10 +12021,7 @@ body {
   margin-top: 0.5rem;
 }
 .dsfr .fr-checkbox-group input[type='checkbox']:checked + label::before,
-.dsfr
-  .fr-checkbox-group
-  input[type='checkbox']:active:not(:disabled)
-  + label::before {
+.dsfr .fr-checkbox-group input[type='checkbox']:active:not(:disabled) + label::before {
   background-color: var(--background-active-blue-france);
   --idle: transparent;
   --hover: var(--background-active-blue-france-hover);
@@ -13028,23 +12029,14 @@ body {
   --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23fff' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
   background-image: var(--data-uri-svg);
 }
-:root:where([data-fr-theme='dark'])
-  .fr-checkbox-group
-  input[type='checkbox']:checked
-  + label::before,
-:root:where([data-fr-theme='dark'])
-  .fr-checkbox-group
-  input[type='checkbox']:active:not(:disabled)
-  + label::before {
+:root:where([data-fr-theme='dark']) .fr-checkbox-group input[type='checkbox']:checked + label::before,
+:root:where([data-fr-theme='dark']) .fr-checkbox-group input[type='checkbox']:active:not(:disabled) + label::before {
   --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23161616' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
 }
 .dsfr .fr-checkbox-group input[type='checkbox']:disabled + label::before {
   box-shadow: inset 0 0 0 1px var(--border-disabled-grey);
 }
-.dsfr
-  .fr-checkbox-group
-  input[type='checkbox']:disabled:checked
-  + label::before {
+.dsfr .fr-checkbox-group input[type='checkbox']:disabled:checked + label::before {
   color: var(--text-disabled-grey);
   background-color: var(--background-disabled-grey);
   --idle: transparent;
@@ -13053,10 +12045,7 @@ body {
   --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
   background-image: var(--data-uri-svg);
 }
-:root:where([data-fr-theme='dark'])
-  .fr-checkbox-group
-  input[type='checkbox']:disabled:checked
-  + label::before {
+:root:where([data-fr-theme='dark']) .fr-checkbox-group input[type='checkbox']:disabled:checked + label::before {
   --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23666' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
 }
 .dsfr .fr-checkbox-group--error input[type='checkbox'] + label {
@@ -13103,10 +12092,7 @@ body {
    */
   box-shadow: inset 0 0 0 1px var(--border-action-high-blue-france);
 }
-.dsfr
-  .fr-toggle
-  input[type='checkbox']:checked
-  ~ .fr-toggle__label[data-fr-unchecked-label][data-fr-checked-label]::before {
+.dsfr .fr-toggle input[type='checkbox']:checked ~ .fr-toggle__label[data-fr-unchecked-label][data-fr-checked-label]::before {
   content: attr(data-fr-checked-label);
 }
 .dsfr .fr-toggle input[type='checkbox']:checked ~ .fr-toggle__label::after {
@@ -13142,10 +12128,7 @@ body {
 .dsfr .fr-toggle label[data-fr-unchecked-label][data-fr-checked-label]::before {
   content: attr(data-fr-unchecked-label);
 }
-.dsfr
-  .fr-toggle
-  label[data-fr-unchecked-label][data-fr-checked-label]
-  + .fr-hint-text {
+.dsfr .fr-toggle label[data-fr-unchecked-label][data-fr-checked-label] + .fr-hint-text {
   margin-top: 0.5rem;
 }
 .dsfr .fr-toggle label::before {
@@ -13195,10 +12178,7 @@ body {
   order: 1;
   margin: 0 0 0 auto;
 }
-.dsfr
-  .fr-toggle--label-left
-  .fr-toggle__input[data-fr-checked-label]
-  ~ .fr-toggle__label {
+.dsfr .fr-toggle--label-left .fr-toggle__input[data-fr-checked-label] ~ .fr-toggle__label {
   padding-left: 0;
   padding-right: 1rem;
 }
@@ -13237,10 +12217,7 @@ body {
   --hover: var(--background-active-blue-france-hover);
   --active: var(--background-active-blue-france-active);
 }
-:root:where([data-fr-theme='dark'])
-  .fr-toggle
-  input[type='checkbox']:checked
-  ~ .fr-toggle__label::after {
+:root:where([data-fr-theme='dark']) .fr-toggle input[type='checkbox']:checked ~ .fr-toggle__label::after {
   --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%238585f6' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
 }
 .dsfr .fr-toggle input[type='checkbox']:disabled {
@@ -13252,17 +12229,11 @@ body {
   --hover: var(--background-disabled-grey-hover);
   --active: var(--background-disabled-grey-active);
 }
-.dsfr
-  .fr-toggle
-  input[type='checkbox']:disabled:checked
-  ~ .fr-toggle__label::after {
+.dsfr .fr-toggle input[type='checkbox']:disabled:checked ~ .fr-toggle__label::after {
   --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
   background-image: var(--data-uri-svg);
 }
-:root:where([data-fr-theme='dark'])
-  .fr-toggle
-  input[type='checkbox']:disabled:checked
-  ~ .fr-toggle__label::after {
+:root:where([data-fr-theme='dark']) .fr-toggle input[type='checkbox']:disabled:checked ~ .fr-toggle__label::after {
   --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23666' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
 }
 .dsfr .fr-toggle input[type='checkbox']:disabled ~ .fr-toggle__label::before {
@@ -13382,8 +12353,7 @@ body {
 .dsfr .fr-select:-webkit-autofill,
 .dsfr .fr-select:-webkit-autofill:hover,
 .dsfr .fr-select:-webkit-autofill:focus {
-  box-shadow: inset 0 -2px 0 0 var(--border-plain-grey),
-    inset 0 0 0 1000px var(--background-contrast-blue-france);
+  box-shadow: inset 0 -2px 0 0 var(--border-plain-grey), inset 0 0 0 1000px var(--background-contrast-blue-france);
   -webkit-text-fill-color: var(--text-label-grey);
 }
 .dsfr .fr-callout {
@@ -13705,8 +12675,7 @@ body {
   width: 100%;
   height: 100%;
   pointer-events: none;
-  box-shadow: 0 -1px 0 0 var(--border-default-grey),
-    inset 0 -1px 0 0 var(--border-default-grey);
+  box-shadow: 0 -1px 0 0 var(--border-default-grey), inset 0 -1px 0 0 var(--border-default-grey);
 }
 .dsfr .fr-nav__item .fr-btn,
 .dsfr .fr-nav__item .fr-link {
@@ -13879,12 +12848,7 @@ body {
   max-width: 100%;
   width: auto;
 }
-.dsfr
-  .fr-share
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-']) {
+.dsfr .fr-share .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg) .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-']) {
   font-size: 1rem;
   line-height: 1.5rem;
   min-height: 2.5rem;
@@ -13896,12 +12860,7 @@ body {
   padding-left: 0.5rem;
   padding-right: 0.5rem;
 }
-.dsfr
-  .fr-share
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-'])::before {
+.dsfr .fr-share .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg) .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::before {
   margin-left: 0;
   margin-right: 0.5rem;
   flex: 0 0 auto;
@@ -14190,8 +13149,7 @@ body {
   /**
   * Container des logos partenaires secondaires
   */
-  box-shadow: inset 0 2px 0 0 var(--border-plain-blue-france),
-    inset 0 -1px 0 0 var(--border-default-grey);
+  box-shadow: inset 0 2px 0 0 var(--border-plain-blue-france), inset 0 -1px 0 0 var(--border-default-grey);
 }
 .dsfr .fr-footer__body {
   display: flex;
@@ -14720,31 +13678,12 @@ body {
 .dsfr .fr-transcription .fr-modal:not(.fr-modal--opened) > .fr-container {
   padding: 0.0625rem 0;
 }
-.dsfr
-  .fr-transcription
-  .fr-modal:not(.fr-modal--opened)
-  > .fr-container
-  > .fr-grid-row {
+.dsfr .fr-transcription .fr-modal:not(.fr-modal--opened) > .fr-container > .fr-grid-row {
   display: inherit;
 }
-.dsfr
-  .fr-transcription
-  .fr-modal:not(.fr-modal--opened)
-  > .fr-container
-  > .fr-grid-row
-  > [class^='fr-col-'],
-.dsfr
-  .fr-transcription
-  .fr-modal:not(.fr-modal--opened)
-  > .fr-container
-  > .fr-grid-row
-  > [class*=' fr-col-'],
-.dsfr
-  .fr-transcription
-  .fr-modal:not(.fr-modal--opened)
-  > .fr-container
-  > .fr-grid-row
-  > .fr-col {
+.dsfr .fr-transcription .fr-modal:not(.fr-modal--opened) > .fr-container > .fr-grid-row > [class^='fr-col-'],
+.dsfr .fr-transcription .fr-modal:not(.fr-modal--opened) > .fr-container > .fr-grid-row > [class*=' fr-col-'],
+.dsfr .fr-transcription .fr-modal:not(.fr-modal--opened) > .fr-container > .fr-grid-row > .fr-col {
   flex: inherit;
   width: inherit;
   max-width: inherit;
@@ -14857,8 +13796,7 @@ body {
 .dsfr .fr-input:-webkit-autofill,
 .dsfr .fr-input:-webkit-autofill:hover,
 .dsfr .fr-input:-webkit-autofill:focus {
-  box-shadow: inset 0 -2px 0 0 var(--border-plain-grey),
-    inset 0 0 0 1000px var(--background-contrast-info);
+  box-shadow: inset 0 -2px 0 0 var(--border-plain-grey), inset 0 0 0 1000px var(--background-contrast-info);
   -webkit-text-fill-color: var(--text-label-grey);
 }
 :root:where([data-fr-theme='dark']) .fr-input[type='date'] {
@@ -14881,9 +13819,7 @@ body {
 .dsfr .fr-input-group--error .fr-input {
   box-shadow: inset 0 -2px 0 0 var(--border-plain-error);
 }
-.dsfr
-  .fr-input-wrap
-  > *:not(:last-child).fr-input:not(.fr-input--valid):not(.fr-input--error) {
+.dsfr .fr-input-wrap > *:not(:last-child).fr-input:not(.fr-input--valid):not(.fr-input--error) {
   box-shadow: inset 0 -2px 0 0 var(--border-action-high-blue-france);
 }
 .dsfr .fr-search-bar {
@@ -15114,11 +14050,7 @@ body {
 .dsfr .fr-consent-service:last-child > .fr-fieldset {
   padding: 2rem 0 1rem;
 }
-.dsfr
-  .fr-consent-service:last-child
-  > .fr-fieldset
-  .fr-consent-service
-  > .fr-fieldset:last-child {
+.dsfr .fr-consent-service:last-child > .fr-fieldset .fr-consent-service > .fr-fieldset:last-child {
   margin-bottom: 0;
 }
 .dsfr .fr-consent-service__title {
@@ -15175,11 +14107,7 @@ body {
 .dsfr .fr-consent-service .fr-radio-group {
   position: relative;
 }
-.dsfr
-  .fr-consent-service
-  .fr-radio-group:not(:last-child)
-  input[type='radio']
-  + label {
+.dsfr .fr-consent-service .fr-radio-group:not(:last-child) input[type='radio'] + label {
   margin-right: 3rem;
 }
 .dsfr .fr-consent-service .fr-radio-group:not(:first-child)::before {
@@ -15206,12 +14134,10 @@ body {
   --hover-tint: var(--idle);
   --active-tint: var(--idle);
   background-image: var(--underline-img), var(--underline-img);
-  background-position: var(--underline-x) 100%,
-    var(--underline-x) calc(100% - 0.0625em);
+  background-position: var(--underline-x) 100%, var(--underline-x) calc(100% - 0.0625em);
   background-repeat: no-repeat, no-repeat;
   transition: background-size 0s;
-  background-size: var(--underline-hover-width) 0.125em,
-    var(--underline-idle-width) 0.0625em;
+  background-size: var(--underline-hover-width) 0.125em, var(--underline-idle-width) 0.0625em;
 }
 .dsfr .fr-consent-service .fr-consent-service__collapse-btn::before,
 .dsfr .fr-consent-service .fr-consent-service__collapse-btn::after {
@@ -15221,9 +14147,7 @@ body {
   margin-right: -1.25rem;
   transition: transform 0.3s;
 }
-.dsfr
-  .fr-consent-service
-  .fr-consent-service__collapse-btn[aria-expanded='true']::after {
+.dsfr .fr-consent-service .fr-consent-service__collapse-btn[aria-expanded='true']::after {
   transform: rotate(-180deg);
 }
 .dsfr .fr-consent-services {
@@ -15340,12 +14264,7 @@ body {
   max-width: 100%;
   width: auto;
 }
-.dsfr
-  .fr-follow__social
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-']) {
+.dsfr .fr-follow__social .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg) .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-']) {
   font-size: 1rem;
   line-height: 1.5rem;
   min-height: 2.5rem;
@@ -15360,9 +14279,7 @@ body {
 .dsfr
   .fr-follow__social
   .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-'])::before {
+  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::before {
   margin-left: 0;
   margin-right: 0.5rem;
   flex: 0 0 auto;
@@ -15376,12 +14293,7 @@ body {
   --icon-size: 1.5rem;
   content: '';
 }
-.dsfr
-  .fr-follow__social
-  .fr-btns-group--lg
-  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-']) {
+.dsfr .fr-follow__social .fr-btns-group--lg .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-']) {
   font-size: 1.125rem;
   line-height: 1.75rem;
   min-height: 3rem;
@@ -15393,12 +14305,7 @@ body {
   padding-left: 0.5rem;
   padding-right: 0.5rem;
 }
-.dsfr
-  .fr-follow__social
-  .fr-btns-group--lg
-  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-'])::before {
+.dsfr .fr-follow__social .fr-btns-group--lg .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::before {
   margin-left: 0;
   margin-right: 0.5rem;
   flex: 0 0 auto;
@@ -15880,12 +14787,8 @@ body {
 }
 .dsfr
   .fr-header
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-']):not(.fr-btn--display) {
+  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-'])
+  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-']):not(.fr-btn--display) {
   font-size: 0.875rem;
   line-height: 1.5rem;
   min-height: 2rem;
@@ -15893,46 +14796,18 @@ body {
 }
 .dsfr
   .fr-header
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-']):not(.fr-btn--display)::before,
+  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-'])
+  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-']):not(.fr-btn--display)::before,
 .dsfr
   .fr-header
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-']):not(.fr-btn--display)::after {
+  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-'])
+  .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-']):not(.fr-btn--display)::after {
   --icon-size: 1rem;
 }
-.dsfr
-  .fr-header
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class^='fr-icon-'],
-.dsfr
-  .fr-header
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class*=' fr-icon-'],
-.dsfr
-  .fr-header
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class^='fr-fi-'],
-.dsfr
-  .fr-header
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class*=' fr-fi-'] {
+.dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-icon-'],
+.dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-icon-'],
+.dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-fi-'],
+.dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-fi-'] {
   font-size: 0.875rem;
   line-height: 1.5rem;
   min-height: 2rem;
@@ -15941,40 +14816,15 @@ body {
   max-width: 100%;
   max-height: none;
 }
-.dsfr
-  .fr-header
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class^='fr-icon-']::before,
-.dsfr
-  .fr-header
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class*=' fr-icon-']::before,
-.dsfr
-  .fr-header
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class^='fr-fi-']::before,
-.dsfr
-  .fr-header
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn[class*=' fr-fi-']::before {
+.dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-icon-']::before,
+.dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-icon-']::before,
+.dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-fi-']::before,
+.dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-fi-']::before {
   --icon-size: 1rem;
   margin-left: -0.125rem;
   margin-right: 0.5rem;
 }
-.dsfr
-  .fr-header
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn.fr-btn--display {
+.dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn.fr-btn--display {
   font-size: 0.875rem;
   line-height: 1.5rem;
   min-height: 2rem;
@@ -15983,12 +14833,7 @@ body {
   max-width: 100%;
   max-height: none;
 }
-.dsfr
-  .fr-header
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn.fr-btn--display::before {
+.dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn.fr-btn--display::before {
   --icon-size: 1rem;
   margin-left: -0.125rem;
   margin-right: 0.5rem;
@@ -16011,22 +14856,11 @@ body {
   padding-left: 0.5rem;
   padding-right: 0.5rem;
 }
-.dsfr
-  .fr-header
-  .fr-header__menu-links
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-']) {
+.dsfr .fr-header .fr-header__menu-links .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) {
   display: flex;
   flex-direction: column;
 }
-.dsfr
-  .fr-header
-  .fr-header__menu-links
-  .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-    [class^='fr-btns-group--icon-']
-  ):not([class*=' fr-btns-group--icon-'])
-  .fr-btn {
+.dsfr .fr-header .fr-header__menu-links .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn {
   width: calc(100% - 1rem);
   min-height: 3rem;
   padding-left: 0;
@@ -16061,29 +14895,14 @@ body {
   --hover-tint: var(--hover);
   --active-tint: var(--active);
 }
-.dsfr
-  .fr-header
-  .fr-links-group
-  .fr-link:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-']) {
+.dsfr .fr-header .fr-links-group .fr-link:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-']) {
   font-size: 0.875rem;
   line-height: 1.5rem;
   min-height: 2rem;
   padding: 0.25rem 0.75rem;
 }
-.dsfr
-  .fr-header
-  .fr-links-group
-  .fr-link:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-'])::before,
-.dsfr
-  .fr-header
-  .fr-links-group
-  .fr-link:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-    [class^='fr-fi-']
-  ):not([class*=' fr-fi-'])::after {
+.dsfr .fr-header .fr-links-group .fr-link:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::before,
+.dsfr .fr-header .fr-links-group .fr-link:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::after {
   --icon-size: 1rem;
 }
 .dsfr .fr-header .fr-links-group .fr-link[class^='fr-icon-'],
@@ -16471,8 +15290,7 @@ body {
     max-width: 100%;
     width: auto;
   }
-  .dsfr
-    .fr-btns-group--inline-sm.fr-btns-group--right.fr-btns-group--inline-reverse {
+  .dsfr .fr-btns-group--inline-sm.fr-btns-group--right.fr-btns-group--inline-reverse {
     flex-direction: row-reverse;
     justify-content: flex-start;
   }
@@ -18767,8 +17585,7 @@ body {
     max-width: 100%;
     width: auto;
   }
-  .dsfr
-    .fr-btns-group--inline-md.fr-btns-group--right.fr-btns-group--inline-reverse {
+  .dsfr .fr-btns-group--inline-md.fr-btns-group--right.fr-btns-group--inline-reverse {
     flex-direction: row-reverse;
     justify-content: flex-start;
   }
@@ -18860,16 +17677,8 @@ body {
   .dsfr .fr-sidemenu__list .fr-sidemenu__list {
     margin: 0 1rem;
   }
-  .dsfr
-    .fr-sidemenu__list
-    .fr-sidemenu__list
-    .fr-sidemenu__list
-    .fr-sidemenu__link,
-  .dsfr
-    .fr-sidemenu__list
-    .fr-sidemenu__list
-    .fr-sidemenu__list
-    .fr-sidemenu__btn {
+  .dsfr .fr-sidemenu__list .fr-sidemenu__list .fr-sidemenu__list .fr-sidemenu__link,
+  .dsfr .fr-sidemenu__list .fr-sidemenu__list .fr-sidemenu__list .fr-sidemenu__btn {
     padding: 0.75rem 0.5rem;
   }
   .dsfr .fr-sidemenu__list {
@@ -19318,46 +18127,23 @@ body {
     align-items: center;
     justify-content: space-between;
   }
-  .dsfr
-    .fr-follow
-    .fr-grid-row
-    > *:first-child:last-child
-    > .fr-follow__newsletter {
+  .dsfr .fr-follow .fr-grid-row > *:first-child:last-child > .fr-follow__newsletter {
     --text-spacing: 0;
   }
-  .dsfr
-    .fr-follow
-    .fr-grid-row
-    > *:first-child:last-child
-    > .fr-follow__newsletter
-    > * {
+  .dsfr .fr-follow .fr-grid-row > *:first-child:last-child > .fr-follow__newsletter > * {
     max-width: 50%;
     padding-right: 0.75rem;
     padding-left: 0.75rem;
   }
-  .dsfr
-    .fr-follow
-    .fr-grid-row
-    > *:first-child:last-child
-    > .fr-follow__newsletter
-    > :first-child {
+  .dsfr .fr-follow .fr-grid-row > *:first-child:last-child > .fr-follow__newsletter > :first-child {
     padding-right: 0.75rem;
     padding-left: 0;
   }
-  .dsfr
-    .fr-follow
-    .fr-grid-row
-    > *:first-child:last-child
-    > .fr-follow__newsletter
-    > :last-child {
+  .dsfr .fr-follow .fr-grid-row > *:first-child:last-child > .fr-follow__newsletter > :last-child {
     padding-right: 0;
     padding-left: 0.75rem;
   }
-  .dsfr
-    .fr-follow
-    .fr-grid-row
-    > *:first-child:last-child
-    > .fr-follow__social {
+  .dsfr .fr-follow .fr-grid-row > *:first-child:last-child > .fr-follow__social {
     --title-spacing: 0;
   }
   .dsfr .fr-follow .fr-hint-text {
@@ -19678,8 +18464,7 @@ body {
     max-width: 100%;
     width: auto;
   }
-  .dsfr
-    .fr-btns-group--inline-lg.fr-btns-group--right.fr-btns-group--inline-reverse {
+  .dsfr .fr-btns-group--inline-lg.fr-btns-group--right.fr-btns-group--inline-reverse {
     flex-direction: row-reverse;
     justify-content: flex-start;
   }
@@ -20082,13 +18867,7 @@ body {
     margin-right: 0;
     margin-bottom: -1rem;
   }
-  .dsfr
-    .fr-header
-    .fr-header__menu-links
-    .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-      [class^='fr-btns-group--icon-']
-    ):not([class*=' fr-btns-group--icon-'])
-    .fr-btn {
+  .dsfr .fr-header .fr-header__menu-links .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn {
     font-size: 0.875rem;
     line-height: 1.5rem;
   }
@@ -20948,38 +19727,14 @@ body {
     width: 1rem;
     height: 1rem;
   }
-  .dsfr
-    .fr-btn[class^='fr-icon-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::before,
-  .dsfr
-    .fr-btn[class^='fr-icon-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::after,
-  .dsfr
-    .fr-btn[class*=' fr-icon-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::before,
-  .dsfr
-    .fr-btn[class*=' fr-icon-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::after,
-  .dsfr
-    .fr-btn[class^='fr-fi-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::before,
-  .dsfr
-    .fr-btn[class^='fr-fi-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::after,
-  .dsfr
-    .fr-btn[class*=' fr-fi-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::before,
-  .dsfr
-    .fr-btn[class*=' fr-fi-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::after {
+  .dsfr .fr-btn[class^='fr-icon-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::before,
+  .dsfr .fr-btn[class^='fr-icon-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::after,
+  .dsfr .fr-btn[class*=' fr-icon-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::before,
+  .dsfr .fr-btn[class*=' fr-icon-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::after,
+  .dsfr .fr-btn[class^='fr-fi-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::before,
+  .dsfr .fr-btn[class^='fr-fi-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::after,
+  .dsfr .fr-btn[class*=' fr-fi-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::before,
+  .dsfr .fr-btn[class*=' fr-fi-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::after {
     background-color: transparent;
     background-size: 100%;
     background-repeat: no-repeat;
@@ -20994,38 +19749,14 @@ body {
     width: 0.75rem;
     height: 0.75rem;
   }
-  .dsfr
-    .fr-btn--sm[class^='fr-icon-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::before,
-  .dsfr
-    .fr-btn--sm[class^='fr-icon-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::after,
-  .dsfr
-    .fr-btn--sm[class*=' fr-icon-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::before,
-  .dsfr
-    .fr-btn--sm[class*=' fr-icon-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::after,
-  .dsfr
-    .fr-btn--sm[class^='fr-fi-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::before,
-  .dsfr
-    .fr-btn--sm[class^='fr-fi-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::after,
-  .dsfr
-    .fr-btn--sm[class*=' fr-fi-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::before,
-  .dsfr
-    .fr-btn--sm[class*=' fr-fi-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::after {
+  .dsfr .fr-btn--sm[class^='fr-icon-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::before,
+  .dsfr .fr-btn--sm[class^='fr-icon-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::after,
+  .dsfr .fr-btn--sm[class*=' fr-icon-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::before,
+  .dsfr .fr-btn--sm[class*=' fr-icon-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::after,
+  .dsfr .fr-btn--sm[class^='fr-fi-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::before,
+  .dsfr .fr-btn--sm[class^='fr-fi-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::after,
+  .dsfr .fr-btn--sm[class*=' fr-fi-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::before,
+  .dsfr .fr-btn--sm[class*=' fr-fi-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::after {
     background-color: transparent;
     background-size: 100%;
     background-repeat: no-repeat;
@@ -21040,38 +19771,14 @@ body {
     width: 1.5rem;
     height: 1.5rem;
   }
-  .dsfr
-    .fr-btn--lg[class^='fr-icon-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::before,
-  .dsfr
-    .fr-btn--lg[class^='fr-icon-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::after,
-  .dsfr
-    .fr-btn--lg[class*=' fr-icon-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::before,
-  .dsfr
-    .fr-btn--lg[class*=' fr-icon-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::after,
-  .dsfr
-    .fr-btn--lg[class^='fr-fi-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::before,
-  .dsfr
-    .fr-btn--lg[class^='fr-fi-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::after,
-  .dsfr
-    .fr-btn--lg[class*=' fr-fi-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::before,
-  .dsfr
-    .fr-btn--lg[class*=' fr-fi-']:not([class^='fr-btn--icon-']):not(
-      [class*=' fr-btn--icon-']
-    )::after {
+  .dsfr .fr-btn--lg[class^='fr-icon-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::before,
+  .dsfr .fr-btn--lg[class^='fr-icon-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::after,
+  .dsfr .fr-btn--lg[class*=' fr-icon-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::before,
+  .dsfr .fr-btn--lg[class*=' fr-icon-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::after,
+  .dsfr .fr-btn--lg[class^='fr-fi-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::before,
+  .dsfr .fr-btn--lg[class^='fr-fi-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::after,
+  .dsfr .fr-btn--lg[class*=' fr-fi-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::before,
+  .dsfr .fr-btn--lg[class*=' fr-fi-']:not([class^='fr-btn--icon-']):not([class*=' fr-btn--icon-'])::after {
     background-color: transparent;
     background-size: 100%;
     background-repeat: no-repeat;
@@ -21117,92 +19824,28 @@ body {
     margin-top: 0;
     margin-bottom: 0;
   }
-  .dsfr
-    .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class^='fr-icon-']::before,
-  .dsfr
-    .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class^='fr-icon-']::after,
-  .dsfr
-    .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class*=' fr-icon-']::before,
-  .dsfr
-    .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class*=' fr-icon-']::after,
-  .dsfr
-    .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class^='fr-fi-']::before,
-  .dsfr
-    .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class^='fr-fi-']::after,
-  .dsfr
-    .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class*=' fr-fi-']::before,
-  .dsfr
-    .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class*=' fr-fi-']::after {
+  .dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-icon-']::before,
+  .dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-icon-']::after,
+  .dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-icon-']::before,
+  .dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-icon-']::after,
+  .dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-fi-']::before,
+  .dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-fi-']::after,
+  .dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-fi-']::before,
+  .dsfr .fr-btns-group--sm:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-fi-']::after {
     background-color: transparent;
     background-size: 100%;
     background-repeat: no-repeat;
     width: 1rem;
     height: 1rem;
   }
-  .dsfr
-    .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class^='fr-icon-']::before,
-  .dsfr
-    .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class^='fr-icon-']::after,
-  .dsfr
-    .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class*=' fr-icon-']::before,
-  .dsfr
-    .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class*=' fr-icon-']::after,
-  .dsfr
-    .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class^='fr-fi-']::before,
-  .dsfr
-    .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class^='fr-fi-']::after,
-  .dsfr
-    .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class*=' fr-fi-']::before,
-  .dsfr
-    .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not(
-      [class*=' fr-btns-group--icon-']
-    )
-    .fr-btn[class*=' fr-fi-']::after {
+  .dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-icon-']::before,
+  .dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-icon-']::after,
+  .dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-icon-']::before,
+  .dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-icon-']::after,
+  .dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-fi-']::before,
+  .dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-fi-']::after,
+  .dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-fi-']::before,
+  .dsfr .fr-btns-group--lg:not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-fi-']::after {
     background-color: transparent;
     background-size: 100%;
     background-repeat: no-repeat;
@@ -21329,8 +19972,7 @@ body {
     color: #f5f5fe;
   }
   .dsfr .fr-connect::after {
-    background-image: linear-gradient(0deg, #f5f5fe, #f5f5fe),
-      linear-gradient(0deg, #f5f5fe, #f5f5fe);
+    background-image: linear-gradient(0deg, #f5f5fe, #f5f5fe), linear-gradient(0deg, #f5f5fe, #f5f5fe);
   }
   .dsfr .fr-connect:disabled,
   .dsfr a.fr-connect:not([href]) {
@@ -21339,8 +19981,7 @@ body {
   }
   .dsfr .fr-connect:disabled::after,
   .dsfr a.fr-connect:not([href])::after {
-    background-image: linear-gradient(0deg, #929292, #929292),
-      linear-gradient(0deg, #929292, #929292);
+    background-image: linear-gradient(0deg, #929292, #929292), linear-gradient(0deg, #929292, #929292);
   }
   .dsfr .fr-connect-group .fr-connect + p a {
     color: #000091;
@@ -21596,20 +20237,8 @@ body {
   }
   .dsfr .fr-stepper__steps {
     display: none;
-    background-image: repeating-linear-gradient(
-        to right,
-        #000091 0,
-        #000091 var(--active-inner),
-        transparent var(--active-inner),
-        transparent var(--active-outer)
-      ),
-      repeating-linear-gradient(
-        to right,
-        #eee 0,
-        #eee var(--default-inner),
-        transparent var(--default-inner),
-        transparent var(--default-outer)
-      );
+    background-image: repeating-linear-gradient(to right, #000091 0, #000091 var(--active-inner), transparent var(--active-inner), transparent var(--active-outer)),
+      repeating-linear-gradient(to right, #eee 0, #eee var(--default-inner), transparent var(--default-inner), transparent var(--default-outer));
   }
   .dsfr .fr-stepper__state {
     color: #666;
@@ -21803,13 +20432,10 @@ body {
     box-shadow: inset 0 -1px 0 0 #ddd;
   }
   .dsfr .fr-tabs::before {
-    box-shadow: inset 0 1px 0 0 #ddd, inset 1px 0 0 0 #ddd,
-      inset -1px 0 0 0 #ddd;
+    box-shadow: inset 0 1px 0 0 #ddd, inset 1px 0 0 0 #ddd, inset -1px 0 0 0 #ddd;
   }
   .dsfr .fr-tabs__tab {
-    background-image: linear-gradient(0deg, #000091, #000091),
-      linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd),
-      linear-gradient(0deg, #ddd, #ddd);
+    background-image: linear-gradient(0deg, #000091, #000091), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd), linear-gradient(0deg, #ddd, #ddd);
     box-shadow: 0 2px 0 0 #fff;
   }
   .dsfr .fr-tabs__tab:not([aria-selected='true']) {
@@ -22229,11 +20855,7 @@ body {
   .dsfr .fr-tags-group--sm input[type='button'] .fr-tag .fr-tag--dismiss::after,
   .dsfr .fr-tags-group--sm input[type='image'] .fr-tag .fr-tag--dismiss::after,
   .dsfr .fr-tags-group--sm input[type='reset'] .fr-tag .fr-tag--dismiss::after,
-  .dsfr
-    .fr-tags-group--sm
-    input[type='submit']
-    .fr-tag
-    .fr-tag--dismiss::after {
+  .dsfr .fr-tags-group--sm input[type='submit'] .fr-tag .fr-tag--dismiss::after {
     background-color: transparent;
     background-size: 100%;
     background-repeat: no-repeat;
@@ -22242,22 +20864,10 @@ body {
   }
   .dsfr .fr-tags-group--sm a .fr-tag[aria-pressed='true']::after,
   .dsfr .fr-tags-group--sm button .fr-tag[aria-pressed='true']::after,
-  .dsfr
-    .fr-tags-group--sm
-    input[type='button']
-    .fr-tag[aria-pressed='true']::after,
-  .dsfr
-    .fr-tags-group--sm
-    input[type='image']
-    .fr-tag[aria-pressed='true']::after,
-  .dsfr
-    .fr-tags-group--sm
-    input[type='reset']
-    .fr-tag[aria-pressed='true']::after,
-  .dsfr
-    .fr-tags-group--sm
-    input[type='submit']
-    .fr-tag[aria-pressed='true']::after {
+  .dsfr .fr-tags-group--sm input[type='button'] .fr-tag[aria-pressed='true']::after,
+  .dsfr .fr-tags-group--sm input[type='image'] .fr-tag[aria-pressed='true']::after,
+  .dsfr .fr-tags-group--sm input[type='reset'] .fr-tag[aria-pressed='true']::after,
+  .dsfr .fr-tags-group--sm input[type='submit'] .fr-tag[aria-pressed='true']::after {
     background-color: transparent;
     background-size: 100%;
     background-repeat: no-repeat;
@@ -22581,27 +21191,15 @@ body {
   .dsfr input[type='button'].fr-tag[aria-pressed='true']:not(:disabled) {
     background-color: transparent;
     color: #fff;
-    background-image: radial-gradient(
-      circle at 100% 0.25rem,
-      transparent 0.578125rem,
-      #000091 0.625rem
-    );
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #000091 0.625rem);
   }
   .dsfr button.fr-tag[aria-pressed='true']:not(:disabled):hover,
   .dsfr input[type='button'].fr-tag[aria-pressed='true']:not(:disabled):hover {
-    background-image: radial-gradient(
-      circle at 100% 0.25rem,
-      transparent 0.578125rem,
-      #1212ff 0.625rem
-    );
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #1212ff 0.625rem);
   }
   .dsfr button.fr-tag[aria-pressed='true']:not(:disabled):active,
   .dsfr input[type='button'].fr-tag[aria-pressed='true']:not(:disabled):active {
-    background-image: radial-gradient(
-      circle at 100% 0.25rem,
-      transparent 0.578125rem,
-      #2323ff 0.625rem
-    );
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #2323ff 0.625rem);
   }
   .dsfr button.fr-tag[aria-pressed='true']::after,
   .dsfr input[type='button'].fr-tag[aria-pressed='true']::after {
@@ -22610,11 +21208,7 @@ body {
   .dsfr button.fr-tag[aria-pressed='true']:disabled,
   .dsfr input[type='button'].fr-tag[aria-pressed='true']:disabled {
     background-color: transparent;
-    background-image: radial-gradient(
-      circle at 100% 0.25rem,
-      transparent 0.578125rem,
-      #e5e5e5 0.625rem
-    );
+    background-image: radial-gradient(circle at 100% 0.25rem, transparent 0.578125rem, #e5e5e5 0.625rem);
   }
   .dsfr button.fr-tag[aria-pressed='true']:disabled::after,
   .dsfr input[type='button'].fr-tag[aria-pressed='true']:disabled::after {
@@ -22622,35 +21216,19 @@ body {
   }
   .dsfr button.fr-tag[aria-pressed='true'].fr-tag--sm,
   .dsfr input[type='button'].fr-tag[aria-pressed='true'].fr-tag--sm {
-    background-image: radial-gradient(
-      circle at 100% 0.1875rem,
-      transparent 0.4475rem,
-      #000091 0.5rem
-    );
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);
   }
   .dsfr button.fr-tag[aria-pressed='true'].fr-tag--sm:hover,
   .dsfr input[type='button'].fr-tag[aria-pressed='true'].fr-tag--sm:hover {
-    background-image: radial-gradient(
-      circle at 100% 0.1875rem,
-      transparent 0.4475rem,
-      #1212ff 0.5rem
-    );
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);
   }
   .dsfr button.fr-tag[aria-pressed='true'].fr-tag--sm:active,
   .dsfr input[type='button'].fr-tag[aria-pressed='true'].fr-tag--sm:active {
-    background-image: radial-gradient(
-      circle at 100% 0.1875rem,
-      transparent 0.4475rem,
-      #2323ff 0.5rem
-    );
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);
   }
   .dsfr button.fr-tag[aria-pressed='true'].fr-tag--sm:disabled,
   .dsfr input[type='button'].fr-tag[aria-pressed='true'].fr-tag--sm:disabled {
-    background-image: radial-gradient(
-      circle at 100% 0.1875rem,
-      transparent 0.4475rem,
-      #e5e5e5 0.5rem
-    );
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);
   }
   .dsfr button.fr-tag:disabled,
   .dsfr input[type='button'].fr-tag:disabled {
@@ -22658,50 +21236,20 @@ body {
     background-color: #e5e5e5;
   }
   .dsfr .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed='true'],
-  .dsfr
-    .fr-tags-group.fr-tags-group--sm
-    input[type='button'].fr-tag[aria-pressed='true'] {
-    background-image: radial-gradient(
-      circle at 100% 0.1875rem,
-      transparent 0.4475rem,
-      #000091 0.5rem
-    );
+  .dsfr .fr-tags-group.fr-tags-group--sm input[type='button'].fr-tag[aria-pressed='true'] {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #000091 0.5rem);
   }
-  .dsfr
-    .fr-tags-group.fr-tags-group--sm
-    button.fr-tag[aria-pressed='true']:hover,
-  .dsfr
-    .fr-tags-group.fr-tags-group--sm
-    input[type='button'].fr-tag[aria-pressed='true']:hover {
-    background-image: radial-gradient(
-      circle at 100% 0.1875rem,
-      transparent 0.4475rem,
-      #1212ff 0.5rem
-    );
+  .dsfr .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed='true']:hover,
+  .dsfr .fr-tags-group.fr-tags-group--sm input[type='button'].fr-tag[aria-pressed='true']:hover {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #1212ff 0.5rem);
   }
-  .dsfr
-    .fr-tags-group.fr-tags-group--sm
-    button.fr-tag[aria-pressed='true']:active,
-  .dsfr
-    .fr-tags-group.fr-tags-group--sm
-    input[type='button'].fr-tag[aria-pressed='true']:active {
-    background-image: radial-gradient(
-      circle at 100% 0.1875rem,
-      transparent 0.4475rem,
-      #2323ff 0.5rem
-    );
+  .dsfr .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed='true']:active,
+  .dsfr .fr-tags-group.fr-tags-group--sm input[type='button'].fr-tag[aria-pressed='true']:active {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #2323ff 0.5rem);
   }
-  .dsfr
-    .fr-tags-group.fr-tags-group--sm
-    button.fr-tag[aria-pressed='true']:disabled,
-  .dsfr
-    .fr-tags-group.fr-tags-group--sm
-    input[type='button'].fr-tag[aria-pressed='true']:disabled {
-    background-image: radial-gradient(
-      circle at 100% 0.1875rem,
-      transparent 0.4475rem,
-      #e5e5e5 0.5rem
-    );
+  .dsfr .fr-tags-group.fr-tags-group--sm button.fr-tag[aria-pressed='true']:disabled,
+  .dsfr .fr-tags-group.fr-tags-group--sm input[type='button'].fr-tag[aria-pressed='true']:disabled {
+    background-image: radial-gradient(circle at 100% 0.1875rem, transparent 0.4475rem, #e5e5e5 0.5rem);
   }
   .dsfr .fr-tile__body,
   .dsfr .fr-tile__body > * {
@@ -22807,50 +21355,35 @@ body {
     background-color: #e8edff;
     color: #0063cb;
   }
-  .dsfr
-    .fr-fieldset--inline
-    .fr-radio-rich:last-child
-    input[type='radio']
-    + label {
+  .dsfr .fr-fieldset--inline .fr-radio-rich:last-child input[type='radio'] + label {
     margin-bottom: 0.5rem !important;
   }
   .dsfr .fr-radio-rich input[type='radio'] + .fr-label {
     height: 1px;
   }
   .dsfr .fr-radio-group input[type='radio'] + label::before {
-    box-shadow: inset 0 0 0 1px #161616, inset 0 0 0 12px #fff,
-      inset 0 0 0 12px #000091;
+    box-shadow: inset 0 0 0 1px #161616, inset 0 0 0 12px #fff, inset 0 0 0 12px #000091;
   }
   .dsfr .fr-radio-group input[type='radio']:disabled + label::before {
-    box-shadow: inset 0 0 0 1px #e5e5e5, inset 0 0 0 12px #fff,
-      inset 0 0 0 12px #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5, inset 0 0 0 12px #fff, inset 0 0 0 12px #929292;
   }
   .dsfr .fr-radio-group input[type='radio']:checked + label::before {
-    box-shadow: inset 0 0 0 1px #161616, inset 0 0 0 6px #fff,
-      inset 0 0 0 12px #000091;
+    box-shadow: inset 0 0 0 1px #161616, inset 0 0 0 6px #fff, inset 0 0 0 12px #000091;
   }
   .dsfr .fr-radio-group input[type='radio']:checked:disabled + label::before {
-    box-shadow: inset 0 0 0 1px #e5e5e5, inset 0 0 0 6px #fff,
-      inset 0 0 0 12px #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5, inset 0 0 0 6px #fff, inset 0 0 0 12px #929292;
   }
   .dsfr .fr-radio-group--sm input[type='radio'] + label::before {
-    box-shadow: inset 0 0 0 1px #161616, inset 0 0 0 8px #fff,
-      inset 0 0 0 8px #000091;
+    box-shadow: inset 0 0 0 1px #161616, inset 0 0 0 8px #fff, inset 0 0 0 8px #000091;
   }
   .dsfr .fr-radio-group--sm input[type='radio']:disabled + label::before {
-    box-shadow: inset 0 0 0 1px #e5e5e5, inset 0 0 0 8px #e5e5e5,
-      inset 0 0 0 8px #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5, inset 0 0 0 8px #e5e5e5, inset 0 0 0 8px #929292;
   }
   .dsfr .fr-radio-group--sm input[type='radio']:checked + label::before {
-    box-shadow: inset 0 0 0 1px #161616, inset 0 0 0 4px #fff,
-      inset 0 0 0 8px #000091;
+    box-shadow: inset 0 0 0 1px #161616, inset 0 0 0 4px #fff, inset 0 0 0 8px #000091;
   }
-  .dsfr
-    .fr-radio-group--sm
-    input[type='radio']:checked:disabled
-    + label::before {
-    box-shadow: inset 0 0 0 1px #e5e5e5, inset 0 0 0 4px #e5e5e5,
-      inset 0 0 0 8px #929292;
+  .dsfr .fr-radio-group--sm input[type='radio']:checked:disabled + label::before {
+    box-shadow: inset 0 0 0 1px #e5e5e5, inset 0 0 0 4px #e5e5e5, inset 0 0 0 8px #929292;
   }
   .dsfr .fr-radio-rich__img {
     box-shadow: inset 1px 0 0 0 #ddd;
@@ -22860,26 +21393,22 @@ body {
     background-color: #fff;
   }
   .dsfr .fr-radio-rich input[type='radio'] + label::before {
-    box-shadow: inset 0 0 0 1px #161616, inset 0 0 0 8px #fff,
-      inset 0 0 0 8px #000091;
+    box-shadow: inset 0 0 0 1px #161616, inset 0 0 0 8px #fff, inset 0 0 0 8px #000091;
   }
   .dsfr .fr-radio-rich input[type='radio']:disabled + label::before {
-    box-shadow: inset 0 0 0 1px #e5e5e5, inset 0 0 0 8px #fff,
-      inset 0 0 0 8px #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5, inset 0 0 0 8px #fff, inset 0 0 0 8px #929292;
   }
   .dsfr .fr-radio-rich input[type='radio']:checked + label {
     box-shadow: inset 0 0 0 1px #000091;
   }
   .dsfr .fr-radio-rich input[type='radio']:checked + label::before {
-    box-shadow: inset 0 0 0 1px #161616, inset 0 0 0 4px #fff,
-      inset 0 0 0 8px #000091;
+    box-shadow: inset 0 0 0 1px #161616, inset 0 0 0 4px #fff, inset 0 0 0 8px #000091;
   }
   .dsfr .fr-radio-rich input[type='radio']:checked:disabled + label {
     box-shadow: inset 0 0 0 1px #929292;
   }
   .dsfr .fr-radio-rich input[type='radio']:checked:disabled + label::before {
-    box-shadow: inset 0 0 0 1px #e5e5e5, inset 0 0 0 4px #fff,
-      inset 0 0 0 8px #929292;
+    box-shadow: inset 0 0 0 1px #e5e5e5, inset 0 0 0 4px #fff, inset 0 0 0 8px #929292;
   }
   .dsfr .fr-card::before {
     background-color: transparent;
@@ -22946,20 +21475,14 @@ body {
     box-shadow: inset 0 0 0 1px #161616;
   }
   .dsfr .fr-checkbox-group input[type='checkbox']:checked + label::before,
-  .dsfr
-    .fr-checkbox-group
-    input[type='checkbox']:active:not(:disabled)
-    + label::before {
+  .dsfr .fr-checkbox-group input[type='checkbox']:active:not(:disabled) + label::before {
     background-color: #000091;
     background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");
   }
   .dsfr .fr-checkbox-group input[type='checkbox']:disabled + label::before {
     box-shadow: inset 0 0 0 1px #e5e5e5;
   }
-  .dsfr
-    .fr-checkbox-group
-    input[type='checkbox']:disabled:checked
-    + label::before {
+  .dsfr .fr-checkbox-group input[type='checkbox']:disabled:checked + label::before {
     color: #929292;
     background-color: #e5e5e5;
     background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");
@@ -23014,10 +21537,7 @@ body {
   .dsfr .fr-toggle input[type='checkbox']:disabled:checked {
     background-color: #e5e5e5;
   }
-  .dsfr
-    .fr-toggle
-    input[type='checkbox']:disabled:checked
-    ~ .fr-toggle__label::after {
+  .dsfr .fr-toggle input[type='checkbox']:disabled:checked ~ .fr-toggle__label::after {
     background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/%3E%3C/svg%3E");
   }
   .dsfr .fr-toggle input[type='checkbox']:disabled ~ .fr-toggle__label::before {
@@ -23213,18 +21733,8 @@ body {
   .dsfr .fr-share__group > li {
     list-style: none;
   }
-  .dsfr
-    .fr-share
-    .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-    .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-      [class^='fr-fi-']
-    ):not([class*=' fr-fi-'])::before,
-  .dsfr
-    .fr-share
-    .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-    .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-      [class^='fr-fi-']
-    ):not([class*=' fr-fi-'])::after {
+  .dsfr .fr-share .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg) .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::before,
+  .dsfr .fr-share .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg) .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::after {
     background-color: transparent;
     background-size: 100%;
     background-repeat: no-repeat;
@@ -23458,9 +21968,7 @@ body {
   .dsfr .fr-input-group--error .fr-input {
     box-shadow: inset 0 -2px 0 0 #ce0500;
   }
-  .dsfr
-    .fr-input-wrap
-    > *:not(:last-child).fr-input:not(.fr-input--valid):not(.fr-input--error) {
+  .dsfr .fr-input-wrap > *:not(:last-child).fr-input:not(.fr-input--valid):not(.fr-input--error) {
     box-shadow: inset 0 -2px 0 0 #000091;
   }
   .dsfr .fr-search-bar .fr-btn::before,
@@ -23520,12 +22028,8 @@ body {
     width: 1rem;
     height: 1rem;
   }
-  .dsfr
-    .fr-consent-service__collapse
-    .fr-consent-service__collapse-btn[aria-expanded='true']::before,
-  .dsfr
-    .fr-consent-service__collapse
-    .fr-consent-service__collapse-btn[aria-expanded='true']::after {
+  .dsfr .fr-consent-service__collapse .fr-consent-service__collapse-btn[aria-expanded='true']::before,
+  .dsfr .fr-consent-service__collapse .fr-consent-service__collapse-btn[aria-expanded='true']::after {
     background-color: transparent;
     background-size: 100%;
     background-repeat: no-repeat;
@@ -23596,36 +22100,16 @@ body {
   .dsfr .fr-follow .fr-btn--mastodon::before {
     background-image: url('icons/logo/mastodon-fill.svg');
   }
-  .dsfr
-    .fr-follow
-    .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-    .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-      [class^='fr-fi-']
-    ):not([class*=' fr-fi-'])::before,
-  .dsfr
-    .fr-follow
-    .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg)
-    .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-      [class^='fr-fi-']
-    ):not([class*=' fr-fi-'])::after {
+  .dsfr .fr-follow .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg) .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::before,
+  .dsfr .fr-follow .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg) .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::after {
     background-color: transparent;
     background-size: 100%;
     background-repeat: no-repeat;
     width: 1.5rem;
     height: 1.5rem;
   }
-  .dsfr
-    .fr-follow
-    .fr-btns-group--lg
-    .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-      [class^='fr-fi-']
-    ):not([class*=' fr-fi-'])::before,
-  .dsfr
-    .fr-follow
-    .fr-btns-group--lg
-    .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-      [class^='fr-fi-']
-    ):not([class*=' fr-fi-'])::after {
+  .dsfr .fr-follow .fr-btns-group--lg .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::before,
+  .dsfr .fr-follow .fr-btns-group--lg .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::after {
     background-color: transparent;
     background-size: 100%;
     background-repeat: no-repeat;
@@ -23677,36 +22161,16 @@ body {
     width: 1.5rem;
     height: 1.5rem;
   }
-  .dsfr
-    .fr-follow
-    .fr-links-group:not(.fr-links-group--sm):not(.fr-links-group--lg)
-    .fr-link:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-      [class^='fr-fi-']
-    ):not([class*=' fr-fi-'])::before,
-  .dsfr
-    .fr-follow
-    .fr-links-group:not(.fr-links-group--sm):not(.fr-links-group--lg)
-    .fr-link:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-      [class^='fr-fi-']
-    ):not([class*=' fr-fi-'])::after {
+  .dsfr .fr-follow .fr-links-group:not(.fr-links-group--sm):not(.fr-links-group--lg) .fr-link:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::before,
+  .dsfr .fr-follow .fr-links-group:not(.fr-links-group--sm):not(.fr-links-group--lg) .fr-link:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::after {
     background-color: transparent;
     background-size: 100%;
     background-repeat: no-repeat;
     width: 1.5rem;
     height: 1.5rem;
   }
-  .dsfr
-    .fr-follow
-    .fr-links-group--lg
-    .fr-link:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-      [class^='fr-fi-']
-    ):not([class*=' fr-fi-'])::before,
-  .dsfr
-    .fr-follow
-    .fr-links-group--lg
-    .fr-link:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-      [class^='fr-fi-']
-    ):not([class*=' fr-fi-'])::after {
+  .dsfr .fr-follow .fr-links-group--lg .fr-link:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::before,
+  .dsfr .fr-follow .fr-links-group--lg .fr-link:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-'])::after {
     background-color: transparent;
     background-size: 100%;
     background-repeat: no-repeat;
@@ -23820,48 +22284,19 @@ body {
   }
   .dsfr
     .fr-header
-    .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-      [class^='fr-btns-group--icon-']
-    ):not([class*=' fr-btns-group--icon-'])
-    .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not(
-      [class^='fr-fi-']
-    ):not([class*=' fr-fi-']):not(.fr-btn--display)::before {
+    .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-'])
+    .fr-btn:not([class^='fr-icon-']):not([class*=' fr-icon-']):not([class^='fr-fi-']):not([class*=' fr-fi-']):not(.fr-btn--display)::before {
     width: 1rem;
     height: 1rem;
   }
-  .dsfr
-    .fr-header
-    .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-      [class^='fr-btns-group--icon-']
-    ):not([class*=' fr-btns-group--icon-'])
-    .fr-btn[class^='fr-icon-']::before,
-  .dsfr
-    .fr-header
-    .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-      [class^='fr-btns-group--icon-']
-    ):not([class*=' fr-btns-group--icon-'])
-    .fr-btn[class*=' fr-icon-']::before,
-  .dsfr
-    .fr-header
-    .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-      [class^='fr-btns-group--icon-']
-    ):not([class*=' fr-btns-group--icon-'])
-    .fr-btn[class^='fr-fi-']::before,
-  .dsfr
-    .fr-header
-    .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-      [class^='fr-btns-group--icon-']
-    ):not([class*=' fr-btns-group--icon-'])
-    .fr-btn[class*=' fr-fi-']::before {
+  .dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-icon-']::before,
+  .dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-icon-']::before,
+  .dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class^='fr-fi-']::before,
+  .dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn[class*=' fr-fi-']::before {
     width: 1rem;
     height: 1rem;
   }
-  .dsfr
-    .fr-header
-    .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not(
-      [class^='fr-btns-group--icon-']
-    ):not([class*=' fr-btns-group--icon-'])
-    .fr-btn.fr-btn--display::before {
+  .dsfr .fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^='fr-btns-group--icon-']):not([class*=' fr-btns-group--icon-']) .fr-btn.fr-btn--display::before {
     width: 1rem;
     height: 1rem;
   }
@@ -24003,8 +22438,7 @@ body {
     background-color: rgba(0, 0, 0, 0.1);
   }
 }
-@media (min-width: 48em) and (-ms-high-contrast: none),
-  (min-width: 48em) and (-ms-high-contrast: active) {
+@media (min-width: 48em) and (-ms-high-contrast: none), (min-width: 48em) and (-ms-high-contrast: active) {
   .dsfr .fr-sidemenu {
     box-shadow: none;
   }
@@ -24032,8 +22466,7 @@ body {
     border: 1px solid #000091;
   }
 }
-@media (min-width: 62em) and (-ms-high-contrast: none),
-  (min-width: 62em) and (-ms-high-contrast: active) {
+@media (min-width: 62em) and (-ms-high-contrast: none), (min-width: 62em) and (-ms-high-contrast: active) {
   .dsfr {
     /**
     * Correctif de l'alignement des menus sur la droite
@@ -24100,8 +22533,7 @@ body {
     box-shadow: inset 0 1px 0 0 #ddd;
   }
 }
-@media (-ms-high-contrast: none) and (min-width: 62em),
-  (-ms-high-contrast: active) and (min-width: 62em) {
+@media (-ms-high-contrast: none) and (min-width: 62em), (-ms-high-contrast: active) and (min-width: 62em) {
   .dsfr .fr-header .fr-modal {
     position: static;
     overflow: visible;
@@ -24252,9 +22684,7 @@ body {
   --active: var(--background-contrast-red-marianne-active) !important;
 }
 .dsfr .fr-background-contrast--green-tilleul-verveine {
-  background-color: var(
-    --background-contrast-green-tilleul-verveine
-  ) !important;
+  background-color: var(--background-contrast-green-tilleul-verveine) !important;
   --idle: transparent;
   --hover: var(--background-contrast-green-tilleul-verveine-hover) !important;
   --active: var(--background-contrast-green-tilleul-verveine-active) !important;
@@ -24407,16 +22837,10 @@ body {
   --active: var(--background-action-high-red-marianne-active) !important;
 }
 .dsfr .fr-background-action-high--green-tilleul-verveine {
-  background-color: var(
-    --background-action-high-green-tilleul-verveine
-  ) !important;
+  background-color: var(--background-action-high-green-tilleul-verveine) !important;
   --idle: transparent;
-  --hover: var(
-    --background-action-high-green-tilleul-verveine-hover
-  ) !important;
-  --active: var(
-    --background-action-high-green-tilleul-verveine-active
-  ) !important;
+  --hover: var(--background-action-high-green-tilleul-verveine-hover) !important;
+  --active: var(--background-action-high-green-tilleul-verveine-active) !important;
 }
 .dsfr .fr-background-action-high--green-bourgeon {
   background-color: var(--background-action-high-green-bourgeon) !important;
@@ -24485,9 +22909,7 @@ body {
   --active: var(--background-action-high-yellow-moutarde-active) !important;
 }
 .dsfr .fr-background-action-high--orange-terre-battue {
-  background-color: var(
-    --background-action-high-orange-terre-battue
-  ) !important;
+  background-color: var(--background-action-high-orange-terre-battue) !important;
   --idle: transparent;
   --hover: var(--background-action-high-orange-terre-battue-hover) !important;
   --active: var(--background-action-high-orange-terre-battue-active) !important;
@@ -24553,14 +22975,10 @@ body {
   --active: var(--background-action-low-red-marianne-active) !important;
 }
 .dsfr .fr-background-action-low--green-tilleul-verveine {
-  background-color: var(
-    --background-action-low-green-tilleul-verveine
-  ) !important;
+  background-color: var(--background-action-low-green-tilleul-verveine) !important;
   --idle: transparent;
   --hover: var(--background-action-low-green-tilleul-verveine-hover) !important;
-  --active: var(
-    --background-action-low-green-tilleul-verveine-active
-  ) !important;
+  --active: var(--background-action-low-green-tilleul-verveine-active) !important;
 }
 .dsfr .fr-background-action-low--green-bourgeon {
   background-color: var(--background-action-low-green-bourgeon) !important;
diff --git a/packages/ui/src/styles/grids/grid-utils.css b/packages/ui/src/styles/grids/grid-utils.css
index 870ec4d11..a13a8c4c4 100644
--- a/packages/ui/src/styles/grids/grid-utils.css
+++ b/packages/ui/src/styles/grids/grid-utils.css
@@ -101,14 +101,9 @@
   :root {
     --container-width: calc(3 * var(--col-width) + var(--gutter));
 
-    --margin-width-full-p: calc(
-      -1 * (100vw - (var(--container-width) + (2 * var(--container-padding)))) /
-        2
-    );
-
-    --margin-width-full: calc(
-      var(--margin-width-full-p) - (2 * var(--container-padding))
-    );
+    --margin-width-full-p: calc(-1 * (100vw - (var(--container-width) + (2 * var(--container-padding)))) / 2);
+
+    --margin-width-full: calc(var(--margin-width-full-p) - (2 * var(--container-padding)));
   }
 
   .desktop-flex {
diff --git a/packages/ui/src/styles/system/tools.css b/packages/ui/src/styles/system/tools.css
index 669251e2b..fe6359dfc 100644
--- a/packages/ui/src/styles/system/tools.css
+++ b/packages/ui/src/styles/system/tools.css
@@ -32,15 +32,6 @@ http://qr.ae/ROqymT */
 .grid {
   background-size: var(--col-width) calc(var(--unit) / 2);
   background-position: center top;
-  background-image: linear-gradient(
-      rgba(0, 0, 0, 0.05) 0.01rem,
-      transparent 0.09rem
-    ),
-    linear-gradient(90deg, rgba(255, 0, 0, 0.25) 0, transparent 0.25%),
-    linear-gradient(
-      90deg,
-      transparent 50%,
-      rgba(255, 0, 0, 0.25) 50%,
-      transparent 50.25%
-    );
+  background-image: linear-gradient(rgba(0, 0, 0, 0.05) 0.01rem, transparent 0.09rem), linear-gradient(90deg, rgba(255, 0, 0, 0.25) 0, transparent 0.25%),
+    linear-gradient(90deg, transparent 50%, rgba(255, 0, 0, 0.25) 50%, transparent 50.25%);
 }
diff --git a/packages/ui/src/styles/system/ui.css b/packages/ui/src/styles/system/ui.css
index e9b7bb052..efc535ea5 100644
--- a/packages/ui/src/styles/system/ui.css
+++ b/packages/ui/src/styles/system/ui.css
@@ -135,13 +135,11 @@
 }
 
 .shadow {
-  box-shadow: var(--unit-xs) var(--unit-xs) var(--unit)
-    var(--color-neutral-transparent);
+  box-shadow: var(--unit-xs) var(--unit-xs) var(--unit) var(--color-neutral-transparent);
 }
 
 .shadow-inset {
-  box-shadow: inset var(--unit-xs) var(--unit-xs) var(--unit)
-    var(--color-neutral);
+  box-shadow: inset var(--unit-xs) var(--unit-xs) var(--unit) var(--color-neutral);
 }
 
 .fixed-width {
diff --git a/packages/ui/src/utils/contenu.js b/packages/ui/src/utils/contenu.js
index 50a659aa0..f207e0fdb 100644
--- a/packages/ui/src/utils/contenu.js
+++ b/packages/ui/src/utils/contenu.js
@@ -24,13 +24,7 @@ const elementContenuBuild = (sections, contenu) =>
 
 const elementsCompleteCheck = (elements, sectionContenu, complete) =>
   elements.reduce((sectionComplete, e) => {
-    if (
-      !sectionComplete ||
-      !sectionContenu ||
-      e.optionnel ||
-      ['radio', 'checkbox'].includes(e.type)
-    )
-      return sectionComplete
+    if (!sectionComplete || !sectionContenu || e.optionnel || ['radio', 'checkbox'].includes(e.type)) return sectionComplete
 
     let elementComplete = false
 
@@ -39,10 +33,7 @@ const elementsCompleteCheck = (elements, sectionContenu, complete) =>
         elementComplete = true
       }
     } else {
-      elementComplete =
-        sectionContenu[e.id] !== undefined &&
-        sectionContenu[e.id] !== null &&
-        sectionContenu[e.id] !== ''
+      elementComplete = sectionContenu[e.id] !== undefined && sectionContenu[e.id] !== null && sectionContenu[e.id] !== ''
     }
 
     return elementComplete
@@ -94,24 +85,11 @@ const valeurFind = ({ id, type, valeurs }, contenu) => {
 const hasValeurCheck = (elementId, contenu) => {
   const valeur = contenu && contenu[elementId]
 
-  if (
-    (!Array.isArray(valeur) && (valeur || valeur === 0 || valeur === false)) ||
-    (Array.isArray(valeur) && valeur.length)
-  )
-    return true
+  if ((!Array.isArray(valeur) && (valeur || valeur === 0 || valeur === false)) || (Array.isArray(valeur) && valeur.length)) return true
 
   return false
 }
 
-const elementsVisibleCheck = (elements, contenu) =>
-  elements.some(e => hasValeurCheck(e.id, contenu) || !e.optionnel)
-
-export {
-  contenuBuild,
-  elementContenuBuild,
-  contenuCompleteCheck,
-  elementsCompleteCheck,
-  valeurFind,
-  hasValeurCheck,
-  elementsVisibleCheck
-}
+const elementsVisibleCheck = (elements, contenu) => elements.some(e => hasValeurCheck(e.id, contenu) || !e.optionnel)
+
+export { contenuBuild, elementContenuBuild, contenuCompleteCheck, elementsCompleteCheck, valeurFind, hasValeurCheck, elementsVisibleCheck }
diff --git a/packages/ui/src/utils/documents.js b/packages/ui/src/utils/documents.js
index 1c30668c8..14849be63 100644
--- a/packages/ui/src/utils/documents.js
+++ b/packages/ui/src/utils/documents.js
@@ -1,8 +1,7 @@
 import { TODAY } from './index'
 
 const documentsRequiredAdd = (documents, documentsTypes, userIsAdmin) => {
-  const typeGet = document =>
-    document.type ? document.type.id : document.typeId
+  const typeGet = document => (document.type ? document.type.id : document.typeId)
 
   // supprime tous les documents temporaires
   documents = documents?.filter(d => d.id !== typeGet(d))
@@ -16,10 +15,7 @@ const documentsRequiredAdd = (documents, documentsTypes, userIsAdmin) => {
 
   // crée les documents dont le type est obligatoires si ils n'existent pas
   documentsTypes?.forEach(documentType => {
-    if (
-      !documentType.optionnel &&
-      !newDocuments.find(d => typeGet(d) === documentType.id)
-    ) {
+    if (!documentType.optionnel && !newDocuments.find(d => typeGet(d) === documentType.id)) {
       newDocuments.push({
         id: documentType.id,
         typeId: documentType.id,
@@ -31,7 +27,7 @@ const documentsRequiredAdd = (documents, documentsTypes, userIsAdmin) => {
         fichierTypeId: null,
         date: TODAY,
         modification: true,
-        suppression: false
+        suppression: false,
       })
     }
   })
diff --git a/packages/ui/src/utils/documents.test.js b/packages/ui/src/utils/documents.test.js
index 5342ac0b9..08024ff9d 100644
--- a/packages/ui/src/utils/documents.test.js
+++ b/packages/ui/src/utils/documents.test.js
@@ -12,13 +12,7 @@ describe('documents', () => {
     ${true}
     ${false}
   `('ajoute un document obligatoire manquant', ({ userIsAdmin }) => {
-    expect(
-      documentsRequiredAdd(
-        undefined,
-        [{ optionnel: false, id: 'aaa' }],
-        userIsAdmin
-      )
-    ).toEqual([
+    expect(documentsRequiredAdd(undefined, [{ optionnel: false, id: 'aaa' }], userIsAdmin)).toEqual([
       {
         date: TODAY,
         entreprisesLecture: userIsAdmin,
@@ -31,25 +25,19 @@ describe('documents', () => {
         suppression: false,
         type: {
           id: 'aaa',
-          optionnel: false
+          optionnel: false,
         },
-        typeId: 'aaa'
-      }
+        typeId: 'aaa',
+      },
     ])
   })
 
   test('supprime le document avec un type inexistant', () => {
-    expect(
-      documentsRequiredAdd(
-        [{ typeId: 'aaa' }, { typeId: 'ddd' }],
-        [{ optionnel: false, id: 'aaa' }],
-        true
-      )
-    ).toEqual([
+    expect(documentsRequiredAdd([{ typeId: 'aaa' }, { typeId: 'ddd' }], [{ optionnel: false, id: 'aaa' }], true)).toEqual([
       {
         typeId: 'aaa',
-        suppression: true
-      }
+        suppression: true,
+      },
     ])
   })
 })
diff --git a/packages/ui/src/utils/entreprise.js b/packages/ui/src/utils/entreprise.js
index 5cb635e0e..2e80fa92b 100644
--- a/packages/ui/src/utils/entreprise.js
+++ b/packages/ui/src/utils/entreprise.js
@@ -3,10 +3,7 @@ export const etablissementNameFind = (etablissements, date) => {
     return null
   }
 
-  const etablissement = etablissements.find(
-    e =>
-      (e.dateDebut < date && (!e.dateFin || e.dateFin > date)) || !e.dateDebut
-  )
+  const etablissement = etablissements.find(e => (e.dateDebut < date && (!e.dateFin || e.dateFin > date)) || !e.dateDebut)
 
   return etablissement && etablissement.nom
 }
diff --git a/packages/ui/src/utils/geojson.js b/packages/ui/src/utils/geojson.js
index b78adaf2d..0f2f5b956 100644
--- a/packages/ui/src/utils/geojson.js
+++ b/packages/ui/src/utils/geojson.js
@@ -6,15 +6,14 @@ const geojsonFeatureMultiPolygon = points => ({
   properties: { etapeId: points[0].titreEtapeId },
   geometry: {
     type: 'MultiPolygon',
-    coordinates: geojsonMultiPolygonCoordinates(points)
-  }
+    coordinates: geojsonMultiPolygonCoordinates(points),
+  },
 })
 
 // convertit une liste de points
 // en un tableau 'coordinates' geoJson
 // (le premier et le dernier point d'un contour ont les mêmes coordonnées)
-const geojsonMultiPolygonCoordinates = points =>
-  multiPolygonContoursClose(multiPolygonCoordinates(points))
+const geojsonMultiPolygonCoordinates = points => multiPolygonContoursClose(multiPolygonCoordinates(points))
 
 // convertit une liste de points
 // [{groupe: 1, contour: 1, point: 1, coordonnees: {x: 1.111111, y: 1.111111}}]
@@ -23,10 +22,7 @@ const multiPolygonCoordinates = points =>
   points.reduce((res, p) => {
     res[p.groupe - 1] = res[p.groupe - 1] || []
     res[p.groupe - 1][p.contour - 1] = res[p.groupe - 1][p.contour - 1] || []
-    res[p.groupe - 1][p.contour - 1][p.point - 1] = [
-      p.coordonnees.x,
-      p.coordonnees.y
-    ]
+    res[p.groupe - 1][p.contour - 1][p.point - 1] = [p.coordonnees.x, p.coordonnees.y]
 
     return res
   }, [])
diff --git a/packages/ui/src/utils/index.js b/packages/ui/src/utils/index.js
index 9237d4976..2e2305ce3 100644
--- a/packages/ui/src/utils/index.js
+++ b/packages/ui/src/utils/index.js
@@ -16,13 +16,9 @@ const textNumberFormat = (text, options) => {
     .replace(/\s/, '')
     .replace(/\./, ',')
 
-  value = options.negative
-    ? value.replace(/^([\d-][\d,]*)(-)+/, '$1')
-    : value.replace(/-/g, '')
+  value = options.negative ? value.replace(/^([\d-][\d,]*)(-)+/, '$1') : value.replace(/-/g, '')
 
-  value = options.integer
-    ? value.replace(/\..*$/, '').replace(/,.*$/, '')
-    : value.replace(/(\d+,\d*)([,.]+)/, '$1')
+  value = options.integer ? value.replace(/\..*$/, '').replace(/,.*$/, '') : value.replace(/(\d+,\d*)([,.]+)/, '$1')
 
   return value
 }
@@ -65,13 +61,4 @@ const paramsBuild = (apiParams, preferences) =>
 
 const cap = string => string[0].toUpperCase() + string.slice(1)
 
-export {
-  dateFormat,
-  textNumberFormat,
-  textToNumberFormat,
-  cloneAndClean,
-  elementsFormat,
-  paramsBuild,
-  cap,
-  TODAY
-}
+export { dateFormat, textNumberFormat, textToNumberFormat, cloneAndClean, elementsFormat, paramsBuild, cap, TODAY }
diff --git a/packages/ui/src/utils/index.test.js b/packages/ui/src/utils/index.test.js
index 99977e401..371ccccde 100644
--- a/packages/ui/src/utils/index.test.js
+++ b/packages/ui/src/utils/index.test.js
@@ -1,18 +1,11 @@
-import {
-  dateFormat,
-  textNumberFormat,
-  textToNumberFormat,
-  cloneAndClean,
-  elementsFormat,
-  paramsBuild
-} from './index'
+import { dateFormat, textNumberFormat, textToNumberFormat, cloneAndClean, elementsFormat, paramsBuild } from './index'
 import { describe, expect, test } from 'vitest'
 
 // dateFormat
 describe('dateFormat', () => {
   const cases = [
     ['2020-01-01', '01-01-2020'],
-    ['2020-11-16', '16-11-2020']
+    ['2020-11-16', '16-11-2020'],
   ]
 
   test.each(cases)('formate la date %s en %s', (input, output) => {
@@ -39,29 +32,21 @@ describe('textNumberFormat et textToNumberFormat', () => {
     ['-1,2ab c.,34', { negative: false, integer: false }, '1,234', 1.234],
     ['-1,2ab c.,34', { negative: true, integer: false }, '-1,234', -1.234],
     ['-1,2ab c.,34', { negative: true, integer: true }, '-1', -1],
-    ['azerty', { negative: true, integer: true }, '', null]
+    ['azerty', { negative: true, integer: true }, '', null],
   ]
 
-  test.each(cases)(
-    'formate %s avec les options %o en texte %s',
-    (input, options, resText, resNumber) => {
-      expect(textNumberFormat(input, options)).toEqual(resText)
-    }
-  )
+  test.each(cases)('formate %s avec les options %o en texte %s', (input, options, resText, resNumber) => {
+    expect(textNumberFormat(input, options)).toEqual(resText)
+  })
 
-  test.each(cases)(
-    'formate %s avec les options %o en nombre %i',
-    (input, options, resText, resNumber) => {
-      expect(textToNumberFormat(resText)).toEqual(resNumber)
-    }
-  )
+  test.each(cases)('formate %s avec les options %o en nombre %i', (input, options, resText, resNumber) => {
+    expect(textToNumberFormat(resText)).toEqual(resNumber)
+  })
 })
 
 describe('cloneAndClean', () => {
   test(`transforme un json en occultant les propriétés __typename`, () =>
-    expect(
-      cloneAndClean({ id: 'id', value: 'value', __typename: 'typename' })
-    ).toEqual({ id: 'id', value: 'value', __typename: undefined }))
+    expect(cloneAndClean({ id: 'id', value: 'value', __typename: 'typename' })).toEqual({ id: 'id', value: 'value', __typename: undefined }))
 })
 
 describe('elementsFormat', () => {
@@ -75,16 +60,16 @@ describe('elementsFormat', () => {
       m: 'minéraux et métaux',
       r: 'éléments radioactifs',
       s: 'stockages souterrains',
-      w: 'granulats marins'
+      w: 'granulats marins',
     },
     statuts: {},
-    types: {}
+    types: {},
   }
 
   const cases = [
     ['domaines', 'domainesIds'],
     ['statuts', 'statutsIds'],
-    ['types', 'typesIds']
+    ['types', 'typesIds'],
   ]
 
   test.each(cases)('formate les %s', (nom, id) => {
@@ -100,7 +85,7 @@ describe('paramsBuild', () => {
     { id: 'ordre', type: 'string', elements: ['asc', 'desc'] },
     { id: 'typesIds', type: 'strings', elements: ['aaa', 'bbb'] },
     { id: 'noms', type: 'string' },
-    { id: 'numbers', type: 'numbers' }
+    { id: 'numbers', type: 'numbers' },
   ]
 
   const preferences = {
@@ -110,7 +95,7 @@ describe('paramsBuild', () => {
     colonne: 'type',
     noms: 'one two',
     typesIds: ['aaa'],
-    numbers: ['1', '2']
+    numbers: ['1', '2'],
   }
 
   test('formate les paramètres', () => {
@@ -121,7 +106,7 @@ describe('paramsBuild', () => {
       colonne: 'type',
       noms: 'one two',
       typesIds: ['aaa'],
-      numbers: [1, 2]
+      numbers: [1, 2],
     })
   })
 })
diff --git a/packages/ui/src/utils/matomo-tracker.js b/packages/ui/src/utils/matomo-tracker.js
index f43404b88..28f51108e 100644
--- a/packages/ui/src/utils/matomo-tracker.js
+++ b/packages/ui/src/utils/matomo-tracker.js
@@ -11,11 +11,7 @@ const paramsEventTrack = (params, definitions, matomo, category, action) => {
           values = params[id].map(e => e.typeId)
         }
         values.forEach(value => {
-          matomo.trackEvent(
-            `${category}-${action}`,
-            `${category}-${action}-${id}`,
-            value
-          )
+          matomo.trackEvent(`${category}-${action}`, `${category}-${action}-${id}`, value)
           matomo.trackSiteSearch(value, id)
         })
       })
diff --git a/packages/ui/src/utils/number-format.ts b/packages/ui/src/utils/number-format.ts
index 4a38eb74d..190f610ac 100644
--- a/packages/ui/src/utils/number-format.ts
+++ b/packages/ui/src/utils/number-format.ts
@@ -1,6 +1,6 @@
 export const numberFormat = (number: number): string =>
   Intl.NumberFormat('FR-fr', {
-    maximumSignificantDigits: 21
+    maximumSignificantDigits: 21,
   }).format(number)
 
 /**
diff --git a/packages/ui/src/utils/titre-etape-edit.js b/packages/ui/src/utils/titre-etape-edit.js
index fa25dcfe2..2a045e229 100644
--- a/packages/ui/src/utils/titre-etape-edit.js
+++ b/packages/ui/src/utils/titre-etape-edit.js
@@ -3,10 +3,7 @@ import { GeoSystemes } from 'camino-common/src/static/geoSystemes'
 
 const referencesBuild = references =>
   references.reduce(
-    (
-      { pointGeoSystemesIndex, pointReferences },
-      { geoSystemeId, coordonnees, id }
-    ) => {
+    ({ pointGeoSystemesIndex, pointReferences }, { geoSystemeId, coordonnees, id }) => {
       pointGeoSystemesIndex[geoSystemeId] = GeoSystemes[geoSystemeId]
 
       pointReferences[geoSystemeId] = { ...coordonnees }
@@ -28,33 +25,13 @@ const geoSystemeOpposableIdFind = references => {
 
 const groupeBuild = (points, geoSystemeOpposableId) =>
   points.reduce(
-    (
-      {
-        groupes,
-        geoSystemesIndex,
-        lotCurrent,
-        pointIndex,
-        contourIndexPrevious,
-        groupeIndexPrevious
-      },
-      { nom, description, contour, groupe, references, lot, subsidiaire, id }
-    ) => {
-      const { pointReferences, pointGeoSystemesIndex } =
-        referencesBuild(references)
-
-      const lotGeoSystemeId =
-        geoSystemeOpposableId || Object.keys(pointGeoSystemesIndex)[0]
-
-      if (
-        lot &&
-        lotCurrent &&
-        lotCurrent === lot &&
-        groupe === groupeIndexPrevious &&
-        contour === contourIndexPrevious
-      ) {
-        groupes[groupe - 1][contour - 1][pointIndex - 1].references.push(
-          pointReferences[lotGeoSystemeId]
-        )
+    ({ groupes, geoSystemesIndex, lotCurrent, pointIndex, contourIndexPrevious, groupeIndexPrevious }, { nom, description, contour, groupe, references, lot, subsidiaire, id }) => {
+      const { pointReferences, pointGeoSystemesIndex } = referencesBuild(references)
+
+      const lotGeoSystemeId = geoSystemeOpposableId || Object.keys(pointGeoSystemesIndex)[0]
+
+      if (lot && lotCurrent && lotCurrent === lot && groupe === groupeIndexPrevious && contour === contourIndexPrevious) {
+        groupes[groupe - 1][contour - 1][pointIndex - 1].references.push(pointReferences[lotGeoSystemeId])
       } else {
         if (!groupes[groupe - 1]) {
           groupes[groupe - 1] = []
@@ -68,7 +45,7 @@ const groupeBuild = (points, geoSystemeOpposableId) =>
           description,
           lot,
           subsidiaire,
-          references: lot ? [pointReferences[lotGeoSystemeId]] : pointReferences
+          references: lot ? [pointReferences[lotGeoSystemeId]] : pointReferences,
         }
 
         if (id) {
@@ -89,14 +66,11 @@ const groupeBuild = (points, geoSystemeOpposableId) =>
 
       return {
         groupes,
-        geoSystemesIndex: Object.assign(
-          geoSystemesIndex,
-          pointGeoSystemesIndex
-        ),
+        geoSystemesIndex: Object.assign(geoSystemesIndex, pointGeoSystemesIndex),
         lotCurrent,
         pointIndex,
         contourIndexPrevious,
-        groupeIndexPrevious
+        groupeIndexPrevious,
       }
     },
     {
@@ -105,29 +79,25 @@ const groupeBuild = (points, geoSystemeOpposableId) =>
       lotCurrent: null,
       pointIndex: 0,
       contourIndexPrevious: 1,
-      groupeIndexPrevious: 1
+      groupeIndexPrevious: 1,
     }
   )
 
 const etapeGroupesBuild = points => {
   const geoSystemeOpposableId = geoSystemeOpposableIdFind(points[0].references)
 
-  const { groupes, geoSystemesIndex } = groupeBuild(
-    points,
-    geoSystemeOpposableId
-  )
+  const { groupes, geoSystemesIndex } = groupeBuild(points, geoSystemeOpposableId)
 
   return {
     groupes,
     geoSystemes: Object.keys(geoSystemesIndex).map(id => geoSystemesIndex[id]),
-    geoSystemeOpposableId
+    geoSystemeOpposableId,
   }
 }
 
 const etapePointsFormat = (etape, points) => {
   if (points && points.length) {
-    const { groupes, geoSystemes, geoSystemeOpposableId } =
-      etapeGroupesBuild(points)
+    const { groupes, geoSystemes, geoSystemeOpposableId } = etapeGroupesBuild(points)
 
     etape.groupes = groupes
     etape.geoSystemeIds = geoSystemes.map(({ id }) => id)
@@ -151,7 +121,7 @@ const etapeEditFormat = etape => {
     if (etape[propId]) {
       etape[propId] = etape[propId].map(({ id, operateur }) => ({
         id,
-        operateur
+        operateur,
       }))
     } else {
       etape[propId] = []
@@ -196,9 +166,4 @@ const documentEtapeFormat = document => {
 
   return document
 }
-export {
-  etapeEditFormat,
-  etapeGroupesBuild,
-  documentEtapeFormat,
-  etapePointsFormat
-}
+export { etapeEditFormat, etapeGroupesBuild, documentEtapeFormat, etapePointsFormat }
diff --git a/packages/ui/src/utils/titre-etape-edit.test.js b/packages/ui/src/utils/titre-etape-edit.test.js
index 56c980c7b..e52400f34 100644
--- a/packages/ui/src/utils/titre-etape-edit.test.js
+++ b/packages/ui/src/utils/titre-etape-edit.test.js
@@ -8,7 +8,7 @@ describe('etapeEditFormat', () => {
     expect(
       etapeEditFormat({
         __typename: 'etape',
-        id: 'etape-id'
+        id: 'etape-id',
       })
     ).toEqual({
       id: 'etape-id',
@@ -21,7 +21,7 @@ describe('etapeEditFormat', () => {
       contenu: {},
       incertitudes: {},
       documents: [],
-      justificatifs: []
+      justificatifs: [],
     })
 
     expect(
@@ -39,12 +39,12 @@ describe('etapeEditFormat', () => {
                 opposable: true,
                 geoSystemeId: GEO_SYSTEME_IDS.WGS84,
                 coordonnees: { x: 1.5, y: 1 },
-                id: 'ref'
-              }
-            ]
-          }
+                id: 'ref',
+              },
+            ],
+          },
         ],
-        justificatifs: [{ id: 'toto', nom: 'name' }]
+        justificatifs: [{ id: 'toto', nom: 'name' }],
       })
     ).toEqual({
       id: 'etape-id',
@@ -60,19 +60,19 @@ describe('etapeEditFormat', () => {
               description: undefined,
               nom: undefined,
               references: {
-                [GEO_SYSTEME_IDS.WGS84]: { id: 'ref', x: 1.5, y: 1 }
+                [GEO_SYSTEME_IDS.WGS84]: { id: 'ref', x: 1.5, y: 1 },
               },
               lot: undefined,
-              subsidiaire: undefined
-            }
-          ]
-        ]
+              subsidiaire: undefined,
+            },
+          ],
+        ],
       ],
       substances: [],
       contenu: {},
       incertitudes: {},
       documents: [],
-      justificatifs: [{ id: 'toto', nom: 'name' }]
+      justificatifs: [{ id: 'toto', nom: 'name' }],
     })
 
     expect(
@@ -94,9 +94,9 @@ describe('etapeEditFormat', () => {
               {
                 geoSystemeId: GEO_SYSTEME_IDS.WGS84,
                 coordonnees: { x: 1.5, y: 1 },
-                id: 'ref'
-              }
-            ]
+                id: 'ref',
+              },
+            ],
           },
           {
             id: 'point-id-113',
@@ -108,9 +108,9 @@ describe('etapeEditFormat', () => {
               {
                 geoSystemeId: GEO_SYSTEME_IDS.WGS84,
                 coordonnees: { x: 1.5, y: 3 },
-                id: 'ref3'
-              }
-            ]
+                id: 'ref3',
+              },
+            ],
           },
           {
             id: 'point-id-114',
@@ -123,15 +123,15 @@ describe('etapeEditFormat', () => {
                 geoSystemeId: GEO_SYSTEME_IDS.WGS84,
 
                 coordonnees: { x: 1.5, y: 4 },
-                id: 'ref2'
-              }
-            ]
-          }
+                id: 'ref2',
+              },
+            ],
+          },
         ],
         contenu: { 'prop-id': 'prop-value' },
         incertitudes: { amodiataires: true },
         substances: ['auru'],
-        documents: [{ type: { id: 'act' } }]
+        documents: [{ type: { id: 'act' } }],
       })
     ).toEqual({
       id: 'etape-id',
@@ -150,29 +150,29 @@ describe('etapeEditFormat', () => {
               description: undefined,
               nom: undefined,
               references: {
-                [GEO_SYSTEME_IDS.WGS84]: { id: 'ref', x: 1.5, y: 1 }
+                [GEO_SYSTEME_IDS.WGS84]: { id: 'ref', x: 1.5, y: 1 },
               },
               lot: undefined,
-              subsidiaire: undefined
+              subsidiaire: undefined,
             },
             {
               id: 'point-id-113',
               description: undefined,
               references: [
                 { id: 'ref3', x: 1.5, y: 3 },
-                { id: 'ref2', x: 1.5, y: 4 }
+                { id: 'ref2', x: 1.5, y: 4 },
               ],
               lot: 1,
-              subsidiaire: undefined
-            }
-          ]
-        ]
+              subsidiaire: undefined,
+            },
+          ],
+        ],
       ],
       substances: ['auru'],
       contenu: { 'prop-id': 'prop-value' },
       incertitudes: { amodiataires: true },
       documents: [{ fichierNouveau: null, typeId: 'act', type: { id: 'act' } }],
-      justificatifs: []
+      justificatifs: [],
     })
   })
 })
diff --git a/packages/ui/src/utils/titre-etape-heritage-build.js b/packages/ui/src/utils/titre-etape-heritage-build.js
index 05d64971b..91088628b 100644
--- a/packages/ui/src/utils/titre-etape-heritage-build.js
+++ b/packages/ui/src/utils/titre-etape-heritage-build.js
@@ -6,23 +6,17 @@ const etapeHeritageBuild = (stateEtape, apiEtape) => {
     type: apiEtape.type,
     statutId: '',
     incertitudes: { date: stateEtape.incertitudes.date },
-    titreDemarcheId: stateEtape.titreDemarcheId
+    titreDemarcheId: stateEtape.titreDemarcheId,
   }
 
   if (stateEtape.documents) {
     const documentsTypesIds = apiEtape.type.documentsTypes?.map(({ id }) => id)
-    newEtape.documents = stateEtape.documents.filter(document =>
-      documentsTypesIds?.includes(document.typeId)
-    )
+    newEtape.documents = stateEtape.documents.filter(document => documentsTypesIds?.includes(document.typeId))
   }
 
   if (stateEtape.justificatifs) {
-    const justificatifsTypesIds = apiEtape.type.justificatifsTypes?.map(
-      ({ id }) => id
-    )
-    newEtape.justificatifs = stateEtape.justificatifs.filter(justificatif =>
-      justificatifsTypesIds?.includes(justificatif.typeId)
-    )
+    const justificatifsTypesIds = apiEtape.type.justificatifsTypes?.map(({ id }) => id)
+    newEtape.justificatifs = stateEtape.justificatifs.filter(justificatif => justificatifsTypesIds?.includes(justificatif.typeId))
   }
 
   // si
@@ -58,10 +52,7 @@ const etapeHeritageBuild = (stateEtape, apiEtape) => {
     newEtape.geoSystemeOpposableId = stateEtape.geoSystemeOpposableId
   }
 
-  if (
-    apiEtape.heritageContenu &&
-    Object.keys(apiEtape.heritageContenu).length
-  ) {
+  if (apiEtape.heritageContenu && Object.keys(apiEtape.heritageContenu).length) {
     Object.keys(apiEtape.heritageContenu).forEach(sectionId => {
       if (Object.keys(apiEtape.heritageContenu[sectionId]).length) {
         Object.keys(apiEtape.heritageContenu[sectionId]).forEach(elementId => {
@@ -81,30 +72,18 @@ const etapeHeritageBuild = (stateEtape, apiEtape) => {
             newEtape.heritageContenu[sectionId] = {}
           }
 
-          if (
-            stateEtape.heritageContenu &&
-            stateEtape.heritageContenu[sectionId] &&
-            stateEtape.heritageContenu[sectionId][elementId]
-          ) {
-            if (
-              stateEtape.contenu &&
-              stateEtape.contenu[sectionId] &&
-              stateEtape.contenu[sectionId][elementId]
-            ) {
-              newEtape.contenu[sectionId][elementId] =
-                stateEtape.contenu[sectionId][elementId]
+          if (stateEtape.heritageContenu && stateEtape.heritageContenu[sectionId] && stateEtape.heritageContenu[sectionId][elementId]) {
+            if (stateEtape.contenu && stateEtape.contenu[sectionId] && stateEtape.contenu[sectionId][elementId]) {
+              newEtape.contenu[sectionId][elementId] = stateEtape.contenu[sectionId][elementId]
             }
 
-            newEtape.heritageContenu[sectionId][elementId] =
-              stateEtape.heritageContenu[sectionId][elementId]
+            newEtape.heritageContenu[sectionId][elementId] = stateEtape.heritageContenu[sectionId][elementId]
           } else {
             if (apiEtape.contenu[sectionId]) {
-              newEtape.contenu[sectionId][elementId] =
-                apiEtape.contenu[sectionId][elementId]
+              newEtape.contenu[sectionId][elementId] = apiEtape.contenu[sectionId][elementId]
             }
 
-            newEtape.heritageContenu[sectionId][elementId] =
-              apiEtape.heritageContenu[sectionId][elementId]
+            newEtape.heritageContenu[sectionId][elementId] = apiEtape.heritageContenu[sectionId][elementId]
           }
         })
       }
diff --git a/packages/ui/src/utils/titre-etape-save.js b/packages/ui/src/utils/titre-etape-save.js
index 842e933b5..3a921d7e8 100644
--- a/packages/ui/src/utils/titre-etape-save.js
+++ b/packages/ui/src/utils/titre-etape-save.js
@@ -3,8 +3,8 @@ const referenceBuild = (id, x, y, geoSystemeId, opposable) => {
     geoSystemeId,
     coordonnees: {
       x,
-      y
-    }
+      y,
+    },
   }
 
   if (id) {
@@ -18,41 +18,18 @@ const referenceBuild = (id, x, y, geoSystemeId, opposable) => {
   return reference
 }
 
-const pointReferencesBuild = (
-  references,
-  geoSystemeIds,
-  geoSystemeOpposableId
-) =>
+const pointReferencesBuild = (references, geoSystemeIds, geoSystemeOpposableId) =>
   Object.keys(references).reduce((pointReferences, geoSystemeId) => {
-    if (
-      geoSystemeIds.includes(geoSystemeId) &&
-      references[geoSystemeId].x &&
-      references[geoSystemeId].y &&
-      geoSystemeId
-    ) {
+    if (geoSystemeIds.includes(geoSystemeId) && references[geoSystemeId].x && references[geoSystemeId].y && geoSystemeId) {
       pointReferences.push(
-        referenceBuild(
-          references[geoSystemeId].id,
-          references[geoSystemeId].x,
-          references[geoSystemeId].y,
-          geoSystemeId,
-          geoSystemeIds.length > 1 && geoSystemeId === geoSystemeOpposableId
-        )
+        referenceBuild(references[geoSystemeId].id, references[geoSystemeId].x, references[geoSystemeId].y, geoSystemeId, geoSystemeIds.length > 1 && geoSystemeId === geoSystemeOpposableId)
       )
     }
 
     return pointReferences
   }, [])
 
-const pointsLotBuild = (
-  { references, description },
-  pointsLength,
-  lot,
-  contour,
-  groupe,
-  opposable,
-  geoSystemeId
-) =>
+const pointsLotBuild = ({ references, description }, pointsLength, lot, contour, groupe, opposable, geoSystemeId) =>
   references.reduce((points, { x, y, id }) => {
     const isValid = x && y
 
@@ -65,7 +42,7 @@ const pointsLotBuild = (
         groupe,
         contour,
         point: pointsLength + points.length + 1,
-        references: [referenceBuild(id, x, y, geoSystemeId, opposable)]
+        references: [referenceBuild(id, x, y, geoSystemeId, opposable)],
       }
 
       points.push(point)
@@ -74,48 +51,23 @@ const pointsLotBuild = (
     return points
   }, [])
 
-const contourBuild = (
-  contour,
-  contourIndex,
-  groupeIndex,
-  geoSystemeIds,
-  geoSystemeOpposableId
-) => {
+const contourBuild = (contour, contourIndex, groupeIndex, geoSystemeIds, geoSystemeOpposableId) => {
   const { points } = contour.reduce(
     ({ points, lotIndex }, point) => {
       if (!point.lot) {
         const newPoint = JSON.parse(JSON.stringify(point))
-        newPoint.references = pointReferencesBuild(
-          newPoint.references,
-          geoSystemeIds,
-          geoSystemeOpposableId
-        )
+        newPoint.references = pointReferencesBuild(newPoint.references, geoSystemeIds, geoSystemeOpposableId)
 
         // si il y a au moins une référence
         // si il y a plusieurs géo-système, au moins une référence doit être opposable
-        if (
-          newPoint.references.length &&
-          (geoSystemeIds.length === 1 ||
-            (geoSystemeIds.length > 1 &&
-              !!newPoint.references.find(r => r.opposable)))
-        ) {
+        if (newPoint.references.length && (geoSystemeIds.length === 1 || (geoSystemeIds.length > 1 && !!newPoint.references.find(r => r.opposable)))) {
           newPoint.groupe = groupeIndex
           newPoint.contour = contourIndex
           newPoint.point = points.length + 1
           points.push(newPoint)
         }
       } else if (point.references.length) {
-        points = points.concat(
-          pointsLotBuild(
-            point,
-            points.length,
-            lotIndex,
-            contourIndex,
-            groupeIndex,
-            geoSystemeIds.length > 1,
-            geoSystemeOpposableId
-          )
-        )
+        points = points.concat(pointsLotBuild(point, points.length, lotIndex, contourIndex, groupeIndex, geoSystemeIds.length > 1, geoSystemeOpposableId))
         lotIndex += 1
       }
 
@@ -127,21 +79,10 @@ const contourBuild = (
   return points
 }
 
-const groupeBuild = (
-  contours,
-  groupeIndex,
-  geoSystemeIds,
-  geoSystemeOpposableId
-) => {
+const groupeBuild = (contours, groupeIndex, geoSystemeIds, geoSystemeOpposableId) => {
   const { points } = contours.reduce(
     ({ points, contourIndex }, contour) => {
-      const pointsNew = contourBuild(
-        contour,
-        contourIndex,
-        groupeIndex,
-        geoSystemeIds,
-        geoSystemeOpposableId
-      )
+      const pointsNew = contourBuild(contour, contourIndex, groupeIndex, geoSystemeIds, geoSystemeOpposableId)
 
       if (pointsNew.length) {
         points = points.concat(pointsNew)
@@ -159,12 +100,7 @@ const groupeBuild = (
 const pointsBuild = (groupes, geoSystemeIds, geoSystemeOpposableId) => {
   const { points } = groupes.reduce(
     ({ points, groupeIndex }, groupe) => {
-      const pointsNew = groupeBuild(
-        groupe,
-        groupeIndex,
-        geoSystemeIds,
-        geoSystemeOpposableId
-      )
+      const pointsNew = groupeBuild(groupe, groupeIndex, geoSystemeIds, geoSystemeOpposableId)
 
       if (pointsNew.length) {
         points = points.concat(pointsNew)
@@ -185,9 +121,7 @@ const etapeSaveFormat = etape => {
   etape.decisionsAnnexesContenu = decisionsAnnexesContenu
 
   etape.justificatifIds = etape.justificatifs?.map(({ id }) => id)
-  etape.documentIds = etape.documents
-    ?.filter(d => d.id !== d.typeId)
-    .map(({ id }) => id)
+  etape.documentIds = etape.documents?.filter(d => d.id !== d.typeId).map(({ id }) => id)
 
   if (etape.type) {
     etape.typeId = etape.type.id
@@ -201,10 +135,7 @@ const etapeSaveFormat = etape => {
     delete etape.contenu
   }
 
-  if (
-    !etape.decisionsAnnexesContenu ||
-    !Object.keys(etape.decisionsAnnexesContenu).length
-  ) {
+  if (!etape.decisionsAnnexesContenu || !Object.keys(etape.decisionsAnnexesContenu).length) {
     delete etape.decisionsAnnexesContenu
   }
 
@@ -231,16 +162,8 @@ const etapeSaveFormat = etape => {
     }
   })
 
-  if (
-    etape.geoSystemeIds &&
-    etape.geoSystemeIds.length &&
-    etape.groupes.length
-  ) {
-    etape.points = pointsBuild(
-      etape.groupes,
-      etape.geoSystemeIds,
-      etape.geoSystemeOpposableId || etape.geoSystemeIds[0]
-    )
+  if (etape.geoSystemeIds && etape.geoSystemeIds.length && etape.groupes.length) {
+    etape.points = pointsBuild(etape.groupes, etape.geoSystemeIds, etape.geoSystemeOpposableId || etape.geoSystemeIds[0])
   } else {
     etape.points = null
 
diff --git a/packages/ui/src/utils/titre-etape-save.test.js b/packages/ui/src/utils/titre-etape-save.test.js
index 194593ac3..81a02a758 100644
--- a/packages/ui/src/utils/titre-etape-save.test.js
+++ b/packages/ui/src/utils/titre-etape-save.test.js
@@ -19,7 +19,7 @@ describe('etapeSaveFormat', () => {
         groupes: [],
         substances: [],
         contenu: {},
-        incertitudes: {}
+        incertitudes: {},
       })
     ).toEqual({
       amodiataires: [],
@@ -32,7 +32,7 @@ describe('etapeSaveFormat', () => {
       substances: [],
       titreDemarcheId: 'demarche-id',
       titulaires: [],
-      typeId: 'mfr'
+      typeId: 'mfr',
     })
 
     expect(
@@ -52,25 +52,25 @@ describe('etapeSaveFormat', () => {
               {
                 references: {
                   'geo-systeme-id': { id: 'id1', x: 1.5, y: 1 },
-                  'geo-systeme-id-2': { x: undefined, y: undefined }
-                }
+                  'geo-systeme-id-2': { x: undefined, y: undefined },
+                },
               },
               {
                 references: {
                   'geo-systeme-id': { x: undefined, y: undefined },
-                  'geo-systeme-id-2': { id: 'id3', x: 1.5, y: 1 }
-                }
-              }
-            ]
-          ]
+                  'geo-systeme-id-2': { id: 'id3', x: 1.5, y: 1 },
+                },
+              },
+            ],
+          ],
         ],
         substances: [],
         contenu: {},
         incertitudes: {},
         heritageProps: { 'prop-id': { etape: {}, actif: true } },
         heritageContenu: {
-          'section-id': { 'element-id': { etape: {}, actif: true } }
-        }
+          'section-id': { 'element-id': { etape: {}, actif: true } },
+        },
       })
     ).toEqual({
       amodiataires: [],
@@ -87,10 +87,10 @@ describe('etapeSaveFormat', () => {
               coordonnees: { x: 1.5, y: 1 },
               geoSystemeId: 'geo-systeme-id',
               opposable: true,
-              id: 'id1'
-            }
-          ]
-        }
+              id: 'id1',
+            },
+          ],
+        },
       ],
       statutId: '',
       substances: [],
@@ -98,9 +98,9 @@ describe('etapeSaveFormat', () => {
       titulaires: [],
       heritageProps: { 'prop-id': { actif: true } },
       heritageContenu: {
-        'section-id': { 'element-id': { actif: true } }
+        'section-id': { 'element-id': { actif: true } },
       },
-      typeId: 'mfr'
+      typeId: 'mfr',
     })
 
     expect(
@@ -119,45 +119,45 @@ describe('etapeSaveFormat', () => {
             [
               {
                 references: {
-                  'geo-systeme-id': { id: '1', x: 1.5, y: null }
+                  'geo-systeme-id': { id: '1', x: 1.5, y: null },
                 },
                 lot: undefined,
-                subsidiaire: undefined
+                subsidiaire: undefined,
               },
               {
                 references: { 'geo-systeme-id': { id: '2', x: 1.5, y: 1 } },
                 lot: undefined,
-                subsidiaire: undefined
+                subsidiaire: undefined,
               },
               {
                 description: undefined,
                 references: [
                   { id: '3', x: 1.5, y: 3 },
-                  { id: '4', x: 1.5, y: 4 }
+                  { id: '4', x: 1.5, y: 4 },
                 ],
                 lot: 1,
-                subsidiaire: undefined
+                subsidiaire: undefined,
               },
               {
                 description: undefined,
                 references: [],
                 lot: 2,
-                subsidiaire: undefined
+                subsidiaire: undefined,
               },
               {
                 description: undefined,
                 references: ['reference invalide'],
                 lot: 3,
-                subsidiaire: undefined
-              }
-            ]
+                subsidiaire: undefined,
+              },
+            ],
           ],
-          [[]]
+          [[]],
         ],
         substances: ['substance-id-1', undefined],
         contenu: { 'prop-id': 'prop-value' },
         incertitudes: { amodiataires: true },
-        documents: [{ id: 'tmp', typeId: 'tmp' }, { id: 'doc-id' }]
+        documents: [{ id: 'tmp', typeId: 'tmp' }, { id: 'doc-id' }],
       })
     ).toEqual({
       amodiataires: [],
@@ -174,9 +174,9 @@ describe('etapeSaveFormat', () => {
             {
               id: '2',
               coordonnees: { x: 1.5, y: 1 },
-              geoSystemeId: 'geo-systeme-id'
-            }
-          ]
+              geoSystemeId: 'geo-systeme-id',
+            },
+          ],
         },
         {
           contour: 1,
@@ -189,10 +189,10 @@ describe('etapeSaveFormat', () => {
             {
               coordonnees: { x: 1.5, y: 3 },
               geoSystemeId: 'geo-systeme-id',
-              id: '3'
-            }
+              id: '3',
+            },
           ],
-          subsidiaire: true
+          subsidiaire: true,
         },
         {
           contour: 1,
@@ -205,18 +205,18 @@ describe('etapeSaveFormat', () => {
             {
               coordonnees: { x: 1.5, y: 4 },
               geoSystemeId: 'geo-systeme-id',
-              id: '4'
-            }
+              id: '4',
+            },
           ],
-          subsidiaire: true
-        }
+          subsidiaire: true,
+        },
       ],
       statutId: 'etape-statut-id',
       substances: ['substance-id-1'],
       titreDemarcheId: 'demarche-id',
       titulaires: [{ id: 'titulaire-id' }],
       typeId: 'etape-type-id',
-      documentIds: ['doc-id']
+      documentIds: ['doc-id'],
     })
   })
 })
diff --git a/packages/ui/src/utils/url.js b/packages/ui/src/utils/url.js
index af71ccd16..f4cc0974f 100644
--- a/packages/ui/src/utils/url.js
+++ b/packages/ui/src/utils/url.js
@@ -9,10 +9,7 @@ const valueClean = (value, definition) => {
     return value
   }
 
-  if (
-    (definition.type === 'strings' || definition.type === 'numbers') &&
-    definition.values
-  ) {
+  if ((definition.type === 'strings' || definition.type === 'numbers') && definition.values) {
     value = value
       .reduce((acc, v) => {
         if (definition.values.includes(v)) {
@@ -31,9 +28,7 @@ const valueClean = (value, definition) => {
   }
 
   if (definition.type === 'string') {
-    return definition.values && !definition.values.includes(value)
-      ? null
-      : value
+    return definition.values && !definition.values.includes(value) ? null : value
   }
 
   if (definition.type === 'objects') {
@@ -97,11 +92,7 @@ const valueStringify = (id, value, definitions) => {
 
   const definition = definitions.find(p => p.id === id)
 
-  if (
-    definition.type === 'strings' ||
-    definition.type === 'tuple' ||
-    definition.type === 'numbers'
-  ) {
+  if (definition.type === 'strings' || definition.type === 'tuple' || definition.type === 'numbers') {
     return value.length ? value.join(',') : null
   }
 
@@ -179,7 +170,7 @@ const urlQueryUpdate = (params, sourceQuery, definitions) =>
     },
     {
       query: {},
-      status: null
+      status: null,
     }
   )
 
diff --git a/packages/ui/src/utils/url.test.js b/packages/ui/src/utils/url.test.js
index a6521ea53..d8ec97f4e 100644
--- a/packages/ui/src/utils/url.test.js
+++ b/packages/ui/src/utils/url.test.js
@@ -3,10 +3,6 @@ import { describe, expect, test } from 'vitest'
 
 describe('urlQueryParamsGet', () => {
   test('récupère les paramètres de requête qui ont changé', () => {
-    expect(
-      urlQueryParamsGet({ typesIds: ['cx', 'pr'] }, { typeIds: 'ar' }, [
-        { id: 'typeIds', type: 'strings', values: ['cx', 'pr', 'ar'] }
-      ])
-    ).toEqual({})
+    expect(urlQueryParamsGet({ typesIds: ['cx', 'pr'] }, { typeIds: 'ar' }, [{ id: 'typeIds', type: 'strings', values: ['cx', 'pr', 'ar'] }])).toEqual({})
   })
 })
diff --git a/packages/ui/src/utils/vue-tsx-utils.ts b/packages/ui/src/utils/vue-tsx-utils.ts
index 11bb14e3d..de6cb6f4e 100644
--- a/packages/ui/src/utils/vue-tsx-utils.ts
+++ b/packages/ui/src/utils/vue-tsx-utils.ts
@@ -9,7 +9,7 @@ import {
   defineComponent,
   EmitsOptions,
   MethodOptions,
-  Prop
+  Prop,
 } from 'vue'
 
 export function caminoDefineComponent<
@@ -24,24 +24,8 @@ export function caminoDefineComponent<
   EE extends string = string,
   I extends ComponentInjectOptions = {},
   II extends string = string
->(
-  options: ComponentOptionsWithoutProps<
-    Props,
-    RawBindings,
-    D,
-    C,
-    M,
-    Mixin,
-    Extends,
-    E,
-    EE,
-    I,
-    II
-  >
-): DefineComponent<Props, RawBindings, D, C, M, Mixin, Extends, E, EE> {
+>(options: ComponentOptionsWithoutProps<Props, RawBindings, D, C, M, Mixin, Extends, E, EE, I, II>): DefineComponent<Props, RawBindings, D, C, M, Mixin, Extends, E, EE> {
   return defineComponent(options)
 }
 
-export const isEventWithTarget = (
-  event: any
-): event is FocusEvent & { target: HTMLInputElement } => event.target
+export const isEventWithTarget = (event: any): event is FocusEvent & { target: HTMLInputElement } => event.target
-- 
GitLab