Skip to content

Commit

Permalink
feat: guess more typologies from name
Browse files Browse the repository at this point in the history
  • Loading branch information
marc-gavanier committed Dec 20, 2024
1 parent 1cd7f9f commit bd0ad27
Show file tree
Hide file tree
Showing 7 changed files with 1,321 additions and 328 deletions.
2 changes: 1 addition & 1 deletion .tsconfig/tsconfig.base.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */

/* Language and Environment */
"target": "es2022" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
"target": "es2023" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */,
"lib": ["dom"] /* Specify a set of bundled library declaration files that describe the target runtime environment. */,
// "jsx": "preserve", /* Specify what JSX code is generated. */
// "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
Expand Down
2 changes: 1 addition & 1 deletion .tsconfig/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"compilerOptions": {
"outDir": "../dist",
"module": "commonjs",
"target": "es2022"
"target": "es2023"
},
"include": ["../src/**/*"],
"exclude": ["../src/**/*.spec.ts", "../src/**/*.test.ts"]
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@
"tsx": "^4.19.1"
},
"dependencies": {
"@gouvfr-anct/lieux-de-mediation-numerique": "^2.0.1",
"@gouvfr-anct/lieux-de-mediation-numerique": "^2.1.0",
"@gouvfr-anct/timetable-to-osm-opening-hours": "^1.0.1",
"@turf/turf": "^6.5.0",
"axios": "^1.7.7",
Expand Down
612 changes: 339 additions & 273 deletions pnpm-lock.yaml

Large diffs are not rendered by default.

285 changes: 243 additions & 42 deletions src/transformer/fields/typologies/name-to-typologie.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,16 @@ import { Typologie } from '@gouvfr-anct/lieux-de-mediation-numerique';
import { TypologieMatcher } from './typologies.field';

export const TYPOLOGIE_MATCHERS: TypologieMatcher[] = [
{
typologie: Typologie.MUNI,
matchers: [/mairie/iu, /commune/iu, /^ville d[eu]/iu, /h[oô]tel de ville/iu]
},
{
typologie: Typologie.FT,
matchers: [/france travail/iu]
},
{
typologie: Typologie.FT,
matchers: [/p[ôo]le emploi/iu]
},
{
typologie: Typologie.BIB,
matchers: [/m[ée]diath[èeé]que/iu, /biblioth[èeé]que/iu]
matchers: [
/m[ée]diath[èeé]que/iu,
/bibl?ioth[èeé]que/iu,
/Mediathquete/iu,
/Mediathque/iu,
/Médiathqèue/iu,
/Médiatthèque/iu
]
},
{
typologie: Typologie.TIERS_LIEUX,
Expand All @@ -28,17 +23,15 @@ export const TYPOLOGIE_MATCHERS: TypologieMatcher[] = [
typologie: Typologie.ML,
matchers: [/mission locale/iu, /mis local/iu]
},
{
typologie: Typologie.MQ,
matchers: [/maison de quartier/iu]
},
{
typologie: Typologie.MDS,
matchers: [
/(?:^|\W)MDSI?(?:\W|$)/iu,
/(?:^|\W)MSD(?:\W|$)/iu,
/maison du d[ée]partement/iu,
/(?:maison|espace) d[eé]partementale? des solidarit[eé]s/iu,
/(?:maison|espace) d[eé]partementale? de la solidarit[ée]/iu,
/(?:maison|espace) de la solidarit[eé] d[eé]partementale/iu
/(?:maison|espace|centre) d[eé]partementale?s? des? (?:la )?solidarit[eé]s?/iu,
/(?:maison|espace|centre) d[eé]partementale?s? de proximit[eé]/iu,
/(?:maison|espace|centre) des? (?:la )?solidarit[eé]s? d[eé]partementale?s?/iu
]
},
{
Expand All @@ -51,15 +44,31 @@ export const TYPOLOGIE_MATCHERS: TypologieMatcher[] = [
},
{
typologie: Typologie.CAF,
matchers: [/caisse d['\s]allocations familiales/iu]
matchers: [/caisse d['\s]allocations familiales/iu, /(?:^|\s)CAF(?:\s|@|$)/iu]
},
{
typologie: Typologie.CADA,
matchers: [/CADA\s/iu]
},
{
typologie: Typologie.CD,
matchers: [/^CON?SEIL DEP/iu, /CDAD/iu]
},
{
typologie: Typologie.CDAS,
matchers: [/^CDAS(?:\s|$)/iu]
},
{
typologie: Typologie.CFP,
matchers: [/Finances Publiques/iu, /Finances Public/iu]
},
{
typologie: Typologie.RS_FJT,
matchers: [/(?:^|\W)FJT(?:\W|$)/iu]
},
{
typologie: Typologie.PIJ_BIJ,
matchers: [/info(?:rmation)?s? jeune/iu, /(?:^|\W)PIJ(?:\W|$)/iu, /(?:^|\W)CRIJ(?:\W|$)/iu, /point accueil jeunesse/iu]
typologie: Typologie.ACI,
matchers: [/^ACI\s/iu, /Chantier d'Insertion/iu]
},
{
typologie: Typologie.ASSO,
Expand All @@ -72,34 +81,234 @@ export const TYPOLOGIE_MATCHERS: TypologieMatcher[] = [
/croix[\s-]Rouge/iu,
/secours catholique/iu,
/restos du c(?:oe|œ)ur/iu,
/familles rurales/iu,
/familles? rurales?/iu,
/LIGUE (?:DE L[\s']|D')?ENSEIGNEMENT/iu,
/Konexio/iu,
/Groupe SOS/iu,
/APF\s/iu,
/ASSO\s/iu,
/associatif/iu,
/Coallia/iu,
/(?:^|\W)AFR(?:\W|$)/iu
]
},
{
typologie: Typologie.CS,
matchers: [/centre social/iu, /centres sociaux/iu]
},
{
typologie: Typologie.PREF,
matchers: [/sous[-\s]pr[ée]fecture/iu]
},
{
typologie: Typologie.CD,
matchers: [/conseil d[eé]partemental/iu]
},
{
typologie: Typologie.CC,
matchers: [/communaut[ée] de communes/iu, /(?:^|\W)cdc(?:\W|$)/iu, /(?:^|\W)cc(?:\W|$)/iu, /communaute com/iu]
matchers: [/^communaut[ée] des? com(?:munes?)?/iu, /^cdc(?:\W|$)/iu, /^cc(?:\W|$)/iu]
},
{
typologie: Typologie.CCAS,
matchers: [/(?:^|\W)ccas(?:\W|$)/iu, /ctre com action social/iu, /centre communal d['\s]action social/iu]
matchers: [
/(?:^|\W)ccas(?:\W|$)/iu,
/(?:^|\W)c\.c\.a\.s(?:\W|$)/iu,
/c(?:en)?tr?e com(?:munal)? action social/iu,
/centre communal.? d['\s]action social/iu
]
},
{
typologie: Typologie.CCONS,
matchers: [/CONSULAT/iu]
},
{
typologie: Typologie.CIAS,
matchers: [/(?:^|\W)CIAS(?:\W|$)/iu, /centre intercommunal d['\s]action sociale/iu]
},
{
typologie: Typologie.CIDFF,
matchers: [/(?:^|\W)CIDFF(?:\W|\d|$)/iu]
},
{
typologie: Typologie.CITMET,
matchers: [/Cit[ée] de l'Emploi/iu, /CJM/iu, /Cit[ée] des M[ée]tiers/iu]
},
{
typologie: Typologie.CMP,
matchers: [/(?:^|\W)CMP(?:\W|\d|$)/iu, /Centre Médico Psychologique/iu]
},
{
typologie: Typologie.CMS,
matchers: [/^CMS(?:\s|$)/iu, /^PMS(?:\s|$)/iu, /(?:Centre|P[oô]le|Relais) m[ée]dic(?:o|aux)\WSocia(?:l|ux)/iu]
},
{
typologie: Typologie.CPAM,
matchers: [/(?:^|\W)CPAM(?:\W|$)/iu, /CAISSE PRIMAIRE D?[' ]?ASSURANCE MALADIE/iu]
},
{
typologie: Typologie.CPH,
matchers: [/(?:^|\W)CPH(?:\W|$)/iu]
},
{
typologie: Typologie.CS,
matchers: [/(?:^|\W)CS(?:\W|$)/iu, /(?:espace|c(?:en)?tre) (?:socia(?:l|ux)|soc\W)/iu]
},
{
typologie: Typologie.CSAPA,
matchers: [/(?:^|\W)CSAPA(?:\W|$)/iu]
},
{
typologie: Typologie.CSC,
matchers: [
/(?:^|\W)CSC(?:\W|$)/iu,
/soci(?:o|al)\W?cul?turel/iu,
/Sociale? et Culturel(?:le)?/iu,
/Culturel(?:le)? et Sociale?/iu,
/Centres? Culturels?/iu
]
},
{
typologie: Typologie.DEPT,
matchers: [/(?:^|\W)DPT(?:\W|$)/iu, /^D[ée]partement(?:\W|$)/iu]
},
{
typologie: Typologie.E2C,
matchers: [/(?:^|\W)[ée]cole deuxième chance(?:\W|$)/iu]
},
{
typologie: Typologie.EI,
matchers: [/(?:^|\W)EI(?:\W|$)/iu]
},
{
typologie: Typologie.ENM,
matchers: [/(?:^|\W)Bus(?:\W|$)/iu]
},
{
typologie: Typologie.EPI,
matchers: [/(?:^|\W)EPI(?:\W|$)/iu, /Espace Public (?:Internet|Informatique)/iu]
},
{
typologie: Typologie.EPIDE,
matchers: [/(?:^|\W)EPIDE(?:\W|$)/iu]
},
{
typologie: Typologie.EPN,
matchers: [
/(?:^|\W)EPN(?:\W|$)/iu,
/(?:Espace|[ée]tablissement)s?(?: Publi(?:c|que))? (?:Multim[ée]dia|Num[ée]riques?)/iu,
/Cyber\W?(?:base|centre)/iu
]
},
{
typologie: Typologie.ES,
matchers: [/[ée]picerie (?:bar|sociale|solidaire)/iu]
},
{
typologie: Typologie.ESAT,
matchers: [/(?:^|\W)ESAT(?:\W|$)/iu]
},
{
typologie: Typologie.ESS,
matchers: [/[ée]conomique Social et Solidaire/iu]
},
{
typologie: Typologie.EVS,
matchers: [/(?:^|\W)EVS(?:\W|$)/iu, /Espace de Vie Sociale/iu]
},
{
typologie: Typologie.FABLAB,
matchers: [/(?:^|\W)FAB\W?(?:LAB|AT)(?:\W|$)/iu]
},
{
typologie: Typologie.FT,
matchers: [/france travail/iu, /p[ôo]le emploi/iu]
},
{
typologie: Typologie.GEIQ,
matchers: [/Groupement (?:local )?(?:d')?Employeurs/iu, /Groupement pour l'Insertion/iu]
},
{
typologie: Typologie.LA_POSTE,
matchers: [/la\s?poste/iu, /poste\s/iu, /Agence (?:communale )?postale/iu, /Bureau de poste/iu]
},
{
typologie: Typologie.MDE,
matchers: [/Maison de l'emploi/iu, /Maison de l'économie/iu]
},
{
typologie: Typologie.MDH,
matchers: [/Maison des Habitant/iu]
},
{
typologie: Typologie.MDPH,
matchers: [/(?:^|\W)MDPH(?:\W|$)/iu, /Maison D[ée]p(?:artementale des)? Personnes Handicap[ée]es/iu]
},
{
typologie: Typologie.MJC,
matchers: [
/(?:^|\W)MJC(?:\W|$)/iu,
/(?:^|\W)M\.J\.C(?:\W|$)/iu,
/maison (?:des? )?jeunes,? (?:et |& )?(?:de )?(?:la )?culture/iu
]
},
{
typologie: Typologie.MQ,
matchers: [/maison de quartier/iu]
},
{
typologie: Typologie.MSAP,
matchers: [/(?:^|\W)MSAP(?:\W|$)/iu, /(?:Maison|Relais) des? Services?/iu]
},
{
typologie: Typologie.MUNI,
matchers: [
/(?:^|\W)Municipalité(?:\W|$)/iu,
/(?:^|\W)mairie(?:\W|$)/iu,
/(?:^|\W)maire(?:\W|$)/iu,
/^commune(?:\W|$)/iu,
/^CA\s/iu,
/\sAgglo(?:m[ée]ration)?$/iu,
/Agglom[ée]ration d/iu,
/Communaut[ée] (?:d\W)?Agglom[ée]ration/iu,
/^ville d[eu]/iu,
/h[oô]tel de ville/iu
]
},
{
typologie: Typologie.PAD,
matchers: [/Accès au Droit/iu]
},
{
typologie: Typologie.PI,
matchers: [/Point d'information/iu, /Point Info/iu]
},
{
typologie: Typologie.PIJ_BIJ,
matchers: [
/(?:^|\W)BIJ(?:\W|$)/iu,
/info(?:rmation)?s? jeune/iu,
/(?:^|\W)PIJ(?:\W|$)/iu,
/(?:^|\W)CRIJ(?:\W|$)/iu,
/point accueil jeunesse/iu,
/Espace jeune/iu
]
},
{
typologie: Typologie.PIMMS,
matchers: [/(?:^|\W)PIMMS(?:\W|$)/iu, /point information mediation multi services/iu]
},
{
typologie: Typologie.PLIE,
matchers: [/^PLIE(?:\W|$)/iu]
},
{
typologie: Typologie.PREF,
matchers: [/^Pr[ée]fecture/iu, /^sous[-\s]pr[ée]fecture/iu]
},
{
typologie: Typologie.REG,
matchers: [/^R[ée]gion/iu]
},
{
typologie: Typologie.RESSOURCERIE,
matchers: [/Ressourcerie/iu]
},
{
typologie: Typologie.UDAF,
matchers: [/(?:^|\W)UDAF(?:\W|\d|$)/iu]
},
{
typologie: Typologie.AFPA,
matchers: [/(?:^|\W)AFPA(?:\W|$)/iu]
Expand All @@ -108,10 +317,6 @@ export const TYPOLOGIE_MATCHERS: TypologieMatcher[] = [
typologie: Typologie.CHRS,
matchers: [/(?:^|\W)CHRS(?:\W|$)/iu]
},
{
typologie: Typologie.MJC,
matchers: [/(?:^|\W)MJC(?:\W|$)/iu, /maison des jeunes (?:et )?de la culture/iu]
},
{
typologie: Typologie.MDE,
matchers: [/(?:^|\W)MDE(?:\W|$)/iu, /maison[\w\s',]+de l['\s]emploi/iu]
Expand Down Expand Up @@ -142,9 +347,5 @@ export const TYPOLOGIE_MATCHERS: TypologieMatcher[] = [
/Folschviller - Antenne de L'H[ôo]pital/iu,
/Communaut[eé] de communes Vaison Ventoux/iu
]
},
{
typologie: Typologie.PIMMS,
matchers: [/(?:^|\W)PIMMS(?:\W|$)/iu, /point information mediation multi services/iu]
}
];
Loading

0 comments on commit bd0ad27

Please sign in to comment.