diff --git a/packages/api/knexfile.ts b/packages/api/knexfile.ts
index ce5d4a5560ac29da5171d2225d4513f3cae262e5..42f86d200d671ab05777ddc6ab1d295cd25def06 100644
--- a/packages/api/knexfile.ts
+++ b/packages/api/knexfile.ts
@@ -1,3 +1,3 @@
-import { knexConfig } from './src/knex/config.js'
+import { knexConfig } from './src/knex/config'
 
 export default knexConfig
diff --git a/packages/api/src/api/_format/etapes-types.test.ts b/packages/api/src/api/_format/etapes-types.test.ts
index a0778ca86cc418810949ea57f9b7d26c974681c7..1367ec0aa1ad3944fa51bc85e2460a710d4add07 100644
--- a/packages/api/src/api/_format/etapes-types.test.ts
+++ b/packages/api/src/api/_format/etapes-types.test.ts
@@ -1,6 +1,6 @@
-import { documentsTypesFormat } from './etapes-types.js'
+import { documentsTypesFormat } from './etapes-types'
 import { describe, test, expect } from 'vitest'
-import { DocumentType } from 'camino-common/src/static/documentsTypes.js'
+import { DocumentType } from 'camino-common/src/static/documentsTypes'
 describe('teste etapes types format', () => {
   test.each<[DocumentType[] | null | undefined, DocumentType[] | null | undefined, DocumentType[]]>([
     [undefined, undefined, []],
diff --git a/packages/api/src/api/_format/etapes-types.ts b/packages/api/src/api/_format/etapes-types.ts
index 808946e0bfe0aab31ac13720ad6fca9d4fd44ce0..960f90584df5d9fcea9e76b03733d4b26bbdb9d1 100644
--- a/packages/api/src/api/_format/etapes-types.ts
+++ b/packages/api/src/api/_format/etapes-types.ts
@@ -1,10 +1,10 @@
-import { ITitreEtape } from '../../types.js'
+import { ITitreEtape } from '../../types'
 
-import { titreDemarcheDepotDemandeDateFind } from '../../business/rules/titre-demarche-depot-demande-date-find.js'
+import { titreDemarcheDepotDemandeDateFind } from '../../business/rules/titre-demarche-depot-demande-date-find'
 
-import { DocumentType } from 'camino-common/src/static/documentsTypes.js'
-import { EtapesTypes, EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
+import { DocumentType } from 'camino-common/src/static/documentsTypes'
+import { EtapesTypes, EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
 
 export const documentsTypesFormat = (documentsTypes: DocumentType[] | undefined | null, documentsTypesSpecifiques: DocumentType[] | undefined | null): DocumentType[] => {
   let result: DocumentType[] = []
diff --git a/packages/api/src/api/_format/titres-activites.ts b/packages/api/src/api/_format/titres-activites.ts
index 247ba805e58da6a5550006fb9fa4b3c14074804e..903a3fdeb789625b6abfcae268ad72fe7a79cecf 100644
--- a/packages/api/src/api/_format/titres-activites.ts
+++ b/packages/api/src/api/_format/titres-activites.ts
@@ -1,7 +1,7 @@
-import { ITitreActivite, IContenu } from '../../types.js'
-import { DeepReadonly, isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
-import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { Unites } from 'camino-common/src/static/unites.js'
+import { ITitreActivite, IContenu } from '../../types'
+import { DeepReadonly, isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
+import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { Unites } from 'camino-common/src/static/unites'
 
 // TODO 2023-09-19 à supprimer quand on arrêtera d’envoyer le contenu par email
 const titreActiviteContenuFormat = (sections: DeepReadonly<Section[]>, contenu: IContenu) => {
diff --git a/packages/api/src/api/_format/titres-demarches.ts b/packages/api/src/api/_format/titres-demarches.ts
index da16b75d670d12f8c2578e2b799e887ba2fbbec9..8f3d7c537f82e0fc2eb31de97a10e0679fed0470 100644
--- a/packages/api/src/api/_format/titres-demarches.ts
+++ b/packages/api/src/api/_format/titres-demarches.ts
@@ -1,10 +1,10 @@
-import { ITitreDemarche } from '../../types.js'
+import { ITitreDemarche } from '../../types'
 
-import { titreEtapeFormat } from './titres-etapes.js'
-import { titreFormat } from './titres.js'
-import { titreDemarcheFormatFields } from './_fields.js'
+import { titreEtapeFormat } from './titres-etapes'
+import { titreFormat } from './titres'
+import { titreDemarcheFormatFields } from './_fields'
 import { FieldsDemarche } from '../../database/queries/_options'
-import { isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
+import { isNullOrUndefined } from 'camino-common/src/typescript-tools'
 
 export const titreDemarcheFormat = (titreDemarche: ITitreDemarche, fields: FieldsDemarche = titreDemarcheFormatFields) => {
   if (isNullOrUndefined(fields)) return titreDemarche
diff --git a/packages/api/src/api/_format/titres-etapes.ts b/packages/api/src/api/_format/titres-etapes.ts
index 9d5ecbbdae93da7fae8e8358e56cb1c609b7eab8..45e9b67479f29e4d363abd9b964fe24879910bb4 100644
--- a/packages/api/src/api/_format/titres-etapes.ts
+++ b/packages/api/src/api/_format/titres-etapes.ts
@@ -1,11 +1,11 @@
-import { FlattenEtape, defaultHeritageProps, flattenEtapeValidator, heritageContenuValidator } from 'camino-common/src/etape-form.js'
-import { simpleContenuToFlattenedContenu } from 'camino-common/src/sections.js'
-import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { ITitreEtape } from '../../types.js'
+import { FlattenEtape, defaultHeritageProps, flattenEtapeValidator, heritageContenuValidator } from 'camino-common/src/etape-form'
+import { simpleContenuToFlattenedContenu } from 'camino-common/src/sections'
+import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { ITitreEtape } from '../../types'
 
-import { titreEtapeFormatFields } from './_fields.js'
-import { titreDemarcheFormat } from './titres-demarches.js'
-import { EtapesTypes } from 'camino-common/src/static/etapesTypes.js'
+import { titreEtapeFormatFields } from './_fields'
+import { titreDemarcheFormat } from './titres-demarches'
+import { EtapesTypes } from 'camino-common/src/static/etapesTypes'
 
 const getPerimetreFromITitreEtape = (
   titreEtape: Pick<
diff --git a/packages/api/src/api/_format/titres.ts b/packages/api/src/api/_format/titres.ts
index 556014245d6923813ce13483a7e730219a9bedbb..8710c20fc42cce6b35e44d6bfa81f57bef46694f 100644
--- a/packages/api/src/api/_format/titres.ts
+++ b/packages/api/src/api/_format/titres.ts
@@ -1,12 +1,12 @@
-import { ITitre, ITitreDemarche } from '../../types.js'
-
-import { titreActiviteFormat } from './titres-activites.js'
-import { titreDemarcheFormat } from './titres-demarches.js'
-import { titreFormatFields } from './_fields.js'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefined, onlyUnique } from 'camino-common/src/typescript-tools.js'
-import { getGestionnairesByTitreTypeId } from 'camino-common/src/static/administrationsTitresTypes.js'
-import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
+import { ITitre, ITitreDemarche } from '../../types'
+
+import { titreActiviteFormat } from './titres-activites'
+import { titreDemarcheFormat } from './titres-demarches'
+import { titreFormatFields } from './_fields'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefined, onlyUnique } from 'camino-common/src/typescript-tools'
+import { getGestionnairesByTitreTypeId } from 'camino-common/src/static/administrationsTitresTypes'
+import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts'
 import { FieldsTitre } from '../../database/queries/_options'
 
 // optimisation possible pour un expert SQL
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 ce968601f8a3874726e6a3c9cae8284a2dc2cefa..313e5bc351a09fec45e84b4e27df80aae0476a3b 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,7 +1,7 @@
-import { dbManager } from '../../../tests/db-manager.js'
-import { visibleCheck, creationCheck } from '../../../tests/_utils/administrations-permissions.js'
+import { dbManager } from '../../../tests/db-manager'
+import { visibleCheck, creationCheck } from '../../../tests/_utils/administrations-permissions'
 import { beforeAll, afterAll, test, describe, vi } from 'vitest'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
+import { AdministrationId } from 'camino-common/src/static/administrations'
 import type { Pool } from 'pg'
 
 console.info = vi.fn()
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 117b3d30592f5f303347472153aafc9886142ae1..7100877b298478048cf34915afa6a34c1060751c 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,8 @@
-import { dbManager } from '../../../tests/db-manager.js'
-import { creationCheck, visibleCheck } from '../../../tests/_utils/administrations-permissions.js'
+import { dbManager } from '../../../tests/db-manager'
+import { creationCheck, visibleCheck } from '../../../tests/_utils/administrations-permissions'
 import { afterAll, beforeAll, describe, test, vi } from 'vitest'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
 import type { Pool } from 'pg'
 vi.mock('../../tools/dir-create', () => ({
   __esModule: true,
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 ab587cdfa86de5e5c0bac784ceca44db70f46a9f..5c12db3981c8ade5ac492d5f73bf710bad0bc629 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,8 +1,8 @@
-import { dbManager } from '../../../tests/db-manager.js'
-import { visibleCheck, creationCheck } from '../../../tests/_utils/administrations-permissions.js'
+import { dbManager } from '../../../tests/db-manager'
+import { visibleCheck, creationCheck } from '../../../tests/_utils/administrations-permissions'
 
 import { afterAll, beforeAll, describe, test, vi } from 'vitest'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
+import { AdministrationId } from 'camino-common/src/static/administrations'
 import type { Pool } from 'pg'
 
 console.info = vi.fn()
diff --git a/packages/api/src/api/graphql/metas.test.integration.ts b/packages/api/src/api/graphql/metas.test.integration.ts
index 103ff651591f065e355c9a543764b611e16c5b82..806fa11ac5472766acdcdd9a1d36dec0a7101b89 100644
--- a/packages/api/src/api/graphql/metas.test.integration.ts
+++ b/packages/api/src/api/graphql/metas.test.integration.ts
@@ -1,5 +1,5 @@
-import { dbManager } from '../../../tests/db-manager.js'
-import { graphQLCall, queryImport } from '../../../tests/_utils/index.js'
+import { dbManager } from '../../../tests/db-manager'
+import { graphQLCall, queryImport } from '../../../tests/_utils/index'
 
 import { afterAll, beforeAll, describe, test, expect, vi } from 'vitest'
 import type { Pool } from 'pg'
diff --git a/packages/api/src/api/graphql/resolvers.ts b/packages/api/src/api/graphql/resolvers.ts
index bf4ed711551a8ce697581e5eaa84086ff1acf8cb..44fe0cf90699265d3ab9882e0a76cac4b1e8a90e 100644
--- a/packages/api/src/api/graphql/resolvers.ts
+++ b/packages/api/src/api/graphql/resolvers.ts
@@ -1,12 +1,12 @@
 import GraphQLJSON from 'graphql-type-json'
 
-import { titres } from './resolvers/titres.js'
+import { titres } from './resolvers/titres'
 
-import { etapeHeritage } from './resolvers/titres-etapes.js'
+import { etapeHeritage } from './resolvers/titres-etapes'
 
-import { demarches, demarcheCreer, demarcheModifier, demarcheSupprimer } from './resolvers/titres-demarches.js'
+import { demarches, demarcheCreer, demarcheModifier, demarcheSupprimer } from './resolvers/titres-demarches'
 
-import { utilisateur, utilisateurs, newsletterInscrire } from './resolvers/utilisateurs.js'
+import { utilisateur, utilisateurs, newsletterInscrire } from './resolvers/utilisateurs'
 
 import {
   devises,
@@ -26,19 +26,19 @@ import {
   regions,
   departements,
   pays,
-} from './resolvers/metas.js'
+} from './resolvers/metas'
 
-import { activitesTypes, activitesStatuts } from './resolvers/metas-activites.js'
+import { activitesTypes, activitesStatuts } from './resolvers/metas-activites'
 
-import { titresTypes, titresTypesTitresStatuts, etapesTypesDocumentsTypes } from './resolvers/metas-join.js'
+import { titresTypes, titresTypesTitresStatuts, etapesTypesDocumentsTypes } from './resolvers/metas-join'
 
-import { substances } from './resolvers/substances.js'
+import { substances } from './resolvers/substances'
 
-import { activites, activiteDeposer } from './resolvers/titres-activites.js'
-import { statistiquesGlobales } from './resolvers/statistiques.js'
+import { activites, activiteDeposer } from './resolvers/titres-activites'
+import { statistiquesGlobales } from './resolvers/statistiques'
 
-import { titreDemandeCreer } from '../rest/titre-demande.js'
-import { journaux } from './resolvers/journaux.js'
+import { titreDemandeCreer } from '../rest/titre-demande'
+import { journaux } from './resolvers/journaux'
 
 export default {
   //  types
diff --git a/packages/api/src/api/graphql/resolvers/_fields-build.ts b/packages/api/src/api/graphql/resolvers/_fields-build.ts
index cb55c682c83751422e9eb534b10d539264fbcdb9..c3ce09ce81d7351875dd1a54c853a5c6ad54bfdd 100644
--- a/packages/api/src/api/graphql/resolvers/_fields-build.ts
+++ b/packages/api/src/api/graphql/resolvers/_fields-build.ts
@@ -1,4 +1,4 @@
-import { IFields } from '../../../types.js'
+import { IFields } from '../../../types'
 import graphqlFields from 'graphql-fields'
 import { GraphQLResolveInfo } from 'graphql'
 
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 880a583e27ef942c0573b99784fa18c0f464d02e..53e4930c623b96a5889ce4a6570c4495ebe751e5 100644
--- a/packages/api/src/api/graphql/resolvers/_titre-activite.test.ts
+++ b/packages/api/src/api/graphql/resolvers/_titre-activite.test.ts
@@ -1,6 +1,6 @@
-import { productionCheck, titreActiviteAdministrationsEmailsGet } from './_titre-activite.js'
-import { IContenu } from '../../../types.js'
-import { AdministrationId, ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
+import { productionCheck, titreActiviteAdministrationsEmailsGet } from './_titre-activite'
+import { IContenu } from '../../../types'
+import { AdministrationId, ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
 import { describe, expect, test } from 'vitest'
 import { GetActiviteTypeEmailsByAdministrationIds } from '../../rest/administrations.queries'
 
diff --git a/packages/api/src/api/graphql/resolvers/_titre-activite.ts b/packages/api/src/api/graphql/resolvers/_titre-activite.ts
index 1266fadd99d34831c445e4f0be95aafe6fbe2cad..279a6c9ff5e4714f834cc0bfef877e2461789de5 100644
--- a/packages/api/src/api/graphql/resolvers/_titre-activite.ts
+++ b/packages/api/src/api/graphql/resolvers/_titre-activite.ts
@@ -1,15 +1,15 @@
-import { IContenu, IContenuValeur, 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 { ADMINISTRATION_TYPE_IDS, AdministrationId, Administrations } from 'camino-common/src/static/administrations.js'
-import { dateFormat } from 'camino-common/src/date.js'
-import { getElementValeurs, Section, SectionElement } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { DeepReadonly, NonEmptyArray, isNotNullNorUndefinedNorEmpty, isNullOrUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools.js'
-import { ActivitesTypes } from 'camino-common/src/static/activitesTypes.js'
-import { GetActiviteTypeEmailsByAdministrationIds, getActiviteTypeEmailsByAdministrationIds } from '../../rest/administrations.queries.js'
+import { IContenu, IContenuValeur, ITitreActivite, IUtilisateur } from '../../../types'
+
+import { emailsSend } from '../../../tools/api-mailjet/emails'
+import { titreUrlGet } from '../../../business/utils/urls-get'
+import { UserNotNull } from 'camino-common/src/roles'
+import { getPeriode } from 'camino-common/src/static/frequence'
+import { ADMINISTRATION_TYPE_IDS, AdministrationId, Administrations } from 'camino-common/src/static/administrations'
+import { dateFormat } from 'camino-common/src/date'
+import { getElementValeurs, Section, SectionElement } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { DeepReadonly, NonEmptyArray, isNotNullNorUndefinedNorEmpty, isNullOrUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools'
+import { ActivitesTypes } from 'camino-common/src/static/activitesTypes'
+import { GetActiviteTypeEmailsByAdministrationIds, getActiviteTypeEmailsByAdministrationIds } from '../../rest/administrations.queries'
 import { Pool } from 'pg'
 
 const elementHtmlBuild = (sectionId: string, element: DeepReadonly<SectionElement>, contenu: IContenu) =>
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 23d3b276078261ed73c019cae291edc3b1dc5477..71daf32f9367c5471e4f34e2c17138e540923d07 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
@@ -1,9 +1,9 @@
-import { emailsForAdministrationsGet } from './_titre-etape-email.js'
-import { userSuper } from '../../../database/user-super.js'
+import { emailsForAdministrationsGet } from './_titre-etape-email'
+import { userSuper } from '../../../database/user-super'
 import { expect, test } from 'vitest'
-import { UserNotNull } from 'camino-common/src/roles.js'
-import { newUtilisateurId } from '../../../database/models/_format/id-create.js'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { UserNotNull } from 'camino-common/src/roles'
+import { newUtilisateurId } from '../../../database/models/_format/id-create'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 
 test('envoie un email sur une étape non existante', () => {
   const actual = emailsForAdministrationsGet(undefined, '', '', '', userSuper, undefined)
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 7fd1a6a2ab9ae6a4511cc05c7ccbcecc2ea3bc46..96d5d6b811047c32024ea8e85cbddc15498d8d1a 100644
--- a/packages/api/src/api/graphql/resolvers/_titre-etape-email.ts
+++ b/packages/api/src/api/graphql/resolvers/_titre-etape-email.ts
@@ -1,14 +1,14 @@
-import { ITitreEtape, formatUser } from '../../../types.js'
-
-import { emailsSend } from '../../../tools/api-mailjet/emails.js'
-import { titreEtapeGet } from '../../../database/queries/titres-etapes.js'
-import { utilisateursTitresGet } from '../../../database/queries/utilisateurs.js'
-import { titreUrlGet } from '../../../business/utils/urls-get.js'
-import { EmailAdministration } from '../../../tools/api-mailjet/types.js'
-import { UserNotNull } from 'camino-common/src/roles.js'
-import { EtapesTypes } from 'camino-common/src/static/etapesTypes.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
-import { ETAPE_IS_BROUILLON, ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { ITitreEtape, formatUser } from '../../../types'
+
+import { emailsSend } from '../../../tools/api-mailjet/emails'
+import { titreEtapeGet } from '../../../database/queries/titres-etapes'
+import { utilisateursTitresGet } from '../../../database/queries/utilisateurs'
+import { titreUrlGet } from '../../../business/utils/urls-get'
+import { EmailAdministration } from '../../../tools/api-mailjet/types'
+import { UserNotNull } from 'camino-common/src/roles'
+import { EtapesTypes } from 'camino-common/src/static/etapesTypes'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
+import { ETAPE_IS_BROUILLON, ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 
 const emailForAdministrationContentFormat = (titreTypeId: string, etapeNom: string, titreId: string, user: UserNotNull) => {
   const titreUrl = titreUrlGet(titreId)
diff --git a/packages/api/src/api/graphql/resolvers/_titre-etape.ts b/packages/api/src/api/graphql/resolvers/_titre-etape.ts
index aa2e5297e67e8cba793f7a520ad00a6685afd3d6..14608d6bdc4d34c5fc47210d023bcdc6e6aa4364 100644
--- a/packages/api/src/api/graphql/resolvers/_titre-etape.ts
+++ b/packages/api/src/api/graphql/resolvers/_titre-etape.ts
@@ -1,16 +1,16 @@
-import { IHeritageContenu, IHeritageElement, IHeritageProps, ITitreDemarche, ITitreEtape } from '../../../types.js'
-
-import { titreEtapeHeritagePropsFind } from '../../../business/utils/titre-etape-heritage-props-find.js'
-import { titreEtapeHeritageContenuFind } from '../../../business/utils/titre-etape-heritage-contenu-find.js'
-import { titreEtapesSortAscByOrdre, titreEtapesSortDescByOrdre } from '../../../business/utils/titre-etapes-sort.js'
-import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { DeepReadonly, getKeys } from 'camino-common/src/typescript-tools.js'
-import { getSections, Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { ETAPE_HERITAGE_PROPS, isHeritageProps } from 'camino-common/src/heritage.js'
-import { EtapeTypeId, EtapesTypes } from 'camino-common/src/static/etapesTypes.js'
-import { CaminoDate } from 'camino-common/src/date.js'
-import { EtapeId } from 'camino-common/src/etape.js'
+import { IHeritageContenu, IHeritageElement, IHeritageProps, ITitreDemarche, ITitreEtape } from '../../../types'
+
+import { titreEtapeHeritagePropsFind } from '../../../business/utils/titre-etape-heritage-props-find'
+import { titreEtapeHeritageContenuFind } from '../../../business/utils/titre-etape-heritage-contenu-find'
+import { titreEtapesSortAscByOrdre, titreEtapesSortDescByOrdre } from '../../../business/utils/titre-etapes-sort'
+import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { DeepReadonly, getKeys } from 'camino-common/src/typescript-tools'
+import { getSections, Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { ETAPE_HERITAGE_PROPS, isHeritageProps } from 'camino-common/src/heritage'
+import { EtapeTypeId, EtapesTypes } from 'camino-common/src/static/etapesTypes'
+import { CaminoDate } from 'camino-common/src/date'
+import { EtapeId } from 'camino-common/src/etape'
 
 const titreEtapeHeritagePropsBuild = (date: CaminoDate, titreEtapes: ITitreEtape[] | null, etapeId: EtapeId | null) => {
   const titreEtapesFiltered = titreEtapesSortAscByOrdre(
diff --git a/packages/api/src/api/graphql/resolvers/journaux.ts b/packages/api/src/api/graphql/resolvers/journaux.ts
index 5f6639ec3109fe4fea8015cf3c392ce503c58f2b..ae87425a8c3aa4a473ba62ca43060acd3bef5b92 100644
--- a/packages/api/src/api/graphql/resolvers/journaux.ts
+++ b/packages/api/src/api/graphql/resolvers/journaux.ts
@@ -1,9 +1,9 @@
-import { journauxGet } from '../../../database/queries/journaux.js'
+import { journauxGet } from '../../../database/queries/journaux'
 import { GraphQLResolveInfo } from 'graphql'
-import { fieldsBuild } from './_fields-build.js'
-import { Context } from '../../../types.js'
-import { canReadJournaux } from 'camino-common/src/permissions/journaux.js'
-import { Journaux, JournauxQueryParams } from 'camino-common/src/journaux.js'
+import { fieldsBuild } from './_fields-build'
+import { Context } from '../../../types'
+import { canReadJournaux } from 'camino-common/src/permissions/journaux'
+import { Journaux, JournauxQueryParams } from 'camino-common/src/journaux'
 
 export const journaux = async (params: JournauxQueryParams, { user }: Context, info: GraphQLResolveInfo): Promise<Journaux> => {
   try {
diff --git a/packages/api/src/api/graphql/resolvers/metas-activites.ts b/packages/api/src/api/graphql/resolvers/metas-activites.ts
index e9fca32f529c5d4c166f0a2a2d9667f7b8e1e4c5..bd8299a42e3f172aa94f34ad33362d4c60c278a3 100644
--- a/packages/api/src/api/graphql/resolvers/metas-activites.ts
+++ b/packages/api/src/api/graphql/resolvers/metas-activites.ts
@@ -1,5 +1,5 @@
-import { activitesStatuts as activitesStatutsList } from 'camino-common/src/static/activitesStatuts.js'
-import { sortedActivitesTypes } from 'camino-common/src/static/activitesTypes.js'
+import { activitesStatuts as activitesStatutsList } from 'camino-common/src/static/activitesStatuts'
+import { sortedActivitesTypes } from 'camino-common/src/static/activitesTypes'
 
 export const activitesTypes = () => sortedActivitesTypes
 
diff --git a/packages/api/src/api/graphql/resolvers/metas-join.ts b/packages/api/src/api/graphql/resolvers/metas-join.ts
index 33b7b0fed44e048857b39ddae0ea58c0c012a763..6977641a7a058b0abd4506f5a370836db63469c2 100644
--- a/packages/api/src/api/graphql/resolvers/metas-join.ts
+++ b/packages/api/src/api/graphql/resolvers/metas-join.ts
@@ -1,9 +1,9 @@
-import { Context } from '../../../types.js'
+import { Context } from '../../../types'
 
-import { etapesTypesDocumentsTypesGet } from '../../../database/queries/metas.js'
-import { isSuper } from 'camino-common/src/roles.js'
-import { titreTypesStatutsTitresPublicLecture } from 'camino-common/src/static/titresTypes_titresStatuts.js'
-import { TitresTypes } from 'camino-common/src/static/titresTypes.js'
+import { etapesTypesDocumentsTypesGet } from '../../../database/queries/metas'
+import { isSuper } from 'camino-common/src/roles'
+import { titreTypesStatutsTitresPublicLecture } from 'camino-common/src/static/titresTypes_titresStatuts'
+import { TitresTypes } from 'camino-common/src/static/titresTypes'
 
 export const titresTypes = () => Object.values(TitresTypes)
 
diff --git a/packages/api/src/api/graphql/resolvers/metas.ts b/packages/api/src/api/graphql/resolvers/metas.ts
index 36d4fc44be5cdc5414a1c0c1653a50fa829024db..8497b1a003908024e4843ec17561760aab9256ac 100644
--- a/packages/api/src/api/graphql/resolvers/metas.ts
+++ b/packages/api/src/api/graphql/resolvers/metas.ts
@@ -1,19 +1,19 @@
-import { demarchesStatutsGet, devisesGet } from '../../../database/queries/metas.js'
-import { sortedGeoSystemes } from 'camino-common/src/static/geoSystemes.js'
-import { UNITES } from 'camino-common/src/static/unites.js'
-import { Pays, PaysList } from 'camino-common/src/static/pays.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 { titresStatutsArray } from 'camino-common/src/static/titresStatuts.js'
-import { phasesStatuts as staticPhasesStatuts } from 'camino-common/src/static/phasesStatuts.js'
-import { sortedReferencesTypes } from 'camino-common/src/static/referencesTypes.js'
-import { sortedDemarchesTypes } from 'camino-common/src/static/demarchesTypes.js'
-import { sortedAdministrationTypes } from 'camino-common/src/static/administrations.js'
-import { sortedDomaines } from 'camino-common/src/static/domaines.js'
-import { sortedTitreTypesTypes } from 'camino-common/src/static/titresTypesTypes.js'
-import { sortedDocumentTypes } from 'camino-common/src/static/documentsTypes.js'
-import { config } from '../../../config/index.js'
+import { demarchesStatutsGet, devisesGet } from '../../../database/queries/metas'
+import { sortedGeoSystemes } from 'camino-common/src/static/geoSystemes'
+import { UNITES } from 'camino-common/src/static/unites'
+import { Pays, PaysList } from 'camino-common/src/static/pays'
+import { Departement, Departements } from 'camino-common/src/static/departement'
+import { Region, Regions } from 'camino-common/src/static/region'
+import { EtapesStatuts } from 'camino-common/src/static/etapesStatuts'
+import { titresStatutsArray } from 'camino-common/src/static/titresStatuts'
+import { phasesStatuts as staticPhasesStatuts } from 'camino-common/src/static/phasesStatuts'
+import { sortedReferencesTypes } from 'camino-common/src/static/referencesTypes'
+import { sortedDemarchesTypes } from 'camino-common/src/static/demarchesTypes'
+import { sortedAdministrationTypes } from 'camino-common/src/static/administrations'
+import { sortedDomaines } from 'camino-common/src/static/domaines'
+import { sortedTitreTypesTypes } from 'camino-common/src/static/titresTypesTypes'
+import { sortedDocumentTypes } from 'camino-common/src/static/documentsTypes'
+import { config } from '../../../config/index'
 
 export const devises = async () => devisesGet()
 
diff --git a/packages/api/src/api/graphql/resolvers/statistiques.ts b/packages/api/src/api/graphql/resolvers/statistiques.ts
index 30f23576f44cf9fcbb78fb85690d3af4caef1b1a..0aa39fa0f5e421d05bbd48af94db491ee3326896 100644
--- a/packages/api/src/api/graphql/resolvers/statistiques.ts
+++ b/packages/api/src/api/graphql/resolvers/statistiques.ts
@@ -1,16 +1,16 @@
-import { Context, ITitre } from '../../../types.js'
+import { Context, ITitre } from '../../../types'
 
-import { titreEtapePropFind } from '../../../business/rules/titre-etape-prop-find.js'
-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 { Statistiques } from 'camino-common/src/statistiques.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { DEMARCHES_TYPES_IDS } from 'camino-common/src/static/demarchesTypes.js'
-import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
-import { getAnnee, toCaminoDate } from 'camino-common/src/date.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
-import { getTitresModifiesByMonth } from '../../rest/journal.queries.js'
+import { titreEtapePropFind } from '../../../business/rules/titre-etape-prop-find'
+import { titreValideCheck } from '../../../business/utils/titre-valide-check'
+import { titresActivitesGet } from '../../../database/queries/titres-activites'
+import { userSuper } from '../../../database/user-super'
+import { Statistiques } from 'camino-common/src/statistiques'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { DEMARCHES_TYPES_IDS } from 'camino-common/src/static/demarchesTypes'
+import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts'
+import { getAnnee, toCaminoDate } from 'camino-common/src/date'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
+import { getTitresModifiesByMonth } from '../../rest/journal.queries'
 
 const ACTIVITE_ANNEE_DEBUT = 2018
 
diff --git a/packages/api/src/api/graphql/resolvers/substances.test.integration.ts b/packages/api/src/api/graphql/resolvers/substances.test.integration.ts
index 9e444685bc5ef832a947c575189a7c60bef54c8c..f84dca78a6d96bf45172039504aa184d3e0fdd08 100644
--- a/packages/api/src/api/graphql/resolvers/substances.test.integration.ts
+++ b/packages/api/src/api/graphql/resolvers/substances.test.integration.ts
@@ -1,5 +1,5 @@
-import { graphQLCall } from '../../../../tests/_utils/index.js'
-import { dbManager } from '../../../../tests/db-manager.js'
+import { graphQLCall } from '../../../../tests/_utils/index'
+import { dbManager } from '../../../../tests/db-manager'
 import { vi, expect, test, describe, afterAll, beforeAll } from 'vitest'
 import type { Pool } from 'pg'
 
@@ -23,7 +23,7 @@ describe('substances', () => {
   substances {
    id
     nom
-    description    
+    description
   }
 }`,
       {},
diff --git a/packages/api/src/api/graphql/resolvers/substances.ts b/packages/api/src/api/graphql/resolvers/substances.ts
index 84b0dadec563d91a1b024c8f6541f4f104eb46f9..c927051d01ed34ffd233f82515b3862af172c548 100644
--- a/packages/api/src/api/graphql/resolvers/substances.ts
+++ b/packages/api/src/api/graphql/resolvers/substances.ts
@@ -1,3 +1,3 @@
-import { SubstancesLegales } from 'camino-common/src/static/substancesLegales.js'
+import { SubstancesLegales } from 'camino-common/src/static/substancesLegales'
 
 export const substances = () => SubstancesLegales
diff --git a/packages/api/src/api/graphql/resolvers/titres-activites.ts b/packages/api/src/api/graphql/resolvers/titres-activites.ts
index 0e764c12d7ba51ddb909dbd3259f8f2b313e69cc..215297e445402b99e1f05f8d8dfdc611f23a3ee6 100644
--- a/packages/api/src/api/graphql/resolvers/titres-activites.ts
+++ b/packages/api/src/api/graphql/resolvers/titres-activites.ts
@@ -1,33 +1,33 @@
 import { GraphQLResolveInfo } from 'graphql'
 
-import { Context, ITitre, ITitreActiviteColonneId, IUtilisateur } from '../../../types.js'
-import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
+import { Context, ITitre, ITitreActiviteColonneId, IUtilisateur } from '../../../types'
+import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts'
 
-import { titreActiviteEmailsSend } from './_titre-activite.js'
-import { titreActiviteFormat } from '../../_format/titres-activites.js'
+import { titreActiviteEmailsSend } from './_titre-activite'
+import { titreActiviteFormat } from '../../_format/titres-activites'
 
-import { fieldsBuild } from './_fields-build.js'
+import { fieldsBuild } from './_fields-build'
 
-import { titreActiviteGet, titreActiviteUpdate as titreActiviteUpdateQuery, titresActivitesCount, titresActivitesGet } from '../../../database/queries/titres-activites.js'
-import { utilisateursGet } from '../../../database/queries/utilisateurs.js'
+import { titreActiviteGet, titreActiviteUpdate as titreActiviteUpdateQuery, titresActivitesCount, titresActivitesGet } from '../../../database/queries/titres-activites'
+import { utilisateursGet } from '../../../database/queries/utilisateurs'
 
-import { userSuper } from '../../../database/user-super.js'
-import { titreGet } from '../../../database/queries/titres.js'
-import { isBureauDEtudes, isEntreprise } from 'camino-common/src/roles.js'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { isNonEmptyArray, isNotNullNorUndefinedNorEmpty, isNullOrUndefined, memoize, onlyUnique } from 'camino-common/src/typescript-tools.js'
-import { getGestionnairesByTitreTypeId } from 'camino-common/src/static/administrationsTitresTypes.js'
-import { getCurrent } from 'camino-common/src/date.js'
-import { canReadActivites, isActiviteDeposable } from 'camino-common/src/permissions/activites.js'
+import { userSuper } from '../../../database/user-super'
+import { titreGet } from '../../../database/queries/titres'
+import { isBureauDEtudes, isEntreprise } from 'camino-common/src/roles'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { isNonEmptyArray, isNotNullNorUndefinedNorEmpty, isNullOrUndefined, memoize, onlyUnique } from 'camino-common/src/typescript-tools'
+import { getGestionnairesByTitreTypeId } from 'camino-common/src/static/administrationsTitresTypes'
+import { getCurrent } from 'camino-common/src/date'
+import { canReadActivites, isActiviteDeposable } from 'camino-common/src/permissions/activites'
 import {
   administrationsLocalesByActiviteId,
   entreprisesTitulairesOuAmoditairesByActiviteId,
   getActiviteById,
   getActiviteDocumentsByActiviteId,
   titreTypeIdByActiviteId,
-} from '../../rest/activites.queries.js'
-import { ActiviteId } from 'camino-common/src/activite.js'
-import { getSectionsWithValue } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
+} from '../../rest/activites.queries'
+import { ActiviteId } from 'camino-common/src/activite'
+import { getSectionsWithValue } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
 
 /**
  * Retourne les activités
diff --git a/packages/api/src/api/graphql/resolvers/titres-demarches.ts b/packages/api/src/api/graphql/resolvers/titres-demarches.ts
index e61ba8f90965c100502c8fbf1a3a0678fc4635bb..2a28680aefdbd288a08f2126d38246b19579b8d7 100644
--- a/packages/api/src/api/graphql/resolvers/titres-demarches.ts
+++ b/packages/api/src/api/graphql/resolvers/titres-demarches.ts
@@ -1,22 +1,22 @@
 import { GraphQLResolveInfo } from 'graphql'
 
-import { ITitreDemarche, ITitreEtapeFiltre, ITitreDemarcheColonneId, Context } from '../../../types.js'
+import { ITitreDemarche, ITitreEtapeFiltre, ITitreDemarcheColonneId, Context } from '../../../types'
 
-import { fieldsBuild } from './_fields-build.js'
+import { fieldsBuild } from './_fields-build'
 
-import { titreDemarcheFormat } from '../../_format/titres-demarches.js'
+import { titreDemarcheFormat } from '../../_format/titres-demarches'
 
-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'
 
-import { titreGet } from '../../../database/queries/titres.js'
+import { titreGet } from '../../../database/queries/titres'
 
-import { titreDemarcheUpdate as 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, canEditDemarche, canDeleteDemarche, canCreateDemarche } from 'camino-common/src/permissions/titres-demarches.js'
-import { isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { userSuper } from '../../../database/user-super.js'
-import { getDemarchesByTitreId } from '../../rest/titres.queries.js'
+import { titreDemarcheUpdate as titreDemarcheUpdateTask } from '../../../business/titre-demarche-update'
+import { titreDemarcheUpdationValidate } from '../../../business/validations/titre-demarche-updation-validate'
+import { isDemarcheTypeId, isTravaux } from 'camino-common/src/static/demarchesTypes'
+import { canCreateTravaux, canEditDemarche, canDeleteDemarche, canCreateDemarche } from 'camino-common/src/permissions/titres-demarches'
+import { isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { userSuper } from '../../../database/user-super'
+import { getDemarchesByTitreId } from '../../rest/titres.queries'
 
 export const demarches = async (
   {
diff --git a/packages/api/src/api/graphql/resolvers/titres-etapes.ts b/packages/api/src/api/graphql/resolvers/titres-etapes.ts
index bdd6d1a823206932973f17ff0764bbf388632d14..2158adc3d520bd934246e8ed5d071fb94ab407d9 100644
--- a/packages/api/src/api/graphql/resolvers/titres-etapes.ts
+++ b/packages/api/src/api/graphql/resolvers/titres-etapes.ts
@@ -1,16 +1,16 @@
-import { Context } from '../../../types.js'
+import { Context } from '../../../types'
 
-import { titreDemarcheGet } from '../../../database/queries/titres-demarches.js'
+import { titreDemarcheGet } from '../../../database/queries/titres-demarches'
 
-import { titreEtapeHeritageBuild } from './_titre-etape.js'
+import { titreEtapeHeritageBuild } from './_titre-etape'
 
-import { titreEtapeFormat } from '../../_format/titres-etapes.js'
-import { userSuper } from '../../../database/user-super.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { CaminoDate } from 'camino-common/src/date.js'
-import { titreEtapeFormatFields } from '../../_format/_fields.js'
-import { EtapeId } from 'camino-common/src/etape.js'
-import { DemarcheId } from 'camino-common/src/demarche.js'
+import { titreEtapeFormat } from '../../_format/titres-etapes'
+import { userSuper } from '../../../database/user-super'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { CaminoDate } from 'camino-common/src/date'
+import { titreEtapeFormatFields } from '../../_format/_fields'
+import { EtapeId } from 'camino-common/src/etape'
+import { DemarcheId } from 'camino-common/src/demarche'
 
 export const etapeHeritage = async ({ date, titreDemarcheId, typeId, etapeId }: { date: CaminoDate; titreDemarcheId: DemarcheId; typeId: EtapeTypeId; etapeId: EtapeId | null }, { user }: Context) => {
   try {
diff --git a/packages/api/src/api/graphql/resolvers/titres.ts b/packages/api/src/api/graphql/resolvers/titres.ts
index 71e3eadd4014dc35bddb46633f207f989409c897..0f570ce3c909687b27e536f929704a5533a6daa7 100644
--- a/packages/api/src/api/graphql/resolvers/titres.ts
+++ b/packages/api/src/api/graphql/resolvers/titres.ts
@@ -1,16 +1,16 @@
 import { GraphQLResolveInfo } from 'graphql'
 
-import { Context, ITitreColonneId } from '../../../types.js'
+import { Context, ITitreColonneId } from '../../../types'
 
-import { titresFormat } from '../../_format/titres.js'
+import { titresFormat } from '../../_format/titres'
 
-import { fieldsBuild } from './_fields-build.js'
+import { fieldsBuild } from './_fields-build'
 
-import { titresCount, titresGet } from '../../../database/queries/titres.js'
+import { titresCount, titresGet } from '../../../database/queries/titres'
 
-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'
+import { DepartementId } from 'camino-common/src/static/departement'
+import { RegionId } from 'camino-common/src/static/region'
+import { FacadesMaritimes } from 'camino-common/src/static/facades'
 
 export const titres = async (
   {
diff --git a/packages/api/src/api/graphql/resolvers/utilisateurs.ts b/packages/api/src/api/graphql/resolvers/utilisateurs.ts
index ab81e4fbf42af77b58c5d8905ee8d6a8f1e63db9..51d9cd00f4c4bf3ca01dc15abb1551b30bbfc992 100644
--- a/packages/api/src/api/graphql/resolvers/utilisateurs.ts
+++ b/packages/api/src/api/graphql/resolvers/utilisateurs.ts
@@ -1,15 +1,15 @@
 import { GraphQLResolveInfo } from 'graphql'
 
-import { Context, IUtilisateursColonneId } from '../../../types.js'
+import { Context, IUtilisateursColonneId } from '../../../types'
 
-import { fieldsBuild } from './_fields-build.js'
+import { fieldsBuild } from './_fields-build'
 
-import { userGet, utilisateurGet, utilisateursCount, utilisateursGet } from '../../../database/queries/utilisateurs.js'
+import { userGet, utilisateurGet, utilisateursCount, utilisateursGet } from '../../../database/queries/utilisateurs'
 
-import { newsletterSubscriberUpdate } from '../../../tools/api-mailjet/newsletter.js'
-import { Role, UtilisateurId } from 'camino-common/src/roles.js'
-import { canReadUtilisateurs, canReadUtilisateur } from 'camino-common/src/permissions/utilisateurs.js'
-import { newUtilisateurId } from '../../../database/models/_format/id-create.js'
+import { newsletterSubscriberUpdate } from '../../../tools/api-mailjet/newsletter'
+import { Role, UtilisateurId } from 'camino-common/src/roles'
+import { canReadUtilisateurs, canReadUtilisateur } from 'camino-common/src/permissions/utilisateurs'
+import { newUtilisateurId } from '../../../database/models/_format/id-create'
 
 export const userIdGenerate = async (): Promise<UtilisateurId> => {
   const id = newUtilisateurId()
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 93126c1a95d3cb4ad1676d23b597af4f6f0071ac..017ee828a24f34b0f0b0bbdbb9a9cf50806534ef 100644
--- a/packages/api/src/api/graphql/titres-demarches.test.integration.ts
+++ b/packages/api/src/api/graphql/titres-demarches.test.integration.ts
@@ -1,16 +1,16 @@
-import { dbManager } from '../../../tests/db-manager.js'
-import { graphQLCall, queryImport } from '../../../tests/_utils/index.js'
-import { titreCreate } from '../../database/queries/titres.js'
-import { titreEtapeUpsert } from '../../database/queries/titres-etapes.js'
-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 { dbManager } from '../../../tests/db-manager'
+import { graphQLCall, queryImport } from '../../../tests/_utils/index'
+import { titreCreate } from '../../database/queries/titres'
+import { titreEtapeUpsert } from '../../database/queries/titres-etapes'
+import { userSuper } from '../../database/user-super'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
+import { toCaminoDate } from 'camino-common/src/date'
 
 import { afterAll, beforeAll, afterEach, describe, test, expect, vi } from 'vitest'
 import type { Pool } from 'pg'
-import { newEtapeId } from '../../database/models/_format/id-create.js'
-import TitresDemarches from '../../database/models/titres-demarches.js'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { newEtapeId } from '../../database/models/_format/id-create'
+import TitresDemarches from '../../database/models/titres-demarches'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/api/graphql/titres.test.integration.ts b/packages/api/src/api/graphql/titres.test.integration.ts
index 53afe28e6f8bfcc8b4c62c8dfa14a57657729f66..131e262069d6968f5b4178f4cac93a8958e7020e 100644
--- a/packages/api/src/api/graphql/titres.test.integration.ts
+++ b/packages/api/src/api/graphql/titres.test.integration.ts
@@ -1,20 +1,20 @@
 /* eslint-disable sql/no-unsafe-query */
-import { dbManager } from '../../../tests/db-manager.js'
-import { graphQLCall, queryImport } from '../../../tests/_utils/index.js'
-import options from '../../database/queries/_options.js'
-import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
-import { ITitre } from '../../types.js'
-import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { dbManager } from '../../../tests/db-manager'
+import { graphQLCall, queryImport } from '../../../tests/_utils/index'
+import options from '../../database/queries/_options'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
+import { ITitre } from '../../types'
+import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create'
+import { toCaminoDate } from 'camino-common/src/date'
 
 import { vi, afterEach, afterAll, beforeAll, describe, test, expect } from 'vitest'
 import type { Pool } from 'pg'
-import { entrepriseUpsert } from '../../database/queries/entreprises.js'
-import { newEntrepriseId } from 'camino-common/src/entreprise.js'
-import { communeIdValidator } from 'camino-common/src/static/communes.js'
+import { entrepriseUpsert } from '../../database/queries/entreprises'
+import { newEntrepriseId } from 'camino-common/src/entreprise'
+import { communeIdValidator } from 'camino-common/src/static/communes'
 import type { Knex } from 'knex'
 import Titres from '../../database/models/titres'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/api/rest/_convert.ts b/packages/api/src/api/rest/_convert.ts
index 1a9952083bbf5174e1f8de897ed184df88d399ac..6ab06b844e8769697f6933ab88b40c78b8fa162a 100644
--- a/packages/api/src/api/rest/_convert.ts
+++ b/packages/api/src/api/rest/_convert.ts
@@ -1,7 +1,7 @@
-import { DownloadFormat } from 'camino-common/src/rest.js'
+import { DownloadFormat } from 'camino-common/src/rest'
 import xlsx from 'xlsx'
 
-import { Index } from '../../types.js'
+import { Index } from '../../types'
 
 export const tableConvert = (section: 'titres' | 'demarches' | 'activites' | 'utilisateurs' | 'entreprises', elements: Index<any>[], format: DownloadFormat) => {
   let contenu = ''
diff --git a/packages/api/src/api/rest/activites.queries.ts b/packages/api/src/api/rest/activites.queries.ts
index 79bbacd1a4f526b1f3035b6aa8188e51742d3619..6219c0cbfb42d665ab3de969e6f76b9e333549bb 100644
--- a/packages/api/src/api/rest/activites.queries.ts
+++ b/packages/api/src/api/rest/activites.queries.ts
@@ -1,6 +1,6 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { Redefine, dbQueryAndValidate } from '../../pg-database.js'
+import { Redefine, dbQueryAndValidate } from '../../pg-database'
 import {
   IDeleteActiviteDocumentQueryQuery,
   IGetActiviteByIdQueryQuery,
@@ -12,7 +12,7 @@ import {
   IInsertActiviteDocumentInternalQuery,
   IUpdateActiviteDbQuery,
   IActiviteDeleteDbQuery,
-} from './activites.queries.types.js'
+} from './activites.queries.types'
 import {
   ActiviteDocument,
   ActiviteDocumentId,
@@ -22,21 +22,21 @@ import {
   activiteDocumentValidator,
   activiteIdValidator,
   activiteValidator,
-} from 'camino-common/src/activite.js'
+} from 'camino-common/src/activite'
 import { Pool } from 'pg'
-import { canDeleteActiviteDocument, canEditActivite, canReadTitreActivites } from 'camino-common/src/permissions/activites.js'
-import { User, isSuper, utilisateurIdValidator } from 'camino-common/src/roles.js'
+import { canDeleteActiviteDocument, canEditActivite, canReadTitreActivites } from 'camino-common/src/permissions/activites'
+import { User, isSuper, utilisateurIdValidator } from 'camino-common/src/roles'
 import { z } from 'zod'
-import { EntrepriseId, entrepriseIdValidator } from 'camino-common/src/entreprise.js'
-import { TitreTypeId, titreTypeIdValidator } from 'camino-common/src/static/titresTypes.js'
-import { AdministrationId, administrationIdValidator } from 'camino-common/src/static/administrations.js'
-import { ACTIVITES_STATUTS_IDS, ActivitesStatutId } from 'camino-common/src/static/activitesStatuts.js'
-import { CaminoDate, getCurrent } from 'camino-common/src/date.js'
-import { titreIdValidator } from 'camino-common/src/validators/titres.js'
-import { ActivitesTypesId } from 'camino-common/src/static/activitesTypes.js'
-import { SimplePromiseFn } from 'camino-common/src/typescript-tools.js'
-import { ActiviteDocumentTypeId } from 'camino-common/src/static/documentsTypes.js'
-import { sectionValidator } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
+import { EntrepriseId, entrepriseIdValidator } from 'camino-common/src/entreprise'
+import { TitreTypeId, titreTypeIdValidator } from 'camino-common/src/static/titresTypes'
+import { AdministrationId, administrationIdValidator } from 'camino-common/src/static/administrations'
+import { ACTIVITES_STATUTS_IDS, ActivitesStatutId } from 'camino-common/src/static/activitesStatuts'
+import { CaminoDate, getCurrent } from 'camino-common/src/date'
+import { titreIdValidator } from 'camino-common/src/validators/titres'
+import { ActivitesTypesId } from 'camino-common/src/static/activitesTypes'
+import { SimplePromiseFn } from 'camino-common/src/typescript-tools'
+import { ActiviteDocumentTypeId } from 'camino-common/src/static/documentsTypes'
+import { sectionValidator } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
 
 export const titreTypeIdByActiviteId = async (activiteId: ActiviteIdOrSlug, pool: Pool) => {
   const typeIds = await dbQueryAndValidate(getTitreTypeIdByActiviteId, { activiteId }, pool, titreTypeIdObjectValidator)
diff --git a/packages/api/src/api/rest/activites.ts b/packages/api/src/api/rest/activites.ts
index cb73050f5838fbb463d963440520de33b7976107..5be622bf213bfbecbef3966f731bec5bf80b3de2 100644
--- a/packages/api/src/api/rest/activites.ts
+++ b/packages/api/src/api/rest/activites.ts
@@ -1,7 +1,7 @@
-import { CaminoRequest, CustomResponse } from './express-type.js'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
+import { CaminoRequest, CustomResponse } from './express-type'
+import { HTTP_STATUS } from 'camino-common/src/http'
 import { Pool } from 'pg'
-import { Activite, activiteDocumentIdValidator, activiteEditionValidator, activiteIdOrSlugValidator, activiteIdValidator } from 'camino-common/src/activite.js'
+import { Activite, activiteDocumentIdValidator, activiteEditionValidator, activiteIdOrSlugValidator, activiteIdValidator } from 'camino-common/src/activite'
 import {
   Contenu,
   administrationsLocalesByActiviteId,
@@ -15,21 +15,21 @@ import {
   updateActiviteQuery,
   DbActivite,
   activiteDeleteQuery,
-} from './activites.queries.js'
-import { NewDownload } from './fichiers.js'
-import { DeepReadonly, SimplePromiseFn, isNonEmptyArray, isNullOrUndefined, memoize } from 'camino-common/src/typescript-tools.js'
-import { canEditActivite, isActiviteDeposable } from 'camino-common/src/permissions/activites.js'
-import { SectionWithValue } from 'camino-common/src/sections.js'
-import { Section, getSectionsWithValue } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { newActiviteDocumentId } from '../../database/models/_format/id-create.js'
-import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
-import { Unites } from 'camino-common/src/static/unites.js'
-import { User } from 'camino-common/src/roles.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { EntrepriseId } from 'camino-common/src/entreprise.js'
-import { getCurrent } from 'camino-common/src/date.js'
-import { createLargeObject } from '../../database/largeobjects.js'
+} from './activites.queries'
+import { NewDownload } from './fichiers'
+import { DeepReadonly, SimplePromiseFn, isNonEmptyArray, isNullOrUndefined, memoize } from 'camino-common/src/typescript-tools'
+import { canEditActivite, isActiviteDeposable } from 'camino-common/src/permissions/activites'
+import { SectionWithValue } from 'camino-common/src/sections'
+import { Section, getSectionsWithValue } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { newActiviteDocumentId } from '../../database/models/_format/id-create'
+import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts'
+import { Unites } from 'camino-common/src/static/unites'
+import { User } from 'camino-common/src/roles'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { EntrepriseId } from 'camino-common/src/entreprise'
+import { getCurrent } from 'camino-common/src/date'
+import { createLargeObject } from '../../database/largeobjects'
 
 const extractContenuFromSectionWithValue = (sections: DeepReadonly<Section[]>, sectionsWithValue: SectionWithValue[]): Contenu => {
   const contenu: Contenu = {}
diff --git a/packages/api/src/api/rest/administrations.queries.ts b/packages/api/src/api/rest/administrations.queries.ts
index cc71b3f922b7dbbc2c9b9b898155c77ec59e437b..456bc37d403d491d6e0918e6aff5f1f53ade8a1d 100644
--- a/packages/api/src/api/rest/administrations.queries.ts
+++ b/packages/api/src/api/rest/administrations.queries.ts
@@ -1,22 +1,22 @@
 /* eslint-disable no-restricted-syntax */
 import { Pool } from 'pg'
-import { DbQueryAccessError, Redefine, dbQueryAndValidate, effectDbQueryAndValidate } from '../../pg-database.js'
+import { DbQueryAccessError, Redefine, dbQueryAndValidate, effectDbQueryAndValidate } from '../../pg-database'
 import { sql } from '@pgtyped/runtime'
-import { AdministrationId, administrationIdValidator } from 'camino-common/src/static/administrations.js'
-import { AdministrationActiviteTypeEmail, administrationActiviteTypeEmailValidator } from 'camino-common/src/administrations.js'
+import { AdministrationId, administrationIdValidator } from 'camino-common/src/static/administrations'
+import { AdministrationActiviteTypeEmail, administrationActiviteTypeEmailValidator } from 'camino-common/src/administrations'
 import {
   IDeleteAdministrationActiviteTypeEmailDbQuery,
   IGetActiviteTypeEmailsByAdministrationIdDbQuery,
   IGetActiviteTypeEmailsByAdministrationIdsDbQuery,
   IGetUtilisateursByAdministrationIdDbQuery,
   IInsertAdministrationActiviteTypeEmailDbQuery,
-} from './administrations.queries.types.js'
-import { AdminUserNotNull, adminUserNotNullValidator } from 'camino-common/src/roles.js'
-import { ActivitesTypesId } from 'camino-common/src/static/activitesTypes.js'
-import { NonEmptyArray } from 'camino-common/src/typescript-tools.js'
+} from './administrations.queries.types'
+import { AdminUserNotNull, adminUserNotNullValidator } from 'camino-common/src/roles'
+import { ActivitesTypesId } from 'camino-common/src/static/activitesTypes'
+import { NonEmptyArray } from 'camino-common/src/typescript-tools'
 import { z } from 'zod'
-import { CaminoError } from 'camino-common/src/zod-tools.js'
-import { ZodUnparseable } from '../../tools/fp-tools.js'
+import { CaminoError } from 'camino-common/src/zod-tools'
+import { ZodUnparseable } from '../../tools/fp-tools'
 import { Effect, pipe } from 'effect'
 
 export const getUtilisateursByAdministrationId = async (pool: Pool, administrationId: AdministrationId): Promise<AdminUserNotNull[]> => {
diff --git a/packages/api/src/api/rest/administrations.test.integration.ts b/packages/api/src/api/rest/administrations.test.integration.ts
index fa7712483a7a295195d68e7f54770de8e6e0a7d4..7ce4d08dc5ac9055c0f4f2e5d5e135112e0caa21 100644
--- a/packages/api/src/api/rest/administrations.test.integration.ts
+++ b/packages/api/src/api/rest/administrations.test.integration.ts
@@ -1,12 +1,12 @@
-import { restCall, restNewPostCall, userGenerate } from '../../../tests/_utils/index.js'
-import { dbManager } from '../../../tests/db-manager.js'
+import { restCall, restNewPostCall, userGenerate } from '../../../tests/_utils/index'
+import { dbManager } from '../../../tests/db-manager'
 import { expect, test, describe, afterAll, beforeAll, vi } from 'vitest'
 import type { Pool } from 'pg'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { TestUser } from 'camino-common/src/tests-utils.js'
-import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
-import { AdministrationActiviteTypeEmail } from 'camino-common/src/administrations.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { TestUser } from 'camino-common/src/tests-utils'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
+import { AdministrationActiviteTypeEmail } from 'camino-common/src/administrations'
+import { toCaminoDate } from 'camino-common/src/date'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/api/rest/administrations.ts b/packages/api/src/api/rest/administrations.ts
index dab7dca3f790b170a80d176989c0c1b0374415a8..28b1f2d5793f7acdc80991cec4271bb7a156261d 100644
--- a/packages/api/src/api/rest/administrations.ts
+++ b/packages/api/src/api/rest/administrations.ts
@@ -1,17 +1,17 @@
 import { Request as JWTRequest } from 'express-jwt'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
+import { HTTP_STATUS } from 'camino-common/src/http'
 
-import { CustomResponse } from './express-type.js'
-import { AdminUserNotNull, User, UserNotNull } from 'camino-common/src/roles.js'
+import { CustomResponse } from './express-type'
+import { AdminUserNotNull, User, UserNotNull } from 'camino-common/src/roles'
 import { Pool } from 'pg'
-import { AdministrationId, administrationIdValidator } from 'camino-common/src/static/administrations.js'
-import { canReadAdministrations } from 'camino-common/src/permissions/administrations.js'
-import { deleteAdministrationActiviteTypeEmail, getActiviteTypeEmailsByAdministrationId, getUtilisateursByAdministrationId, insertAdministrationActiviteTypeEmail } from './administrations.queries.js'
-import { AdministrationActiviteTypeEmail } from 'camino-common/src/administrations.js'
-import { CaminoApiError } from '../../types.js'
-import { ZodUnparseable } from '../../tools/fp-tools.js'
-import { DeepReadonly } from 'camino-common/src/typescript-tools.js'
-import { DbQueryAccessError } from '../../pg-database.js'
+import { AdministrationId, administrationIdValidator } from 'camino-common/src/static/administrations'
+import { canReadAdministrations } from 'camino-common/src/permissions/administrations'
+import { deleteAdministrationActiviteTypeEmail, getActiviteTypeEmailsByAdministrationId, getUtilisateursByAdministrationId, insertAdministrationActiviteTypeEmail } from './administrations.queries'
+import { AdministrationActiviteTypeEmail } from 'camino-common/src/administrations'
+import { CaminoApiError } from '../../types'
+import { ZodUnparseable } from '../../tools/fp-tools'
+import { DeepReadonly } from 'camino-common/src/typescript-tools'
+import { DbQueryAccessError } from '../../pg-database'
 import { Effect, Match } from 'effect'
 
 export const getAdministrationUtilisateurs = (pool: Pool) => async (req: JWTRequest<User>, res: CustomResponse<AdminUserNotNull[]>) => {
diff --git a/packages/api/src/api/rest/communes.test.integration.ts b/packages/api/src/api/rest/communes.test.integration.ts
index 0885ea3157a51fd3c5c488653d074de992d6c880..fba2da0e954cb8f88d25419c5ac394500f51813b 100644
--- a/packages/api/src/api/rest/communes.test.integration.ts
+++ b/packages/api/src/api/rest/communes.test.integration.ts
@@ -1,10 +1,10 @@
-import { restCall } from '../../../tests/_utils/index.js'
-import { dbManager } from '../../../tests/db-manager.js'
+import { restCall } from '../../../tests/_utils/index'
+import { dbManager } from '../../../tests/db-manager'
 import { expect, test, describe, afterAll, beforeAll, vi } from 'vitest'
 import type { Pool } from 'pg'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { insertCommune } from '../../database/queries/communes.queries.js'
-import { toCommuneId } from 'camino-common/src/static/communes.js'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { insertCommune } from '../../database/queries/communes.queries'
+import { toCommuneId } from 'camino-common/src/static/communes'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/api/rest/communes.ts b/packages/api/src/api/rest/communes.ts
index bb769b8efc07f921bb617eaa15cf97424fc64c13..2286c30e6ff1af162d5d076cb166087c2c29e9f6 100644
--- a/packages/api/src/api/rest/communes.ts
+++ b/packages/api/src/api/rest/communes.ts
@@ -1,8 +1,8 @@
-import { Commune, communeIdValidator } from 'camino-common/src/static/communes.js'
+import { Commune, communeIdValidator } from 'camino-common/src/static/communes'
 import { Pool } from 'pg'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { CaminoRequest, CustomResponse } from './express-type.js'
-import { getCommunes as getCommunesQuery } from '../../database/queries/communes.queries.js'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { CaminoRequest, CustomResponse } from './express-type'
+import { getCommunes as getCommunesQuery } from '../../database/queries/communes.queries'
 import { z } from 'zod'
 
 export const getCommunes = (pool: Pool) => async (req: CaminoRequest, res: CustomResponse<Commune[]>) => {
diff --git a/packages/api/src/api/rest/demarches.queries.ts b/packages/api/src/api/rest/demarches.queries.ts
index 444e36b578a8e7efb111a4d4d7719d1d50b3fcbf..77464ddf4a4ccfaa26eb721ac512f41380442fce 100644
--- a/packages/api/src/api/rest/demarches.queries.ts
+++ b/packages/api/src/api/rest/demarches.queries.ts
@@ -1,26 +1,26 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { DemarcheId, DemarcheIdOrSlug } from 'camino-common/src/demarche.js'
-import { Redefine, dbQueryAndValidate } from '../../pg-database.js'
-import { IGetDemarcheByIdOrSlugDbQuery, IGetEtapesByDemarcheIdDbQuery } from './demarches.queries.types.js'
+import { DemarcheId, DemarcheIdOrSlug } from 'camino-common/src/demarche'
+import { Redefine, dbQueryAndValidate } from '../../pg-database'
+import { IGetDemarcheByIdOrSlugDbQuery, IGetEtapesByDemarcheIdDbQuery } from './demarches.queries.types'
 import { z } from 'zod'
-import { caminoDateValidator } from 'camino-common/src/date.js'
-import { communeValidator } from 'camino-common/src/static/communes.js'
-import { secteurMaritimeValidator } from 'camino-common/src/static/facades.js'
-import { substanceLegaleIdValidator } from 'camino-common/src/static/substancesLegales.js'
-import { etapeTypeIdValidator } from 'camino-common/src/static/etapesTypes.js'
-import { etapeBrouillonValidator, etapeIdValidator, etapeNoteValidator, etapeSlugValidator } from 'camino-common/src/etape.js'
-import { etapeStatutIdValidator } from 'camino-common/src/static/etapesStatuts.js'
-import { contenuValidator } from './activites.queries.js'
-import { sdomZoneIdValidator } from 'camino-common/src/static/sdom.js'
-import { foretIdValidator } from 'camino-common/src/static/forets.js'
+import { caminoDateValidator } from 'camino-common/src/date'
+import { communeValidator } from 'camino-common/src/static/communes'
+import { secteurMaritimeValidator } from 'camino-common/src/static/facades'
+import { substanceLegaleIdValidator } from 'camino-common/src/static/substancesLegales'
+import { etapeTypeIdValidator } from 'camino-common/src/static/etapesTypes'
+import { etapeBrouillonValidator, etapeIdValidator, etapeNoteValidator, etapeSlugValidator } from 'camino-common/src/etape'
+import { etapeStatutIdValidator } from 'camino-common/src/static/etapesStatuts'
+import { contenuValidator } from './activites.queries'
+import { sdomZoneIdValidator } from 'camino-common/src/static/sdom'
+import { foretIdValidator } from 'camino-common/src/static/forets'
 import { Pool } from 'pg'
-import { featureCollectionForagesValidator, featureCollectionPointsValidator, featureMultiPolygonValidator, multiPolygonValidator } from 'camino-common/src/perimetre.js'
-import { etapeHeritagePropsValidator } from 'camino-common/src/heritage.js'
-import { getDemarcheByIdOrSlugValidator as commonGetDemarcheByIdOrSlugValidator } from 'camino-common/src/titres.js'
-import { geoSystemeIdValidator } from 'camino-common/src/static/geoSystemes.js'
-import { entrepriseIdValidator } from 'camino-common/src/entreprise.js'
-import { km2Validator } from 'camino-common/src/number.js'
+import { featureCollectionForagesValidator, featureCollectionPointsValidator, featureMultiPolygonValidator, multiPolygonValidator } from 'camino-common/src/perimetre'
+import { etapeHeritagePropsValidator } from 'camino-common/src/heritage'
+import { getDemarcheByIdOrSlugValidator as commonGetDemarcheByIdOrSlugValidator } from 'camino-common/src/titres'
+import { geoSystemeIdValidator } from 'camino-common/src/static/geoSystemes'
+import { entrepriseIdValidator } from 'camino-common/src/entreprise'
+import { km2Validator } from 'camino-common/src/number'
 
 const getEtapesByDemarcheIdDbValidator = z.object({
   id: etapeIdValidator,
diff --git a/packages/api/src/api/rest/demarches.test.integration.ts b/packages/api/src/api/rest/demarches.test.integration.ts
index cf66b9a6a8b80acf6a0f3abbad0c0b700b4a563a..9bb6f7f6ea64471cd5ae70912448698ef58f7d0f 100644
--- a/packages/api/src/api/rest/demarches.test.integration.ts
+++ b/packages/api/src/api/rest/demarches.test.integration.ts
@@ -1,21 +1,21 @@
-import { restDownloadCall } from '../../../tests/_utils/index.js'
-import { dbManager } from '../../../tests/db-manager.js'
+import { restDownloadCall } from '../../../tests/_utils/index'
+import { dbManager } from '../../../tests/db-manager'
 import { expect, test, describe, afterAll, beforeAll, vi } from 'vitest'
 import type { Pool } from 'pg'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
-import { titreSlugValidator } from 'camino-common/src/validators/titres.js'
-import { newTitreId, newDemarcheId, newEtapeId } from '../../database/models/_format/id-create.js'
-import TitresDemarches from '../../database/models/titres-demarches.js'
-import TitresEtapes from '../../database/models/titres-etapes.js'
-import Titres from '../../database/models/titres.js'
-import { userSuper } from '../../database/user-super.js'
-import { entrepriseIdValidator } from 'camino-common/src/entreprise.js'
-import { entrepriseUpsert } from '../../database/queries/entreprises.js'
-import { FeatureMultiPolygon } from 'camino-common/src/perimetre.js'
-import { codePostalValidator } from 'camino-common/src/static/departement.js'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { toCaminoDate } from 'camino-common/src/date'
+import { titreSlugValidator } from 'camino-common/src/validators/titres'
+import { newTitreId, newDemarcheId, newEtapeId } from '../../database/models/_format/id-create'
+import TitresDemarches from '../../database/models/titres-demarches'
+import TitresEtapes from '../../database/models/titres-etapes'
+import Titres from '../../database/models/titres'
+import { userSuper } from '../../database/user-super'
+import { entrepriseIdValidator } from 'camino-common/src/entreprise'
+import { entrepriseUpsert } from '../../database/queries/entreprises'
+import { FeatureMultiPolygon } from 'camino-common/src/perimetre'
+import { codePostalValidator } from 'camino-common/src/static/departement'
 import crypto from 'crypto'
-import { km2Validator } from 'camino-common/src/number.js'
+import { km2Validator } from 'camino-common/src/number'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/api/rest/demarches.ts b/packages/api/src/api/rest/demarches.ts
index a45ec0e64fe4c29316a98b4b91e8cef583154b4d..b47195f391ccb6adf217d30d5885289ae496a6e5 100644
--- a/packages/api/src/api/rest/demarches.ts
+++ b/packages/api/src/api/rest/demarches.ts
@@ -1,12 +1,12 @@
 import { Pool } from 'pg'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { CaminoRequest, CustomResponse } from './express-type.js'
-import { demarcheIdOrSlugValidator } from 'camino-common/src/demarche.js'
-import { getDemarcheByIdOrSlug as getDemarcheByIdOrSlugDb } from './demarches.queries.js'
-import { GetDemarcheByIdOrSlugValidator, getDemarcheByIdOrSlugValidator } from 'camino-common/src/titres.js'
-import { getAdministrationsLocalesByTitreId, getTitreByIdOrSlug, getTitulairesAmodiatairesByTitreId } from './titres.queries.js'
-import { memoize } from 'camino-common/src/typescript-tools.js'
-import { canReadDemarche } from './permissions/demarches.js'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { CaminoRequest, CustomResponse } from './express-type'
+import { demarcheIdOrSlugValidator } from 'camino-common/src/demarche'
+import { getDemarcheByIdOrSlug as getDemarcheByIdOrSlugDb } from './demarches.queries'
+import { GetDemarcheByIdOrSlugValidator, getDemarcheByIdOrSlugValidator } from 'camino-common/src/titres'
+import { getAdministrationsLocalesByTitreId, getTitreByIdOrSlug, getTitulairesAmodiatairesByTitreId } from './titres.queries'
+import { memoize } from 'camino-common/src/typescript-tools'
+import { canReadDemarche } from './permissions/demarches'
 
 export const getDemarcheByIdOrSlug = (pool: Pool) => async (req: CaminoRequest, res: CustomResponse<GetDemarcheByIdOrSlugValidator>) => {
   try {
diff --git a/packages/api/src/api/rest/entreprises-etablissements.queries.ts b/packages/api/src/api/rest/entreprises-etablissements.queries.ts
index 3b7c140e61ffd172bd743f8f02fca298833552a6..8683f57b66039aab74a134c9b1f6939a4f3b0945 100644
--- a/packages/api/src/api/rest/entreprises-etablissements.queries.ts
+++ b/packages/api/src/api/rest/entreprises-etablissements.queries.ts
@@ -1,8 +1,8 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { Redefine, dbQueryAndValidate } from '../../pg-database.js'
-import { IGetEntrepriseEtablissementsDbQuery } from './entreprises-etablissements.queries.types.js'
-import { EntrepriseId, entrepriseEtablissementValidator } from 'camino-common/src/entreprise.js'
+import { Redefine, dbQueryAndValidate } from '../../pg-database'
+import { IGetEntrepriseEtablissementsDbQuery } from './entreprises-etablissements.queries.types'
+import { EntrepriseId, entrepriseEtablissementValidator } from 'camino-common/src/entreprise'
 import { Pool } from 'pg'
 import { z } from 'zod'
 
diff --git a/packages/api/src/api/rest/entreprises.queries.ts b/packages/api/src/api/rest/entreprises.queries.ts
index 668dc5aa36295783bd4baf50002d6b64b627470f..b7a7162ed6aa25da6e1c541758bc2b40aeb776fd 100644
--- a/packages/api/src/api/rest/entreprises.queries.ts
+++ b/packages/api/src/api/rest/entreprises.queries.ts
@@ -1,6 +1,6 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { Redefine, dbQueryAndValidate } from '../../pg-database.js'
+import { Redefine, dbQueryAndValidate } from '../../pg-database'
 import {
   ICheckEntreprisesExistQueryQuery,
   IDeleteEntrepriseDocumentQueryQuery,
@@ -10,7 +10,7 @@ import {
   IGetEntreprisesDbQuery,
   IGetLargeobjectIdByEntrepriseDocumentIdInternalQuery,
   IInsertEntrepriseDocumentInternalQuery,
-} from './entreprises.queries.types.js'
+} from './entreprises.queries.types'
 import {
   EntrepriseDocument,
   EntrepriseDocumentId,
@@ -19,13 +19,13 @@ import {
   entrepriseDocumentValidator,
   entrepriseIdValidator,
   entrepriseValidator,
-} from 'camino-common/src/entreprise.js'
-import { EntrepriseDocumentTypeId } from 'camino-common/src/static/documentsTypes.js'
-import { CaminoDate } from 'camino-common/src/date.js'
-import { DeepReadonly, NonEmptyArray, isNonEmptyArray, onlyUnique } from 'camino-common/src/typescript-tools.js'
+} from 'camino-common/src/entreprise'
+import { EntrepriseDocumentTypeId } from 'camino-common/src/static/documentsTypes'
+import { CaminoDate } from 'camino-common/src/date'
+import { DeepReadonly, NonEmptyArray, isNonEmptyArray, onlyUnique } from 'camino-common/src/typescript-tools'
 import { Pool } from 'pg'
-import { canSeeEntrepriseDocuments } from 'camino-common/src/permissions/entreprises.js'
-import { roleValidator, User } from 'camino-common/src/roles.js'
+import { canSeeEntrepriseDocuments } from 'camino-common/src/permissions/entreprises'
+import { roleValidator, User } from 'camino-common/src/roles'
 import { z } from 'zod'
 
 const dummy = ['dummy'] as const
diff --git a/packages/api/src/api/rest/entreprises.test.integration.ts b/packages/api/src/api/rest/entreprises.test.integration.ts
index 355d2099955d033590fdacb1c16f00fee570bf48..ca04e2cefac088968fb50dafb669f9d5b6e62333 100644
--- a/packages/api/src/api/rest/entreprises.test.integration.ts
+++ b/packages/api/src/api/rest/entreprises.test.integration.ts
@@ -1,25 +1,25 @@
-import { entrepriseDocumentIdValidator, EntrepriseDocumentInput, newEntrepriseId, Siren, sirenValidator } from 'camino-common/src/entreprise.js'
-import { dbManager } from '../../../tests/db-manager.js'
-import { restCall, restDeleteCall, restPostCall, restPutCall } from '../../../tests/_utils/index.js'
-import { entrepriseUpsert } from '../../database/queries/entreprises.js'
+import { entrepriseDocumentIdValidator, EntrepriseDocumentInput, newEntrepriseId, Siren, sirenValidator } from 'camino-common/src/entreprise'
+import { dbManager } from '../../../tests/db-manager'
+import { restCall, restDeleteCall, restPostCall, restPutCall } from '../../../tests/_utils/index'
+import { entrepriseUpsert } from '../../database/queries/entreprises'
 import { afterAll, beforeAll, describe, test, expect, vi, beforeEach } from 'vitest'
-import { userSuper } from '../../database/user-super.js'
-import { testBlankUser } from 'camino-common/src/tests-utils.js'
+import { userSuper } from '../../database/user-super'
+import { testBlankUser } from 'camino-common/src/tests-utils'
 import { tempDocumentNameValidator } from 'camino-common/src/document'
-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'
+import { entreprise, entrepriseAndEtablissements } from '../../../tests/__mocks__/fetch-insee-api'
 import type { Pool } from 'pg'
-import { titreCreate } from '../../database/queries/titres.js'
-import { titreDemarcheCreate } from '../../database/queries/titres-demarches.js'
-import { titreEtapeCreate } from '../../database/queries/titres-etapes.js'
-import { toCaminoAnnee, toCaminoDate } from 'camino-common/src/date.js'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
+import { titreCreate } from '../../database/queries/titres'
+import { titreDemarcheCreate } from '../../database/queries/titres-demarches'
+import { titreEtapeCreate } from '../../database/queries/titres-etapes'
+import { toCaminoAnnee, toCaminoDate } from 'camino-common/src/date'
+import { HTTP_STATUS } from 'camino-common/src/http'
 import { copyFileSync, mkdirSync } from 'node:fs'
 import { idGenerate } from '../../database/models/_format/id-create'
-import { insertTitreEtapeEntrepriseDocument } from '../../database/queries/titres-etapes.queries.js'
-import { titreSlugValidator } from 'camino-common/src/validators/titres.js'
+import { insertTitreEtapeEntrepriseDocument } from '../../database/queries/titres-etapes.queries'
+import { titreSlugValidator } from 'camino-common/src/validators/titres'
 import type { Knex } from 'knex'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 console.info = vi.fn()
 console.error = vi.fn()
 vi.mock('../../tools/api-insee/fetch', () => ({
diff --git a/packages/api/src/api/rest/entreprises.test.ts b/packages/api/src/api/rest/entreprises.test.ts
index 0c9dadb547f78c0eeeca27a5ec8f05854a2a95b7..c0ab2ce93447f04e09da9002ef53b8e4b265e991 100644
--- a/packages/api/src/api/rest/entreprises.test.ts
+++ b/packages/api/src/api/rest/entreprises.test.ts
@@ -1,9 +1,9 @@
-import { bodyBuilder, responseExtractor } from './entreprises.js'
-import Titres from '../../database/models/titres.js'
+import { bodyBuilder, responseExtractor } from './entreprises'
+import Titres from '../../database/models/titres'
 import { describe, expect, test } from 'vitest'
-import { newEntrepriseId } from 'camino-common/src/entreprise.js'
-import { toCommuneId } from 'camino-common/src/static/communes.js'
-import { newTitreId } from '../../database/models/_format/id-create.js'
+import { newEntrepriseId } from 'camino-common/src/entreprise'
+import { toCommuneId } from 'camino-common/src/static/communes'
+import { newTitreId } from '../../database/models/_format/id-create'
 
 const entrepriseId = newEntrepriseId('entrepriseId')
 const entreprise2Id = newEntrepriseId('entrepriseId2')
diff --git a/packages/api/src/api/rest/entreprises.ts b/packages/api/src/api/rest/entreprises.ts
index 52cea1aab941d42db0180409884715a0f2c7627e..2745ed5097e589166bdf69584505145c3ac966e4 100644
--- a/packages/api/src/api/rest/entreprises.ts
+++ b/packages/api/src/api/rest/entreprises.ts
@@ -1,8 +1,8 @@
 import { Request as JWTRequest } from 'express-jwt'
-import { fiscaliteVisible } from 'camino-common/src/fiscalite.js'
-import { Fiscalite, FiscaliteFrance, FiscaliteGuyane } from 'camino-common/src/validators/fiscalite.js'
+import { fiscaliteVisible } from 'camino-common/src/fiscalite'
+import { Fiscalite, FiscaliteFrance, FiscaliteGuyane } from 'camino-common/src/validators/fiscalite'
 import { ICommune, IContenuValeur, IEntreprise } from '../../types'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
+import { HTTP_STATUS } from 'camino-common/src/http'
 
 import {
   apiOpenfiscaCalculate,
@@ -12,18 +12,18 @@ import {
   redevanceDepartementale,
   substanceFiscaleToInput,
   openfiscaSubstanceFiscaleUnite,
-} from '../../tools/api-openfisca/index.js'
-import { titresGet } from '../../database/queries/titres.js'
-import { titresActivitesGet } from '../../database/queries/titres-activites.js'
-import { entrepriseGet, entrepriseUpsert } 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 { Departements, toDepartementId } from 'camino-common/src/static/departement.js'
-import { DeepReadonly, isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { Regions } from 'camino-common/src/static/region.js'
-import { anneePrecedente, caminoAnneeToNumber, isAnnee } from 'camino-common/src/date.js'
+} from '../../tools/api-openfisca/index'
+import { titresGet } from '../../database/queries/titres'
+import { titresActivitesGet } from '../../database/queries/titres-activites'
+import { entrepriseGet, entrepriseUpsert } from '../../database/queries/entreprises'
+import TitresActivites from '../../database/models/titres-activites'
+import Titres from '../../database/models/titres'
+import { CustomResponse } from './express-type'
+import { SubstanceFiscale, substancesFiscalesBySubstanceLegale } from 'camino-common/src/static/substancesFiscales'
+import { Departements, toDepartementId } from 'camino-common/src/static/departement'
+import { DeepReadonly, isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { Regions } from 'camino-common/src/static/region'
+import { anneePrecedente, caminoAnneeToNumber, isAnnee } from 'camino-common/src/date'
 import {
   entrepriseIdValidator,
   entrepriseModificationValidator,
@@ -37,11 +37,11 @@ import {
   Entreprise,
   entrepriseValidator,
   entrepriseTypeValidator,
-} from 'camino-common/src/entreprise.js'
-import { isSuper, User } from 'camino-common/src/roles.js'
-import { canCreateEntreprise, canEditEntreprise, canSeeEntrepriseDocuments } from 'camino-common/src/permissions/entreprises.js'
-import { emailCheck } from '../../tools/email-check.js'
-import { apiInseeEntrepriseAndEtablissementsGet } from '../../tools/api-insee/index.js'
+} from 'camino-common/src/entreprise'
+import { isSuper, User } from 'camino-common/src/roles'
+import { canCreateEntreprise, canEditEntreprise, canSeeEntrepriseDocuments } from 'camino-common/src/permissions/entreprises'
+import { emailCheck } from '../../tools/email-check'
+import { apiInseeEntrepriseAndEtablissementsGet } from '../../tools/api-insee/index'
 import { Pool } from 'pg'
 import {
   deleteEntrepriseDocument as deleteEntrepriseDocumentQuery,
@@ -50,15 +50,15 @@ import {
   getEntreprise as getEntrepriseQuery,
   getLargeobjectIdByEntrepriseDocumentId,
   insertEntrepriseDocument,
-} from './entreprises.queries.js'
-import { newEnterpriseDocumentId } from '../../database/models/_format/id-create.js'
-import { isGuyane } from 'camino-common/src/static/pays.js'
+} from './entreprises.queries'
+import { newEnterpriseDocumentId } from '../../database/models/_format/id-create'
+import { isGuyane } from 'camino-common/src/static/pays'
 import { NewDownload } from './fichiers'
 import Decimal from 'decimal.js'
 
-import { createLargeObject } from '../../database/largeobjects.js'
+import { createLargeObject } from '../../database/largeobjects'
 import { z } from 'zod'
-import { getEntrepriseEtablissements } from './entreprises-etablissements.queries.js'
+import { getEntrepriseEtablissements } from './entreprises-etablissements.queries'
 
 const conversion = (substanceFiscale: SubstanceFiscale, quantite: IContenuValeur): Decimal => {
   if (typeof quantite !== 'number') {
diff --git a/packages/api/src/api/rest/etape-creer.test.integration.ts b/packages/api/src/api/rest/etape-creer.test.integration.ts
index 47bef5bcf99af4d224b5fb205c38261fe4af67b7..6faabc5710a9b4a07299b8b1e2abc59942d45857 100644
--- a/packages/api/src/api/rest/etape-creer.test.integration.ts
+++ b/packages/api/src/api/rest/etape-creer.test.integration.ts
@@ -1,18 +1,18 @@
-import { dbManager } from '../../../tests/db-manager.js'
-import { restPostCall } from '../../../tests/_utils/index.js'
-import { titreDemarcheCreate } from '../../database/queries/titres-demarches.js'
-import { titreCreate } from '../../database/queries/titres.js'
-import Titres from '../../database/models/titres.js'
-import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
+import { dbManager } from '../../../tests/db-manager'
+import { restPostCall } from '../../../tests/_utils/index'
+import { titreDemarcheCreate } from '../../database/queries/titres-demarches'
+import { titreCreate } from '../../database/queries/titres'
+import Titres from '../../database/models/titres'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
 import { userSuper } from '../../database/user-super'
 
 import { afterAll, beforeEach, beforeAll, describe, test, expect, vi } from 'vitest'
 import type { Pool } from 'pg'
-import { demarcheIdValidator } from 'camino-common/src/demarche.js'
-import { RestEtapeCreation, defaultHeritageProps } from 'camino-common/src/etape-form.js'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
-import { entrepriseIdValidator } from 'camino-common/src/entreprise.js'
+import { demarcheIdValidator } from 'camino-common/src/demarche'
+import { RestEtapeCreation, defaultHeritageProps } from 'camino-common/src/etape-form'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { toCaminoDate } from 'camino-common/src/date'
+import { entrepriseIdValidator } from 'camino-common/src/entreprise'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/api/rest/etape-modifier.test.integration.ts b/packages/api/src/api/rest/etape-modifier.test.integration.ts
index c3d3e4e291bc39c3314c392221ef47ecd4cbee90..0ea32f546d9834423ca167a4d2e4fe8acd8f26e5 100644
--- a/packages/api/src/api/rest/etape-modifier.test.integration.ts
+++ b/packages/api/src/api/rest/etape-modifier.test.integration.ts
@@ -1,28 +1,28 @@
-import { dbManager } from '../../../tests/db-manager.js'
-import { restPutCall, restCall, restPostCall } from '../../../tests/_utils/index.js'
-import { titreDemarcheCreate } from '../../database/queries/titres-demarches.js'
-import { titreCreate } from '../../database/queries/titres.js'
-import { titreEtapeCreate } from '../../database/queries/titres-etapes.js'
-import Titres from '../../database/models/titres.js'
-import { userSuper } from '../../database/user-super.js'
-import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
-import { CaminoDate, caminoDateValidator, toCaminoDate } from 'camino-common/src/date.js'
+import { dbManager } from '../../../tests/db-manager'
+import { restPutCall, restCall, restPostCall } from '../../../tests/_utils/index'
+import { titreDemarcheCreate } from '../../database/queries/titres-demarches'
+import { titreCreate } from '../../database/queries/titres'
+import { titreEtapeCreate } from '../../database/queries/titres-etapes'
+import Titres from '../../database/models/titres'
+import { userSuper } from '../../database/user-super'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
+import { CaminoDate, caminoDateValidator, toCaminoDate } from 'camino-common/src/date'
 
 import { afterAll, beforeEach, beforeAll, describe, test, expect, vi } from 'vitest'
 import type { Pool } from 'pg'
-import { ETAPE_HERITAGE_PROPS, EtapeHeritageProps } from 'camino-common/src/heritage.js'
-import { EtapeTypeId, canBeBrouillon } from 'camino-common/src/static/etapesTypes.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
-import { idGenerate } from '../../database/models/_format/id-create.js'
+import { ETAPE_HERITAGE_PROPS, EtapeHeritageProps } from 'camino-common/src/heritage'
+import { EtapeTypeId, canBeBrouillon } from 'camino-common/src/static/etapesTypes'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
+import { idGenerate } from '../../database/models/_format/id-create'
 import { copyFileSync, mkdirSync } from 'fs'
-import { TempEtapeDocument } from 'camino-common/src/etape.js'
-import { tempDocumentNameValidator } from 'camino-common/src/document.js'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
+import { TempEtapeDocument } from 'camino-common/src/etape'
+import { tempDocumentNameValidator } from 'camino-common/src/document'
+import { HTTP_STATUS } from 'camino-common/src/http'
 import { Knex } from 'knex'
-import { testDocumentCreateTemp } from '../../../tests/_utils/administrations-permissions.js'
-import { RestEtapeCreation, RestEtapeModification } from 'camino-common/src/etape-form.js'
-import { EntrepriseId } from 'camino-common/src/entreprise.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
+import { testDocumentCreateTemp } from '../../../tests/_utils/administrations-permissions'
+import { RestEtapeCreation, RestEtapeModification } from 'camino-common/src/etape-form'
+import { EntrepriseId } from 'camino-common/src/entreprise'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
 
 vi.mock('../../tools/dir-create', () => ({
   __esModule: true,
diff --git a/packages/api/src/api/rest/etapes.queries.ts b/packages/api/src/api/rest/etapes.queries.ts
index 18d72e778c1dca65a4ea69be402dcd097505b1a3..0bdc538c7954c9d8f34035b1737dff41f0ef3318 100644
--- a/packages/api/src/api/rest/etapes.queries.ts
+++ b/packages/api/src/api/rest/etapes.queries.ts
@@ -1,9 +1,9 @@
 /* eslint-disable no-restricted-syntax */
-import { EtapeDocumentId, EtapeId, EtapeIdOrSlug, etapeBrouillonValidator, etapeIdValidator, etapeSlugValidator } from 'camino-common/src/etape.js'
-import { EtapeTypeId, etapeTypeIdValidator } from 'camino-common/src/static/etapesTypes.js'
+import { EtapeDocumentId, EtapeId, EtapeIdOrSlug, etapeBrouillonValidator, etapeIdValidator, etapeSlugValidator } from 'camino-common/src/etape'
+import { EtapeTypeId, etapeTypeIdValidator } from 'camino-common/src/static/etapesTypes'
 import { Pool } from 'pg'
 import { z } from 'zod'
-import { Redefine, dbQueryAndValidate } from '../../pg-database.js'
+import { Redefine, dbQueryAndValidate } from '../../pg-database'
 import { sql } from '@pgtyped/runtime'
 import {
   IGetAdministrationsLocalesByEtapeIdQuery,
@@ -12,21 +12,21 @@ import {
   IGetEtapeDataForEditionDbQuery,
   IGetLargeobjectIdByEtapeDocumentIdInternalQuery,
   IGetTitulairesAmodiatairesTitreEtapeQuery,
-} from './etapes.queries.types.js'
-import { DemarcheId, demarcheIdValidator } from 'camino-common/src/demarche.js'
-import { sdomZoneIdValidator } from 'camino-common/src/static/sdom.js'
-import { multiPolygonValidator } from 'camino-common/src/perimetre.js'
-import { demarcheTypeIdValidator } from 'camino-common/src/static/demarchesTypes.js'
-import { titreTypeIdValidator } from 'camino-common/src/static/titresTypes.js'
-import { AdministrationId, administrationIdValidator } from 'camino-common/src/static/administrations.js'
-import { EntrepriseId, entrepriseIdValidator } from 'camino-common/src/entreprise.js'
-import { User } from 'camino-common/src/roles.js'
-import { LargeObjectId, largeObjectIdValidator } from '../../database/largeobjects.js'
-import { canReadDocument } from './permissions/documents.js'
-import { isNotNullNorUndefinedNorEmpty, memoize } from 'camino-common/src/typescript-tools.js'
-import { etapeStatutIdValidator } from 'camino-common/src/static/etapesStatuts.js'
-import { caminoDateValidator } from 'camino-common/src/date.js'
-import { contenuValidator } from './activites.queries.js'
+} from './etapes.queries.types'
+import { DemarcheId, demarcheIdValidator } from 'camino-common/src/demarche'
+import { sdomZoneIdValidator } from 'camino-common/src/static/sdom'
+import { multiPolygonValidator } from 'camino-common/src/perimetre'
+import { demarcheTypeIdValidator } from 'camino-common/src/static/demarchesTypes'
+import { titreTypeIdValidator } from 'camino-common/src/static/titresTypes'
+import { AdministrationId, administrationIdValidator } from 'camino-common/src/static/administrations'
+import { EntrepriseId, entrepriseIdValidator } from 'camino-common/src/entreprise'
+import { User } from 'camino-common/src/roles'
+import { LargeObjectId, largeObjectIdValidator } from '../../database/largeobjects'
+import { canReadDocument } from './permissions/documents'
+import { isNotNullNorUndefinedNorEmpty, memoize } from 'camino-common/src/typescript-tools'
+import { etapeStatutIdValidator } from 'camino-common/src/static/etapesStatuts'
+import { caminoDateValidator } from 'camino-common/src/date'
+import { contenuValidator } from './activites.queries'
 
 const getEtapeByIdValidator = z.object({
   etape_id: etapeIdValidator,
diff --git a/packages/api/src/api/rest/etapes.test.integration.ts b/packages/api/src/api/rest/etapes.test.integration.ts
index a1d82c1ab9c008838d1aac4476539b310f30c633..48e34f4f13d0a035ee284b0ce8932a1822e161d2 100644
--- a/packages/api/src/api/rest/etapes.test.integration.ts
+++ b/packages/api/src/api/rest/etapes.test.integration.ts
@@ -1,23 +1,23 @@
-import { dbManager } from '../../../tests/db-manager.js'
-import { titreCreate } from '../../database/queries/titres.js'
-import { titreDemarcheCreate } from '../../database/queries/titres-demarches.js'
-import { userSuper } from '../../database/user-super.js'
-import { restCall, restDeleteCall } from '../../../tests/_utils/index.js'
-import { caminoDateValidator, getCurrent, toCaminoDate } from 'camino-common/src/date.js'
+import { dbManager } from '../../../tests/db-manager'
+import { titreCreate } from '../../database/queries/titres'
+import { titreDemarcheCreate } from '../../database/queries/titres-demarches'
+import { userSuper } from '../../database/user-super'
+import { restCall, restDeleteCall } from '../../../tests/_utils/index'
+import { caminoDateValidator, getCurrent, toCaminoDate } from 'camino-common/src/date'
 import { afterAll, beforeAll, test, expect, describe, vi } from 'vitest'
 import type { Pool } from 'pg'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { Role, isAdministrationRole } from 'camino-common/src/roles.js'
-import { titreEtapeCreate, titreEtapeUpdate } from '../../database/queries/titres-etapes.js'
-import { entrepriseIdValidator } from 'camino-common/src/entreprise.js'
-import { TestUser, testBlankUser } from 'camino-common/src/tests-utils.js'
-import { entrepriseUpsert } from '../../database/queries/entreprises.js'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { Role, isAdministrationRole } from 'camino-common/src/roles'
+import { titreEtapeCreate, titreEtapeUpdate } from '../../database/queries/titres-etapes'
+import { entrepriseIdValidator } from 'camino-common/src/entreprise'
+import { TestUser, testBlankUser } from 'camino-common/src/tests-utils'
+import { entrepriseUpsert } from '../../database/queries/entreprises'
 import { Knex } from 'knex'
-import { ETAPE_IS_BROUILLON, etapeAvisIdValidator } from 'camino-common/src/etape.js'
-import { insertEtapeAvisWithLargeObjectId } from '../../database/queries/titres-etapes.queries.js'
-import { largeObjectIdValidator } from '../../database/largeobjects.js'
-import { AvisVisibilityIds } from 'camino-common/src/static/avisTypes.js'
-import { tempDocumentNameValidator } from 'camino-common/src/document.js'
+import { ETAPE_IS_BROUILLON, etapeAvisIdValidator } from 'camino-common/src/etape'
+import { insertEtapeAvisWithLargeObjectId } from '../../database/queries/titres-etapes.queries'
+import { largeObjectIdValidator } from '../../database/largeobjects'
+import { AvisVisibilityIds } from 'camino-common/src/static/avisTypes'
+import { tempDocumentNameValidator } from 'camino-common/src/document'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/api/rest/etapes.test.ts b/packages/api/src/api/rest/etapes.test.ts
index 22e55c524d8c54fbb611fbd99871b71c649fecd7..d390f60fad8d918c3cb4a9c8c520fbb6abe1511a 100644
--- a/packages/api/src/api/rest/etapes.test.ts
+++ b/packages/api/src/api/rest/etapes.test.ts
@@ -1,4 +1,4 @@
-import { arePointsOnPerimeter } from './etapes.js'
+import { arePointsOnPerimeter } from './etapes'
 import { expect, test } from 'vitest'
 
 import { FeatureMultiPolygon } from 'camino-common/src/perimetre'
diff --git a/packages/api/src/api/rest/etapes.ts b/packages/api/src/api/rest/etapes.ts
index b1e7bda35f35c725230616df3a20e2a3ced10d75..384b84474f54b828a41f87b44955629f5db3ba3f 100644
--- a/packages/api/src/api/rest/etapes.ts
+++ b/packages/api/src/api/rest/etapes.ts
@@ -1,5 +1,5 @@
 import { z } from 'zod'
-import { CaminoRequest, CustomResponse } from './express-type.js'
+import { CaminoRequest, CustomResponse } from './express-type'
 import {
   EtapeTypeEtapeStatutWithMainStep,
   etapeIdValidator,
@@ -21,21 +21,21 @@ import {
   EtapeSlug,
   ETAPE_IS_BROUILLON,
   getStatutId,
-} from 'camino-common/src/etape.js'
-import { DemarcheId, demarcheIdValidator } from 'camino-common/src/demarche.js'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { CaminoDate, caminoDateValidator, getCurrent } from 'camino-common/src/date.js'
-import { titreDemarcheGet } from '../../database/queries/titres-demarches.js'
-import { userSuper } from '../../database/user-super.js'
-import { titreEtapeGet, titreEtapeUpdate, titreEtapeUpsert } from '../../database/queries/titres-etapes.js'
-import { demarcheDefinitionFind } from '../../business/rules-demarches/definitions.js'
-import { User, isBureauDEtudes, isEntreprise } from 'camino-common/src/roles.js'
-import { canCreateEtape, canDeposeEtape, canDeleteEtape, canEditEtape, canEditDates, canEditDuree } from 'camino-common/src/permissions/titres-etapes.js'
-import { TitresStatutIds } from 'camino-common/src/static/titresStatuts.js'
-import { canBeBrouillon } from 'camino-common/src/static/etapesTypes.js'
-import { DeepReadonly, SimplePromiseFn, isNonEmptyArray, isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefined, memoize, onlyUnique } from 'camino-common/src/typescript-tools.js'
+} from 'camino-common/src/etape'
+import { DemarcheId, demarcheIdValidator } from 'camino-common/src/demarche'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { CaminoDate, caminoDateValidator, getCurrent } from 'camino-common/src/date'
+import { titreDemarcheGet } from '../../database/queries/titres-demarches'
+import { userSuper } from '../../database/user-super'
+import { titreEtapeGet, titreEtapeUpdate, titreEtapeUpsert } from '../../database/queries/titres-etapes'
+import { demarcheDefinitionFind } from '../../business/rules-demarches/definitions'
+import { User, isBureauDEtudes, isEntreprise } from 'camino-common/src/roles'
+import { canCreateEtape, canDeposeEtape, canDeleteEtape, canEditEtape, canEditDates, canEditDuree } from 'camino-common/src/permissions/titres-etapes'
+import { TitresStatutIds } from 'camino-common/src/static/titresStatuts'
+import { canBeBrouillon } from 'camino-common/src/static/etapesTypes'
+import { DeepReadonly, SimplePromiseFn, isNonEmptyArray, isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefined, memoize, onlyUnique } from 'camino-common/src/typescript-tools'
 import { Pool } from 'pg'
-import { EntrepriseDocument, EntrepriseDocumentId, EntrepriseId, EtapeEntrepriseDocument } from 'camino-common/src/entreprise.js'
+import { EntrepriseDocument, EntrepriseDocumentId, EntrepriseId, EtapeEntrepriseDocument } from 'camino-common/src/entreprise'
 import {
   deleteTitreEtapeEntrepriseDocument,
   getDocumentsByEtapeId,
@@ -46,31 +46,31 @@ import {
   insertTitreEtapeEntrepriseDocument,
   updateEtapeAvis,
   updateEtapeDocuments,
-} from '../../database/queries/titres-etapes.queries.js'
-import { GetEtapeDataForEdition, getEtapeByDemarcheIdAndEtapeTypeId, getEtapeDataForEdition } from './etapes.queries.js'
-import { SDOMZoneId } from 'camino-common/src/static/sdom.js'
-import { objectClone } from '../../tools/index.js'
-import { titreEtapeAdministrationsEmailsSend, titreEtapeUtilisateursEmailsSend } from '../graphql/resolvers/_titre-etape-email.js'
-import { GetGeojsonInformation, convertPoints, getGeojsonInformation } from './perimetre.queries.js'
-import { titreEtapeUpdateTask } from '../../business/titre-etape-update.js'
-import { valeurFind } from 'camino-common/src/sections.js'
-import { getElementWithValue, getSections, getSectionsWithValue } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { titreDemarcheUpdatedEtatValidate, getPossiblesEtapesTypes } from '../../business/validations/titre-demarche-etat-validate.js'
-import { FlattenEtape, GraphqlEtape, RestEtapeCreation, RestEtapeModification, restEtapeCreationValidator, restEtapeModificationValidator } from 'camino-common/src/etape-form.js'
-import { iTitreEtapeToFlattenEtape } from '../_format/titres-etapes.js'
-import { CommuneId } from 'camino-common/src/static/communes.js'
-import { titreEtapeUpdationValidate } from '../../business/validations/titre-etape-updation-validate.js'
-import { IHeritageContenu, IHeritageProps, ITitreDemarche, ITitreEtape } from '../../types.js'
-import { checkEntreprisesExist, getEntrepriseDocuments } from './entreprises.queries.js'
-import { ETAPE_HERITAGE_PROPS } from 'camino-common/src/heritage.js'
-import { titreEtapeHeritageBuild } from '../graphql/resolvers/_titre-etape.js'
-import { KM2 } from 'camino-common/src/number.js'
-import { FeatureMultiPolygon, FeatureCollectionPoints } from 'camino-common/src/perimetre.js'
-import { canHaveForages } from 'camino-common/src/permissions/titres.js'
-import { SecteursMaritimes, getSecteurMaritime } from 'camino-common/src/static/facades.js'
-import { callAndExit } from '../../tools/fp-tools.js'
+} from '../../database/queries/titres-etapes.queries'
+import { GetEtapeDataForEdition, getEtapeByDemarcheIdAndEtapeTypeId, getEtapeDataForEdition } from './etapes.queries'
+import { SDOMZoneId } from 'camino-common/src/static/sdom'
+import { objectClone } from '../../tools/index'
+import { titreEtapeAdministrationsEmailsSend, titreEtapeUtilisateursEmailsSend } from '../graphql/resolvers/_titre-etape-email'
+import { GetGeojsonInformation, convertPoints, getGeojsonInformation } from './perimetre.queries'
+import { titreEtapeUpdateTask } from '../../business/titre-etape-update'
+import { valeurFind } from 'camino-common/src/sections'
+import { getElementWithValue, getSections, getSectionsWithValue } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { titreDemarcheUpdatedEtatValidate, getPossiblesEtapesTypes } from '../../business/validations/titre-demarche-etat-validate'
+import { FlattenEtape, GraphqlEtape, RestEtapeCreation, RestEtapeModification, restEtapeCreationValidator, restEtapeModificationValidator } from 'camino-common/src/etape-form'
+import { iTitreEtapeToFlattenEtape } from '../_format/titres-etapes'
+import { CommuneId } from 'camino-common/src/static/communes'
+import { titreEtapeUpdationValidate } from '../../business/validations/titre-etape-updation-validate'
+import { IHeritageContenu, IHeritageProps, ITitreDemarche, ITitreEtape } from '../../types'
+import { checkEntreprisesExist, getEntrepriseDocuments } from './entreprises.queries'
+import { ETAPE_HERITAGE_PROPS } from 'camino-common/src/heritage'
+import { titreEtapeHeritageBuild } from '../graphql/resolvers/_titre-etape'
+import { KM2 } from 'camino-common/src/number'
+import { FeatureMultiPolygon, FeatureCollectionPoints } from 'camino-common/src/perimetre'
+import { canHaveForages } from 'camino-common/src/permissions/titres'
+import { SecteursMaritimes, getSecteurMaritime } from 'camino-common/src/static/facades'
+import { callAndExit } from '../../tools/fp-tools'
 
 export const getEtapeEntrepriseDocuments =
   (pool: Pool) =>
diff --git a/packages/api/src/api/rest/fichiers.ts b/packages/api/src/api/rest/fichiers.ts
index 72cc63066ec5675df615dc1fb39c655cec405086..38773dcf013a7bfec475943dff03d4da54379cdc 100644
--- a/packages/api/src/api/rest/fichiers.ts
+++ b/packages/api/src/api/rest/fichiers.ts
@@ -1,18 +1,18 @@
 import JSZip from 'jszip'
 import { createWriteStream } from 'node:fs'
 import { User } from 'camino-common/src/roles'
-import { DOWNLOAD_FORMATS, contentTypes } from 'camino-common/src/rest.js'
+import { DOWNLOAD_FORMATS, contentTypes } from 'camino-common/src/rest'
 import { Pool } from 'pg'
-import { EtapeId, etapeAvisIdValidator, etapeDocumentIdValidator } from 'camino-common/src/etape.js'
-import { getEntrepriseDocumentLargeObjectIdsByEtapeId, getEtapeDocumentLargeObjectIdsByEtapeId, getLargeobjectIdByEtapeAvisId } from '../../database/queries/titres-etapes.queries.js'
+import { EtapeId, etapeAvisIdValidator, etapeDocumentIdValidator } from 'camino-common/src/etape'
+import { getEntrepriseDocumentLargeObjectIdsByEtapeId, getEtapeDocumentLargeObjectIdsByEtapeId, getLargeobjectIdByEtapeAvisId } from '../../database/queries/titres-etapes.queries'
 import { LargeObjectManager } from 'pg-large-object'
 
 import express from 'express'
 import { join } from 'node:path'
-import { DocumentsTypes } from 'camino-common/src/static/documentsTypes.js'
-import { slugify } from 'camino-common/src/strings.js'
-import { getEtapeDataForEdition, getLargeobjectIdByEtapeDocumentId } from './etapes.queries.js'
-import { EtapesTypes } from 'camino-common/src/static/etapesTypes.js'
+import { DocumentsTypes } from 'camino-common/src/static/documentsTypes'
+import { slugify } from 'camino-common/src/strings'
+import { getEtapeDataForEdition, getLargeobjectIdByEtapeDocumentId } from './etapes.queries'
+import { EtapesTypes } from 'camino-common/src/static/etapesTypes'
 export type NewDownload = (params: Record<string, unknown>, user: User, pool: Pool) => Promise<{ loid: number | null; fileName: string }>
 
 export const DOWNLOADS_DIRECTORY = 'downloads'
diff --git a/packages/api/src/api/rest/format/entreprises.ts b/packages/api/src/api/rest/format/entreprises.ts
index 602a2928c67b7218f3d4f83a43d76e3174145a00..5678b1c59091d673c011f2056508645e44f9bb73 100644
--- a/packages/api/src/api/rest/format/entreprises.ts
+++ b/packages/api/src/api/rest/format/entreprises.ts
@@ -1,4 +1,4 @@
-import { IEntreprise } from '../../../types.js'
+import { IEntreprise } from '../../../types'
 
 const entreprisesFormatTable = (entreprises: IEntreprise[]) =>
   entreprises.map(entreprise => {
diff --git a/packages/api/src/api/rest/format/titres-activites.ts b/packages/api/src/api/rest/format/titres-activites.ts
index 3d0376e501c3089a30cff33a0581432b7497875e..3f420bbfb6e95a1d38ac939db84a7ad2cbeb4e9c 100644
--- a/packages/api/src/api/rest/format/titres-activites.ts
+++ b/packages/api/src/api/rest/format/titres-activites.ts
@@ -1,15 +1,15 @@
-import { IContenu, IContenuValeur, Index, 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'
-import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { DeepReadonly, isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
+import { IContenu, IContenuValeur, Index, ITitreActivite } from '../../../types'
+import { isSubstanceFiscale, SubstancesFiscale } from 'camino-common/src/static/substancesFiscales'
+import { UniteId, Unites } from 'camino-common/src/static/unites'
+import { getPeriode } from 'camino-common/src/static/frequence'
+import { ActivitesStatuts } from 'camino-common/src/static/activitesStatuts'
+import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { DeepReadonly, isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
 import { Pool } from 'pg'
-import { getCommunesIndex } from '../../../database/queries/communes.js'
-import { ActivitesTypes } from 'camino-common/src/static/activitesTypes.js'
-import { getEntreprises } from '../entreprises.queries.js'
-import { EntrepriseId } from 'camino-common/src/entreprise.js'
+import { getCommunesIndex } from '../../../database/queries/communes'
+import { ActivitesTypes } from 'camino-common/src/static/activitesTypes'
+import { getEntreprises } from '../entreprises.queries'
+import { EntrepriseId } from 'camino-common/src/entreprise'
 
 const titreActiviteContenuFormat = (contenu: IContenu, sections: DeepReadonly<Section[]>) =>
   sections.reduce((resSections: Index<IContenuValeur>, section) => {
diff --git a/packages/api/src/api/rest/format/titres-demarches.ts b/packages/api/src/api/rest/format/titres-demarches.ts
index cebf521a63c2a3a0ef661158d0698095c4f6b1f3..f0735d4210d9531eaeede4c924f2300d1ac2a17c 100644
--- a/packages/api/src/api/rest/format/titres-demarches.ts
+++ b/packages/api/src/api/rest/format/titres-demarches.ts
@@ -1,22 +1,22 @@
-import { ITitreDemarche, Index } from '../../../types.js'
-
-import { titreEtapesSortDescByOrdre } from '../../../business/utils/titre-etapes-sort.js'
-import { getEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
-import { DemarchesStatuts } from 'camino-common/src/static/demarchesStatuts.js'
-import { isNotNullNorUndefined, isNullOrUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools.js'
-import { TitresStatuts } from 'camino-common/src/static/titresStatuts.js'
-import { DemarchesTypes } from 'camino-common/src/static/demarchesTypes.js'
-import { ReferencesTypes } from 'camino-common/src/static/referencesTypes.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 { Forets } from 'camino-common/src/static/forets.js'
+import { ITitreDemarche, Index } from '../../../types'
+
+import { titreEtapesSortDescByOrdre } from '../../../business/utils/titre-etapes-sort'
+import { getEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts'
+import { DemarchesStatuts } from 'camino-common/src/static/demarchesStatuts'
+import { isNotNullNorUndefined, isNullOrUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools'
+import { TitresStatuts } from 'camino-common/src/static/titresStatuts'
+import { DemarchesTypes } from 'camino-common/src/static/demarchesTypes'
+import { ReferencesTypes } from 'camino-common/src/static/referencesTypes'
+import { getDomaineId, getTitreTypeType } from 'camino-common/src/static/titresTypes'
+import { TitresTypesTypes } from 'camino-common/src/static/titresTypesTypes'
+import { Domaines } from 'camino-common/src/static/domaines'
+import { Forets } from 'camino-common/src/static/forets'
 import { Pool } from 'pg'
-import { getCommunesIndex } from '../../../database/queries/communes.js'
-import { EtapesTypes } from 'camino-common/src/static/etapesTypes.js'
-import { EntrepriseId } from 'camino-common/src/entreprise.js'
-import { GetEntreprises, getEntreprises } from '../entreprises.queries.js'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { getCommunesIndex } from '../../../database/queries/communes'
+import { EtapesTypes } from 'camino-common/src/static/etapesTypes'
+import { EntrepriseId } from 'camino-common/src/entreprise'
+import { GetEntreprises, getEntreprises } from '../entreprises.queries'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 
 const etapesDatesStatutsBuild = (titreDemarche: ITitreDemarche) => {
   if (isNullOrUndefinedOrEmpty(titreDemarche.etapes)) return null
diff --git a/packages/api/src/api/rest/format/titres.ts b/packages/api/src/api/rest/format/titres.ts
index 8f96ba002f1694fc1f5155b0ecf3b9952bb3893e..4f3ab697b8199e33dadf03440caa167b32b2eace 100644
--- a/packages/api/src/api/rest/format/titres.ts
+++ b/packages/api/src/api/rest/format/titres.ts
@@ -1,28 +1,28 @@
-import { ITitre, Index } from '../../../types.js'
-import { SubstancesLegale } from 'camino-common/src/static/substancesLegales.js'
-import { isNotNullNorUndefined, isNullOrUndefinedOrEmpty } 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 { TitresTypesTypes } from 'camino-common/src/static/titresTypesTypes.js'
-import { Domaines } from 'camino-common/src/static/domaines.js'
-import { getFacadesComputed, SecteursMaritimes } from 'camino-common/src/static/facades.js'
-import { territoiresFind } from 'camino-common/src/territoires.js'
-import { Administrations } from 'camino-common/src/static/administrations.js'
-import { SectionWithValue } from 'camino-common/src/sections.js'
-import { CaminoDate } from 'camino-common/src/date.js'
-import { titreDemarcheSortAsc } from '../../../business/utils/titre-elements-sort-asc.js'
-import { titreDateDemandeFind } from '../../../business/rules/titre-date-demande-find.js'
-import { Forets } from 'camino-common/src/static/forets.js'
+import { ITitre, Index } from '../../../types'
+import { SubstancesLegale } from 'camino-common/src/static/substancesLegales'
+import { isNotNullNorUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools'
+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 { TitresTypesTypes } from 'camino-common/src/static/titresTypesTypes'
+import { Domaines } from 'camino-common/src/static/domaines'
+import { getFacadesComputed, SecteursMaritimes } from 'camino-common/src/static/facades'
+import { territoiresFind } from 'camino-common/src/territoires'
+import { Administrations } from 'camino-common/src/static/administrations'
+import { SectionWithValue } from 'camino-common/src/sections'
+import { CaminoDate } from 'camino-common/src/date'
+import { titreDemarcheSortAsc } from '../../../business/utils/titre-elements-sort-asc'
+import { titreDateDemandeFind } from '../../../business/rules/titre-date-demande-find'
+import { Forets } from 'camino-common/src/static/forets'
 import { Pool } from 'pg'
-import { CommuneId } from 'camino-common/src/static/communes.js'
-import { FeatureMultiPolygon } from 'camino-common/src/perimetre.js'
-import { getCommunesIndex } from '../../../database/queries/communes.js'
-import { getDemarcheContenu } from 'camino-common/src/demarche.js'
-import { getSections, getSectionsWithValue } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { DemarchesTypes } from 'camino-common/src/static/demarchesTypes.js'
-import { GetEntreprises, getEntreprises } from '../entreprises.queries.js'
-import { EntrepriseId } from 'camino-common/src/entreprise.js'
+import { CommuneId } from 'camino-common/src/static/communes'
+import { FeatureMultiPolygon } from 'camino-common/src/perimetre'
+import { getCommunesIndex } from '../../../database/queries/communes'
+import { getDemarcheContenu } from 'camino-common/src/demarche'
+import { getSections, getSectionsWithValue } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { DemarchesTypes } from 'camino-common/src/static/demarchesTypes'
+import { GetEntreprises, getEntreprises } from '../entreprises.queries'
+import { EntrepriseId } from 'camino-common/src/entreprise'
 
 const getFacadesMaritimeCell = (secteursMaritime: SecteursMaritimes[], separator: string): string =>
   getFacadesComputed(secteursMaritime)
diff --git a/packages/api/src/api/rest/format/utilisateurs.ts b/packages/api/src/api/rest/format/utilisateurs.ts
index c02d1b47f6129f5574080d75eb0e78bc3baeb3be..987225167bad109c5a7ef8a2e04b4f1edc168d8c 100644
--- a/packages/api/src/api/rest/format/utilisateurs.ts
+++ b/packages/api/src/api/rest/format/utilisateurs.ts
@@ -1,6 +1,6 @@
-import { formatUser, IUtilisateur } from '../../../types.js'
-import { isAdministration } from 'camino-common/src/roles.js'
-import { Administrations } from 'camino-common/src/static/administrations.js'
+import { formatUser, IUtilisateur } from '../../../types'
+import { isAdministration } from 'camino-common/src/roles'
+import { Administrations } from 'camino-common/src/static/administrations'
 
 export const utilisateursFormatTable = (utilisateurs: IUtilisateur[]) =>
   utilisateurs.map(utilisateur => {
diff --git a/packages/api/src/api/rest/index.ts b/packages/api/src/api/rest/index.ts
index 033ae8602bd6dc5bdae1135507713131e243ea64..4395e9b74ed4d2546a9ac44a79a6e0875969c864 100644
--- a/packages/api/src/api/rest/index.ts
+++ b/packages/api/src/api/rest/index.ts
@@ -1,31 +1,31 @@
-import { titreGet, titresGet } from '../../database/queries/titres.js'
-import { titresDemarchesGet } from '../../database/queries/titres-demarches.js'
-import { titresActivitesGet } from '../../database/queries/titres-activites.js'
-import { entreprisesGet } from '../../database/queries/entreprises.js'
+import { titreGet, titresGet } from '../../database/queries/titres'
+import { titresDemarchesGet } from '../../database/queries/titres-demarches'
+import { titresActivitesGet } from '../../database/queries/titres-activites'
+import { entreprisesGet } from '../../database/queries/entreprises'
 
-import { titreFormat, titresFormat } from '../_format/titres.js'
-import { titreDemarcheFormat } from '../_format/titres-demarches.js'
-import { titreActiviteFormat } from '../_format/titres-activites.js'
+import { titreFormat, titresFormat } from '../_format/titres'
+import { titreDemarcheFormat } from '../_format/titres-demarches'
+import { titreActiviteFormat } from '../_format/titres-activites'
 
-import { tableConvert } from './_convert.js'
-import { fileNameCreate } from '../../tools/file-name-create.js'
+import { tableConvert } from './_convert'
+import { fileNameCreate } from '../../tools/file-name-create'
 
-import { titreGeojsonPropertiesFormat, titresGeojsonFormat, 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'
+import { titreGeojsonPropertiesFormat, titresGeojsonFormat, titresTableFormat } from './format/titres'
+import { titresDemarchesFormatTable } from './format/titres-demarches'
+import { titresActivitesFormatTable } from './format/titres-activites'
+import { entreprisesFormatTable } from './format/entreprises'
 
-import { User } from 'camino-common/src/roles.js'
-import { DownloadFormat } from 'camino-common/src/rest.js'
+import { User } from 'camino-common/src/roles'
+import { DownloadFormat } from 'camino-common/src/rest'
 import { Pool } from 'pg'
 import { z, ZodType } from 'zod'
-import { exhaustiveCheck, isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { getCommunesIndex } from '../../database/queries/communes.js'
-import { FeatureCollection, GeojsonFeaturePoint } from 'camino-common/src/perimetre.js'
+import { exhaustiveCheck, isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { getCommunesIndex } from '../../database/queries/communes'
+import { FeatureCollection, GeojsonFeaturePoint } from 'camino-common/src/perimetre'
 import { FieldsTitre } from '../../database/queries/_options'
-import { titresValidator, demarchesValidator, activitesValidator, entreprisesValidator } from '../../business/utils/filters.js'
-import { GetEntreprises, getEntreprises } from './entreprises.queries.js'
-import { EntrepriseId } from 'camino-common/src/entreprise.js'
+import { titresValidator, demarchesValidator, activitesValidator, entreprisesValidator } from '../../business/utils/filters'
+import { GetEntreprises, getEntreprises } from './entreprises.queries'
+import { EntrepriseId } from 'camino-common/src/entreprise'
 
 const formatCheck = (formats: string[], format: string) => {
   if (!formats.includes(format)) {
diff --git a/packages/api/src/api/rest/journal.queries.ts b/packages/api/src/api/rest/journal.queries.ts
index e70e2539d59b58e307244efb65b25a438adb79fb..3d79922bcc42da96f364b0e2664f90bd8af305ca 100644
--- a/packages/api/src/api/rest/journal.queries.ts
+++ b/packages/api/src/api/rest/journal.queries.ts
@@ -1,12 +1,12 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { TitreId } from 'camino-common/src/validators/titres.js'
-import { Redefine, dbQueryAndValidate } from '../../pg-database.js'
-import { IGetLastJournalInternalQuery, IGetTitresModifiesByMonthDbQuery } from './journal.queries.types.js'
-import { CaminoDate, caminoDateValidator } from 'camino-common/src/date.js'
+import { TitreId } from 'camino-common/src/validators/titres'
+import { Redefine, dbQueryAndValidate } from '../../pg-database'
+import { IGetLastJournalInternalQuery, IGetTitresModifiesByMonthDbQuery } from './journal.queries.types'
+import { CaminoDate, caminoDateValidator } from 'camino-common/src/date'
 import { z } from 'zod'
 import { Pool } from 'pg'
-import { QuantiteParMois, quantitesParMoisValidator } from 'camino-common/src/statistiques.js'
+import { QuantiteParMois, quantitesParMoisValidator } from 'camino-common/src/statistiques'
 
 const lastJournalGetValidator = z.object({ date: caminoDateValidator })
 type LastJournalGet = z.infer<typeof lastJournalGetValidator>
diff --git a/packages/api/src/api/rest/journal.test.integration.ts b/packages/api/src/api/rest/journal.test.integration.ts
index 0d762c071ee659b16cde662dc8884bfae16bccfe..586f4430f1a3cd7488919ed6983ef362fdeaabb2 100644
--- a/packages/api/src/api/rest/journal.test.integration.ts
+++ b/packages/api/src/api/rest/journal.test.integration.ts
@@ -1,13 +1,13 @@
 /* eslint-disable sql/no-unsafe-query */
-import { dbManager } from '../../../tests/db-manager.js'
-import { titreCreate } from '../../database/queries/titres.js'
+import { dbManager } from '../../../tests/db-manager'
+import { titreCreate } from '../../database/queries/titres'
 import { afterAll, beforeAll, test, expect, vi, describe } from 'vitest'
 import type { Pool } from 'pg'
-import { getTitresModifiesByMonth } from './journal.queries.js'
+import { getTitresModifiesByMonth } from './journal.queries'
 import { Knex } from 'knex'
-import { idGenerate } from '../../database/models/_format/id-create.js'
-import { userGenerate } from '../../../tests/_utils/index.js'
-import { ITitre } from '../../types.js'
+import { idGenerate } from '../../database/models/_format/id-create'
+import { userGenerate } from '../../../tests/_utils/index'
+import { ITitre } from '../../types'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/api/rest/keycloak.test.integration.ts b/packages/api/src/api/rest/keycloak.test.integration.ts
index ef6dd6ba338b4c1f3a495e63d849621c7ff29ab7..7a26eabfbf46860b2df8dda4dce79e64b34168e8 100644
--- a/packages/api/src/api/rest/keycloak.test.integration.ts
+++ b/packages/api/src/api/rest/keycloak.test.integration.ts
@@ -1,10 +1,10 @@
-import { userSuper } from '../../database/user-super.js'
-import { dbManager } from '../../../tests/db-manager.js'
-import { restCall } from '../../../tests/_utils/index.js'
+import { userSuper } from '../../database/user-super'
+import { dbManager } from '../../../tests/db-manager'
+import { restCall } from '../../../tests/_utils/index'
 import { test, expect, vi, beforeAll, afterAll } from 'vitest'
 import type { Pool } from 'pg'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { renewConfig } from '../../config/index.js'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { renewConfig } from '../../config/index'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/api/rest/keycloak.ts b/packages/api/src/api/rest/keycloak.ts
index c0f281c3bd0db3d18e4c4e405c358de4efe1cfc2..cc954845608f22e31006f6c8cce3a77e4f1280b7 100644
--- a/packages/api/src/api/rest/keycloak.ts
+++ b/packages/api/src/api/rest/keycloak.ts
@@ -1,7 +1,7 @@
 import { Pool } from 'pg'
 import { CaminoRequest, CustomResponse } from './express-type'
-import { config } from '../../config/index.js'
-import { isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
+import { config } from '../../config/index'
+import { isNullOrUndefined } from 'camino-common/src/typescript-tools'
 
 export const logout = (_pool: Pool) => async (req: CaminoRequest, res: CustomResponse<string>) => {
   const authorizationToken = req.header('authorization')
diff --git a/packages/api/src/api/rest/logs.queries.ts b/packages/api/src/api/rest/logs.queries.ts
index 6bd475c3c8afc02bb0c2c468a24c19e32b476be9..7454ca5105a382675f67200e7d0f88d62b06c647 100644
--- a/packages/api/src/api/rest/logs.queries.ts
+++ b/packages/api/src/api/rest/logs.queries.ts
@@ -1,12 +1,12 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { DbQueryAccessError, Redefine, effectDbQueryAndValidate } from '../../pg-database.js'
+import { DbQueryAccessError, Redefine, effectDbQueryAndValidate } from '../../pg-database'
 import { Pool } from 'pg'
 import { z } from 'zod'
-import { IInsertLogInternalQuery } from './logs.queries.types.js'
-import { UtilisateurId } from 'camino-common/src/roles.js'
-import { CaminoError } from 'camino-common/src/zod-tools.js'
-import { ZodUnparseable } from '../../tools/fp-tools.js'
+import { IInsertLogInternalQuery } from './logs.queries.types'
+import { UtilisateurId } from 'camino-common/src/roles'
+import { CaminoError } from 'camino-common/src/zod-tools'
+import { ZodUnparseable } from '../../tools/fp-tools'
 import { Effect } from 'effect'
 
 export const addLog = (pool: Pool, utilisateur_id: UtilisateurId, method: string, path: string, body?: unknown): Effect.Effect<void[], CaminoError<ZodUnparseable | DbQueryAccessError>> =>
diff --git a/packages/api/src/api/rest/perimetre.queries.ts b/packages/api/src/api/rest/perimetre.queries.ts
index c1cb3850c924ceeb3a90fc0d12e3d465713072c5..0b774676a6ba34327573db9652c34a0a804abd91 100644
--- a/packages/api/src/api/rest/perimetre.queries.ts
+++ b/packages/api/src/api/rest/perimetre.queries.ts
@@ -1,22 +1,22 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { Redefine, DbQueryAccessError, effectDbQueryAndValidate } from '../../pg-database.js'
+import { Redefine, DbQueryAccessError, effectDbQueryAndValidate } from '../../pg-database'
 import { z } from 'zod'
 import { Pool } from 'pg'
-import { GEO_SYSTEME_IDS, GeoSystemeId } from 'camino-common/src/static/geoSystemes.js'
-import { FeatureMultiPolygon, GenericFeatureCollection, MultiPoint, MultiPolygon, featureMultiPolygonValidator, multiPointsValidator, multiPolygonValidator } from 'camino-common/src/perimetre.js'
-import { IConvertMultiPointDbQuery, IGetGeojsonByGeoSystemeIdDbQuery, IGetGeojsonInformationDbQuery, IGetTitresIntersectionWithGeojsonDbQuery } from './perimetre.queries.types.js'
-import { TitreStatutId, TitresStatutIds, titreStatutIdValidator } from 'camino-common/src/static/titresStatuts.js'
-import { DOMAINES_IDS, DomaineId } from 'camino-common/src/static/domaines.js'
-import { TitreSlug, titreSlugValidator } from 'camino-common/src/validators/titres.js'
-import { communeIdValidator } from 'camino-common/src/static/communes.js'
-import { secteurDbIdValidator } from 'camino-common/src/static/facades.js'
-import { foretIdValidator } from 'camino-common/src/static/forets.js'
-import { sdomZoneIdValidator } from 'camino-common/src/static/sdom.js'
-import { KM2, M2, createM2Validator, km2Validator, m2Validator } from 'camino-common/src/number.js'
-import { DeepReadonly, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { ZodUnparseable, zodParseEffect, zodParseEffectCallback } from '../../tools/fp-tools.js'
-import { CaminoError } from 'camino-common/src/zod-tools.js'
+import { GEO_SYSTEME_IDS, GeoSystemeId } from 'camino-common/src/static/geoSystemes'
+import { FeatureMultiPolygon, GenericFeatureCollection, MultiPoint, MultiPolygon, featureMultiPolygonValidator, multiPointsValidator, multiPolygonValidator } from 'camino-common/src/perimetre'
+import { IConvertMultiPointDbQuery, IGetGeojsonByGeoSystemeIdDbQuery, IGetGeojsonInformationDbQuery, IGetTitresIntersectionWithGeojsonDbQuery } from './perimetre.queries.types'
+import { TitreStatutId, TitresStatutIds, titreStatutIdValidator } from 'camino-common/src/static/titresStatuts'
+import { DOMAINES_IDS, DomaineId } from 'camino-common/src/static/domaines'
+import { TitreSlug, titreSlugValidator } from 'camino-common/src/validators/titres'
+import { communeIdValidator } from 'camino-common/src/static/communes'
+import { secteurDbIdValidator } from 'camino-common/src/static/facades'
+import { foretIdValidator } from 'camino-common/src/static/forets'
+import { sdomZoneIdValidator } from 'camino-common/src/static/sdom'
+import { KM2, M2, createM2Validator, km2Validator, m2Validator } from 'camino-common/src/number'
+import { DeepReadonly, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { ZodUnparseable, zodParseEffect, zodParseEffectCallback } from '../../tools/fp-tools'
+import { CaminoError } from 'camino-common/src/zod-tools'
 import { Effect, pipe } from 'effect'
 
 const arrayTuple4326CoordinateValidator = z.array(z.tuple([z.number().min(-180).max(180), z.number().min(-90).max(90)]))
diff --git a/packages/api/src/api/rest/perimetre.test.integration.ts b/packages/api/src/api/rest/perimetre.test.integration.ts
index 8a1897642b3ec276144e3c9d20cb01f6e42a851f..bc9310cb7f1cbddb0f7adf101468791e67738d4b 100644
--- a/packages/api/src/api/rest/perimetre.test.integration.ts
+++ b/packages/api/src/api/rest/perimetre.test.integration.ts
@@ -1,9 +1,9 @@
-import { userSuper } from '../../database/user-super.js'
-import { dbManager } from '../../../tests/db-manager.js'
-import { restNewPostCall } from '../../../tests/_utils/index.js'
+import { userSuper } from '../../database/user-super'
+import { dbManager } from '../../../tests/db-manager'
+import { restNewPostCall } from '../../../tests/_utils/index'
 import { test, expect, vi, beforeAll, afterAll, describe } from 'vitest'
 import type { Pool } from 'pg'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
+import { HTTP_STATUS } from 'camino-common/src/http'
 import {
   FeatureCollection,
   FeatureCollectionForages,
@@ -13,12 +13,12 @@ import {
   GeojsonImportBody,
   GeojsonImportForagesBody,
   GeojsonImportPointsBody,
-} from 'camino-common/src/perimetre.js'
-import { GEO_SYSTEME_IDS } from 'camino-common/src/static/geoSystemes.js'
-import { idGenerate } from '../../database/models/_format/id-create.js'
+} from 'camino-common/src/perimetre'
+import { GEO_SYSTEME_IDS } from 'camino-common/src/static/geoSystemes'
+import { idGenerate } from '../../database/models/_format/id-create'
 import { copyFileSync, mkdirSync, writeFileSync } from 'node:fs'
-import { tempDocumentNameValidator } from 'camino-common/src/document.js'
-import { titreSlugValidator } from 'camino-common/src/validators/titres.js'
+import { tempDocumentNameValidator } from 'camino-common/src/document'
+import { titreSlugValidator } from 'camino-common/src/validators/titres'
 import { join } from 'node:path'
 
 console.info = vi.fn()
diff --git a/packages/api/src/api/rest/perimetre.ts b/packages/api/src/api/rest/perimetre.ts
index 429b8f7c90adc0ceb11716f421c54fdfdf06e3c1..5fb76768f1061c9cdd778cec14ec02db1bb14d18 100644
--- a/packages/api/src/api/rest/perimetre.ts
+++ b/packages/api/src/api/rest/perimetre.ts
@@ -1,9 +1,9 @@
-import { DemarcheId, demarcheIdOrSlugValidator } from 'camino-common/src/demarche.js'
-import { CaminoRequest, CustomResponse } from './express-type.js'
+import { DemarcheId, demarcheIdOrSlugValidator } from 'camino-common/src/demarche'
+import { CaminoRequest, CustomResponse } from './express-type'
 import { Pool } from 'pg'
 import { pipe, Effect, Match } from 'effect'
-import { GeoSystemeId, GeoSystemes } from 'camino-common/src/static/geoSystemes.js'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
+import { GeoSystemeId, GeoSystemes } from 'camino-common/src/static/geoSystemes'
+import { HTTP_STATUS } from 'camino-common/src/http'
 import {
   ConvertPointsErrors,
   GetGeojsonByGeoSystemeIdErrorMessages,
@@ -13,14 +13,14 @@ import {
   getGeojsonByGeoSystemeId as getGeojsonByGeoSystemeIdQuery,
   getGeojsonInformation,
   getTitresIntersectionWithGeojson,
-} from './perimetre.queries.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { getMostRecentEtapeFondamentaleValide } from './titre-heritage.js'
-import { isAdministrationAdmin, isAdministrationEditeur, isDefault, isSuper, User, UserNotNull } from 'camino-common/src/roles.js'
-import { getDemarcheByIdOrSlug, getEtapesByDemarcheId } from './demarches.queries.js'
-import { getAdministrationsLocalesByTitreId, getTitreByIdOrSlug, getTitulairesAmodiatairesByTitreId } from './titres.queries.js'
-import { etapeIdOrSlugValidator } from 'camino-common/src/etape.js'
-import { getEtapeById } from './etapes.queries.js'
+} from './perimetre.queries'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { getMostRecentEtapeFondamentaleValide } from './titre-heritage'
+import { isAdministrationAdmin, isAdministrationEditeur, isDefault, isSuper, User, UserNotNull } from 'camino-common/src/roles'
+import { getDemarcheByIdOrSlug, getEtapesByDemarcheId } from './demarches.queries'
+import { getAdministrationsLocalesByTitreId, getTitreByIdOrSlug, getTitulairesAmodiatairesByTitreId } from './titres.queries'
+import { etapeIdOrSlugValidator } from 'camino-common/src/etape'
+import { getEtapeById } from './etapes.queries'
 import {
   FeatureCollectionPoints,
   FeatureMultiPolygon,
@@ -40,22 +40,22 @@ import {
   GeojsonImportPointsBody,
   GeojsonImportBody,
   GeojsonImportForagesBody,
-} from 'camino-common/src/perimetre.js'
+} from 'camino-common/src/perimetre'
 import { join } from 'node:path'
 import { readFileSync } from 'node:fs'
 import shpjs from 'shpjs'
-import { DeepReadonly, isNotNullNorUndefined, isNullOrUndefined, memoize } from 'camino-common/src/typescript-tools.js'
-import { SDOMZoneId } from 'camino-common/src/static/sdom.js'
-import { TitreSlug } from 'camino-common/src/validators/titres.js'
-import { canReadEtape } from './permissions/etapes.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
+import { DeepReadonly, isNotNullNorUndefined, isNullOrUndefined, memoize } from 'camino-common/src/typescript-tools'
+import { SDOMZoneId } from 'camino-common/src/static/sdom'
+import { TitreSlug } from 'camino-common/src/validators/titres'
+import { canReadEtape } from './permissions/etapes'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
 import xlsx from 'xlsx'
 import { ZodTypeAny, z } from 'zod'
 import { CommuneId } from 'camino-common/src/static/communes'
-import { CaminoApiError } from '../../types.js'
-import { DbQueryAccessError } from '../../pg-database.js'
-import { ZodUnparseable, callAndExit, zodParseEffect, zodParseEffectCallback } from '../../tools/fp-tools.js'
-import { CaminoError } from 'camino-common/src/zod-tools.js'
+import { CaminoApiError } from '../../types'
+import { DbQueryAccessError } from '../../pg-database'
+import { ZodUnparseable, callAndExit, zodParseEffect, zodParseEffectCallback } from '../../tools/fp-tools'
+import { CaminoError } from 'camino-common/src/zod-tools'
 
 export const getPerimetreInfos = (pool: Pool) => async (req: CaminoRequest, res: CustomResponse<PerimetreInformations>) => {
   const user = req.auth
diff --git a/packages/api/src/api/rest/permissions/avis.ts b/packages/api/src/api/rest/permissions/avis.ts
index 11bd20f5ba1de23669007d4fd4f495b8084e6c70..b665570212116c2bd81e412052c1d5b7b5c866df 100644
--- a/packages/api/src/api/rest/permissions/avis.ts
+++ b/packages/api/src/api/rest/permissions/avis.ts
@@ -1,12 +1,12 @@
-import { EntrepriseId } from 'camino-common/src/entreprise.js'
-import { isSuper, isAdministration, isEntrepriseOrBureauDEtude, User } from 'camino-common/src/roles.js'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { SimplePromiseFn } from 'camino-common/src/typescript-tools.js'
-import { CanReadDemarche } from './demarches.js'
-import { canReadEtape } from './etapes.js'
-import { AvisVisibilityId, AvisVisibilityIds } from 'camino-common/src/static/avisTypes.js'
+import { EntrepriseId } from 'camino-common/src/entreprise'
+import { isSuper, isAdministration, isEntrepriseOrBureauDEtude, User } from 'camino-common/src/roles'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { SimplePromiseFn } from 'camino-common/src/typescript-tools'
+import { CanReadDemarche } from './demarches'
+import { canReadEtape } from './etapes'
+import { AvisVisibilityId, AvisVisibilityIds } from 'camino-common/src/static/avisTypes'
 
 export const canReadAvis = async (
   avis: { avis_visibility_id: AvisVisibilityId },
diff --git a/packages/api/src/api/rest/permissions/demarches.ts b/packages/api/src/api/rest/permissions/demarches.ts
index e3ee10f3d3f6f3664dfd708c1b83d1a84f43555c..2225729ea4454cf75acd6ca8ec68970987fee41e 100644
--- a/packages/api/src/api/rest/permissions/demarches.ts
+++ b/packages/api/src/api/rest/permissions/demarches.ts
@@ -1,10 +1,10 @@
-import { EntrepriseId } from 'camino-common/src/entreprise.js'
-import { isSuper, isAdministration, isEntrepriseOrBureauDEtude, User } from 'camino-common/src/roles.js'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
-import { SimplePromiseFn } from 'camino-common/src/typescript-tools.js'
-import { canReadTitre } from 'camino-common/src/permissions/titres.js'
+import { EntrepriseId } from 'camino-common/src/entreprise'
+import { isSuper, isAdministration, isEntrepriseOrBureauDEtude, User } from 'camino-common/src/roles'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { SimplePromiseFn } from 'camino-common/src/typescript-tools'
+import { canReadTitre } from 'camino-common/src/permissions/titres'
 
 export type CanReadDemarche = { public_lecture: boolean; entreprises_lecture: boolean; titre_public_lecture: boolean; demarche_type_id: DemarcheTypeId }
 
diff --git a/packages/api/src/api/rest/permissions/documents.ts b/packages/api/src/api/rest/permissions/documents.ts
index d7f60009c4186c8846e10ed08718390e63f20531..1ae3ed3290533efc219233b68ef679dbc9e894fc 100644
--- a/packages/api/src/api/rest/permissions/documents.ts
+++ b/packages/api/src/api/rest/permissions/documents.ts
@@ -1,12 +1,12 @@
-import { EntrepriseId } from 'camino-common/src/entreprise.js'
-import { isSuper, isAdministration, isEntrepriseOrBureauDEtude, User } from 'camino-common/src/roles.js'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { SimplePromiseFn } from 'camino-common/src/typescript-tools.js'
-import { CanReadDemarche } from './demarches.js'
-import { canReadEtape } from './etapes.js'
-import { EtapeDocument } from 'camino-common/src/etape.js'
+import { EntrepriseId } from 'camino-common/src/entreprise'
+import { isSuper, isAdministration, isEntrepriseOrBureauDEtude, User } from 'camino-common/src/roles'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { SimplePromiseFn } from 'camino-common/src/typescript-tools'
+import { CanReadDemarche } from './demarches'
+import { canReadEtape } from './etapes'
+import { EtapeDocument } from 'camino-common/src/etape'
 
 export const canReadDocument = async (
   document: Pick<EtapeDocument, 'public_lecture' | 'entreprises_lecture'>,
diff --git a/packages/api/src/api/rest/permissions/etapes.ts b/packages/api/src/api/rest/permissions/etapes.ts
index 4d2ec244934c90fdc072018339fdaa1909cad73d..2afa30ec00a6cd2f14f433a4eacbb1f56ab8fda8 100644
--- a/packages/api/src/api/rest/permissions/etapes.ts
+++ b/packages/api/src/api/rest/permissions/etapes.ts
@@ -1,11 +1,11 @@
-import { EntrepriseId } from 'camino-common/src/entreprise.js'
-import { isSuper, isAdministration, isEntrepriseOrBureauDEtude, User } from 'camino-common/src/roles.js'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { getAdministrationTitresTypesEtapesTypes } from 'camino-common/src/static/administrationsTitresTypesEtapesTypes.js'
-import { EtapeTypeId, EtapesTypes } from 'camino-common/src/static/etapesTypes.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { SimplePromiseFn } from 'camino-common/src/typescript-tools.js'
-import { CanReadDemarche, canReadDemarche } from './demarches.js'
+import { EntrepriseId } from 'camino-common/src/entreprise'
+import { isSuper, isAdministration, isEntrepriseOrBureauDEtude, User } from 'camino-common/src/roles'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { getAdministrationTitresTypesEtapesTypes } from 'camino-common/src/static/administrationsTitresTypesEtapesTypes'
+import { EtapeTypeId, EtapesTypes } from 'camino-common/src/static/etapesTypes'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { SimplePromiseFn } from 'camino-common/src/typescript-tools'
+import { CanReadDemarche, canReadDemarche } from './demarches'
 
 export const canReadEtape = async (
   user: User,
diff --git a/packages/api/src/api/rest/statistiques/datagouv.queries.ts b/packages/api/src/api/rest/statistiques/datagouv.queries.ts
index b22a71f3b2edafe727e19c2851a94f759d9c5f1b..515be8937b7cb67f87f560e08bb6229645580e8b 100644
--- a/packages/api/src/api/rest/statistiques/datagouv.queries.ts
+++ b/packages/api/src/api/rest/statistiques/datagouv.queries.ts
@@ -1,11 +1,11 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { Redefine, dbQueryAndValidate } from '../../../pg-database.js'
+import { Redefine, dbQueryAndValidate } from '../../../pg-database'
 import { Pool } from 'pg'
 import { z } from 'zod'
-import { roleValidator } from 'camino-common/src/roles.js'
-import { administrationIdValidator } from 'camino-common/src/static/administrations.js'
-import { IGetUtilisateursStatsDbQuery } from './datagouv.queries.types.js'
+import { roleValidator } from 'camino-common/src/roles'
+import { administrationIdValidator } from 'camino-common/src/static/administrations'
+import { IGetUtilisateursStatsDbQuery } from './datagouv.queries.types'
 
 export const getUtilisateursStats = async (pool: Pool) => dbQueryAndValidate(getUtilisateursStatsDb, undefined, pool, getUtilisateursStatsValidator)
 
diff --git a/packages/api/src/api/rest/statistiques/datagouv.test.integration.ts b/packages/api/src/api/rest/statistiques/datagouv.test.integration.ts
index 8830909aeb6671629545da3bf92428fad4011661..7f5521e6c5b64a75e72412ead5cd34b9f1fba409 100644
--- a/packages/api/src/api/rest/statistiques/datagouv.test.integration.ts
+++ b/packages/api/src/api/rest/statistiques/datagouv.test.integration.ts
@@ -1,5 +1,5 @@
-import { restCall, userGenerate } from '../../../../tests/_utils/index.js'
-import { dbManager } from '../../../../tests/db-manager.js'
+import { restCall, userGenerate } from '../../../../tests/_utils/index'
+import { dbManager } from '../../../../tests/db-manager'
 import { expect, test, afterAll, beforeAll, vi } from 'vitest'
 import type { Pool } from 'pg'
 
diff --git a/packages/api/src/api/rest/statistiques/datagouv.ts b/packages/api/src/api/rest/statistiques/datagouv.ts
index fce6e5a1e1c7ecf61b39224718aa56a34502da59..6eb66dd4f20ddf5f3b552f635f3c72c22f1566d0 100644
--- a/packages/api/src/api/rest/statistiques/datagouv.ts
+++ b/packages/api/src/api/rest/statistiques/datagouv.ts
@@ -1,14 +1,14 @@
 import { Pool } from 'pg'
 import { CaminoRequest, CustomResponse } from '../express-type'
-import { StatistiquesDataGouv, indicateurByAdministrationId } from 'camino-common/src/statistiques.js'
-import { getUtilisateursStats } from './datagouv.queries.js'
-import { isEntrepriseOrBureauDetudeRole } from 'camino-common/src/roles.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
-import { Administrations } from 'camino-common/src/static/administrations.js'
-import { CaminoStatistiquesDataGouv, CaminoStatistiquesDataGouvId } from 'camino-common/src/static/statistiques.js'
-import { getCurrent } from 'camino-common/src/date.js'
+import { StatistiquesDataGouv, indicateurByAdministrationId } from 'camino-common/src/statistiques'
+import { getUtilisateursStats } from './datagouv.queries'
+import { isEntrepriseOrBureauDetudeRole } from 'camino-common/src/roles'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
+import { Administrations } from 'camino-common/src/static/administrations'
+import { CaminoStatistiquesDataGouv, CaminoStatistiquesDataGouvId } from 'camino-common/src/static/statistiques'
+import { getCurrent } from 'camino-common/src/date'
 import xlsx from 'xlsx'
-import { contentTypes } from 'camino-common/src/rest.js'
+import { contentTypes } from 'camino-common/src/rest'
 
 const commonIndicateurValues: Pick<
   StatistiquesDataGouv,
diff --git a/packages/api/src/api/rest/statistiques/dgtm.queries.ts b/packages/api/src/api/rest/statistiques/dgtm.queries.ts
index 703241088d2700442d99a9b5ca193205b13b5a9a..ca8f3b005256d228a9540938b7e1a7d2532135c4 100644
--- a/packages/api/src/api/rest/statistiques/dgtm.queries.ts
+++ b/packages/api/src/api/rest/statistiques/dgtm.queries.ts
@@ -1,9 +1,9 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { SUBSTANCES_FISCALES_IDS, SubstanceFiscaleId } from 'camino-common/src/static/substancesFiscales.js'
-import { Redefine, dbQueryAndValidate } from '../../../pg-database.js'
-import { IGetProductionOrDbQuery } from './dgtm.queries.types.js'
-import { AnneeCountStatistique, anneeCountStatistiqueValidator } from 'camino-common/src/statistiques.js'
+import { SUBSTANCES_FISCALES_IDS, SubstanceFiscaleId } from 'camino-common/src/static/substancesFiscales'
+import { Redefine, dbQueryAndValidate } from '../../../pg-database'
+import { IGetProductionOrDbQuery } from './dgtm.queries.types'
+import { AnneeCountStatistique, anneeCountStatistiqueValidator } from 'camino-common/src/statistiques'
 import { Pool } from 'pg'
 
 export const getProductionOr = async (pool: Pool) => dbQueryAndValidate(getProductionOrDb, { substance: SUBSTANCES_FISCALES_IDS.or }, pool, anneeCountStatistiqueValidator)
diff --git a/packages/api/src/api/rest/statistiques/dgtm.test.integration.ts b/packages/api/src/api/rest/statistiques/dgtm.test.integration.ts
index b4ee36e4f4bc81c67b28cc2cae00e703d6505f35..b5dfbcb13e65702189dea82e29ed317882eb39d8 100644
--- a/packages/api/src/api/rest/statistiques/dgtm.test.integration.ts
+++ b/packages/api/src/api/rest/statistiques/dgtm.test.integration.ts
@@ -1,8 +1,8 @@
-import { restCall } from '../../../../tests/_utils/index.js'
-import { dbManager } from '../../../../tests/db-manager.js'
+import { restCall } from '../../../../tests/_utils/index'
+import { dbManager } from '../../../../tests/db-manager'
 import { expect, test, afterAll, beforeAll, vi } from 'vitest'
 import type { Pool } from 'pg'
-import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/api/rest/statistiques/dgtm.ts b/packages/api/src/api/rest/statistiques/dgtm.ts
index 7c19803c1c83b5cec1625517097955b3c8d6c6f2..ec96294bcd61ec117e4c750332e6c9cfb556c711 100644
--- a/packages/api/src/api/rest/statistiques/dgtm.ts
+++ b/packages/api/src/api/rest/statistiques/dgtm.ts
@@ -1,15 +1,15 @@
-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, toCaminoAnnee } 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 { EtapeStatutId } from 'camino-common/src/static/etapesStatuts.js'
-import { getProductionOr } from './dgtm.queries.js'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { getTitreTypeIdsByAdministration } from 'camino-common/src/static/administrationsTitresTypes'
+import { StatistiquesDGTM, TitreTypeIdDelai, titreTypeIdDelais } from 'camino-common/src/statistiques'
+import { CaminoAnnee, CaminoDate, getAnnee, daysBetween, toCaminoAnnee } from 'camino-common/src/date'
+import { knex } from '../../../knex'
+import { SDOMZoneId, SDOMZoneIds } from 'camino-common/src/static/sdom'
+import { ETAPES_TYPES, EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts'
+import { getProductionOr } from './dgtm.queries'
 import type { Pool } from 'pg'
-import { isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
+import { isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
 
 const anneeDepartStats = 2015
 
diff --git a/packages/api/src/api/rest/statistiques/evolution-titres.queries.ts b/packages/api/src/api/rest/statistiques/evolution-titres.queries.ts
index 9f5335782afce47f6b03dd2353390e50997cfccb..c7c66e6d53cdf61dbcaa6e5e57940436495b71e9 100644
--- a/packages/api/src/api/rest/statistiques/evolution-titres.queries.ts
+++ b/packages/api/src/api/rest/statistiques/evolution-titres.queries.ts
@@ -1,14 +1,14 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts.js'
-import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
-import { DepartementId } from 'camino-common/src/static/departement.js'
-import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts.js'
-import { EtapeTypeId, ETAPES_TYPES } from 'camino-common/src/static/etapesTypes.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { AnneeCountStatistique, anneeCountStatistiqueValidator } from 'camino-common/src/statistiques.js'
-import { Redefine, dbQueryAndValidate } from '../../../pg-database.js'
-import { IGetDepotDbQuery, IGetEtapesTypesDecisionRefusDbQuery, IGetOctroiDbQuery, IGetSurfaceDbQuery } from './evolution-titres.queries.types.js'
+import { DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts'
+import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { DepartementId } from 'camino-common/src/static/departement'
+import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts'
+import { EtapeTypeId, ETAPES_TYPES } from 'camino-common/src/static/etapesTypes'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { AnneeCountStatistique, anneeCountStatistiqueValidator } from 'camino-common/src/statistiques'
+import { Redefine, dbQueryAndValidate } from '../../../pg-database'
+import { IGetDepotDbQuery, IGetEtapesTypesDecisionRefusDbQuery, IGetOctroiDbQuery, IGetSurfaceDbQuery } from './evolution-titres.queries.types'
 import { Pool } from 'pg'
 
 interface GetDepotProps {
diff --git a/packages/api/src/api/rest/statistiques/evolution-titres.ts b/packages/api/src/api/rest/statistiques/evolution-titres.ts
index 7cf7c64c924aed9903bb2002fd9c1365c395a707..c13f65c2c1e3d562429ba2bdf6ac3b6a18df4151 100644
--- a/packages/api/src/api/rest/statistiques/evolution-titres.ts
+++ b/packages/api/src/api/rest/statistiques/evolution-titres.ts
@@ -1,14 +1,14 @@
-import { CaminoAnnee, toCaminoAnnee } from 'camino-common/src/date.js'
-import { demarcheStatutIdsNonValide } from 'camino-common/src/static/demarchesStatuts.js'
-import { DEMARCHES_TYPES_IDS } from 'camino-common/src/static/demarchesTypes.js'
-import { DepartementId } from 'camino-common/src/static/departement.js'
-import { DOMAINES_IDS } from 'camino-common/src/static/domaines.js'
-import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts.js'
-import { ETAPES_TYPES } from 'camino-common/src/static/etapesTypes.js'
-import { toTitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { TitreTypeTypeId } from 'camino-common/src/static/titresTypesTypes.js'
-import { AnneeCountStatistique, EvolutionTitres } from 'camino-common/src/statistiques.js'
-import { getDepot, getEtapesTypesDecisionRefus, getOctroi, getSurface } from './evolution-titres.queries.js'
+import { CaminoAnnee, toCaminoAnnee } from 'camino-common/src/date'
+import { demarcheStatutIdsNonValide } from 'camino-common/src/static/demarchesStatuts'
+import { DEMARCHES_TYPES_IDS } from 'camino-common/src/static/demarchesTypes'
+import { DepartementId } from 'camino-common/src/static/departement'
+import { DOMAINES_IDS } from 'camino-common/src/static/domaines'
+import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts'
+import { ETAPES_TYPES } from 'camino-common/src/static/etapesTypes'
+import { toTitreTypeId } from 'camino-common/src/static/titresTypes'
+import { TitreTypeTypeId } from 'camino-common/src/static/titresTypesTypes'
+import { AnneeCountStatistique, EvolutionTitres } from 'camino-common/src/statistiques'
+import { getDepot, getEtapesTypesDecisionRefus, getOctroi, getSurface } from './evolution-titres.queries'
 import type { Pool } from 'pg'
 
 export const evolutionTitres = async (pool: Pool, titreTypeTypeId: TitreTypeTypeId, departements: DepartementId[], anneeCurrent: CaminoAnnee, anneeDepart = 2017): Promise<EvolutionTitres> => {
diff --git a/packages/api/src/api/rest/statistiques/granulats-marins.test.integration.ts b/packages/api/src/api/rest/statistiques/granulats-marins.test.integration.ts
index 662663c8aab2a3026e9fa40f2492aedd425f2be2..d531ef37766d5a1f917688e210dc8285b921d536 100644
--- a/packages/api/src/api/rest/statistiques/granulats-marins.test.integration.ts
+++ b/packages/api/src/api/rest/statistiques/granulats-marins.test.integration.ts
@@ -1,8 +1,8 @@
-import { restCall } from '../../../../tests/_utils/index.js'
-import { dbManager } from '../../../../tests/db-manager.js'
+import { restCall } from '../../../../tests/_utils/index'
+import { dbManager } from '../../../../tests/db-manager'
 import { expect, test, afterAll, beforeAll, vi } from 'vitest'
 import type { Pool } from 'pg'
-import { caminoAnneeValidator } from 'camino-common/src/date.js'
+import { caminoAnneeValidator } from 'camino-common/src/date'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/api/rest/statistiques/granulats-marins.ts b/packages/api/src/api/rest/statistiques/granulats-marins.ts
index 665eeef2e5e51ed3520adb2dcc17c508bdb03983..6db6111589d0fa95341bd2a6a30acb8d405ffc82 100644
--- a/packages/api/src/api/rest/statistiques/granulats-marins.ts
+++ b/packages/api/src/api/rest/statistiques/granulats-marins.ts
@@ -1,14 +1,14 @@
-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 { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
-import { StatistiqueGranulatsMarinsStatAnnee, StatistiquesGranulatsMarins } from 'camino-common/src/statistiques.js'
-import { capitalize } from 'camino-common/src/strings.js'
-import { CaminoAnnee, caminoAnneeToNumber, intervalleAnnees, toCaminoAnnee } from 'camino-common/src/date.js'
-import { isTitreValide, TitresStatutIds } from 'camino-common/src/static/titresStatuts.js'
+import { ITitre, ITitreActivite } from '../../../types'
+
+import { titresGet } from '../../../database/queries/titres'
+import { titresActivitesGet } from '../../../database/queries/titres-activites'
+import { userSuper } from '../../../database/user-super'
+import { concessionsValidesBuild, titresSurfaceIndexBuild } from '../../graphql/resolvers/statistiques'
+import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts'
+import { StatistiqueGranulatsMarinsStatAnnee, StatistiquesGranulatsMarins } from 'camino-common/src/statistiques'
+import { capitalize } from 'camino-common/src/strings'
+import { CaminoAnnee, caminoAnneeToNumber, intervalleAnnees, toCaminoAnnee } from 'camino-common/src/date'
+import { isTitreValide, TitresStatutIds } from 'camino-common/src/static/titresStatuts'
 
 const statistiquesGranulatsMarinsActivitesFind = (titresActivites: ITitreActivite[], props: string[]) =>
   titresActivites.reduce(
diff --git a/packages/api/src/api/rest/statistiques/guyane.test.integration.ts b/packages/api/src/api/rest/statistiques/guyane.test.integration.ts
index e0b6d4167540a7afa1b7a455b522072090f15e17..0fa6b50cb37b211106c59af427422aa526e78c87 100644
--- a/packages/api/src/api/rest/statistiques/guyane.test.integration.ts
+++ b/packages/api/src/api/rest/statistiques/guyane.test.integration.ts
@@ -1,8 +1,8 @@
-import { restCall } from '../../../../tests/_utils/index.js'
-import { dbManager } from '../../../../tests/db-manager.js'
+import { restCall } from '../../../../tests/_utils/index'
+import { dbManager } from '../../../../tests/db-manager'
 import { expect, test, afterAll, beforeAll, vi } from 'vitest'
 import type { Pool } from 'pg'
-import { caminoAnneeValidator } from 'camino-common/src/date.js'
+import { caminoAnneeValidator } from 'camino-common/src/date'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/api/rest/statistiques/guyane.ts b/packages/api/src/api/rest/statistiques/guyane.ts
index a49b8109463346596e8dbedb59e36a7027142f0e..7582a1614070e6dd58ccadb05b9b715e2623344f 100644
--- a/packages/api/src/api/rest/statistiques/guyane.ts
+++ b/packages/api/src/api/rest/statistiques/guyane.ts
@@ -1,20 +1,20 @@
-import { DEPARTEMENT_IDS } from 'camino-common/src/static/departement.js'
-import { TITRES_TYPES_TYPES_IDS } from 'camino-common/src/static/titresTypesTypes.js'
-import { StatistiquesGuyaneData } from 'camino-common/src/statistiques.js'
-import { evolutionTitres } from './evolution-titres.js'
-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 { titresSurfaceIndexBuild } from '../../graphql/resolvers/statistiques.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { CaminoAnnee, caminoAnneeToNumber, intervalleAnnees, toCaminoAnnee } from 'camino-common/src/date.js'
-import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
+import { DEPARTEMENT_IDS } from 'camino-common/src/static/departement'
+import { TITRES_TYPES_TYPES_IDS } from 'camino-common/src/static/titresTypesTypes'
+import { StatistiquesGuyaneData } from 'camino-common/src/statistiques'
+import { evolutionTitres } from './evolution-titres'
+import { ITitre, ITitreActivite } from '../../../types'
+
+import { titresGet } from '../../../database/queries/titres'
+import { titresActivitesGet } from '../../../database/queries/titres-activites'
+import { userSuper } from '../../../database/user-super'
+import { titresSurfaceIndexBuild } from '../../graphql/resolvers/statistiques'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { CaminoAnnee, caminoAnneeToNumber, intervalleAnnees, toCaminoAnnee } from 'camino-common/src/date'
+import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts'
 import type { Pool } from 'pg'
-import { capitalize } from 'camino-common/src/strings.js'
-import { isTitreValide } from 'camino-common/src/static/titresStatuts.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
+import { capitalize } from 'camino-common/src/strings'
+import { isTitreValide } from 'camino-common/src/static/titresStatuts'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
 
 const statistiquesGuyaneActivitesBuild = (sectionId: string, titresActivites: ITitreActivite[], init: { [key: string]: number }) =>
   titresActivites.reduce((acc: { [key: string]: number }, ta) => {
diff --git a/packages/api/src/api/rest/statistiques/index.ts b/packages/api/src/api/rest/statistiques/index.ts
index bfd494d44a1b9dd34add2a12b0fdd8b01709e212..6089bd956b5488ad03c6ca306050eb70618545dc 100644
--- a/packages/api/src/api/rest/statistiques/index.ts
+++ b/packages/api/src/api/rest/statistiques/index.ts
@@ -1,14 +1,14 @@
-import { CaminoRequest, CustomResponse } from '../express-type.js'
-import { StatistiquesMinerauxMetauxMetropole, StatistiquesDGTM, StatistiquesGuyaneData, StatistiquesGranulatsMarins } from 'camino-common/src/statistiques.js'
-import { getMinerauxMetauxMetropolesStatsInside } from './metaux-metropole.js'
+import { CaminoRequest, CustomResponse } from '../express-type'
+import { StatistiquesMinerauxMetauxMetropole, StatistiquesDGTM, StatistiquesGuyaneData, StatistiquesGranulatsMarins } from 'camino-common/src/statistiques'
+import { getMinerauxMetauxMetropolesStatsInside } from './metaux-metropole'
 
-import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { getDGTMStatsInside } from './dgtm.js'
-import { getGuyaneStatsInside } from './guyane.js'
-import { isAdministration } from 'camino-common/src/roles.js'
-import { statistiquesGranulatsMarins } from './granulats-marins.js'
-import { caminoAnneeValidator, getCurrentAnnee } from 'camino-common/src/date.js'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { getDGTMStatsInside } from './dgtm'
+import { getGuyaneStatsInside } from './guyane'
+import { isAdministration } from 'camino-common/src/roles'
+import { statistiquesGranulatsMarins } from './granulats-marins'
+import { caminoAnneeValidator, getCurrentAnnee } from 'camino-common/src/date'
 import type { Pool } from 'pg'
 
 export const getDGTMStats = (pool: Pool) => async (req: CaminoRequest, res: CustomResponse<StatistiquesDGTM>) => {
diff --git a/packages/api/src/api/rest/statistiques/metaux-metropole.queries.ts b/packages/api/src/api/rest/statistiques/metaux-metropole.queries.ts
index 356e92506f86a78b09dfc8f708a79b746f3ceede..523a96f5fdaa54c45a61842ebe9c172189de8a78 100644
--- a/packages/api/src/api/rest/statistiques/metaux-metropole.queries.ts
+++ b/packages/api/src/api/rest/statistiques/metaux-metropole.queries.ts
@@ -1,16 +1,12 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { AnneeCountStatistique, anneeCountStatistiqueValidator } from 'camino-common/src/statistiques.js'
-import { Redefine, dbQueryAndValidate } from '../../../pg-database.js'
-import {
-  IGetSubstancesByEntrepriseCategoryByAnneeInternalQuery,
-  IGetTitreActiviteSubstanceParAnneeInternalQuery,
-  IGetsubstancesByAnneeByCommuneInternalQuery,
-} from './metaux-metropole.queries.types.js'
-import { SUBSTANCES_FISCALES_IDS, SubstanceFiscaleId, substanceFiscaleIdValidator } from 'camino-common/src/static/substancesFiscales.js'
+import { AnneeCountStatistique, anneeCountStatistiqueValidator } from 'camino-common/src/statistiques'
+import { Redefine, dbQueryAndValidate } from '../../../pg-database'
+import { IGetSubstancesByEntrepriseCategoryByAnneeInternalQuery, IGetTitreActiviteSubstanceParAnneeInternalQuery, IGetsubstancesByAnneeByCommuneInternalQuery } from './metaux-metropole.queries.types'
+import { SUBSTANCES_FISCALES_IDS, SubstanceFiscaleId, substanceFiscaleIdValidator } from 'camino-common/src/static/substancesFiscales'
 import { z } from 'zod'
-import { caminoAnneeValidator } from 'camino-common/src/date.js'
-import { communeIdValidator } from 'camino-common/src/static/communes.js'
+import { caminoAnneeValidator } from 'camino-common/src/date'
+import { communeIdValidator } from 'camino-common/src/static/communes'
 import { Pool } from 'pg'
 
 export const getTitreActiviteSubstanceParAnnee = async (pool: Pool, params: { substanceFiscale: SubstanceFiscaleId }) =>
diff --git a/packages/api/src/api/rest/statistiques/metaux-metropole.test.integration.ts b/packages/api/src/api/rest/statistiques/metaux-metropole.test.integration.ts
index cbebaec97bb746c76f150ed861c86223e5e04e85..594b99d3b5db6584bc586c4b749d7b7e13bb2323 100644
--- a/packages/api/src/api/rest/statistiques/metaux-metropole.test.integration.ts
+++ b/packages/api/src/api/rest/statistiques/metaux-metropole.test.integration.ts
@@ -1,5 +1,5 @@
-import { restCall } from '../../../../tests/_utils/index.js'
-import { dbManager } from '../../../../tests/db-manager.js'
+import { restCall } from '../../../../tests/_utils/index'
+import { dbManager } from '../../../../tests/db-manager'
 import { expect, test, afterAll, beforeAll, vi } from 'vitest'
 import type { Pool } from 'pg'
 
diff --git a/packages/api/src/api/rest/statistiques/metaux-metropole.ts b/packages/api/src/api/rest/statistiques/metaux-metropole.ts
index a9feffb0541c1803289f94547a1168335ac1d8be..7fe268e18e79564efc4d588acabf29bc6d60298d 100644
--- a/packages/api/src/api/rest/statistiques/metaux-metropole.ts
+++ b/packages/api/src/api/rest/statistiques/metaux-metropole.ts
@@ -1,18 +1,18 @@
-import { FiscaliteParSubstanceParAnnee, StatistiquesMinerauxMetauxMetropole, StatistiquesMinerauxMetauxMetropoleSels, substancesFiscalesStats } from 'camino-common/src/statistiques.js'
-import { CaminoAnnee, anneeSuivante, toCaminoAnnee, getCurrentAnnee } from 'camino-common/src/date.js'
-import { fromUniteFiscaleToUnite } from 'camino-common/src/static/unites.js'
-import { userSuper } from '../../../database/user-super.js'
-import { titresGet } from '../../../database/queries/titres.js'
-import { isTitreValide, TitresStatutIds } from 'camino-common/src/static/titresStatuts.js'
-import { SubstancesFiscale, SUBSTANCES_FISCALES_IDS, SubstanceFiscaleId } from 'camino-common/src/static/substancesFiscales.js'
-import { Departements, departementsMetropole, toDepartementId } from 'camino-common/src/static/departement.js'
-import { REGION_IDS, regions } from 'camino-common/src/static/region.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'
+import { FiscaliteParSubstanceParAnnee, StatistiquesMinerauxMetauxMetropole, StatistiquesMinerauxMetauxMetropoleSels, substancesFiscalesStats } from 'camino-common/src/statistiques'
+import { CaminoAnnee, anneeSuivante, toCaminoAnnee, getCurrentAnnee } from 'camino-common/src/date'
+import { fromUniteFiscaleToUnite } from 'camino-common/src/static/unites'
+import { userSuper } from '../../../database/user-super'
+import { titresGet } from '../../../database/queries/titres'
+import { isTitreValide, TitresStatutIds } from 'camino-common/src/static/titresStatuts'
+import { SubstancesFiscale, SUBSTANCES_FISCALES_IDS, SubstanceFiscaleId } from 'camino-common/src/static/substancesFiscales'
+import { Departements, departementsMetropole, toDepartementId } from 'camino-common/src/static/departement'
+import { REGION_IDS, regions } from 'camino-common/src/static/region'
+import { apiOpenfiscaCalculate, OpenfiscaRequest, redevanceCommunale, redevanceDepartementale, substanceFiscaleToInput } from '../../../tools/api-openfisca/index'
+import { onlyUnique } from 'camino-common/src/typescript-tools'
+import { TITRES_TYPES_TYPES_IDS } from 'camino-common/src/static/titresTypesTypes'
+import { evolutionTitres } from './evolution-titres'
 import type { Pool } from 'pg'
-import { getSubstancesByEntrepriseCategoryByAnnee, getTitreActiviteSubstanceParAnnee, getsubstancesByAnneeByCommune } from './metaux-metropole.queries.js'
+import { getSubstancesByEntrepriseCategoryByAnnee, getTitreActiviteSubstanceParAnnee, getsubstancesByAnneeByCommune } from './metaux-metropole.queries'
 
 export const getMinerauxMetauxMetropolesStatsInside = async (pool: Pool): Promise<StatistiquesMinerauxMetauxMetropole> => {
   const result = await statistiquesMinerauxMetauxMetropoleInstantBuild()
diff --git a/packages/api/src/api/rest/titre-demande.test.integration.ts b/packages/api/src/api/rest/titre-demande.test.integration.ts
index 27b576542c894d36fa8e437be1cfa95e4def16aa..869e53819d8308415d03a161a0a50459333a6b5e 100644
--- a/packages/api/src/api/rest/titre-demande.test.integration.ts
+++ b/packages/api/src/api/rest/titre-demande.test.integration.ts
@@ -1,11 +1,11 @@
-import { newEntrepriseId } from 'camino-common/src/entreprise.js'
-import { dbManager } from '../../../tests/db-manager.js'
-import { restCall, restPostCall } from '../../../tests/_utils/index.js'
-import { entrepriseUpsert } from '../../database/queries/entreprises.js'
+import { newEntrepriseId } from 'camino-common/src/entreprise'
+import { dbManager } from '../../../tests/db-manager'
+import { restCall, restPostCall } from '../../../tests/_utils/index'
+import { entrepriseUpsert } from '../../database/queries/entreprises'
 import { afterAll, beforeAll, describe, test, expect, vi, beforeEach } from 'vitest'
 import type { Pool } from 'pg'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { TitreDemande } from 'camino-common/src/titres.js'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { TitreDemande } from 'camino-common/src/titres'
 console.info = vi.fn()
 console.error = vi.fn()
 
diff --git a/packages/api/src/api/rest/titre-demande.ts b/packages/api/src/api/rest/titre-demande.ts
index 646217a701d3a3829d67f121601a78a7feb08330..5a47bda1117546dc4430c09a59ef2a33d8dbdecc 100644
--- a/packages/api/src/api/rest/titre-demande.ts
+++ b/packages/api/src/api/rest/titre-demande.ts
@@ -1,24 +1,24 @@
-import { ITitreEtape } from '../../types.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'
-
-import titreUpdateTask from '../../business/titre-update.js'
-import { titreDemarcheUpdate } from '../../business/titre-demarche-update.js'
-import { titreEtapeUpdateTask } from '../../business/titre-etape-update.js'
-import { userSuper } from '../../database/user-super.js'
-import { User, isBureauDEtudes, isEntreprise, isEntrepriseOrBureauDEtude } from 'camino-common/src/roles.js'
-import { linkTitres } from '../../database/queries/titres-titres.js'
-import { getLinkConfig, canCreateTitre } from 'camino-common/src/permissions/titres.js'
-import { checkTitreLinks } from '../../business/validations/titre-links-validate.js'
-import { utilisateurTitreCreate } from '../../database/queries/utilisateurs.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
-import { isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape.js'
-import { TitreDemandeOutput, titreDemandeValidator } from 'camino-common/src/titres.js'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
+import { ITitreEtape } from '../../types'
+import { titreCreate, titreGet, titresGet } from '../../database/queries/titres'
+import { titreDemarcheCreate } from '../../database/queries/titres-demarches'
+import { titreEtapeUpsert } from '../../database/queries/titres-etapes'
+
+import titreUpdateTask from '../../business/titre-update'
+import { titreDemarcheUpdate } from '../../business/titre-demarche-update'
+import { titreEtapeUpdateTask } from '../../business/titre-etape-update'
+import { userSuper } from '../../database/user-super'
+import { User, isBureauDEtudes, isEntreprise, isEntrepriseOrBureauDEtude } from 'camino-common/src/roles'
+import { linkTitres } from '../../database/queries/titres-titres'
+import { getLinkConfig, canCreateTitre } from 'camino-common/src/permissions/titres'
+import { checkTitreLinks } from '../../business/validations/titre-links-validate'
+import { utilisateurTitreCreate } from '../../database/queries/utilisateurs'
+import { toCaminoDate } from 'camino-common/src/date'
+import { isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape'
+import { TitreDemandeOutput, titreDemandeValidator } from 'camino-common/src/titres'
+import { HTTP_STATUS } from 'camino-common/src/http'
 import { Pool } from 'pg'
-import { CaminoRequest, CustomResponse } from './express-type.js'
+import { CaminoRequest, CustomResponse } from './express-type'
 
 export const titreDemandeCreer = (pool: Pool) => async (req: CaminoRequest, res: CustomResponse<TitreDemandeOutput>) => {
   const user: User = req.auth
diff --git a/packages/api/src/api/rest/titre-heritage.ts b/packages/api/src/api/rest/titre-heritage.ts
index ae0106607476479451b1cec7fad2cf5775979ee2..930637a4c639befb97665051f4c6fc6539da5be0 100644
--- a/packages/api/src/api/rest/titre-heritage.ts
+++ b/packages/api/src/api/rest/titre-heritage.ts
@@ -1,8 +1,8 @@
-import { DemarcheEtape } from 'camino-common/src/demarche.js'
+import { DemarcheEtape } from 'camino-common/src/demarche'
 import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
-import { isFondamentalesStatutOk } from 'camino-common/src/static/etapesStatuts.js'
-import { isEtapeTypeIdFondamentale } from 'camino-common/src/static/etapesTypes.js'
-import { TitrePropTitreEtapeFindDemarche } from 'camino-common/src/titres.js'
+import { isFondamentalesStatutOk } from 'camino-common/src/static/etapesStatuts'
+import { isEtapeTypeIdFondamentale } from 'camino-common/src/static/etapesTypes'
+import { TitrePropTitreEtapeFindDemarche } from 'camino-common/src/titres'
 
 export const getMostRecentEtapeFondamentaleValide = <F extends Pick<DemarcheEtape, 'etape_statut_id' | 'etape_type_id' | 'ordre' | 'is_brouillon'>>(
   titreDemarches: TitrePropTitreEtapeFindDemarche<F>[]
diff --git a/packages/api/src/api/rest/titres.queries.ts b/packages/api/src/api/rest/titres.queries.ts
index 4334d15ce639964dd8c755ccb95cf533b00408cc..55d070bb7f12ae8a75c32479df5e64a5f2772cd2 100644
--- a/packages/api/src/api/rest/titres.queries.ts
+++ b/packages/api/src/api/rest/titres.queries.ts
@@ -1,7 +1,7 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { getMostRecentValuePropFromEtapeFondamentaleValide, TitreGet, TitreGetDemarche, titreGetValidator } from 'camino-common/src/titres.js'
-import { Redefine, dbQueryAndValidate } from '../../pg-database.js'
+import { getMostRecentValuePropFromEtapeFondamentaleValide, TitreGet, TitreGetDemarche, titreGetValidator } from 'camino-common/src/titres'
+import { Redefine, dbQueryAndValidate } from '../../pg-database'
 import {
   IGetAdministrationsLocalesByTitreIdDbQuery,
   IGetDemarchesByTitreIdQueryDbQuery,
@@ -9,39 +9,39 @@ import {
   IGetTitreByIdOrSlugDbQuery,
   IGetTitreInternalQuery,
   IGetTitulairesAmodiatairesByTitreIdDbQuery,
-} from './titres.queries.types.js'
-import { caminoDateValidator } from 'camino-common/src/date.js'
+} from './titres.queries.types'
+import { caminoDateValidator } from 'camino-common/src/date'
 import { z } from 'zod'
-import { Commune, communeIdValidator } from 'camino-common/src/static/communes.js'
+import { Commune, communeIdValidator } from 'camino-common/src/static/communes'
 import { Pool } from 'pg'
-import { titreTypeIdValidator } from 'camino-common/src/static/titresTypes.js'
-import { User } from 'camino-common/src/roles.js'
-import { titreStatutIdValidator } from 'camino-common/src/static/titresStatuts.js'
-import { titreReferenceValidator } from 'camino-common/src/titres-references.js'
-import { DemarcheEtape, DemarcheEtapeCommon, DemarcheEtapeFondamentale, DemarcheEtapeNonFondamentale, demarcheIdValidator, demarcheSlugValidator } from 'camino-common/src/demarche.js'
-import { demarcheStatutIdValidator } from 'camino-common/src/static/demarchesStatuts.js'
-import { demarcheTypeIdValidator } from 'camino-common/src/static/demarchesTypes.js'
-import { getEtapesByDemarcheId } from './demarches.queries.js'
-import { canReadEtape } from './permissions/etapes.js'
-import { canReadDemarche } from './permissions/demarches.js'
-import { SectionWithValue } from 'camino-common/src/sections.js'
-import { getDocuments } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.js'
-import { getSections, getSectionsWithValue } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { OmitDistributive, isNonEmptyArray, isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, memoize } from 'camino-common/src/typescript-tools.js'
-import { getEntrepriseDocumentIdsByEtapeId, getDocumentsByEtapeId, getEtapeAvisLargeObjectIdsByEtapeId } from '../../database/queries/titres-etapes.queries.js'
-import { getAdministrationsLocales } from 'camino-common/src/administrations.js'
-import { getEntrepriseDocuments } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/entrepriseDocuments.js'
-import { isEtapeTypeIdFondamentale } from 'camino-common/src/static/etapesTypes.js'
-import { getCommunes } from '../../database/queries/communes.queries.js'
-import { EtapeAvis, EtapeDocument } from 'camino-common/src/etape.js'
-import { getDateLastJournal } from './journal.queries.js'
-import { canHaveActivites, canReadTitre } from 'camino-common/src/permissions/titres.js'
-import { canReadTitreActivites } from 'camino-common/src/permissions/activites.js'
-import { TitreIdOrSlug, titreIdValidator, titreSlugValidator, TitreId } from 'camino-common/src/validators/titres.js'
-import { EntrepriseId, entrepriseIdValidator } from 'camino-common/src/entreprise.js'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { secteurMaritimeValidator } from 'camino-common/src/static/facades.js'
-import { getAvisTypes } from 'camino-common/src/permissions/etape-form.js'
+import { titreTypeIdValidator } from 'camino-common/src/static/titresTypes'
+import { User } from 'camino-common/src/roles'
+import { titreStatutIdValidator } from 'camino-common/src/static/titresStatuts'
+import { titreReferenceValidator } from 'camino-common/src/titres-references'
+import { DemarcheEtape, DemarcheEtapeCommon, DemarcheEtapeFondamentale, DemarcheEtapeNonFondamentale, demarcheIdValidator, demarcheSlugValidator } from 'camino-common/src/demarche'
+import { demarcheStatutIdValidator } from 'camino-common/src/static/demarchesStatuts'
+import { demarcheTypeIdValidator } from 'camino-common/src/static/demarchesTypes'
+import { getEtapesByDemarcheId } from './demarches.queries'
+import { canReadEtape } from './permissions/etapes'
+import { canReadDemarche } from './permissions/demarches'
+import { SectionWithValue } from 'camino-common/src/sections'
+import { getDocuments } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/documents'
+import { getSections, getSectionsWithValue } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { OmitDistributive, isNonEmptyArray, isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, memoize } from 'camino-common/src/typescript-tools'
+import { getEntrepriseDocumentIdsByEtapeId, getDocumentsByEtapeId, getEtapeAvisLargeObjectIdsByEtapeId } from '../../database/queries/titres-etapes.queries'
+import { getAdministrationsLocales } from 'camino-common/src/administrations'
+import { getEntrepriseDocuments } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/entrepriseDocuments'
+import { isEtapeTypeIdFondamentale } from 'camino-common/src/static/etapesTypes'
+import { getCommunes } from '../../database/queries/communes.queries'
+import { EtapeAvis, EtapeDocument } from 'camino-common/src/etape'
+import { getDateLastJournal } from './journal.queries'
+import { canHaveActivites, canReadTitre } from 'camino-common/src/permissions/titres'
+import { canReadTitreActivites } from 'camino-common/src/permissions/activites'
+import { TitreIdOrSlug, titreIdValidator, titreSlugValidator, TitreId } from 'camino-common/src/validators/titres'
+import { EntrepriseId, entrepriseIdValidator } from 'camino-common/src/entreprise'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { secteurMaritimeValidator } from 'camino-common/src/static/facades'
+import { getAvisTypes } from 'camino-common/src/permissions/etape-form'
 
 type SuperEtapeDemarcheTitreGet = OmitDistributive<DemarcheEtape, 'etape_documents' | 'avis_documents'>
 type SuperDemarcheTitreGet = Omit<TitreGet['demarches'][0], 'etapes'> & { etapes: SuperEtapeDemarcheTitreGet[]; public_lecture: boolean; entreprises_lecture: boolean; titre_public_lecture: boolean }
diff --git a/packages/api/src/api/rest/titres.test.integration.ts b/packages/api/src/api/rest/titres.test.integration.ts
index 85ad20d3b61aab708693da92d8b59a1aacda5600..119aa840bf032e6f7ba8f4c862d626dd0204de26 100644
--- a/packages/api/src/api/rest/titres.test.integration.ts
+++ b/packages/api/src/api/rest/titres.test.integration.ts
@@ -1,26 +1,26 @@
-import { dbManager } from '../../../tests/db-manager.js'
-import { titreCreate, titreUpdate } from '../../database/queries/titres.js'
-import { titreDemarcheCreate } from '../../database/queries/titres-demarches.js'
-import { titreEtapeCreate } from '../../database/queries/titres-etapes.js'
-import { userSuper } from '../../database/user-super.js'
-import { restCall, restDeleteCall, restPostCall } from '../../../tests/_utils/index.js'
-import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
-import { ITitreDemarche, ITitreEtape } from '../../types.js'
-import { entreprisesUpsert } from '../../database/queries/entreprises.js'
+import { dbManager } from '../../../tests/db-manager'
+import { titreCreate, titreUpdate } from '../../database/queries/titres'
+import { titreDemarcheCreate } from '../../database/queries/titres-demarches'
+import { titreEtapeCreate } from '../../database/queries/titres-etapes'
+import { userSuper } from '../../database/user-super'
+import { restCall, restDeleteCall, restPostCall } from '../../../tests/_utils/index'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
+import { ITitreDemarche, ITitreEtape } from '../../types'
+import { entreprisesUpsert } from '../../database/queries/entreprises'
 import { Knex } from 'knex'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { toCaminoDate } from 'camino-common/src/date'
 import { afterAll, beforeAll, beforeEach, describe, test, expect, vi } from 'vitest'
-import { newEntrepriseId } from 'camino-common/src/entreprise.js'
+import { newEntrepriseId } from 'camino-common/src/entreprise'
 import type { Pool } from 'pg'
-import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create.js'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { toCommuneId } from 'camino-common/src/static/communes.js'
-import { insertCommune } from '../../database/queries/communes.queries.js'
-import { titreSlugValidator } from 'camino-common/src/validators/titres.js'
-import TitresDemarches from '../../database/models/titres-demarches.js'
-import TitresEtapes from '../../database/models/titres-etapes.js'
-import Titres from '../../database/models/titres.js'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { toCommuneId } from 'camino-common/src/static/communes'
+import { insertCommune } from '../../database/queries/communes.queries'
+import { titreSlugValidator } from 'camino-common/src/validators/titres'
+import TitresDemarches from '../../database/models/titres-demarches'
+import TitresEtapes from '../../database/models/titres-etapes'
+import Titres from '../../database/models/titres'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/api/rest/titres.ts b/packages/api/src/api/rest/titres.ts
index 27a261adc650888c4ce65378a46f4a28ea7bace2..97b7ef9de238c988e942469b52d46c4a92a65e87 100644
--- a/packages/api/src/api/rest/titres.ts
+++ b/packages/api/src/api/rest/titres.ts
@@ -1,9 +1,9 @@
-import { titreArchive, titresGet, titreGet, titreUpsert } from '../../database/queries/titres.js'
-import { ADMINISTRATION_IDS, AdministrationId } from 'camino-common/src/static/administrations.js'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-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 { titreArchive, titresGet, titreGet, titreUpsert } from '../../database/queries/titres'
+import { ADMINISTRATION_IDS, AdministrationId } from 'camino-common/src/static/administrations'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { DOMAINES_IDS } from 'camino-common/src/static/domaines'
+import { TITRES_TYPES_TYPES_IDS } from 'camino-common/src/static/titresTypesTypes'
+import { ITitre, ITitreDemarche } from '../../types'
 import {
   CommonTitreAdministration,
   CommonTitreONF,
@@ -14,31 +14,31 @@ import {
   titreOnfValidator,
   titreLinksValidator,
   utilisateurTitreAbonneValidator,
-} from 'camino-common/src/titres.js'
-import { demarcheDefinitionFind } from '../../business/rules-demarches/definitions.js'
-import { CaminoRequest, CustomResponse } from './express-type.js'
-import { userSuper } from '../../database/user-super.js'
-import { NotNullableKeys, isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefined, onlyUnique } from 'camino-common/src/typescript-tools.js'
-import TitresTitres from '../../database/models/titres--titres.js'
-import { titreAdministrationsGet } from '../_format/titres.js'
-import { canDeleteTitre, canEditTitre, canLinkTitres } from 'camino-common/src/permissions/titres.js'
-import { linkTitres } from '../../database/queries/titres-titres.js'
-import { checkTitreLinks } from '../../business/validations/titre-links-validate.js'
-import { titreEtapeForMachineValidator, 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 { CaminoDate, getCurrent } from 'camino-common/src/date.js'
-import { isAdministration, User } from 'camino-common/src/roles.js'
-import { canEditDemarche, canCreateTravaux } from 'camino-common/src/permissions/titres-demarches.js'
-import { utilisateurTitreCreate, utilisateurTitreDelete } from '../../database/queries/utilisateurs.js'
-import titreUpdateTask from '../../business/titre-update.js'
-import { getDoublonsByTitreId, getTitre as getTitreDb } from './titres.queries.js'
+} from 'camino-common/src/titres'
+import { demarcheDefinitionFind } from '../../business/rules-demarches/definitions'
+import { CaminoRequest, CustomResponse } from './express-type'
+import { userSuper } from '../../database/user-super'
+import { NotNullableKeys, isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefined, onlyUnique } from 'camino-common/src/typescript-tools'
+import TitresTitres from '../../database/models/titres--titres'
+import { titreAdministrationsGet } from '../_format/titres'
+import { canDeleteTitre, canEditTitre, canLinkTitres } from 'camino-common/src/permissions/titres'
+import { linkTitres } from '../../database/queries/titres-titres'
+import { checkTitreLinks } from '../../business/validations/titre-links-validate'
+import { titreEtapeForMachineValidator, toMachineEtapes } from '../../business/rules-demarches/machine-common'
+import { TitreReference } from 'camino-common/src/titres-references'
+import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts'
+import { ETAPES_TYPES, EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { CaminoDate, getCurrent } from 'camino-common/src/date'
+import { isAdministration, User } from 'camino-common/src/roles'
+import { canEditDemarche, canCreateTravaux } from 'camino-common/src/permissions/titres-demarches'
+import { utilisateurTitreCreate, utilisateurTitreDelete } from '../../database/queries/utilisateurs'
+import titreUpdateTask from '../../business/titre-update'
+import { getDoublonsByTitreId, getTitre as getTitreDb } from './titres.queries'
 import type { Pool } from 'pg'
 import { z } from 'zod'
-import { TitresStatutIds } from 'camino-common/src/static/titresStatuts.js'
-import { getTitreUtilisateur } from '../../database/queries/titres-utilisateurs.queries.js'
-import { titreIdValidator, titreIdOrSlugValidator, TitreId } from 'camino-common/src/validators/titres.js'
+import { TitresStatutIds } from 'camino-common/src/static/titresStatuts'
+import { getTitreUtilisateur } from '../../database/queries/titres-utilisateurs.queries'
+import { titreIdValidator, titreIdOrSlugValidator, TitreId } from 'camino-common/src/validators/titres'
 
 const etapesAMasquer = [
   ETAPES_TYPES.classementSansSuite,
diff --git a/packages/api/src/api/rest/upload.test.ts b/packages/api/src/api/rest/upload.test.ts
index 6ed62842067123b28ed00387b70dff880527c671..df148b793243f96f4e461cbf2e091a406a22c690 100644
--- a/packages/api/src/api/rest/upload.test.ts
+++ b/packages/api/src/api/rest/upload.test.ts
@@ -1,8 +1,8 @@
-import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
 import { vi, describe, test, expect } from 'vitest'
-import { uploadAllowedMiddleware } from '../../server/upload.js'
+import { uploadAllowedMiddleware } from '../../server/upload'
 import { Request, Response } from 'express'
-import { TestUser } from 'camino-common/src/tests-utils.js'
+import { TestUser } from 'camino-common/src/tests-utils'
 
 console.info = vi.fn()
 describe('téléversement de fichier par rest (tus)', () => {
diff --git a/packages/api/src/api/rest/utilisateurs.test.integration.ts b/packages/api/src/api/rest/utilisateurs.test.integration.ts
index f4bddcd66012038770cf3d7cc741d32c1511577d..08dbe2b7042e122c10d2ead515b7a0379d2c60d0 100644
--- a/packages/api/src/api/rest/utilisateurs.test.integration.ts
+++ b/packages/api/src/api/rest/utilisateurs.test.integration.ts
@@ -1,15 +1,15 @@
-import { restCall, restPostCall, userGenerate } from '../../../tests/_utils/index.js'
-import { dbManager } from '../../../tests/db-manager.js'
+import { restCall, restPostCall, userGenerate } from '../../../tests/_utils/index'
+import { dbManager } from '../../../tests/db-manager'
 import { Knex } from 'knex'
 import { expect, test, describe, afterAll, beforeAll, vi } from 'vitest'
-import { UtilisateurToEdit } from 'camino-common/src/utilisateur.js'
+import { UtilisateurToEdit } from 'camino-common/src/utilisateur'
 import type { Pool } from 'pg'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { userSuper } from '../../database/user-super.js'
-import { newUtilisateurId } from '../../database/models/_format/id-create.js'
-import { KeycloakFakeServer, idUserKeycloakRecognised, setupKeycloak, teardownKeycloak } from '../../../tests/keycloak.js'
-import { renewConfig } from '../../config/index.js'
-import { utilisateurIdValidator } from 'camino-common/src/roles.js'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { userSuper } from '../../database/user-super'
+import { newUtilisateurId } from '../../database/models/_format/id-create'
+import { KeycloakFakeServer, idUserKeycloakRecognised, setupKeycloak, teardownKeycloak } from '../../../tests/keycloak'
+import { renewConfig } from '../../config/index'
+import { utilisateurIdValidator } from 'camino-common/src/roles'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/api/rest/utilisateurs.ts b/packages/api/src/api/rest/utilisateurs.ts
index 61fa847c066b3fc63db43d6266c4473f766e356d..3d42dce2db70116348f12edfa39bc6932a7a1753 100644
--- a/packages/api/src/api/rest/utilisateurs.ts
+++ b/packages/api/src/api/rest/utilisateurs.ts
@@ -1,22 +1,22 @@
-import { userGet, utilisateurGet, utilisateursGet, utilisateurUpsert } from '../../database/queries/utilisateurs.js'
-import { CaminoRequest, CustomResponse } from './express-type.js'
-import { formatUser, IUtilisateursColonneId } from '../../types.js'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { isSubscribedToNewsLetter, newsletterSubscriberUpdate } from '../../tools/api-mailjet/newsletter.js'
-import { isAdministrationRole, isEntrepriseOrBureauDetudeRole, isRole, User } from 'camino-common/src/roles.js'
-import { utilisateursFormatTable } from './format/utilisateurs.js'
-import { tableConvert } from './_convert.js'
-import { fileNameCreate } from '../../tools/file-name-create.js'
-import { newsletterAbonnementValidator, QGISToken, utilisateurToEdit } from 'camino-common/src/utilisateur.js'
-import { knex } from '../../knex.js'
-import { idGenerate } from '../../database/models/_format/id-create.js'
+import { userGet, utilisateurGet, utilisateursGet, utilisateurUpsert } from '../../database/queries/utilisateurs'
+import { CaminoRequest, CustomResponse } from './express-type'
+import { formatUser, IUtilisateursColonneId } from '../../types'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { isSubscribedToNewsLetter, newsletterSubscriberUpdate } from '../../tools/api-mailjet/newsletter'
+import { isAdministrationRole, isEntrepriseOrBureauDetudeRole, isRole, User } from 'camino-common/src/roles'
+import { utilisateursFormatTable } from './format/utilisateurs'
+import { tableConvert } from './_convert'
+import { fileNameCreate } from '../../tools/file-name-create'
+import { newsletterAbonnementValidator, QGISToken, utilisateurToEdit } from 'camino-common/src/utilisateur'
+import { knex } from '../../knex'
+import { idGenerate } from '../../database/models/_format/id-create'
 import bcrypt from 'bcryptjs'
-import { utilisateurUpdationValidate } from '../../business/validations/utilisateur-updation-validate.js'
-import { canDeleteUtilisateur } from 'camino-common/src/permissions/utilisateurs.js'
-import { DownloadFormat } from 'camino-common/src/rest.js'
+import { utilisateurUpdationValidate } from '../../business/validations/utilisateur-updation-validate'
+import { canDeleteUtilisateur } from 'camino-common/src/permissions/utilisateurs'
+import { DownloadFormat } from 'camino-common/src/rest'
 import { Pool } from 'pg'
-import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { config } from '../../config/index.js'
+import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { config } from '../../config/index'
 
 export const isSubscribedToNewsletter = (_pool: Pool) => async (req: CaminoRequest, res: CustomResponse<boolean>) => {
   const user = req.auth
diff --git a/packages/api/src/business/_logs-update.ts b/packages/api/src/business/_logs-update.ts
index a7936b0e9f3dbccf7541ffcd33fccc0210bc4b35..6f0c9ef315a515b658f8aa06683dcc3c196d64a4 100644
--- a/packages/api/src/business/_logs-update.ts
+++ b/packages/api/src/business/_logs-update.ts
@@ -1,5 +1,5 @@
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
-import { Index, IEntrepriseEtablissement, IEntreprise } from '../types.js'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
+import { Index, IEntrepriseEtablissement, IEntreprise } from '../types'
 
 export const logsUpdate = ({
   titresEtapesStatusUpdated,
diff --git a/packages/api/src/business/daily.ts b/packages/api/src/business/daily.ts
index 8732836478697f519f9c3799ed438919bbaad070..ed2388f5d5f62f16b3e1a651dc07aab4c1ba0af7 100644
--- a/packages/api/src/business/daily.ts
+++ b/packages/api/src/business/daily.ts
@@ -1,25 +1,25 @@
-import { titresActivitesStatutIdsUpdate } from './processes/titres-activites-statut-ids-update.js'
-import { titresActivitesUpdate } from './processes/titres-activites-update.js'
-import { titresDemarchesOrdreUpdate } from './processes/titres-demarches-ordre-update.js'
-import { titresDemarchesPublicUpdate } from './processes/titres-demarches-public-update.js'
-import { titresDemarchesStatutIdUpdate } from './processes/titres-demarches-statut-ids-update.js'
-import { titresEtapesAdministrationsLocalesUpdate } from './processes/titres-etapes-administrations-locales-update.js'
-import { titresEtapesOrdreUpdate } from './processes/titres-etapes-ordre-update.js'
-import { titresDemarchesDatesUpdate } from './processes/titres-phases-update.js'
-import { titresPublicUpdate } from './processes/titres-public-update.js'
-import { titresPropsEtapesIdsUpdate } from './processes/titres-props-etapes-ids-update.js'
-import { titresStatutIdsUpdate } from './processes/titres-statut-ids-update.js'
-import { titresEtapesHeritagePropsUpdate } from './processes/titres-etapes-heritage-props-update.js'
-import { titresEtapesHeritageContenuUpdate } from './processes/titres-etapes-heritage-contenu-update.js'
-import { titresActivitesPropsUpdate } from './processes/titres-activites-props-update.js'
-import { titresSlugsUpdate } from './processes/titres-slugs-update.js'
-import { logsUpdate } from './_logs-update.js'
-import { userSuper } from '../database/user-super.js'
-import { titresActivitesRelanceSend } from './processes/titres-activites-relance-send.js'
+import { titresActivitesStatutIdsUpdate } from './processes/titres-activites-statut-ids-update'
+import { titresActivitesUpdate } from './processes/titres-activites-update'
+import { titresDemarchesOrdreUpdate } from './processes/titres-demarches-ordre-update'
+import { titresDemarchesPublicUpdate } from './processes/titres-demarches-public-update'
+import { titresDemarchesStatutIdUpdate } from './processes/titres-demarches-statut-ids-update'
+import { titresEtapesAdministrationsLocalesUpdate } from './processes/titres-etapes-administrations-locales-update'
+import { titresEtapesOrdreUpdate } from './processes/titres-etapes-ordre-update'
+import { titresDemarchesDatesUpdate } from './processes/titres-phases-update'
+import { titresPublicUpdate } from './processes/titres-public-update'
+import { titresPropsEtapesIdsUpdate } from './processes/titres-props-etapes-ids-update'
+import { titresStatutIdsUpdate } from './processes/titres-statut-ids-update'
+import { titresEtapesHeritagePropsUpdate } from './processes/titres-etapes-heritage-props-update'
+import { titresEtapesHeritageContenuUpdate } from './processes/titres-etapes-heritage-contenu-update'
+import { titresActivitesPropsUpdate } from './processes/titres-activites-props-update'
+import { titresSlugsUpdate } from './processes/titres-slugs-update'
+import { logsUpdate } from './_logs-update'
+import { userSuper } from '../database/user-super'
+import { titresActivitesRelanceSend } from './processes/titres-activites-relance-send'
 import type { Pool } from 'pg'
-import { demarchesDefinitionsCheck } from '../tools/demarches/definitions-check.js'
-import { titreTypeDemarcheTypeEtapeTypeCheck } from '../tools/demarches/tde-check.js'
-import { titresEtapesStatutUpdate } from './processes/titres-etapes-statut-update.js'
+import { demarchesDefinitionsCheck } from '../tools/demarches/definitions-check'
+import { titreTypeDemarcheTypeEtapeTypeCheck } from '../tools/demarches/tde-check'
+import { titresEtapesStatutUpdate } from './processes/titres-etapes-statut-update'
 
 export const daily = async (pool: Pool) => {
   try {
diff --git a/packages/api/src/business/entreprises-guyane.ts b/packages/api/src/business/entreprises-guyane.ts
index 3b40ac5dbc7912594aabe958d51bf8d59eaf900a..e9d40a24ef4051346934d14c3e10c6556d18943d 100644
--- a/packages/api/src/business/entreprises-guyane.ts
+++ b/packages/api/src/business/entreprises-guyane.ts
@@ -1,9 +1,9 @@
-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'
-import { exploitantsGuyaneSubscriberUpdate } from '../tools/api-mailjet/newsletter.js'
-import { isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
+import { toDepartementId, Departements, CodePostal } from 'camino-common/src/static/departement'
+import { PAYS_IDS } from 'camino-common/src/static/pays'
+import { Regions } from 'camino-common/src/static/region'
+import { knex } from '../knex'
+import { exploitantsGuyaneSubscriberUpdate } from '../tools/api-mailjet/newsletter'
+import { isNullOrUndefined } from 'camino-common/src/typescript-tools'
 
 interface Result {
   id: string
diff --git a/packages/api/src/business/matrices.test.ts b/packages/api/src/business/matrices.test.ts
index c0305eb8f91f0c81fbd23f2f0134f549290eb6c8..1cbeaff82113cd683ec81307540286954dd4305e 100644
--- a/packages/api/src/business/matrices.test.ts
+++ b/packages/api/src/business/matrices.test.ts
@@ -1,10 +1,10 @@
-import { buildMatrices } from './matrices.js'
-import { ITitre } from '../types.js'
-import { newEntrepriseId } from 'camino-common/src/entreprise.js'
+import { buildMatrices } from './matrices'
+import { ITitre } from '../types'
+import { newEntrepriseId } from 'camino-common/src/entreprise'
 import { describe, expect, test } from 'vitest'
-import { toCommuneId } from 'camino-common/src/static/communes.js'
-import { newTitreId } from '../database/models/_format/id-create.js'
-import { titreSlugValidator } from 'camino-common/src/validators/titres.js'
+import { toCommuneId } from 'camino-common/src/static/communes'
+import { newTitreId } from '../database/models/_format/id-create'
+import { titreSlugValidator } from 'camino-common/src/validators/titres'
 import { checkCodePostal } from 'camino-common/src/static/departement'
 describe('matrices', () => {
   test('buildMatrices', () => {
diff --git a/packages/api/src/business/matrices.ts b/packages/api/src/business/matrices.ts
index dfcd27be35395850fd6a92038db554436d858250..cbbbfa21e0abde70f64a40058528763fadf00680 100644
--- a/packages/api/src/business/matrices.ts
+++ b/packages/api/src/business/matrices.ts
@@ -1,23 +1,23 @@
-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 { bodyBuilder, toFiscalite } from '../api/rest/entreprises.js'
-import { userSuper } from '../database/user-super.js'
-import { fraisGestion } from 'camino-common/src/fiscalite.js'
-import type { Fiscalite } from 'camino-common/src/validators/fiscalite.js'
-import { ICommune, ITitre } from '../types.js'
-import { DepartementLabel, Departements, toDepartementId } from 'camino-common/src/static/departement.js'
+import '../init'
+import { titresGet } from '../database/queries/titres'
+import { titresActivitesGet } from '../database/queries/titres-activites'
+import { apiOpenfiscaCalculate, apiOpenfiscaConstantsFetch, OpenfiscaConstants, OpenfiscaResponse, OpenfiscaTarifs } from '../tools/api-openfisca/index'
+import { bodyBuilder, toFiscalite } from '../api/rest/entreprises'
+import { userSuper } from '../database/user-super'
+import { fraisGestion } from 'camino-common/src/fiscalite'
+import type { Fiscalite } from 'camino-common/src/validators/fiscalite'
+import { ICommune, ITitre } from '../types'
+import { DepartementLabel, Departements, toDepartementId } from 'camino-common/src/static/departement'
 import fs from 'fs'
 import carbone from 'carbone'
 import { Pool } from 'pg'
-import { getCommunes } from '../database/queries/communes.queries.js'
-import { isNonEmptyArray, isNotNullNorUndefined, onlyUnique } from 'camino-common/src/typescript-tools.js'
-import { Commune } from 'camino-common/src/static/communes.js'
-import { CaminoAnnee, caminoAnneeToNumber, anneePrecedente as previousYear, anneeSuivante, getCurrentAnnee } from 'camino-common/src/date.js'
+import { getCommunes } from '../database/queries/communes.queries'
+import { isNonEmptyArray, isNotNullNorUndefined, onlyUnique } from 'camino-common/src/typescript-tools'
+import { Commune } from 'camino-common/src/static/communes'
+import { CaminoAnnee, caminoAnneeToNumber, anneePrecedente as previousYear, anneeSuivante, getCurrentAnnee } from 'camino-common/src/date'
 
 import { Decimal } from 'decimal.js'
-import { REGION_IDS } from 'camino-common/src/static/region.js'
+import { REGION_IDS } from 'camino-common/src/static/region'
 import { EntrepriseId } from 'camino-common/src/entreprise'
 import { getEntreprises, GetEntreprises } from '../api/rest/entreprises.queries'
 
diff --git a/packages/api/src/business/monthly.ts b/packages/api/src/business/monthly.ts
index 30a2e45f2f3d3ac1c3838551484262a98e2130de..a96a066cd240157d3f4d4b24582f8268941ed516 100644
--- a/packages/api/src/business/monthly.ts
+++ b/packages/api/src/business/monthly.ts
@@ -1,7 +1,7 @@
-import { entreprisesUpdate } from './processes/entreprises-update.js'
-import { titresEtapesAreasUpdate } from './processes/titres-etapes-areas-update.js'
-import { updateTerritoires } from '../tools/territoires-update.js'
-import { subscribeUsersToGuyaneExploitants } from './entreprises-guyane.js'
+import { entreprisesUpdate } from './processes/entreprises-update'
+import { titresEtapesAreasUpdate } from './processes/titres-etapes-areas-update'
+import { updateTerritoires } from '../tools/territoires-update'
+import { subscribeUsersToGuyaneExploitants } from './entreprises-guyane'
 import { Pool } from 'pg'
 
 export const monthly = async (pool: Pool) => {
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 e258f0c2fd5fb0563610bfae3cdcf324a4d42477..cdcea6841981b33eb6ca6cc186f7cd296b5f5753 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
@@ -1,5 +1,5 @@
-import TitresActivites from '../../../database/models/titres-activites.js'
-import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
+import TitresActivites from '../../../database/models/titres-activites'
+import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts'
 
 const titresActivitesDelaiDepasse = [
   {
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 d85a87af2c7446edcc859ce2dd4c00b56b656a28..2820ff5f1db5189aaaee3d31292f34551011b2f7 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
@@ -1,4 +1,4 @@
-import Titres from '../../../database/models/titres.js'
+import Titres from '../../../database/models/titres'
 
 const titresDemarchesDesordonnees = [
   {
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 449af5f567f87965f59ebae1d0467a549f64cb14..a704436900c155bc288a58da16beab43b05c5285 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
@@ -1,4 +1,4 @@
-import Titres from '../../../database/models/titres.js'
+import Titres from '../../../database/models/titres'
 
 const titresDemarchesPublicModifie = [
   {
diff --git a/packages/api/src/business/processes/entreprises-update.test.ts b/packages/api/src/business/processes/entreprises-update.test.ts
index 168d20a09b2e344414e3b474512f37cd465c17c2..f57853e72236f74b958f93d780d460b8a33f95b3 100644
--- a/packages/api/src/business/processes/entreprises-update.test.ts
+++ b/packages/api/src/business/processes/entreprises-update.test.ts
@@ -1,12 +1,12 @@
-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 { IEntreprise, IEntrepriseEtablissement } from '../../types.js'
+import { entreprisesUpdate } from './entreprises-update'
+import { entreprisesGet } from '../../database/queries/entreprises'
+import { entreprisesEtablissementsGet } from '../../database/queries/entreprises-etablissements'
+import { apiInseeEntreprisesGet, apiInseeEntreprisesEtablissementsGet } from '../../tools/api-insee/index'
+import { IEntreprise, IEntrepriseEtablissement } from '../../types'
 import { vi, beforeEach, describe, expect, test } from 'vitest'
-import { newEntrepriseId } from 'camino-common/src/entreprise.js'
-import Entreprises from '../../database/models/entreprises.js'
-import EntreprisesEtablissements from '../../database/models/entreprises-etablissements.js'
+import { newEntrepriseId } from 'camino-common/src/entreprise'
+import Entreprises from '../../database/models/entreprises'
+import EntreprisesEtablissements from '../../database/models/entreprises-etablissements'
 
 const entreprisesUpdated: IEntreprise[] = []
 // 'vi.mock()` est hoisté avant l'import, le court-circuitant
diff --git a/packages/api/src/business/processes/entreprises-update.ts b/packages/api/src/business/processes/entreprises-update.ts
index dd51a7fe1607ad5d5129097a3d5a2f4f139c714c..7d857878aa483f2893b4bb36233e8dbd9d313caa 100644
--- a/packages/api/src/business/processes/entreprises-update.ts
+++ b/packages/api/src/business/processes/entreprises-update.ts
@@ -1,12 +1,12 @@
-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 { userSuper } from '../../database/user-super.js'
-import { Siren, sirenValidator } from 'camino-common/src/entreprise.js'
-import { isNotNullNorUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools.js'
+import { IEntrepriseEtablissement, IEntreprise } from '../../types'
+
+import { objectsDiffer } from '../../tools/index'
+import { entreprisesUpsert, entreprisesGet } from '../../database/queries/entreprises'
+import { entreprisesEtablissementsUpsert, entreprisesEtablissementsDelete, entreprisesEtablissementsGet } from '../../database/queries/entreprises-etablissements'
+import { apiInseeEntreprisesEtablissementsGet, apiInseeEntreprisesGet } from '../../tools/api-insee/index'
+import { userSuper } from '../../database/user-super'
+import { Siren, sirenValidator } from 'camino-common/src/entreprise'
+import { isNotNullNorUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools'
 
 const entreprisesEtablissementsToUpdateBuild = (entreprisesEtablissementsOld: IEntrepriseEtablissement[], entreprisesEtablissementsNew: IEntrepriseEtablissement[]) =>
   entreprisesEtablissementsNew.reduce((acc: IEntrepriseEtablissement[], entrepriseEtablissementNew) => {
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 8bc422b11272d9137eee4aa3bb92fd37842c089f..f607348a0131998416f8a7e6aee457496d00d0db 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
@@ -1,12 +1,12 @@
-import { titresActivitesPropsUpdate } from './titres-activites-props-update.js'
-import { titresActivitesUpsert } from '../../database/queries/titres-activites.js'
-import { titresGet } from '../../database/queries/titres.js'
-import { titreValideCheck } from '../utils/titre-valide-check.js'
+import { titresActivitesPropsUpdate } from './titres-activites-props-update'
+import { titresActivitesUpsert } from '../../database/queries/titres-activites'
+import { titresGet } from '../../database/queries/titres'
+import { titreValideCheck } from '../utils/titre-valide-check'
 import { vi, describe, expect, test, afterEach } from 'vitest'
-import { titreIdValidator } from 'camino-common/src/validators/titres.js'
-import { ITitre, ITitreDemarche } from '../../types.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
-import { activiteIdValidator } from 'camino-common/src/activite.js'
+import { titreIdValidator } from 'camino-common/src/validators/titres'
+import { ITitre, ITitreDemarche } from '../../types'
+import { toCaminoDate } from 'camino-common/src/date'
+import { activiteIdValidator } from 'camino-common/src/activite'
 
 vi.mock('../../database/queries/titres-activites', () => ({
   titresActivitesUpsert: vi.fn(),
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 c9a701dcd9a80c6db459ac192aaa01c4608db46f..a8567c75da4fbc3de02261ace5ca52a758d6fdde 100644
--- a/packages/api/src/business/processes/titres-activites-props-update.ts
+++ b/packages/api/src/business/processes/titres-activites-props-update.ts
@@ -1,13 +1,13 @@
-import type { ITitreActivite } from '../../types.js'
-
-import { titresActivitesUpsert } from '../../database/queries/titres-activites.js'
-import { titresGet } from '../../database/queries/titres.js'
-import { titreValideCheck } from '../utils/titre-valide-check.js'
-import { userSuper } from '../../database/user-super.js'
-import { getMonth } from 'camino-common/src/static/frequence.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
-import { ActivitesTypes } from 'camino-common/src/static/activitesTypes.js'
-import { isNotNullNorUndefinedNorEmpty, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools.js'
+import type { ITitreActivite } from '../../types'
+
+import { titresActivitesUpsert } from '../../database/queries/titres-activites'
+import { titresGet } from '../../database/queries/titres'
+import { titreValideCheck } from '../utils/titre-valide-check'
+import { userSuper } from '../../database/user-super'
+import { getMonth } from 'camino-common/src/static/frequence'
+import { toCaminoDate } from 'camino-common/src/date'
+import { ActivitesTypes } from 'camino-common/src/static/activitesTypes'
+import { isNotNullNorUndefinedNorEmpty, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools'
 
 // TODO 2023-04-12 à supprimer et à calculer lors de l’appel à l’API par un super
 export const titresActivitesPropsUpdate = async (titresIds?: string[]) => {
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 214f6b6e34f2c37a7aa0f22f922d08af22e4cce2..3fd7e5179ffa511009903c725345bca810853209 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
@@ -1,8 +1,8 @@
-import { checkDateAndSendEmail } from './titres-activites-relance-send.js'
-import { emailsWithTemplateSend } from '../../tools/api-mailjet/emails.js'
-import { EmailTemplateId } from '../../tools/api-mailjet/types.js'
+import { checkDateAndSendEmail } from './titres-activites-relance-send'
+import { emailsWithTemplateSend } from '../../tools/api-mailjet/emails'
+import { EmailTemplateId } from '../../tools/api-mailjet/types'
 import { vi, describe, expect, test, afterEach } from 'vitest'
-import { getCurrent, toCaminoDate } from 'camino-common/src/date.js'
+import { getCurrent, toCaminoDate } from 'camino-common/src/date'
 import { entrepriseIdValidator } from 'camino-common/src/entreprise'
 import { activiteIdValidator } from 'camino-common/src/activite'
 
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 a1e92958b8596308e2e65c67dc4e0abe2bc75f20..7fec1bbb6ec16ce5c893995974516569a849c48d 100644
--- a/packages/api/src/business/processes/titres-activites-relance-send.ts
+++ b/packages/api/src/business/processes/titres-activites-relance-send.ts
@@ -1,17 +1,17 @@
-import { titresActivitesGet } from '../../database/queries/titres-activites.js'
-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 { CaminoDate, anneePrecedente, dateAddDays, dateAddMonths, getAnnee, getCurrent } from 'camino-common/src/date.js'
-import { ITitreActivite } from '../../types.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
-import { ActivitesTypesId } from 'camino-common/src/static/activitesTypes.js'
-import { ActivitesStatutId } from 'camino-common/src/static/activitesStatuts.js'
-import { GetEntrepriseUtilisateurs, getEntrepriseUtilisateurs } from '../../api/rest/entreprises.queries.js'
+import { titresActivitesGet } from '../../database/queries/titres-activites'
+import { userSuper } from '../../database/user-super'
+import { emailsWithTemplateSend } from '../../tools/api-mailjet/emails'
+import { activitesUrlGet } from '../utils/urls-get'
+import { EmailTemplateId } from '../../tools/api-mailjet/types'
+import { CaminoDate, anneePrecedente, dateAddDays, dateAddMonths, getAnnee, getCurrent } from 'camino-common/src/date'
+import { ITitreActivite } from '../../types'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
+import { ActivitesTypesId } from 'camino-common/src/static/activitesTypes'
+import { ActivitesStatutId } from 'camino-common/src/static/activitesStatuts'
+import { GetEntrepriseUtilisateurs, getEntrepriseUtilisateurs } from '../../api/rest/entreprises.queries'
 import { Pool } from 'pg'
-import { EntrepriseId } from 'camino-common/src/entreprise.js'
-import { isEntrepriseRole } from 'camino-common/src/roles.js'
+import { EntrepriseId } from 'camino-common/src/entreprise'
+import { isEntrepriseRole } from 'camino-common/src/roles'
 
 const ACTIVITES_DELAI_RELANCE_JOURS = 14
 
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 2129f8089de7ce7ef84e46d9577176e5d9e0c3e5..321f062bc18abc217bfc27b6a5737962921377d5 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,7 +1,7 @@
-import { titresActivitesStatutIdsUpdate } from './titres-activites-statut-ids-update.js'
-import { titresActivitesGet } from '../../database/queries/titres-activites.js'
+import { titresActivitesStatutIdsUpdate } from './titres-activites-statut-ids-update'
+import { titresActivitesGet } from '../../database/queries/titres-activites'
 
-import { titresActivitesDelaiDepasse, titresActivitesDelaiNonDepasse } from './__mocks__/titres-activites-statut-ids-update-activites.js'
+import { titresActivitesDelaiDepasse, titresActivitesDelaiNonDepasse } from './__mocks__/titres-activites-statut-ids-update-activites'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres-activites', () => ({
   titreActiviteUpdate: vi.fn().mockResolvedValue(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 cb5f8c90c9bebb212dc84b7be24a78134dfd8838..1328e5230a20f5771de372c04843123c6d61f4c6 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,7 @@
-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'
+import { titreActiviteUpdate, titresActivitesGet } from '../../database/queries/titres-activites'
+import { titreActiviteStatutIdFind } from '../rules/titre-activite-statut-id-find'
+import { userSuper } from '../../database/user-super'
+import { getCurrent } from 'camino-common/src/date'
 
 // met à jour le statut des activités d'un titre
 export const titresActivitesStatutIdsUpdate = async () => {
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 b2b2a4b77894dc9f1821bc6d5ebabfe3ccdbb592..8513a9ee5ff5712a895f234d8ebef4335a0481fc 100644
--- a/packages/api/src/business/processes/titres-activites-update.test.ts
+++ b/packages/api/src/business/processes/titres-activites-update.test.ts
@@ -1,17 +1,17 @@
-import { ITitreActivite } from '../../types.js'
+import { ITitreActivite } from '../../types'
 
-import { titresActivitesUpdate } from './titres-activites-update.js'
-import { canHaveActiviteTypeId } from 'camino-common/src/permissions/titres.js'
-import { anneesBuild } from '../../tools/annees-build.js'
-import { titresActivitesUpsert } from '../../database/queries/titres-activites.js'
-import { titresGet } from '../../database/queries/titres.js'
-import { titreActivitesBuild } from '../rules/titre-activites-build.js'
+import { titresActivitesUpdate } from './titres-activites-update'
+import { canHaveActiviteTypeId } from 'camino-common/src/permissions/titres'
+import { anneesBuild } from '../../tools/annees-build'
+import { titresActivitesUpsert } from '../../database/queries/titres-activites'
+import { titresGet } from '../../database/queries/titres'
+import { titreActivitesBuild } from '../rules/titre-activites-build'
 
-import { emailsSend, emailsWithTemplateSend } from '../../tools/api-mailjet/emails.js'
-import { EmailTemplateId } from '../../tools/api-mailjet/types.js'
+import { emailsSend, emailsWithTemplateSend } from '../../tools/api-mailjet/emails'
+import { EmailTemplateId } from '../../tools/api-mailjet/types'
 import { vi, afterEach, describe, expect, test } from 'vitest'
-import { newTitreId } from '../../database/models/_format/id-create.js'
-import Titres from '../../database/models/titres.js'
+import { newTitreId } from '../../database/models/_format/id-create'
+import Titres from '../../database/models/titres'
 import { Pool } from 'pg'
 import { getEntrepriseUtilisateurs } from '../../api/rest/entreprises.queries'
 import { entrepriseIdValidator } from 'camino-common/src/entreprise'
@@ -40,7 +40,7 @@ vi.mock('../rules/titre-activites-build', () => ({
   titreActivitesBuild: vi.fn().mockResolvedValue(true),
 }))
 
-vi.mock('camino-common/src/permissions/titres.js', () => ({
+vi.mock('camino-common/src/permissions/titres', () => ({
   __esModule: true,
   canHaveActiviteTypeId: vi.fn().mockResolvedValue(true),
 }))
diff --git a/packages/api/src/business/processes/titres-activites-update.ts b/packages/api/src/business/processes/titres-activites-update.ts
index 03f78e5e41e22f4d3d5591b67b6b65c91c5468f5..661273c53f3f1f7d09a6a1b620d7d401fa84a239 100644
--- a/packages/api/src/business/processes/titres-activites-update.ts
+++ b/packages/api/src/business/processes/titres-activites-update.ts
@@ -1,20 +1,20 @@
-import { ITitreActivite } from '../../types.js'
-
-import { anneesBuild } from '../../tools/annees-build.js'
-import { titresActivitesUpsert } from '../../database/queries/titres-activites.js'
-import { titreActivitesBuild } from '../rules/titre-activites-build.js'
-import { titresGet } from '../../database/queries/titres.js'
-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 { CaminoDate, getCurrent } from 'camino-common/src/date.js'
-import { sortedActivitesTypes } from 'camino-common/src/static/activitesTypes.js'
-import { isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { canHaveActiviteTypeId } from 'camino-common/src/permissions/titres.js'
+import { ITitreActivite } from '../../types'
+
+import { anneesBuild } from '../../tools/annees-build'
+import { titresActivitesUpsert } from '../../database/queries/titres-activites'
+import { titreActivitesBuild } from '../rules/titre-activites-build'
+import { titresGet } from '../../database/queries/titres'
+import { userSuper } from '../../database/user-super'
+import { emailsWithTemplateSend } from '../../tools/api-mailjet/emails'
+import { activitesUrlGet } from '../utils/urls-get'
+import { EmailTemplateId } from '../../tools/api-mailjet/types'
+import { CaminoDate, getCurrent } from 'camino-common/src/date'
+import { sortedActivitesTypes } from 'camino-common/src/static/activitesTypes'
+import { isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { canHaveActiviteTypeId } from 'camino-common/src/permissions/titres'
 import { Pool } from 'pg'
-import { getEntrepriseUtilisateurs } from '../../api/rest/entreprises.queries.js'
-import { isEntrepriseRole } from 'camino-common/src/roles.js'
+import { getEntrepriseUtilisateurs } from '../../api/rest/entreprises.queries'
+import { isEntrepriseRole } from 'camino-common/src/roles'
 
 export const titresActivitesUpdate = async (pool: Pool, titresIds?: string[], aujourdhui: CaminoDate = getCurrent()) => {
   console.info()
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 2359912a0ef24a81c032f6325fd03cd9170cfd61..38c56288191fd53b1c0525b361ff8bede658f9c7 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
@@ -1,6 +1,6 @@
-import { ETAPE_IS_NOT_BROUILLON, ETAPE_IS_BROUILLON } from 'camino-common/src/etape.js'
-import type { ITitre, ITitreEtape, ITitreDemarche } from '../../types.js'
-import { titreDemarcheDepotCheck } from './titres-demarches-depot-create.js'
+import { ETAPE_IS_NOT_BROUILLON, ETAPE_IS_BROUILLON } from 'camino-common/src/etape'
+import type { ITitre, ITitreEtape, ITitreDemarche } from '../../types'
+import { titreDemarcheDepotCheck } from './titres-demarches-depot-create'
 
 import { describe, expect, test } from 'vitest'
 
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 48ef02b4762faacdd2479b2703313e5dd4d718a1..81b8d247cc4eb113853da68f9716105f98dc7b33 100644
--- a/packages/api/src/business/processes/titres-demarches-depot-create.ts
+++ b/packages/api/src/business/processes/titres-demarches-depot-create.ts
@@ -1,21 +1,21 @@
-import type { ITitreDemarche, ITitreEtape } from '../../types.js'
-
-import { titreEtapeUpsert } from '../../database/queries/titres-etapes.js'
-import { titreDemarcheGet } from '../../database/queries/titres-demarches.js'
-import { userSuper } from '../../database/user-super.js'
-import { titreEtapeUpdateTask } from '../titre-etape-update.js'
-import { titreEtapeAdministrationsEmailsSend } from '../../api/graphql/resolvers/_titre-etape-email.js'
-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 { getCurrent } from 'camino-common/src/date.js'
+import type { ITitreDemarche, ITitreEtape } from '../../types'
+
+import { titreEtapeUpsert } from '../../database/queries/titres-etapes'
+import { titreDemarcheGet } from '../../database/queries/titres-demarches'
+import { userSuper } from '../../database/user-super'
+import { titreEtapeUpdateTask } from '../titre-etape-update'
+import { titreEtapeAdministrationsEmailsSend } from '../../api/graphql/resolvers/_titre-etape-email'
+import { demarcheDefinitionFind } from '../rules-demarches/definitions'
+import { titreUrlGet } from '../utils/urls-get'
+import { emailsWithTemplateSend } from '../../tools/api-mailjet/emails'
+import { EmailTemplateId, EmailAdministration } from '../../tools/api-mailjet/types'
+import { getCurrent } from 'camino-common/src/date'
 import type { Pool } from 'pg'
-import { getTitreTypeType } from 'camino-common/src/static/titresTypes.js'
-import { TitresTypesTypes } from 'camino-common/src/static/titresTypesTypes.js'
-import { NonEmptyArray, isNonEmptyArray, isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { getEntreprise, getEntrepriseUtilisateurs } from '../../api/rest/entreprises.queries.js'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { getTitreTypeType } from 'camino-common/src/static/titresTypes'
+import { TitresTypesTypes } from 'camino-common/src/static/titresTypesTypes'
+import { NonEmptyArray, isNonEmptyArray, isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { getEntreprise, getEntrepriseUtilisateurs } from '../../api/rest/entreprises.queries'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 
 const emailConfirmationDepotSend = async (
   emails: string[],
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 e38ba33dfdbb84c72986ac5ce28dff158941cb76..bed0ce5fe53dcaf9ea24526b2dee07c47111dc44 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,7 +1,7 @@
-import { titresDemarchesOrdreUpdate } from './titres-demarches-ordre-update.js'
-import { titresGet } from '../../database/queries/titres.js'
+import { titresDemarchesOrdreUpdate } from './titres-demarches-ordre-update'
+import { titresGet } from '../../database/queries/titres'
 
-import { titresDemarchesDesordonnees, titresDemarchesOrdonnees } from './__mocks__/titres-demarches-ordre-update-demarches.js'
+import { titresDemarchesDesordonnees, titresDemarchesOrdonnees } from './__mocks__/titres-demarches-ordre-update-demarches'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres', () => ({
   titresGet: vi.fn(),
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 78f3531e73fadc750ef1d4ffc78c141ba3910fe2..11b358f8eec93f4658089ace30b61880bde4dbbe 100644
--- a/packages/api/src/business/processes/titres-demarches-ordre-update.ts
+++ b/packages/api/src/business/processes/titres-demarches-ordre-update.ts
@@ -1,9 +1,9 @@
-import { ITitreDemarche } from '../../types.js'
+import { ITitreDemarche } from '../../types'
 
-import { titreDemarcheUpdate } from '../../database/queries/titres-demarches.js'
-import { titresGet } from '../../database/queries/titres.js'
-import { titreDemarcheSortAsc } from '../utils/titre-elements-sort-asc.js'
-import { userSuper } from '../../database/user-super.js'
+import { titreDemarcheUpdate } from '../../database/queries/titres-demarches'
+import { titresGet } from '../../database/queries/titres'
+import { titreDemarcheSortAsc } from '../utils/titre-elements-sort-asc'
+import { userSuper } from '../../database/user-super'
 
 export const titresDemarchesOrdreUpdate = async (titresIds?: string[]) => {
   console.info()
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 57e4bf37428c5c47d750e4b343ed485bf6add8d9..a6af714fbc4df4b8e6554f0ab97191be4894fd98 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,7 +1,7 @@
-import { titresDemarchesPublicUpdate } from './titres-demarches-public-update.js'
-import { titresGet } from '../../database/queries/titres.js'
+import { titresDemarchesPublicUpdate } from './titres-demarches-public-update'
+import { titresGet } from '../../database/queries/titres'
 
-import { titresDemarchesPublicModifie, titresDemarchesPublicIdentique } from './__mocks__/titres-demarches-public-update-demarches.js'
+import { titresDemarchesPublicModifie, titresDemarchesPublicIdentique } from './__mocks__/titres-demarches-public-update-demarches'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres', () => ({
   titresGet: vi.fn(),
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 bf73471c82dff9d19f0370c939bffea653f166f1..cc80391850825bc7f5898ef78509863c1cb7d3e3 100644
--- a/packages/api/src/business/processes/titres-demarches-public-update.ts
+++ b/packages/api/src/business/processes/titres-demarches-public-update.ts
@@ -1,7 +1,7 @@
-import { titreDemarcheUpdate } from '../../database/queries/titres-demarches.js'
-import { titreDemarchePublicFind } from '../rules/titre-demarche-public-find.js'
-import { titresGet } from '../../database/queries/titres.js'
-import { userSuper } from '../../database/user-super.js'
+import { titreDemarcheUpdate } from '../../database/queries/titres-demarches'
+import { titreDemarchePublicFind } from '../rules/titre-demarche-public-find'
+import { titresGet } from '../../database/queries/titres'
+import { userSuper } from '../../database/user-super'
 
 type ITitreDemarchePatch = {
   publicLecture: boolean
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 d021c08e76090eb29c45ed5a7ea440b3c12b57b1..72fdb8a4d5ab8c69cca8cc40af286d540517fea9 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
@@ -1,10 +1,10 @@
-import { titresDemarchesStatutIdUpdate } from './titres-demarches-statut-ids-update.js'
+import { titresDemarchesStatutIdUpdate } from './titres-demarches-statut-ids-update'
 import { vi, describe, expect, test } from 'vitest'
-import { getDemarches } from './titres-etapes-heritage-contenu-update.queries.js'
-import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { getDemarches } from './titres-etapes-heritage-contenu-update.queries'
+import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create'
+import { toCaminoDate } from 'camino-common/src/date'
 import { Pool } from 'pg'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 
 vi.mock('./titres-etapes-heritage-contenu-update.queries', () => ({
   getDemarches: vi.fn().mockResolvedValue(true),
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 4acc4a49aeced1876f3a2394a76ddbe6f1a73d4e..1f8973f99206e3a2c93b9fd5df7a7d42feb71608 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
@@ -1,8 +1,8 @@
-import { TitreId } from 'camino-common/src/validators/titres.js'
-import { titreDemarcheUpdate } from '../../database/queries/titres-demarches.js'
-import { titreDemarcheStatutIdFind } from '../rules/titre-demarche-statut-id-find.js'
-import { titreEtapesSortAscByOrdre } from '../utils/titre-etapes-sort.js'
-import { getDemarches } from './titres-etapes-heritage-contenu-update.queries.js'
+import { TitreId } from 'camino-common/src/validators/titres'
+import { titreDemarcheUpdate } from '../../database/queries/titres-demarches'
+import { titreDemarcheStatutIdFind } from '../rules/titre-demarche-statut-id-find'
+import { titreEtapesSortAscByOrdre } from '../utils/titre-etapes-sort'
+import { getDemarches } from './titres-etapes-heritage-contenu-update.queries'
 import { Pool } from 'pg'
 
 export const titresDemarchesStatutIdUpdate = async (pool: Pool, titreId?: TitreId) => {
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 079e4464a86c2c732b707ddf12a30252b3fe3eda..fff5f95396bae6bdeed054cf9f48610efd5b576a 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,13 +1,13 @@
-import { titresEtapesAdministrationsLocalesUpdate } from './titres-etapes-administrations-locales-update.js'
-import { titresEtapesGet } from '../../database/queries/titres-etapes.js'
+import { titresEtapesAdministrationsLocalesUpdate } from './titres-etapes-administrations-locales-update'
+import { titresEtapesGet } from '../../database/queries/titres-etapes'
 
-import { ICommune, ITitreEtape } from '../../types.js'
-import { newDemarcheId, newEtapeId } 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 { ICommune, ITitreEtape } from '../../types'
+import { newDemarcheId, newEtapeId } from '../../database/models/_format/id-create'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
+import { toCaminoDate } from 'camino-common/src/date'
 import { vi, describe, expect, test } from 'vitest'
-import { toCommuneId } from 'camino-common/src/static/communes.js'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { toCommuneId } from 'camino-common/src/static/communes'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 vi.mock('../../database/queries/titres-etapes', () => ({
   titresEtapesGet: vi.fn(),
 }))
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 2babf72c1c387b945dc06739c2d56240447e2d54..0394f007a404b02c11f55798e59a35954e97873d 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
@@ -1,10 +1,10 @@
-import { ITitreEtape } from '../../types.js'
+import { ITitreEtape } from '../../types'
 
-import { titresEtapesGet } from '../../database/queries/titres-etapes.js'
-import { userSuper } from '../../database/user-super.js'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { getAdministrationsLocales } from 'camino-common/src/administrations.js'
-import { knex } from '../../knex.js'
+import { titresEtapesGet } from '../../database/queries/titres-etapes'
+import { userSuper } from '../../database/user-super'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { getAdministrationsLocales } from 'camino-common/src/administrations'
+import { knex } from '../../knex'
 
 interface ITitreEtapeAdministrationLocale {
   titreEtapeAdministrationsLocalesOld: AdministrationId[]
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 02d263ef11cb8ca328b9fddb90b7dab1d2a384a7..30c02d3ef6efea78af3af4708ea2156c2973e95a 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
@@ -1,22 +1,22 @@
 /* eslint-disable sql/no-unsafe-query */
-import { dbManager } from '../../../tests/db-manager.js'
+import { dbManager } from '../../../tests/db-manager'
 import { Knex } from 'knex'
-import Titres from '../../database/models/titres.js'
-import TitresDemarches from '../../database/models/titres-demarches.js'
-import TitresEtapes from '../../database/models/titres-etapes.js'
-import { titresEtapesAreasUpdate } from './titres-etapes-areas-update.js'
-import { BaisieuxPerimetre, foret2BranchesPerimetre, foretReginaPerimetre, SaintEliePerimetre, SinnamaryPerimetre } from './__mocks__/titres-etapes-areas-update.js'
-import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create.js'
-import { SDOMZoneIds } from 'camino-common/src/static/sdom.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import Titres from '../../database/models/titres'
+import TitresDemarches from '../../database/models/titres-demarches'
+import TitresEtapes from '../../database/models/titres-etapes'
+import { titresEtapesAreasUpdate } from './titres-etapes-areas-update'
+import { BaisieuxPerimetre, foret2BranchesPerimetre, foretReginaPerimetre, SaintEliePerimetre, SinnamaryPerimetre } from './__mocks__/titres-etapes-areas-update'
+import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create'
+import { SDOMZoneIds } from 'camino-common/src/static/sdom'
+import { toCaminoDate } from 'camino-common/src/date'
 import { vi, beforeAll, afterAll, describe, test, expect } from 'vitest'
-import { toCommuneId } from 'camino-common/src/static/communes.js'
-import { ForetId } from 'camino-common/src/static/forets.js'
-import { insertCommune } from '../../database/queries/communes.queries.js'
+import { toCommuneId } from 'camino-common/src/static/communes'
+import { ForetId } from 'camino-common/src/static/forets'
+import { insertCommune } from '../../database/queries/communes.queries'
 import { Pool } from 'pg'
-import { titreSlugValidator } from 'camino-common/src/validators/titres.js'
-import { FeatureMultiPolygon } from 'camino-common/src/perimetre.js'
-import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape.js'
+import { titreSlugValidator } from 'camino-common/src/validators/titres'
+import { FeatureMultiPolygon } from 'camino-common/src/perimetre'
+import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape'
 
 console.info = vi.fn()
 console.error = vi.fn()
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 41a3fa4624f661e6e6036a5cffd37d43ff44800a..5804d3e60c85196a20763f335fceee6a98c469f5 100644
--- a/packages/api/src/business/processes/titres-etapes-areas-update.ts
+++ b/packages/api/src/business/processes/titres-etapes-areas-update.ts
@@ -1,17 +1,17 @@
 /* eslint-disable sql/no-unsafe-query */
-import { titresEtapesGet } from '../../database/queries/titres-etapes.js'
-import { userSuper } from '../../database/user-super.js'
-import { ITitreEtape } from '../../types.js'
-import { SecteursMaritimes, SecteursMaritimesIds, getSecteurMaritime } from 'camino-common/src/static/facades.js'
-import { knex } from '../../knex.js'
-import { ForetId } from 'camino-common/src/static/forets.js'
-import { CommuneId, toCommuneId } from 'camino-common/src/static/communes.js'
-import { DeepReadonly, isNotNullNorUndefined, onlyUnique } from 'camino-common/src/typescript-tools.js'
-import { getGeojsonInformation } from '../../api/rest/perimetre.queries.js'
+import { titresEtapesGet } from '../../database/queries/titres-etapes'
+import { userSuper } from '../../database/user-super'
+import { ITitreEtape } from '../../types'
+import { SecteursMaritimes, SecteursMaritimesIds, getSecteurMaritime } from 'camino-common/src/static/facades'
+import { knex } from '../../knex'
+import { ForetId } from 'camino-common/src/static/forets'
+import { CommuneId, toCommuneId } from 'camino-common/src/static/communes'
+import { DeepReadonly, isNotNullNorUndefined, onlyUnique } from 'camino-common/src/typescript-tools'
+import { getGeojsonInformation } from '../../api/rest/perimetre.queries'
 import type { Pool } from 'pg'
-import { SDOMZoneId } from 'camino-common/src/static/sdom.js'
-import { M2 } from 'camino-common/src/number.js'
-import { callAndExit } from '../../tools/fp-tools.js'
+import { SDOMZoneId } from 'camino-common/src/static/sdom'
+import { M2 } from 'camino-common/src/number'
+import { callAndExit } from '../../tools/fp-tools'
 
 /**
  * Met à jour tous les territoires d’une liste d’étapes
diff --git a/packages/api/src/business/processes/titres-etapes-heritage-contenu-update.queries.ts b/packages/api/src/business/processes/titres-etapes-heritage-contenu-update.queries.ts
index 556b516a7ac1c4cea30c7ddab13d1e31bf11af93..0675f0c0fa1b31c878089980abf3a678ba787d93 100644
--- a/packages/api/src/business/processes/titres-etapes-heritage-contenu-update.queries.ts
+++ b/packages/api/src/business/processes/titres-etapes-heritage-contenu-update.queries.ts
@@ -1,22 +1,22 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
 import { IGetEtapesByDemarcheInternalQuery } from './titres-etapes-heritage-contenu-update.queries.types'
-import { Redefine, dbQueryAndValidate } from '../../pg-database.js'
-import { caminoDateValidator } from 'camino-common/src/date.js'
-import { DemarcheId, demarcheIdValidator } from 'camino-common/src/demarche.js'
-import { DemarcheStatutId, demarcheStatutIdValidator } from 'camino-common/src/static/demarchesStatuts.js'
-import { DemarcheTypeId, demarcheTypeIdValidator } from 'camino-common/src/static/demarchesTypes.js'
-import { etapeStatutIdValidator } from 'camino-common/src/static/etapesStatuts.js'
-import { TitreTypeId, titreTypeIdValidator } from 'camino-common/src/static/titresTypes.js'
-import { etapeTypeIdValidator } from 'camino-common/src/static/etapesTypes.js'
-import { TitreId, titreIdValidator } from 'camino-common/src/validators/titres.js'
-import { etapeBrouillonValidator, etapeIdValidator } from 'camino-common/src/etape.js'
+import { Redefine, dbQueryAndValidate } from '../../pg-database'
+import { caminoDateValidator } from 'camino-common/src/date'
+import { DemarcheId, demarcheIdValidator } from 'camino-common/src/demarche'
+import { DemarcheStatutId, demarcheStatutIdValidator } from 'camino-common/src/static/demarchesStatuts'
+import { DemarcheTypeId, demarcheTypeIdValidator } from 'camino-common/src/static/demarchesTypes'
+import { etapeStatutIdValidator } from 'camino-common/src/static/etapesStatuts'
+import { TitreTypeId, titreTypeIdValidator } from 'camino-common/src/static/titresTypes'
+import { etapeTypeIdValidator } from 'camino-common/src/static/etapesTypes'
+import { TitreId, titreIdValidator } from 'camino-common/src/validators/titres'
+import { etapeBrouillonValidator, etapeIdValidator } from 'camino-common/src/etape'
 import { z } from 'zod'
 import { Pool } from 'pg'
-import { communeValidator } from 'camino-common/src/static/communes.js'
-import { TitreEtapeForMachine } from '../rules-demarches/machine-common.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
-import { km2Validator } from 'camino-common/src/number.js'
+import { communeValidator } from 'camino-common/src/static/communes'
+import { TitreEtapeForMachine } from '../rules-demarches/machine-common'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
+import { km2Validator } from 'camino-common/src/number'
 
 const getEtapesByDemarcheValidator = z.object({
   contenu: z.any().nullable(),
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 cc596e0a29feede730fb06d7a4a4def8905be926..baa1f104c06d9bb82166e7be46e82198c289028b 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,13 +1,13 @@
 /* eslint-disable sql/no-unsafe-query */
-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 { UserNotNull } from 'camino-common/src/roles.js'
-import { getSections, Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { DeepReadonly, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
-import { DemarcheId } from 'camino-common/src/demarche.js'
+import { titreEtapeUpdate } from '../../database/queries/titres-etapes'
+import { titreEtapeHeritageContenuFind } from '../utils/titre-etape-heritage-contenu-find'
+import { titreEtapesSortAscByOrdre, titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort'
+import { UserNotNull } from 'camino-common/src/roles'
+import { getSections, Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { DeepReadonly, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
+import { DemarcheId } from 'camino-common/src/demarche'
 import { Pool } from 'pg'
-import { getDemarches } from './titres-etapes-heritage-contenu-update.queries.js'
+import { getDemarches } from './titres-etapes-heritage-contenu-update.queries'
 
 export const titresEtapesHeritageContenuUpdate = async (pool: Pool, user: UserNotNull, demarcheId?: DemarcheId) => {
   console.info()
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 a2a345c48c5ff867ef55e2a198ca07dd7395d32c..27c8bf90900ae65302ed8dbb4ccb207186ccb375 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
@@ -1,12 +1,12 @@
-import { ITitreEtape } from '../../types.js'
+import { ITitreEtape } from '../../types'
 
-import { titreEtapeUpsert } from '../../database/queries/titres-etapes.js'
-import { titresDemarchesGet } from '../../database/queries/titres-demarches.js'
-import { titreEtapeHeritagePropsFind } from '../utils/titre-etape-heritage-props-find.js'
-import { userSuper } from '../../database/user-super.js'
-import { titreEtapesSortAscByOrdre } from '../utils/titre-etapes-sort.js'
+import { titreEtapeUpsert } from '../../database/queries/titres-etapes'
+import { titresDemarchesGet } from '../../database/queries/titres-demarches'
+import { titreEtapeHeritagePropsFind } from '../utils/titre-etape-heritage-props-find'
+import { userSuper } from '../../database/user-super'
+import { titreEtapesSortAscByOrdre } from '../utils/titre-etapes-sort'
 import { UserNotNull } from 'camino-common/src/roles'
-import { EtapesTypes } from 'camino-common/src/static/etapesTypes.js'
+import { EtapesTypes } from 'camino-common/src/static/etapesTypes'
 
 export const titresEtapesHeritagePropsUpdate = async (user: UserNotNull, titresDemarchesIds?: string[]) => {
   console.info()
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 07f22b9ffe1daaed7d301d7b73a0896d3e63b88d..00ca3274be1b07f574940cedac3039ce016a5851 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
@@ -1,17 +1,17 @@
-import { titresEtapesOrdreUpdateVisibleForTesting } from './titres-etapes-ordre-update.js'
-import { titreEtapeUpdate } from '../../database/queries/titres-etapes.js'
+import { titresEtapesOrdreUpdateVisibleForTesting } from './titres-etapes-ordre-update'
+import { titreEtapeUpdate } from '../../database/queries/titres-etapes'
 
-import { userSuper } from '../../database/user-super.js'
+import { userSuper } from '../../database/user-super'
 import { vi, afterEach, describe, expect, test } from 'vitest'
-import { newDemarcheId, newEtapeId } from '../../database/models/_format/id-create.js'
-import { caminoDateValidator } from 'camino-common/src/date.js'
-import { DemarcheId } from 'camino-common/src/demarche.js'
-import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { TitreId, titreIdValidator } from 'camino-common/src/validators/titres.js'
-import { TitreEtapeForMachine } from '../rules-demarches/machine-common.js'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
-import { ZERO_KM2 } from 'camino-common/src/number.js'
+import { newDemarcheId, newEtapeId } from '../../database/models/_format/id-create'
+import { caminoDateValidator } from 'camino-common/src/date'
+import { DemarcheId } from 'camino-common/src/demarche'
+import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { TitreId, titreIdValidator } from 'camino-common/src/validators/titres'
+import { TitreEtapeForMachine } from '../rules-demarches/machine-common'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
+import { ZERO_KM2 } from 'camino-common/src/number'
 vi.mock('../../database/queries/titres-etapes', () => ({
   titreEtapeUpdate: vi.fn().mockResolvedValue(true),
 }))
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 6bde676f8c4e37cf95246554445900c8d1140089..531ecf1cf6da284f9b0335174b2e5cd414f60b25 100644
--- a/packages/api/src/business/processes/titres-etapes-ordre-update.ts
+++ b/packages/api/src/business/processes/titres-etapes-ordre-update.ts
@@ -1,14 +1,14 @@
-import { titreEtapeUpdate } from '../../database/queries/titres-etapes.js'
-import { titreEtapesSortAscByDate } from '../utils/titre-etapes-sort.js'
-import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { getDemarches } from './titres-etapes-heritage-contenu-update.queries.js'
-import { UserNotNull } from 'camino-common/src/roles.js'
-import { DemarcheId } from 'camino-common/src/demarche.js'
+import { titreEtapeUpdate } from '../../database/queries/titres-etapes'
+import { titreEtapesSortAscByDate } from '../utils/titre-etapes-sort'
+import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { getDemarches } from './titres-etapes-heritage-contenu-update.queries'
+import { UserNotNull } from 'camino-common/src/roles'
+import { DemarcheId } from 'camino-common/src/demarche'
 import { Pool } from 'pg'
-import { TitreId } from 'camino-common/src/validators/titres.js'
-import { TitreEtapeForMachine, titreEtapeForMachineValidator } from '../rules-demarches/machine-common.js'
-import { isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
+import { TitreId } from 'camino-common/src/validators/titres'
+import { TitreEtapeForMachine, titreEtapeForMachineValidator } from '../rules-demarches/machine-common'
+import { isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
 
 export const titresEtapesOrdreUpdate = async (pool: Pool, user: UserNotNull, demarcheId?: DemarcheId) => {
   console.info()
diff --git a/packages/api/src/business/processes/titres-etapes-statut-update.ts b/packages/api/src/business/processes/titres-etapes-statut-update.ts
index d53a74f47ae9d2268c1da2a4a56ee4ea60424d7e..6aaee0f0ad1e2f3e6f4841075d36383e35a854f6 100644
--- a/packages/api/src/business/processes/titres-etapes-statut-update.ts
+++ b/packages/api/src/business/processes/titres-etapes-statut-update.ts
@@ -1,10 +1,10 @@
 import { Pool } from 'pg'
-import { EtapeId, getStatutId } from 'camino-common/src/etape.js'
-import { getCurrent } from 'camino-common/src/date.js'
-import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts.js'
-import { getParticipationEtapes, updateParticipationStatut } from '../../database/queries/titres-etapes.queries.js'
-import { ETAPES_TYPES } from 'camino-common/src/static/etapesTypes.js'
-import { simpleContenuToFlattenedContenu } from 'camino-common/src/sections.js'
+import { EtapeId, getStatutId } from 'camino-common/src/etape'
+import { getCurrent } from 'camino-common/src/date'
+import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts'
+import { getParticipationEtapes, updateParticipationStatut } from '../../database/queries/titres-etapes.queries'
+import { ETAPES_TYPES } from 'camino-common/src/static/etapesTypes'
+import { simpleContenuToFlattenedContenu } from 'camino-common/src/sections'
 
 export const titresEtapesStatutUpdate = async (pool: Pool): Promise<EtapeId[]> => {
   console.info()
diff --git a/packages/api/src/business/processes/titres-phases-update.queries.ts b/packages/api/src/business/processes/titres-phases-update.queries.ts
index af2a3bf89cfb0ff80c47cdea8bd6d67d7c9c34ec..f71bbbf77251e5c4b6bc8c2658422b101451b91e 100644
--- a/packages/api/src/business/processes/titres-phases-update.queries.ts
+++ b/packages/api/src/business/processes/titres-phases-update.queries.ts
@@ -1,9 +1,9 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { CaminoDate } from 'camino-common/src/date.js'
-import { DemarcheId } from 'camino-common/src/demarche.js'
-import { Redefine, dbQueryAndValidate } from '../../pg-database.js'
-import { IUpdateDatesDemarcheDbQuery } from './titres-phases-update.queries.types.js'
+import { CaminoDate } from 'camino-common/src/date'
+import { DemarcheId } from 'camino-common/src/demarche'
+import { Redefine, dbQueryAndValidate } from '../../pg-database'
+import { IUpdateDatesDemarcheDbQuery } from './titres-phases-update.queries.types'
 import { Pool } from 'pg'
 import { z } from 'zod'
 
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 c4d81924bb9b286eba774aa4422aa596024b12e5..8dcc3d7b609c75176542db75b1d6059915837821 100644
--- a/packages/api/src/business/processes/titres-phases-update.test.ts
+++ b/packages/api/src/business/processes/titres-phases-update.test.ts
@@ -1,12 +1,12 @@
-import { titresDemarchesDatesUpdate } from './titres-phases-update.js'
-import { titresGet } from '../../database/queries/titres.js'
+import { titresDemarchesDatesUpdate } from './titres-phases-update'
+import { titresGet } from '../../database/queries/titres'
 import { vi, afterEach, describe, expect, test } from 'vitest'
-import { toCaminoDate } from 'camino-common/src/date.js'
-import { ITitre } from '../../types.js'
-import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create.js'
+import { toCaminoDate } from 'camino-common/src/date'
+import { ITitre } from '../../types'
+import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create'
 import { Pool } from 'pg'
-import { updateDatesDemarche } from './titres-phases-update.queries.js'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { updateDatesDemarche } from './titres-phases-update.queries'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 
 vi.mock('../../database/queries/titres', () => ({
   titresGet: vi.fn(),
@@ -17,7 +17,7 @@ vi.mock('pg', () => {
 
   return { Pool }
 })
-vi.mock('./titres-phases-update.queries.js', () => ({
+vi.mock('./titres-phases-update.queries', () => ({
   updateDatesDemarche: vi.fn(),
 }))
 
diff --git a/packages/api/src/business/processes/titres-phases-update.ts b/packages/api/src/business/processes/titres-phases-update.ts
index b1c33a487c7a064938ca0bb004c47440f5d478ef..30e930d5230ed346009fbed0197c5058dce25067 100644
--- a/packages/api/src/business/processes/titres-phases-update.ts
+++ b/packages/api/src/business/processes/titres-phases-update.ts
@@ -1,8 +1,8 @@
-import { titrePhasesFind } from '../rules/titre-phases-find.js'
-import { titresGet } from '../../database/queries/titres.js'
-import { userSuper } from '../../database/user-super.js'
+import { titrePhasesFind } from '../rules/titre-phases-find'
+import { titresGet } from '../../database/queries/titres'
+import { userSuper } from '../../database/user-super'
 import type { Pool } from 'pg'
-import { updateDatesDemarche } from './titres-phases-update.queries.js'
+import { updateDatesDemarche } from './titres-phases-update.queries'
 
 export const titresDemarchesDatesUpdate = async (pool: Pool, titresIds?: string[]) => {
   console.info()
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 aeb5f1714656abe55b37e8c0de671a372fbf9abd..331416d6b700cf2f0d52cc61a2ff54b2b49419ea 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
@@ -1,9 +1,9 @@
-import { ITitreEtape } from '../../types.js'
+import { ITitreEtape } from '../../types'
 
-import { titresPropsEtapesIdsUpdate } from './titres-props-etapes-ids-update.js'
-import { titrePropTitreEtapeFind } from '../rules/titre-prop-etape-find.js'
-import { titresGet } from '../../database/queries/titres.js'
-import Titres from '../../database/models/titres.js'
+import { titresPropsEtapesIdsUpdate } from './titres-props-etapes-ids-update'
+import { titrePropTitreEtapeFind } from '../rules/titre-prop-etape-find'
+import { titresGet } from '../../database/queries/titres'
+import Titres from '../../database/models/titres'
 import { vi, describe, expect, test } from 'vitest'
 vi.mock('../../database/queries/titres', () => ({
   titreUpdate: vi.fn().mockResolvedValue(true),
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 ffb29942ad6246520dc5b0dbb7902f8a27e6fe04..bb0448799bf1a4ab6db72beed435904133229c4e 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
@@ -1,10 +1,10 @@
-import { IPropsTitreEtapesIds, propsTitreEtapeIdKeys } from '../../types.js'
+import { IPropsTitreEtapesIds, propsTitreEtapeIdKeys } from '../../types'
 
-import { titresGet, titreUpdate } from '../../database/queries/titres.js'
-import { titrePropTitreEtapeFind } from '../rules/titre-prop-etape-find.js'
-import { objectsDiffer } from '../../tools/index.js'
-import { userSuper } from '../../database/user-super.js'
-import { getCurrent } from 'camino-common/src/date.js'
+import { titresGet, titreUpdate } from '../../database/queries/titres'
+import { titrePropTitreEtapeFind } from '../rules/titre-prop-etape-find'
+import { objectsDiffer } from '../../tools/index'
+import { userSuper } from '../../database/user-super'
+import { getCurrent } from 'camino-common/src/date'
 
 export const titresPropsEtapesIdsUpdate = async (titresIds?: string[]) => {
   console.info()
diff --git a/packages/api/src/business/processes/titres-public-update.queries.ts b/packages/api/src/business/processes/titres-public-update.queries.ts
index 1faae9fe103d5cc6e374c4866648cd02f92820eb..ea20c02e150742c1ca2428c1d379d1ddb689ffb8 100644
--- a/packages/api/src/business/processes/titres-public-update.queries.ts
+++ b/packages/api/src/business/processes/titres-public-update.queries.ts
@@ -1,13 +1,13 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { Redefine, dbQueryAndValidate } from '../../pg-database.js'
+import { Redefine, dbQueryAndValidate } from '../../pg-database'
 import { Pool } from 'pg'
 import { z } from 'zod'
-import { TitreId, titreIdValidator } from 'camino-common/src/validators/titres.js'
-import { IGetTitrePublicUpdateDataDbQuery, IUpdateTitrePublicLectureDbQuery } from './titres-public-update.queries.types.js'
-import { titreTypeIdValidator } from 'camino-common/src/static/titresTypes.js'
-import { titreStatutIdValidator } from 'camino-common/src/static/titresStatuts.js'
-import { NonEmptyArray } from 'camino-common/src/typescript-tools.js'
+import { TitreId, titreIdValidator } from 'camino-common/src/validators/titres'
+import { IGetTitrePublicUpdateDataDbQuery, IUpdateTitrePublicLectureDbQuery } from './titres-public-update.queries.types'
+import { titreTypeIdValidator } from 'camino-common/src/static/titresTypes'
+import { titreStatutIdValidator } from 'camino-common/src/static/titresStatuts'
+import { NonEmptyArray } from 'camino-common/src/typescript-tools'
 
 const getTitrePublicUpdateDataDbValidator = z.object({
   titre_type_id: titreTypeIdValidator,
diff --git a/packages/api/src/business/processes/titres-public-update.ts b/packages/api/src/business/processes/titres-public-update.ts
index d6a0ba80bc69ab9d213a6dbe7a82fb1274c077c7..765437832178034fefa4f0d3a3d6eb651c4a8270 100644
--- a/packages/api/src/business/processes/titres-public-update.ts
+++ b/packages/api/src/business/processes/titres-public-update.ts
@@ -1,8 +1,8 @@
-import { titrePublicFind } from 'camino-common/src/static/titresTypes_titresStatuts.js'
-import { TitreId } from 'camino-common/src/validators/titres.js'
-import { getTitrePublicUpdateData, updateTitrePublicLecture } from './titres-public-update.queries.js'
+import { titrePublicFind } from 'camino-common/src/static/titresTypes_titresStatuts'
+import { TitreId } from 'camino-common/src/validators/titres'
+import { getTitrePublicUpdateData, updateTitrePublicLecture } from './titres-public-update.queries'
 import { Pool } from 'pg'
-import { NonEmptyArray } from 'camino-common/src/typescript-tools.js'
+import { NonEmptyArray } from 'camino-common/src/typescript-tools'
 
 // met à jour la publicité d'un titre
 export const titresPublicUpdate = async (pool: Pool, titresIds?: NonEmptyArray<TitreId>) => {
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 3c2c2367b0a301e02d2fc6aeba0f9b2ff355f612..5969e2181882fc7b3278f66c48832338eaaa750e 100644
--- a/packages/api/src/business/processes/titres-slugs-update.test.ts
+++ b/packages/api/src/business/processes/titres-slugs-update.test.ts
@@ -1,11 +1,11 @@
-import Titres from '../../database/models/titres.js'
-import { titresSlugsUpdate } from './titres-slugs-update.js'
+import Titres from '../../database/models/titres'
+import { titresSlugsUpdate } from './titres-slugs-update'
 
-import { titreSlugAndRelationsUpdate } from '../utils/titre-slug-and-relations-update.js'
-import { titresGet } from '../../database/queries/titres.js'
+import { titreSlugAndRelationsUpdate } from '../utils/titre-slug-and-relations-update'
+import { titresGet } from '../../database/queries/titres'
 import { vi, describe, expect, test } from 'vitest'
-import { titreSlugValidator } from 'camino-common/src/validators/titres.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
+import { titreSlugValidator } from 'camino-common/src/validators/titres'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
 vi.mock('../utils/titre-slug-and-relations-update', () => ({
   __esModule: true,
   titreSlugAndRelationsUpdate: vi.fn(),
diff --git a/packages/api/src/business/processes/titres-slugs-update.ts b/packages/api/src/business/processes/titres-slugs-update.ts
index 9fd63f9bfd8eeea1f108c40d3b34ca03ae558a47..1681cd22aea70b8b03468afc0cfa5d39d01cb144 100644
--- a/packages/api/src/business/processes/titres-slugs-update.ts
+++ b/packages/api/src/business/processes/titres-slugs-update.ts
@@ -1,9 +1,9 @@
-import { Index, ITitre } from '../../types.js'
+import { Index, ITitre } from '../../types'
 
-import { titresGet } from '../../database/queries/titres.js'
-import { userSuper } from '../../database/user-super.js'
+import { titresGet } from '../../database/queries/titres'
+import { userSuper } from '../../database/user-super'
 
-import { titreSlugAndRelationsUpdate } from '../utils/titre-slug-and-relations-update.js'
+import { titreSlugAndRelationsUpdate } from '../utils/titre-slug-and-relations-update'
 
 // met à jour les slugs de titre
 const titreSlugsUpdate = async (titre: ITitre) => {
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 2d193b8563114ddd56c8aa78645668e91d323be4..2ddc3ae50ca05817b58447993783096a747fafbc 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,9 +1,9 @@
-import { titresStatutIdsUpdate } from './titres-statut-ids-update.js'
-import { titresGet } from '../../database/queries/titres.js'
+import { titresStatutIdsUpdate } from './titres-statut-ids-update'
+import { titresGet } from '../../database/queries/titres'
 
 import { vi, describe, expect, test, beforeEach } from 'vitest'
-import { newDemarcheId, newTitreId } from '../../database/models/_format/id-create.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { newDemarcheId, newTitreId } from '../../database/models/_format/id-create'
+import { toCaminoDate } from 'camino-common/src/date'
 vi.mock('../../database/queries/titres', () => ({
   __esModule: true,
   titreUpdate: vi.fn().mockResolvedValue(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 c73f51875782dc2a676b6d378c3c091311f10be4..1dd4707e9530b613295995ae299268fafea11603 100644
--- a/packages/api/src/business/processes/titres-statut-ids-update.ts
+++ b/packages/api/src/business/processes/titres-statut-ids-update.ts
@@ -1,7 +1,7 @@
-import { titresGet, titreUpdate } from '../../database/queries/titres.js'
-import { titreStatutIdFind } from '../rules/titre-statut-id-find.js'
-import { userSuper } from '../../database/user-super.js'
-import { getCurrent } from 'camino-common/src/date.js'
+import { titresGet, titreUpdate } from '../../database/queries/titres'
+import { titreStatutIdFind } from '../rules/titre-statut-id-find'
+import { userSuper } from '../../database/user-super'
+import { getCurrent } from 'camino-common/src/date'
 
 export const titresStatutIdsUpdate = async (titresIds?: string[]) => {
   console.info()
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 b09a706c43c233505cc4f06e57dd137750f327d8..45902dad16b40bf6d162a5092e5006fbba76ffb4 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,8 +1,8 @@
-import { ArmOctMachine } from './oct.machine.js'
-import { interpretMachine, setDateAndOrderAndInterpretMachine, orderAndInterpretMachine } from '../machine-test-helper.js'
-import { EtapeTypeEtapeStatutValidPair, EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
-import { Etape } from '../machine-common.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { ArmOctMachine } from './oct.machine'
+import { interpretMachine, setDateAndOrderAndInterpretMachine, orderAndInterpretMachine } from '../machine-test-helper'
+import { EtapeTypeEtapeStatutValidPair, EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts'
+import { Etape } from '../machine-common'
+import { toCaminoDate } from 'camino-common/src/date'
 import { describe, expect, test } from 'vitest'
 const etapesProd = require('./2019-10-31-oct.cas.json')
 
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 87be32dfcd493b7db89dd6fd1f0cabaf2b9cb5c0..88406ff0a9df59d61866bed111b6beb50cfd4e81 100644
--- a/packages/api/src/business/rules-demarches/arm/oct.machine.ts
+++ b/packages/api/src/business/rules-demarches/arm/oct.machine.ts
@@ -1,10 +1,10 @@
 import { assign, createMachine } from 'xstate'
-import { IContenu } from '../../../types.js'
-import { EtapesTypesEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
-import { CaminoMachine } from '../machine-helper.js'
-import { CaminoCommonContext, DBEtat, Etape, tags } from '../machine-common.js'
-import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts.js'
-import { CaminoDate } from 'camino-common/src/date.js'
+import { IContenu } from '../../../types'
+import { EtapesTypesEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts'
+import { CaminoMachine } from '../machine-helper'
+import { CaminoCommonContext, DBEtat, Etape, tags } from '../machine-common'
+import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts'
+import { CaminoDate } from 'camino-common/src/date'
 
 type FaireDemandeEvent = {
   mecanise: boolean
diff --git a/packages/api/src/business/rules-demarches/arm/ren-pro.machine.test.ts b/packages/api/src/business/rules-demarches/arm/ren-pro.machine.test.ts
index 5a05f02b5f97e84118896f3dce11d66fac22929b..09731f27de9cdc9c882cc3cdcc487837b2ec2c51 100644
--- a/packages/api/src/business/rules-demarches/arm/ren-pro.machine.test.ts
+++ b/packages/api/src/business/rules-demarches/arm/ren-pro.machine.test.ts
@@ -1,8 +1,8 @@
 import { describe, expect, test } from 'vitest'
-import { ArmRenProMachine } from './ren-pro.machine.js'
-import { interpretMachine, setDateAndOrderAndInterpretMachine } from '../machine-test-helper.js'
-import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts.js'
-import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
+import { ArmRenProMachine } from './ren-pro.machine'
+import { interpretMachine, setDateAndOrderAndInterpretMachine } from '../machine-test-helper'
+import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts'
+import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts'
 const etapesProd = require('./2019-10-31-ren-pro.cas.json')
 
 describe('vérifie l’arbre de renonciation et de prolongation d’ARM', () => {
diff --git a/packages/api/src/business/rules-demarches/arm/ren-pro.machine.ts b/packages/api/src/business/rules-demarches/arm/ren-pro.machine.ts
index 687f4db4eba79287f2c328b3a00e41002480f5de..f2009fb4f6102ca627dbeaa73bf85d540dd9478e 100644
--- a/packages/api/src/business/rules-demarches/arm/ren-pro.machine.ts
+++ b/packages/api/src/business/rules-demarches/arm/ren-pro.machine.ts
@@ -1,8 +1,8 @@
 import { assign, createMachine } from 'xstate'
-import { EtapesTypesEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
-import { CaminoMachine } from '../machine-helper.js'
-import { CaminoCommonContext, DBEtat, Etape } from '../machine-common.js'
-import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts.js'
+import { EtapesTypesEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts'
+import { CaminoMachine } from '../machine-helper'
+import { CaminoCommonContext, DBEtat, Etape } from '../machine-common'
+import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts'
 
 type XStateEvent =
   | { type: 'FAIRE_DEMANDE' }
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 7ed8bf36613da5234270ad17ab25f14ceb2f8018..23c22bacb51ecf420b17d655a6c254931f558080 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,8 +1,8 @@
-import { interpretMachine, orderAndInterpretMachine, setDateAndOrderAndInterpretMachine } 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'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { interpretMachine, orderAndInterpretMachine, setDateAndOrderAndInterpretMachine } from '../machine-test-helper'
+import { AxmOctMachine } from './oct.machine'
+import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
+import { toCaminoDate } from 'camino-common/src/date'
 import { describe, expect, test } from 'vitest'
 const etapesProd = require('./2020-09-30-oct.cas.json')
 
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 c7b371234293ae8fffdbbf1cc881d28ce99b33e7..add306e22b2f09f0b33ee50e749ce6751ad3381e 100644
--- a/packages/api/src/business/rules-demarches/axm/oct.machine.ts
+++ b/packages/api/src/business/rules-demarches/axm/oct.machine.ts
@@ -1,10 +1,10 @@
 import { assign, createMachine } from 'xstate'
-import { CaminoMachine } from '../machine-helper.js'
-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 { CaminoMachine } from '../machine-helper'
+import { CaminoCommonContext, DBEtat, Etape, tags } from '../machine-common'
+import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts'
+import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
+import { CaminoDate, dateAddMonths, daysBetween } from 'camino-common/src/date'
 
 type RendreAvisDesServicesEtCommissionsConsultatives = {
   date: CaminoDate
diff --git a/packages/api/src/business/rules-demarches/axm/pro.machine.test.ts b/packages/api/src/business/rules-demarches/axm/pro.machine.test.ts
index 8ee82ba3ad820012573b1f9489fd5fd07d10f999..632246f69d3e192a763f72fc8ec45087b97f93c8 100644
--- a/packages/api/src/business/rules-demarches/axm/pro.machine.test.ts
+++ b/packages/api/src/business/rules-demarches/axm/pro.machine.test.ts
@@ -1,8 +1,8 @@
-import { interpretMachine, setDateAndOrderAndInterpretMachine } from '../machine-test-helper.js'
-import { AxmProMachine } from './pro.machine.js'
+import { interpretMachine, setDateAndOrderAndInterpretMachine } from '../machine-test-helper'
+import { AxmProMachine } from './pro.machine'
 import { describe, expect, test } from 'vitest'
 
-import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
+import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts'
 
 const etapesProd = require('./2000-01-01-pro.cas.json')
 
diff --git a/packages/api/src/business/rules-demarches/axm/pro.machine.ts b/packages/api/src/business/rules-demarches/axm/pro.machine.ts
index 73709e0c36564e17326384d6b675e42d1c4879bb..dae7acd7b190d3a9671301bd30300b8905d75fb6 100644
--- a/packages/api/src/business/rules-demarches/axm/pro.machine.ts
+++ b/packages/api/src/business/rules-demarches/axm/pro.machine.ts
@@ -1,10 +1,10 @@
 import { assign, createMachine } from 'xstate'
-import { CaminoMachine } from '../machine-helper.js'
-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 { CaminoMachine } from '../machine-helper'
+import { CaminoCommonContext, DBEtat, Etape, tags } from '../machine-common'
+import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts'
+import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
+import { CaminoDate, dateAddMonths, daysBetween } from 'camino-common/src/date'
 
 type RendreAvisDesServicesEtCommissionsConsultatives = {
   date: CaminoDate
diff --git a/packages/api/src/business/rules-demarches/definitions.ts b/packages/api/src/business/rules-demarches/definitions.ts
index 5234e582f2e5c0a201fe8ffbb399571310f4ddbd..ce21eff27f33d59f18ea7316420604c7fb8395d0 100644
--- a/packages/api/src/business/rules-demarches/definitions.ts
+++ b/packages/api/src/business/rules-demarches/definitions.ts
@@ -1,18 +1,18 @@
-import { ITitreEtape } from '../../types.js'
-import { DemarcheId } from 'camino-common/src/demarche.js'
-import { titreDemarcheDepotDemandeDateFind } from '../rules/titre-demarche-depot-demande-date-find.js'
-import { CaminoMachines } from './machines.js'
-import { ArmOctMachine } from './arm/oct.machine.js'
-import { AxmOctMachine } from './axm/oct.machine.js'
-import { AxmProMachine } from './axm/pro.machine.js'
-import { newDemarcheId } from '../../database/models/_format/id-create.js'
-import { CaminoDate, toCaminoDate } from 'camino-common/src/date.js'
-import { DEMARCHES_TYPES_IDS, DemarchesTypes, DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { ArmRenProMachine } from './arm/ren-pro.machine.js'
-import { PrmOctMachine } from './prm/oct.machine.js'
-import { DeepReadonly, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools.js'
-import { ProcedureSimplifieeMachine } from './procedure-simplifiee/ps.machine.js'
+import { ITitreEtape } from '../../types'
+import { DemarcheId } from 'camino-common/src/demarche'
+import { titreDemarcheDepotDemandeDateFind } from '../rules/titre-demarche-depot-demande-date-find'
+import { CaminoMachines } from './machines'
+import { ArmOctMachine } from './arm/oct.machine'
+import { AxmOctMachine } from './axm/oct.machine'
+import { AxmProMachine } from './axm/pro.machine'
+import { newDemarcheId } from '../../database/models/_format/id-create'
+import { CaminoDate, toCaminoDate } from 'camino-common/src/date'
+import { DEMARCHES_TYPES_IDS, DemarchesTypes, DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { ArmRenProMachine } from './arm/ren-pro.machine'
+import { PrmOctMachine } from './prm/oct.machine'
+import { DeepReadonly, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools'
+import { ProcedureSimplifieeMachine } from './procedure-simplifiee/ps.machine'
 
 interface DemarcheDefinitionCommon {
   titreTypeId: TitreTypeId
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 aaa400ece2fe5efe7dcc61ee0416cb83d742abcf..06b5a9db9c917b15fdcee4ea81ad2f444598fcc0 100644
--- a/packages/api/src/business/rules-demarches/machine-common.test.ts
+++ b/packages/api/src/business/rules-demarches/machine-common.test.ts
@@ -1,7 +1,7 @@
-import { toCaminoDate } from 'camino-common/src/date.js'
-import { TitreEtapeForMachine, toMachineEtapes } from './machine-common.js'
+import { toCaminoDate } from 'camino-common/src/date'
+import { TitreEtapeForMachine, toMachineEtapes } from './machine-common'
 import { describe, expect, test, vi } from 'vitest'
-import { ETAPE_IS_NOT_BROUILLON, ETAPE_IS_BROUILLON } from 'camino-common/src/etape.js'
+import { ETAPE_IS_NOT_BROUILLON, ETAPE_IS_BROUILLON } from 'camino-common/src/etape'
 
 console.error = vi.fn()
 describe('toMachineEtapes', () => {
diff --git a/packages/api/src/business/rules-demarches/machine-common.ts b/packages/api/src/business/rules-demarches/machine-common.ts
index 58992cf683ac5a9efcb3272a5f2f738c546d9ab4..9b5ca2e28421ee546f1d2b05af5354bc0e932520 100644
--- a/packages/api/src/business/rules-demarches/machine-common.ts
+++ b/packages/api/src/business/rules-demarches/machine-common.ts
@@ -1,18 +1,18 @@
-import { IContenu } from '../../types.js'
-import { EtapeStatutId, EtapeStatutKey, ETAPES_STATUTS, isStatut, etapeStatutIdValidator } from 'camino-common/src/static/etapesStatuts.js'
-import { EtapeTypeId, etapeTypeIdValidator, 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'
-import { CaminoDate, caminoDateValidator } from 'camino-common/src/date.js'
-import { Departements, toDepartementId } from 'camino-common/src/static/departement.js'
-import { Regions } from 'camino-common/src/static/region.js'
-import { PaysId } from 'camino-common/src/static/pays.js'
-import { communeIdValidator } from 'camino-common/src/static/communes.js'
+import { IContenu } from '../../types'
+import { EtapeStatutId, EtapeStatutKey, ETAPES_STATUTS, isStatut, etapeStatutIdValidator } from 'camino-common/src/static/etapesStatuts'
+import { EtapeTypeId, etapeTypeIdValidator, isEtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
+import { EtapeTypeEtapeStatut } from 'camino-common/src/static/etapesTypesEtapesStatuts'
+import { DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts'
+import { CaminoDate, caminoDateValidator } from 'camino-common/src/date'
+import { Departements, toDepartementId } from 'camino-common/src/static/departement'
+import { Regions } from 'camino-common/src/static/region'
+import { PaysId } from 'camino-common/src/static/pays'
+import { communeIdValidator } from 'camino-common/src/static/communes'
 import { z } from 'zod'
-import { ETAPE_IS_NOT_BROUILLON, etapeBrouillonValidator, etapeIdValidator } from 'camino-common/src/etape.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
-import { km2Validator } from 'camino-common/src/number.js'
+import { ETAPE_IS_NOT_BROUILLON, etapeBrouillonValidator, etapeIdValidator } from 'camino-common/src/etape'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
+import { km2Validator } from 'camino-common/src/number'
 export interface Etape {
   // TODO 2022-07-28 : ceci pourrait être réduit en utilisant les états de 'trad'
   etapeTypeId: EtapeTypeId
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 bd7da54314bfca5f1109fc65ed8d10cea93517b2..b4c6ce7c7303f69084830965cf7954c223492e6d 100644
--- a/packages/api/src/business/rules-demarches/machine-helper.test.ts
+++ b/packages/api/src/business/rules-demarches/machine-helper.test.ts
@@ -1,6 +1,6 @@
-import { toCaminoDate } from 'camino-common/src/date.js'
-import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations.js'
-import { ArmOctMachine } from './arm/oct.machine.js'
+import { toCaminoDate } from 'camino-common/src/date'
+import { ADMINISTRATION_IDS } from 'camino-common/src/static/administrations'
+import { ArmOctMachine } from './arm/oct.machine'
 import { describe, expect, test } from 'vitest'
 const armOctMachine = new ArmOctMachine()
 describe('isEtapesOk', () => {
diff --git a/packages/api/src/business/rules-demarches/machine-helper.ts b/packages/api/src/business/rules-demarches/machine-helper.ts
index 997fdf186ed74e69115e04dd8341734db7fc3fb1..b62cbf08aade99ad672e45e58d3e5a1ea28f8265 100644
--- a/packages/api/src/business/rules-demarches/machine-helper.ts
+++ b/packages/api/src/business/rules-demarches/machine-helper.ts
@@ -1,8 +1,8 @@
 import { AnyMachineSnapshot, createActor, EventObject, MachineSnapshot, StateMachine } from 'xstate'
-import { CaminoCommonContext, DBEtat, Etape, Intervenant, intervenants, tags } from './machine-common.js'
-import { DemarchesStatutsIds, DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts.js'
-import { CaminoDate } from 'camino-common/src/date.js'
-import { OmitDistributive } from 'camino-common/src/typescript-tools.js'
+import { CaminoCommonContext, DBEtat, Etape, Intervenant, intervenants, tags } from './machine-common'
+import { DemarchesStatutsIds, DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts'
+import { CaminoDate } from 'camino-common/src/date'
+import { OmitDistributive } from 'camino-common/src/typescript-tools'
 
 type CaminoState<CaminoContext extends CaminoCommonContext, CaminoEvent extends EventObject> = MachineSnapshot<CaminoContext, CaminoEvent, any, any, any, any, any>
 
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 996f872d56ad02ab33a5c36504760e644b67fbdd..084dd76d2473c46bdefd1191507a2abbfd185f61 100644
--- a/packages/api/src/business/rules-demarches/machine-test-helper.ts
+++ b/packages/api/src/business/rules-demarches/machine-test-helper.ts
@@ -1,10 +1,10 @@
-import { CaminoCommonContext, Etape } from './machine-common.js'
+import { CaminoCommonContext, Etape } from './machine-common'
 import { Actor, EventObject, createActor } from 'xstate'
-import { CaminoMachine, getNextEvents } from './machine-helper.js'
+import { CaminoMachine, getNextEvents } from './machine-helper'
 import { expect } from 'vitest'
-import { CaminoDate, dateAddDays, toCaminoDate } from 'camino-common/src/date.js'
-import { EtapeTypeEtapeStatutValidPair } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
+import { CaminoDate, dateAddDays, toCaminoDate } from 'camino-common/src/date'
+import { EtapeTypeEtapeStatutValidPair } from 'camino-common/src/static/etapesTypesEtapesStatuts'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
 interface CustomMatchers<R = unknown> {
   canOnlyTransitionTo<T extends EventObject, C extends CaminoCommonContext>(context: { machine: CaminoMachine<C, T>; date: CaminoDate }, _events: T['type'][]): R
 }
diff --git a/packages/api/src/business/rules-demarches/machines.ts b/packages/api/src/business/rules-demarches/machines.ts
index 3ac34859e5d40eca747b46ed0e9685dbae01509e..5302799e07fced62ec13d5128ae96ea26dfb0984 100644
--- a/packages/api/src/business/rules-demarches/machines.ts
+++ b/packages/api/src/business/rules-demarches/machines.ts
@@ -1,8 +1,8 @@
-import type { ArmOctMachine } from './arm/oct.machine.js'
-import type { ArmRenProMachine } from './arm/ren-pro.machine.js'
-import type { AxmOctMachine } from './axm/oct.machine.js'
-import type { AxmProMachine } from './axm/pro.machine.js'
-import type { PrmOctMachine } from './prm/oct.machine.js'
-import type { ProcedureSimplifieeMachine } from './procedure-simplifiee/ps.machine.js'
+import type { ArmOctMachine } from './arm/oct.machine'
+import type { ArmRenProMachine } from './arm/ren-pro.machine'
+import type { AxmOctMachine } from './axm/oct.machine'
+import type { AxmProMachine } from './axm/pro.machine'
+import type { PrmOctMachine } from './prm/oct.machine'
+import type { ProcedureSimplifieeMachine } from './procedure-simplifiee/ps.machine'
 
 export type CaminoMachines = ArmOctMachine | AxmOctMachine | AxmProMachine | ArmRenProMachine | PrmOctMachine | ProcedureSimplifieeMachine
diff --git a/packages/api/src/business/rules-demarches/prm/oct.machine.test.ts b/packages/api/src/business/rules-demarches/prm/oct.machine.test.ts
index 25649e4c9fd648195a08723577878a0977d56adb..6e83fc4ca3347ad01603a56c706e097052f609af 100644
--- a/packages/api/src/business/rules-demarches/prm/oct.machine.test.ts
+++ b/packages/api/src/business/rules-demarches/prm/oct.machine.test.ts
@@ -1,8 +1,8 @@
-import { interpretMachine, setDateAndOrderAndInterpretMachine } from '../machine-test-helper.js'
-import { PrmOctMachine } from './oct.machine.js'
-import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
+import { interpretMachine, setDateAndOrderAndInterpretMachine } from '../machine-test-helper'
+import { PrmOctMachine } from './oct.machine'
+import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts'
 import { describe, expect, test } from 'vitest'
-import { PAYS_IDS } from 'camino-common/src/static/pays.js'
+import { PAYS_IDS } from 'camino-common/src/static/pays'
 const etapesProd = require('./2019-10-31-oct.cas.json')
 
 describe('vérifie l’arbre d’octroi de PRM', () => {
diff --git a/packages/api/src/business/rules-demarches/prm/oct.machine.ts b/packages/api/src/business/rules-demarches/prm/oct.machine.ts
index ade97e970477385b457746c2fda143d2d01ccd96..9ecba1b5341ead8a362b525f1d29b0cb0920f7b0 100644
--- a/packages/api/src/business/rules-demarches/prm/oct.machine.ts
+++ b/packages/api/src/business/rules-demarches/prm/oct.machine.ts
@@ -1,11 +1,11 @@
 import { assign, createMachine } from 'xstate'
-import { EtapesTypesEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
-import { CaminoMachine } from '../machine-helper.js'
-import { CaminoCommonContext, DBEtat, Etape } from '../machine-common.js'
-import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts.js'
-import { CaminoDate, dateAddMonths, daysBetween } from 'camino-common/src/date.js'
-import { PAYS_IDS, PaysId, isGuyane, isMetropole, isOutreMer } from 'camino-common/src/static/pays.js'
-import { ETAPES_STATUTS, EtapeStatutId } from 'camino-common/src/static/etapesStatuts.js'
+import { EtapesTypesEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts'
+import { CaminoMachine } from '../machine-helper'
+import { CaminoCommonContext, DBEtat, Etape } from '../machine-common'
+import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts'
+import { CaminoDate, dateAddMonths, daysBetween } from 'camino-common/src/date'
+import { PAYS_IDS, PaysId, isGuyane, isMetropole, isOutreMer } from 'camino-common/src/static/pays'
+import { ETAPES_STATUTS, EtapeStatutId } from 'camino-common/src/static/etapesStatuts'
 
 type RendreAvisMiseEnConcurrentJORF = {
   date: CaminoDate
diff --git a/packages/api/src/business/rules-demarches/procedure-simplifiee/ps.machine.test.ts b/packages/api/src/business/rules-demarches/procedure-simplifiee/ps.machine.test.ts
index 667e08e06287d07ae9f94075ba66126f12a954ea..fbbf7e67ec57a0a7287c2bbb7c6d2ff9695de3b7 100644
--- a/packages/api/src/business/rules-demarches/procedure-simplifiee/ps.machine.test.ts
+++ b/packages/api/src/business/rules-demarches/procedure-simplifiee/ps.machine.test.ts
@@ -1,9 +1,9 @@
-import { interpretMachine, orderAndInterpretMachine, setDateAndOrderAndInterpretMachine } from '../machine-test-helper.js'
-import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { interpretMachine, orderAndInterpretMachine, setDateAndOrderAndInterpretMachine } from '../machine-test-helper'
+import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts'
+import { toCaminoDate } from 'camino-common/src/date'
 import { describe, expect, test } from 'vitest'
-import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts.js'
-import { ProcedureSimplifieeMachine } from './ps.machine.js'
+import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts'
+import { ProcedureSimplifieeMachine } from './ps.machine'
 
 const etapesProdProceduresHistoriques = require('../pxg/1717-01-09-amo-ces-con-dec-dep-exp-exs-fus-mut-oct-pr1-pr2-pre-pro-prr-ren-res-ret-vct-vut.cas.json')
 const psMachine = new ProcedureSimplifieeMachine()
diff --git a/packages/api/src/business/rules-demarches/procedure-simplifiee/ps.machine.ts b/packages/api/src/business/rules-demarches/procedure-simplifiee/ps.machine.ts
index 848317464b3627ea2dbb85f4f5df6a5a16afb04f..33eac0d0fbc9a7556cb6c4b95f352ec754c6eb4c 100644
--- a/packages/api/src/business/rules-demarches/procedure-simplifiee/ps.machine.ts
+++ b/packages/api/src/business/rules-demarches/procedure-simplifiee/ps.machine.ts
@@ -1,11 +1,11 @@
 import { assign, createMachine } from 'xstate'
-import { CaminoMachine } from '../machine-helper.js'
-import { CaminoCommonContext, DBEtat, Etape } 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 { CaminoDate, isBefore, toCaminoDate } from 'camino-common/src/date.js'
-import { ETAPES_STATUTS, EtapeStatutId } from 'camino-common/src/static/etapesStatuts.js'
-import { isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
+import { CaminoMachine } from '../machine-helper'
+import { CaminoCommonContext, DBEtat, Etape } from '../machine-common'
+import { EtapesTypesEtapesStatuts as ETES } from 'camino-common/src/static/etapesTypesEtapesStatuts'
+import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts'
+import { CaminoDate, isBefore, toCaminoDate } from 'camino-common/src/date'
+import { ETAPES_STATUTS, EtapeStatutId } from 'camino-common/src/static/etapesStatuts'
+import { isNullOrUndefined } from 'camino-common/src/typescript-tools'
 
 type RendreDecisionAdministrationAcceptee = {
   date: CaminoDate
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 6864b4f1ced442064d76c4a3311c4999eb2d5ed4..49c1d928f72f19f806211e230c2b5f1689b44580 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
@@ -1,5 +1,5 @@
-import { ITitreActivite } from '../../../types.js'
-import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
+import { ITitreActivite } from '../../../types'
+import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts'
 
 export const titreActiviteFermee = {
   activiteStatutId: ACTIVITES_STATUTS_IDS.CLOTURE,
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 0430a0b051d97840a64a49117cffa4b85a72eb2d..9e22db10e25ecc30d3ac17667f9a0c517a3a23a2 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
@@ -1,5 +1,5 @@
-import { ITitreDemarche } from '../../../types.js'
-import { newDemarcheId, newTitreId } from '../../../database/models/_format/id-create.js'
+import { ITitreDemarche } from '../../../types'
+import { newDemarcheId, newTitreId } from '../../../database/models/_format/id-create'
 
 const titreDemarcheOctEtapeMen = [
   {
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 f057961803317728dabf304f1f2ea0b4469acb89..5a0c177a8a08deb1eb8e04409f51ae206a6cfe63 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,6 +1,6 @@
-import { titreActiviteStatutIdFind } from './titre-activite-statut-id-find.js'
+import { titreActiviteStatutIdFind } from './titre-activite-statut-id-find'
 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'
 
 describe("statut d'une activité", () => {
   test('une activité dont le statut est “fermé" garde le statut "fermé"', () => {
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 048ae155b68d218528bcba1165f8a90af56b7d44..9f25b6bf495b5282cc7cf02dcbf5780f07ebd850 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,7 +1,7 @@
-import { ITitreActivite } from '../../types.js'
-import { ACTIVITES_STATUTS_IDS, ActivitesStatutId } from 'camino-common/src/static/activitesStatuts.js'
-import { ActivitesTypes } from 'camino-common/src/static/activitesTypes.js'
-import { dateAddMonths } from 'camino-common/src/date.js'
+import { ITitreActivite } from '../../types'
+import { ACTIVITES_STATUTS_IDS, ActivitesStatutId } from 'camino-common/src/static/activitesStatuts'
+import { ActivitesTypes } from 'camino-common/src/static/activitesTypes'
+import { dateAddMonths } from 'camino-common/src/date'
 
 /**
  * Trouve le statut d'une activité
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 817b26187c3a5a83b2f43cd65e776648e155366e..865cd149f05c1031201bd5d364918723e29504dd 100644
--- a/packages/api/src/business/rules/titre-activites-build.test.ts
+++ b/packages/api/src/business/rules/titre-activites-build.test.ts
@@ -1,13 +1,13 @@
-import { ITitreActivite, ITitreDemarche } from '../../types.js'
+import { ITitreActivite, ITitreDemarche } from '../../types'
 
-import { titreActivitesBuild } from './titre-activites-build.js'
+import { titreActivitesBuild } from './titre-activites-build'
 
 import { describe, expect, test } from 'vitest'
-import { toCaminoDate } from 'camino-common/src/date.js'
-import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create.js'
-import { ACTIVITES_TYPES_IDS } from 'camino-common/src/static/activitesTypes.js'
-import { titreIdValidator } from 'camino-common/src/validators/titres.js'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { toCaminoDate } from 'camino-common/src/date'
+import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create'
+import { ACTIVITES_TYPES_IDS } from 'camino-common/src/static/activitesTypes'
+import { titreIdValidator } from 'camino-common/src/validators/titres'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 
 const titreId = titreIdValidator.parse('titre-id')
 
diff --git a/packages/api/src/business/rules/titre-activites-build.ts b/packages/api/src/business/rules/titre-activites-build.ts
index e80b70cd33241effb29afced8e2a5545d601a198..f92d25f223501977236d9b4ca5b5fde879ae3bb1 100644
--- a/packages/api/src/business/rules/titre-activites-build.ts
+++ b/packages/api/src/business/rules/titre-activites-build.ts
@@ -1,17 +1,17 @@
-import { ITitreActivite, 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 { Unites } from 'camino-common/src/static/unites.js'
-import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts.js'
-import { FrequenceId, Frequences, getNumberOfMonths } from 'camino-common/src/static/frequence.js'
-import { SubstanceLegaleId } from 'camino-common/src/static/substancesLegales.js'
-import { CaminoDate, toCaminoDate } from 'camino-common/src/date.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { DeepReadonly, isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { ActiviteSection, ActiviteSectionElement, ActivitesTypes, ActivitesTypesId, isSubstancesFiscales } from 'camino-common/src/static/activitesTypes.js'
-import { TitreId } from 'camino-common/src/validators/titres.js'
+import { ITitreActivite, ITitreDemarche } from '../../types'
+
+import { titreEtapePropFind } from './titre-etape-prop-find'
+import { titreActiviteValideCheck } from '../utils/titre-activite-valide-check'
+import { SubstanceFiscale, substancesFiscalesBySubstanceLegale } from 'camino-common/src/static/substancesFiscales'
+import { Unites } from 'camino-common/src/static/unites'
+import { ACTIVITES_STATUTS_IDS } from 'camino-common/src/static/activitesStatuts'
+import { FrequenceId, Frequences, getNumberOfMonths } from 'camino-common/src/static/frequence'
+import { SubstanceLegaleId } from 'camino-common/src/static/substancesLegales'
+import { CaminoDate, toCaminoDate } from 'camino-common/src/date'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { DeepReadonly, isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { ActiviteSection, ActiviteSectionElement, ActivitesTypes, ActivitesTypesId, isSubstancesFiscales } from 'camino-common/src/static/activitesTypes'
+import { TitreId } from 'camino-common/src/validators/titres'
 
 const substancesFiscalesFind = (substances: SubstanceLegaleId[]): SubstanceFiscale[] => substances.filter(s => !!s).flatMap(substanceId => substancesFiscalesBySubstanceLegale(substanceId))
 
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 dfcb8c2bd6604cfafacad907071cd4c0e56e9a29..3a496cc7cf18eb671e8d0f9e8690a8460c2d4299 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,6 +1,6 @@
-import { titreDateDemandeFind } from './titre-date-demande-find.js'
+import { titreDateDemandeFind } from './titre-date-demande-find'
 
-import { titreDemarcheOctEtapeMen, titreDemarcheOctSansEtapes, titreDemarcheOctSansEtapeMen } from './__mocks__/titre-date-demande-find-demarches.js'
+import { titreDemarcheOctEtapeMen, titreDemarcheOctSansEtapes, titreDemarcheOctSansEtapeMen } from './__mocks__/titre-date-demande-find-demarches'
 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 e2111fe183b2e7f180178bb25efb4fe5a588ca2c..770cce0e54182b2e2f40bf7af13a7c0ba5681500 100644
--- a/packages/api/src/business/rules/titre-date-demande-find.ts
+++ b/packages/api/src/business/rules/titre-date-demande-find.ts
@@ -1,9 +1,9 @@
-import { isNullOrUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools.js'
-import { ITitreDemarche } from '../../types.js'
+import { isNullOrUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools'
+import { ITitreDemarche } from '../../types'
 
-import { titreDemarcheSortAsc } from '../utils/titre-elements-sort-asc.js'
-import { titreEtapesSortAscByOrdre } from '../utils/titre-etapes-sort.js'
-import { isDemarcheTypeOctroi } from 'camino-common/src/static/demarchesTypes.js'
+import { titreDemarcheSortAsc } from '../utils/titre-elements-sort-asc'
+import { titreEtapesSortAscByOrdre } from '../utils/titre-etapes-sort'
+import { isDemarcheTypeOctroi } from 'camino-common/src/static/demarchesTypes'
 
 export const titreDateDemandeFind = (titreDemarches: ITitreDemarche[]) => {
   // trouve la démarche génératrice du titre
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 545699c006014cbdfbd28c6c1475ec82c0598af3..af17dab4347e62a19abf01a793e996434c2948fd 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
@@ -1,10 +1,10 @@
-import { ITitreEtape } from '../../types.js'
-import { titreDemarcheAnnulationDateFinFind } from './titre-demarche-annulation-date-fin-find.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { newDemarcheId, newEtapeId } from '../../database/models/_format/id-create.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { ITitreEtape } from '../../types'
+import { titreDemarcheAnnulationDateFinFind } from './titre-demarche-annulation-date-fin-find'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { newDemarcheId, newEtapeId } from '../../database/models/_format/id-create'
+import { toCaminoDate } from 'camino-common/src/date'
 import { describe, expect, test } from 'vitest'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 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[] = [
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 ae874a17a22a176482c3ff7fd6cdc0d5f0925574..380ffea7b65eca84ad0428d80ab034b7e950a654 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,7 +1,7 @@
-import { CaminoDate } from 'camino-common/src/date.js'
+import { CaminoDate } from 'camino-common/src/date'
 
-import { titreEtapesSortAscByOrdre, titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort.js'
-import { TitreEtapePhaseFind } from './titre-phases-find.js'
+import { titreEtapesSortAscByOrdre, titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort'
+import { TitreEtapePhaseFind } from './titre-phases-find'
 
 /**
  * Retourne la date de fin d'une démarche d'annulation
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 f39ce0e61b89c76c688eeadda82f2507ed67bdef..59719fe408417f076a1a7566fdf8c44a8ea3b389 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
@@ -1,6 +1,6 @@
-import { DeepReadonly } from 'camino-common/src/typescript-tools.js'
-import { ITitreEtape } from '../../types.js'
-import { CaminoDate } from 'camino-common/src/date.js'
+import { DeepReadonly } from 'camino-common/src/typescript-tools'
+import { ITitreEtape } from '../../types'
+import { CaminoDate } from 'camino-common/src/date'
 
 // si il y a un dépot de la demande
 // -> retourne la date de cette étape
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 7afd35064197fdd71bea47f357f1348bc5bcbc03..ccd2eb465c258a2b6572c7a925713754e8f47856 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
@@ -1,6 +1,6 @@
-import { ITitreDemarche } from '../../types.js'
+import { ITitreDemarche } from '../../types'
 
-import titreDemarcheOctroiDateDebutFind from './titre-demarche-octroi-date-debut-find.js'
+import titreDemarcheOctroiDateDebutFind from './titre-demarche-octroi-date-debut-find'
 import { describe, expect, test } from 'vitest'
 describe("trouve la date d'octroi d'un titre", () => {
   test("retourne 0000 si le titre n'a pas de démarches", () => {
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 73db62e5a4940a55c443559a13fc6535a21fd439..789df7f47af914eb2652be90769120356b222e0a 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
@@ -1,9 +1,9 @@
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { ITitreDemarche } from '../../types.js'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { ITitreDemarche } from '../../types'
 
-import { titreDemarcheSortAsc } from '../utils/titre-elements-sort-asc.js'
-import { titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort.js'
-import { isDemarcheTypeOctroi } from 'camino-common/src/static/demarchesTypes.js'
+import { titreDemarcheSortAsc } from '../utils/titre-elements-sort-asc'
+import { titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort'
+import { isDemarcheTypeOctroi } from 'camino-common/src/static/demarchesTypes'
 const etapeTypeIds: EtapeTypeId[] = ['dpu', 'dup', 'rpu', 'dex', 'dux', 'dim', 'def', 'sco', 'aco']
 const titreDemarcheOctroiDateDebutFind = (titreDemarches?: ITitreDemarche[] | null) => {
   if (!titreDemarches || !titreDemarches.length) return '0000'
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 f32bb7822ec7c608873e6ab0e254c57892623b98..6f4aca8f5698ebc90aab17fabe77908b6d1ebfac 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
@@ -1,12 +1,12 @@
-import { ITitreEtape } from '../../types.js'
+import { ITitreEtape } from '../../types'
 
-import { titreDemarchePublicFind } from './titre-demarche-public-find.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { titreDemarchePublicFind } from './titre-demarche-public-find'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create'
+import { toCaminoDate } from 'camino-common/src/date'
 import { describe, expect, test } from 'vitest'
-import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 const etapesBuild = (etapesProps: Partial<ITitreEtape>[]) =>
   etapesProps.map(
     (etapeProps, i) =>
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 7fcd8307b750160fd949b33137e856f351536c82..5fefaf6ab6cf9bf2be94c9dd9e7a94a577d014f6 100644
--- a/packages/api/src/business/rules/titre-demarche-public-find.ts
+++ b/packages/api/src/business/rules/titre-demarche-public-find.ts
@@ -1,12 +1,12 @@
-import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { getDomaineId, TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { getEtapesTDE } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/index.js'
-import { ITitreEtape, ITitreDemarche } from '../../types.js'
-import { demarcheDefinitionFind } from '../rules-demarches/definitions.js'
-import { titreEtapeForMachineValidator, toMachineEtapes } from '../rules-demarches/machine-common.js'
-import { titreEtapesSortAscByOrdre } from '../utils/titre-etapes-sort.js'
-import { titreInModificationEnInstance } from './titre-statut-id-find.js'
+import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { getDomaineId, TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { getEtapesTDE } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/index'
+import { ITitreEtape, ITitreDemarche } from '../../types'
+import { demarcheDefinitionFind } from '../rules-demarches/definitions'
+import { titreEtapeForMachineValidator, toMachineEtapes } from '../rules-demarches/machine-common'
+import { titreEtapesSortAscByOrdre } from '../utils/titre-etapes-sort'
+import { titreInModificationEnInstance } from './titre-statut-id-find'
 const titreDemarchePublicLectureFind = (
   publicLecture: boolean,
   demarcheTypeId: DemarcheTypeId,
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 38c077c6e8400b566f6a587d013500b929d2d070..e451f6591e19bbb26aa19b08ae3199ec0d1bb1d4 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,14 +1,14 @@
-import { ITitreEtape, TitreEtapesTravauxTypes as Travaux } from '../../types.js'
+import { ITitreEtape, TitreEtapesTravauxTypes as Travaux } from '../../types'
 
-import { titreDemarcheStatutIdFind } from './titre-demarche-statut-id-find.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 { titreDemarcheStatutIdFind } from './titre-demarche-statut-id-find'
+import { DemarchesStatutsIds as Demarches, DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts'
+import { newDemarcheId } from '../../database/models/_format/id-create'
+import { toCaminoDate } from 'camino-common/src/date'
 import { describe, expect, test } from 'vitest'
-import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts.js'
-import { TitreEtapeForMachine } from '../rules-demarches/machine-common.js'
-import { ETAPE_IS_BROUILLON, ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
+import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts'
+import { TitreEtapeForMachine } from '../rules-demarches/machine-common'
+import { ETAPE_IS_BROUILLON, ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
 const etapesBuild = (etapesProps: Partial<ITitreEtape>[]): TitreEtapeForMachine[] =>
   etapesProps.map(
     (etapeProps, i) =>
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 d30697e49cd1964f0ad1bd1537f5bed1d4c789d0..d78479c310ffcd125e621723dfbe264f56e01c05 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,14 +1,14 @@
-import { ITitreEtape, TitreEtapesTravauxTypes as Travaux } from '../../types.js'
-import { DemarcheId } from 'camino-common/src/demarche.js'
-
-import { titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort.js'
-import { titreEtapePublicationCheck } from './titre-etape-publication-check.js'
-import { demarcheDefinitionFind } from '../rules-demarches/definitions.js'
-import { TitreEtapeForMachine, toMachineEtapes } from '../rules-demarches/machine-common.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 { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
+import { ITitreEtape, TitreEtapesTravauxTypes as Travaux } from '../../types'
+import { DemarcheId } from 'camino-common/src/demarche'
+
+import { titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort'
+import { titreEtapePublicationCheck } from './titre-etape-publication-check'
+import { demarcheDefinitionFind } from '../rules-demarches/definitions'
+import { TitreEtapeForMachine, toMachineEtapes } from '../rules-demarches/machine-common'
+import { DemarcheStatutId, DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { DemarcheTypeId, TravauxIds } from 'camino-common/src/static/demarchesTypes'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
 
 const titreEtapesDecisivesCommunesTypes: EtapeTypeId[] = ['css', 'abd', 'and']
 
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 2e4e644c991cf83b320461b4cbe74966da7cb00a..d5f382875cf8676f183fe9e438c36c4995da1d44 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
@@ -1,11 +1,11 @@
-import { ITitreDemarche } from '../../types.js'
+import { ITitreDemarche } from '../../types'
 
-import { titreEtapePropFind } from './titre-etape-prop-find.js'
+import { titreEtapePropFind } from './titre-etape-prop-find'
 import { vi, describe, expect, test } from 'vitest'
-import { toCaminoDate } from 'camino-common/src/date.js'
-import { ETAPE_IS_NOT_BROUILLON, etapeIdValidator } from 'camino-common/src/etape.js'
-import { titreIdValidator } from 'camino-common/src/validators/titres.js'
-import { demarcheIdValidator } from 'camino-common/src/demarche.js'
+import { toCaminoDate } from 'camino-common/src/date'
+import { ETAPE_IS_NOT_BROUILLON, etapeIdValidator } from 'camino-common/src/etape'
+import { titreIdValidator } from 'camino-common/src/validators/titres'
+import { demarcheIdValidator } from 'camino-common/src/demarche'
 console.error = vi.fn()
 
 describe("valeur d'une propriété pour une étape", () => {
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 be7729e2f83ba15881b395e015124833299af4c1..48f8b4ce768dc4f70703a7b845874214e6c32d86 100644
--- a/packages/api/src/business/rules/titre-etape-prop-find.ts
+++ b/packages/api/src/business/rules/titre-etape-prop-find.ts
@@ -1,12 +1,12 @@
-import { CaminoDate } from 'camino-common/src/date.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { ITitreDemarche, IPropId } from '../../types.js'
+import { CaminoDate } from 'camino-common/src/date'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { ITitreDemarche, IPropId } from '../../types'
 
-import { propValueFind } from '../utils/prop-value-find.js'
-import { titreDemarchesEtapesRebuild } from '../utils/titre-demarches-etapes-rebuild.js'
+import { propValueFind } from '../utils/prop-value-find'
+import { titreDemarchesEtapesRebuild } from '../utils/titre-demarches-etapes-rebuild'
 
-import { titrePropTitreEtapeFind } from './titre-prop-etape-find.js'
-import { titreStatutIdFind } from './titre-statut-id-find.js'
+import { titrePropTitreEtapeFind } from './titre-prop-etape-find'
+import { titreStatutIdFind } from './titre-statut-id-find'
 
 /**
  * Trouve la propriété d'un titre à une date donnée
diff --git a/packages/api/src/business/rules/titre-etape-publication-check.test.ts b/packages/api/src/business/rules/titre-etape-publication-check.test.ts
index 98615444c42255a37b24f71944a49f9363e38f0a..f5ff50e255b6cc822f29162f338b27753f27f471 100644
--- a/packages/api/src/business/rules/titre-etape-publication-check.test.ts
+++ b/packages/api/src/business/rules/titre-etape-publication-check.test.ts
@@ -1,4 +1,4 @@
-import { titreEtapePublicationCheck } from './titre-etape-publication-check.js'
+import { titreEtapePublicationCheck } from './titre-etape-publication-check'
 import { describe, expect, test } from 'vitest'
 describe("étape de publication d'une étape", () => {
   test('une étape de dpu est une étape de publication', () => {
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 96e628213e4ffe15571f80c179e938f6aefae7d3..add47a434354af9d17c57046f7a11e01528cbb2c 100644
--- a/packages/api/src/business/rules/titre-etape-publication-check.ts
+++ b/packages/api/src/business/rules/titre-etape-publication-check.ts
@@ -1,5 +1,5 @@
-import { EtapeTypeId, ETAPES_TYPES } from 'camino-common/src/static/etapesTypes.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
+import { EtapeTypeId, ETAPES_TYPES } from 'camino-common/src/static/etapesTypes'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
 
 type SubTitreTypeId = Extract<TitreTypeId, 'arm' | 'axm' | 'prm' | 'pxg'>
 const demarcheEtapesTypesPublication: {
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 46dbbd9472ba021f220b9b2d8ccd7f4864cec1dc..04235ec2ef4381d25e10d25d9737fa2788acbc5d 100644
--- a/packages/api/src/business/rules/titre-phases-find.test.ts
+++ b/packages/api/src/business/rules/titre-phases-find.test.ts
@@ -1,18 +1,18 @@
-import { ITitreDemarche } from '../../types.js'
-import { DemarcheId, demarcheSlugValidator } from 'camino-common/src/demarche.js'
+import { ITitreDemarche } from '../../types'
+import { DemarcheId, demarcheSlugValidator } from 'camino-common/src/demarche'
 
-import { titrePhasesFind, TitreDemarchePhaseFind } from './titre-phases-find.js'
-import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create.js'
-import { CaminoDate, toCaminoDate } from 'camino-common/src/date.js'
+import { titrePhasesFind, TitreDemarchePhaseFind } from './titre-phases-find'
+import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create'
+import { CaminoDate, toCaminoDate } from 'camino-common/src/date'
 import { describe, expect, test } from 'vitest'
 import { DEMARCHES_TYPES_IDS } from 'camino-common/src/static/demarchesTypes'
 import { DemarchesStatutsIds } from 'camino-common/src/static/demarchesStatuts'
 import { TitreTypeId } from 'camino-common/src/static/titresTypes'
 
-import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts.js'
-import { ETAPE_IS_BROUILLON, ETAPE_IS_NOT_BROUILLON, etapeSlugValidator } from 'camino-common/src/etape.js'
-import { FeatureMultiPolygon } from 'camino-common/src/perimetre.js'
-import { km2Validator } from 'camino-common/src/number.js'
+import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts'
+import { ETAPE_IS_BROUILLON, ETAPE_IS_NOT_BROUILLON, etapeSlugValidator } from 'camino-common/src/etape'
+import { FeatureMultiPolygon } from 'camino-common/src/perimetre'
+import { km2Validator } from 'camino-common/src/number'
 const titresProd = require('./titre-phases-find.cas.json')
 
 export type TitrePhasesTest = [TitreTypeId, TitreDemarchePhaseFind[]]
diff --git a/packages/api/src/business/rules/titre-phases-find.ts b/packages/api/src/business/rules/titre-phases-find.ts
index 10f95ac14e65deefe64575e9e95ed30aba52f6c6..46bd24af739ca9c17c78d29ba010e13117fd4164 100644
--- a/packages/api/src/business/rules/titre-phases-find.ts
+++ b/packages/api/src/business/rules/titre-phases-find.ts
@@ -1,18 +1,18 @@
-import { ITitreDemarche, ITitreEtape } from '../../types.js'
-import { DemarcheId } from 'camino-common/src/demarche.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, isDemarcheTypeWithPhase } from 'camino-common/src/static/demarchesTypes.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { CaminoDate, dateAddMonths, isBefore, toCaminoDate } from 'camino-common/src/date.js'
-import { titreDemarcheSortAsc } from '../utils/titre-elements-sort-asc.js'
-import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts.js'
-import { isDemarcheStatutNonStatue } from 'camino-common/src/static/demarchesStatuts.js'
-import { ETAPES_TYPES, EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools.js'
-import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { ITitreDemarche, ITitreEtape } from '../../types'
+import { DemarcheId } from 'camino-common/src/demarche'
+
+import { titreEtapesSortAscByOrdre, titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort'
+import { titreEtapePublicationCheck } from './titre-etape-publication-check'
+import { titreDemarcheAnnulationDateFinFind } from './titre-demarche-annulation-date-fin-find'
+import { isDemarcheTypeOctroi, isDemarcheTypeWithPhase } from 'camino-common/src/static/demarchesTypes'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { CaminoDate, dateAddMonths, isBefore, toCaminoDate } from 'camino-common/src/date'
+import { titreDemarcheSortAsc } from '../utils/titre-elements-sort-asc'
+import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts'
+import { isDemarcheStatutNonStatue } from 'camino-common/src/static/demarchesStatuts'
+import { ETAPES_TYPES, EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools'
+import { ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 const DATE_PAR_DEFAUT_TITRE_INFINI = toCaminoDate('2018-12-31')
 /**
  * trouve une démarche acceptée ou terminée qui est
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 784ef087fdbf437bf83d94bc4073ea8587f9916d..e2cd67511b9dd8bbdf4d039630acfaa6039bad07 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,15 +1,15 @@
-import { ITitreDemarche, IPropId, ITitreEtape, ICommune } from '../../types.js'
+import { ITitreDemarche, IPropId, ITitreEtape, ICommune } from '../../types'
 
-import { titreContenuTitreEtapeFind, titrePropTitreEtapeFind } from './titre-prop-etape-find.js'
-import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { titreContenuTitreEtapeFind, titrePropTitreEtapeFind } from './titre-prop-etape-find'
+import { newDemarcheId, newEtapeId, newTitreId } from '../../database/models/_format/id-create'
+import { toCaminoDate } from 'camino-common/src/date'
 import { describe, expect, test } from 'vitest'
-import { TitresStatutIds } from 'camino-common/src/static/titresStatuts.js'
-import { newEntrepriseId } from 'camino-common/src/entreprise.js'
-import { ETAPES_TYPES } from 'camino-common/src/static/etapesTypes.js'
-import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts.js'
-import { ETAPE_IS_NOT_BROUILLON, ETAPE_IS_BROUILLON } from 'camino-common/src/etape.js'
-import { km2Validator } from 'camino-common/src/number.js'
+import { TitresStatutIds } from 'camino-common/src/static/titresStatuts'
+import { newEntrepriseId } from 'camino-common/src/entreprise'
+import { ETAPES_TYPES } from 'camino-common/src/static/etapesTypes'
+import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts'
+import { ETAPE_IS_NOT_BROUILLON, ETAPE_IS_BROUILLON } from 'camino-common/src/etape'
+import { km2Validator } from 'camino-common/src/number'
 const currentDate = toCaminoDate('2023-04-06')
 
 describe("id de l'étape d'une propriété valide (dé-normalise)", () => {
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 976b302d5de27430bcf15c6d4b37db0f3a281dba..16d0077c24324685362878bd4968a6c80fe50c35 100644
--- a/packages/api/src/business/rules/titre-prop-etape-find.ts
+++ b/packages/api/src/business/rules/titre-prop-etape-find.ts
@@ -2,19 +2,19 @@
 // de la dernière démarche acceptée
 // pour laquelle la propriété existe
 
-import { CaminoDate } from 'camino-common/src/date.js'
-import { canImpactTitre, DemarcheTypeId, isDemarcheTypeOctroi } from 'camino-common/src/static/demarchesTypes.js'
-import { isDemarchePhaseValide } 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 { propValueFind } from '../utils/prop-value-find.js'
-import { titreDemarcheSortAsc } from '../utils/titre-elements-sort-asc.js'
-import { titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort.js'
-import { isEtapeDecision } from 'camino-common/src/static/etapesTypes.js'
-import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts.js'
-import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape.js'
+import { CaminoDate } from 'camino-common/src/date'
+import { canImpactTitre, DemarcheTypeId, isDemarcheTypeOctroi } from 'camino-common/src/static/demarchesTypes'
+import { isDemarchePhaseValide } from 'camino-common/src/static/phasesStatuts'
+import { TitresStatutIds, TitreStatutId } from 'camino-common/src/static/titresStatuts'
+import { ITitreDemarche, ITitreEtape, IPropId, IContenuId } from '../../types'
+
+import { propValueFind } from '../utils/prop-value-find'
+import { titreDemarcheSortAsc } from '../utils/titre-elements-sort-asc'
+import { titreEtapesSortDescByOrdre } from '../utils/titre-etapes-sort'
+import { isEtapeDecision } from 'camino-common/src/static/etapesTypes'
+import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { ETAPES_STATUTS } from 'camino-common/src/static/etapesStatuts'
+import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape'
 
 const etapeAmodiataireFind = (date: CaminoDate, titreEtape: ITitreEtape, titreDemarches: Pick<ITitreDemarche, 'demarcheDateDebut' | 'demarcheDateFin' | 'id'>[]) => {
   const titreDemarche = titreDemarches.find(td => td.id === titreEtape.titreDemarcheId)
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 77d40a979daaa81ac0f92a0c86c9e0fd50bd292e..731bb581db537ecf6aa17ab28345e7720607070c 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,5 +1,5 @@
-import { titreInModificationEnInstance, titreStatutIdFind, TitreStatutIdFindDemarche } from './titre-statut-id-find.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { titreInModificationEnInstance, titreStatutIdFind, TitreStatutIdFindDemarche } from './titre-statut-id-find'
+import { toCaminoDate } from 'camino-common/src/date'
 import { describe, expect, test } from 'vitest'
 
 describe("statut d'un titre", () => {
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 b616af7916a5876ce98f1e9c1dc77a6a43bf13db..fd4c60176673a22bdd1371eee8d06c8892fa5258 100644
--- a/packages/api/src/business/rules/titre-statut-id-find.ts
+++ b/packages/api/src/business/rules/titre-statut-id-find.ts
@@ -1,10 +1,10 @@
-import { ITitreDemarche } from '../../types.js'
+import { ITitreDemarche } from '../../types'
 
-import { DemarchesStatutsIds, isDemarcheStatutNonStatue, isDemarcheStatutNonValide } from 'camino-common/src/static/demarchesStatuts.js'
-import { isDemarcheTypeOctroi, DemarchesTypes } from 'camino-common/src/static/demarchesTypes.js'
-import { TitresStatutIds, TitreStatutId } from 'camino-common/src/static/titresStatuts.js'
-import { CaminoDate } from 'camino-common/src/date.js'
-import { isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
+import { DemarchesStatutsIds, isDemarcheStatutNonStatue, isDemarcheStatutNonValide } from 'camino-common/src/static/demarchesStatuts'
+import { isDemarcheTypeOctroi, DemarchesTypes } from 'camino-common/src/static/demarchesTypes'
+import { TitresStatutIds, TitreStatutId } from 'camino-common/src/static/titresStatuts'
+import { CaminoDate } from 'camino-common/src/date'
+import { isNullOrUndefined } from 'camino-common/src/typescript-tools'
 
 export type TitreStatutIdFindDemarche = Pick<ITitreDemarche, 'typeId' | 'statutId' | 'demarcheDateDebut' | 'demarcheDateFin'>
 export const titreStatutIdFind = (aujourdhui: CaminoDate, demarches: TitreStatutIdFindDemarche[] | null | undefined): TitreStatutId => {
diff --git a/packages/api/src/business/titre-demarche-update.ts b/packages/api/src/business/titre-demarche-update.ts
index 7564899bd9882ff4e2254aadbd64bfad06af0b23..143ffe0129769c79b35db35258bcb81229847c86 100644
--- a/packages/api/src/business/titre-demarche-update.ts
+++ b/packages/api/src/business/titre-demarche-update.ts
@@ -1,19 +1,19 @@
-import { titreGet } from '../database/queries/titres.js'
+import { titreGet } from '../database/queries/titres'
 
-import { titresDemarchesPublicUpdate } from './processes/titres-demarches-public-update.js'
-import { titresActivitesUpdate } from './processes/titres-activites-update.js'
-import { titresStatutIdsUpdate } from './processes/titres-statut-ids-update.js'
-import { titresPropsEtapesIdsUpdate } from './processes/titres-props-etapes-ids-update.js'
-import { titresDemarchesDatesUpdate } from './processes/titres-phases-update.js'
-import { titresDemarchesOrdreUpdate } from './processes/titres-demarches-ordre-update.js'
-import { titresPublicUpdate } from './processes/titres-public-update.js'
-import { titresSlugsUpdate } from './processes/titres-slugs-update.js'
-import { logsUpdate } from './_logs-update.js'
-import { titresActivitesPropsUpdate } from './processes/titres-activites-props-update.js'
-import { userSuper } from '../database/user-super.js'
+import { titresDemarchesPublicUpdate } from './processes/titres-demarches-public-update'
+import { titresActivitesUpdate } from './processes/titres-activites-update'
+import { titresStatutIdsUpdate } from './processes/titres-statut-ids-update'
+import { titresPropsEtapesIdsUpdate } from './processes/titres-props-etapes-ids-update'
+import { titresDemarchesDatesUpdate } from './processes/titres-phases-update'
+import { titresDemarchesOrdreUpdate } from './processes/titres-demarches-ordre-update'
+import { titresPublicUpdate } from './processes/titres-public-update'
+import { titresSlugsUpdate } from './processes/titres-slugs-update'
+import { logsUpdate } from './_logs-update'
+import { titresActivitesPropsUpdate } from './processes/titres-activites-props-update'
+import { userSuper } from '../database/user-super'
 import type { Pool } from 'pg'
-import { TitreId } from 'camino-common/src/validators/titres.js'
-import { DemarcheId } from 'camino-common/src/demarche.js'
+import { TitreId } from 'camino-common/src/validators/titres'
+import { DemarcheId } from 'camino-common/src/demarche'
 
 export const titreDemarcheUpdate = async (pool: Pool, titreDemarcheId: DemarcheId | null, titreId: TitreId) => {
   try {
diff --git a/packages/api/src/business/titre-etape-update.ts b/packages/api/src/business/titre-etape-update.ts
index 0075017818898fe7f1c7c03b5529445d5e2597e7..53aba6ccf48a4b77432fba858af7cff7ceb14eba 100644
--- a/packages/api/src/business/titre-etape-update.ts
+++ b/packages/api/src/business/titre-etape-update.ts
@@ -1,26 +1,26 @@
-import { titreDemarcheGet } from '../database/queries/titres-demarches.js'
-import type { DemarcheId } from 'camino-common/src/demarche.js'
-import type { EtapeId } from 'camino-common/src/etape.js'
+import { titreDemarcheGet } from '../database/queries/titres-demarches'
+import type { DemarcheId } from 'camino-common/src/demarche'
+import type { EtapeId } from 'camino-common/src/etape'
 
-import { titresActivitesUpdate } from './processes/titres-activites-update.js'
-import { titresDemarchesPublicUpdate } from './processes/titres-demarches-public-update.js'
-import { titresDemarchesStatutIdUpdate } from './processes/titres-demarches-statut-ids-update.js'
-import { titresEtapesHeritagePropsUpdate } from './processes/titres-etapes-heritage-props-update.js'
-import { titresEtapesHeritageContenuUpdate } from './processes/titres-etapes-heritage-contenu-update.js'
-import { titresDemarchesOrdreUpdate } from './processes/titres-demarches-ordre-update.js'
-import { titresEtapesAreasUpdate } from './processes/titres-etapes-areas-update.js'
-import { titresEtapesOrdreUpdate } from './processes/titres-etapes-ordre-update.js'
-import { titresStatutIdsUpdate } from './processes/titres-statut-ids-update.js'
-import { titresDemarchesDatesUpdate } from './processes/titres-phases-update.js'
-import { titresEtapesAdministrationsLocalesUpdate } from './processes/titres-etapes-administrations-locales-update.js'
-import { titresPropsEtapesIdsUpdate } from './processes/titres-props-etapes-ids-update.js'
-import { titresSlugsUpdate } from './processes/titres-slugs-update.js'
-import { titresPublicUpdate } from './processes/titres-public-update.js'
-import { logsUpdate } from './_logs-update.js'
-import { titresActivitesPropsUpdate } from './processes/titres-activites-props-update.js'
-import { userSuper } from '../database/user-super.js'
-import { titresEtapesDepotCreate } from './processes/titres-demarches-depot-create.js'
-import type { UserNotNull } from 'camino-common/src/roles.js'
+import { titresActivitesUpdate } from './processes/titres-activites-update'
+import { titresDemarchesPublicUpdate } from './processes/titres-demarches-public-update'
+import { titresDemarchesStatutIdUpdate } from './processes/titres-demarches-statut-ids-update'
+import { titresEtapesHeritagePropsUpdate } from './processes/titres-etapes-heritage-props-update'
+import { titresEtapesHeritageContenuUpdate } from './processes/titres-etapes-heritage-contenu-update'
+import { titresDemarchesOrdreUpdate } from './processes/titres-demarches-ordre-update'
+import { titresEtapesAreasUpdate } from './processes/titres-etapes-areas-update'
+import { titresEtapesOrdreUpdate } from './processes/titres-etapes-ordre-update'
+import { titresStatutIdsUpdate } from './processes/titres-statut-ids-update'
+import { titresDemarchesDatesUpdate } from './processes/titres-phases-update'
+import { titresEtapesAdministrationsLocalesUpdate } from './processes/titres-etapes-administrations-locales-update'
+import { titresPropsEtapesIdsUpdate } from './processes/titres-props-etapes-ids-update'
+import { titresSlugsUpdate } from './processes/titres-slugs-update'
+import { titresPublicUpdate } from './processes/titres-public-update'
+import { logsUpdate } from './_logs-update'
+import { titresActivitesPropsUpdate } from './processes/titres-activites-props-update'
+import { userSuper } from '../database/user-super'
+import { titresEtapesDepotCreate } from './processes/titres-demarches-depot-create'
+import type { UserNotNull } from 'camino-common/src/roles'
 import type { Pool } from 'pg'
 
 export const titreEtapeUpdateTask = async (pool: Pool, titreEtapeId: EtapeId | null, titreDemarcheId: DemarcheId, user: UserNotNull) => {
diff --git a/packages/api/src/business/titre-update.ts b/packages/api/src/business/titre-update.ts
index dd03752daff264ba3080243b16445e37b51f3f33..603a3edf45a03538d4ff689a823e9ddb2f0edbd0 100644
--- a/packages/api/src/business/titre-update.ts
+++ b/packages/api/src/business/titre-update.ts
@@ -1,8 +1,8 @@
-import { titresActivitesUpdate } from './processes/titres-activites-update.js'
-import { titresPublicUpdate } from './processes/titres-public-update.js'
-import { titresSlugsUpdate } from './processes/titres-slugs-update.js'
-import { logsUpdate } from './_logs-update.js'
-import { TitreId } from 'camino-common/src/validators/titres.js'
+import { titresActivitesUpdate } from './processes/titres-activites-update'
+import { titresPublicUpdate } from './processes/titres-public-update'
+import { titresSlugsUpdate } from './processes/titres-slugs-update'
+import { logsUpdate } from './_logs-update'
+import { TitreId } from 'camino-common/src/validators/titres'
 import { Pool } from 'pg'
 
 const titreUpdate = async (pool: Pool, titreId: TitreId) => {
diff --git a/packages/api/src/business/utils/filters.ts b/packages/api/src/business/utils/filters.ts
index 830d52008a3f632dc8824ff939e870bde924e19a..51411cece52f43b662ffd9f3b167aec07be4a196 100644
--- a/packages/api/src/business/utils/filters.ts
+++ b/packages/api/src/business/utils/filters.ts
@@ -9,9 +9,9 @@ import {
   entreprisesFiltresNames,
   titresDownloadFormats,
   titresFiltresNames,
-} from 'camino-common/src/filters.js'
-import { DownloadFormat } from 'camino-common/src/rest.js'
-import { NonEmptyArray } from 'camino-common/src/typescript-tools.js'
+} from 'camino-common/src/filters'
+import { DownloadFormat } from 'camino-common/src/rest'
+import { NonEmptyArray } from 'camino-common/src/typescript-tools'
 import { ZodOptional, z } from 'zod'
 
 type GenericFiltreValidator<T extends Readonly<CaminoFiltre[]>> = { [key in T[number]]: ZodOptional<(typeof caminoFiltres)[key]['validator']> }
diff --git a/packages/api/src/business/utils/prop-value-find.ts b/packages/api/src/business/utils/prop-value-find.ts
index 91307fa3b04f55b7a34f5451a4a9fcf9094afe7a..6e9cb6f7ec92163157a6eb8265f71f449144c31a 100644
--- a/packages/api/src/business/utils/prop-value-find.ts
+++ b/packages/api/src/business/utils/prop-value-find.ts
@@ -1,5 +1,5 @@
-import { isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
-import { ITitreEtape, IPropId } from '../../types.js'
+import { isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
+import { ITitreEtape, IPropId } from '../../types'
 
 export const propValueFind = (titreEtape: ITitreEtape, propId: IPropId) => {
   if (propId === 'points') {
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 ff9eca56f81672fcdd18afd4d4c57b7c7a9213f1..04601bf271d4345ea03d0f7568194dfa4e232004 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
@@ -1,11 +1,11 @@
-import { ITitreDemarche } from '../../types.js'
+import { ITitreDemarche } from '../../types'
 
-import { titreActiviteValideCheck } from './titre-activite-valide-check.js'
+import { titreActiviteValideCheck } from './titre-activite-valide-check'
 
-import { titreValideCheck } from './titre-valide-check.js'
+import { titreValideCheck } from './titre-valide-check'
 
 import { vi, describe, test, expect } from 'vitest'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { toCaminoDate } from 'camino-common/src/date'
 
 vi.mock('./titre-valide-check', () => ({
   titreValideCheck: vi.fn(),
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 75692df6ed5ccc85ad5d44c857c8f5b1bd4b7401..04be06ae0a134fcff895e249740a1a0b3e24825f 100644
--- a/packages/api/src/business/utils/titre-activite-valide-check.ts
+++ b/packages/api/src/business/utils/titre-activite-valide-check.ts
@@ -1,7 +1,7 @@
-import { CaminoDate, toCaminoDate } from 'camino-common/src/date.js'
-import { ITitreDemarche } from '../../types.js'
+import { CaminoDate, toCaminoDate } from 'camino-common/src/date'
+import { ITitreDemarche } from '../../types'
 
-import { titreValideCheck } from './titre-valide-check.js'
+import { titreValideCheck } from './titre-valide-check'
 
 /**
  * Vérifie si une activité doit exister
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 3687e31e344d4844054cfb7d3d1c5570c4d89436..90da1d1043c77264e336fa16ca6de9ef47db3272 100644
--- a/packages/api/src/business/utils/titre-demarches-etapes-rebuild.ts
+++ b/packages/api/src/business/utils/titre-demarches-etapes-rebuild.ts
@@ -1,9 +1,9 @@
-import { ITitreDemarche, ITitreEtape } from '../../types.js'
-import { titreDemarcheStatutIdFind } from '../rules/titre-demarche-statut-id-find.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { titrePhasesFind } from '../rules/titre-phases-find.js'
-import { CaminoDate } from 'camino-common/src/date.js'
-import { titreEtapeForMachineValidator } from '../rules-demarches/machine-common.js'
+import { ITitreDemarche, ITitreEtape } from '../../types'
+import { titreDemarcheStatutIdFind } from '../rules/titre-demarche-statut-id-find'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { titrePhasesFind } from '../rules/titre-phases-find'
+import { CaminoDate } from 'camino-common/src/date'
+import { titreEtapeForMachineValidator } from '../rules-demarches/machine-common'
 
 /**
  * Filtre les étapes antérieures à une date
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 50b55560cd21e9129dfb920aa52eed8f86de490a..2f7f30e50c12ba48b1b0dfb47eeee21bce45537e 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
@@ -1,6 +1,6 @@
-import { titreDemarcheSortAsc, TitreDemarcheSortAscMinimalDemarche } from './titre-elements-sort-asc.js'
+import { titreDemarcheSortAsc, TitreDemarcheSortAscMinimalDemarche } from './titre-elements-sort-asc'
 import { describe, test, expect } from 'vitest'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { toCaminoDate } from 'camino-common/src/date'
 
 describe('trie les démarches', () => {
   test('des démarches sans étapes organisées par ordre décroissant sont triées par ordre croissant', () => {
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 28784e25e8f9b65cb032e92287cdd7b1aa27b923..9852e71bd4e1bc07f719dfaeee09012b30fafdb5 100644
--- a/packages/api/src/business/utils/titre-elements-sort-asc.ts
+++ b/packages/api/src/business/utils/titre-elements-sort-asc.ts
@@ -1,8 +1,8 @@
 // classe les démarches selon la date de leur première étape
 // puis par ordre si les dates sont identiques
-import { DemarchesTypes } from 'camino-common/src/static/demarchesTypes.js'
-import { ITitreDemarche, ITitreEtape } from '../../types.js'
-import { titreEtapesSortAscByOrdre } from './titre-etapes-sort.js'
+import { DemarchesTypes } from 'camino-common/src/static/demarchesTypes'
+import { ITitreDemarche, ITitreEtape } from '../../types'
+import { titreEtapesSortAscByOrdre } from './titre-etapes-sort'
 
 export type TitreDemarcheSortAscMinimalDemarche = Pick<ITitreDemarche, 'typeId' | 'ordre'> & { etapes?: Pick<ITitreEtape, 'ordre' | 'date'>[] }
 export const titreDemarcheSortAsc = <T extends TitreDemarcheSortAscMinimalDemarche>(titreElements: T[]): T[] =>
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 607b19ba0d6c69462099bf4de1a3219890b6526f..051af0b565a6a6c4776c5a7d00db9e8b6d8eb846 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
@@ -1,12 +1,12 @@
-import { IContenu, IHeritageContenu, ITitreEtape } from '../../types.js'
+import { IContenu, IHeritageContenu, ITitreEtape } from '../../types'
 
-import { objectClone } from '../../tools/index.js'
+import { objectClone } from '../../tools/index'
 
-import { heritageContenuFind, titreEtapeHeritageContenuFind } from './titre-etape-heritage-contenu-find.js'
+import { heritageContenuFind, titreEtapeHeritageContenuFind } from './titre-etape-heritage-contenu-find'
 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'
-import { newEtapeId } from '../../database/models/_format/id-create.js'
+import { DeepReadonly } from 'camino-common/src/typescript-tools'
+import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { newEtapeId } from '../../database/models/_format/id-create'
 
 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', () => {
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 e1ea6e168509a3e5b585893e48b4879a338ec684..31f711f2699cec45b2632c7e6b2888e4bc9a0bb9 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
@@ -1,7 +1,7 @@
-import { IContenuValeur, Index, ITitreEtape } from '../../types.js'
+import { IContenuValeur, Index, ITitreEtape } from '../../types'
 
-import { DeepReadonly } from 'camino-common/src/typescript-tools.js'
-import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
+import { DeepReadonly } from 'camino-common/src/typescript-tools'
+import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
 
 export const heritageContenuFind = (
   sectionId: string,
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 515529f03a5171b38a537fb3538463cd2e7179c6..7a0bcdaa5bb4b1e96dfee1b973ebdb1ea335f2da 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,12 +1,12 @@
-import { IHeritageProps, ITitreEtape } from '../../types.js'
+import { IHeritageProps, ITitreEtape } from '../../types'
 
-import { titreEtapeHeritagePropsFind } from './titre-etape-heritage-props-find.js'
+import { titreEtapeHeritagePropsFind } from './titre-etape-heritage-props-find'
 
-import { objectClone } from '../../tools/index.js'
+import { objectClone } from '../../tools/index'
 import { describe, test, expect } from 'vitest'
-import { newEtapeId } from '../../database/models/_format/id-create.js'
+import { newEtapeId } from '../../database/models/_format/id-create'
 
-import { ETAPE_HERITAGE_PROPS, EtapeHeritageProps } from 'camino-common/src/heritage.js'
+import { ETAPE_HERITAGE_PROPS, EtapeHeritageProps } from 'camino-common/src/heritage'
 import { EntrepriseId, entrepriseIdValidator } from 'camino-common/src/entreprise'
 
 /* eslint-disable @typescript-eslint/ban-ts-comment */
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 693254822d45565185fef8148ff0ddf8e9118071..3b53ec741d98a93778b90882f9d7c28fc2a5133e 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,12 +1,12 @@
-import { ITitreEtape, IEntreprise, ITitreEtapePerimetre } from '../../types.js'
-import { objectClone } from '../../tools/index.js'
-import { SubstanceLegaleId } from 'camino-common/src/static/substancesLegales.js'
-import { CaminoDate } from 'camino-common/src/date.js'
-import { FeatureMultiPolygon, equalGeojson } from 'camino-common/src/perimetre.js'
-import { exhaustiveCheck, isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { ETAPE_HERITAGE_PROPS, EtapeHeritageProps } from 'camino-common/src/heritage.js'
+import { ITitreEtape, IEntreprise, ITitreEtapePerimetre } from '../../types'
+import { objectClone } from '../../tools/index'
+import { SubstanceLegaleId } from 'camino-common/src/static/substancesLegales'
+import { CaminoDate } from 'camino-common/src/date'
+import { FeatureMultiPolygon, equalGeojson } from 'camino-common/src/perimetre'
+import { exhaustiveCheck, isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { ETAPE_HERITAGE_PROPS, EtapeHeritageProps } from 'camino-common/src/heritage'
 import { EntrepriseId } from 'camino-common/src/entreprise'
-import { ZERO_KM2 } from 'camino-common/src/number.js'
+import { ZERO_KM2 } from 'camino-common/src/number'
 
 const propertyArrayCheck = (newValue: string[], prevValue: string[], propId: string) => {
   if (prevValue?.length !== newValue?.length) {
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 1a0bd5c667025a6b9b320bb0b89580858a079cc7..63cc7f2d44e4ce13f1e3d924586e69590feeebb6 100644
--- a/packages/api/src/business/utils/titre-etapes-sort.test.ts
+++ b/packages/api/src/business/utils/titre-etapes-sort.test.ts
@@ -1,12 +1,12 @@
-import { titreEtapesSortAscByDate, titreEtapesSortAscByOrdre, titreEtapesSortDescByOrdre } from './titre-etapes-sort.js'
-import { newDemarcheId, newEtapeId } from '../../database/models/_format/id-create.js'
+import { titreEtapesSortAscByDate, titreEtapesSortAscByOrdre, titreEtapesSortDescByOrdre } from './titre-etapes-sort'
+import { newDemarcheId, newEtapeId } from '../../database/models/_format/id-create'
 import { vi, describe, test, expect } from 'vitest'
-import { toCaminoDate } from 'camino-common/src/date.js'
-import { DEMARCHES_TYPES_IDS } from 'camino-common/src/static/demarchesTypes.js'
-import { TITRES_TYPES_IDS } from 'camino-common/src/static/titresTypes.js'
-import { ETAPES_TYPES } from 'camino-common/src/static/etapesTypes.js'
-import { TitreEtapeForMachine } from '../rules-demarches/machine-common.js'
-import { ETAPE_IS_BROUILLON, ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape.js'
+import { toCaminoDate } from 'camino-common/src/date'
+import { DEMARCHES_TYPES_IDS } from 'camino-common/src/static/demarchesTypes'
+import { TITRES_TYPES_IDS } from 'camino-common/src/static/titresTypes'
+import { ETAPES_TYPES } from 'camino-common/src/static/etapesTypes'
+import { TitreEtapeForMachine } from '../rules-demarches/machine-common'
+import { ETAPE_IS_BROUILLON, ETAPE_IS_NOT_BROUILLON } from 'camino-common/src/etape'
 
 const titreEtapesSortedDescResult = [
   { typeId: 'dpu', ordre: 2, date: '1988-03-11' },
diff --git a/packages/api/src/business/utils/titre-etapes-sort.ts b/packages/api/src/business/utils/titre-etapes-sort.ts
index 8c51ece173daf3644489cb2fef904ec120eaad5c..b753b4aced389a42eb7c120d83324151ffcb2d01 100644
--- a/packages/api/src/business/utils/titre-etapes-sort.ts
+++ b/packages/api/src/business/utils/titre-etapes-sort.ts
@@ -1,12 +1,12 @@
-import { ITitreEtape } from '../../types.js'
-import { demarcheDefinitionFind } from '../rules-demarches/definitions.js'
-import { TitreEtapeForMachine, 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'
-import { getEtapesTDE } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/index.js'
-import { DemarcheId } from 'camino-common/src/demarche.js'
-import { isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
-import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape.js'
+import { ITitreEtape } from '../../types'
+import { demarcheDefinitionFind } from '../rules-demarches/definitions'
+import { TitreEtapeForMachine, toMachineEtapes } from '../rules-demarches/machine-common'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { getEtapesTDE } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/index'
+import { DemarcheId } from 'camino-common/src/demarche'
+import { isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
+import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape'
 
 // 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!)
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 e5f93f415f6b8771d303ef238c9e407bf59f7ba9..4b1662b1dec199f45805baae1c27c147a0841868 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
@@ -1,12 +1,12 @@
-import { titreSlugAndRelationsUpdate } from './titre-slug-and-relations-update.js'
-import { titreCreate, titreGet } from '../../database/queries/titres.js'
-import { userSuper } from '../../database/user-super.js'
-import { dbManager } from '../../../tests/db-manager.js'
-import { ITitre } from '../../types.js'
-import Titres from '../../database/models/titres.js'
-import { objectClone } from '../../tools/index.js'
+import { titreSlugAndRelationsUpdate } from './titre-slug-and-relations-update'
+import { titreCreate, titreGet } from '../../database/queries/titres'
+import { userSuper } from '../../database/user-super'
+import { dbManager } from '../../../tests/db-manager'
+import { ITitre } from '../../types'
+import Titres from '../../database/models/titres'
+import { objectClone } from '../../tools/index'
 import { expect, test, describe, afterAll, beforeAll } from 'vitest'
-import { titreSlugValidator } from 'camino-common/src/validators/titres.js'
+import { titreSlugValidator } from 'camino-common/src/validators/titres'
 beforeAll(async () => {
   await dbManager.populateDb()
 })
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 a6c98943ceb3598b3139fbe12cb2287b0de735b6..92b3da6226acb21c3762158347204922093d0797 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,22 +1,22 @@
-import { ITitre, ITitreActivite, ITitreDemarche, ITitreEtape } from '../../types.js'
-
-import { DemarcheId } from 'camino-common/src/demarche.js'
-
-import { titreDemarcheSortAsc } from './titre-elements-sort-asc.js'
-import { titreEtapesSortAscByOrdre } from './titre-etapes-sort.js'
-import titreDemarcheOctroiDateDebutFind from '../rules/titre-demarche-octroi-date-debut-find.js'
-import { titresGet, titreUpdate } from '../../database/queries/titres.js'
-import { userSuper } from '../../database/user-super.js'
-import { titreDemarcheUpdate } from '../../database/queries/titres-demarches.js'
-import { titreEtapeUpdate } from '../../database/queries/titres-etapes.js'
-import { titreActiviteUpdate } from '../../database/queries/titres-activites.js'
+import { ITitre, ITitreActivite, ITitreDemarche, ITitreEtape } from '../../types'
+
+import { DemarcheId } from 'camino-common/src/demarche'
+
+import { titreDemarcheSortAsc } from './titre-elements-sort-asc'
+import { titreEtapesSortAscByOrdre } from './titre-etapes-sort'
+import titreDemarcheOctroiDateDebutFind from '../rules/titre-demarche-octroi-date-debut-find'
+import { titresGet, titreUpdate } from '../../database/queries/titres'
+import { userSuper } from '../../database/user-super'
+import { titreDemarcheUpdate } from '../../database/queries/titres-demarches'
+import { titreEtapeUpdate } from '../../database/queries/titres-etapes'
+import { titreActiviteUpdate } from '../../database/queries/titres-activites'
 import { UserNotNull } from 'camino-common/src/roles'
-import { getDomaineId, getTitreTypeType } from 'camino-common/src/static/titresTypes.js'
-import { slugify } from 'camino-common/src/strings.js'
-import { TitreId, TitreSlug, titreSlugValidator } from 'camino-common/src/validators/titres.js'
-import { idGenerate } from '../../database/models/_format/id-create.js'
-import { ActiviteId } from 'camino-common/src/activite.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
+import { getDomaineId, getTitreTypeType } from 'camino-common/src/static/titresTypes'
+import { slugify } from 'camino-common/src/strings'
+import { TitreId, TitreSlug, titreSlugValidator } from 'camino-common/src/validators/titres'
+import { idGenerate } from '../../database/models/_format/id-create'
+import { ActiviteId } from 'camino-common/src/activite'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
 
 const titreSlugFind = (titre: ITitre): TitreSlug => {
   const { typeId, nom } = titre
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 2b46f33eaf19324eb7286afdcf85afdeaa31522d..e7b313ac81261d62d36f31838b27f7a7f3f35eb0 100644
--- a/packages/api/src/business/utils/titre-valide-check.test.ts
+++ b/packages/api/src/business/utils/titre-valide-check.test.ts
@@ -1,7 +1,7 @@
-import { ITitreDemarche } from '../../types.js'
-import { titreValideCheck } from './titre-valide-check.js'
+import { ITitreDemarche } from '../../types'
+import { titreValideCheck } from './titre-valide-check'
 import { describe, test, expect } from 'vitest'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { toCaminoDate } from 'camino-common/src/date'
 
 const titreDemarches: Pick<ITitreDemarche, 'typeId' | 'demarcheDateDebut' | 'demarcheDateFin'>[] = [
   { typeId: 'oct' },
diff --git a/packages/api/src/business/utils/titre-valide-check.ts b/packages/api/src/business/utils/titre-valide-check.ts
index 4c5dd41fc4c490637ae80ed2c1d4d13d59248fc7..c5393e7d30f975edecf797cb18ebefa3736cc843 100644
--- a/packages/api/src/business/utils/titre-valide-check.ts
+++ b/packages/api/src/business/utils/titre-valide-check.ts
@@ -1,7 +1,7 @@
-import { ITitreDemarche } from '../../types.js'
+import { ITitreDemarche } from '../../types'
 
-import { CaminoDate } from 'camino-common/src/date.js'
-import { DemarchesTypes } from 'camino-common/src/static/demarchesTypes.js'
+import { CaminoDate } from 'camino-common/src/date'
+import { DemarchesTypes } from 'camino-common/src/static/demarchesTypes'
 
 /**
  * Vérifie la validité du titre pendant la période
diff --git a/packages/api/src/business/utils/urls-get.test.ts b/packages/api/src/business/utils/urls-get.test.ts
index 9c240943dc83a68611d4b6241f8895385e63fda9..c58207a4e2545a7969c0ac64d9d87245a6b5d4c4 100644
--- a/packages/api/src/business/utils/urls-get.test.ts
+++ b/packages/api/src/business/utils/urls-get.test.ts
@@ -1,6 +1,6 @@
-import { ActivitesUrlGetParams, activitesUrlGet } from './urls-get.js'
+import { ActivitesUrlGetParams, activitesUrlGet } from './urls-get'
 import { describe, test, expect } from 'vitest'
-import { toCaminoAnnee } from 'camino-common/src/date.js'
+import { toCaminoAnnee } from 'camino-common/src/date'
 
 describe('activitesUrlGet', () => {
   test.each<[ActivitesUrlGetParams, string]>([
diff --git a/packages/api/src/business/utils/urls-get.ts b/packages/api/src/business/utils/urls-get.ts
index e4d34a4fca96adda6ec856f5cdfb8a2d0c4ecbcc..80493ae5097ab521d5148a37d4c62b230ba5c33a 100644
--- a/packages/api/src/business/utils/urls-get.ts
+++ b/packages/api/src/business/utils/urls-get.ts
@@ -1,5 +1,5 @@
-import { config } from '../../config/index.js'
-import { GetActivitesInput } from './filters.js'
+import { config } from '../../config/index'
+import { GetActivitesInput } from './filters'
 
 export const titreUrlGet = (titreId: string) => `${config().OAUTH_URL}/titres/${titreId}`
 
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 1967ba42b0f92e0bb5f0797fceeeb0af4b5c9a93..4c8958bd1a23a7eb5982d46333bd3a321b9d3190 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
@@ -1,15 +1,15 @@
-import { ITitre, ITitreEtape } from '../../types.js'
+import { ITitre, ITitreEtape } from '../../types'
 
-import { etapesTypesPossibleACetteDateOuALaPlaceDeLEtape, titreDemarcheUpdatedEtatValidate } from './titre-demarche-etat-validate.js'
-import { newDemarcheId, newEtapeId } from '../../database/models/_format/id-create.js'
-import { EtapesTypesEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
+import { etapesTypesPossibleACetteDateOuALaPlaceDeLEtape, titreDemarcheUpdatedEtatValidate } from './titre-demarche-etat-validate'
+import { newDemarcheId, newEtapeId } from '../../database/models/_format/id-create'
+import { EtapesTypesEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts'
 import { describe, test, expect, vi } from 'vitest'
-import { caminoDateValidator, toCaminoDate } from 'camino-common/src/date.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { ETAPE_IS_BROUILLON, ETAPE_IS_NOT_BROUILLON, etapeIdValidator } from 'camino-common/src/etape.js'
-import { onlyUnique } from 'camino-common/src/typescript-tools.js'
-import { ArmOctMachine } from '../rules-demarches/arm/oct.machine.js'
-import { TitreEtapeForMachine } from '../rules-demarches/machine-common.js'
+import { caminoDateValidator, toCaminoDate } from 'camino-common/src/date'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { ETAPE_IS_BROUILLON, ETAPE_IS_NOT_BROUILLON, etapeIdValidator } from 'camino-common/src/etape'
+import { onlyUnique } from 'camino-common/src/typescript-tools'
+import { ArmOctMachine } from '../rules-demarches/arm/oct.machine'
+import { TitreEtapeForMachine } from '../rules-demarches/machine-common'
 
 console.warn = vi.fn()
 describe('teste titreDemarcheUpdatedEtatValidate', () => {
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 31b2a4ca006ad2cc51de9710fb75181d0c4c6af0..cf439abdc6510b6ab97e0f423fb2848d677e0fc4 100644
--- a/packages/api/src/business/validations/titre-demarche-etat-validate.ts
+++ b/packages/api/src/business/validations/titre-demarche-etat-validate.ts
@@ -1,21 +1,21 @@
 // valide la date et la position de l'étape en fonction des autres étapes
-import { DeepReadonly, isNotNullNorUndefined, isNullOrUndefinedOrEmpty, onlyUnique } from 'camino-common/src/typescript-tools.js'
-import type { ITitre, ITitreEtape } from '../../types.js'
-
-import { DemarcheDefinition, demarcheDefinitionFind } from '../rules-demarches/definitions.js'
-import { Etape, TitreEtapeForMachine, titreEtapeForMachineValidator, toMachineEtapes } from '../rules-demarches/machine-common.js'
-import { DemarcheId } from 'camino-common/src/demarche.js'
-import { DemarchesTypes, DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
-import { EtapeId, EtapeTypeEtapeStatutWithMainStep } from 'camino-common/src/etape.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { CaminoMachines } from '../rules-demarches/machines.js'
-import { CaminoDate } from 'camino-common/src/date.js'
-import { EtapesTypes, EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts.js'
-import { titreEtapesSortAscByOrdre } from '../utils/titre-etapes-sort.js'
-import { getEtapesTDE, isTDEExist } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/index.js'
-import { etapeTypeDateFinCheck } from '../../api/_format/etapes-types.js'
-import { getEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
+import { DeepReadonly, isNotNullNorUndefined, isNullOrUndefinedOrEmpty, onlyUnique } from 'camino-common/src/typescript-tools'
+import type { ITitre, ITitreEtape } from '../../types'
+
+import { DemarcheDefinition, demarcheDefinitionFind } from '../rules-demarches/definitions'
+import { Etape, TitreEtapeForMachine, titreEtapeForMachineValidator, toMachineEtapes } from '../rules-demarches/machine-common'
+import { DemarcheId } from 'camino-common/src/demarche'
+import { DemarchesTypes, DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { EtapeId, EtapeTypeEtapeStatutWithMainStep } from 'camino-common/src/etape'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { CaminoMachines } from '../rules-demarches/machines'
+import { CaminoDate } from 'camino-common/src/date'
+import { EtapesTypes, EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts'
+import { titreEtapesSortAscByOrdre } from '../utils/titre-etapes-sort'
+import { getEtapesTDE, isTDEExist } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/index'
+import { etapeTypeDateFinCheck } from '../../api/_format/etapes-types'
+import { getEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts'
 
 const titreDemarcheEtapesBuild = <T extends Pick<Partial<ITitreEtape>, 'id'>>(titreEtape: DeepReadonly<T>, suppression: boolean, titreDemarcheEtapes?: DeepReadonly<T[]> | null): DeepReadonly<T[]> => {
   if (isNullOrUndefinedOrEmpty(titreDemarcheEtapes)) {
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 1e039f961cdb25391943cdd649a96fca56955e34..d9f3b881cfb6f85f9b4314155a9fb3bcca23bf08 100644
--- a/packages/api/src/business/validations/titre-demarche-updation-validate.ts
+++ b/packages/api/src/business/validations/titre-demarche-updation-validate.ts
@@ -1,5 +1,5 @@
-import { isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
-import { ITitreDemarche } from '../../types.js'
+import { isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
+import { ITitreDemarche } from '../../types'
 
 export const titreDemarcheUpdationValidate = async (titreDemarcheNew: ITitreDemarche, titreDemarcheOld: ITitreDemarche) => {
   const errors = [] as string[]
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 a99ff78e33fa592a63e6fa4d898690bae9fbed02..090d4358806bf6275601fc240348857045e61030 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
@@ -1,4 +1,4 @@
-import { tdeOldTitreEtapeTypeAndStatusValidate } from './titre-etape-type-and-status-validate.js'
+import { tdeOldTitreEtapeTypeAndStatusValidate } from './titre-etape-type-and-status-validate'
 import { describe, test, expect } from 'vitest'
 
 describe("valide le type et le statut d'une étape en fonction du type de titre et du type de démarche", () => {
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 09b2e9145796af3ac097dc82f7dfd69d8d464190..07e1438bc1a1c418e9efffdcb58679acd662e8d9 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
@@ -1,10 +1,10 @@
 // valide le type et le statut de l'étape en fonction des type d'étapes d'une démarche
-import { getEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts.js'
-import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { isTDEExist } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/index.js'
-import { DemarcheTypeId, DemarchesTypes } from 'camino-common/src/static/demarchesTypes.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
+import { getEtapesStatuts } from 'camino-common/src/static/etapesTypesEtapesStatuts'
+import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { isTDEExist } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/index'
+import { DemarcheTypeId, DemarchesTypes } from 'camino-common/src/static/demarchesTypes'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
 
 export const tdeOldTitreEtapeTypeAndStatusValidate = (titreTypeId: TitreTypeId, demarcheTypeId: DemarcheTypeId, etapeTypeId: EtapeTypeId, etapeStatutId: EtapeStatutId | undefined): string[] => {
   if (!etapeStatutId) {
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 597fd402a18d264c2ce37d17dfc2d8adeeef6e35..0799da63c1470378139398af81de0cb2cd52ec4e 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,15 +1,15 @@
-import { ITitreDemarche, ITitre } from '../../types.js'
+import { ITitreDemarche, ITitre } from '../../types'
 
-import { titreEtapeUpdationValidate } from './titre-etape-updation-validate.js'
-import { userSuper } from '../../database/user-super.js'
+import { titreEtapeUpdationValidate } from './titre-etape-updation-validate'
+import { userSuper } from '../../database/user-super'
 import { describe, test, expect } from 'vitest'
-import { FlattenEtape } from 'camino-common/src/etape-form.js'
-import { ETAPE_IS_BROUILLON, ETAPE_IS_NOT_BROUILLON, etapeIdValidator, etapeSlugValidator } from 'camino-common/src/etape.js'
-import { caminoDateValidator, toCaminoDate } from 'camino-common/src/date.js'
-import { demarcheIdValidator } from 'camino-common/src/demarche.js'
-import { entrepriseIdValidator } from 'camino-common/src/entreprise.js'
-import { titreIdValidator } from 'camino-common/src/validators/titres.js'
-import { km2Validator } from 'camino-common/src/number.js'
+import { FlattenEtape } from 'camino-common/src/etape-form'
+import { ETAPE_IS_BROUILLON, ETAPE_IS_NOT_BROUILLON, etapeIdValidator, etapeSlugValidator } from 'camino-common/src/etape'
+import { caminoDateValidator, toCaminoDate } from 'camino-common/src/date'
+import { demarcheIdValidator } from 'camino-common/src/demarche'
+import { entrepriseIdValidator } from 'camino-common/src/entreprise'
+import { titreIdValidator } from 'camino-common/src/validators/titres'
+import { km2Validator } from 'camino-common/src/number'
 const etapeBrouillonValide: Omit<FlattenEtape, 'id'> = {
   titulaires: {
     value: [],
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 45bd061c45161efe8ee816082b6e88e763b67640..1fb4b5eea699e8530d8032ea5771ea79dac7bd03 100644
--- a/packages/api/src/business/validations/titre-etape-updation-validate.ts
+++ b/packages/api/src/business/validations/titre-etape-updation-validate.ts
@@ -1,18 +1,18 @@
-import { ITitreEtape, ITitreDemarche, ITitre } from '../../types.js'
-
-import { titreDemarcheUpdatedEtatValidate } from './titre-demarche-etat-validate.js'
-import { contenuNumbersCheck } from './utils/contenu-numbers-check.js'
-import { contenuDatesCheck } from './utils/contenu-dates-check.js'
-import { canEditAmodiataires, canEditDates, canEditDuree, canEditTitulaires, isEtapeComplete } from 'camino-common/src/permissions/titres-etapes.js'
-import { User } from 'camino-common/src/roles.js'
-import { SDOMZoneId } from 'camino-common/src/static/sdom.js'
-import { getSections } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { EntrepriseDocument, EntrepriseId } from 'camino-common/src/entreprise.js'
-import { ETAPE_IS_NOT_BROUILLON, EtapeAvis, EtapeDocument, GetEtapeDocumentsByEtapeIdAslDocument, GetEtapeDocumentsByEtapeIdDaeDocument } from 'camino-common/src/etape.js'
-import { CommuneId } from 'camino-common/src/static/communes.js'
-import { DeepReadonly, isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { FlattenEtape } from 'camino-common/src/etape-form.js'
-import { flattenContenuToSimpleContenu } from 'camino-common/src/sections.js'
+import { ITitreEtape, ITitreDemarche, ITitre } from '../../types'
+
+import { titreDemarcheUpdatedEtatValidate } from './titre-demarche-etat-validate'
+import { contenuNumbersCheck } from './utils/contenu-numbers-check'
+import { contenuDatesCheck } from './utils/contenu-dates-check'
+import { canEditAmodiataires, canEditDates, canEditDuree, canEditTitulaires, isEtapeComplete } from 'camino-common/src/permissions/titres-etapes'
+import { User } from 'camino-common/src/roles'
+import { SDOMZoneId } from 'camino-common/src/static/sdom'
+import { getSections } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { EntrepriseDocument, EntrepriseId } from 'camino-common/src/entreprise'
+import { ETAPE_IS_NOT_BROUILLON, EtapeAvis, EtapeDocument, GetEtapeDocumentsByEtapeIdAslDocument, GetEtapeDocumentsByEtapeIdDaeDocument } from 'camino-common/src/etape'
+import { CommuneId } from 'camino-common/src/static/communes'
+import { DeepReadonly, isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { FlattenEtape } from 'camino-common/src/etape-form'
+import { flattenContenuToSimpleContenu } from 'camino-common/src/sections'
 
 export const titreEtapeUpdationValidate = (
   etape: Pick<Partial<FlattenEtape>, 'id'> & Omit<FlattenEtape, 'id'>,
diff --git a/packages/api/src/business/validations/titre-links-validate.ts b/packages/api/src/business/validations/titre-links-validate.ts
index 70a19156ea86eed17b94dbb8616cdf5275faba62..003828ab20c4c59d50da2305e117c6ee1f233d23 100644
--- a/packages/api/src/business/validations/titre-links-validate.ts
+++ b/packages/api/src/business/validations/titre-links-validate.ts
@@ -1,7 +1,7 @@
-import { TitreId } from 'camino-common/src/validators/titres.js'
-import { ITitre, ITitreDemarche } from '../../types.js'
-import { getLinkConfig } from 'camino-common/src/permissions/titres.js'
-import { isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
+import { TitreId } from 'camino-common/src/validators/titres'
+import { ITitre, ITitreDemarche } from '../../types'
+import { getLinkConfig } from 'camino-common/src/permissions/titres'
+import { isNullOrUndefined } from 'camino-common/src/typescript-tools'
 
 export const checkTitreLinks = (titre: Pick<ITitre, 'typeId'>, titreFromIds: TitreId[], titresFrom: ITitre[], demarches: ITitreDemarche[]) => {
   const linkConfig = getLinkConfig(
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 4ed0028458893de4c19da81b8d49b160690f02fc..7e8070ea214b5f886b54b4ed3691a014e48940fe 100644
--- a/packages/api/src/business/validations/utilisateur-updation-validate.test.ts
+++ b/packages/api/src/business/validations/utilisateur-updation-validate.test.ts
@@ -4,7 +4,7 @@ import { AdministrationId } from 'camino-common/src/static/administrations'
 import { testBlankUser } from 'camino-common/src/tests-utils'
 import { test, expect } from 'vitest'
 import { utilisateurUpdationValidate } from './utilisateur-updation-validate'
-import { newUtilisateurId } from '../../database/models/_format/id-create.js'
+import { newUtilisateurId } from '../../database/models/_format/id-create'
 
 const users: Record<Role, UserNotNull> = {
   super: { ...testBlankUser, role: 'super' },
diff --git a/packages/api/src/business/validations/utilisateur-updation-validate.ts b/packages/api/src/business/validations/utilisateur-updation-validate.ts
index 6f1928110ff7d38f5fb95427dcbebd3b23f82fa8..f91d91ff278089044178875809e91250635636e5 100644
--- a/packages/api/src/business/validations/utilisateur-updation-validate.ts
+++ b/packages/api/src/business/validations/utilisateur-updation-validate.ts
@@ -10,11 +10,11 @@ import {
   isDefautRole,
   isSuperRole,
   isRole,
-} from 'camino-common/src/roles.js'
-import { canEditPermission, getAssignableRoles } from 'camino-common/src/permissions/utilisateurs.js'
-import { equalStringArrays } from '../../tools/index.js'
-import { isAdministrationId } from 'camino-common/src/static/administrations.js'
-import { UtilisateurToEdit } from 'camino-common/src/utilisateur.js'
+} from 'camino-common/src/roles'
+import { canEditPermission, getAssignableRoles } from 'camino-common/src/permissions/utilisateurs'
+import { equalStringArrays } from '../../tools/index'
+import { isAdministrationId } from 'camino-common/src/static/administrations'
+import { UtilisateurToEdit } from 'camino-common/src/utilisateur'
 
 const userIsCorrect = (utilisateur: UtilisateurToEdit): boolean => {
   if (!isRole(utilisateur.role)) {
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 dd2efe13c80c8b259d2403592bf1ffce1ed0a17a..f325a87e3e888e07a5c34c98c46f08c0e3669336 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,8 +1,8 @@
-import { contenuDatesCheck } from './contenu-dates-check.js'
+import { contenuDatesCheck } from './contenu-dates-check'
 import { describe, test, expect } from 'vitest'
-import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { DeepReadonly } from 'camino-common/src/typescript-tools.js'
-import { CaminoDate } from 'camino-common/src/date.js'
+import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { DeepReadonly } from 'camino-common/src/typescript-tools'
+import { CaminoDate } from 'camino-common/src/date'
 
 const sections: DeepReadonly<Section[]> = [
   {
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 16f2a06113601c4932b9103a07a2f676ff0175fc..64544a1f52cd93f21a59176b1a9edd8b220ec756 100644
--- a/packages/api/src/business/validations/utils/contenu-dates-check.ts
+++ b/packages/api/src/business/validations/utils/contenu-dates-check.ts
@@ -1,7 +1,7 @@
-import { caminoDateValidator } from 'camino-common/src/date.js'
-import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { DeepReadonly, isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
-import { FlattenedContenuElement } from 'camino-common/src/etape-form.js'
+import { caminoDateValidator } from 'camino-common/src/date'
+import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { DeepReadonly, isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
+import { FlattenedContenuElement } from 'camino-common/src/etape-form'
 
 export const contenuDatesCheck = (sections: DeepReadonly<Section[]>, contenu: Record<string, Record<string, Pick<FlattenedContenuElement, 'value'>>>): string | null => {
   const errors = sections.reduce(
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 0542f262a6839a5f5a44b1fa595e2fd37d8da245..f07ff078f53fbfe2ad4f4ca43ec6e8252d2cabe4 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,4 +1,4 @@
-import { contenuNumbersCheck } from './contenu-numbers-check.js'
+import { contenuNumbersCheck } from './contenu-numbers-check'
 import { describe, test, expect } from 'vitest'
 
 describe('vérifie la validité du contenu de type nombre', () => {
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 2029bb4e3ae3797ebc0c21b55ab2ac68db5d64c4..ff8fb737299f1a3bef6e39134f6fe58d9e13cb2f 100644
--- a/packages/api/src/business/validations/utils/contenu-numbers-check.ts
+++ b/packages/api/src/business/validations/utils/contenu-numbers-check.ts
@@ -1,7 +1,7 @@
-import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { DeepReadonly, isNotNullNorUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools.js'
-import { numberElementValueValidator } from 'camino-common/src/sections.js'
-import { FlattenedContenuElement } from 'camino-common/src/etape-form.js'
+import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { DeepReadonly, isNotNullNorUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools'
+import { numberElementValueValidator } from 'camino-common/src/sections'
+import { FlattenedContenuElement } from 'camino-common/src/etape-form'
 
 export const contenuNumbersCheck = (sections: DeepReadonly<Section[]>, contenu: Record<string, Record<string, Pick<FlattenedContenuElement, 'value'>>>) => {
   const errors = sections.reduce((errors: string[], section) => {
diff --git a/packages/api/src/config/files.ts b/packages/api/src/config/files.ts
index 695da2ac45d4b1ca0ebcc4c092a36ffe48804f73..6712d7f85c9f8d2fe5dc1bd6151ae15a8be6e6a7 100644
--- a/packages/api/src/config/files.ts
+++ b/packages/api/src/config/files.ts
@@ -1,5 +1,5 @@
-import { DOWNLOADS_DIRECTORY } from '../api/rest/fichiers.js'
-import { dirCreate } from '../tools/dir-create.js'
+import { DOWNLOADS_DIRECTORY } from '../api/rest/fichiers'
+import { dirCreate } from '../tools/dir-create'
 
 export const filesInit = () => {
   dirCreate('files')
diff --git a/packages/api/src/config/index.ts b/packages/api/src/config/index.ts
index 9992750c2c586dad7e66b3fc916dad638ae44a7e..8227199dcf47948fce1eb5067526648616fffb41 100644
--- a/packages/api/src/config/index.ts
+++ b/packages/api/src/config/index.ts
@@ -1,8 +1,8 @@
 import dotenv from 'dotenv'
 import { resolve } from 'node:path'
-import { caminoAnneeValidator, getCurrentAnnee } from 'camino-common/src/date.js'
-import { caminoConfigValidator } from 'camino-common/src/static/config.js'
-import { isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
+import { caminoAnneeValidator, getCurrentAnnee } from 'camino-common/src/date'
+import { caminoConfigValidator } from 'camino-common/src/static/config'
+import { isNullOrUndefined } from 'camino-common/src/typescript-tools'
 import { z } from 'zod'
 
 if (process.env.VITEST !== 'true') {
diff --git a/packages/api/src/config/logger.test.ts b/packages/api/src/config/logger.test.ts
index 1eb3df38ba8e71d477a4c6a7535f29bb6a8ff671..5a8535676eb15d3797dd64bdb18afc21d60a2b5d 100644
--- a/packages/api/src/config/logger.test.ts
+++ b/packages/api/src/config/logger.test.ts
@@ -1,4 +1,4 @@
-import { newDateFormated } from './logger.js'
+import { newDateFormated } from './logger'
 import { test, expect } from 'vitest'
 test('newDateFormated', () => {
   expect(newDateFormated(new Date('2020-06-02T13:35:11.366Z'))).toMatchInlineSnapshot(`"2020-06-02 13:35:11"`)
diff --git a/packages/api/src/database/init.ts b/packages/api/src/database/init.ts
index a29a8080cf357a0863e0f1b4a6a1f56a5be9fc97..bfcc5681fe4ad71cc04d76e0c73e41fd18c52f85 100644
--- a/packages/api/src/database/init.ts
+++ b/packages/api/src/database/init.ts
@@ -1,8 +1,8 @@
-import { knex } from '../knex.js'
-import { daily } from '../business/daily.js'
+import { knex } from '../knex'
+import { daily } from '../business/daily'
 import type { Pool } from 'pg'
-import { config } from '../config/index.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
+import { config } from '../config/index'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
 
 export const databaseInit = async (pool: Pool) => {
   await knex.migrate.latest()
diff --git a/packages/api/src/database/largeobjects.ts b/packages/api/src/database/largeobjects.ts
index 9c5bd300627c4cce6377e132a5c08acc1e105b9a..cc69fe0c5af9b474a2bcf1e10c44c00bff79a56e 100644
--- a/packages/api/src/database/largeobjects.ts
+++ b/packages/api/src/database/largeobjects.ts
@@ -1,4 +1,4 @@
-import { TempDocumentName } from 'camino-common/src/document.js'
+import { TempDocumentName } from 'camino-common/src/document'
 import { createReadStream } from 'fs'
 import { join } from 'path'
 import { Pool } from 'pg'
diff --git a/packages/api/src/database/models/_format/id-create.test.ts b/packages/api/src/database/models/_format/id-create.test.ts
index 0f03ba257ef92aca9c8076cbd4c992c29066cbde..4cbc6b1599a28052cf1896f79adf3b5f7198c729 100644
--- a/packages/api/src/database/models/_format/id-create.test.ts
+++ b/packages/api/src/database/models/_format/id-create.test.ts
@@ -1,6 +1,6 @@
 import { test, expect } from 'vitest'
-import { idGenerate, newEtapeDocumentId } from './id-create.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { idGenerate, newEtapeDocumentId } from './id-create'
+import { toCaminoDate } from 'camino-common/src/date'
 
 test('idGenerate', () => {
   expect(idGenerate()).toHaveLength(24)
diff --git a/packages/api/src/database/models/_format/id-create.ts b/packages/api/src/database/models/_format/id-create.ts
index 2066144debf7c4700dfb94bf7584de84fadeaa22..1c0d587be826d39fe6a7331b05099d8d0c2b077b 100644
--- a/packages/api/src/database/models/_format/id-create.ts
+++ b/packages/api/src/database/models/_format/id-create.ts
@@ -1,12 +1,12 @@
-import { DemarcheId } from 'camino-common/src/demarche.js'
-import { CaminoDate } from 'camino-common/src/date.js'
-import { EntrepriseDocumentId, entrepriseDocumentIdValidator } from 'camino-common/src/entreprise.js'
-import { ActiviteDocumentTypeId, AutreDocumentTypeId, DocumentTypeId } from 'camino-common/src/static/documentsTypes.js'
+import { DemarcheId } from 'camino-common/src/demarche'
+import { CaminoDate } from 'camino-common/src/date'
+import { EntrepriseDocumentId, entrepriseDocumentIdValidator } from 'camino-common/src/entreprise'
+import { ActiviteDocumentTypeId, AutreDocumentTypeId, DocumentTypeId } from 'camino-common/src/static/documentsTypes'
 import { randomBytes } from 'node:crypto'
-import { TitreId } from 'camino-common/src/validators/titres.js'
-import { EtapeAvisId, EtapeDocumentId, EtapeId, etapeAvisIdValidator, etapeDocumentIdValidator } from 'camino-common/src/etape.js'
-import { UtilisateurId } from 'camino-common/src/roles.js'
-import { ActiviteDocumentId, activiteDocumentIdValidator } from 'camino-common/src/activite.js'
+import { TitreId } from 'camino-common/src/validators/titres'
+import { EtapeAvisId, EtapeDocumentId, EtapeId, etapeAvisIdValidator, etapeDocumentIdValidator } from 'camino-common/src/etape'
+import { UtilisateurId } from 'camino-common/src/roles'
+import { ActiviteDocumentId, activiteDocumentIdValidator } from 'camino-common/src/activite'
 import { AvisTypeId } from 'camino-common/src/static/avisTypes'
 
 export const idGenerate = <T extends string = string>(length = 24): T => randomBytes(length / 2).toString('hex') as T
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 393bd1c871ec266ff6b6a6d2e3ac0864bbe5c95d..76f974f1ef01699046968be29cae5a717f6c55a9 100644
--- a/packages/api/src/database/models/_format/titre-etape-heritage.ts
+++ b/packages/api/src/database/models/_format/titre-etape-heritage.ts
@@ -1,9 +1,9 @@
-import { IHeritageProps, IHeritageContenu } from '../../../types.js'
-import { userSuper } from '../../user-super.js'
-import { titreEtapeGet } from '../../queries/titres-etapes.js'
-import { newEtapeId } from './id-create.js'
-import { isHeritageProps } from 'camino-common/src/heritage.js'
-import { getKeys } from 'camino-common/src/typescript-tools.js'
+import { IHeritageProps, IHeritageContenu } from '../../../types'
+import { userSuper } from '../../user-super'
+import { titreEtapeGet } from '../../queries/titres-etapes'
+import { newEtapeId } from './id-create'
+import { isHeritageProps } from 'camino-common/src/heritage'
+import { getKeys } from 'camino-common/src/typescript-tools'
 import { FieldsEtape } from '../../queries/_options'
 
 export const heritagePropsFormat = async (heritageProps: IHeritageProps) => {
diff --git a/packages/api/src/database/models/communes.ts b/packages/api/src/database/models/communes.ts
index cb361b9f4ac4deaafa1386ada0100875caa44741..74ea054ea07f6f3be9df87706e14c18616e2255d 100644
--- a/packages/api/src/database/models/communes.ts
+++ b/packages/api/src/database/models/communes.ts
@@ -1,6 +1,6 @@
 import { Model } from 'objection'
 
-import { ICommune } from '../../types.js'
+import { ICommune } from '../../types'
 
 interface Communes extends ICommune {}
 
diff --git a/packages/api/src/database/models/entreprises-etablissements.ts b/packages/api/src/database/models/entreprises-etablissements.ts
index 41c62f81a8596d6bfa747f1836fff63bdad83a9a..438a79b675d95707c39e83da18e94599f3f627d5 100644
--- a/packages/api/src/database/models/entreprises-etablissements.ts
+++ b/packages/api/src/database/models/entreprises-etablissements.ts
@@ -1,6 +1,6 @@
 import { Model, Modifiers } from 'objection'
 
-import { IEntrepriseEtablissement } from '../../types.js'
+import { IEntrepriseEtablissement } from '../../types'
 
 interface EntreprisesEtablissements extends IEntrepriseEtablissement {}
 
diff --git a/packages/api/src/database/models/entreprises.ts b/packages/api/src/database/models/entreprises.ts
index aa90ac6c6e16dc4b914cac042d9cf163b57c2237..2d41c46d1dd21dcad9897161055c0fc7122ed42a 100644
--- a/packages/api/src/database/models/entreprises.ts
+++ b/packages/api/src/database/models/entreprises.ts
@@ -1,9 +1,9 @@
 import { Model, Pojo } from 'objection'
 
-import { IEntreprise } from '../../types.js'
-import EntreprisesEtablissements from './entreprises-etablissements.js'
-import Utilisateurs from './utilisateurs.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
+import { IEntreprise } from '../../types'
+import EntreprisesEtablissements from './entreprises-etablissements'
+import Utilisateurs from './utilisateurs'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
 
 interface Entreprises extends IEntreprise {}
 
diff --git a/packages/api/src/database/models/journaux.ts b/packages/api/src/database/models/journaux.ts
index 359d8d869dd171dca2563caac95e9f6c206f5d0f..65025434ddc2c0168e7d758c28b52049ab2e8bc4 100644
--- a/packages/api/src/database/models/journaux.ts
+++ b/packages/api/src/database/models/journaux.ts
@@ -1,9 +1,9 @@
 import { Model } from 'objection'
 
-import { IJournaux } from '../../types.js'
-import { idGenerate } from './_format/id-create.js'
-import Utilisateurs from './utilisateurs.js'
-import Titres from './titres.js'
+import { IJournaux } from '../../types'
+import { idGenerate } from './_format/id-create'
+import Utilisateurs from './utilisateurs'
+import Titres from './titres'
 
 interface Journaux extends IJournaux {}
 
diff --git a/packages/api/src/database/models/titres--titres.ts b/packages/api/src/database/models/titres--titres.ts
index a753402ac53fb0e56c595ad0914501df7ff276eb..bd402a51c59899f9692f7b1f12bccc24848b85f8 100644
--- a/packages/api/src/database/models/titres--titres.ts
+++ b/packages/api/src/database/models/titres--titres.ts
@@ -1,5 +1,5 @@
 import { Model } from 'objection'
-import { ITitreTitre } from '../../types.js'
+import { ITitreTitre } from '../../types'
 
 interface TitreTitre extends ITitreTitre {}
 
diff --git a/packages/api/src/database/models/titres-activites.ts b/packages/api/src/database/models/titres-activites.ts
index eeb5cc83864e20967e5e91976aac8b93b8b468a1..996222ff72bc4b97b6398e39d67eb96f6c8baef2 100644
--- a/packages/api/src/database/models/titres-activites.ts
+++ b/packages/api/src/database/models/titres-activites.ts
@@ -1,10 +1,10 @@
 import { Model, Modifiers, Pojo, QueryContext } from 'objection'
 
-import { ITitreActivite } from '../../types.js'
-import { idGenerate } from './_format/id-create.js'
-import Titres from './titres.js'
-import Utilisateurs from './utilisateurs.js'
-import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
+import { ITitreActivite } from '../../types'
+import { idGenerate } from './_format/id-create'
+import Titres from './titres'
+import Utilisateurs from './utilisateurs'
+import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
 
 interface TitresActivites extends ITitreActivite {}
 
diff --git a/packages/api/src/database/models/titres-demarches.ts b/packages/api/src/database/models/titres-demarches.ts
index 8cc45296da656b7d590b5bac5ab8dfffb9afee21..eea24c47f8cff7f654b2169328b435536ad88be5 100644
--- a/packages/api/src/database/models/titres-demarches.ts
+++ b/packages/api/src/database/models/titres-demarches.ts
@@ -1,11 +1,11 @@
 import { Model, Modifiers, QueryContext } from 'objection'
 
-import { ITitreDemarche } from '../../types.js'
-import { newDemarcheId } from './_format/id-create.js'
-import Titres from './titres.js'
-import TitresEtapes from './titres-etapes.js'
-import { demarcheSlugValidator } from 'camino-common/src/demarche.js'
-import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
+import { ITitreDemarche } from '../../types'
+import { newDemarcheId } from './_format/id-create'
+import Titres from './titres'
+import TitresEtapes from './titres-etapes'
+import { demarcheSlugValidator } from 'camino-common/src/demarche'
+import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
 
 export interface DBTitresDemarches extends ITitreDemarche {
   archive: boolean
diff --git a/packages/api/src/database/models/titres-etapes.ts b/packages/api/src/database/models/titres-etapes.ts
index 799efe317647b50b0f7cdc80bc5e35572e27a26a..767ad481b69e013879d404560ad6a2a51d582965 100644
--- a/packages/api/src/database/models/titres-etapes.ts
+++ b/packages/api/src/database/models/titres-etapes.ts
@@ -2,14 +2,14 @@
 
 import { Model, ModelOptions, Pojo, QueryContext } from 'objection'
 
-import { ITitreEtape } from '../../types.js'
-
-import { heritagePropsFormat, heritageContenuFormat } from './_format/titre-etape-heritage.js'
-import { idGenerate } from './_format/id-create.js'
-import TitresDemarches from './titres-demarches.js'
-import Journaux from './journaux.js'
-import { etapeSlugValidator } from 'camino-common/src/etape.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
+import { ITitreEtape } from '../../types'
+
+import { heritagePropsFormat, heritageContenuFormat } from './_format/titre-etape-heritage'
+import { idGenerate } from './_format/id-create'
+import TitresDemarches from './titres-demarches'
+import Journaux from './journaux'
+import { etapeSlugValidator } from 'camino-common/src/etape'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
 
 export interface DBTitresEtapes extends ITitreEtape {
   archive: boolean
diff --git a/packages/api/src/database/models/titres.ts b/packages/api/src/database/models/titres.ts
index d3c2f8dad164264e8ee0223893795b327efdc857..11dc922ba2a1211bc429f035a5e839a9d8ef80d4 100644
--- a/packages/api/src/database/models/titres.ts
+++ b/packages/api/src/database/models/titres.ts
@@ -1,14 +1,14 @@
 import { Model, Pojo, QueryContext, ref } from 'objection'
 
-import { ITitre } from '../../types.js'
-import TitresDemarches from './titres-demarches.js'
-import TitresEtapes from './titres-etapes.js'
-import { idGenerate } from './_format/id-create.js'
-import { slugify } from 'camino-common/src/strings.js'
-import TitresActivites from './titres-activites.js'
-import { getDomaineId, getTitreTypeType } from 'camino-common/src/static/titresTypes.js'
-import { titreSlugValidator } from 'camino-common/src/validators/titres.js'
-import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
+import { ITitre } from '../../types'
+import TitresDemarches from './titres-demarches'
+import TitresEtapes from './titres-etapes'
+import { idGenerate } from './_format/id-create'
+import { slugify } from 'camino-common/src/strings'
+import TitresActivites from './titres-activites'
+import { getDomaineId, getTitreTypeType } from 'camino-common/src/static/titresTypes'
+import { titreSlugValidator } from 'camino-common/src/validators/titres'
+import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
 
 export interface DBTitre extends ITitre {
   archive: boolean
diff --git a/packages/api/src/database/models/utilisateurs--titres.ts b/packages/api/src/database/models/utilisateurs--titres.ts
index 2b9f1c2d8e9996e30f7b4d87e64f31ec23de67b2..009451366eae194c68d965469c08559facc00604 100644
--- a/packages/api/src/database/models/utilisateurs--titres.ts
+++ b/packages/api/src/database/models/utilisateurs--titres.ts
@@ -1,6 +1,6 @@
 import { Model } from 'objection'
-import { IUtilisateurTitre } from '../../types.js'
-import Utilisateurs from './utilisateurs.js'
+import { IUtilisateurTitre } from '../../types'
+import Utilisateurs from './utilisateurs'
 
 interface UtilisateursTitres extends IUtilisateurTitre {}
 
diff --git a/packages/api/src/database/models/utilisateurs.ts b/packages/api/src/database/models/utilisateurs.ts
index c805cff51369a747c7684c95d1881e52de156271..85eb90b426474448032145dd98d66ffed4affa91 100644
--- a/packages/api/src/database/models/utilisateurs.ts
+++ b/packages/api/src/database/models/utilisateurs.ts
@@ -1,7 +1,7 @@
 import { Model, Pojo } from 'objection'
 
-import { IUtilisateur } from '../../types.js'
-import Entreprises from './entreprises.js'
+import { IUtilisateur } from '../../types'
+import Entreprises from './entreprises'
 
 interface Utilisateurs extends IUtilisateur {}
 
diff --git a/packages/api/src/database/queries/_titres-filters.ts b/packages/api/src/database/queries/_titres-filters.ts
index 4f4faef08a430dd91ff3a1d2c9a41d59899a6d98..214b571c108351a47bdbf80009cdfed51a51f76b 100644
--- a/packages/api/src/database/queries/_titres-filters.ts
+++ b/packages/api/src/database/queries/_titres-filters.ts
@@ -1,14 +1,14 @@
 import { QueryBuilder } from 'objection'
 
-import { stringSplit } from './_utils.js'
+import { stringSplit } from './_utils'
 
-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, isDepartementId } from 'camino-common/src/static/departement.js'
-import { RegionId } from 'camino-common/src/static/region.js'
-import { FacadesMaritimes, getSecteurs } from 'camino-common/src/static/facades.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, onlyUnique } from 'camino-common/src/typescript-tools.js'
+import Titres from '../models/titres'
+import TitresDemarches from '../models/titres-demarches'
+import TitresActivites from '../models/titres-activites'
+import { DepartementId, departements as departementsStatic, isDepartementId } from 'camino-common/src/static/departement'
+import { RegionId } from 'camino-common/src/static/region'
+import { FacadesMaritimes, getSecteurs } from 'camino-common/src/static/facades'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, onlyUnique } from 'camino-common/src/typescript-tools'
 
 type ITitreTableName = 'titres' | 'titre'
 type ITitreRootName = 'titres' | 'titresDemarches' | 'titresActivites'
@@ -144,8 +144,8 @@ export const titresFiltersQueryModify = (
 
     q.joinRaw(`join titres_etapes as communes_points_etapes on communes_points_etapes.id = ${name}."props_titre_etapes_ids" #>> '{points}'`)
     q.whereRaw(
-      `exists (select 1 
-        from jsonb_array_elements(communes_points_etapes.communes) communes_filter_communes 
+      `exists (select 1
+        from jsonb_array_elements(communes_points_etapes.communes) communes_filter_communes
         join communes as communes_filter_communes_communes on communes_filter_communes->>'id' = communes_filter_communes_communes.id
       where ${communesArray.map(() => 'lower(communes_filter_communes_communes.nom) like ? OR communes_filter_communes_communes.id = ?').join(' or ')})`,
       [...communesArray.flatMap(t => [`%${t.toLowerCase()}%`, t])]
diff --git a/packages/api/src/database/queries/_utils.test.ts b/packages/api/src/database/queries/_utils.test.ts
index 62ec4b170addaa9eba76856214e6c05d91f78d46..9aef9a0a02dd209a0a53c3f42a1d4851c98a3acc 100644
--- a/packages/api/src/database/queries/_utils.test.ts
+++ b/packages/api/src/database/queries/_utils.test.ts
@@ -1,4 +1,4 @@
-import { stringSplit } from './_utils.js'
+import { stringSplit } from './_utils'
 import { describe, test, expect } from 'vitest'
 describe('sépare les groupes de mots', () => {
   test.each([
diff --git a/packages/api/src/database/queries/communes.queries.ts b/packages/api/src/database/queries/communes.queries.ts
index f39ca7b620ffd6ad05bd7f86c6fd8d788caeec43..98aca85413c76e7f4169194924f25aa899eba10d 100644
--- a/packages/api/src/database/queries/communes.queries.ts
+++ b/packages/api/src/database/queries/communes.queries.ts
@@ -1,9 +1,9 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { Redefine, dbQueryAndValidate } from '../../pg-database.js'
-import { IGetCommunesInternalQuery, IInsertCommuneInternalQuery } from './communes.queries.types.js'
-import { CommuneId, Commune, communeValidator } from 'camino-common/src/static/communes.js'
-import { NonEmptyArray } from 'camino-common/src/typescript-tools.js'
+import { Redefine, dbQueryAndValidate } from '../../pg-database'
+import { IGetCommunesInternalQuery, IInsertCommuneInternalQuery } from './communes.queries.types'
+import { CommuneId, Commune, communeValidator } from 'camino-common/src/static/communes'
+import { NonEmptyArray } from 'camino-common/src/typescript-tools'
 import { Pool } from 'pg'
 import { z } from 'zod'
 
diff --git a/packages/api/src/database/queries/communes.ts b/packages/api/src/database/queries/communes.ts
index 5624e9a86dc30d1b84ba0ca95df56eac4d864401..26febeed171e038ed1b837d9177bad0f017589df 100644
--- a/packages/api/src/database/queries/communes.ts
+++ b/packages/api/src/database/queries/communes.ts
@@ -1,7 +1,7 @@
-import { CommuneId } from 'camino-common/src/static/communes.js'
+import { CommuneId } from 'camino-common/src/static/communes'
 import { Pool } from 'pg'
-import { getCommunes } from './communes.queries.js'
-import { isNonEmptyArray } from 'camino-common/src/typescript-tools.js'
+import { getCommunes } from './communes.queries'
+import { isNonEmptyArray } from 'camino-common/src/typescript-tools'
 
 export const getCommunesIndex = async (pool: Pool, ids: CommuneId[]): Promise<Record<CommuneId, string>> => {
   const communes = isNonEmptyArray(ids) ? await getCommunes(pool, { ids }) : []
diff --git a/packages/api/src/database/queries/entreprises-etablissements.ts b/packages/api/src/database/queries/entreprises-etablissements.ts
index f07b1a2c01b91d3ba400fb04604262895044ce5d..ee66834a46e32393e0c65d45cec455c1788160b8 100644
--- a/packages/api/src/database/queries/entreprises-etablissements.ts
+++ b/packages/api/src/database/queries/entreprises-etablissements.ts
@@ -1,8 +1,8 @@
-import { IEntrepriseEtablissement } from '../../types.js'
+import { IEntrepriseEtablissement } from '../../types'
 
-import options from './_options.js'
+import options from './_options'
 
-import EntrepriseEtablissements from '../models/entreprises-etablissements.js'
+import EntrepriseEtablissements from '../models/entreprises-etablissements'
 
 export const entreprisesEtablissementsGet = async () => EntrepriseEtablissements.query()
 
diff --git a/packages/api/src/database/queries/entreprises.ts b/packages/api/src/database/queries/entreprises.ts
index 640f7171476985460aa9ce95467214ef3f698332..437410e2a547c4e356c5d3649c4f9f6a42d30e3b 100644
--- a/packages/api/src/database/queries/entreprises.ts
+++ b/packages/api/src/database/queries/entreprises.ts
@@ -1,17 +1,17 @@
 import { raw, QueryBuilder } from 'objection'
 
-import { IEntreprise, IEntrepriseColonneId } from '../../types.js'
-
-import options, { FieldsEntreprise } from './_options.js'
-import graphBuild from './graph/build.js'
-import { fieldsFormat } from './graph/fields-format.js'
-import { stringSplit } from './_utils.js'
-
-import Entreprises from '../models/entreprises.js'
-import { entreprisesQueryModify } from './permissions/entreprises.js'
-import { User } from 'camino-common/src/roles.js'
-import { EntrepriseId } from 'camino-common/src/entreprise.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
+import { IEntreprise, IEntrepriseColonneId } from '../../types'
+
+import options, { FieldsEntreprise } from './_options'
+import graphBuild from './graph/build'
+import { fieldsFormat } from './graph/fields-format'
+import { stringSplit } from './_utils'
+
+import Entreprises from '../models/entreprises'
+import { entreprisesQueryModify } from './permissions/entreprises'
+import { User } from 'camino-common/src/roles'
+import { EntrepriseId } from 'camino-common/src/entreprise'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
 
 const entreprisesFiltersQueryModify = (
   {
diff --git a/packages/api/src/database/queries/graph/build.ts b/packages/api/src/database/queries/graph/build.ts
index b74577c95810ba8ccf258db1911879a08ea6b5aa..1b0b12e943f4e0a4696f8f6588dfa2864b60c83d 100644
--- a/packages/api/src/database/queries/graph/build.ts
+++ b/packages/api/src/database/queries/graph/build.ts
@@ -1,6 +1,6 @@
-import { IFields } from '../../../types.js'
+import { IFields } from '../../../types'
 
-import { objectClone } from '../../../tools/index.js'
+import { objectClone } from '../../../tools/index'
 
 interface IFieldsFormat {
   (fields: IFields, parent: string): IFields
diff --git a/packages/api/src/database/queries/journaux.ts b/packages/api/src/database/queries/journaux.ts
index 72c405dcf315e15fb9a5507d022d4276ab072ef5..1a741cdd5a9f51ee6b2dc29e2b3f91d674b276a2 100644
--- a/packages/api/src/database/queries/journaux.ts
+++ b/packages/api/src/database/queries/journaux.ts
@@ -1,17 +1,17 @@
-import Journaux from '../models/journaux.js'
+import Journaux from '../models/journaux'
 import { create } from 'jsondiffpatch'
 import { Model, PartialModelGraph, RelationExpression, UpsertGraphOptions } from 'objection'
-import { journauxQueryModify } from './permissions/journaux.js'
-import { ITitreEtape } from '../../types.js'
-import graphBuild from './graph/build.js'
-import { fieldsFormat } from './graph/fields-format.js'
-import options, { FieldId } from './_options.js'
+import { journauxQueryModify } from './permissions/journaux'
+import { ITitreEtape } from '../../types'
+import graphBuild from './graph/build'
+import { fieldsFormat } from './graph/fields-format'
+import options, { FieldId } from './_options'
 import { User } from 'camino-common/src/roles'
-import { TitreId } from 'camino-common/src/validators/titres.js'
-import { JournauxQueryParams } from 'camino-common/src/journaux.js'
-import TitresEtapes from '../models/titres-etapes.js'
-import { EtapeId } from 'camino-common/src/etape.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools.js'
+import { TitreId } from 'camino-common/src/validators/titres'
+import { JournauxQueryParams } from 'camino-common/src/journaux'
+import TitresEtapes from '../models/titres-etapes'
+import { EtapeId } from 'camino-common/src/etape'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools'
 
 const diffPatcher = create({
   // on filtre certaines proprietés qu’on ne souhaite pas voir apparaitre dans les journaux
diff --git a/packages/api/src/database/queries/metas.ts b/packages/api/src/database/queries/metas.ts
index 742db24e4f1c3b1c056a1337037873cb0d83d1f5..0014861c13d5d23a3b862e7c4fedef169a258cb3 100644
--- a/packages/api/src/database/queries/metas.ts
+++ b/packages/api/src/database/queries/metas.ts
@@ -1,6 +1,6 @@
-import { sortedDevises } from 'camino-common/src/static/devise.js'
-import { sortedDemarchesStatuts } from 'camino-common/src/static/demarchesStatuts.js'
-import { toDocuments } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.js'
+import { sortedDevises } from 'camino-common/src/static/devise'
+import { sortedDemarchesStatuts } from 'camino-common/src/static/demarchesStatuts'
+import { toDocuments } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/documents'
 
 export const etapesTypesDocumentsTypesGet = () => toDocuments()
 
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 fbfc29a0a0b24dbd39b9f248313c016bc7f025d4..fcd0f374935e7458d2d48188354019840e24fd05 100644
--- a/packages/api/src/database/queries/permissions/administrations.test.integration.ts
+++ b/packages/api/src/database/queries/permissions/administrations.test.integration.ts
@@ -1,9 +1,9 @@
-import { dbManager } from '../../../../tests/db-manager.js'
-import { ITitre } from '../../../types.js'
+import { dbManager } from '../../../../tests/db-manager'
+import { ITitre } from '../../../types'
 
-import Titres from '../../models/titres.js'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { administrationsTitresQuery } from './administrations.js'
+import Titres from '../../models/titres'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { administrationsTitresQuery } from './administrations'
 import { expect, test, describe, afterAll, beforeAll, vi } from 'vitest'
 
 console.info = vi.fn()
diff --git a/packages/api/src/database/queries/permissions/administrations.ts b/packages/api/src/database/queries/permissions/administrations.ts
index ec9e49e1d97e3428b0850c7699541bc61e0bce9d..39a642323d692ffcacaec6ce063c58d866362f29 100644
--- a/packages/api/src/database/queries/permissions/administrations.ts
+++ b/packages/api/src/database/queries/permissions/administrations.ts
@@ -1,7 +1,7 @@
 import { QueryBuilder, Model } from 'objection'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { getTitreTypeIdsByAdministration } from 'camino-common/src/static/administrationsTitresTypes.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { getTitreTypeIdsByAdministration } from 'camino-common/src/static/administrationsTitresTypes'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
 
 export const administrationsTitresQuery = <M extends Model>(
   q: QueryBuilder<M, M | M[]>,
diff --git a/packages/api/src/database/queries/permissions/entreprises.ts b/packages/api/src/database/queries/permissions/entreprises.ts
index 3df74377bc973cb41d7842791048f6f274a4d6a2..1a643e36b3f61732b14ff2156c3247b49a03957c 100644
--- a/packages/api/src/database/queries/permissions/entreprises.ts
+++ b/packages/api/src/database/queries/permissions/entreprises.ts
@@ -1,13 +1,13 @@
 import { QueryBuilder } from 'objection'
 
-import { knex } from '../../../knex.js'
+import { knex } from '../../../knex'
 
-import Entreprises from '../../models/entreprises.js'
-import Utilisateurs from '../../models/utilisateurs.js'
+import Entreprises from '../../models/entreprises'
+import Utilisateurs from '../../models/utilisateurs'
 
-import { utilisateursQueryModify } from './utilisateurs.js'
-import { User } from 'camino-common/src/roles.js'
-import TitresEtapes from '../../models/titres-etapes.js'
+import { utilisateursQueryModify } from './utilisateurs'
+import { User } from 'camino-common/src/roles'
+import TitresEtapes from '../../models/titres-etapes'
 
 export const entreprisesQueryModify = (q: QueryBuilder<Entreprises, Entreprises | Entreprises[]>, user: User) => {
   q.select('entreprises.*')
diff --git a/packages/api/src/database/queries/permissions/journaux.ts b/packages/api/src/database/queries/permissions/journaux.ts
index 152f4d634ec7b6fcd89c1abcb71ce60291b2dae9..eac6bd83ce12fa3fd755c9ed433c06fc4643a63f 100644
--- a/packages/api/src/database/queries/permissions/journaux.ts
+++ b/packages/api/src/database/queries/permissions/journaux.ts
@@ -1,11 +1,11 @@
 import { QueryBuilder } from 'objection'
 
-import Journaux from '../../models/journaux.js'
-import { utilisateursQueryModify } from './utilisateurs.js'
-import Utilisateurs from '../../models/utilisateurs.js'
-import { titresQueryModify } from './titres.js'
-import Titres from '../../models/titres.js'
-import { isSuper, User } from 'camino-common/src/roles.js'
+import Journaux from '../../models/journaux'
+import { utilisateursQueryModify } from './utilisateurs'
+import Utilisateurs from '../../models/utilisateurs'
+import { titresQueryModify } from './titres'
+import Titres from '../../models/titres'
+import { isSuper, User } from 'camino-common/src/roles'
 
 export const journauxQueryModify = (q: QueryBuilder<Journaux, Journaux | Journaux[]>, user: User) => {
   q.select('journaux.*')
diff --git a/packages/api/src/database/queries/permissions/titres-activites.ts b/packages/api/src/database/queries/permissions/titres-activites.ts
index af0ae350a06b1f42519630209e6eceee749cf510..84d45fe097d666cd34fa3e8148f48bed11e37d3d 100644
--- a/packages/api/src/database/queries/permissions/titres-activites.ts
+++ b/packages/api/src/database/queries/permissions/titres-activites.ts
@@ -1,10 +1,10 @@
 import { QueryBuilder } from 'objection'
 
-import TitresActivites from '../../models/titres-activites.js'
+import TitresActivites from '../../models/titres-activites'
 
-import { administrationsTitresQuery } from './administrations.js'
-import { entreprisesTitresQuery } from './entreprises.js'
-import { isAdministration, isEntreprise, isSuper, User } from 'camino-common/src/roles.js'
+import { administrationsTitresQuery } from './administrations'
+import { entreprisesTitresQuery } from './entreprises'
+import { isAdministration, isEntreprise, isSuper, User } from 'camino-common/src/roles'
 
 export const titresActivitesQueryModify = (q: QueryBuilder<TitresActivites, TitresActivites | TitresActivites[]>, user: User) => {
   q.select('titresActivites.*')
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 563df8211ad8076fadfbdc60f394a02357fda587..40ba9fb93f13ef64391f5a335a05cbe7247caaa2 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
@@ -1,10 +1,10 @@
-import { dbManager } from '../../../../tests/db-manager.js'
+import { dbManager } from '../../../../tests/db-manager'
 
-import Titres from '../../models/titres.js'
-import { newDemarcheId, newTitreId } from '../../models/_format/id-create.js'
-import { userSuper } from '../../user-super.js'
-import TitresDemarches from '../../models/titres-demarches.js'
-import { titresDemarchesQueryModify } from './titres-demarches.js'
+import Titres from '../../models/titres'
+import { newDemarcheId, newTitreId } from '../../models/_format/id-create'
+import { userSuper } from '../../user-super'
+import TitresDemarches from '../../models/titres-demarches'
+import { titresDemarchesQueryModify } from './titres-demarches'
 import { expect, test, describe, afterAll, beforeAll, vi } from 'vitest'
 
 console.info = vi.fn()
diff --git a/packages/api/src/database/queries/permissions/titres-demarches.ts b/packages/api/src/database/queries/permissions/titres-demarches.ts
index 8db95d4cec8cfc452aa49e6e1f83c67bacff4b7b..d46328dd855b8ef3537b4fdfc2f8a34566a63984 100644
--- a/packages/api/src/database/queries/permissions/titres-demarches.ts
+++ b/packages/api/src/database/queries/permissions/titres-demarches.ts
@@ -1,14 +1,14 @@
 import { QueryBuilder } from 'objection'
 
-import Titres from '../../models/titres.js'
-import TitresEtapes from '../../models/titres-etapes.js'
-import TitresDemarches from '../../models/titres-demarches.js'
-
-import { titresEtapesQueryModify } from './titres-etapes.js'
-import { titresQueryModify } from './titres.js'
-import { administrationsTitresQuery } from './administrations.js'
-import { entreprisesTitresQuery } from './entreprises.js'
-import { isSuper, isAdministration, isEntreprise, isBureauDEtudes, User } from 'camino-common/src/roles.js'
+import Titres from '../../models/titres'
+import TitresEtapes from '../../models/titres-etapes'
+import TitresDemarches from '../../models/titres-demarches'
+
+import { titresEtapesQueryModify } from './titres-etapes'
+import { titresQueryModify } from './titres'
+import { administrationsTitresQuery } from './administrations'
+import { entreprisesTitresQuery } from './entreprises'
+import { isSuper, isAdministration, isEntreprise, isBureauDEtudes, User } from 'camino-common/src/roles'
 
 export const titresDemarchesQueryModify = (q: QueryBuilder<TitresDemarches, TitresDemarches | TitresDemarches[]>, user: User) => {
   q.select('titresDemarches.*').where('titresDemarches.archive', false).leftJoinRelated('titre')
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 e2cfd34319b4b977f0bd5e7e4e895f60a88cd585..77cdc10f0f562a489e2362c336e95e50c2fbb064 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
@@ -1,14 +1,14 @@
-import { dbManager } from '../../../../tests/db-manager.js'
+import { dbManager } from '../../../../tests/db-manager'
 
-import Titres from '../../models/titres.js'
-import { newDemarcheId, newEtapeId, newTitreId } from '../../models/_format/id-create.js'
-import { userSuper } from '../../user-super.js'
-import TitresEtapes from '../../models/titres-etapes.js'
-import { titresEtapesQueryModify } from './titres-etapes.js'
-import TitresDemarches from '../../models/titres-demarches.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import Titres from '../../models/titres'
+import { newDemarcheId, newEtapeId, newTitreId } from '../../models/_format/id-create'
+import { userSuper } from '../../user-super'
+import TitresEtapes from '../../models/titres-etapes'
+import { titresEtapesQueryModify } from './titres-etapes'
+import TitresDemarches from '../../models/titres-demarches'
+import { toCaminoDate } from 'camino-common/src/date'
 import { beforeAll, expect, afterAll, test, describe, vi } from 'vitest'
-import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape.js'
+import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape'
 console.info = vi.fn()
 console.error = vi.fn()
 
diff --git a/packages/api/src/database/queries/permissions/titres-etapes.ts b/packages/api/src/database/queries/permissions/titres-etapes.ts
index 7785b4c9ed87d91b163e2cd95c026f5e25cc1302..11c612703229414d76325ee244fec6dcbf06cd91 100644
--- a/packages/api/src/database/queries/permissions/titres-etapes.ts
+++ b/packages/api/src/database/queries/permissions/titres-etapes.ts
@@ -1,17 +1,17 @@
 import { QueryBuilder } from 'objection'
 
-import TitresEtapes from '../../models/titres-etapes.js'
+import TitresEtapes from '../../models/titres-etapes'
 
-import { administrationsTitresQuery } from './administrations.js'
-import { 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, isBureauDEtudes, isEntreprise, isSuper, User } from 'camino-common/src/roles.js'
-import { getAdministrationTitresTypesEtapesTypes } from 'camino-common/src/static/administrationsTitresTypesEtapesTypes.js'
-import { knex } from '../../../knex.js'
-import { EtapeTypeId, etapesTypes } from 'camino-common/src/static/etapesTypes.js'
+import { administrationsTitresQuery } from './administrations'
+import { entreprisesTitresQuery } from './entreprises'
+import { titresDemarchesQueryModify } from './titres-demarches'
+import TitresDemarches from '../../models/titres-demarches'
+import Journaux from '../../models/journaux'
+import { journauxQueryModify } from './journaux'
+import { isAdministration, isBureauDEtudes, isEntreprise, isSuper, User } from 'camino-common/src/roles'
+import { getAdministrationTitresTypesEtapesTypes } from 'camino-common/src/static/administrationsTitresTypesEtapesTypes'
+import { knex } from '../../../knex'
+import { EtapeTypeId, etapesTypes } from 'camino-common/src/static/etapesTypes'
 
 /**
  * Modifie la requête d'étape(s) pour prendre en compte les permissions de l'utilisateur connecté
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 bc176e912a73cef259f448c9718ca3398fe1c189..c01b32bc16bca8bee6321180a7f09d30e88f7f20 100644
--- a/packages/api/src/database/queries/permissions/titres.test.integration.ts
+++ b/packages/api/src/database/queries/permissions/titres.test.integration.ts
@@ -1,19 +1,19 @@
-import { ITitre, ITitreDemarche } from '../../../types.js'
+import { ITitre, ITitreDemarche } from '../../../types'
 
-import { dbManager } from '../../../../tests/db-manager.js'
+import { dbManager } from '../../../../tests/db-manager'
 
-import Titres from '../../models/titres.js'
-import { newDemarcheId, newEtapeId, newTitreId } from '../../models/_format/id-create.js'
-import { titresArmEnDemandeQuery, titresConfidentielSelect, titresQueryModify, titresVisibleByEntrepriseQuery } from './titres.js'
-import { userSuper } from '../../user-super.js'
+import Titres from '../../models/titres'
+import { newDemarcheId, newEtapeId, newTitreId } from '../../models/_format/id-create'
+import { titresArmEnDemandeQuery, titresConfidentielSelect, titresQueryModify, titresVisibleByEntrepriseQuery } from './titres'
+import { userSuper } from '../../user-super'
 import { beforeAll, expect, afterAll, test, describe, vi } from 'vitest'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { TitreStatutId } from 'camino-common/src/static/titresStatuts.js'
-import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
-import { DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts.js'
-import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { TitreStatutId } from 'camino-common/src/static/titresStatuts'
+import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts'
+import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { toCaminoDate } from 'camino-common/src/date'
 import { entrepriseIdValidator } from 'camino-common/src/entreprise'
 
 console.info = vi.fn()
diff --git a/packages/api/src/database/queries/permissions/titres.ts b/packages/api/src/database/queries/permissions/titres.ts
index 493e2d649d6b9773891b09cd294675b64e3387b2..41e46ecbf05572c9f96a0fe4757d0777f7286676 100644
--- a/packages/api/src/database/queries/permissions/titres.ts
+++ b/packages/api/src/database/queries/permissions/titres.ts
@@ -1,16 +1,16 @@
 import { QueryBuilder, raw } from 'objection'
 
-import Titres from '../../models/titres.js'
-import TitresDemarches from '../../models/titres-demarches.js'
-import TitresActivites from '../../models/titres-activites.js'
-
-import { titresActivitesQueryModify } from './titres-activites.js'
-import { titresDemarchesQueryModify } from './titres-demarches.js'
-import { administrationsTitresQuery } from './administrations.js'
-import { entreprisesTitresQuery } from './entreprises.js'
-import TitresEtapes from '../../models/titres-etapes.js'
-import { isAdministration, isBureauDEtudes, isEntreprise, isSuper, User } from 'camino-common/src/roles.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
+import Titres from '../../models/titres'
+import TitresDemarches from '../../models/titres-demarches'
+import TitresActivites from '../../models/titres-activites'
+
+import { titresActivitesQueryModify } from './titres-activites'
+import { titresDemarchesQueryModify } from './titres-demarches'
+import { administrationsTitresQuery } from './administrations'
+import { entreprisesTitresQuery } from './entreprises'
+import TitresEtapes from '../../models/titres-etapes'
+import { isAdministration, isBureauDEtudes, isEntreprise, isSuper, User } from 'camino-common/src/roles'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
 
 export const titresVisibleByEntrepriseQuery = (q: QueryBuilder<Titres, Titres | Titres[]>, entreprisesIds: string[]) => {
   // titres dont il est titulaire ou amodiataire
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 061735d6dc8315a702c760737ea2e717d5cd5bf3..5f4b3bca1a6451da4a1fda7477a310c38ae36fee 100644
--- a/packages/api/src/database/queries/permissions/utilisateurs.test.integration.ts
+++ b/packages/api/src/database/queries/permissions/utilisateurs.test.integration.ts
@@ -1,13 +1,13 @@
-import { IUtilisateur } from '../../../types.js'
+import { IUtilisateur } from '../../../types'
 
-import { dbManager } from '../../../../tests/db-manager.js'
-import Utilisateurs from '../../models/utilisateurs.js'
-import { utilisateursGet } from '../utilisateurs.js'
-import { Administrations } from 'camino-common/src/static/administrations.js'
-import options from '../_options.js'
+import { dbManager } from '../../../../tests/db-manager'
+import Utilisateurs from '../../models/utilisateurs'
+import { utilisateursGet } from '../utilisateurs'
+import { Administrations } from 'camino-common/src/static/administrations'
+import options from '../_options'
 import { beforeAll, expect, afterAll, test, describe, vi } from 'vitest'
-import { testBlankUser, TestUser } from 'camino-common/src/tests-utils.js'
-import { newUtilisateurId } from '../../models/_format/id-create.js'
+import { testBlankUser, TestUser } from 'camino-common/src/tests-utils'
+import { newUtilisateurId } from '../../models/_format/id-create'
 console.info = vi.fn()
 console.error = vi.fn()
 beforeAll(async () => {
diff --git a/packages/api/src/database/queries/permissions/utilisateurs.ts b/packages/api/src/database/queries/permissions/utilisateurs.ts
index 876a53bfa46e8c73b1eb7986cbe85ee66d72e26d..2e4018854ee48c371c51d6ca76ccac88b2e4a986 100644
--- a/packages/api/src/database/queries/permissions/utilisateurs.ts
+++ b/packages/api/src/database/queries/permissions/utilisateurs.ts
@@ -1,9 +1,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 Utilisateurs from '../../models/utilisateurs'
+import Entreprises from '../../models/entreprises'
+import { entreprisesQueryModify } from './entreprises'
+import { isAdministrationEditeur, isAdministrationLecteur, isBureauDEtudes, isDefault, isEntreprise, User } from 'camino-common/src/roles'
 
 export const utilisateursQueryModify = (q: QueryBuilder<Utilisateurs, Utilisateurs | Utilisateurs[]>, user: User) => {
   q.select('utilisateurs.*')
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 35116d328bfe9f4e2b42acd33946e8b13fb4d3bd..c203262900bfb5c6007ac9982e2389d9ab47e73a 100644
--- a/packages/api/src/database/queries/titres-activites.test.integration.ts
+++ b/packages/api/src/database/queries/titres-activites.test.integration.ts
@@ -1,12 +1,12 @@
-import { titresActivitesGet } from './titres-activites.js'
-import TitresActivites from '../models/titres-activites.js'
-import { dbManager } from '../../../tests/db-manager.js'
-import { newTitreId, newUtilisateurId } from '../models/_format/id-create.js'
-import Titres from '../models/titres.js'
-import { UserNotNull } from 'camino-common/src/roles.js'
+import { titresActivitesGet } from './titres-activites'
+import TitresActivites from '../models/titres-activites'
+import { dbManager } from '../../../tests/db-manager'
+import { newTitreId, newUtilisateurId } from '../models/_format/id-create'
+import Titres from '../models/titres'
+import { UserNotNull } from 'camino-common/src/roles'
 import { beforeAll, expect, afterAll, test, describe, vi } from 'vitest'
-import { getCurrent } from 'camino-common/src/date.js'
-import { activiteIdValidator } from 'camino-common/src/activite.js'
+import { getCurrent } from 'camino-common/src/date'
+import { activiteIdValidator } from 'camino-common/src/activite'
 console.info = vi.fn()
 console.error = vi.fn()
 beforeAll(async () => {
diff --git a/packages/api/src/database/queries/titres-activites.ts b/packages/api/src/database/queries/titres-activites.ts
index 49430b3492014a16077a1fd3560f901d842bb658..4718a423d209dfe440d3fd630ebb4cd412bb2a46 100644
--- a/packages/api/src/database/queries/titres-activites.ts
+++ b/packages/api/src/database/queries/titres-activites.ts
@@ -1,19 +1,19 @@
 import { raw, QueryBuilder, RawBuilder } from 'objection'
 
-import { ITitreActivite, ITitreActiviteColonneId, Index, IColonne } from '../../types.js'
+import { ITitreActivite, ITitreActiviteColonneId, Index, IColonne } from '../../types'
 
-import options, { FieldsActivite } from './_options.js'
-import { fieldsFormat } from './graph/fields-format.js'
-import { fieldsTitreAdd } from './graph/fields-add.js'
-import graphBuild from './graph/build.js'
+import options, { FieldsActivite } from './_options'
+import { fieldsFormat } from './graph/fields-format'
+import { fieldsTitreAdd } from './graph/fields-add'
+import graphBuild from './graph/build'
 
-import { titresFiltersQueryModify } from './_titres-filters.js'
-import TitresActivites from '../models/titres-activites.js'
-import { titresActivitesQueryModify } from './permissions/titres-activites.js'
-import { User } from 'camino-common/src/roles.js'
-import { DepartementId } from 'camino-common/src/static/departement.js'
-import { ActiviteId } from 'camino-common/src/activite.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
+import { titresFiltersQueryModify } from './_titres-filters'
+import TitresActivites from '../models/titres-activites'
+import { titresActivitesQueryModify } from './permissions/titres-activites'
+import { User } from 'camino-common/src/roles'
+import { DepartementId } from 'camino-common/src/static/departement'
+import { ActiviteId } from 'camino-common/src/activite'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
 
 /**
  * Modifie la requête en fonction des paramètres de filtre
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 26b1a3f529e9ea646275796dd19e011c54ddd5d7..098e12b71d74c1f9bf1cdd80689bb663e1857d24 100644
--- a/packages/api/src/database/queries/titres-demarches.test.integration.ts
+++ b/packages/api/src/database/queries/titres-demarches.test.integration.ts
@@ -1,12 +1,12 @@
-import { dbManager } from '../../../tests/db-manager.js'
-import { idGenerate } from '../models/_format/id-create.js'
-import Titres from '../models/titres.js'
-import TitresDemarches from '../models/titres-demarches.js'
-import TitresEtapes from '../models/titres-etapes.js'
-import { titreDemarcheArchive } from './titres-demarches.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { dbManager } from '../../../tests/db-manager'
+import { idGenerate } from '../models/_format/id-create'
+import Titres from '../models/titres'
+import TitresDemarches from '../models/titres-demarches'
+import TitresEtapes from '../models/titres-etapes'
+import { titreDemarcheArchive } from './titres-demarches'
+import { toCaminoDate } from 'camino-common/src/date'
 import { beforeAll, expect, afterAll, test, describe, vi } from 'vitest'
-import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape.js'
+import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape'
 console.info = vi.fn()
 console.error = vi.fn()
 
diff --git a/packages/api/src/database/queries/titres-demarches.ts b/packages/api/src/database/queries/titres-demarches.ts
index f8bb4a23bb229a81e0a03d0701aeb22042540022..ae4e600c8c0cc8072a08ebbfbb89bec5b7e072dd 100644
--- a/packages/api/src/database/queries/titres-demarches.ts
+++ b/packages/api/src/database/queries/titres-demarches.ts
@@ -1,20 +1,20 @@
 import { QueryBuilder, RawBuilder, raw } from 'objection'
 
-import { DemarcheId } from 'camino-common/src/demarche.js'
-import { ITitreDemarche, ITitreEtapeFiltre, ITitreDemarcheColonneId, IColonne, Index } from '../../types.js'
-
-import options, { FieldsDemarche } 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 { titresDemarchesQueryModify } from './permissions/titres-demarches.js'
-import { titresFiltersQueryModify } from './_titres-filters.js'
-import TitresEtapes from '../models/titres-etapes.js'
+import { DemarcheId } from 'camino-common/src/demarche'
+import { ITitreDemarche, ITitreEtapeFiltre, ITitreDemarcheColonneId, IColonne, Index } from '../../types'
+
+import options, { FieldsDemarche } from './_options'
+import { fieldsFormat } from './graph/fields-format'
+import graphBuild from './graph/build'
+import { fieldsTitreAdd } from './graph/fields-add'
+
+import TitresDemarches, { DBTitresDemarches } from '../models/titres-demarches'
+import { titresDemarchesQueryModify } from './permissions/titres-demarches'
+import { titresFiltersQueryModify } from './_titres-filters'
+import TitresEtapes from '../models/titres-etapes'
 import { User } from 'camino-common/src/roles'
-import { sortedDemarchesTypes } from 'camino-common/src/static/demarchesTypes.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
+import { sortedDemarchesTypes } from 'camino-common/src/static/demarchesTypes'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
 
 const etapesIncluesExcluesBuild = (q: QueryBuilder<TitresDemarches, TitresDemarches[]>, etapes: ITitreEtapeFiltre[], mode: 'etapesInclues' | 'etapesExclues') => {
   const raw = etapes
diff --git a/packages/api/src/database/queries/titres-etapes.queries.ts b/packages/api/src/database/queries/titres-etapes.queries.ts
index 36f1c9a1d4f704914392c310e0b4e54992af712e..1457c3992297dd384f33827f41995372c9a7a3b3 100644
--- a/packages/api/src/database/queries/titres-etapes.queries.ts
+++ b/packages/api/src/database/queries/titres-etapes.queries.ts
@@ -1,6 +1,6 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { dbQueryAndValidate, Redefine } from '../../pg-database.js'
+import { dbQueryAndValidate, Redefine } from '../../pg-database'
 import {
   IDeleteTitreEtapeEntrepriseDocumentInternalQuery,
   IGetEntrepriseDocumentIdsByEtapeIdQueryQuery,
@@ -19,7 +19,7 @@ import {
   IDeleteEtapeAvisDbQuery,
   IGetParticipationEtapesDbQuery,
   IUpdateParticipationStatutDbQuery,
-} from './titres-etapes.queries.types.js'
+} from './titres-etapes.queries.types'
 import {
   ETAPE_IS_NOT_BROUILLON,
   EtapeAvisId,
@@ -38,30 +38,30 @@ import {
   etapeIdValidator,
   TempEtapeAvis,
   TempEtapeDocument,
-} from 'camino-common/src/etape.js'
-import { EntrepriseDocumentId, entrepriseDocumentValidator, EntrepriseId, EtapeEntrepriseDocument, etapeEntrepriseDocumentValidator } from 'camino-common/src/entreprise.js'
+} from 'camino-common/src/etape'
+import { EntrepriseDocumentId, entrepriseDocumentValidator, EntrepriseId, EtapeEntrepriseDocument, etapeEntrepriseDocumentValidator } from 'camino-common/src/entreprise'
 import { Pool } from 'pg'
-import { User } from 'camino-common/src/roles.js'
-import { canSeeEntrepriseDocuments } from 'camino-common/src/permissions/entreprises.js'
+import { User } from 'camino-common/src/roles'
+import { canSeeEntrepriseDocuments } from 'camino-common/src/permissions/entreprises'
 import { z } from 'zod'
-import { entrepriseDocumentLargeObjectIdValidator } from '../../api/rest/entreprises.queries.js'
-import { canReadDocument } from '../../api/rest/permissions/documents.js'
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { TitreTypeId, titreTypeIdValidator } from 'camino-common/src/static/titresTypes.js'
-import { DeepReadonly, isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, SimplePromiseFn } from 'camino-common/src/typescript-tools.js'
-import { CanReadDemarche } from '../../api/rest/permissions/demarches.js'
-import { newEtapeAvisId, newEtapeDocumentId } from '../models/_format/id-create.js'
-import { caminoDateValidator, getCurrent } from 'camino-common/src/date.js'
-import { createLargeObject, LargeObjectId, largeObjectIdValidator } from '../largeobjects.js'
-import { avisStatutIdValidator, avisTypeIdValidator, avisVisibilityIdValidator } from 'camino-common/src/static/avisTypes.js'
-import { canReadAvis } from '../../api/rest/permissions/avis.js'
-import { getEtapeDataForEdition } from '../../api/rest/etapes.queries.js'
-import { etapeAvisStepIsComplete } from 'camino-common/src/permissions/etape-form.js'
-import { CommuneId } from 'camino-common/src/static/communes.js'
-import { EtapeStatutId, etapeStatutIdValidator } from 'camino-common/src/static/etapesStatuts.js'
-import { contenuValidator, heritageContenuValidator } from 'camino-common/src/etape-form.js'
-import { demarcheTypeIdValidator } from 'camino-common/src/static/demarchesTypes.js'
+import { entrepriseDocumentLargeObjectIdValidator } from '../../api/rest/entreprises.queries'
+import { canReadDocument } from '../../api/rest/permissions/documents'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { TitreTypeId, titreTypeIdValidator } from 'camino-common/src/static/titresTypes'
+import { DeepReadonly, isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, SimplePromiseFn } from 'camino-common/src/typescript-tools'
+import { CanReadDemarche } from '../../api/rest/permissions/demarches'
+import { newEtapeAvisId, newEtapeDocumentId } from '../models/_format/id-create'
+import { caminoDateValidator, getCurrent } from 'camino-common/src/date'
+import { createLargeObject, LargeObjectId, largeObjectIdValidator } from '../largeobjects'
+import { avisStatutIdValidator, avisTypeIdValidator, avisVisibilityIdValidator } from 'camino-common/src/static/avisTypes'
+import { canReadAvis } from '../../api/rest/permissions/avis'
+import { getEtapeDataForEdition } from '../../api/rest/etapes.queries'
+import { etapeAvisStepIsComplete } from 'camino-common/src/permissions/etape-form'
+import { CommuneId } from 'camino-common/src/static/communes'
+import { EtapeStatutId, etapeStatutIdValidator } from 'camino-common/src/static/etapesStatuts'
+import { contenuValidator, heritageContenuValidator } from 'camino-common/src/etape-form'
+import { demarcheTypeIdValidator } from 'camino-common/src/static/demarchesTypes'
 
 export const insertTitreEtapeEntrepriseDocument = async (pool: Pool, params: { titre_etape_id: EtapeId; entreprise_document_id: EntrepriseDocumentId }) =>
   dbQueryAndValidate(insertTitreEtapeEntrepriseDocumentInternal, params, pool, z.void())
diff --git a/packages/api/src/database/queries/titres-etapes.ts b/packages/api/src/database/queries/titres-etapes.ts
index 0e23e44ad82f7384246042f2b701c2675bcef2b7..d9078dd3357552d91184707219f4ac841391e3bb 100644
--- a/packages/api/src/database/queries/titres-etapes.ts
+++ b/packages/api/src/database/queries/titres-etapes.ts
@@ -1,14 +1,14 @@
-import { ITitreEtape } from '../../types.js'
-import options, { FieldsEtape } from './_options.js'
-import graphBuild from './graph/build.js'
-import { fieldsFormat } from './graph/fields-format.js'
-
-import TitresEtapes, { DBTitresEtapes } from '../models/titres-etapes.js'
-import { titresEtapesQueryModify } from './permissions/titres-etapes.js'
-import { createJournalCreate, patchJournalCreate, upsertJournalCreate } from './journaux.js'
+import { ITitreEtape } from '../../types'
+import options, { FieldsEtape } from './_options'
+import graphBuild from './graph/build'
+import { fieldsFormat } from './graph/fields-format'
+
+import TitresEtapes, { DBTitresEtapes } from '../models/titres-etapes'
+import { titresEtapesQueryModify } from './permissions/titres-etapes'
+import { createJournalCreate, patchJournalCreate, upsertJournalCreate } from './journaux'
 import { User, UserNotNull } from 'camino-common/src/roles'
-import { TitreId } from 'camino-common/src/validators/titres.js'
-import { EtapeId, EtapeIdOrSlug } from 'camino-common/src/etape.js'
+import { TitreId } from 'camino-common/src/validators/titres'
+import { EtapeId, EtapeIdOrSlug } from 'camino-common/src/etape'
 
 const titresEtapesQueryBuild = ({ fields }: { fields?: FieldsEtape }, user: User) => {
   const graph = fields ? graphBuild(fields, 'etapes', fieldsFormat) : '[]'
diff --git a/packages/api/src/database/queries/titres-titres.ts b/packages/api/src/database/queries/titres-titres.ts
index 7927914a9a108c3f1e70c6a99d0d1b155a9faf64..52712b82708364ae970c2d1020cac33d1defdcd0 100644
--- a/packages/api/src/database/queries/titres-titres.ts
+++ b/packages/api/src/database/queries/titres-titres.ts
@@ -1,5 +1,5 @@
-import TitresTitres from '../models/titres--titres.js'
-import { TitreId } from 'camino-common/src/validators/titres.js'
+import TitresTitres from '../models/titres--titres'
+import { TitreId } from 'camino-common/src/validators/titres'
 
 interface LinkTitre {
   linkTo: TitreId
diff --git a/packages/api/src/database/queries/titres-utilisateurs.queries.ts b/packages/api/src/database/queries/titres-utilisateurs.queries.ts
index e335df411674c99dca8b5568286365634a1209e6..0177eafcdb2a54d4f4f5b307c5a127773cb13aa3 100644
--- a/packages/api/src/database/queries/titres-utilisateurs.queries.ts
+++ b/packages/api/src/database/queries/titres-utilisateurs.queries.ts
@@ -1,12 +1,12 @@
 /* eslint-disable no-restricted-syntax */
 import { sql } from '@pgtyped/runtime'
-import { Redefine, dbQueryAndValidate } from '../../pg-database.js'
-import { IGetTitreUtilisateurDbQuery } from './titres-utilisateurs.queries.types.js'
-import { isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
+import { Redefine, dbQueryAndValidate } from '../../pg-database'
+import { IGetTitreUtilisateurDbQuery } from './titres-utilisateurs.queries.types'
+import { isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
 import { Pool } from 'pg'
 import { z } from 'zod'
-import { TitreId, titreIdValidator } from 'camino-common/src/validators/titres.js'
-import { UtilisateurId, utilisateurIdValidator } from 'camino-common/src/roles.js'
+import { TitreId, titreIdValidator } from 'camino-common/src/validators/titres'
+import { UtilisateurId, utilisateurIdValidator } from 'camino-common/src/roles'
 
 export const getTitreUtilisateur = async (pool: Pool, titreId: TitreId, userId: UtilisateurId): Promise<boolean> => {
   return isNotNullNorUndefinedNorEmpty(await dbQueryAndValidate(getTitreUtilisateurDb, { titreId, userId }, pool, getTitreUtilisateurDbValidator))
diff --git a/packages/api/src/database/queries/titres.test.integration.ts b/packages/api/src/database/queries/titres.test.integration.ts
index dd51579ec1fcb1930d1b48711a5de2862b634a4a..04777a0784b8bc8c7a96640cfbd460aa1ee54052 100644
--- a/packages/api/src/database/queries/titres.test.integration.ts
+++ b/packages/api/src/database/queries/titres.test.integration.ts
@@ -1,12 +1,12 @@
-import { dbManager } from '../../../tests/db-manager.js'
-import { idGenerate } from '../models/_format/id-create.js'
-import Titres from '../models/titres.js'
-import TitresDemarches from '../models/titres-demarches.js'
-import TitresEtapes from '../models/titres-etapes.js'
-import { titreArchive } from './titres.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import { dbManager } from '../../../tests/db-manager'
+import { idGenerate } from '../models/_format/id-create'
+import Titres from '../models/titres'
+import TitresDemarches from '../models/titres-demarches'
+import TitresEtapes from '../models/titres-etapes'
+import { titreArchive } from './titres'
+import { toCaminoDate } from 'camino-common/src/date'
 import { beforeAll, expect, afterAll, test, describe, vi } from 'vitest'
-import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape.js'
+import { ETAPE_IS_BROUILLON } from 'camino-common/src/etape'
 
 console.info = vi.fn()
 console.error = vi.fn()
diff --git a/packages/api/src/database/queries/titres.ts b/packages/api/src/database/queries/titres.ts
index 42d9c737405afdcb7fa4d354c7d0b4cdea3dbd35..91e9b7b0a9dcfa4265492d7986ed50ab3a72456d 100644
--- a/packages/api/src/database/queries/titres.ts
+++ b/packages/api/src/database/queries/titres.ts
@@ -2,24 +2,24 @@
 
 import { raw, RawBuilder } from 'objection'
 
-import { IColonne, ITitre, ITitreColonneId } from '../../types.js'
+import { IColonne, ITitre, ITitreColonneId } from '../../types'
 
-import options, { FieldsTitre } from './_options.js'
-import graphBuild from './graph/build.js'
-import { fieldsFormat } from './graph/fields-format.js'
-import { titresFieldsAdd } from './graph/fields-add.js'
+import options, { FieldsTitre } from './_options'
+import graphBuild from './graph/build'
+import { fieldsFormat } from './graph/fields-format'
+import { titresFieldsAdd } from './graph/fields-add'
 
-import Titres, { DBTitre } from '../models/titres.js'
-import { titresQueryModify } from './permissions/titres.js'
-import { titresFiltersQueryModify } from './_titres-filters.js'
-import TitresDemarches from '../models/titres-demarches.js'
-import TitresEtapes from '../models/titres-etapes.js'
+import Titres, { DBTitre } from '../models/titres'
+import { titresQueryModify } from './permissions/titres'
+import { titresFiltersQueryModify } from './_titres-filters'
+import TitresDemarches from '../models/titres-demarches'
+import TitresEtapes from '../models/titres-etapes'
 import { User } from 'camino-common/src/roles'
-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'
-import { EditableTitre } from 'camino-common/src/titres.js'
-import { TitreId } from 'camino-common/src/validators/titres.js'
+import { DepartementId } from 'camino-common/src/static/departement'
+import { RegionId } from 'camino-common/src/static/region'
+import { FacadesMaritimes } from 'camino-common/src/static/facades'
+import { EditableTitre } from 'camino-common/src/titres'
+import { TitreId } from 'camino-common/src/validators/titres'
 
 /**
  * Construit la requête pour récupérer certains champs de titres filtrés
diff --git a/packages/api/src/database/queries/utilisateurs.ts b/packages/api/src/database/queries/utilisateurs.ts
index 7848814f2cde8f4e9787f8074dacba26d412cdf9..ac098a69616f880372390bb5d4169e4449326fbf 100644
--- a/packages/api/src/database/queries/utilisateurs.ts
+++ b/packages/api/src/database/queries/utilisateurs.ts
@@ -1,17 +1,17 @@
 import { RawBuilder, QueryBuilder } from 'objection'
 
-import { IUtilisateursColonneId, IColonne, IUtilisateurTitre, IUtilisateur, formatUser } from '../../types.js'
-
-import options, { FieldsUtilisateur, FieldsUtilisateurTitre } from './_options.js'
-import graphBuild from './graph/build.js'
-import { fieldsFormat } from './graph/fields-format.js'
-import { stringSplit } from './_utils.js'
-
-import Utilisateurs from '../models/utilisateurs.js'
-import { utilisateursQueryModify } from './permissions/utilisateurs.js'
-import UtilisateursTitres from '../models/utilisateurs--titres.js'
-import { Role, User } from 'camino-common/src/roles.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
+import { IUtilisateursColonneId, IColonne, IUtilisateurTitre, IUtilisateur, formatUser } from '../../types'
+
+import options, { FieldsUtilisateur, FieldsUtilisateurTitre } from './_options'
+import graphBuild from './graph/build'
+import { fieldsFormat } from './graph/fields-format'
+import { stringSplit } from './_utils'
+
+import Utilisateurs from '../models/utilisateurs'
+import { utilisateursQueryModify } from './permissions/utilisateurs'
+import UtilisateursTitres from '../models/utilisateurs--titres'
+import { Role, User } from 'camino-common/src/roles'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools'
 
 const userGet = async (userId?: string): Promise<User> => {
   if (isNullOrUndefined(userId)) return null
diff --git a/packages/api/src/database/user-super.ts b/packages/api/src/database/user-super.ts
index 65985d4f9b4769f929123680ed516188c3d0567a..87cce46f812d6fed5f1011f103fd2336a382b6a3 100644
--- a/packages/api/src/database/user-super.ts
+++ b/packages/api/src/database/user-super.ts
@@ -1,5 +1,5 @@
-import { UserSuper } from 'camino-common/src/roles.js'
-import { newUtilisateurId } from './models/_format/id-create.js'
+import { UserSuper } from 'camino-common/src/roles'
+import { newUtilisateurId } from './models/_format/id-create'
 
 export const userSuper: UserSuper = {
   id: newUtilisateurId('super'),
diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts
index 4bc4e72877b0fc25db92ca0c8f4206cda4c71224..b528be1447c88f514aa5cd8fc32ae725f6734f1c 100644
--- a/packages/api/src/index.ts
+++ b/packages/api/src/index.ts
@@ -8,29 +8,29 @@
  * You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
  */
 
-import './init.js'
+import './init'
 import compression from 'compression'
 import cors from 'cors'
 import express from 'express'
 import rateLimit from 'express-rate-limit'
 import * as Sentry from '@sentry/node'
 
-import { config } from './config/index.js'
-import { restWithPool } 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, uploadAllowedMiddleware } from './server/upload.js'
-import { databaseInit } from './database/init.js'
+import { config } from './config/index'
+import { restWithPool } from './server/rest'
+import { graphql } from './server/graphql'
+import { authJwt } from './server/auth-jwt'
+import { authBasic } from './server/auth-basic'
+import { restUpload, uploadAllowedMiddleware } from './server/upload'
+import { databaseInit } from './database/init'
 
-import { consoleOverride } from './config/logger.js'
-import { filesInit } from './config/files.js'
-import { userLoader } from './server/user-loader.js'
-import { connectedCatcher } from './server/connected-catcher.js'
+import { consoleOverride } from './config/logger'
+import { filesInit } from './config/files'
+import { userLoader } from './server/user-loader'
+import { connectedCatcher } from './server/connected-catcher'
 import cookieParser from 'cookie-parser'
 import pg from 'pg'
 import qs from 'qs'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
 // Le pool ne doit être qu'aux entrypoints : le daily, le monthly, et l'application.
 const pool = new pg.Pool({
   host: config().PGHOST,
diff --git a/packages/api/src/init.ts b/packages/api/src/init.ts
index 4cc3abb1f3e0333d5ef5698c3c78d0a3f58ca474..ebbf65d18ecb835eb1cbd13cc09edf886c85cfa6 100644
--- a/packages/api/src/init.ts
+++ b/packages/api/src/init.ts
@@ -1,4 +1,4 @@
-import { knexInit } from './knex.js'
-import { knexConfig } from './knex/config.js'
+import { knexInit } from './knex'
+import { knexConfig } from './knex/config'
 
 knexInit(knexConfig)
diff --git a/packages/api/src/knex/config.ts b/packages/api/src/knex/config.ts
index d894d4fecdae53c32de55c2d8aca89dce565a3f4..8e5d1519b2b4681d79fd43320787acdc84bf2033 100644
--- a/packages/api/src/knex/config.ts
+++ b/packages/api/src/knex/config.ts
@@ -2,7 +2,7 @@ import 'dotenv/config'
 import { knexSnakeCaseMappers } from 'objection'
 import path, { join } from 'node:path'
 import { fileURLToPath } from 'url'
-import { config } from '../config/index.js'
+import { config } from '../config/index'
 const __dirname = path.dirname(fileURLToPath(import.meta.url))
 
 const connection = {
diff --git a/packages/api/src/knex/migrate.ts b/packages/api/src/knex/migrate.ts
index f0776d1d43eb60b8358ddb29ed59070659092d96..8fdc77f8795ac0a0f226a289260c97e459ccb293 100644
--- a/packages/api/src/knex/migrate.ts
+++ b/packages/api/src/knex/migrate.ts
@@ -1,5 +1,5 @@
-import '../init.js'
-import { knex } from '../knex.js'
+import '../init'
+import { knex } from '../knex'
 
 const run = async () => {
   try {
diff --git a/packages/api/src/knex/migrations/20240116142111_migrate-point-to-geojson.ts b/packages/api/src/knex/migrations/20240116142111_migrate-point-to-geojson.ts
index 9a406834cbe9d74e5f4fe0c15fa6575ddb15ebf2..8958a220b1aa24f75e3662ab81ea867f93d05282 100644
--- a/packages/api/src/knex/migrations/20240116142111_migrate-point-to-geojson.ts
+++ b/packages/api/src/knex/migrations/20240116142111_migrate-point-to-geojson.ts
@@ -1,8 +1,8 @@
 /* eslint-disable sql/no-unsafe-query */
 import { Knex } from 'knex'
-import { EtapeId } from 'camino-common/src/etape.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools.js'
-import { FeatureMultiPolygon } from 'camino-common/src/perimetre.js'
+import { EtapeId } from 'camino-common/src/etape'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from 'camino-common/src/typescript-tools'
+import { FeatureMultiPolygon } from 'camino-common/src/perimetre'
 import { TitreId } from 'camino-common/src/validators/titres'
 
 const etapesToNotMigrate = ['0NmsqYGVQJYKhFY22Ltt4NBV']
diff --git a/packages/api/src/knex/migrations/20240610091608_add_avis-documents.ts b/packages/api/src/knex/migrations/20240610091608_add_avis-documents.ts
index bab296bd945ee545f18048a46608611f613e56b9..7a313429679eeb06f6f8b05f2c278ce644700479 100644
--- a/packages/api/src/knex/migrations/20240610091608_add_avis-documents.ts
+++ b/packages/api/src/knex/migrations/20240610091608_add_avis-documents.ts
@@ -1,20 +1,20 @@
 /* eslint-disable no-restricted-syntax */
 /* eslint-disable sql/no-unsafe-query */
-import { DemarcheId } from 'camino-common/src/demarche.js'
-import { EtapeDocumentId, EtapeId } from 'camino-common/src/etape.js'
-import { AvisStatutId, AvisTypeId, AvisVisibilityId, AvisVisibilityIds } from 'camino-common/src/static/avisTypes.js'
-import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { DeepReadonly, isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
+import { DemarcheId } from 'camino-common/src/demarche'
+import { EtapeDocumentId, EtapeId } from 'camino-common/src/etape'
+import { AvisStatutId, AvisTypeId, AvisVisibilityId, AvisVisibilityIds } from 'camino-common/src/static/avisTypes'
+import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { DeepReadonly, isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools'
 import { Knex } from 'knex'
-import { LargeObjectId } from '../../database/largeobjects.js'
-import { newEtapeAvisId } from '../../database/models/_format/id-create.js'
-import { CaminoDate } from 'camino-common/src/date.js'
-import { Section, getSectionsWithValue } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
-import { valeurFind } from 'camino-common/src/sections.js'
-import { Contenu } from 'camino-common/src/permissions/sections.js'
+import { LargeObjectId } from '../../database/largeobjects'
+import { newEtapeAvisId } from '../../database/models/_format/id-create'
+import { CaminoDate } from 'camino-common/src/date'
+import { Section, getSectionsWithValue } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { valeurFind } from 'camino-common/src/sections'
+import { Contenu } from 'camino-common/src/permissions/sections'
 
 const oldSections = {
   eof: [
diff --git a/packages/api/src/knex/migrations/20240620130015_init-surface.ts b/packages/api/src/knex/migrations/20240620130015_init-surface.ts
index 189d4881a3aaec5cd0a616cc24e1e199e7888633..0b2e8b92621664b7720b08907fd38af42044e11b 100644
--- a/packages/api/src/knex/migrations/20240620130015_init-surface.ts
+++ b/packages/api/src/knex/migrations/20240620130015_init-surface.ts
@@ -1,7 +1,7 @@
 import { EtapeId } from 'camino-common/src/etape'
 import { MultiPolygon } from 'camino-common/src/perimetre'
 import { Knex } from 'knex'
-import { M2, km2Validator } from 'camino-common/src/number.js'
+import { M2, km2Validator } from 'camino-common/src/number'
 
 export const up = async (knex: Knex) => {
   const { rows: etapes }: { rows: { id: EtapeId; geojson4326_perimetre: MultiPolygon }[] } = await knex.raw(
diff --git a/packages/api/src/knex/migrations/20240711082459_cxg_prg-machine-update.ts b/packages/api/src/knex/migrations/20240711082459_cxg_prg-machine-update.ts
index fd869abbd290447d261fd83049a73da5de57fa6b..daceafb3f28d7add18fd59bbc61426eab80f7c7d 100644
--- a/packages/api/src/knex/migrations/20240711082459_cxg_prg-machine-update.ts
+++ b/packages/api/src/knex/migrations/20240711082459_cxg_prg-machine-update.ts
@@ -1,4 +1,4 @@
-import { DEMARCHES_TYPES_IDS, DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
+import { DEMARCHES_TYPES_IDS, DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
 import { Knex } from 'knex'
 
 const demarcheTypeIdsCxPr_G: DemarcheTypeId[] = [
diff --git a/packages/api/src/knex/migrations/20240715143025_delete-cloture-participation.ts b/packages/api/src/knex/migrations/20240715143025_delete-cloture-participation.ts
index c8a56791948477b9b800bf4b306afb9db03fcf09..31734b398f275c80ffd1ec817e2a10619c6e8b67 100644
--- a/packages/api/src/knex/migrations/20240715143025_delete-cloture-participation.ts
+++ b/packages/api/src/knex/migrations/20240715143025_delete-cloture-participation.ts
@@ -1,10 +1,10 @@
 /* eslint-disable no-restricted-syntax */
 /* eslint-disable sql/no-unsafe-query */
 
-import { CaminoDate, daysBetween } from 'camino-common/src/date.js'
-import { DemarcheId } from 'camino-common/src/demarche.js'
-import { EtapeId } from 'camino-common/src/etape.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
+import { CaminoDate, daysBetween } from 'camino-common/src/date'
+import { DemarcheId } from 'camino-common/src/demarche'
+import { EtapeId } from 'camino-common/src/etape'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
 import { Knex } from 'knex'
 
 export const up = async (knex: Knex) => {
diff --git a/packages/api/src/knex/migrations/20240717125347_migre-avis-en-document.ts b/packages/api/src/knex/migrations/20240717125347_migre-avis-en-document.ts
index dc8fa5befa1122c86a237637fc201cb05a11157e..88da2d74d538cbc2c1b0b122681a4275c5a73454 100644
--- a/packages/api/src/knex/migrations/20240717125347_migre-avis-en-document.ts
+++ b/packages/api/src/knex/migrations/20240717125347_migre-avis-en-document.ts
@@ -1,11 +1,11 @@
 /* eslint-disable no-restricted-syntax */
 /* eslint-disable sql/no-unsafe-query */
-import { CaminoDate, dateFormat } from 'camino-common/src/date.js'
-import { EtapeId } from 'camino-common/src/etape.js'
-import { AvisVisibilityId } from 'camino-common/src/static/avisTypes.js'
+import { CaminoDate, dateFormat } from 'camino-common/src/date'
+import { EtapeId } from 'camino-common/src/etape'
+import { AvisVisibilityId } from 'camino-common/src/static/avisTypes'
 import { Knex } from 'knex'
-import { LargeObjectId, largeObjectIdValidator } from '../../database/largeobjects.js'
-import { DOCUMENTS_TYPES_IDS } from 'camino-common/src/static/documentsTypes.js'
+import { LargeObjectId, largeObjectIdValidator } from '../../database/largeobjects'
+import { DOCUMENTS_TYPES_IDS } from 'camino-common/src/static/documentsTypes'
 
 export const up = async (knex: Knex) => {
   const result: { rows: { id: string; avis_visibility_id: AvisVisibilityId; etape_id: EtapeId; description: string; date: CaminoDate; largeobject_id: LargeObjectId | null }[] } = await knex.raw(
diff --git a/packages/api/src/knex/migrations/20240718121004_supprimer-cac-prm.ts b/packages/api/src/knex/migrations/20240718121004_supprimer-cac-prm.ts
index 18a69fc45031b7105b9ac36578506e26e9728159..8e6120b237f572f83790af5e41c8f38b271d93c7 100644
--- a/packages/api/src/knex/migrations/20240718121004_supprimer-cac-prm.ts
+++ b/packages/api/src/knex/migrations/20240718121004_supprimer-cac-prm.ts
@@ -1,7 +1,7 @@
 /* eslint-disable no-restricted-syntax */
 /* eslint-disable sql/no-unsafe-query */
 
-import { EtapeId } from 'camino-common/src/etape.js'
+import { EtapeId } from 'camino-common/src/etape'
 import { Knex } from 'knex'
 
 export const up = async (knex: Knex) => {
diff --git a/packages/api/src/pg-database.ts b/packages/api/src/pg-database.ts
index 8dcbf1eb3cf3d95a57b9df45c24b82b3bb291bce..0d23332bd591d81d247082889ea78882f07fdffb 100644
--- a/packages/api/src/pg-database.ts
+++ b/packages/api/src/pg-database.ts
@@ -3,8 +3,8 @@ import { TaggedQuery } from '@pgtyped/runtime'
 import type { Pool } from 'pg'
 import { z } from 'zod'
 import type { ZodType, ZodTypeDef } from 'zod'
-import { CaminoError } from 'camino-common/src/zod-tools.js'
-import { ZodUnparseable, zodParseEffectCallback } from './tools/fp-tools.js'
+import { CaminoError } from 'camino-common/src/zod-tools'
+import { ZodUnparseable, zodParseEffectCallback } from './tools/fp-tools'
 import { Effect, pipe } from 'effect'
 export type Redefine<T, P, O> = T extends { params: infer A; result: infer B }
   ? { inputs: keyof A; outputs: keyof B } extends { inputs: keyof P; outputs: keyof O }
diff --git a/packages/api/src/scripts/administrations-update.ts b/packages/api/src/scripts/administrations-update.ts
index 088902cdf7dbc77cefee0fb3b881833be7d88422..c4e906c4c840c699d44d1b4119824fed0e9ff231 100644
--- a/packages/api/src/scripts/administrations-update.ts
+++ b/packages/api/src/scripts/administrations-update.ts
@@ -1,9 +1,9 @@
-import '../init.js'
+import '../init'
 
-import { organismesDepartementsGet } from '../tools/api-administrations/index.js'
-import { Administrations } from 'camino-common/src/static/administrations.js'
-import { DepartementId } from 'camino-common/src/static/departement.js'
-import { isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools.js'
+import { organismesDepartementsGet } from '../tools/api-administrations/index'
+import { Administrations } from 'camino-common/src/static/administrations'
+import { DepartementId } from 'camino-common/src/static/departement'
+import { isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools'
 import { readFileSync, writeFileSync } from 'node:fs'
 import { join } from 'node:path'
 
diff --git a/packages/api/src/scripts/daily.ts b/packages/api/src/scripts/daily.ts
index 794d43ff2c8c60ee9b69e47ddf1b1b696293f42b..0541744c08f88896772b303da72a4e839c769094 100644
--- a/packages/api/src/scripts/daily.ts
+++ b/packages/api/src/scripts/daily.ts
@@ -1,12 +1,12 @@
-import '../init.js'
-import { daily } from '../business/daily.js'
-import { consoleOverride } from '../config/logger.js'
-import { mailjetSend } from '../tools/api-mailjet/emails.js'
+import '../init'
+import { daily } from '../business/daily'
+import { consoleOverride } from '../config/logger'
+import { mailjetSend } from '../tools/api-mailjet/emails'
 import { readFileSync, writeFileSync, createWriteStream } from 'fs'
 import * as Console from 'console'
 import pg from 'pg'
-import { config } from '../config/index.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
+import { config } from '../config/index'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
 
 const logFile = '/tmp/cron.log'
 const output = createWriteStream(logFile)
diff --git a/packages/api/src/scripts/demarches-tde-check.ts b/packages/api/src/scripts/demarches-tde-check.ts
index 355e7ed2d2fe0a4539ce8fdc54943a53164fdaeb..8a6db8320dfddeb5490518175490cb14a1626ddf 100644
--- a/packages/api/src/scripts/demarches-tde-check.ts
+++ b/packages/api/src/scripts/demarches-tde-check.ts
@@ -1,5 +1,5 @@
-import '../init.js'
-import { titreTypeDemarcheTypeEtapeTypeCheck } from '../tools/demarches/tde-check.js'
+import '../init'
+import { titreTypeDemarcheTypeEtapeTypeCheck } from '../tools/demarches/tde-check'
 
 titreTypeDemarcheTypeEtapeTypeCheck()
   .then(() => {
diff --git a/packages/api/src/scripts/entreprises-guyane.ts b/packages/api/src/scripts/entreprises-guyane.ts
index 6eb211d781b23b5f7b761a28469f17eb376a11e5..e3c9376e27f3b83af3cf7fd5ea69ba20d96d181e 100644
--- a/packages/api/src/scripts/entreprises-guyane.ts
+++ b/packages/api/src/scripts/entreprises-guyane.ts
@@ -1,5 +1,5 @@
-import '../init.js'
-import { subscribeUsersToGuyaneExploitants } from '../business/entreprises-guyane.js'
+import '../init'
+import { subscribeUsersToGuyaneExploitants } from '../business/entreprises-guyane'
 
 // Retourne tous les utilisateurs 'entreprise' et 'bureau d'études' associés à des entreprises de Guyane
 subscribeUsersToGuyaneExploitants()
diff --git a/packages/api/src/scripts/matrices.ts b/packages/api/src/scripts/matrices.ts
index 4c0b076957b57991c1338124b6a2fb591ac4657b..a58e808f4ca321359ec1277acdcf91e63964c31b 100644
--- a/packages/api/src/scripts/matrices.ts
+++ b/packages/api/src/scripts/matrices.ts
@@ -1,6 +1,6 @@
-import { matrices } from '../business/matrices.js'
+import { matrices } from '../business/matrices'
 import pg from 'pg'
-import { config } from '../config/index.js'
+import { config } from '../config/index'
 // Le pool ne doit être qu'aux entrypoints : le daily, le monthly, et l'application.
 const pool = new pg.Pool({
   host: config().PGHOST,
diff --git a/packages/api/src/scripts/monthly.ts b/packages/api/src/scripts/monthly.ts
index 366ac2f7c62202809beb09e25830f01509163201..23517228e60e72c61228fd3ef65520ad1ab92cd7 100644
--- a/packages/api/src/scripts/monthly.ts
+++ b/packages/api/src/scripts/monthly.ts
@@ -1,12 +1,12 @@
-import '../init.js'
-import { consoleOverride } from '../config/logger.js'
-import { mailjetSend } from '../tools/api-mailjet/emails.js'
+import '../init'
+import { consoleOverride } from '../config/logger'
+import { mailjetSend } from '../tools/api-mailjet/emails'
 import { readFileSync, writeFileSync, createWriteStream } from 'fs'
 import * as Console from 'console'
-import { monthly } from '../business/monthly.js'
+import { monthly } from '../business/monthly'
 import pg from 'pg'
-import { config } from '../config/index.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
+import { config } from '../config/index'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
 
 const logFile = '/tmp/monthly.log'
 
diff --git a/packages/api/src/server/auth-basic.ts b/packages/api/src/server/auth-basic.ts
index 083fc198e764c6b28968a828b3f2180198d9f7ff..fc8a998dbc646b32464b1991ed634e26e40bcf1d 100644
--- a/packages/api/src/server/auth-basic.ts
+++ b/packages/api/src/server/auth-basic.ts
@@ -4,10 +4,10 @@ import { Request } from 'express-jwt'
 import basicAuth from 'basic-auth'
 import bcrypt from 'bcryptjs'
 
-import { emailCheck } from '../tools/email-check.js'
-import { userByEmailGet } from '../database/queries/utilisateurs.js'
+import { emailCheck } from '../tools/email-check'
+import { userByEmailGet } from '../database/queries/utilisateurs'
 import { JWTUser } from './user-loader'
-import { isNullOrUndefined, isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
+import { isNullOrUndefined, isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
 
 const userQGISCredentialsCheck = async (email: string, qgisToken: string) => {
   email = email.toLowerCase()
diff --git a/packages/api/src/server/auth-jwt.ts b/packages/api/src/server/auth-jwt.ts
index 7c1b000b116cdbc5336d6d08025d79992e43525f..44efd67049ebc2899ea65c0c183dea05e8bcfbce 100644
--- a/packages/api/src/server/auth-jwt.ts
+++ b/packages/api/src/server/auth-jwt.ts
@@ -1,7 +1,7 @@
 import { expressjwt } from 'express-jwt'
 import { CaminoRequest } from '../api/rest/express-type'
-import { config } from '../config/index.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
+import { config } from '../config/index'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
 
 export const authJwt = expressjwt({
   credentialsRequired: false,
diff --git a/packages/api/src/server/config.test.integration.ts b/packages/api/src/server/config.test.integration.ts
index eaec559ad7ae670c43ba6a2a8b6ffac4af7f10cc..c1eaf593e414656a926c3eccfc89f0e7b3c89c32 100644
--- a/packages/api/src/server/config.test.integration.ts
+++ b/packages/api/src/server/config.test.integration.ts
@@ -1,4 +1,4 @@
-import { restCall } from '../../tests/_utils/index.js'
+import { restCall } from '../../tests/_utils/index'
 import { expect, test, describe, vi } from 'vitest'
 import type { Pool } from 'pg'
 
diff --git a/packages/api/src/server/connected-catcher.ts b/packages/api/src/server/connected-catcher.ts
index 176c88c4a2ddac77f805e6aa1c582f76db375796..4185086aba3de23deeb21cd605681fc8cd88cff6 100644
--- a/packages/api/src/server/connected-catcher.ts
+++ b/packages/api/src/server/connected-catcher.ts
@@ -1,7 +1,7 @@
 import express from 'express'
-import { CaminoRestRoute } from 'camino-common/src/rest.js'
+import { CaminoRestRoute } from 'camino-common/src/rest'
 import { CaminoRequest } from '../api/rest/express-type'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
+import { HTTP_STATUS } from 'camino-common/src/http'
 
 const excludedRoutes: CaminoRestRoute[] = ['/moi', '/config']
 export const connectedCatcher = async (req: CaminoRequest, res: express.Response, next: express.NextFunction) => {
diff --git a/packages/api/src/server/graphql.ts b/packages/api/src/server/graphql.ts
index 3fa28afdcf30d309da9d6144761fbd31278a7b64..11763da15c4f227d3268552cd29d5a22524525ca 100644
--- a/packages/api/src/server/graphql.ts
+++ b/packages/api/src/server/graphql.ts
@@ -1,8 +1,8 @@
 import { createHandler } from 'graphql-http/lib/use/express'
 import type { Pool } from 'pg'
 
-import rootValue from '../api/graphql/resolvers.js'
-import schema from '../api/graphql/schemas.js'
+import rootValue from '../api/graphql/resolvers'
+import schema from '../api/graphql/schemas'
 
 export const graphql = (pool: Pool) =>
   createHandler({
diff --git a/packages/api/src/server/rest.ts b/packages/api/src/server/rest.ts
index 490ae86134bd266257561a996d64bcf865063fdd..6ec2d48332a9f2ec92b132bf4d98ad762a428c8c 100644
--- a/packages/api/src/server/rest.ts
+++ b/packages/api/src/server/rest.ts
@@ -1,15 +1,15 @@
 /* eslint-disable @typescript-eslint/ban-types */
 
-import { CaminoApiError, Index } from '../types.js'
+import { CaminoApiError, Index } from '../types'
 import type { Pool } from 'pg'
 
 import express from 'express'
 import { join } from 'path'
 import { inspect } from 'node:util'
 
-import { activites, demarches, entreprises, titre, titres, travaux } from '../api/rest/index.js'
-import { NewDownload, avisDocumentDownload, etapeDocumentDownload, etapeTelecharger, streamLargeObjectInResponse } from '../api/rest/fichiers.js'
-import { getTitreLiaisons, postTitreLiaisons, removeTitre, titresAdministrations, titresONF, updateTitre, utilisateurTitreAbonner, getTitre, getUtilisateurTitreAbonner } from '../api/rest/titres.js'
+import { activites, demarches, entreprises, titre, titres, travaux } from '../api/rest/index'
+import { NewDownload, avisDocumentDownload, etapeDocumentDownload, etapeTelecharger, streamLargeObjectInResponse } from '../api/rest/fichiers'
+import { getTitreLiaisons, postTitreLiaisons, removeTitre, titresAdministrations, titresONF, updateTitre, utilisateurTitreAbonner, getTitre, getUtilisateurTitreAbonner } from '../api/rest/titres'
 import {
   creerEntreprise,
   fiscalite,
@@ -20,10 +20,10 @@ import {
   deleteEntrepriseDocument,
   entrepriseDocumentDownload,
   getAllEntreprises,
-} from '../api/rest/entreprises.js'
-import { deleteUtilisateur, generateQgisToken, isSubscribedToNewsletter, manageNewsletterSubscription, moi, updateUtilisateurPermission, 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'
+} from '../api/rest/entreprises'
+import { deleteUtilisateur, generateQgisToken, isSubscribedToNewsletter, manageNewsletterSubscription, moi, updateUtilisateurPermission, utilisateurs } from '../api/rest/utilisateurs'
+import { logout, resetPassword } from '../api/rest/keycloak'
+import { getDGTMStats, getGranulatsMarinsStats, getGuyaneStats, getMinerauxMetauxMetropolesStats } from '../api/rest/statistiques/index'
 import {
   CaminoRestRoutes,
   DownloadFormat,
@@ -37,35 +37,25 @@ import {
   CaminoRestRoute,
   NewDownloadRestRoutes,
   NewPostRestRoutes,
-} from 'camino-common/src/rest.js'
-import { CaminoConfig, caminoConfigValidator } from 'camino-common/src/static/config.js'
-import { CaminoRequest, CustomResponse } from '../api/rest/express-type.js'
-import { User, UserNotNull } from 'camino-common/src/roles.js'
-import {
-  createEtape,
-  deleteEtape,
-  deposeEtape,
-  getEtape,
-  getEtapeAvis,
-  getEtapeDocuments,
-  getEtapeEntrepriseDocuments,
-  getEtapesTypesEtapesStatusWithMainStep,
-  updateEtape,
-} from '../api/rest/etapes.js'
+} from 'camino-common/src/rest'
+import { CaminoConfig, caminoConfigValidator } from 'camino-common/src/static/config'
+import { CaminoRequest, CustomResponse } from '../api/rest/express-type'
+import { User, UserNotNull } from 'camino-common/src/roles'
+import { createEtape, deleteEtape, deposeEtape, getEtape, getEtapeAvis, getEtapeDocuments, getEtapeEntrepriseDocuments, getEtapesTypesEtapesStatusWithMainStep, updateEtape } from '../api/rest/etapes'
 import { z } from 'zod'
-import { getCommunes } from '../api/rest/communes.js'
+import { getCommunes } from '../api/rest/communes'
 import { SendFileOptions } from 'express-serve-static-core'
-import { activiteDocumentDownload, getActivite, updateActivite, deleteActivite } from '../api/rest/activites.js'
-import { DeepReadonly, isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
-import { getDemarcheByIdOrSlug } from '../api/rest/demarches.js'
-import { geojsonImport, geojsonImportPoints, getPerimetreInfos, geojsonImportForages } from '../api/rest/perimetre.js'
-import { getDataGouvStats } from '../api/rest/statistiques/datagouv.js'
-import { addAdministrationActiviteTypeEmails, deleteAdministrationActiviteTypeEmails, getAdministrationActiviteTypeEmails, getAdministrationUtilisateurs } from '../api/rest/administrations.js'
-import { titreDemandeCreer } from '../api/rest/titre-demande.js'
-import { config } from '../config/index.js'
-import { addLog } from '../api/rest/logs.queries.js'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { zodParseEffect } from '../tools/fp-tools.js'
+import { activiteDocumentDownload, getActivite, updateActivite, deleteActivite } from '../api/rest/activites'
+import { DeepReadonly, isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
+import { getDemarcheByIdOrSlug } from '../api/rest/demarches'
+import { geojsonImport, geojsonImportPoints, getPerimetreInfos, geojsonImportForages } from '../api/rest/perimetre'
+import { getDataGouvStats } from '../api/rest/statistiques/datagouv'
+import { addAdministrationActiviteTypeEmails, deleteAdministrationActiviteTypeEmails, getAdministrationActiviteTypeEmails, getAdministrationUtilisateurs } from '../api/rest/administrations'
+import { titreDemandeCreer } from '../api/rest/titre-demande'
+import { config } from '../config/index'
+import { addLog } from '../api/rest/logs.queries'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { zodParseEffect } from '../tools/fp-tools'
 import { Cause, Effect, Exit, pipe } from 'effect'
 
 interface IRestResolverResult {
diff --git a/packages/api/src/server/upload.ts b/packages/api/src/server/upload.ts
index eec7f6c2daa694c14b5ce9cb9f14559166c76106..f676941de8b3164354a0370b3990ad53a203f424 100644
--- a/packages/api/src/server/upload.ts
+++ b/packages/api/src/server/upload.ts
@@ -1,13 +1,13 @@
 import express from 'express'
 import { CaminoRequest } from '../api/rest/express-type'
 
-import { isDefault } from 'camino-common/src/roles.js'
+import { isDefault } from 'camino-common/src/roles'
 import { Server, Upload } from '@tus/server'
 import { FileStore } from '@tus/file-store'
 import { IncomingMessage, ServerResponse } from 'node:http'
-import { isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { fileUploadTypeValidator } from 'camino-common/src/static/documentsTypes.js'
-import { isPdf } from '../tools/file-check.js'
+import { isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { fileUploadTypeValidator } from 'camino-common/src/static/documentsTypes'
+import { isPdf } from '../tools/file-check'
 import { unlinkSync } from 'node:fs'
 
 // Téléversement REST
diff --git a/packages/api/src/server/user-loader.ts b/packages/api/src/server/user-loader.ts
index 0c7d11022fbf1fe32184dfc030470d98a2f2461f..e894f2b49f9a98f3dc6436f6cc64bcd2c6995da2 100644
--- a/packages/api/src/server/user-loader.ts
+++ b/packages/api/src/server/user-loader.ts
@@ -1,14 +1,14 @@
 import express from 'express'
 import { Request as JWTRequest } from 'express-jwt'
-import { knex } from '../knex.js'
-import { userIdGenerate } from '../api/graphql/resolvers/utilisateurs.js'
-import { userByKeycloakIdGet, utilisateurCreate } from '../database/queries/utilisateurs.js'
-import { emailsSend, emailsWithTemplateSend } from '../tools/api-mailjet/emails.js'
-import { formatUser } from '../types.js'
-import { getCurrent } from 'camino-common/src/date.js'
-import { EmailTemplateId } from '../tools/api-mailjet/types.js'
-import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { config } from '../config/index.js'
+import { knex } from '../knex'
+import { userIdGenerate } from '../api/graphql/resolvers/utilisateurs'
+import { userByKeycloakIdGet, utilisateurCreate } from '../database/queries/utilisateurs'
+import { emailsSend, emailsWithTemplateSend } from '../tools/api-mailjet/emails'
+import { formatUser } from '../types'
+import { getCurrent } from 'camino-common/src/date'
+import { EmailTemplateId } from '../tools/api-mailjet/types'
+import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { config } from '../config/index'
 
 export type JWTUser = { email?: string; family_name?: string; given_name?: string; sub: string | undefined }
 export const userLoader = async (req: JWTRequest<{ email?: string; family_name?: string; given_name?: string; sub?: string }>, _res: express.Response, next: express.NextFunction) => {
diff --git a/packages/api/src/tools/activites/tests-creation.ts b/packages/api/src/tools/activites/tests-creation.ts
index 0a108dea37f67d6fb1dff8f254b6f2ed0ef1c701..852fa8b5a199e8a582c175fd5954b5b36d867c8f 100644
--- a/packages/api/src/tools/activites/tests-creation.ts
+++ b/packages/api/src/tools/activites/tests-creation.ts
@@ -1,9 +1,9 @@
-import '../../init.js'
+import '../../init'
 import { writeFileSync } from 'fs'
 import { z } from 'zod'
-import { knex } from '../../knex.js'
-import { Section, sectionValidator } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { ActiviteId } from 'camino-common/src/activite.js'
+import { knex } from '../../knex'
+import { Section, sectionValidator } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { ActiviteId } from 'camino-common/src/activite'
 
 const arraySectionValidator = z.array(sectionValidator)
 const writeActivitesSectionsForTest = async () => {
diff --git a/packages/api/src/tools/annees-build.test.ts b/packages/api/src/tools/annees-build.test.ts
index 6387dc52929abf4178f6fa536b673e9b06d40368..eeb735d440c2f0a956727c41842083c76b48cb46 100644
--- a/packages/api/src/tools/annees-build.test.ts
+++ b/packages/api/src/tools/annees-build.test.ts
@@ -1,4 +1,4 @@
-import { anneesBuild } from './annees-build.js'
+import { anneesBuild } from './annees-build'
 import { describe, expect, test } from 'vitest'
 describe('liste les années entre deux dates', () => {
   test("retourne un tableau d'années entre deux date", () => {
diff --git a/packages/api/src/tools/api-administrations/index.ts b/packages/api/src/tools/api-administrations/index.ts
index 2c18c0d59eef2bf4222ad494a3aff2f181a9c66f..988a26f9ecfa56112486b9f6c0869337ecfe74dc 100644
--- a/packages/api/src/tools/api-administrations/index.ts
+++ b/packages/api/src/tools/api-administrations/index.ts
@@ -1,8 +1,8 @@
 // https://etablissements-publics.api.gouv.fr
-import { DepartementId } from 'camino-common/src/static/departement.js'
-import { Administration, administrationIdValidator, administrationTypeIdValidator } from 'camino-common/src/static/administrations.js'
-import { config } from '../../config/index.js'
-import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
+import { DepartementId } from 'camino-common/src/static/departement'
+import { Administration, administrationIdValidator, administrationTypeIdValidator } from 'camino-common/src/static/administrations'
+import { config } from '../../config/index'
+import { isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
 
 const MAX_CALLS_MINUTE = 200
 
diff --git a/packages/api/src/tools/api-insee/fetch.test.ts b/packages/api/src/tools/api-insee/fetch.test.ts
index 591dad3a95d96df058b9fedca311b96a71c6d6e8..6a10a62f75339d8de24e21798f0a3658de82c0f5 100644
--- a/packages/api/src/tools/api-insee/fetch.test.ts
+++ b/packages/api/src/tools/api-insee/fetch.test.ts
@@ -1,6 +1,6 @@
-import { tokenInitialize } from './fetch.js'
+import { tokenInitialize } from './fetch'
 import { expect, test, vi } from 'vitest'
-import { dateAddDays, toCaminoDate } from 'camino-common/src/date.js'
+import { dateAddDays, toCaminoDate } from 'camino-common/src/date'
 
 test('tokenInitialize', async () => {
   const fetchMocked = vi.fn().mockImplementation(() => Promise.resolve({ access_token: 'token' }))
diff --git a/packages/api/src/tools/api-insee/fetch.ts b/packages/api/src/tools/api-insee/fetch.ts
index 0a07bbec19011f04f6285ea5d3694af6803db40e..2198b1200d38a7d432594863080a66becb798ad4 100644
--- a/packages/api/src/tools/api-insee/fetch.ts
+++ b/packages/api/src/tools/api-insee/fetch.ts
@@ -1,11 +1,11 @@
 // https://api.insee.fr/catalogue/site/themes/wso2/subthemes/insee/pages/item-info.jag?name=Sirene&version=V3.11&provider=insee
 /* eslint-disable @typescript-eslint/strict-boolean-expressions */
-import { IApiSirenQueryTypes, IApiSirenQueryToken, IApiSirenEtablissement, IApiSirenUniteLegale } from './types.js'
+import { IApiSirenQueryTypes, IApiSirenQueryToken, IApiSirenEtablissement, IApiSirenUniteLegale } from './types'
 
-import { CaminoDate, dateAddDays, daysBetween, getCurrent } from 'camino-common/src/date.js'
-import { Siren } from 'camino-common/src/entreprise.js'
-import { config } from '../../config/index.js'
-import { isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
+import { CaminoDate, dateAddDays, daysBetween, getCurrent } from 'camino-common/src/date'
+import { Siren } from 'camino-common/src/entreprise'
+import { config } from '../../config/index'
+import { isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from 'camino-common/src/typescript-tools'
 
 const MAX_CALLS_MINUTE = 30
 const MAX_RESULTS = 20
diff --git a/packages/api/src/tools/api-insee/format.ts b/packages/api/src/tools/api-insee/format.ts
index 8dfdfca81b835dc546e24b7bca05a83f0c0f0d53..c47a840f6480f6f2f9a779bc09a551cf55221c04 100644
--- a/packages/api/src/tools/api-insee/format.ts
+++ b/packages/api/src/tools/api-insee/format.ts
@@ -1,14 +1,14 @@
 /* eslint-disable @typescript-eslint/strict-boolean-expressions */
-import { IApiSirenEtablissement, IApiSirenUniteLegalePeriode, IApiSirenUnionUniteLegalePeriodeEtablissmentUnite, IApiSirenUnionUniteLegaleEtablissmentUnite, IApiSirenUniteLegale } from './types.js'
-import { IEntrepriseEtablissement, IEntreprise } from '../../types.js'
+import { IApiSirenEtablissement, IApiSirenUniteLegalePeriode, IApiSirenUnionUniteLegalePeriodeEtablissmentUnite, IApiSirenUnionUniteLegaleEtablissmentUnite, IApiSirenUniteLegale } from './types'
+import { IEntrepriseEtablissement, IEntreprise } from '../../types'
 
-import { pays as paysInsee } from './definitions/pays.js'
-import { categoriesJuridiques } from './definitions/categories-juridiques.js'
-import { voies } from './definitions/voies.js'
+import { pays as paysInsee } from './definitions/pays'
+import { categoriesJuridiques } from './definitions/categories-juridiques'
+import { voies } from './definitions/voies'
 
-import { checkCodePostal } from 'camino-common/src/static/departement.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
-import { entrepriseIdValidator } from 'camino-common/src/entreprise.js'
+import { checkCodePostal } from 'camino-common/src/static/departement'
+import { toCaminoDate } from 'camino-common/src/date'
+import { entrepriseIdValidator } from 'camino-common/src/entreprise'
 
 interface IApiSirenNomFormat extends IApiSirenUnionUniteLegalePeriodeEtablissmentUnite, IApiSirenUnionUniteLegaleEtablissmentUnite {}
 
diff --git a/packages/api/src/tools/api-insee/index.ts b/packages/api/src/tools/api-insee/index.ts
index 967ca69eb6b4c33f869953d51258f82d87e15d35..cf1529ebbe9a1a022d3f64e1afcc036d80b947b9 100644
--- a/packages/api/src/tools/api-insee/index.ts
+++ b/packages/api/src/tools/api-insee/index.ts
@@ -1,8 +1,8 @@
-import { entrepriseEtablissementsFormat, entrepriseFormat } from './format.js'
-import { entreprisesFetch, entreprisesEtablissementsFetch } from './fetch.js'
-import { IEntreprise, IEntrepriseEtablissement } from '../../types.js'
-import { Siren } from 'camino-common/src/entreprise.js'
-import { isNotNullNorUndefined, isNullOrUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools.js'
+import { entrepriseEtablissementsFormat, entrepriseFormat } from './format'
+import { entreprisesFetch, entreprisesEtablissementsFetch } from './fetch'
+import { IEntreprise, IEntrepriseEtablissement } from '../../types'
+import { Siren } from 'camino-common/src/entreprise'
+import { isNotNullNorUndefined, isNullOrUndefined, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools'
 
 // cherche les établissements des entreprises
 // retourne des objets du modèle EntrepriseEtablissements
diff --git a/packages/api/src/tools/api-mailjet/emails.ts b/packages/api/src/tools/api-mailjet/emails.ts
index ac9b0e8e907f1769e2b9253fdfde721cd89fb328..ab43ead9c47cf9dee24623ad530b728c37db11ef 100644
--- a/packages/api/src/tools/api-mailjet/emails.ts
+++ b/packages/api/src/tools/api-mailjet/emails.ts
@@ -1,8 +1,8 @@
 import { convert } from 'html-to-text'
-import { mailjet } from './index.js'
-import { EmailTemplateId } from './types.js'
-import { emailCheck } from '../email-check.js'
-import { config } from '../../config/index.js'
+import { mailjet } from './index'
+import { EmailTemplateId } from './types'
+import { emailCheck } from '../email-check'
+import { config } from '../../config/index'
 
 const from = {
   email: config().API_MAILJET_EMAIL,
diff --git a/packages/api/src/tools/api-mailjet/index.ts b/packages/api/src/tools/api-mailjet/index.ts
index cc4b8a13436c6c0d6911079fe331f6811780c712..65e84a0849e6e73deac5431b1d8383f4e9deb133 100644
--- a/packages/api/src/tools/api-mailjet/index.ts
+++ b/packages/api/src/tools/api-mailjet/index.ts
@@ -1,5 +1,5 @@
 import Mailjet from 'node-mailjet'
-import { config } from '../../config/index.js'
+import { config } from '../../config/index'
 
 // eslint-disable-next-line new-cap
 export const mailjet = new Mailjet({
diff --git a/packages/api/src/tools/api-mailjet/newsletter.ts b/packages/api/src/tools/api-mailjet/newsletter.ts
index 85413bfd322c47d583faf1c692fc671b723c6e7f..faf042dcfb7852dd20a79ab3744c82acddda0967 100644
--- a/packages/api/src/tools/api-mailjet/newsletter.ts
+++ b/packages/api/src/tools/api-mailjet/newsletter.ts
@@ -1,6 +1,6 @@
-import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { config } from '../../config/index.js'
-import { mailjet } from './index.js'
+import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { config } from '../../config/index'
+import { mailjet } from './index'
 
 interface IContactListAdd {
   ListID: number
diff --git a/packages/api/src/tools/api-openfisca/index.ts b/packages/api/src/tools/api-openfisca/index.ts
index 14af035f7d099fc3c4e7ae6d5192fe70d81a43a4..86459783e377c31a8158750b98930fe0f1b4b778 100644
--- a/packages/api/src/tools/api-openfisca/index.ts
+++ b/packages/api/src/tools/api-openfisca/index.ts
@@ -1,7 +1,7 @@
-import { SubstanceFiscale, SubstanceFiscaleId, SubstancesFiscales } from 'camino-common/src/static/substancesFiscales.js'
-import { Unite, Unites } from 'camino-common/src/static/unites.js'
+import { SubstanceFiscale, SubstanceFiscaleId, SubstancesFiscales } from 'camino-common/src/static/substancesFiscales'
+import { Unite, Unites } from 'camino-common/src/static/unites'
 import Decimal from 'decimal.js'
-import { config } from '../../config/index.js'
+import { config } from '../../config/index'
 type Attribute = 'surface_communale' | 'surface_communale_proportionnee' | 'taxe_guyane_brute' | 'taxe_guyane_deduction' | 'taxe_guyane' | string
 
 const openfiscaSubstanceFiscaleNom = (substanceFiscale: SubstanceFiscale): string => substanceFiscale.openFisca?.nom ?? substanceFiscale.nom
diff --git a/packages/api/src/tools/demarches/definitions-check.ts b/packages/api/src/tools/demarches/definitions-check.ts
index 94c542932b7632afc97cb097d4b02dc95edcabc6..d4c98e214066613668cc5f7c4162b65bcffd2230 100644
--- a/packages/api/src/tools/demarches/definitions-check.ts
+++ b/packages/api/src/tools/demarches/definitions-check.ts
@@ -1,7 +1,7 @@
-import { demarchesDefinitions } 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'
+import { demarchesDefinitions } from '../../business/rules-demarches/definitions'
+import { titresDemarchesGet } from '../../database/queries/titres-demarches'
+import { titreDemarcheUpdatedEtatValidate } from '../../business/validations/titre-demarche-etat-validate'
+import { userSuper } from '../../database/user-super'
 
 const demarchesValidate = async () => {
   const errors = [] as string[]
diff --git a/packages/api/src/tools/demarches/tde-check.ts b/packages/api/src/tools/demarches/tde-check.ts
index a4ead88b9337e5efd2317c16106588a7a5f2b486..7dc87fe59df487b5c0eb6694bbd054903d6db34c 100644
--- a/packages/api/src/tools/demarches/tde-check.ts
+++ b/packages/api/src/tools/demarches/tde-check.ts
@@ -1,8 +1,8 @@
-import { EtapesTypes } from 'camino-common/src/static/etapesTypes.js'
-import { isTDEExist } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/index.js'
-import { demarcheDefinitionFind } from '../../business/rules-demarches/definitions.js'
-import { titresDemarchesGet } from '../../database/queries/titres-demarches.js'
-import { userSuper } from '../../database/user-super.js'
+import { EtapesTypes } from 'camino-common/src/static/etapesTypes'
+import { isTDEExist } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/index'
+import { demarcheDefinitionFind } from '../../business/rules-demarches/definitions'
+import { titresDemarchesGet } from '../../database/queries/titres-demarches'
+import { userSuper } from '../../database/user-super'
 
 export const titreTypeDemarcheTypeEtapeTypeCheck = async () => {
   console.info()
diff --git a/packages/api/src/tools/demarches/tests-creation.ts b/packages/api/src/tools/demarches/tests-creation.ts
index f94fdd62ed593f3ec9217ebbd004b0b0e8ec04f7..93989908f6bdfce7428497d54ba8b0e0629170b8 100644
--- a/packages/api/src/tools/demarches/tests-creation.ts
+++ b/packages/api/src/tools/demarches/tests-creation.ts
@@ -1,16 +1,16 @@
-import '../../init.js'
+import '../../init'
 
-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 { titresDemarchesGet } from '../../database/queries/titres-demarches'
+import { userSuper } from '../../database/user-super'
+import { titreDemarcheDepotDemandeDateFind } from '../../business/rules/titre-demarche-depot-demande-date-find'
 import { mkdirSync, writeFileSync } from 'fs'
-import { Etape, titreEtapeForMachineValidator, toMachineEtapes } from '../../business/rules-demarches/machine-common.js'
-import { demarchesDefinitions } 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'
-import { toCommuneId } from 'camino-common/src/static/communes.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools.js'
-import { getDomaineId, getTitreTypeType } from 'camino-common/src/static/titresTypes.js'
+import { Etape, titreEtapeForMachineValidator, toMachineEtapes } from '../../business/rules-demarches/machine-common'
+import { demarchesDefinitions } from '../../business/rules-demarches/definitions'
+import { dateAddDays, daysBetween, setDayInMonth } from 'camino-common/src/date'
+import { ETAPES_TYPES } from 'camino-common/src/static/etapesTypes'
+import { toCommuneId } from 'camino-common/src/static/communes'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefinedOrEmpty } from 'camino-common/src/typescript-tools'
+import { getDomaineId, getTitreTypeType } from 'camino-common/src/static/titresTypes'
 
 const writeEtapesForTest = async () => {
   for (const demarcheDefinition of demarchesDefinitions) {
diff --git a/packages/api/src/tools/file-check.test.ts b/packages/api/src/tools/file-check.test.ts
index 6ca0beceb03febb221de8e711b9983309a23e530..067605c5bfc4faf673a8f25c01f2caacbbb605e6 100644
--- a/packages/api/src/tools/file-check.test.ts
+++ b/packages/api/src/tools/file-check.test.ts
@@ -1,5 +1,5 @@
 import { vi, expect, test } from 'vitest'
-import { isPdf } from './file-check.js'
+import { isPdf } from './file-check'
 
 console.error = vi.fn()
 console.info = vi.fn()
diff --git a/packages/api/src/tools/fp-tools.ts b/packages/api/src/tools/fp-tools.ts
index 09c58988f1a01ce34480610eaf66c01e95f0d9fb..75028d6787442d4454837e71b0bde9438f6b7a53 100644
--- a/packages/api/src/tools/fp-tools.ts
+++ b/packages/api/src/tools/fp-tools.ts
@@ -1,4 +1,4 @@
-import { CaminoError, CaminoZodErrorReadableMessage, translateIssue } from 'camino-common/src/zod-tools.js'
+import { CaminoError, CaminoZodErrorReadableMessage, translateIssue } from 'camino-common/src/zod-tools'
 import { Cause, Effect, Exit, pipe } from 'effect'
 import { ZodTypeAny } from 'zod'
 import { fromError, isZodErrorLike } from 'zod-validation-error'
diff --git a/packages/api/src/tools/index.test.ts b/packages/api/src/tools/index.test.ts
index 8099bb8fac876cccb5db480994809ceb22e65110..9fbb0ce784973e33d041630e7e58a0e2e6971db8 100644
--- a/packages/api/src/tools/index.test.ts
+++ b/packages/api/src/tools/index.test.ts
@@ -1,4 +1,4 @@
-import { objectsDiffer, dupFind, objectClone } from './index.js'
+import { objectsDiffer, dupFind, objectClone } from './index'
 import { describe, expect, test } from 'vitest'
 describe('comparaison entre des objets', () => {
   test('retourne false si les objets sont identiques (dates)', () => {
diff --git a/packages/api/src/tools/index.ts b/packages/api/src/tools/index.ts
index 3883e147fa15172622bd8b3edd56bb57aab8ad03..c9cf1a3e5b2ec0b58751687a6dfc01d1066125e5 100644
--- a/packages/api/src/tools/index.ts
+++ b/packages/api/src/tools/index.ts
@@ -1,6 +1,6 @@
 import { serialize, deserialize } from 'v8'
 
-import { Index } from '../types.js'
+import { Index } from '../types'
 
 export const equalStringArrays = (arr1: string[], arr2: string[]): boolean =>
   arr1.length === arr2.length &&
diff --git a/packages/api/src/tools/phases/tests-creation.ts b/packages/api/src/tools/phases/tests-creation.ts
index 3cb8dacb24e210364ceaee574a686b51e5497fe0..8006e4ffd1dc3b4ad07fbca3f1a8884a515b34a9 100644
--- a/packages/api/src/tools/phases/tests-creation.ts
+++ b/packages/api/src/tools/phases/tests-creation.ts
@@ -1,20 +1,20 @@
-import '../../init.js'
+import '../../init'
 import { writeFileSync } from 'fs'
 
-import { knex } from '../../knex.js'
-import { TitrePhasesTest } from '../../business/rules/titre-phases-find.test.js'
-import { CaminoDate } from 'camino-common/src/date.js'
-import { DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts.js'
-import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
-import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { DemarcheId } from 'camino-common/src/demarche.js'
-import { newDemarcheId, newTitreId } from '../../database/models/_format/id-create.js'
-import { TitreDemarchePhaseFind, TitreEtapePhaseFind } from '../../business/rules/titre-phases-find.js'
-import { TitreId } from 'camino-common/src/validators/titres.js'
-import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { EtapeBrouillon } from 'camino-common/src/etape.js'
+import { knex } from '../../knex'
+import { TitrePhasesTest } from '../../business/rules/titre-phases-find.test'
+import { CaminoDate } from 'camino-common/src/date'
+import { DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts'
+import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { DemarcheId } from 'camino-common/src/demarche'
+import { newDemarcheId, newTitreId } from '../../database/models/_format/id-create'
+import { TitreDemarchePhaseFind, TitreEtapePhaseFind } from '../../business/rules/titre-phases-find'
+import { TitreId } from 'camino-common/src/validators/titres'
+import { isNotNullNorUndefined, isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { EtapeBrouillon } from 'camino-common/src/etape'
 
 const writePhasesForTest = async () => {
   const demarches: {
diff --git a/packages/api/src/tools/territoires-update.ts b/packages/api/src/tools/territoires-update.ts
index dae6e7981e94247283dc492a0a6a6c903d2b6092..0a2f942ba3e618584823754c8f3e275b929d6551 100644
--- a/packages/api/src/tools/territoires-update.ts
+++ b/packages/api/src/tools/territoires-update.ts
@@ -1,16 +1,16 @@
 /* eslint-disable sql/no-unsafe-query */
-import '../init.js'
-import { knex } from '../knex.js'
-import Communes from '../database/models/communes.js'
+import '../init'
+import { knex } from '../knex'
+import Communes from '../database/models/communes'
 import JSZip from 'jszip'
 import { Readable } from 'node:stream'
-import { SDOMZoneId, SDOMZoneIds } from 'camino-common/src/static/sdom.js'
-import { assertsFacade, assertsSecteur, secteurAJour } from 'camino-common/src/static/facades.js'
+import { SDOMZoneId, SDOMZoneIds } from 'camino-common/src/static/sdom'
+import { assertsFacade, assertsSecteur, secteurAJour } from 'camino-common/src/static/facades'
 import { createRequire } from 'node:module'
-import { ForetId, ForetIds, Forets, foretIdValidator } from 'camino-common/src/static/forets.js'
+import { ForetId, ForetIds, Forets, foretIdValidator } from 'camino-common/src/static/forets'
 import { Pool } from 'pg'
-import { insertCommune } from '../database/queries/communes.queries.js'
-import { toCommuneId } from 'camino-common/src/static/communes.js'
+import { insertCommune } from '../database/queries/communes.queries'
+import { toCommuneId } from 'camino-common/src/static/communes'
 
 const require = createRequire(import.meta.url)
 const { streamArray } = require('stream-json/streamers/StreamArray')
diff --git a/packages/api/src/types.ts b/packages/api/src/types.ts
index f4d82e89eba018c2fadd504646df9bdd10a493c9..a7023adaa4e88320b00d20e6e0685a691cf685ba 100644
--- a/packages/api/src/types.ts
+++ b/packages/api/src/types.ts
@@ -1,30 +1,30 @@
-import { AdministrationId } from 'camino-common/src/static/administrations.js'
-import { CodePostal } from 'camino-common/src/static/departement.js'
-import { BaseUserNotNull, isAdministrationRole, isEntrepriseOrBureauDetudeRole, Role, User, UserNotNull, UtilisateurId } from 'camino-common/src/roles.js'
-import { TitreTypeId } from 'camino-common/src/static/titresTypes.js'
-import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes.js'
-import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts.js'
-import { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { SubstanceLegaleId } from 'camino-common/src/static/substancesLegales.js'
-import { DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts.js'
-import { TitreStatutId } from 'camino-common/src/static/titresStatuts.js'
-import { TitreReference } from 'camino-common/src/titres-references.js'
-import { SecteursMaritimes } from 'camino-common/src/static/facades.js'
-import { CaminoDate } from 'camino-common/src/date.js'
-import { EntrepriseDocumentId, EntrepriseId } from 'camino-common/src/entreprise.js'
-import { DeepReadonly, isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
-import { SDOMZoneId } from 'camino-common/src/static/sdom.js'
-import { ActivitesStatutId } from 'camino-common/src/static/activitesStatuts.js'
-import { DemarcheId, DemarcheSlug } from 'camino-common/src/demarche.js'
+import { AdministrationId } from 'camino-common/src/static/administrations'
+import { CodePostal } from 'camino-common/src/static/departement'
+import { BaseUserNotNull, isAdministrationRole, isEntrepriseOrBureauDetudeRole, Role, User, UserNotNull, UtilisateurId } from 'camino-common/src/roles'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { DemarcheTypeId } from 'camino-common/src/static/demarchesTypes'
+import { EtapeStatutId } from 'camino-common/src/static/etapesStatuts'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { SubstanceLegaleId } from 'camino-common/src/static/substancesLegales'
+import { DemarcheStatutId } from 'camino-common/src/static/demarchesStatuts'
+import { TitreStatutId } from 'camino-common/src/static/titresStatuts'
+import { TitreReference } from 'camino-common/src/titres-references'
+import { SecteursMaritimes } from 'camino-common/src/static/facades'
+import { CaminoDate } from 'camino-common/src/date'
+import { EntrepriseDocumentId, EntrepriseId } from 'camino-common/src/entreprise'
+import { DeepReadonly, isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
+import { SDOMZoneId } from 'camino-common/src/static/sdom'
+import { ActivitesStatutId } from 'camino-common/src/static/activitesStatuts'
+import { DemarcheId, DemarcheSlug } from 'camino-common/src/demarche'
 import type { Pool } from 'pg'
-import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { ActivitesTypesId } from 'camino-common/src/static/activitesTypes.js'
-import { CommuneId } from 'camino-common/src/static/communes.js'
-import { ForetId } from 'camino-common/src/static/forets.js'
-import { TitreId, TitreSlug } from 'camino-common/src/validators/titres.js'
+import { Section } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { ActivitesTypesId } from 'camino-common/src/static/activitesTypes'
+import { CommuneId } from 'camino-common/src/static/communes'
+import { ForetId } from 'camino-common/src/static/forets'
+import { TitreId, TitreSlug } from 'camino-common/src/validators/titres'
 import { EtapeBrouillon, EtapeId, EtapeNote, EtapeSlug } from 'camino-common/src/etape'
-import { ActiviteId } from 'camino-common/src/activite.js'
-import { FeatureCollectionForages, FeatureCollectionPoints, FeatureMultiPolygon, GeojsonPoint, MultiPolygon } from 'camino-common/src/perimetre.js'
+import { ActiviteId } from 'camino-common/src/activite'
+import { FeatureCollectionForages, FeatureCollectionPoints, FeatureMultiPolygon, GeojsonPoint, MultiPolygon } from 'camino-common/src/perimetre'
 import { EtapeHeritageProps } from 'camino-common/src/heritage'
 import { GeoSystemeId } from 'camino-common/src/static/geoSystemes'
 import { ElementWithValue } from 'camino-common/src/sections'
diff --git a/packages/api/tests/__mocks__/fetch-insee-api.ts b/packages/api/tests/__mocks__/fetch-insee-api.ts
index 5797e1a97a616a9c50993e742e22997b51baf6b1..dedb191a5e7b3d4e6c28aa9f9d1612a62fba43db 100644
--- a/packages/api/tests/__mocks__/fetch-insee-api.ts
+++ b/packages/api/tests/__mocks__/fetch-insee-api.ts
@@ -1,5 +1,5 @@
-import { sirenValidator } from 'camino-common/src/entreprise.js'
-import { IApiSirenEtablissement, IApiSirenUniteLegale } from '../../src/tools/api-insee/types.js'
+import { sirenValidator } from 'camino-common/src/entreprise'
+import { IApiSirenEtablissement, IApiSirenUniteLegale } from '../../src/tools/api-insee/types'
 
 const entreprise = {
   siren: sirenValidator.parse('729800706'),
diff --git a/packages/api/tests/_utils/administrations-permissions.ts b/packages/api/tests/_utils/administrations-permissions.ts
index eeca36f2f619c538e4a4a46d63cad9e342ebf956..d6cb1fe8492376f9031ff94e09f1a28d6884fa5c 100644
--- a/packages/api/tests/_utils/administrations-permissions.ts
+++ b/packages/api/tests/_utils/administrations-permissions.ts
@@ -1,33 +1,33 @@
 /* eslint-disable @typescript-eslint/strict-boolean-expressions */
-import { ITitre } from '../../src/types.js'
+import { ITitre } from '../../src/types'
 
-import { graphQLCall, queryImport, restPostCall } from './index.js'
+import { graphQLCall, queryImport, restPostCall } from './index'
 
-import Titres from '../../src/database/models/titres.js'
-import options from '../../src/database/queries/_options.js'
-import { newDemarcheId, newTitreId, newEtapeId, idGenerate } 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 { EtapeTypeId } from 'camino-common/src/static/etapesTypes.js'
-import { toCaminoDate } from 'camino-common/src/date.js'
+import Titres from '../../src/database/models/titres'
+import options from '../../src/database/queries/_options'
+import { newDemarcheId, newTitreId, newEtapeId, idGenerate } from '../../src/database/models/_format/id-create'
+import { TitreTypeId } from 'camino-common/src/static/titresTypes'
+import { getDocuments } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/documents'
+import { EtapeTypeId } from 'camino-common/src/static/etapesTypes'
+import { toCaminoDate } from 'camino-common/src/date'
 import { expect } from 'vitest'
-import { AdministrationId, sortedAdministrations } from 'camino-common/src/static/administrations.js'
-import { TestUser } from 'camino-common/src/tests-utils.js'
+import { AdministrationId, sortedAdministrations } from 'camino-common/src/static/administrations'
+import { TestUser } from 'camino-common/src/tests-utils'
 import type { Pool } from 'pg'
-import { getSections } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { TitreId } from 'camino-common/src/validators/titres.js'
-import TitresDemarches from '../../src/database/models/titres-demarches.js'
-import { GEO_SYSTEME_IDS } from 'camino-common/src/static/geoSystemes.js'
-import { DocumentTypeId } from 'camino-common/src/static/documentsTypes.js'
+import { getSections } from 'camino-common/src/static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { TitreId } from 'camino-common/src/validators/titres'
+import TitresDemarches from '../../src/database/models/titres-demarches'
+import { GEO_SYSTEME_IDS } from 'camino-common/src/static/geoSystemes'
+import { DocumentTypeId } from 'camino-common/src/static/documentsTypes'
 import { copyFileSync, mkdirSync } from 'node:fs'
-import { ETAPE_IS_NOT_BROUILLON, TempEtapeDocument } from 'camino-common/src/etape.js'
-import { tempDocumentNameValidator } from 'camino-common/src/document.js'
-import { userSuper } from '../../src/database/user-super.js'
-import { defaultHeritageProps } from 'camino-common/src/etape-form.js'
-import { isNullOrUndefined } from 'camino-common/src/typescript-tools.js'
-import { HTTP_STATUS } from 'camino-common/src/http.js'
-import { entrepriseIdValidator } from 'camino-common/src/entreprise.js'
-import { titreCreate } from '../../src/database/queries/titres.js'
+import { ETAPE_IS_NOT_BROUILLON, TempEtapeDocument } from 'camino-common/src/etape'
+import { tempDocumentNameValidator } from 'camino-common/src/document'
+import { userSuper } from '../../src/database/user-super'
+import { defaultHeritageProps } from 'camino-common/src/etape-form'
+import { isNullOrUndefined } from 'camino-common/src/typescript-tools'
+import { HTTP_STATUS } from 'camino-common/src/http'
+import { entrepriseIdValidator } from 'camino-common/src/entreprise'
+import { titreCreate } from '../../src/database/queries/titres'
 
 const dir = `${process.cwd()}/files/tmp/`
 
diff --git a/packages/api/tests/_utils/index.ts b/packages/api/tests/_utils/index.ts
index 7442b45e40f433f2263d5129e1c83db991974062..c28746b072e329703ee627e8c08d3b9ca75b0af3 100644
--- a/packages/api/tests/_utils/index.ts
+++ b/packages/api/tests/_utils/index.ts
@@ -3,20 +3,20 @@ import path from 'path'
 import jwt from 'jsonwebtoken'
 import request from 'supertest'
 import type { Pool } from 'pg'
-import { Index, IUtilisateur } from '../../src/types.js'
+import { Index, IUtilisateur } from '../../src/types'
 
-import { app } from '../app.js'
+import { app } from '../app'
 import { utilisateurCreate, utilisateurGet } from '../../src/database/queries/utilisateurs'
 import { userSuper } from '../../src/database/user-super'
-import { AdminUserNotNull, isAdministrationRole, isSuperRole, UserNotNull } from 'camino-common/src/roles.js'
-import { TestUser } from 'camino-common/src/tests-utils.js'
-import { getCurrent } from 'camino-common/src/date.js'
-import { CaminoRestRoutes, DeleteRestRoutes, getRestRoute, GetRestRoutes, PostRestRoutes, PutRestRoutes, CaminoRestParams, DownloadRestRoutes, NewPostRestRoutes } from 'camino-common/src/rest.js'
+import { AdminUserNotNull, isAdministrationRole, isSuperRole, UserNotNull } from 'camino-common/src/roles'
+import { TestUser } from 'camino-common/src/tests-utils'
+import { getCurrent } from 'camino-common/src/date'
+import { CaminoRestRoutes, DeleteRestRoutes, getRestRoute, GetRestRoutes, PostRestRoutes, PutRestRoutes, CaminoRestParams, DownloadRestRoutes, NewPostRestRoutes } from 'camino-common/src/rest'
 import { z } from 'zod'
-import { newUtilisateurId } from '../../src/database/models/_format/id-create.js'
-import { idUserKeycloakRecognised } from '../keycloak.js'
-import { DeepReadonly, isNotNullNorUndefined } from 'camino-common/src/typescript-tools.js'
-import { config } from '../../src/config/index.js'
+import { newUtilisateurId } from '../../src/database/models/_format/id-create'
+import { idUserKeycloakRecognised } from '../keycloak'
+import { DeepReadonly, isNotNullNorUndefined } from 'camino-common/src/typescript-tools'
+import { config } from '../../src/config/index'
 
 export const queryImport = (nom: string) =>
   fs
diff --git a/packages/api/tests/app.ts b/packages/api/tests/app.ts
index 08f032b3ea9b8a6ec075e95611aeea080223b5fe..5e3bae12429290bf7b6e2eb6a77ec9ef38ed84ae 100644
--- a/packages/api/tests/app.ts
+++ b/packages/api/tests/app.ts
@@ -1,9 +1,9 @@
 import express from 'express'
 import type { Pool } from 'pg'
-import { graphql } from '../src/server/graphql.js'
-import { authJwt } from '../src/server/auth-jwt.js'
-import { restUpload, uploadAllowedMiddleware } from '../src/server/upload.js'
-import { restWithPool } from '../src/server/rest.js'
+import { graphql } from '../src/server/graphql'
+import { authJwt } from '../src/server/auth-jwt'
+import { restUpload, uploadAllowedMiddleware } from '../src/server/upload'
+import { restWithPool } from '../src/server/rest'
 import qs from 'qs'
 export const app = (dbPool: Pool) => {
   const app = express()
diff --git a/packages/api/tests/db-manager.ts b/packages/api/tests/db-manager.ts
index 499217d5685fd3fafa6ecf1765f8cd9770814e4f..8476cfb0f3fe64a95c25712acbd84312dc635854 100644
--- a/packages/api/tests/db-manager.ts
+++ b/packages/api/tests/db-manager.ts
@@ -1,12 +1,12 @@
 /* eslint-disable sql/no-unsafe-query */
 import { join } from 'path'
 
-import { idGenerate } from '../src/database/models/_format/id-create.js'
-import { knexInstanceSet } from '../src/knex.js'
+import { idGenerate } from '../src/database/models/_format/id-create'
+import { knexInstanceSet } from '../src/knex'
 import knex, { Knex } from 'knex'
 import pg, { Client } from 'pg'
 import { knexSnakeCaseMappers, Model } from 'objection'
-import { config } from '../src/config/index.js'
+import { config } from '../src/config/index'
 import { spawnSync } from 'node:child_process'
 
 class DbManager {
diff --git a/packages/api/tsconfig.json b/packages/api/tsconfig.json
index 34ab260f8d7ca6b57750b682e1457233a48beadb..1bc200872d1f4de7b623a11070e66e7477de1e1e 100644
--- a/packages/api/tsconfig.json
+++ b/packages/api/tsconfig.json
@@ -1,6 +1,7 @@
 {
   "ts-node": {
-    "swc": true
+    "swc": true,
+    "experimentalSpecifierResolution": "node"
   },
   "compilerOptions": {
     "allowJs": false,
@@ -9,8 +10,8 @@
     "esModuleInterop": true,
     "inlineSources": false,
     "lib": ["es2020", "dom", "ESNext.Array"],
-    "module": "ES2020",
-    "moduleResolution": "Bundler",
+    "module": "ESNext",
+    "moduleResolution": "Node",
     "noFallthroughCasesInSwitch": true,
     "noImplicitAny": true,
     "noImplicitReturns": true,
@@ -25,7 +26,8 @@
     "noEmit": true,
     "paths": {
       "graphql-fields": ["./src/@types/graphql-fields"],
-      "html-to-text": ["./src/@types/html-to-text"]
+      "html-to-text": ["./src/@types/html-to-text"],
+      "rollup/parseAst": ["../../node_modules/rollup/dist/parseAst"]
     },
   }
 }
diff --git a/packages/common/src/activite.ts b/packages/common/src/activite.ts
index 0382fba3d0ae8199c9e7cfb5934cae577643724b..6240904452e0c116de66e3c1f3020bb3e39b9f24 100644
--- a/packages/common/src/activite.ts
+++ b/packages/common/src/activite.ts
@@ -1,10 +1,10 @@
 import { z } from 'zod'
-import { caminoAnneeValidator, caminoDateValidator } from './date.js'
-import { activiteDocumentTypeIdValidator } from './static/documentsTypes.js'
-import { sectionWithValueValidator } from './sections.js'
-import { activiteStatutIdValidator } from './static/activitesStatuts.js'
-import { activiteTypeIdValidator } from './static/activitesTypes.js'
-import { tempDocumentNameValidator } from './document.js'
+import { caminoAnneeValidator, caminoDateValidator } from './date'
+import { activiteDocumentTypeIdValidator } from './static/documentsTypes'
+import { sectionWithValueValidator } from './sections'
+import { activiteStatutIdValidator } from './static/activitesStatuts'
+import { activiteTypeIdValidator } from './static/activitesTypes'
+import { tempDocumentNameValidator } from './document'
 
 export const activiteSlugValidator = z.string().brand<'ActiviteSlug'>()
 
diff --git a/packages/common/src/administrations.ts b/packages/common/src/administrations.ts
index 623d3b374d855133895080a878c80ff6d64abaaa..662347e7413f14a571ee33be690ef0b8949fe09b 100644
--- a/packages/common/src/administrations.ts
+++ b/packages/common/src/administrations.ts
@@ -1,9 +1,9 @@
-import { Administration, AdministrationId, sortedAdministrations } from './static/administrations.js'
-import { CommuneId } from './static/communes.js'
-import { DepartementId, Departements, toDepartementId } from './static/departement.js'
-import { SecteursMaritimes, getDepartementsBySecteurs } from './static/facades.js'
-import { onlyUnique, isNullOrUndefined, isNotNullNorUndefinedNorEmpty } from './typescript-tools.js'
-import { activiteTypeIdValidator } from './static/activitesTypes.js'
+import { Administration, AdministrationId, sortedAdministrations } from './static/administrations'
+import { CommuneId } from './static/communes'
+import { DepartementId, Departements, toDepartementId } from './static/departement'
+import { SecteursMaritimes, getDepartementsBySecteurs } from './static/facades'
+import { onlyUnique, isNullOrUndefined, isNotNullNorUndefinedNorEmpty } from './typescript-tools'
+import { activiteTypeIdValidator } from './static/activitesTypes'
 import { z } from 'zod'
 
 // calcule tous les départements d'une étape
diff --git a/packages/common/src/date.test.ts b/packages/common/src/date.test.ts
index a5130a71df70d8e8078641cbcff3df47293ed7f1..3cdb1096cf4bc85d6594a259e597c5cff2842184 100644
--- a/packages/common/src/date.test.ts
+++ b/packages/common/src/date.test.ts
@@ -14,7 +14,7 @@ import {
   isBefore,
   intervalleAnnees,
   caminoDateValidator,
-} from './date.js'
+} from './date'
 import { test, expect } from 'vitest'
 
 test('toCaminoDate', () => {
diff --git a/packages/common/src/date.ts b/packages/common/src/date.ts
index 16a9fc5bebec751b38bd4bf905651717f6ec00e6..c134dcbc48649c62de1dbf2af62d26dcf8cc6e03 100644
--- a/packages/common/src/date.ts
+++ b/packages/common/src/date.ts
@@ -1,5 +1,5 @@
 import { z } from 'zod'
-import { isNullOrUndefined, isNullOrUndefinedOrEmpty } from './typescript-tools.js'
+import { isNullOrUndefined, isNullOrUndefinedOrEmpty } from './typescript-tools'
 
 const datesDiffInDays = (a: Date, b: Date) => {
   const utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate())
diff --git a/packages/common/src/demarche.test.ts b/packages/common/src/demarche.test.ts
index e22e77104eade69c2af356060cb3d3a702bc6213..98c552ee85240c08eb30e62fd4533688a8471947 100644
--- a/packages/common/src/demarche.test.ts
+++ b/packages/common/src/demarche.test.ts
@@ -1,7 +1,7 @@
 /* eslint-disable no-irregular-whitespace */
 import { test, expect } from 'vitest'
-import { getDemarcheContenu } from './demarche.js'
-import { proprietesGeothermieForagesElementIds } from './static/titresTypes_demarchesTypes_etapesTypes/sections.js'
+import { getDemarcheContenu } from './demarche'
+import { proprietesGeothermieForagesElementIds } from './static/titresTypes_demarchesTypes_etapesTypes/sections'
 
 test('getDemarcheContenu arm', () => {
   expect(
diff --git a/packages/common/src/demarche.ts b/packages/common/src/demarche.ts
index 649a8ebeb138a55e7ce5f566869888d9fa3190e2..8d3ea0f159f88d5d4a75cdba1e22a1028088ea1b 100644
--- a/packages/common/src/demarche.ts
+++ b/packages/common/src/demarche.ts
@@ -1,25 +1,25 @@
 import { z } from 'zod'
-import { TITRES_TYPES_IDS, TitreTypeId, getTitreTypeType } from './static/titresTypes.js'
-import { caminoDateValidator } from './date.js'
-import { communeIdValidator } from './static/communes.js'
-import { secteurMaritimeValidator } from './static/facades.js'
-import { substanceLegaleIdValidator } from './static/substancesLegales.js'
-import { entrepriseIdValidator, etapeEntrepriseDocumentValidator } from './entreprise.js'
-import { EtapeTypeId, etapeTypeIdFondamentaleValidator, etapeTypeIdNonFondamentaleValidator } from './static/etapesTypes.js'
-import { etapeStatutIdValidator } from './static/etapesStatuts.js'
-import { sectionWithValueValidator } from './sections.js'
-import { etapeAvisValidator, etapeBrouillonValidator, etapeDocumentValidator, etapeIdValidator, etapeNoteValidator, etapeSlugValidator } from './etape.js'
-import { sdomZoneIdValidator } from './static/sdom.js'
-import { km2Validator, numberFormat } from './number.js'
-import { DeviseId, deviseIdValidator, DEVISES_IDS, Devises } from './static/devise.js'
-import { TITRES_TYPES_TYPES_IDS } from './static/titresTypesTypes.js'
-import { UniteId, uniteIdValidator, UNITE_IDS, Unites } from './static/unites.js'
-import { capitalize } from './strings.js'
-import { foretIdValidator } from './static/forets.js'
-import { featureCollectionForagesValidator, featureCollectionPointsValidator, featureMultiPolygonValidator } from './perimetre.js'
-import { geoSystemeIdValidator } from './static/geoSystemes.js'
-import { isNotNullNorUndefined } from './typescript-tools.js'
-import { proprietesGeothermieForagesElementIds } from './static/titresTypes_demarchesTypes_etapesTypes/sections.js'
+import { TITRES_TYPES_IDS, TitreTypeId, getTitreTypeType } from './static/titresTypes'
+import { caminoDateValidator } from './date'
+import { communeIdValidator } from './static/communes'
+import { secteurMaritimeValidator } from './static/facades'
+import { substanceLegaleIdValidator } from './static/substancesLegales'
+import { entrepriseIdValidator, etapeEntrepriseDocumentValidator } from './entreprise'
+import { EtapeTypeId, etapeTypeIdFondamentaleValidator, etapeTypeIdNonFondamentaleValidator } from './static/etapesTypes'
+import { etapeStatutIdValidator } from './static/etapesStatuts'
+import { sectionWithValueValidator } from './sections'
+import { etapeAvisValidator, etapeBrouillonValidator, etapeDocumentValidator, etapeIdValidator, etapeNoteValidator, etapeSlugValidator } from './etape'
+import { sdomZoneIdValidator } from './static/sdom'
+import { km2Validator, numberFormat } from './number'
+import { DeviseId, deviseIdValidator, DEVISES_IDS, Devises } from './static/devise'
+import { TITRES_TYPES_TYPES_IDS } from './static/titresTypesTypes'
+import { UniteId, uniteIdValidator, UNITE_IDS, Unites } from './static/unites'
+import { capitalize } from './strings'
+import { foretIdValidator } from './static/forets'
+import { featureCollectionForagesValidator, featureCollectionPointsValidator, featureMultiPolygonValidator } from './perimetre'
+import { geoSystemeIdValidator } from './static/geoSystemes'
+import { isNotNullNorUndefined } from './typescript-tools'
+import { proprietesGeothermieForagesElementIds } from './static/titresTypes_demarchesTypes_etapesTypes/sections'
 
 export const demarcheIdValidator = z.string().brand<'DemarcheId'>()
 export type DemarcheId = z.infer<typeof demarcheIdValidator>
diff --git a/packages/common/src/entreprise.test.ts b/packages/common/src/entreprise.test.ts
index d555cd60dd4086b9aa6129fdd50be0472fe04012..c3f76a8274ff449cf3e9427bd0ae6ed7ec390a58 100644
--- a/packages/common/src/entreprise.test.ts
+++ b/packages/common/src/entreprise.test.ts
@@ -1,5 +1,5 @@
 import { test, expect } from 'vitest'
-import { sirenValidator } from './entreprise.js'
+import { sirenValidator } from './entreprise'
 
 test('sirenValidator', () => {
   expect(sirenValidator.safeParse('123456789').success).toBe(true)
diff --git a/packages/common/src/entreprise.ts b/packages/common/src/entreprise.ts
index 1839ba6622492f11a6560bdb754ac0fb7c2e7517..031cd048968785f56e85a81b61b4ee65a1f4a451 100644
--- a/packages/common/src/entreprise.ts
+++ b/packages/common/src/entreprise.ts
@@ -1,15 +1,15 @@
 import { z } from 'zod'
-import { CaminoDate, caminoDateValidator } from './date.js'
-import { User } from './roles.js'
-import { DocumentTypeId, entrepriseDocumentTypeIdValidator } from './static/documentsTypes.js'
-import { SecteursMaritimes } from './static/facades.js'
-import { SubstanceLegaleId } from './static/substancesLegales.js'
-import { TitreStatutId } from './static/titresStatuts.js'
-import { TitreTypeId } from './static/titresTypes.js'
-import { TitreReference } from './titres-references.js'
-import { CommuneId } from './static/communes.js'
-import { tempDocumentNameValidator } from './document.js'
-import type { TitreId } from './validators/titres.js'
+import { CaminoDate, caminoDateValidator } from './date'
+import { User } from './roles'
+import { DocumentTypeId, entrepriseDocumentTypeIdValidator } from './static/documentsTypes'
+import { SecteursMaritimes } from './static/facades'
+import { SubstanceLegaleId } from './static/substancesLegales'
+import { TitreStatutId } from './static/titresStatuts'
+import { TitreTypeId } from './static/titresTypes'
+import { TitreReference } from './titres-references'
+import { CommuneId } from './static/communes'
+import { tempDocumentNameValidator } from './document'
+import type { TitreId } from './validators/titres'
 
 export const entrepriseIdValidator = z.string().brand<'EntrepriseId'>()
 export type EntrepriseId = z.infer<typeof entrepriseIdValidator>
diff --git a/packages/common/src/etape-form.ts b/packages/common/src/etape-form.ts
index 692fd9c36f972449bc98655686de88697f485d05..76835af00c07ad3a3c6606dfe269df1610109820 100644
--- a/packages/common/src/etape-form.ts
+++ b/packages/common/src/etape-form.ts
@@ -1,7 +1,7 @@
 import { z } from 'zod'
-import { caminoDateValidator } from './date.js'
-import { demarcheIdValidator, demarcheSlugValidator } from './demarche.js'
-import { entrepriseDocumentIdValidator, entrepriseIdValidator } from './entreprise.js'
+import { caminoDateValidator } from './date'
+import { demarcheIdValidator, demarcheSlugValidator } from './demarche'
+import { entrepriseDocumentIdValidator, entrepriseIdValidator } from './entreprise'
 import {
   documentComplementaireAslEtapeDocumentModificationValidator,
   documentComplementaireDaeEtapeDocumentModificationValidator,
@@ -11,18 +11,18 @@ import {
   etapeIdValidator,
   etapeNoteValidator,
   etapeSlugValidator,
-} from './etape.js'
-import { km2Validator } from './number.js'
-import { featureCollectionForagesValidator, featureCollectionPointsValidator, featureMultiPolygonValidator } from './perimetre.js'
-import { demarcheTypeIdValidator } from './static/demarchesTypes.js'
-import { etapeStatutIdValidator } from './static/etapesStatuts.js'
-import { etapeTypeIdValidator } from './static/etapesTypes.js'
-import { geoSystemeIdValidator } from './static/geoSystemes.js'
-import { substanceLegaleIdValidator } from './static/substancesLegales.js'
-import { titreTypeIdValidator } from './static/titresTypes.js'
-import { titreIdValidator, titreSlugValidator } from './validators/titres.js'
-import { makeFlattenValidator, nullToDefault } from './zod-tools.js'
-import { numberElementValueValidator } from './sections.js'
+} from './etape'
+import { km2Validator } from './number'
+import { featureCollectionForagesValidator, featureCollectionPointsValidator, featureMultiPolygonValidator } from './perimetre'
+import { demarcheTypeIdValidator } from './static/demarchesTypes'
+import { etapeStatutIdValidator } from './static/etapesStatuts'
+import { etapeTypeIdValidator } from './static/etapesTypes'
+import { geoSystemeIdValidator } from './static/geoSystemes'
+import { substanceLegaleIdValidator } from './static/substancesLegales'
+import { titreTypeIdValidator } from './static/titresTypes'
+import { titreIdValidator, titreSlugValidator } from './validators/titres'
+import { makeFlattenValidator, nullToDefault } from './zod-tools'
+import { numberElementValueValidator } from './sections'
 
 export const contenuValidator = z
   .record(z.string(), z.record(z.string(), z.union([caminoDateValidator, z.string(), z.number(), z.boolean(), z.array(z.string())]).nullable()))
diff --git a/packages/common/src/etape.test.ts b/packages/common/src/etape.test.ts
index 7d871af11efea4f00f50474d532631ed691cad61..c4737ecd49bd588df836bf7e1068d7647ed1b446 100644
--- a/packages/common/src/etape.test.ts
+++ b/packages/common/src/etape.test.ts
@@ -1,8 +1,8 @@
 import { test, expect } from 'vitest'
-import { etapeDocumentIdValidator, getStatutId } from './etape.js'
-import { ETAPES_STATUTS } from './static/etapesStatuts.js'
-import { caminoDateValidator } from './date.js'
-import { ETAPES_TYPES } from './static/etapesTypes.js'
+import { etapeDocumentIdValidator, getStatutId } from './etape'
+import { ETAPES_STATUTS } from './static/etapesStatuts'
+import { caminoDateValidator } from './date'
+import { ETAPES_TYPES } from './static/etapesTypes'
 
 test('documentIdValidator', () => {
   expect(() => etapeDocumentIdValidator.parse('2021-01-01-kbi-ac123457')).not.toThrowError()
diff --git a/packages/common/src/etape.ts b/packages/common/src/etape.ts
index 7041e70207b32957010cf4209300d46544fad6db..345a2512cb9e2cb7c6fc938c93b39bd158916ad6 100644
--- a/packages/common/src/etape.ts
+++ b/packages/common/src/etape.ts
@@ -1,16 +1,16 @@
-import { CaminoDate, caminoDateValidator, dateAddDays, isBefore } from './date.js'
-import { EtapeHeritageProps, MappingHeritagePropsNameEtapePropsName } from './heritage.js'
-import { DOCUMENTS_TYPES_IDS, autreDocumentTypeIdValidator, documentTypeIdValidator } from './static/documentsTypes.js'
-import { ETAPES_STATUTS, EtapeStatutId, etapeStatutIdValidator } from './static/etapesStatuts.js'
-import { ETAPES_TYPES, EtapeTypeId, etapeTypeIdValidator } from './static/etapesTypes.js'
+import { CaminoDate, caminoDateValidator, dateAddDays, isBefore } from './date'
+import { EtapeHeritageProps, MappingHeritagePropsNameEtapePropsName } from './heritage'
+import { DOCUMENTS_TYPES_IDS, autreDocumentTypeIdValidator, documentTypeIdValidator } from './static/documentsTypes'
+import { ETAPES_STATUTS, EtapeStatutId, etapeStatutIdValidator } from './static/etapesStatuts'
+import { ETAPES_TYPES, EtapeTypeId, etapeTypeIdValidator } from './static/etapesTypes'
 import { z } from 'zod'
-import { tempDocumentNameValidator } from './document.js'
-import { DemarcheTypeId } from './static/demarchesTypes.js'
-import { TitreTypeId } from './static/titresTypes.js'
-import { User, isEntrepriseOrBureauDEtude } from './roles.js'
-import { avisStatutIdValidator, avisTypeIdValidator, avisVisibilityIdValidator } from './static/avisTypes.js'
-import { FlattenEtape, GraphqlEtape } from './etape-form.js'
-import { DeepReadonly } from './typescript-tools.js'
+import { tempDocumentNameValidator } from './document'
+import { DemarcheTypeId } from './static/demarchesTypes'
+import { TitreTypeId } from './static/titresTypes'
+import { User, isEntrepriseOrBureauDEtude } from './roles'
+import { avisStatutIdValidator, avisTypeIdValidator, avisVisibilityIdValidator } from './static/avisTypes'
+import { FlattenEtape, GraphqlEtape } from './etape-form'
+import { DeepReadonly } from './typescript-tools'
 
 export const etapeBrouillonValidator = z.boolean().brand('EtapeBrouillon')
 export type EtapeBrouillon = z.infer<typeof etapeBrouillonValidator>
diff --git a/packages/common/src/filters.ts b/packages/common/src/filters.ts
index 833e47ac303315f9246651b1cafd0d64489ec55a..2af62a08c8df9bdfe4f28913dd397472944f10f9 100644
--- a/packages/common/src/filters.ts
+++ b/packages/common/src/filters.ts
@@ -1,21 +1,21 @@
-import { ROLES, roleValidator } from './roles.js'
-import { ADMINISTRATION_TYPES, administrationIdValidator, administrationTypeIdValidator, sortedAdministrations } from './static/administrations.js'
-import { departementIdValidator, departements } from './static/departement.js'
-import { regionIdValidator, regions } from './static/region.js'
-import { FACADES, facadeMaritimeIdValidator } from './static/facades.js'
-import { SubstancesLegales, substanceLegaleIdValidator } from './static/substancesLegales.js'
-import { domaineIdValidator, sortedDomaines } from './static/domaines.js'
-import { titresStatutsArray, titreStatutIdValidator } from './static/titresStatuts.js'
-import { sortedTitreTypesTypes, titreTypeTypeIdValidator } from './static/titresTypesTypes.js'
-import { titreIdValidator } from './validators/titres.js'
+import { ROLES, roleValidator } from './roles'
+import { ADMINISTRATION_TYPES, administrationIdValidator, administrationTypeIdValidator, sortedAdministrations } from './static/administrations'
+import { departementIdValidator, departements } from './static/departement'
+import { regionIdValidator, regions } from './static/region'
+import { FACADES, facadeMaritimeIdValidator } from './static/facades'
+import { SubstancesLegales, substanceLegaleIdValidator } from './static/substancesLegales'
+import { domaineIdValidator, sortedDomaines } from './static/domaines'
+import { titresStatutsArray, titreStatutIdValidator } from './static/titresStatuts'
+import { sortedTitreTypesTypes, titreTypeTypeIdValidator } from './static/titresTypesTypes'
+import { titreIdValidator } from './validators/titres'
 import { z, ZodType } from 'zod'
-import { entrepriseIdValidator, Entreprise } from './entreprise.js'
-import { activiteTypeIdValidator, sortedActivitesTypes } from './static/activitesTypes.js'
-import { activiteStatutIdValidator, activitesStatuts } from './static/activitesStatuts.js'
-import { caminoAnneeValidator, getCurrentAnnee, intervalleAnnees, toCaminoAnnee } from './date.js'
-import { demarcheTypeIdValidator, sortedDemarchesTypes } from './static/demarchesTypes.js'
-import { demarcheStatutIdValidator, sortedDemarchesStatuts } from './static/demarchesStatuts.js'
-import { DownloadFormat } from './rest.js'
+import { entrepriseIdValidator, Entreprise } from './entreprise'
+import { activiteTypeIdValidator, sortedActivitesTypes } from './static/activitesTypes'
+import { activiteStatutIdValidator, activitesStatuts } from './static/activitesStatuts'
+import { caminoAnneeValidator, getCurrentAnnee, intervalleAnnees, toCaminoAnnee } from './date'
+import { demarcheTypeIdValidator, sortedDemarchesTypes } from './static/demarchesTypes'
+import { demarcheStatutIdValidator, sortedDemarchesStatuts } from './static/demarchesStatuts'
+import { DownloadFormat } from './rest'
 
 export const caminoFiltres = {
   nomsAdministration: {
diff --git a/packages/common/src/fiscalite.test.ts b/packages/common/src/fiscalite.test.ts
index 8a3b28888597b774f0ace54f66c78506ccff4360..d219c3fc628e0daf8047e58b7f81fe9591bd304a 100644
--- a/packages/common/src/fiscalite.test.ts
+++ b/packages/common/src/fiscalite.test.ts
@@ -1,8 +1,8 @@
-import { fiscaliteVisible, fraisGestion } from './fiscalite.js'
-import { UserNotNull, toUtilisateurId } from './roles.js'
-import { CommonRestTitre } from './titres.js'
+import { fiscaliteVisible, fraisGestion } from './fiscalite'
+import { UserNotNull, toUtilisateurId } from './roles'
+import { CommonRestTitre } from './titres'
 import { test, expect } from 'vitest'
-import { newEntrepriseId } from './entreprise.js'
+import { newEntrepriseId } from './entreprise'
 import { Decimal } from 'decimal.js'
 
 test('fraisGestion', () => {
diff --git a/packages/common/src/fiscalite.ts b/packages/common/src/fiscalite.ts
index e4f5dd368223bfd2e72df00d87c7780a382cef4b..618713540df730293b89ca38f459833885c782f2 100644
--- a/packages/common/src/fiscalite.ts
+++ b/packages/common/src/fiscalite.ts
@@ -1,10 +1,10 @@
-import { isAdministration, isEntreprise, isSuper, User } from './roles.js'
-import { DomaineId, DOMAINES_IDS } from './static/domaines.js'
-import { CommonRestTitre } from './titres.js'
-import { EntrepriseId } from './entreprise.js'
-import { getDomaineId } from './static/titresTypes.js'
+import { isAdministration, isEntreprise, isSuper, User } from './roles'
+import { DomaineId, DOMAINES_IDS } from './static/domaines'
+import { CommonRestTitre } from './titres'
+import { EntrepriseId } from './entreprise'
+import { getDomaineId } from './static/titresTypes'
 import { Decimal } from 'decimal.js'
-import type { Fiscalite } from './validators/fiscalite.js'
+import type { Fiscalite } from './validators/fiscalite'
 
 export const montantNetTaxeAurifere = (fiscalite: Fiscalite): number => ('guyane' in fiscalite ? fiscalite.guyane.taxeAurifere : 0)
 
diff --git a/packages/common/src/perimetre.ts b/packages/common/src/perimetre.ts
index 4813cd8c30f9c9e2c54ffded2b333842b10638cb..05fb958e9c1cd98453bda663f7580d1396cc7897 100644
--- a/packages/common/src/perimetre.ts
+++ b/packages/common/src/perimetre.ts
@@ -1,16 +1,16 @@
 import { z } from 'zod'
-import { communeIdValidator } from './static/communes.js'
-import { secteurDbIdValidator } from './static/facades.js'
-import { foretIdValidator } from './static/forets.js'
-import { sdomZoneIdValidator } from './static/sdom.js'
-import { titreStatutIdValidator } from './static/titresStatuts.js'
-import { titreSlugValidator } from './validators/titres.js'
-import { tempDocumentNameValidator } from './document.js'
-import { titreTypeIdValidator } from './static/titresTypes.js'
-import { perimetreFileUploadTypeValidator } from './static/documentsTypes.js'
-import { DeepReadonly, isNullOrUndefined } from './typescript-tools.js'
-import { km2Validator } from './number.js'
-import { GeoSystemeId, geoSystemeIdValidator } from './static/geoSystemes.js'
+import { communeIdValidator } from './static/communes'
+import { secteurDbIdValidator } from './static/facades'
+import { foretIdValidator } from './static/forets'
+import { sdomZoneIdValidator } from './static/sdom'
+import { titreStatutIdValidator } from './static/titresStatuts'
+import { titreSlugValidator } from './validators/titres'
+import { tempDocumentNameValidator } from './document'
+import { titreTypeIdValidator } from './static/titresTypes'
+import { perimetreFileUploadTypeValidator } from './static/documentsTypes'
+import { DeepReadonly, isNullOrUndefined } from './typescript-tools'
+import { km2Validator } from './number'
+import { GeoSystemeId, geoSystemeIdValidator } from './static/geoSystemes'
 
 // [longitude, latitude]
 const tupleCoordinateValidator = z.tuple([z.number(), z.number()])
diff --git a/packages/common/src/permissions/activites.test.ts b/packages/common/src/permissions/activites.test.ts
index a95539db5b4f7a0337f98780bd9fee0caf24ea76..6082a6795fa66d1f1143f22a88158a557698c057 100644
--- a/packages/common/src/permissions/activites.test.ts
+++ b/packages/common/src/permissions/activites.test.ts
@@ -1,12 +1,12 @@
-import { User } from '../roles.js'
-import { ADMINISTRATION_IDS, AdministrationId } from '../static/administrations.js'
+import { User } from '../roles'
+import { ADMINISTRATION_IDS, AdministrationId } from '../static/administrations'
 import { test, expect, describe } from 'vitest'
-import { canDeleteActiviteDocument, canEditActivite, canReadActivites, canReadTitreActivites, isActiviteComplete, isActiviteDeposable, isActiviteDocumentsComplete } from './activites.js'
+import { canDeleteActiviteDocument, canEditActivite, canReadActivites, canReadTitreActivites, isActiviteComplete, isActiviteDeposable, isActiviteDocumentsComplete } from './activites'
 import { testBlankUser, TestUser } from '../tests-utils'
-import { TITRES_TYPES_IDS, TitreTypeId } from '../static/titresTypes.js'
-import { ActiviteDocumentTypeId, ActiviteDocumentTypeIds, DOCUMENTS_TYPES_IDS } from '../static/documentsTypes.js'
-import { ACTIVITES_STATUTS_IDS, ActivitesStatutId } from '../static/activitesStatuts.js'
-import { ACTIVITES_TYPES_IDS, ActivitesTypesId } from '../static/activitesTypes.js'
+import { TITRES_TYPES_IDS, TitreTypeId } from '../static/titresTypes'
+import { ActiviteDocumentTypeId, ActiviteDocumentTypeIds, DOCUMENTS_TYPES_IDS } from '../static/documentsTypes'
+import { ACTIVITES_STATUTS_IDS, ActivitesStatutId } from '../static/activitesStatuts'
+import { ACTIVITES_TYPES_IDS, ActivitesTypesId } from '../static/activitesTypes'
 import { EntrepriseId, newEntrepriseId } from '../entreprise'
 
 test.each<[User, boolean]>([
diff --git a/packages/common/src/permissions/activites.ts b/packages/common/src/permissions/activites.ts
index 52d6af61e09804d262fa33cfd4301e3ac6247b09..aa466eb0579e2be4a5fe00c95b8a225fecb77c9e 100644
--- a/packages/common/src/permissions/activites.ts
+++ b/packages/common/src/permissions/activites.ts
@@ -1,16 +1,16 @@
-import { Activite, ActiviteDocument } from '../activite.js'
-import { EntrepriseId } from '../entreprise.js'
-import { isAdministration, isAdministrationAdmin, isAdministrationEditeur, isEntreprise, isSuper, User } from '../roles.js'
-import { ACTIVITES_STATUTS_IDS, ActivitesStatutId } from '../static/activitesStatuts.js'
-import { ActivitesTypesId } from '../static/activitesTypes.js'
-import { activitesTypesDocumentsTypes } from '../static/activitesTypesDocumentsTypes.js'
-import { Administrations, ADMINISTRATION_TYPE_IDS, ADMINISTRATION_IDS, AdministrationId } from '../static/administrations.js'
-import { isAssociee, isGestionnaire } from '../static/administrationsTitresTypes.js'
-import { ActiviteDocumentTypeId } from '../static/documentsTypes.js'
-import { TitreTypeId } from '../static/titresTypes.js'
-import { ElementWithValue } from '../sections.js'
-import { isNonEmptyArray, isNullOrUndefined, memoize, NonEmptyArray, SimplePromiseFn } from '../typescript-tools.js'
-import { sectionsWithValueCompleteValidate } from './sections.js'
+import { Activite, ActiviteDocument } from '../activite'
+import { EntrepriseId } from '../entreprise'
+import { isAdministration, isAdministrationAdmin, isAdministrationEditeur, isEntreprise, isSuper, User } from '../roles'
+import { ACTIVITES_STATUTS_IDS, ActivitesStatutId } from '../static/activitesStatuts'
+import { ActivitesTypesId } from '../static/activitesTypes'
+import { activitesTypesDocumentsTypes } from '../static/activitesTypesDocumentsTypes'
+import { Administrations, ADMINISTRATION_TYPE_IDS, ADMINISTRATION_IDS, AdministrationId } from '../static/administrations'
+import { isAssociee, isGestionnaire } from '../static/administrationsTitresTypes'
+import { ActiviteDocumentTypeId } from '../static/documentsTypes'
+import { TitreTypeId } from '../static/titresTypes'
+import { ElementWithValue } from '../sections'
+import { isNonEmptyArray, isNullOrUndefined, memoize, NonEmptyArray, SimplePromiseFn } from '../typescript-tools'
+import { sectionsWithValueCompleteValidate } from './sections'
 
 export const canReadActivites = (user: User): boolean =>
   isSuper(user) ||
diff --git a/packages/common/src/permissions/administrations.test.ts b/packages/common/src/permissions/administrations.test.ts
index 1090aae862feed9daebb968a934aae3b9d64f21f..9db6869801a2d28fe77835f2ce03f8712fafd089 100644
--- a/packages/common/src/permissions/administrations.test.ts
+++ b/packages/common/src/permissions/administrations.test.ts
@@ -1,6 +1,6 @@
-import { canEditEmails, canReadActivitesTypesEmails } from './administrations.js'
-import { AdministrationRole, Role, User, UserNotNull } from '../roles.js'
-import { ADMINISTRATION_IDS, AdministrationId } from '../static/administrations.js'
+import { canEditEmails, canReadActivitesTypesEmails } from './administrations'
+import { AdministrationRole, Role, User, UserNotNull } from '../roles'
+import { ADMINISTRATION_IDS, AdministrationId } from '../static/administrations'
 import { test, expect } from 'vitest'
 import { testBlankUser } from '../tests-utils'
 
diff --git a/packages/common/src/permissions/administrations.ts b/packages/common/src/permissions/administrations.ts
index 34b84ae9501fa51bd8e1f87fbf0c71ddb56f24bd..f2229abe4dec7682e522612f75f962131ec1bd5b 100644
--- a/packages/common/src/permissions/administrations.ts
+++ b/packages/common/src/permissions/administrations.ts
@@ -1,7 +1,7 @@
-import { isAdministration, isAdministrationAdmin, isAdministrationEditeur, isSuper, User } from '../roles.js'
-import { AdministrationId, Administrations, sortedAdministrations } from '../static/administrations.js'
-import { Departements } from '../static/departement.js'
-import { DeepReadonly } from '../typescript-tools.js'
+import { isAdministration, isAdministrationAdmin, isAdministrationEditeur, isSuper, User } from '../roles'
+import { AdministrationId, Administrations, sortedAdministrations } from '../static/administrations'
+import { Departements } from '../static/departement'
+import { DeepReadonly } from '../typescript-tools'
 
 export const canReadActivitesTypesEmails = (user: User, administrationId: AdministrationId): boolean => {
   if (!canReadAdministrations(user)) {
diff --git a/packages/common/src/permissions/entreprises.test.ts b/packages/common/src/permissions/entreprises.test.ts
index 65a33e7183ef6be1a13f538cf94f1417728503da..528e064961a66ee9bca4c12c8d9ac57c4b633c67 100644
--- a/packages/common/src/permissions/entreprises.test.ts
+++ b/packages/common/src/permissions/entreprises.test.ts
@@ -1,7 +1,7 @@
 import { test, expect } from 'vitest'
-import { newEntrepriseId } from '../entreprise.js'
-import { ADMINISTRATION_IDS } from '../static/administrations.js'
-import { canEditEntreprise, canCreateEntreprise, canSeeEntrepriseDocuments } from './entreprises.js'
+import { newEntrepriseId } from '../entreprise'
+import { ADMINISTRATION_IDS } from '../static/administrations'
+import { canEditEntreprise, canCreateEntreprise, canSeeEntrepriseDocuments } from './entreprises'
 import { testBlankUser, TestUser } from '../tests-utils'
 
 const entrepriseId = newEntrepriseId('entrepriseId')
diff --git a/packages/common/src/permissions/entreprises.ts b/packages/common/src/permissions/entreprises.ts
index f3ffb90b07f4f61fc1fb84456a2280c1bea839a4..72ce834572e8e0f96ba5236c99c27e2e0649be10 100644
--- a/packages/common/src/permissions/entreprises.ts
+++ b/packages/common/src/permissions/entreprises.ts
@@ -1,5 +1,5 @@
-import { EntrepriseId } from '../entreprise.js'
-import { isAdministrationAdmin, isAdministrationEditeur, isBureauDEtudes, isEntreprise, User, isSuper, isAdministration } from '../roles.js'
+import { EntrepriseId } from '../entreprise'
+import { isAdministrationAdmin, isAdministrationEditeur, isBureauDEtudes, isEntreprise, User, isSuper, isAdministration } from '../roles'
 
 export const canCreateEntreprise = (user: User): boolean => {
   if (isSuper(user) || isAdministrationAdmin(user) || isAdministrationEditeur(user)) {
diff --git a/packages/common/src/permissions/etape-form.ts b/packages/common/src/permissions/etape-form.ts
index a8ff9820deec5e7900bc1b8903741afd398d9aea..bfe7387fed4cacdf5378f2f74d66325e87751cff 100644
--- a/packages/common/src/permissions/etape-form.ts
+++ b/packages/common/src/permissions/etape-form.ts
@@ -1,5 +1,5 @@
-import { EntrepriseDocumentId, EntrepriseId } from '../entreprise.js'
-import { FlattenEtape } from '../etape-form.js'
+import { EntrepriseDocumentId, EntrepriseId } from '../entreprise'
+import { FlattenEtape } from '../etape-form'
 import {
   DocumentComplementaireAslEtapeDocumentModification,
   DocumentComplementaireDaeEtapeDocumentModification,
@@ -8,24 +8,24 @@ import {
   TempEtapeAvis,
   TempEtapeDocument,
   needAslAndDae,
-} from '../etape.js'
-import { User, isAdministrationAdmin, isAdministrationEditeur, isSuper } from '../roles.js'
-import { AvisTypeId, AvisTypes } from '../static/avisTypes.js'
+} from '../etape'
+import { User, isAdministrationAdmin, isAdministrationEditeur, isSuper } from '../roles'
+import { AvisTypeId, AvisTypes } from '../static/avisTypes'
 import { CommuneId } from '../static/communes'
-import { DemarcheTypeId } from '../static/demarchesTypes.js'
-import { DEPARTEMENT_IDS, toDepartementId } from '../static/departement.js'
-import { AutreDocumentType, DocumentType, DocumentsTypes, EntrepriseDocumentTypeId } from '../static/documentsTypes.js'
-import { ETAPES_TYPES, EtapeTypeId, EtapesTypes } from '../static/etapesTypes.js'
-import { SDOMZoneId } from '../static/sdom.js'
-import { TitreTypeId, TitresTypes } from '../static/titresTypes.js'
-import { TITRES_TYPES_TYPES_IDS } from '../static/titresTypesTypes.js'
-import { getDocuments } from '../static/titresTypes_demarchesTypes_etapesTypes/documents.js'
-import { getEntrepriseDocuments } from '../static/titresTypes_demarchesTypes_etapesTypes/entrepriseDocuments.js'
-import { documentTypeIdsBySdomZonesGet } from '../static/titresTypes_demarchesTypes_etapesTypes/sdom.js'
-import { getSections, getSectionsWithValue } from '../static/titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { isNotNullNorUndefinedNorEmpty, DeepReadonly, onlyUnique, NonEmptyArray, isNonEmptyArray, isNullOrUndefinedOrEmpty, isNullOrUndefined, Nullable } from '../typescript-tools.js'
-import { sectionsWithValueCompleteValidate } from './sections.js'
-import { isDureeOptional } from './titres-etapes.js'
+import { DemarcheTypeId } from '../static/demarchesTypes'
+import { DEPARTEMENT_IDS, toDepartementId } from '../static/departement'
+import { AutreDocumentType, DocumentType, DocumentsTypes, EntrepriseDocumentTypeId } from '../static/documentsTypes'
+import { ETAPES_TYPES, EtapeTypeId, EtapesTypes } from '../static/etapesTypes'
+import { SDOMZoneId } from '../static/sdom'
+import { TitreTypeId, TitresTypes } from '../static/titresTypes'
+import { TITRES_TYPES_TYPES_IDS } from '../static/titresTypesTypes'
+import { getDocuments } from '../static/titresTypes_demarchesTypes_etapesTypes/documents'
+import { getEntrepriseDocuments } from '../static/titresTypes_demarchesTypes_etapesTypes/entrepriseDocuments'
+import { documentTypeIdsBySdomZonesGet } from '../static/titresTypes_demarchesTypes_etapesTypes/sdom'
+import { getSections, getSectionsWithValue } from '../static/titresTypes_demarchesTypes_etapesTypes/sections'
+import { isNotNullNorUndefinedNorEmpty, DeepReadonly, onlyUnique, NonEmptyArray, isNonEmptyArray, isNullOrUndefinedOrEmpty, isNullOrUndefined, Nullable } from '../typescript-tools'
+import { sectionsWithValueCompleteValidate } from './sections'
+import { isDureeOptional } from './titres-etapes'
 
 type ValidReturn = { valid: true } | { valid: false; errors: NonEmptyArray<string> }
 
diff --git a/packages/common/src/permissions/journaux.ts b/packages/common/src/permissions/journaux.ts
index 6d0100d4f8bc4811ecbff0f066655eb14133ae16..f1be4baca0559e550d91681ab720e644dc9a5aae 100644
--- a/packages/common/src/permissions/journaux.ts
+++ b/packages/common/src/permissions/journaux.ts
@@ -1,3 +1,3 @@
-import { isSuper, User } from '../roles.js'
+import { isSuper, User } from '../roles'
 
 export const canReadJournaux = (user: User): boolean => isSuper(user)
diff --git a/packages/common/src/permissions/metas.ts b/packages/common/src/permissions/metas.ts
index f8758eca6d8bdd0ef1034357e0a61ae19360b677..9ebfcaec671eeb39efd160d0ea061b84c9efbe07 100644
--- a/packages/common/src/permissions/metas.ts
+++ b/packages/common/src/permissions/metas.ts
@@ -1,3 +1,3 @@
-import { isSuper, User } from '../roles.js'
+import { isSuper, User } from '../roles'
 
 export const canReadMetas = (user: User): boolean => isSuper(user)
diff --git a/packages/common/src/permissions/sections.test.ts b/packages/common/src/permissions/sections.test.ts
index e48da9e99acf3dc433a036e3bb0e9ef71a0a6f42..54f4696be962fa8e1d0d38a1ac21f5bd4b03b48b 100644
--- a/packages/common/src/permissions/sections.test.ts
+++ b/packages/common/src/permissions/sections.test.ts
@@ -1,6 +1,6 @@
-import { sectionElementWithValueCompleteValidate, sectionsWithValueCompleteValidate } from './sections.js'
+import { sectionElementWithValueCompleteValidate, sectionsWithValueCompleteValidate } from './sections'
 import { test, expect, describe } from 'vitest'
-import { ElementWithValue } from '../sections.js'
+import { ElementWithValue } from '../sections'
 import { CaminoDate, getCurrent } from '../date'
 
 describe('sectionElementWithValueCompleteValidate', () => {
diff --git a/packages/common/src/permissions/sections.ts b/packages/common/src/permissions/sections.ts
index d3a4d8c248cf6d9b31d46bfea1212a158d8ab1dc..340d204960d2a164c5282eda2740d4f4086704e4 100644
--- a/packages/common/src/permissions/sections.ts
+++ b/packages/common/src/permissions/sections.ts
@@ -1,5 +1,5 @@
-import { ElementWithValue } from '../sections.js'
-import { DeepReadonly, isNullOrUndefined } from '../typescript-tools.js'
+import { ElementWithValue } from '../sections'
+import { DeepReadonly, isNullOrUndefined } from '../typescript-tools'
 
 // @deprecated ==> type better
 export type Contenu = { [key in string]?: { [secondKey in string]?: unknown } } | null
diff --git a/packages/common/src/permissions/titres-demarches.test.ts b/packages/common/src/permissions/titres-demarches.test.ts
index 2b7dfd5e6c60b68ca06d79b285b212902a625056..b9f229f3a13e594e51aabc0f1a9070ae0b4e3f01 100644
--- a/packages/common/src/permissions/titres-demarches.test.ts
+++ b/packages/common/src/permissions/titres-demarches.test.ts
@@ -1,9 +1,9 @@
 import { describe, expect, test } from 'vitest'
-import { AdministrationId } from '../static/administrations.js'
-import { canEditDemarche, canCreateTravaux, canDeleteDemarche, canCreateDemarche } from './titres-demarches.js'
-import { testBlankUser, TestUser } from '../tests-utils.js'
-import { TitresStatutIds } from '../static/titresStatuts.js'
-import { caminoDateValidator } from '../date.js'
+import { AdministrationId } from '../static/administrations'
+import { canEditDemarche, canCreateTravaux, canDeleteDemarche, canCreateDemarche } from './titres-demarches'
+import { testBlankUser, TestUser } from '../tests-utils'
+import { TitresStatutIds } from '../static/titresStatuts'
+import { caminoDateValidator } from '../date'
 
 describe('canEditDemarche', () => {
   test.each<[AdministrationId, boolean]>([
diff --git a/packages/common/src/permissions/titres-demarches.ts b/packages/common/src/permissions/titres-demarches.ts
index 00f5c77cdd09934ca2ac9acf15136f097c86fcd4..ac6e7ef196b7ef9e036e6b1314d1f8b299863c48 100644
--- a/packages/common/src/permissions/titres-demarches.ts
+++ b/packages/common/src/permissions/titres-demarches.ts
@@ -1,15 +1,15 @@
-import { isAdministrationAdmin, isAdministrationEditeur, isSuper, User } from '../roles.js'
-import { TitreTypeId } from '../static/titresTypes.js'
-import { isGestionnaire } from '../static/administrationsTitresTypes.js'
-import { TitreStatutId } from '../static/titresStatuts.js'
-import { canAdministrationModifyDemarches } from '../static/administrationsTitresTypesTitresStatuts.js'
-import { ADMINISTRATION_TYPE_IDS, AdministrationId, Administrations } from '../static/administrations.js'
-import { getEtapesTDE } from '../static/titresTypes_demarchesTypes_etapesTypes/index.js'
-import { DemarcheTypeId } from '../static/demarchesTypes.js'
-import { canCreateEtape } from './titres-etapes.js'
-import { TitreGetDemarche } from '../titres.js'
-import { isNullOrUndefined } from '../typescript-tools.js'
-import { ETAPE_IS_BROUILLON } from '../etape.js'
+import { isAdministrationAdmin, isAdministrationEditeur, isSuper, User } from '../roles'
+import { TitreTypeId } from '../static/titresTypes'
+import { isGestionnaire } from '../static/administrationsTitresTypes'
+import { TitreStatutId } from '../static/titresStatuts'
+import { canAdministrationModifyDemarches } from '../static/administrationsTitresTypesTitresStatuts'
+import { ADMINISTRATION_TYPE_IDS, AdministrationId, Administrations } from '../static/administrations'
+import { getEtapesTDE } from '../static/titresTypes_demarchesTypes_etapesTypes/index'
+import { DemarcheTypeId } from '../static/demarchesTypes'
+import { canCreateEtape } from './titres-etapes'
+import { TitreGetDemarche } from '../titres'
+import { isNullOrUndefined } from '../typescript-tools'
+import { ETAPE_IS_BROUILLON } from '../etape'
 
 const hasOneDemarcheWithoutPhase = (demarches: Pick<TitreGetDemarche, 'demarche_date_debut'>[]): boolean => {
   // Si il y a une seule démarche et qu’elle n’a pas encore créée de phase, alors on ne peut pas créer une deuxième démarche
diff --git a/packages/common/src/permissions/titres-etapes.test.ts b/packages/common/src/permissions/titres-etapes.test.ts
index 71997d0e7cadb0e46349f5653b978b865a7c6dfb..a2d9ff21362499dcb3831831ceddd36d270cfbd1 100644
--- a/packages/common/src/permissions/titres-etapes.test.ts
+++ b/packages/common/src/permissions/titres-etapes.test.ts
@@ -1,6 +1,6 @@
-import { TitreTypeId } from '../static/titresTypes.js'
-import { EtapeTypeId } from '../static/etapesTypes.js'
-import { DemarcheTypeId } from '../static/demarchesTypes.js'
+import { TitreTypeId } from '../static/titresTypes'
+import { EtapeTypeId } from '../static/etapesTypes'
+import { DemarcheTypeId } from '../static/demarchesTypes'
 
 import {
   canCreateEtape,
@@ -15,19 +15,19 @@ import {
   IsEtapeCompleteEntrepriseDocuments,
   IsEtapeCompleteEtape,
   canDeleteEtape,
-} from './titres-etapes.js'
-import { AdministrationId, ADMINISTRATION_IDS } from '../static/administrations.js'
+} from './titres-etapes'
+import { AdministrationId, ADMINISTRATION_IDS } from '../static/administrations'
 import { test, expect } from 'vitest'
-import { TestUser, testBlankUser } from '../tests-utils.js'
-import { TitreStatutId } from '../static/titresStatuts.js'
-import { EntrepriseId, entrepriseIdValidator, newEntrepriseId } from '../entreprise.js'
-import { SubstanceLegaleId } from '../static/substancesLegales.js'
-import { FeatureMultiPolygon } from '../perimetre.js'
-import { caminoDateValidator, toCaminoDate } from '../date.js'
-import { ETAPE_IS_BROUILLON, ETAPE_IS_NOT_BROUILLON, EtapeBrouillon } from '../etape.js'
-import { EntrepriseUserNotNull } from '../roles.js'
-import { communeIdValidator } from '../static/communes.js'
-import { SDOMZoneIds } from '../static/sdom.js'
+import { TestUser, testBlankUser } from '../tests-utils'
+import { TitreStatutId } from '../static/titresStatuts'
+import { EntrepriseId, entrepriseIdValidator, newEntrepriseId } from '../entreprise'
+import { SubstanceLegaleId } from '../static/substancesLegales'
+import { FeatureMultiPolygon } from '../perimetre'
+import { caminoDateValidator, toCaminoDate } from '../date'
+import { ETAPE_IS_BROUILLON, ETAPE_IS_NOT_BROUILLON, EtapeBrouillon } from '../etape'
+import { EntrepriseUserNotNull } from '../roles'
+import { communeIdValidator } from '../static/communes'
+import { SDOMZoneIds } from '../static/sdom'
 
 test.each<{ etapeTypeId: EtapeTypeId; demarcheTypeId: DemarcheTypeId; titreTypeId: TitreTypeId; optional: boolean }>([
   { etapeTypeId: 'mfr', demarcheTypeId: 'oct', titreTypeId: 'arm', optional: false },
diff --git a/packages/common/src/permissions/titres-etapes.ts b/packages/common/src/permissions/titres-etapes.ts
index 4923dbe613110f34c82998a78e35b3599829023a..7eafb381a1357a5b0ffbe5a7c6dd0a620201abb2 100644
--- a/packages/common/src/permissions/titres-etapes.ts
+++ b/packages/common/src/permissions/titres-etapes.ts
@@ -1,17 +1,17 @@
-import { ETAPES_TYPES, EtapeTypeId } from '../static/etapesTypes.js'
-import { TitreTypeId } from '../static/titresTypes.js'
-import { DEMARCHES_TYPES_IDS, DemarcheTypeId, isDemarcheTypeWithPhase } from '../static/demarchesTypes.js'
-import { isAdministrationAdmin, isAdministrationEditeur, isBureauDEtudes, isEntreprise, isSuper, User } from '../roles.js'
-import { TITRES_TYPES_IDS_DEMAT } from './titres.js'
-import { AdministrationId } from '../static/administrations.js'
-import { isGestionnaire } from '../static/administrationsTitresTypes.js'
-import { canAdministrationModifyEtapes } from '../static/administrationsTitresTypesTitresStatuts.js'
-import { canAdministrationEtapeTypeId } from '../static/administrationsTitresTypesEtapesTypes.js'
+import { ETAPES_TYPES, EtapeTypeId } from '../static/etapesTypes'
+import { TitreTypeId } from '../static/titresTypes'
+import { DEMARCHES_TYPES_IDS, DemarcheTypeId, isDemarcheTypeWithPhase } from '../static/demarchesTypes'
+import { isAdministrationAdmin, isAdministrationEditeur, isBureauDEtudes, isEntreprise, isSuper, User } from '../roles'
+import { TITRES_TYPES_IDS_DEMAT } from './titres'
+import { AdministrationId } from '../static/administrations'
+import { isGestionnaire } from '../static/administrationsTitresTypes'
+import { canAdministrationModifyEtapes } from '../static/administrationsTitresTypesTitresStatuts'
+import { canAdministrationEtapeTypeId } from '../static/administrationsTitresTypesEtapesTypes'
 
-import { TitreStatutId } from '../static/titresStatuts.js'
-import { EntrepriseDocument, EntrepriseId } from '../entreprise.js'
-import { SDOMZoneId } from '../static/sdom.js'
-import { DeepReadonly, NonEmptyArray, isNonEmptyArray } from '../typescript-tools.js'
+import { TitreStatutId } from '../static/titresStatuts'
+import { EntrepriseDocument, EntrepriseId } from '../entreprise'
+import { SDOMZoneId } from '../static/sdom'
+import { DeepReadonly, NonEmptyArray, isNonEmptyArray } from '../typescript-tools'
 import {
   ETAPE_IS_BROUILLON,
   EtapeAvis,
@@ -22,7 +22,7 @@ import {
   GetEtapeDocumentsByEtapeIdDaeDocument,
   TempEtapeAvis,
   TempEtapeDocument,
-} from '../etape.js'
+} from '../etape'
 import {
   dateTypeStepIsComplete,
   entrepriseDocumentsStepIsComplete,
@@ -31,9 +31,9 @@ import {
   fondamentaleStepIsComplete,
   perimetreStepIsComplete,
   sectionsStepIsComplete,
-} from './etape-form.js'
-import { CommuneId } from '../static/communes.js'
-import { FlattenEtape } from '../etape-form.js'
+} from './etape-form'
+import { CommuneId } from '../static/communes'
+import { FlattenEtape } from '../etape-form'
 
 export const isDureeOptional = (etapeTypeId: EtapeTypeId, demarcheTypeId: DemarcheTypeId, titreTypeId: TitreTypeId): boolean => {
   if (titreTypeId !== 'axm' && titreTypeId !== 'arm') {
diff --git a/packages/common/src/permissions/titres.test.ts b/packages/common/src/permissions/titres.test.ts
index d4a2dd3560edf5b18639f5cd3c91f42bb76d282e..6c8a1f29047d954aac83e42a619c992566341b56 100644
--- a/packages/common/src/permissions/titres.test.ts
+++ b/packages/common/src/permissions/titres.test.ts
@@ -1,14 +1,14 @@
-import { canCreateTitre, canDeleteTitre, canEditTitre, canHaveActiviteTypeId, canLinkTitres, canReadTitre, getLinkConfig } from './titres.js'
-import { TitresTypesIds, TitreTypeId } from '../static/titresTypes.js'
-import { ADMINISTRATION_IDS, AdministrationId } from '../static/administrations.js'
+import { canCreateTitre, canDeleteTitre, canEditTitre, canHaveActiviteTypeId, canLinkTitres, canReadTitre, getLinkConfig } from './titres'
+import { TitresTypesIds, TitreTypeId } from '../static/titresTypes'
+import { ADMINISTRATION_IDS, AdministrationId } from '../static/administrations'
 import { test, expect, describe } from 'vitest'
-import { testBlankUser, TestUser } from '../tests-utils.js'
-import { User } from '../roles.js'
-import { entrepriseIdValidator, newEntrepriseId } from '../entreprise.js'
-import { ACTIVITES_TYPES_IDS } from '../static/activitesTypes.js'
-import { toCommuneId } from '../static/communes.js'
-import { TitreStatutId, titresStatutsArray } from '../static/titresStatuts.js'
-import { isAssociee, isGestionnaire } from '../static/administrationsTitresTypes.js'
+import { testBlankUser, TestUser } from '../tests-utils'
+import { User } from '../roles'
+import { entrepriseIdValidator, newEntrepriseId } from '../entreprise'
+import { ACTIVITES_TYPES_IDS } from '../static/activitesTypes'
+import { toCommuneId } from '../static/communes'
+import { TitreStatutId, titresStatutsArray } from '../static/titresStatuts'
+import { isAssociee, isGestionnaire } from '../static/administrationsTitresTypes'
 
 const shouldNotBeCalled = () => Promise.reject(new Error('should not be called'))
 
diff --git a/packages/common/src/permissions/titres.ts b/packages/common/src/permissions/titres.ts
index 17bb029d49d5843a89ded086c5c8e662dcec729e..733312c077ef820670bee736db1e5f1298427244 100644
--- a/packages/common/src/permissions/titres.ts
+++ b/packages/common/src/permissions/titres.ts
@@ -1,18 +1,18 @@
-import { TitresTypes, TitreTypeId } from '../static/titresTypes.js'
-import { DEMARCHES_TYPES_IDS, DemarcheTypeId } from '../static/demarchesTypes.js'
-import { isAdministration, isAdministrationAdmin, isAdministrationEditeur, isBureauDEtudes, isEntreprise, isEntrepriseOrBureauDEtude, isSuper, User } from '../roles.js'
-import { AdministrationId } from '../static/administrations.js'
-import { isAssociee, isGestionnaire } from '../static/administrationsTitresTypes.js'
-import { CommuneId } from '../static/communes.js'
-import { ActivitesTypesId, sortedActivitesTypes } from '../static/activitesTypes.js'
-import { activitesTypesTitresTypes } from '../static/activitesTypesTitresTypes.js'
-import { activitesTypesPays } from '../static/activitesTypesPays.js'
-import { canAdministrationModifyTitres } from '../static/administrationsTitresTypesTitresStatuts.js'
-import { TitreStatutId } from '../static/titresStatuts.js'
-import { territoiresIdFind } from '../territoires.js'
-import { DeepReadonly, isNotNullNorUndefinedNorEmpty, isNullOrUndefinedOrEmpty, SimplePromiseFn } from '../typescript-tools.js'
-import { SecteursMaritimes } from '../static/facades.js'
-import { EntrepriseId } from '../entreprise.js'
+import { TitresTypes, TitreTypeId } from '../static/titresTypes'
+import { DEMARCHES_TYPES_IDS, DemarcheTypeId } from '../static/demarchesTypes'
+import { isAdministration, isAdministrationAdmin, isAdministrationEditeur, isBureauDEtudes, isEntreprise, isEntrepriseOrBureauDEtude, isSuper, User } from '../roles'
+import { AdministrationId } from '../static/administrations'
+import { isAssociee, isGestionnaire } from '../static/administrationsTitresTypes'
+import { CommuneId } from '../static/communes'
+import { ActivitesTypesId, sortedActivitesTypes } from '../static/activitesTypes'
+import { activitesTypesTitresTypes } from '../static/activitesTypesTitresTypes'
+import { activitesTypesPays } from '../static/activitesTypesPays'
+import { canAdministrationModifyTitres } from '../static/administrationsTitresTypesTitresStatuts'
+import { TitreStatutId } from '../static/titresStatuts'
+import { territoiresIdFind } from '../territoires'
+import { DeepReadonly, isNotNullNorUndefinedNorEmpty, isNullOrUndefinedOrEmpty, SimplePromiseFn } from '../typescript-tools'
+import { SecteursMaritimes } from '../static/facades'
+import { EntrepriseId } from '../entreprise'
 
 export const getLinkConfig = (typeId: TitreTypeId, demarches: { demarche_type_id: DemarcheTypeId }[]): { count: 'single' | 'multiple'; typeId: TitreTypeId } | null => {
   switch (typeId) {
diff --git a/packages/common/src/permissions/utilisateurs.ts b/packages/common/src/permissions/utilisateurs.ts
index 90935090b3f8760adf6c3618cc33166e7eff1e9c..a9eace37181a5fdcf4cea5f75c48857d708f9d82 100644
--- a/packages/common/src/permissions/utilisateurs.ts
+++ b/packages/common/src/permissions/utilisateurs.ts
@@ -1,4 +1,4 @@
-import { isSuper, isAdministrationAdmin, isAdministrationEditeur, User, isAdministration, isEntreprise, isBureauDEtudes, ROLES, Role, UserNotNull } from '../roles.js'
+import { isSuper, isAdministrationAdmin, isAdministrationEditeur, User, isAdministration, isEntreprise, isBureauDEtudes, ROLES, Role, UserNotNull } from '../roles'
 
 export const canCreateEntreprise = (user: User): boolean => isSuper(user) || isAdministrationAdmin(user) || isAdministrationEditeur(user)
 export const canReadUtilisateurs = (user: User): boolean => isSuper(user) || isAdministration(user) || isEntreprise(user) || isBureauDEtudes(user)
diff --git a/packages/common/src/rest.ts b/packages/common/src/rest.ts
index c8f59530993e5a4786eae99859b67050be5cba37..ed9b30f66bf306c5d1d93c9890ec97225ad07639 100644
--- a/packages/common/src/rest.ts
+++ b/packages/common/src/rest.ts
@@ -10,9 +10,9 @@ import {
   entrepriseTypeValidator,
   sirenValidator,
   entrepriseValidator,
-} from './entreprise.js'
-import { demarcheIdOrSlugValidator, demarcheIdValidator } from './demarche.js'
-import { newsletterAbonnementValidator, qgisTokenValidator, utilisateurToEdit } from './utilisateur.js'
+} from './entreprise'
+import { demarcheIdOrSlugValidator, demarcheIdValidator } from './demarche'
+import { newsletterAbonnementValidator, qgisTokenValidator, utilisateurToEdit } from './utilisateur'
 import {
   editableTitreValidator,
   getDemarcheByIdOrSlugValidator,
@@ -23,9 +23,9 @@ import {
   titreLinksValidator,
   titreOnfValidator,
   utilisateurTitreAbonneValidator,
-} from './titres.js'
-import { adminUserNotNullValidator, userValidator, utilisateurIdValidator } from './roles.js'
-import { caminoAnneeValidator, caminoDateValidator } from './date.js'
+} from './titres'
+import { adminUserNotNullValidator, userValidator, utilisateurIdValidator } from './roles'
+import { caminoAnneeValidator, caminoDateValidator } from './date'
 import {
   etapeDocumentIdValidator,
   etapeIdOrSlugValidator,
@@ -34,20 +34,20 @@ import {
   getEtapeDocumentsByEtapeIdValidator,
   getEtapeAvisByEtapeIdValidator,
   etapeAvisIdValidator,
-} from './etape.js'
+} from './etape'
 import {
   statistiquesDGTMValidator,
   statistiquesDataGouvValidator,
   statistiquesGranulatsMarinsValidator,
   statistiquesGuyaneDataValidator,
   statistiquesMinerauxMetauxMetropoleValidator,
-} from './statistiques.js'
-import { fiscaliteValidator } from './validators/fiscalite.js'
-import { caminoConfigValidator } from './static/config.js'
-import { communeValidator } from './static/communes.js'
-import { Expect, isFalse, isTrue } from './typescript-tools.js'
-import { activiteDocumentIdValidator, activiteEditionValidator, activiteIdOrSlugValidator, activiteValidator } from './activite.js'
-import { geoSystemeIdValidator } from './static/geoSystemes.js'
+} from './statistiques'
+import { fiscaliteValidator } from './validators/fiscalite'
+import { caminoConfigValidator } from './static/config'
+import { communeValidator } from './static/communes'
+import { Expect, isFalse, isTrue } from './typescript-tools'
+import { activiteDocumentIdValidator, activiteEditionValidator, activiteIdOrSlugValidator, activiteValidator } from './activite'
+import { geoSystemeIdValidator } from './static/geoSystemes'
 import {
   geojsonImportBodyValidator,
   geojsonImportForagesBodyValidator,
@@ -56,11 +56,11 @@ import {
   geojsonImportPointResponseValidator,
   geojsonInformationsValidator,
   perimetreInformationsValidator,
-} from './perimetre.js'
-import { titreIdOrSlugValidator, titreIdValidator } from './validators/titres.js'
-import { administrationIdValidator } from './static/administrations.js'
-import { administrationActiviteTypeEmailValidator } from './administrations.js'
-import { flattenEtapeValidator, restEtapeCreationValidator, restEtapeModificationValidator } from './etape-form.js'
+} from './perimetre'
+import { titreIdOrSlugValidator, titreIdValidator } from './validators/titres'
+import { administrationIdValidator } from './static/administrations'
+import { administrationActiviteTypeEmailValidator } from './administrations'
+import { flattenEtapeValidator, restEtapeCreationValidator, restEtapeModificationValidator } from './etape-form'
 
 type CaminoRoute<T extends string> = { params: ZodObjectParsUrlParams<T> } & {
   get?: { output: ZodType }
diff --git a/packages/common/src/roles.test.ts b/packages/common/src/roles.test.ts
index 7f2e973476b8d099b6d12ee1a3eb59e81073ef8d..8a1c6e8505386ae712fd01c95035dc37c14d413e 100644
--- a/packages/common/src/roles.test.ts
+++ b/packages/common/src/roles.test.ts
@@ -11,8 +11,8 @@ import {
   isBureauDEtudes,
   BaseUserNotNull,
   toUtilisateurId,
-} from './roles.js'
-import { ADMINISTRATION_IDS } from './static/administrations.js'
+} from './roles'
+import { ADMINISTRATION_IDS } from './static/administrations'
 import { test, expect, describe } from 'vitest'
 const administrationId = ADMINISTRATION_IDS.CACEM
 describe('role', () => {
diff --git a/packages/common/src/roles.ts b/packages/common/src/roles.ts
index 54ff946627b276a8f96ce354b254fcfdfdd492c0..7cb8870db3838d6c60d4c9cdfe24378be0f13a2b 100644
--- a/packages/common/src/roles.ts
+++ b/packages/common/src/roles.ts
@@ -1,7 +1,7 @@
-import { administrationIdValidator } from './static/administrations.js'
-import { entrepriseValidator } from './entreprise.js'
+import { administrationIdValidator } from './static/administrations'
+import { entrepriseValidator } from './entreprise'
 import { z } from 'zod'
-import { DeepReadonly } from './typescript-tools.js'
+import { DeepReadonly } from './typescript-tools'
 
 export const ROLES = ['super', 'admin', 'editeur', 'lecteur', 'entreprise', 'bureau d’études', 'defaut'] as const
 
diff --git a/packages/common/src/sections.ts b/packages/common/src/sections.ts
index 897a9294ff6de2ea6c46854296d16820c7d55b99..07ed5f4388360fe0827d3b1a6341d220853b99d9 100644
--- a/packages/common/src/sections.ts
+++ b/packages/common/src/sections.ts
@@ -1,5 +1,5 @@
-import { caminoDateValidator, dateFormat } from './date.js'
-import { numberFormat } from './number.js'
+import { caminoDateValidator, dateFormat } from './date'
+import { numberFormat } from './number'
 import {
   checkboxElementValidator,
   checkboxesElementValidator,
@@ -10,13 +10,13 @@ import {
   selectElementWithOptionsValidator,
   textElementValidator,
   urlElementValidator,
-} from './static/titresTypes_demarchesTypes_etapesTypes/sections.js'
+} from './static/titresTypes_demarchesTypes_etapesTypes/sections'
 import { z } from 'zod'
-import { DeepReadonly, isNotNullNorUndefined } from './typescript-tools.js'
-import { TitreTypeId } from './static/titresTypes.js'
-import { DemarcheTypeId } from './static/demarchesTypes.js'
-import { EtapeTypeId } from './static/etapesTypes.js'
-import { EtapeContenu, FlattenEtape, FlattenedContenu, RestEtapeCreation, HeritageContenu } from './etape-form.js'
+import { DeepReadonly, isNotNullNorUndefined } from './typescript-tools'
+import { TitreTypeId } from './static/titresTypes'
+import { DemarcheTypeId } from './static/demarchesTypes'
+import { EtapeTypeId } from './static/etapesTypes'
+import { EtapeContenu, FlattenEtape, FlattenedContenu, RestEtapeCreation, HeritageContenu } from './etape-form'
 
 const dateElementWithValueValidator = dateElementValidator.extend({ value: caminoDateValidator.nullable() })
 
diff --git a/packages/common/src/static/activitesTypes.ts b/packages/common/src/static/activitesTypes.ts
index e1ed7fe23ebeb6d0c79ff29efcf64c807248d214..7018c049b87d20621bd91f9784ac44cd20fe1b15 100644
--- a/packages/common/src/static/activitesTypes.ts
+++ b/packages/common/src/static/activitesTypes.ts
@@ -1,7 +1,7 @@
-import { CaminoDate, toCaminoDate } from '../date.js'
-import { FrequenceId } from './frequence.js'
-import { Section, SectionElement } from './titresTypes_demarchesTypes_etapesTypes/sections.js'
-import { DeepReadonly } from '../typescript-tools.js'
+import { CaminoDate, toCaminoDate } from '../date'
+import { FrequenceId } from './frequence'
+import { Section, SectionElement } from './titresTypes_demarchesTypes_etapesTypes/sections'
+import { DeepReadonly } from '../typescript-tools'
 import { z } from 'zod'
 
 const IDS = ['gra', 'grp', 'grx', 'pma', 'pmb', 'pmc', 'pmd', 'wrp'] as const
diff --git a/packages/common/src/static/activitesTypesDocumentsTypes.ts b/packages/common/src/static/activitesTypesDocumentsTypes.ts
index 14f3dc3aec8bc53b445511c5a244e4f582bd390b..fa54e9419160d85ad5d8b001053a59c776245f2f 100644
--- a/packages/common/src/static/activitesTypesDocumentsTypes.ts
+++ b/packages/common/src/static/activitesTypesDocumentsTypes.ts
@@ -1,5 +1,5 @@
-import { ACTIVITES_TYPES_IDS, ActivitesTypesId } from './activitesTypes.js'
-import { DOCUMENTS_TYPES_IDS, DocumentTypeId } from './documentsTypes.js'
+import { ACTIVITES_TYPES_IDS, ActivitesTypesId } from './activitesTypes'
+import { DOCUMENTS_TYPES_IDS, DocumentTypeId } from './documentsTypes'
 
 export const activitesTypesDocumentsTypes = {
   [ACTIVITES_TYPES_IDS["rapport trimestriel d'exploitation d'or en Guyane"]]: null,
diff --git a/packages/common/src/static/activitesTypesPays.ts b/packages/common/src/static/activitesTypesPays.ts
index a183835be4a159f680a1ea2740b33118276b6249..70f390fab2cd43acb1dfb4dc88cabc2450a4f78f 100644
--- a/packages/common/src/static/activitesTypesPays.ts
+++ b/packages/common/src/static/activitesTypesPays.ts
@@ -1,5 +1,5 @@
-import { ACTIVITES_TYPES_IDS, ActivitesTypesId } from './activitesTypes.js'
-import { PAYS_IDS, PaysId } from './pays.js'
+import { ACTIVITES_TYPES_IDS, ActivitesTypesId } from './activitesTypes'
+import { PAYS_IDS, PaysId } from './pays'
 
 export const activitesTypesPays: { [key in ActivitesTypesId]: PaysId[] } = {
   [ACTIVITES_TYPES_IDS["rapport trimestriel d'exploitation d'or en Guyane"]]: [PAYS_IDS['Département de la Guyane']],
diff --git a/packages/common/src/static/activitesTypesTitresTypes.ts b/packages/common/src/static/activitesTypesTitresTypes.ts
index 903f9d5ebba4854b1e1da01a057ba0693728b783..77923ab00df1a4b0a8ed185781c1d53998f59419 100644
--- a/packages/common/src/static/activitesTypesTitresTypes.ts
+++ b/packages/common/src/static/activitesTypesTitresTypes.ts
@@ -1,5 +1,5 @@
-import { TITRES_TYPES_IDS, TitreTypeId } from './titresTypes.js'
-import { ACTIVITES_TYPES_IDS, ActivitesTypesId } from './activitesTypes.js'
+import { TITRES_TYPES_IDS, TitreTypeId } from './titresTypes'
+import { ACTIVITES_TYPES_IDS, ActivitesTypesId } from './activitesTypes'
 
 export const activitesTypesTitresTypes: { [key in ActivitesTypesId]: TitreTypeId[] } = {
   [ACTIVITES_TYPES_IDS["rapport trimestriel d'exploitation d'or en Guyane"]]: [
diff --git a/packages/common/src/static/administrations.test.ts b/packages/common/src/static/administrations.test.ts
index 1ead77f7eda52b5f46d13925de56903bd43a2a8e..a0442081664181b3dbd9fbc82ab7afa1b826d2a0 100644
--- a/packages/common/src/static/administrations.test.ts
+++ b/packages/common/src/static/administrations.test.ts
@@ -1,4 +1,4 @@
-import { ADMINISTRATION_IDS, isAdministrationId, sortedAdministrationTypes } from './administrations.js'
+import { ADMINISTRATION_IDS, isAdministrationId, sortedAdministrationTypes } from './administrations'
 import { test, expect } from 'vitest'
 
 test('sortedAdministrationTypes', () => {
diff --git a/packages/common/src/static/administrations.ts b/packages/common/src/static/administrations.ts
index fdd6063e8fd36f6240a5baa854d730e8aad1ab42..c9d1013b1981c95e27382da2aa736c78a249f3e0 100644
--- a/packages/common/src/static/administrations.ts
+++ b/packages/common/src/static/administrations.ts
@@ -1,8 +1,8 @@
-import { Definition } from '../definition.js'
-import { RegionId } from './region.js'
-import { DepartementId } from './departement.js'
+import { Definition } from '../definition'
+import { RegionId } from './region'
+import { DepartementId } from './departement'
 import { z } from 'zod'
-import { map } from '../typescript-tools.js'
+import { map } from '../typescript-tools'
 
 const ADMINISTRATION_TYPE_IDS_ARRAY = ['aut', 'dre', 'min', 'ope', 'pre'] as const
 
diff --git a/packages/common/src/static/administrationsTitresTypes.test.ts b/packages/common/src/static/administrationsTitresTypes.test.ts
index 4e63e715c0034d23d223a7de79f75310a89250bf..f80c60de4d2e1ddd4d80810b9da0db4d62b1b931 100644
--- a/packages/common/src/static/administrationsTitresTypes.test.ts
+++ b/packages/common/src/static/administrationsTitresTypes.test.ts
@@ -1,6 +1,6 @@
-import { AdministrationId, ADMINISTRATION_IDS } from './administrations.js'
-import { isAssociee, isGestionnaire, getTitreTypeIdsByAdministration, getGestionnairesByTitreTypeId } from './administrationsTitresTypes.js'
-import { TitresTypesIds, TitreTypeId } from './titresTypes.js'
+import { AdministrationId, ADMINISTRATION_IDS } from './administrations'
+import { isAssociee, isGestionnaire, getTitreTypeIdsByAdministration, getGestionnairesByTitreTypeId } from './administrationsTitresTypes'
+import { TitresTypesIds, TitreTypeId } from './titresTypes'
 import { test, expect } from 'vitest'
 
 interface AdministrationsWithTitreTypeId {
diff --git a/packages/common/src/static/administrationsTitresTypes.ts b/packages/common/src/static/administrationsTitresTypes.ts
index 064cd13724617d000cd12f7fde3dbfbded0ee431..f0df1d003371ec931492d268c7d3bb887baa3244 100644
--- a/packages/common/src/static/administrationsTitresTypes.ts
+++ b/packages/common/src/static/administrationsTitresTypes.ts
@@ -1,6 +1,6 @@
-import { getKeys, PartialRecord } from '../typescript-tools.js'
-import { AdministrationId, Administrations, AdministrationTypeId, ADMINISTRATION_TYPE_IDS, IDS } from './administrations.js'
-import { isTitreType, TITRES_TYPES_IDS, TitreTypeId } from './titresTypes.js'
+import { getKeys, PartialRecord } from '../typescript-tools'
+import { AdministrationId, Administrations, AdministrationTypeId, ADMINISTRATION_TYPE_IDS, IDS } from './administrations'
+import { isTitreType, TITRES_TYPES_IDS, TitreTypeId } from './titresTypes'
 
 type AdministrationTitreType = PartialRecord<
   TitreTypeId,
diff --git a/packages/common/src/static/administrationsTitresTypesEtapesTypes.ts b/packages/common/src/static/administrationsTitresTypesEtapesTypes.ts
index 662769f86ceca8c48da7a4cc41f22aed82414d0e..5af2c1df5184f9205f1d8583cedfa6c2cf9cf0eb 100644
--- a/packages/common/src/static/administrationsTitresTypesEtapesTypes.ts
+++ b/packages/common/src/static/administrationsTitresTypesEtapesTypes.ts
@@ -1,7 +1,7 @@
-import { getKeys, isNotNullNorUndefined } from '../typescript-tools.js'
-import { AdministrationId, ADMINISTRATION_IDS } from './administrations.js'
-import { EtapeTypeId, ETAPES_TYPES, isEtapeTypeId } from './etapesTypes.js'
-import { isTitreType, TITRES_TYPES_IDS, TitreTypeId } from './titresTypes.js'
+import { getKeys, isNotNullNorUndefined } from '../typescript-tools'
+import { AdministrationId, ADMINISTRATION_IDS } from './administrations'
+import { EtapeTypeId, ETAPES_TYPES, isEtapeTypeId } from './etapesTypes'
+import { isTitreType, TITRES_TYPES_IDS, TitreTypeId } from './titresTypes'
 
 // TODO 2023-01-24: on n'a exposé uniquement creationInterdit
 const restrictions = (
diff --git a/packages/common/src/static/administrationsTitresTypesTitresStatuts.ts b/packages/common/src/static/administrationsTitresTypesTitresStatuts.ts
index 737e02b8148566d5689e95c6e9a72d2caaa13983..99714f4335444d3214f6b25f090788e0721e3b08 100644
--- a/packages/common/src/static/administrationsTitresTypesTitresStatuts.ts
+++ b/packages/common/src/static/administrationsTitresTypesTitresStatuts.ts
@@ -1,7 +1,7 @@
-import { getKeys, isNotNullNorUndefined } from '../typescript-tools.js'
-import { AdministrationId, ADMINISTRATION_IDS } from './administrations.js'
-import { isTitreStatutId, TitresStatutIds, TitreStatutId } from './titresStatuts.js'
-import { isTitreType, TITRES_TYPES_IDS, TitreTypeId } from './titresTypes.js'
+import { getKeys, isNotNullNorUndefined } from '../typescript-tools'
+import { AdministrationId, ADMINISTRATION_IDS } from './administrations'
+import { isTitreStatutId, TitresStatutIds, TitreStatutId } from './titresStatuts'
+import { isTitreType, TITRES_TYPES_IDS, TitreTypeId } from './titresTypes'
 
 export const canAdministrationModifyEtapes = (administrationId: AdministrationId, titreTypeId: TitreTypeId, titreStatutId: TitreStatutId): boolean => {
   return !restrictions(administrationId, titreTypeId, titreStatutId).etapesModificationInterdit
diff --git a/packages/common/src/static/demarchesStatus.test.ts b/packages/common/src/static/demarchesStatus.test.ts
index 78c1b1d4354fc1ccca81675298171d49c792c5a0..bffad341ec6317b1f4a5bda32cc6b8b22b799ade 100644
--- a/packages/common/src/static/demarchesStatus.test.ts
+++ b/packages/common/src/static/demarchesStatus.test.ts
@@ -1,4 +1,4 @@
-import { isDemarcheStatutNonStatue, isDemarcheStatutNonValide } from './demarchesStatuts.js'
+import { isDemarcheStatutNonStatue, isDemarcheStatutNonValide } from './demarchesStatuts'
 import { test, expect } from 'vitest'
 
 test('isDemarcheStatutNonStatue', () => {
diff --git a/packages/common/src/static/demarchesStatuts.ts b/packages/common/src/static/demarchesStatuts.ts
index 672abc965bd9285ba2832d2b62f0b66c3f80868a..7c6110e15a90a6e612856db45c238fc939c7e9da 100644
--- a/packages/common/src/static/demarchesStatuts.ts
+++ b/packages/common/src/static/demarchesStatuts.ts
@@ -1,5 +1,5 @@
-import { Definition } from '../definition.js'
-import { Couleur } from './couleurs.js'
+import { Definition } from '../definition'
+import { Couleur } from './couleurs'
 import { z } from 'zod'
 
 const IDS = ['acc', 'cls', 'dep', 'des', 'eco', 'fpm', 'ind', 'ini', 'ins', 'rej', 'ter', 'acp', 'rea'] as const
diff --git a/packages/common/src/static/demarchesTypes.test.ts b/packages/common/src/static/demarchesTypes.test.ts
index 4f36e45ca5e290daf877a6df462206308e1ab23e..6bc0c5447335a95f07c8601d3ea34302e94af42f 100644
--- a/packages/common/src/static/demarchesTypes.test.ts
+++ b/packages/common/src/static/demarchesTypes.test.ts
@@ -1,6 +1,6 @@
-import { getValues } from '../typescript-tools.js'
-import { sortedDemarchesStatuts } from './demarchesStatuts.js'
-import { DEMARCHES_TYPES_IDS, isDemarcheTypeId, isDemarcheTypeOctroi, isDemarcheTypeWithPhase, canImpactTitre } from './demarchesTypes.js'
+import { getValues } from '../typescript-tools'
+import { sortedDemarchesStatuts } from './demarchesStatuts'
+import { DEMARCHES_TYPES_IDS, isDemarcheTypeId, isDemarcheTypeOctroi, isDemarcheTypeWithPhase, canImpactTitre } from './demarchesTypes'
 import { test, expect } from 'vitest'
 
 test('isDemarcheTypeId', () => {
diff --git a/packages/common/src/static/demarchesTypes.ts b/packages/common/src/static/demarchesTypes.ts
index a78cafc4f8297909374fc5a0e9b32d06006e71e7..e745c6d38cde5b92128307ff119d23bdf88228f4 100644
--- a/packages/common/src/static/demarchesTypes.ts
+++ b/packages/common/src/static/demarchesTypes.ts
@@ -1,6 +1,6 @@
-import { Definition } from '../definition.js'
+import { Definition } from '../definition'
 import { z } from 'zod'
-import { DemarcheStatutId, demarcheStatutIdsSuccess } from './demarchesStatuts.js'
+import { DemarcheStatutId, demarcheStatutIdsSuccess } from './demarchesStatuts'
 export interface DemarcheType<T = DemarcheTypeId> extends Definition<T> {
   titulaires: boolean
   renouvelable: boolean
diff --git a/packages/common/src/static/departement.test.ts b/packages/common/src/static/departement.test.ts
index ce3f04b6c68fdd6936b5e9c6cee4f1b7ba52938d..cce6e467f2d934ee5c35f3bc28837c7af3c85c71 100644
--- a/packages/common/src/static/departement.test.ts
+++ b/packages/common/src/static/departement.test.ts
@@ -1,5 +1,5 @@
-import { communeIdValidator } from './communes.js'
-import { checkCodePostal, isDepartementId, toDepartementId, departementsMetropole } from './departement.js'
+import { communeIdValidator } from './communes'
+import { checkCodePostal, isDepartementId, toDepartementId, departementsMetropole } from './departement'
 import { test, expect } from 'vitest'
 
 test('isDepartementId', () => {
diff --git a/packages/common/src/static/departement.ts b/packages/common/src/static/departement.ts
index 62e9c3ff0cf406f1a89b4ad4294c52fb3f82cbc6..7335ba09cec23d5d5843aa9c4dc150fe5932d78b 100644
--- a/packages/common/src/static/departement.ts
+++ b/packages/common/src/static/departement.ts
@@ -1,6 +1,6 @@
-import { CommuneId } from './communes.js'
-import { PAYS_IDS } from './pays.js'
-import { RegionId, Regions } from './region.js'
+import { CommuneId } from './communes'
+import { PAYS_IDS } from './pays'
+import { RegionId, Regions } from './region'
 import { z } from 'zod'
 
 // prettier-ignore
diff --git a/packages/common/src/static/devise.ts b/packages/common/src/static/devise.ts
index c3ee28eb51e93c2306893245d7293f8e632f8d40..0ee6ee8035f5d0419f6c751e01ab40de743075db 100644
--- a/packages/common/src/static/devise.ts
+++ b/packages/common/src/static/devise.ts
@@ -1,4 +1,4 @@
-import { Definition } from '../definition.js'
+import { Definition } from '../definition'
 import { z } from 'zod'
 const IDS = ['EUR', 'FRF', 'XPF'] as const
 export const DEVISES_IDS = {
diff --git a/packages/common/src/static/documentsTypes.test.ts b/packages/common/src/static/documentsTypes.test.ts
index de893bc92ebb08f1ef8ac53fd4989ae3e0082226..657b0133cdba41f0063e1e92710f441ffdbaf96f 100644
--- a/packages/common/src/static/documentsTypes.test.ts
+++ b/packages/common/src/static/documentsTypes.test.ts
@@ -1,4 +1,4 @@
-import { isDocumentTypeId } from './documentsTypes.js'
+import { isDocumentTypeId } from './documentsTypes'
 import { test, expect } from 'vitest'
 
 test('isDocumentTypeId', () => {
diff --git a/packages/common/src/static/documentsTypes.ts b/packages/common/src/static/documentsTypes.ts
index 885cfc51e4400aa3480bc172a19de3a2e8975423..3aaf08045aeab2fb32c1399eb5ae080e4c16ac35 100644
--- a/packages/common/src/static/documentsTypes.ts
+++ b/packages/common/src/static/documentsTypes.ts
@@ -1,5 +1,5 @@
 import { z } from 'zod'
-import { NonEmptyArray, map } from '../typescript-tools.js'
+import { NonEmptyArray, map } from '../typescript-tools'
 
 export interface DocumentType {
   id: DocumentTypeId
diff --git a/packages/common/src/static/domaines.test.ts b/packages/common/src/static/domaines.test.ts
index 5f0e16ae59cdd168510b347c150582666b3a07a2..ca4b26a21f5aa33ca6ceb1b351e5d406b348deb1 100644
--- a/packages/common/src/static/domaines.test.ts
+++ b/packages/common/src/static/domaines.test.ts
@@ -1,4 +1,4 @@
-import { Domaines, DOMAINES_IDS, isDomaineId } from './domaines.js'
+import { Domaines, DOMAINES_IDS, isDomaineId } from './domaines'
 import { test, expect } from 'vitest'
 
 test('domaine', () => {
diff --git a/packages/common/src/static/domaines.ts b/packages/common/src/static/domaines.ts
index 3db2161b207f3ba156ac3f6e13882a467a02587d..b3fece2df5867a4ff8b17162e458c108219220eb 100644
--- a/packages/common/src/static/domaines.ts
+++ b/packages/common/src/static/domaines.ts
@@ -1,4 +1,4 @@
-import { Definition } from '../definition.js'
+import { Definition } from '../definition'
 import { z } from 'zod'
 
 const IDS = ['m', 'c', 'f', 'g', 'h', 'r', 's', 'w'] as const
diff --git a/packages/common/src/static/etapesStatuts.ts b/packages/common/src/static/etapesStatuts.ts
index cc1b8514186f619019763c925d6b2a928102c96d..cd05e049ddf329dd91425db0f57691a1e9400665 100644
--- a/packages/common/src/static/etapesStatuts.ts
+++ b/packages/common/src/static/etapesStatuts.ts
@@ -1,4 +1,4 @@
-import { Couleur } from './couleurs.js'
+import { Couleur } from './couleurs'
 import { z } from 'zod'
 
 const IDS = ['acc', 'dre', 'enc', 'fai', 'dep', 'exe', 'req', 'com', 'inc', 'fav', 'def', 'fre', 'ajo', 'rej', 'ter', 'nul', 'pro'] as const
diff --git a/packages/common/src/static/etapesTypes.ts b/packages/common/src/static/etapesTypes.ts
index 7efe956396ae7ff38bba5f06ca86408b55519148..adc51337ec6fbe39dde9de92d54bb7209e057fec 100644
--- a/packages/common/src/static/etapesTypes.ts
+++ b/packages/common/src/static/etapesTypes.ts
@@ -1,7 +1,7 @@
 import { z } from 'zod'
-import { CaminoDate, toCaminoDate } from '../date.js'
-import { Definition } from '../definition.js'
-import { EtapeBrouillon } from '../etape.js'
+import { CaminoDate, toCaminoDate } from '../date'
+import { Definition } from '../definition'
+import { EtapeBrouillon } from '../etape'
 
 // prettier-ignore
 const IDS = ['abd', 'aca','aco','and','ane','anf','def','dex','dim', 'dpu', 'dup', 'dux','ihi', 'mfr','mod','mom','rca','rcb','rcd','rcm','rco','rcs','rie','rif','rim','rpu','sco','acg','acl','aep','ama','apd','ape','apo','app','apu','apw','asl','cac','ccs','cim','cod','css','dae','dec','des','ede','edm','epc','epu','esb','ide','mca','mcb','mcd','mcm','mco','mcp','mcr','mcs','mdp','mec','men','meo','mie','mif','mim','mna','mnb','mnc','mnd','mni','mno','mns','mnv','ncl','nis','npp','pfc','pfd','ppu','pqr','rcg','rde','rpe','sas','sca','scg','scl','spe','spo','spp','vfc','vfd','wab','wae','wao','wap','war','wau','wce','wco','wda','wdc','wdd','wde','wdm','wfa','wfd','wfo','wfr','wmm','wmr','wmt','woe','wpa','wpb','wpc','wpo','wpp','wps','wrc','wrd','wre','wrl','wrt','wse','wtp', 'asc'] as const
diff --git a/packages/common/src/static/etapesTypesEtapesStatuts.test.ts b/packages/common/src/static/etapesTypesEtapesStatuts.test.ts
index 33ad409744754fd073cc6046a2e7df282e2fc006..d2c1f1beedba473bd9dbfb33d991ab76d64d04eb 100644
--- a/packages/common/src/static/etapesTypesEtapesStatuts.test.ts
+++ b/packages/common/src/static/etapesTypesEtapesStatuts.test.ts
@@ -1,6 +1,6 @@
-import { EtapesStatuts } from './etapesStatuts.js'
-import { ETAPES_TYPES } from './etapesTypes.js'
-import { getEtapesStatuts } from './etapesTypesEtapesStatuts.js'
+import { EtapesStatuts } from './etapesStatuts'
+import { ETAPES_TYPES } from './etapesTypes'
+import { getEtapesStatuts } from './etapesTypesEtapesStatuts'
 import { test, expect } from 'vitest'
 
 test('getEtapesStatuts', () => {
diff --git a/packages/common/src/static/etapesTypesEtapesStatuts.ts b/packages/common/src/static/etapesTypesEtapesStatuts.ts
index f99436792876140a80a51f5da405ccc70075cfb6..f8c94624102a68dd1c69e859c134184b60f4b269 100644
--- a/packages/common/src/static/etapesTypesEtapesStatuts.ts
+++ b/packages/common/src/static/etapesTypesEtapesStatuts.ts
@@ -1,5 +1,5 @@
-import { EtapesStatuts, EtapeStatut, EtapeStatutId, ETAPES_STATUTS } from './etapesStatuts.js'
-import { ETAPES_TYPES, EtapeTypeId } from './etapesTypes.js'
+import { EtapesStatuts, EtapeStatut, EtapeStatutId, ETAPES_STATUTS } from './etapesStatuts'
+import { ETAPES_TYPES, EtapeTypeId } from './etapesTypes'
 
 export interface EtapeTypeEtapeStatut<T extends EtapeTypeId, R extends EtapeStatutId> {
   etapeStatutId: R
diff --git a/packages/common/src/static/facades.test.ts b/packages/common/src/static/facades.test.ts
index 91f6330ab76bea5d96a1c1c06dfdb456d908c827..7f951fa7e9f4a3c36e8801afb86792b1586ed7cd 100644
--- a/packages/common/src/static/facades.test.ts
+++ b/packages/common/src/static/facades.test.ts
@@ -1,4 +1,4 @@
-import { getSecteurMaritime } from './facades.js'
+import { getSecteurMaritime } from './facades'
 import { test, expect } from 'vitest'
 
 test('getSecteurMaritime', () => {
diff --git a/packages/common/src/static/facades.ts b/packages/common/src/static/facades.ts
index cfe3c1a4b7eda31dd7d226355d0b4eb05634d31f..a73ee26685a9860ea7092c43578918c27e75e095 100644
--- a/packages/common/src/static/facades.ts
+++ b/packages/common/src/static/facades.ts
@@ -1,5 +1,5 @@
-import { DepartementId, DEPARTEMENT_IDS } from './departement.js'
-import { getEntries, getKeys, onlyUnique } from '../typescript-tools.js'
+import { DepartementId, DEPARTEMENT_IDS } from './departement'
+import { getEntries, getKeys, onlyUnique } from '../typescript-tools'
 import { z } from 'zod'
 
 // prettier-ignore
diff --git a/packages/common/src/static/frequence.test.ts b/packages/common/src/static/frequence.test.ts
index 78e32afc9999512e69cb97cac156bd462489a4e9..3da2259851177aefa95d5df7e56cfa3dca788b46 100644
--- a/packages/common/src/static/frequence.test.ts
+++ b/packages/common/src/static/frequence.test.ts
@@ -1,4 +1,4 @@
-import { FREQUENCES_IDS, getMonth, getPeriode } from './frequence.js'
+import { FREQUENCES_IDS, getMonth, getPeriode } from './frequence'
 import { test, expect } from 'vitest'
 
 test('getPeriode', () => {
diff --git a/packages/common/src/static/pays.test.ts b/packages/common/src/static/pays.test.ts
index d5cf7e13d2d8c81ea936d6bb6ba12159652b85f8..80c62d2a84e5585f57b0d74ae14d98dd356b3bb5 100644
--- a/packages/common/src/static/pays.test.ts
+++ b/packages/common/src/static/pays.test.ts
@@ -1,4 +1,4 @@
-import { isGuyane, isMetropole, isOutreMer } from './pays.js'
+import { isGuyane, isMetropole, isOutreMer } from './pays'
 import { test, expect } from 'vitest'
 
 test('isOutreMer', () => {
diff --git a/packages/common/src/static/phasesStatuts.ts b/packages/common/src/static/phasesStatuts.ts
index 2d808bcc086c81391cb746fe82cfb67584862f4f..bf2c49593b8e6d3b593278cbe330f95eb4f53e1b 100644
--- a/packages/common/src/static/phasesStatuts.ts
+++ b/packages/common/src/static/phasesStatuts.ts
@@ -1,6 +1,6 @@
-import { CaminoDate } from '../date.js'
-import { Definition } from '../definition.js'
-import { Couleur } from './couleurs.js'
+import { CaminoDate } from '../date'
+import { Definition } from '../definition'
+import { Couleur } from './couleurs'
 
 const PHASES_STATUTS_IDS = {
   Echu: 'ech',
diff --git a/packages/common/src/static/region.test.ts b/packages/common/src/static/region.test.ts
index 84876f4201fa26bd9ee69ba84c31d50fb0c53356..b0cc5ed2b321fdd7e204e8b089b44b1f7d64223d 100644
--- a/packages/common/src/static/region.test.ts
+++ b/packages/common/src/static/region.test.ts
@@ -1,4 +1,4 @@
-import { isRegionId } from './region.js'
+import { isRegionId } from './region'
 import { test, expect } from 'vitest'
 
 test('isRegionId', () => {
diff --git a/packages/common/src/static/region.ts b/packages/common/src/static/region.ts
index 81ea2d66c84a1a0e6a7de1053d51aea32f8e4cad..e81135d8178c01c8f594244cc024f2d4dc36e466 100644
--- a/packages/common/src/static/region.ts
+++ b/packages/common/src/static/region.ts
@@ -1,4 +1,4 @@
-import { PaysId } from './pays.js'
+import { PaysId } from './pays'
 import { z } from 'zod'
 // prettier-ignore
 const IDS = ['01','02','03','04','06','11','24','27','28','32','44','52','53','75','76','84','93','94',] as const
diff --git a/packages/common/src/static/sdom.ts b/packages/common/src/static/sdom.ts
index 3583a5a13ae97b8713af0538c93a185f518fe39d..051614785043651abc56fba81d6fd0f992301947 100644
--- a/packages/common/src/static/sdom.ts
+++ b/packages/common/src/static/sdom.ts
@@ -1,4 +1,4 @@
-import { Definition } from '../definition.js'
+import { Definition } from '../definition'
 import { z } from 'zod'
 
 const IDS = ['0', '0_potentielle', '1', '2'] as const
diff --git a/packages/common/src/static/statistiques.ts b/packages/common/src/static/statistiques.ts
index 194a05cf06f593b380078c74cf177e1266ef4635..9faa74d1abb4ad0af29a0ed4fdeffe6b64d55d7a 100644
--- a/packages/common/src/static/statistiques.ts
+++ b/packages/common/src/static/statistiques.ts
@@ -1,5 +1,5 @@
 import { z } from 'zod'
-import { toCaminoDate } from '../date.js'
+import { toCaminoDate } from '../date'
 import { StatistiquesDataGouv } from '../statistiques'
 
 // prettier-ignore
diff --git a/packages/common/src/static/substancesFiscales.test.ts b/packages/common/src/static/substancesFiscales.test.ts
index 37029161b54064789c3f7762e92cf18cbc540fed..8cce74b84014d3b90214f023e33e8bffddfca733 100644
--- a/packages/common/src/static/substancesFiscales.test.ts
+++ b/packages/common/src/static/substancesFiscales.test.ts
@@ -1,4 +1,4 @@
-import { isSubstanceFiscale, substancesFiscalesBySubstanceLegale } from './substancesFiscales.js'
+import { isSubstanceFiscale, substancesFiscalesBySubstanceLegale } from './substancesFiscales'
 import { test, expect } from 'vitest'
 
 test('isSubstanceFiscale', () => {
diff --git a/packages/common/src/static/substancesFiscales.ts b/packages/common/src/static/substancesFiscales.ts
index 89060137a34a62e7469c5a7f779410f754c3dfc1..51b23f87d61b46df0a275e051ddec8d55cc8ef7e 100644
--- a/packages/common/src/static/substancesFiscales.ts
+++ b/packages/common/src/static/substancesFiscales.ts
@@ -1,5 +1,5 @@
-import { UniteId } from './unites.js'
-import { SubstanceLegaleId, SubstancesLegales } from './substancesLegales.js'
+import { UniteId } from './unites'
+import { SubstanceLegaleId, SubstancesLegales } from './substancesLegales'
 import { z } from 'zod'
 
 // prettier-ignore
diff --git a/packages/common/src/static/substancesLegales.ts b/packages/common/src/static/substancesLegales.ts
index 46745651b2532b93b4a56ddc8320e6b91a1d8cdc..0070edfdc422c2ba553c75991230f33fa1d09304 100644
--- a/packages/common/src/static/substancesLegales.ts
+++ b/packages/common/src/static/substancesLegales.ts
@@ -1,4 +1,4 @@
-import { DomaineId } from './domaines.js'
+import { DomaineId } from './domaines'
 import { z } from 'zod'
 // prettier-ignore
 const IDS = ['cfxx','selh','aloh','anti','arge','arse','auru','bery','bism','cadm','ceri','cesi','chro','coba','coox','cuiv','diam','etai','ferx','fluo','gall','geob','geoh', 'gehp', 'gebp','geom','germ','grap','grma','hafn','heli','hydm','hydx','indi','kals','kclx','lith','mang','merc','moly','nacl','nick','niob','oooo','phos','plat','plax','plom','radi','rhen','rubi','rxxx','scan','scoc','sele','skst','souf','soxx','tant','tell','thal','thor','tita','trxx','uran','vana','wolf','zinc','zirc','acti','amph','anda','ande','anhy','ardo','argc','argf','argk','args','asta','bary','basa','bitu','buta','caci','calc','cals','cend','cfan','cfch','cfho','cfli','corn','crai','daci','diab','diat','dior','dole','dolo','dysp','erbi','ethy','euro','falu','feld','gabb','gado','galt','gazn','glac','gnei','grai','grao','gref','gres','grsi','gyps','holm','hyda','hydc','hydg','hydo','hydr','irid','kaol','lant','lept','lute','maer','mais','marb','marn','meba','meco','mepr','mica','mics','migm','mylo','neod','ocre','ophi','osmi','pall','perl','phon','pipe','polo','porp','pouz','pras','prom','prot','prpa','prpy','pyri','quar','quat','rado','rard','rdet','rhod','rhyo','ruth','saco','sama','samg','sasi','scbi','schi','selg','selp','sels','selx','serp','sexs','sgin','sgra','sgrm','sgsc','sgsm','silc','sili','silx','smil','sssc','stex','syen','talc','tech','terb','terv','thul','tmas','tour','trac','tufo','ytri','ytte','hydrog','co2',] as const
diff --git a/packages/common/src/static/titresStatus.test.ts b/packages/common/src/static/titresStatus.test.ts
index ad34e12882e9a715c09c1d072c6c8c8ce05cc5f3..5005eb512de3cbda086200a9327ff97a8dbdf339 100644
--- a/packages/common/src/static/titresStatus.test.ts
+++ b/packages/common/src/static/titresStatus.test.ts
@@ -1,4 +1,4 @@
-import { isTitreStatutId } from './titresStatuts.js'
+import { isTitreStatutId } from './titresStatuts'
 import { test, expect } from 'vitest'
 
 test('isTitreStatutId', () => {
diff --git a/packages/common/src/static/titresStatuts.ts b/packages/common/src/static/titresStatuts.ts
index de18c0a87e557be2fe67b6adaf682d060b63f781..2cd497a6ba7164a83ab8c112d166fabf18cbfd17 100644
--- a/packages/common/src/static/titresStatuts.ts
+++ b/packages/common/src/static/titresStatuts.ts
@@ -1,4 +1,4 @@
-import { Definition } from '../definition.js'
+import { Definition } from '../definition'
 import { z } from 'zod'
 
 const TitresStatutKeys = ['dmc', 'dmi', 'ech', 'ind', 'mod', 'val', 'sup'] as const
diff --git a/packages/common/src/static/titresTypes.test.ts b/packages/common/src/static/titresTypes.test.ts
index d9fd5ab5af98381bc72171c60ea20486aee906cd..1a918e4d0d359bae05e3585f0eb55a1db1011471 100644
--- a/packages/common/src/static/titresTypes.test.ts
+++ b/packages/common/src/static/titresTypes.test.ts
@@ -1,5 +1,5 @@
-import { DomaineId, domainesIds } from './domaines.js'
-import { TitresTypesIds, isTitreType, toTitreTypeId, getTitreTypeType, getDomaineId, getTitreTypeTypeByDomaineId } from './titresTypes.js'
+import { DomaineId, domainesIds } from './domaines'
+import { TitresTypesIds, isTitreType, toTitreTypeId, getTitreTypeType, getDomaineId, getTitreTypeTypeByDomaineId } from './titresTypes'
 import { test, expect } from 'vitest'
 
 test('isTitreType', () => {
diff --git a/packages/common/src/static/titresTypes.ts b/packages/common/src/static/titresTypes.ts
index 15c5bfe135bfe72f891292fb01fdfb605af78f61..ebd8e1f7dc71f1d393b03000335c8314f08fe8fd 100644
--- a/packages/common/src/static/titresTypes.ts
+++ b/packages/common/src/static/titresTypes.ts
@@ -1,5 +1,5 @@
-import { DomaineId, isDomaineId } from './domaines.js'
-import { isTitreTypeType, TitreTypeTypeId } from './titresTypesTypes.js'
+import { DomaineId, isDomaineId } from './domaines'
+import { isTitreTypeType, TitreTypeTypeId } from './titresTypesTypes'
 import { z } from 'zod'
 interface Definition<T> {
   id: T
diff --git a/packages/common/src/static/titresTypesDemarchesTypes.test.ts b/packages/common/src/static/titresTypesDemarchesTypes.test.ts
index 088af53622387049cd9a7d981fd5eab17888aa1a..a5f82d2eb8df12c13f979836c100860b0b677be2 100644
--- a/packages/common/src/static/titresTypesDemarchesTypes.test.ts
+++ b/packages/common/src/static/titresTypesDemarchesTypes.test.ts
@@ -1,6 +1,6 @@
 import { test, expect } from 'vitest'
-import { TITRES_TYPES_IDS } from './titresTypes.js'
-import { getDemarchesTypesByTitreType } from './titresTypesDemarchesTypes.js'
+import { TITRES_TYPES_IDS } from './titresTypes'
+import { getDemarchesTypesByTitreType } from './titresTypesDemarchesTypes'
 
 test('getDemarchesTypesByTitreType', () => {
   expect(getDemarchesTypesByTitreType(TITRES_TYPES_IDS.CONCESSION_METAUX)).toMatchInlineSnapshot(`
diff --git a/packages/common/src/static/titresTypesDemarchesTypes.ts b/packages/common/src/static/titresTypesDemarchesTypes.ts
index e04df8022199dd412595b1da5df00005041af7f6..a6c8f55f972147380be58a8ebfc251952bf61b8e 100644
--- a/packages/common/src/static/titresTypesDemarchesTypes.ts
+++ b/packages/common/src/static/titresTypesDemarchesTypes.ts
@@ -1,5 +1,5 @@
-import { DEMARCHES_TYPES_IDS, DemarcheType, DemarchesTypes } from './demarchesTypes.js'
-import { TITRES_TYPES_IDS, TitreTypeId, isTitreType } from './titresTypes.js'
+import { DEMARCHES_TYPES_IDS, DemarcheType, DemarchesTypes } from './demarchesTypes'
+import { TITRES_TYPES_IDS, TitreTypeId, isTitreType } from './titresTypes'
 
 const demarchesEverywhere = [
   DEMARCHES_TYPES_IDS.AutorisationDOuvertureDeTravaux,
diff --git a/packages/common/src/static/titresTypesTypes.test.ts b/packages/common/src/static/titresTypesTypes.test.ts
index affcaa603fdbbe5ea5e7c3e088b2df4cf312f596..3c070b95e82083125d2e99b68cb7b2da9d7830db 100644
--- a/packages/common/src/static/titresTypesTypes.test.ts
+++ b/packages/common/src/static/titresTypesTypes.test.ts
@@ -1,4 +1,4 @@
-import { isTitreTypeType } from './titresTypesTypes.js'
+import { isTitreTypeType } from './titresTypesTypes'
 import { test, expect } from 'vitest'
 
 test('isTitreTypeType', () => {
diff --git a/packages/common/src/static/titresTypesTypes.ts b/packages/common/src/static/titresTypesTypes.ts
index 1bd4976bcd75b0260b433791a225b2fb09bfb17d..56eb6ade5030ca7fd1dbb6d7d2b8f791dc97f52c 100644
--- a/packages/common/src/static/titresTypesTypes.ts
+++ b/packages/common/src/static/titresTypesTypes.ts
@@ -1,4 +1,4 @@
-import { Definition } from '../definition.js'
+import { Definition } from '../definition'
 import { z } from 'zod'
 
 const IDS = ['ap', 'ar', 'ax', 'cx', 'in', 'pc', 'pr', 'px'] as const
diff --git a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.test.ts b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.test.ts
index c710f7226a72ea5beb89644f0c05b19f0b775d2a..c4fac479e665b10475961c0cc638fb27a1c672aa 100644
--- a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.test.ts
+++ b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.test.ts
@@ -1,5 +1,5 @@
-import { ETAPES_TYPES } from '../etapesTypes.js'
-import { getDocuments } from './documents.js'
+import { ETAPES_TYPES } from '../etapesTypes'
+import { getDocuments } from './documents'
 import { test, expect } from 'vitest'
 
 test('getDocuments erreurs', () => {
diff --git a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.ts b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.ts
index bc6e1bce17982e95378366ec9a34e530a4bbd378..3486140ad85804393f8b5ad93f985452c94b721c 100644
--- a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.ts
+++ b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/documents.ts
@@ -1,9 +1,9 @@
-import { getKeys, isNotNullNorUndefined } from '../../typescript-tools.js'
-import { DEMARCHES_TYPES_IDS, DemarcheTypeId, isDemarcheTypeId } from './../demarchesTypes.js'
-import { DocumentsTypes, DOCUMENTS_TYPES_IDS, DocumentType, DocumentTypeId, isDocumentTypeId } from './../documentsTypes.js'
-import { ETAPES_TYPES, EtapeTypeId, isEtapeTypeId } from './../etapesTypes.js'
-import { TitreTypeId, TITRES_TYPES_IDS, isTitreType } from './../titresTypes.js'
-import { TDEType } from './index.js'
+import { getKeys, isNotNullNorUndefined } from '../../typescript-tools'
+import { DEMARCHES_TYPES_IDS, DemarcheTypeId, isDemarcheTypeId } from './../demarchesTypes'
+import { DocumentsTypes, DOCUMENTS_TYPES_IDS, DocumentType, DocumentTypeId, isDocumentTypeId } from './../documentsTypes'
+import { ETAPES_TYPES, EtapeTypeId, isEtapeTypeId } from './../etapesTypes'
+import { TitreTypeId, TITRES_TYPES_IDS, isTitreType } from './../titresTypes'
+import { TDEType } from './index'
 
 const EtapesTypesDocumentsTypes = {
   [ETAPES_TYPES.avisDunPresidentDEPCI]: [{ documentTypeId: DOCUMENTS_TYPES_IDS.avis, optionnel: true }],
diff --git a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/entrepriseDocuments.ts b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/entrepriseDocuments.ts
index 4efff19944c0103f95dd7fc7078c1b4c6c48301b..857e9e91b8900e8984cfd98cc1af34a2b8e671d6 100644
--- a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/entrepriseDocuments.ts
+++ b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/entrepriseDocuments.ts
@@ -1,9 +1,9 @@
-import { getKeys, isNotNullNorUndefined, onlyUnique } from '../../typescript-tools.js'
-import { DEMARCHES_TYPES_IDS, DemarcheTypeId, isDemarcheTypeId } from '../demarchesTypes.js'
-import { DocumentsTypes, DOCUMENTS_TYPES_IDS, EntrepriseDocumentTypeId, EntrepriseDocumentType, isEntrepriseDocumentTypeId } from '../documentsTypes.js'
-import { ETAPES_TYPES, EtapeTypeId, isEtapeTypeId } from '../etapesTypes.js'
-import { TitreTypeId, TITRES_TYPES_IDS, isTitreType } from '../titresTypes.js'
-import { TDEType } from './index.js'
+import { getKeys, isNotNullNorUndefined, onlyUnique } from '../../typescript-tools'
+import { DEMARCHES_TYPES_IDS, DemarcheTypeId, isDemarcheTypeId } from '../demarchesTypes'
+import { DocumentsTypes, DOCUMENTS_TYPES_IDS, EntrepriseDocumentTypeId, EntrepriseDocumentType, isEntrepriseDocumentTypeId } from '../documentsTypes'
+import { ETAPES_TYPES, EtapeTypeId, isEtapeTypeId } from '../etapesTypes'
+import { TitreTypeId, TITRES_TYPES_IDS, isTitreType } from '../titresTypes'
+import { TDEType } from './index'
 
 const EtapesTypesEntrepriseDocumentsTypes = {
   [ETAPES_TYPES.demande]: [
diff --git a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/index.test.ts b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/index.test.ts
index 7523dc9416797bce297b89f54075c36834e0d478..ed21d3c18c7cb3689204e62912d1491f72a1c11a 100644
--- a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/index.test.ts
+++ b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/index.test.ts
@@ -1,4 +1,4 @@
-import { getEtapesTDE, isTDEExist } from './index.js'
+import { getEtapesTDE, isTDEExist } from './index'
 import { test, expect } from 'vitest'
 
 test('getEtapesTDE', () => {
diff --git a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/index.ts b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/index.ts
index bbf7dc34ab56cdff00aa1a82cfcd8d3a0bd65c13..52ae0190586e9594274eb6d1b7d85a4cd00d42f4 100644
--- a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/index.ts
+++ b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/index.ts
@@ -1,7 +1,7 @@
-import { DEMARCHES_TYPES_IDS, DemarcheTypeId, TravauxIds } from '../demarchesTypes.js'
-import { ETAPES_TYPES, EtapeTypeId } from '../etapesTypes.js'
-import { TITRES_TYPES_IDS, TitreTypeId } from '../titresTypes.js'
-import { TitresTypesDemarchesTypes } from '../titresTypesDemarchesTypes.js'
+import { DEMARCHES_TYPES_IDS, DemarcheTypeId, TravauxIds } from '../demarchesTypes'
+import { ETAPES_TYPES, EtapeTypeId } from '../etapesTypes'
+import { TITRES_TYPES_IDS, TitreTypeId } from '../titresTypes'
+import { TitresTypesDemarchesTypes } from '../titresTypesDemarchesTypes'
 
 const travaux = {
   [DEMARCHES_TYPES_IDS.AutorisationDOuvertureDeTravaux]: [
diff --git a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sdom.ts b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sdom.ts
index c3dbbf444a89619f79fb4bd9d3da276ce9ba5ab2..9f9e2f9979090d3e2856584d5c3acbc7b32cbe78 100644
--- a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sdom.ts
+++ b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sdom.ts
@@ -1,11 +1,11 @@
-import { DeepReadonly } from '../../typescript-tools.js'
-import { DEMARCHES_TYPES_IDS } from '../demarchesTypes.js'
-import { DOCUMENTS_TYPES_IDS } from '../documentsTypes.js'
-import { DOMAINES_IDS } from '../domaines.js'
-import { ETAPES_TYPES } from '../etapesTypes.js'
-import { SDOMZoneId, SDOMZoneIds } from '../sdom.js'
-import { toTitreTypeId } from '../titresTypes.js'
-import { TITRES_TYPES_TYPES_IDS } from '../titresTypesTypes.js'
+import { DeepReadonly } from '../../typescript-tools'
+import { DEMARCHES_TYPES_IDS } from '../demarchesTypes'
+import { DOCUMENTS_TYPES_IDS } from '../documentsTypes'
+import { DOMAINES_IDS } from '../domaines'
+import { ETAPES_TYPES } from '../etapesTypes'
+import { SDOMZoneId, SDOMZoneIds } from '../sdom'
+import { toTitreTypeId } from '../titresTypes'
+import { TITRES_TYPES_TYPES_IDS } from '../titresTypesTypes'
 
 type DocumentTypeIdsBySdomZonesGet = 'nir' | 'jeg' | 'nip'
 export const documentTypeIdsBySdomZonesGet = (sdomZones: DeepReadonly<SDOMZoneId[]>, titreTypeId: string, demarcheTypeId: string, etapeTypeId: string): DocumentTypeIdsBySdomZonesGet[] => {
diff --git a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.test.ts b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.test.ts
index 5fb56f74a56686fd45e9ad4fafa3cc54f4fedfcf..84d4c2ea5394ef57290eaacb6bd8136d496559a3 100644
--- a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.test.ts
+++ b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.test.ts
@@ -1,4 +1,4 @@
-import { getSections, getSectionsWithValue, sectionValidator } from './sections.js'
+import { getSections, getSectionsWithValue, sectionValidator } from './sections'
 import { test, expect, describe } from 'vitest'
 const activitesSectionsProd = require('./activites.sections.json')
 
diff --git a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.ts b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.ts
index 601b5027f210b3fcdf703eafc4365cf0cb07b088..4d591aae20cf0ef58df05d0b56e93a26d50f61d8 100644
--- a/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.ts
+++ b/packages/common/src/static/titresTypes_demarchesTypes_etapesTypes/sections.ts
@@ -1,15 +1,15 @@
-import { caminoDateValidator } from '../../date.js'
-import { DEMARCHES_TYPES_IDS, DemarcheTypeId } from '../demarchesTypes.js'
-import { TITRES_TYPES_IDS, TitreTypeId } from '../titresTypes.js'
-import { ETAPES_TYPES, EtapeTypeId } from '../etapesTypes.js'
-import { TDEType } from './index.js'
-import { DeepReadonly, exhaustiveCheck, isNotNullNorUndefined } from '../../typescript-tools.js'
-import { uniteIdValidator, UNITES, Unites } from '../unites.js'
-import { sortedDevises } from '../devise.js'
+import { caminoDateValidator } from '../../date'
+import { DEMARCHES_TYPES_IDS, DemarcheTypeId } from '../demarchesTypes'
+import { TITRES_TYPES_IDS, TitreTypeId } from '../titresTypes'
+import { ETAPES_TYPES, EtapeTypeId } from '../etapesTypes'
+import { TDEType } from './index'
+import { DeepReadonly, exhaustiveCheck, isNotNullNorUndefined } from '../../typescript-tools'
+import { uniteIdValidator, UNITES, Unites } from '../unites'
+import { sortedDevises } from '../devise'
 import { z } from 'zod'
-import { ElementWithValue, SectionWithValue } from '../../sections.js'
-import { Contenu } from '../../permissions/sections.js'
-import { FlattenEtape } from '../../etape-form.js'
+import { ElementWithValue, SectionWithValue } from '../../sections'
+import { Contenu } from '../../permissions/sections'
+import { FlattenEtape } from '../../etape-form'
 
 const gestionDeLaDemandeDeComplements: Section[] = [
   {
diff --git a/packages/common/src/static/titresTypes_titresStatuts.test.ts b/packages/common/src/static/titresTypes_titresStatuts.test.ts
index f58ebe0b705971b1255b93ec41b535bec0807aeb..ad5a3401e8dd2a63d3e543ee5a37d2eb4093575e 100644
--- a/packages/common/src/static/titresTypes_titresStatuts.test.ts
+++ b/packages/common/src/static/titresTypes_titresStatuts.test.ts
@@ -1,7 +1,7 @@
-import { TitresStatutIds } from './titresStatuts.js'
-import { titrePublicFind } from './titresTypes_titresStatuts.js'
+import { TitresStatutIds } from './titresStatuts'
+import { titrePublicFind } from './titresTypes_titresStatuts'
 import { test, expect, describe } from 'vitest'
-import { TITRES_TYPES_IDS } from './titresTypes.js'
+import { TITRES_TYPES_IDS } from './titresTypes'
 
 describe("publicité d'un titre", () => {
   test("un titre sans démarche n'est pas public", () => {
diff --git a/packages/common/src/static/titresTypes_titresStatuts.ts b/packages/common/src/static/titresTypes_titresStatuts.ts
index 2d8088cca29d775557a79d7b5e1a22bfcd5e7ea3..d631a2e5730ca2c5d2e816e21f3c979a35c8e427 100644
--- a/packages/common/src/static/titresTypes_titresStatuts.ts
+++ b/packages/common/src/static/titresTypes_titresStatuts.ts
@@ -1,6 +1,6 @@
-import { isNotNullNorUndefined, getKeys } from '../typescript-tools.js'
-import { TitresStatutIds, TitreStatutId } from './titresStatuts.js'
-import { TITRES_TYPES_IDS, TitreTypeId, isTitreType } from './titresTypes.js'
+import { isNotNullNorUndefined, getKeys } from '../typescript-tools'
+import { TitresStatutIds, TitreStatutId } from './titresStatuts'
+import { TITRES_TYPES_IDS, TitreTypeId, isTitreType } from './titresTypes'
 
 export const titrePublicFind = (titreStatutId: TitreStatutId, titreTypeId: TitreTypeId, hasDemarchePublic: boolean): boolean => {
   // si le type de titre associé au domaine associé au statut du titre est public
diff --git a/packages/common/src/static/unites.test.ts b/packages/common/src/static/unites.test.ts
index 93b59727b0843e29795fec40a6cf2427158d931b..813b0b5e677438780e8168b525e74d8c29e08fa0 100644
--- a/packages/common/src/static/unites.test.ts
+++ b/packages/common/src/static/unites.test.ts
@@ -1,4 +1,4 @@
-import { fromUniteFiscaleToUnite } from './unites.js'
+import { fromUniteFiscaleToUnite } from './unites'
 import { test, expect } from 'vitest'
 
 test('fromUniteFiscaleToUnite', () => {
diff --git a/packages/common/src/statistiques.ts b/packages/common/src/statistiques.ts
index fc9958c29370ecb58856ac878c90f0f2137cc42a..c82938ae8a1b11d82a777648275e359655fad46a 100644
--- a/packages/common/src/statistiques.ts
+++ b/packages/common/src/statistiques.ts
@@ -1,11 +1,11 @@
 import { z } from 'zod'
-import { CaminoAnnee, caminoAnneeValidator, caminoDateValidator } from './date.js'
-import { AdministrationTypeId } from './static/administrations.js'
-import { regionIdValidator } from './static/region.js'
-import { SDOMZoneIds } from './static/sdom.js'
-import { SUBSTANCES_FISCALES_IDS, SubstanceFiscaleId } from './static/substancesFiscales.js'
-import { TitresTypes } from './static/titresTypes.js'
-import { CaminoStatistiquesDataGouvId } from './static/statistiques.js'
+import { CaminoAnnee, caminoAnneeValidator, caminoDateValidator } from './date'
+import { AdministrationTypeId } from './static/administrations'
+import { regionIdValidator } from './static/region'
+import { SDOMZoneIds } from './static/sdom'
+import { SUBSTANCES_FISCALES_IDS, SubstanceFiscaleId } from './static/substancesFiscales'
+import { TitresTypes } from './static/titresTypes'
+import { CaminoStatistiquesDataGouvId } from './static/statistiques'
 
 export const yearMonthValidator = z
   .string()
diff --git a/packages/common/src/territoires.test.ts b/packages/common/src/territoires.test.ts
index 20d085dd9a8802824628a31a50b9a0e9aef89fd6..9a6fd6e5a7d6d0000065af391898a998eed5202e 100644
--- a/packages/common/src/territoires.test.ts
+++ b/packages/common/src/territoires.test.ts
@@ -1,4 +1,4 @@
-import { toCommuneId } from 'camino-common/src/static/communes.js'
+import { toCommuneId } from 'camino-common/src/static/communes'
 import { describe, expect, test } from 'vitest'
 import { territoiresFind, territoiresIdFind } from './territoires'
 describe('territoiresFind', () => {
diff --git a/packages/common/src/territoires.ts b/packages/common/src/territoires.ts
index f83bbb318468044c75266cce5bda1fe0681f3c97..ad1f19bf7d5041c406f054c012beeac709c3d9cd 100644
--- a/packages/common/src/territoires.ts
+++ b/packages/common/src/territoires.ts
@@ -1,9 +1,9 @@
-import { CommuneId } from './static/communes.js'
-import { FacadeComputed, FacadesMaritimes, getDepartementsBySecteurs, getFacade, getFacadesComputed, SecteursMaritimes } from './static/facades.js'
-import { DepartementId, DepartementLabel, Departements, toDepartementId } from './static/departement.js'
-import { RegionId, RegionLabel, Regions } from './static/region.js'
-import { DeepReadonly, onlyUnique } from './typescript-tools.js'
-import { PaysId } from './static/pays.js'
+import { CommuneId } from './static/communes'
+import { FacadeComputed, FacadesMaritimes, getDepartementsBySecteurs, getFacade, getFacadesComputed, SecteursMaritimes } from './static/facades'
+import { DepartementId, DepartementLabel, Departements, toDepartementId } from './static/departement'
+import { RegionId, RegionLabel, Regions } from './static/region'
+import { DeepReadonly, onlyUnique } from './typescript-tools'
+import { PaysId } from './static/pays'
 
 export const territoiresFind = (
   communesWithName: Record<CommuneId, string>,
diff --git a/packages/common/src/tests-utils.ts b/packages/common/src/tests-utils.ts
index 8e0c4616a4b5c793b961756ccc9d3215d66f38d0..e533b49295ca06bb2990239564ecd9e701eed924 100644
--- a/packages/common/src/tests-utils.ts
+++ b/packages/common/src/tests-utils.ts
@@ -1,4 +1,4 @@
-import { AdminUserNotNull, EntrepriseUserNotNull, toUtilisateurId, UserDefaut, UserNotNull, UserSuper } from './roles.js'
+import { AdminUserNotNull, EntrepriseUserNotNull, toUtilisateurId, UserDefaut, UserNotNull, UserSuper } from './roles'
 
 export type TestUser = Pick<UserSuper, 'role'> | Pick<UserDefaut, 'role'> | Pick<AdminUserNotNull, 'role' | 'administrationId'> | Pick<EntrepriseUserNotNull, 'role' | 'entreprises'>
 export const testBlankUser: Omit<UserNotNull, 'role'> = {
diff --git a/packages/common/src/titres-references.ts b/packages/common/src/titres-references.ts
index 3bf4e768011d92353773814c1a9cd23b3c069af6..e409b834adb1c2ddebc6cc2c254bae5b1c4871b4 100644
--- a/packages/common/src/titres-references.ts
+++ b/packages/common/src/titres-references.ts
@@ -1,4 +1,4 @@
-import { referenceTypeIdValidator } from './static/referencesTypes.js'
+import { referenceTypeIdValidator } from './static/referencesTypes'
 import { z } from 'zod'
 
 export const titreReferenceValidator = z.object({
diff --git a/packages/common/src/titres.ts b/packages/common/src/titres.ts
index 691f981631c04006a6e2c8159461ff698c286acc..ac1e03c1781e603fd94ebd90bb90f4a1aafa8b32 100644
--- a/packages/common/src/titres.ts
+++ b/packages/common/src/titres.ts
@@ -1,18 +1,18 @@
-import { TitreStatutId, titreStatutIdValidator } from './static/titresStatuts.js'
-import { TitreReference, titreReferenceValidator } from './titres-references.js'
-import { etapeTypeIdValidator } from './static/etapesTypes.js'
-import { caminoDateValidator } from './date.js'
-import { TitreTypeId, titreTypeIdValidator } from './static/titresTypes.js'
+import { TitreStatutId, titreStatutIdValidator } from './static/titresStatuts'
+import { TitreReference, titreReferenceValidator } from './titres-references'
+import { etapeTypeIdValidator } from './static/etapesTypes'
+import { caminoDateValidator } from './date'
+import { TitreTypeId, titreTypeIdValidator } from './static/titresTypes'
 import { z } from 'zod'
-import { administrationIdValidator } from './static/administrations.js'
-import { DemarcheEtape, DemarcheEtapeFondamentale, DemarcheEtapeNonFondamentale, demarcheEtapeValidator, demarcheIdValidator, demarcheSlugValidator } from './demarche.js'
-import { demarcheStatutIdValidator } from './static/demarchesStatuts.js'
-import { demarcheTypeIdValidator } from './static/demarchesTypes.js'
-import { TitreId, titreIdValidator, titreSlugValidator } from './validators/titres.js'
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from './typescript-tools.js'
-import { EntrepriseId, entrepriseIdValidator } from './entreprise.js'
-import { isFondamentalesStatutOk } from './static/etapesStatuts.js'
-import { ETAPE_IS_NOT_BROUILLON, etapeIdValidator } from './etape.js'
+import { administrationIdValidator } from './static/administrations'
+import { DemarcheEtape, DemarcheEtapeFondamentale, DemarcheEtapeNonFondamentale, demarcheEtapeValidator, demarcheIdValidator, demarcheSlugValidator } from './demarche'
+import { demarcheStatutIdValidator } from './static/demarchesStatuts'
+import { demarcheTypeIdValidator } from './static/demarchesTypes'
+import { TitreId, titreIdValidator, titreSlugValidator } from './validators/titres'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty } from './typescript-tools'
+import { EntrepriseId, entrepriseIdValidator } from './entreprise'
+import { isFondamentalesStatutOk } from './static/etapesStatuts'
+import { ETAPE_IS_NOT_BROUILLON, etapeIdValidator } from './etape'
 
 const commonTitreValidator = z.object({
   id: titreIdValidator,
diff --git a/packages/common/src/typescript-tools.test.ts b/packages/common/src/typescript-tools.test.ts
index a8a2be0d0644f0b91e7de33b6b5c4c1eebb6eb1a..f3a0e4d07900896dccc114e57e6aa51494411585 100644
--- a/packages/common/src/typescript-tools.test.ts
+++ b/packages/common/src/typescript-tools.test.ts
@@ -1,7 +1,7 @@
-import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefinedOrEmpty, memoize, onlyUnique, stringArrayEquals } from './typescript-tools.js'
-import { Role } from './roles.js'
-import { AdministrationId } from './static/administrations.js'
-import { Departements } from './static/departement.js'
+import { isNotNullNorUndefined, isNotNullNorUndefinedNorEmpty, isNullOrUndefinedOrEmpty, memoize, onlyUnique, stringArrayEquals } from './typescript-tools'
+import { Role } from './roles'
+import { AdministrationId } from './static/administrations'
+import { Departements } from './static/departement'
 import { test, expect, describe } from 'vitest'
 
 describe('isNotNullNorUndefined', () => {
diff --git a/packages/common/src/utilisateur.ts b/packages/common/src/utilisateur.ts
index 9cb43629b281e3215b93cae0e5ac7d61412666be..39163a82d3cf2373a2939b28359c81df36eb9dfb 100644
--- a/packages/common/src/utilisateur.ts
+++ b/packages/common/src/utilisateur.ts
@@ -1,7 +1,7 @@
-import { Role, ROLES, utilisateurIdValidator } from './roles.js'
-import { AdministrationId, IDS } from './static/administrations.js'
+import { Role, ROLES, utilisateurIdValidator } from './roles'
+import { AdministrationId, IDS } from './static/administrations'
 import { z } from 'zod'
-import { entrepriseIdValidator } from './entreprise.js'
+import { entrepriseIdValidator } from './entreprise'
 
 export const qgisTokenValidator = z.object({ token: z.string(), url: z.string() })
 export type QGISToken = z.infer<typeof qgisTokenValidator>
diff --git a/packages/common/src/zod-tools.ts b/packages/common/src/zod-tools.ts
index cafdae23415e7c9e8f1bbd2917b43db9fd4c2480..f4936b49301683fabf3b7cf3b8c1586c558e710b 100644
--- a/packages/common/src/zod-tools.ts
+++ b/packages/common/src/zod-tools.ts
@@ -1,7 +1,7 @@
 import { z, ZodIssue, ZodIssueCode, ZodParsedType } from 'zod'
-import { exhaustiveCheck, isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from './typescript-tools.js'
-import { caminoDateValidator } from './date.js'
-import { etapeTypeIdValidator } from './static/etapesTypes.js'
+import { exhaustiveCheck, isNotNullNorUndefinedNorEmpty, isNullOrUndefined } from './typescript-tools'
+import { caminoDateValidator } from './date'
+import { etapeTypeIdValidator } from './static/etapesTypes'
 
 export const nullToDefault =
   <Y>(defaultWhenNullOrUndefined: NoInfer<Y>) =>