@tricoteuses/assemblee
Version:
Retrieve, clean up & handle French Assemblée nationale's open data
1,240 lines • 169 kB
JavaScript
import Se from "node:assert";
import l from "fs-extra";
import r from "node:path";
import { createHash as tn } from "node:crypto";
import "glob";
import { C as xe } from "./amendements-40Z7OJLT.js";
import "./index-COAP8XeF.js";
import sn from "command-line-args";
import { differenceInDays as on } from "date-fns";
import { execSync as Ne } from "node:child_process";
import "deep-equal";
import "front-matter";
import "js-yaml";
import "node-html-parser";
var Fe = /* @__PURE__ */ ((e) => (e.Api = "API", e.Assemblee = "ASSEMBLEE", e.Bureau = "BUREAU", e.Circonscription = "CIRCONSCRIPTION", e.Cjr = "CJR", e.Cmp = "CMP", e.Cnpe = "CNPE", e.Cnps = "CNPS", e.Comnl = "COMNL", e.Comper = "COMPER", e.Comsenat = "COMSENAT", e.Comspsenat = "COMSPSENAT", e.Confpt = "CONFPT", e.Constitu = "CONSTITU", e.Deleg = "DELEG", e.Delegbureau = "DELEGBUREAU", e.Delegsenat = "DELEGSENAT", e.Ga = "GA", e.Ge = "GE", e.Gevi = "GEVI", e.Gouvernement = "GOUVERNEMENT", e.Gp = "GP", e.Groupesenat = "GROUPESENAT", e.Hcj = "HCJ", e.Ministere = "MINISTERE", e.Miseval = "MISEVAL", e.Misgrtr = "MISGRTR", e.Misinfo = "MISINFO", e.Misinfocom = "MISINFOCOM", e.Misinfopre = "MISINFOPRE", e.Offpar = "OFFPAR", e.Orgaint = "ORGAINT", e.Orgextparl = "ORGEXTPARL", e.Parpol = "PARPOL", e.Presrep = "PRESREP", e.Senat = "SENAT", e))(Fe || {});
function ps(e) {
return e.charAt(0).toUpperCase() + e.slice(1);
}
function ee(e) {
return e.charAt(0).toLowerCase() + e.slice(1);
}
var rn = /* @__PURE__ */ ((e) => (e.Failure = "FAILURE", e.Success = "SUCCESS", e))(rn || {}), an = /* @__PURE__ */ ((e) => (e.Failure = "FAILURE", e.InProgress = "IN_PROGRESS", e.Success = "SUCCESS", e))(an || {});
function cs(e) {
if (e.actesLegislatifs !== void 0) {
for (const n of He(e.actesLegislatifs))
if (n.codeActe.match(/^AN.*-COM-FOND-SAISIE$/) !== null && n.organeRef !== void 0 && n.organeRef !== "PO211494")
return n.organeRef;
}
}
function ne(e) {
switch (e) {
case "Accord":
case "adopté":
case "adopté, dans les conditions prévues à l'article 45, alinéa 3, de la Constitution":
case "adoptée":
case "adopté sans modification":
case "adoptée sans modification":
case "Conforme":
case "considérée comme définitive en application de l'article 151-7 du Règlement":
case "considérée comme définitive en application de l'article 151-9 du Règlement":
case "Motion adopté(e)":
return "SUCCESS";
case "Désaccord":
case "Motion rejeté(e)":
case "rejeté":
case "rejetée":
return "FAILURE";
case "adopté avec modifications":
case "adoptée avec modifications":
case "De droit (article 61 alinéa 1 de la Constitution)":
case "modifié":
case "modifiée":
case "Motion de censure 49-2":
case "Partiellement conforme":
return "IN_PROGRESS";
case "Soixante députés au moins":
case "Soixante sénateurs au moins":
return Fe.Constitu;
default:
return "IN_PROGRESS";
}
}
function un(e, n) {
const t = n[n.length - 1];
let s = null;
switch (t.xsiType) {
case "Adoption_Europe_Type":
return s = t.statutAdoption.libelle, {
currentStatus: ne(s),
label: ee(s)
};
case "ConclusionEtapeCC_Type":
return s = t.statutConclusion.libelle, {
currentStatus: ne(s),
label: ee(s)
};
case "Decision_Type": {
s = t.statutConclusion.libelle;
let m = ne(s), v;
switch (e.procedureParlementaire.code) {
case "PROCEDURE_PARLEMENTAIRE_2":
["rejeté", "rejetée"].includes(s) && e.actesLegislatifs !== void 0 && e.actesLegislatifs.length === 1 && (v = "FAILURE");
break;
case "PROCEDURE_PARLEMENTAIRE_8":
// Résolution
case "PROCEDURE_PARLEMENTAIRE_22":
m === "SUCCESS" ? v = "SUCCESS" : m === "FAILURE" && (v = "FAILURE");
break;
}
return {
currentStatus: m,
finalStatus: v,
label: ee(s)
};
}
case "DecisionMotionCensure_Type":
return s = t.decision.libelle, {
currentStatus: ne(s),
finalStatus: (
// Not sure for other cases => To improve.
// Engagement de la responsabilité gouvernementale
e.procedureParlementaire.code === "PROCEDURE_PARLEMENTAIRE_13" && s === "Motion rejeté(e)" ? "FAILURE" : "SUCCESS"
),
// TODO: Not sure of this `true` value
label: ee(s)
};
case "DecisionRecevabiliteBureau_Type":
return s = t.decision.libelle, {
currentStatus: ne(s),
label: ee(s)
};
case "DeclarationGouvernement_Type":
return s = t.typeDeclaration.libelle, {
currentStatus: ne(s),
label: ee(s)
};
case "DepotMotionCensure_Type":
return s = t.typeMotionCensure.libelle, {
currentStatus: ne(s),
label: ee(s)
};
case "DepotRapport_Type":
return [
"DossierCommissionEnquete_Type",
"DossierMissionControle_Type",
"DossierMissionInformation_Type"
].includes(e.xsiType) ? {
currentStatus: n[0].organe.codeType,
finalStatus: "SUCCESS",
label: "rapport déposé"
} : null;
case "MotionProcedure_Type":
return s = t.typeMotion.libelle, {
currentStatus: ne(s),
label: ee(s)
};
case "Promulgation_Type":
return {
currentStatus: "SUCCESS",
finalStatus: "SUCCESS",
label: "promulgué"
};
case "RetraitInitiative_Type":
return {
currentStatus: "FAILURE",
finalStatus: "FAILURE",
label: "retiré"
};
case "SaisineConseilConstit_Type":
return s = t.casSaisine.libelle, {
currentStatus: ne(s),
label: ee(s)
};
default:
return null;
}
}
function Ze(e, n, t) {
if (t !== void 0)
for (const s of [...t].reverse()) {
const m = s.actesLegislatifs ? Ze(e, [...n, s], s.actesLegislatifs) : un(e, [...n, s]);
if (m !== null)
return m;
}
return null;
}
function ms(e) {
const n = Ze(e, [], e.actesLegislatifs);
return n !== null ? n : {
currentStatus: "IN_PROGRESS",
label: "en cours"
};
}
function* He(e) {
for (const n of e)
yield n, n.actesLegislatifs !== void 0 && (yield* He(n.actesLegislatifs));
}
function* Ke(e) {
yield e;
for (const n of e.divisions ?? [])
yield* Ke(n);
}
var y = /* @__PURE__ */ ((e) => (e[e.Quatorze = 14] = "Quatorze", e[e.Quinze = 15] = "Quinze", e[e.Seize = 16] = "Seize", e[e.DixSept = 17] = "DixSept", e[e.DixHuit = 18] = "DixHuit", e[e.All = 0] = "All", e))(y || {}), G = /* @__PURE__ */ ((e) => (e[e.None = 0] = "None", e[e.ActeursEtOrganes = 1] = "ActeursEtOrganes", e[e.Agendas = 2] = "Agendas", e[e.Amendements = 4] = "Amendements", e[e.DossiersLegislatifs = 8] = "DossiersLegislatifs", e[e.Photos = 16] = "Photos", e[e.Scrutins = 32] = "Scrutins", e[e.Questions = 64] = "Questions", e[e.ComptesRendusSeances = 128] = "ComptesRendusSeances", e[e.All = 255] = "All", e))(G || {});
function J(e, n) {
const t = r.join(n, e.filename);
l.existsSync(t) && l.removeSync(t), l.existsSync(r.join(n, "json")) ? l.moveSync(r.join(n, "json"), t) : l.mkdirSync(t);
}
const B = {
acteursEtOrganes: [
{
// AMO10 (XVII)
//
// Contient les députés actifs
// * avec tous les mandats en cours
// * y compris avec leur parti politique (typeOrgane: "PARPOL")
// * mais sans les mandats achevés (y compris dans cette législature)
//
// Organes :
// * Contient seulement les organes correspondants aux mandats en cours
// * avec le xsiType de l'organe
// * avec des commissions sénatoriales (permanentes et spéciales) en cours
// * avec des délégations sénatoriales en cours
// * avec des groupes sénatoriaux en cours
// * avec des ministères en cours
// * avec les Présidences de la République (y compris Sarkozy)
// * avec le Conseil constitutionnel
//
// Ce fichier est un sous-ensemble à tous les niveaux du fichier AMO20
// (qui est lui même un sous-ensemble de l'AMO30).
// Il n'apporte donc absolument rien par rapport à AMO20 ou l'AMO30.
filename: "AMO10_deputes_actifs_mandats_actifs_organes_XVII.json",
ignoreForWeb: !0,
legislature: y.DixSept,
repairZip: J,
structure: 1,
title: "Députés actifs et organes de la XVIIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/17/amo/deputes_actifs_mandats_actifs_organes/AMO10_deputes_actifs_mandats_actifs_organes.json.zip"
},
{
// AMO10 (XVI)
//
// Contient les députés actifs
// * avec tous les mandats en cours
// * y compris avec leur parti politique (typeOrgane: "PARPOL")
// * mais sans les mandats achevés (y compris dans cette législature)
//
// Organes :
// * Contient seulement les organes correspondants aux mandats en cours
// * avec le xsiType de l'organe
// * avec des commissions sénatoriales (permanentes et spéciales) en cours
// * avec des délégations sénatoriales en cours
// * avec des groupes sénatoriaux en cours
// * avec des ministères en cours
// * avec les Présidences de la République (y compris Sarkozy)
// * avec le Conseil constitutionnel
//
// Ce fichier est un sous-ensemble à tous les niveaux du fichier AMO20
// (qui est lui même un sous-ensemble de l'AMO30).
// Il n'apporte donc absolument rien par rapport à AMO20 ou l'AMO30.
filename: "AMO10_deputes_actifs_mandats_actifs_organes_XVI.json",
ignoreForWeb: !0,
legislature: y.Seize,
repairZip: J,
structure: 1,
title: "Députés actifs et organes de la XVIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/16/amo/deputes_actifs_mandats_actifs_organes/AMO10_deputes_actifs_mandats_actifs_organes.json.zip"
},
{
// AMO10 (XV)
//
// Contient les députés actifs
// * avec tous les mandats en cours
// * y compris avec leur parti politique (typeOrgane: "PARPOL")
// * mais sans les mandats achevés (y compris dans cette législature)
//
// Organes :
// * Contient seulement les organes correspondants aux mandats en cours
// * avec le xsiType de l'organe
// * avec des commissions sénatoriales (permanentes et spéciales) en cours
// * avec des délégations sénatoriales en cours
// * avec des groupes sénatoriaux en cours
// * avec des ministères en cours
// * avec les Présidences de la République (y compris Sarkozy)
// * avec le Conseil constitutionnel
//
// Ce fichier est un sous-ensemble à tous les niveaux du fichier AMO20
// (qui est lui même un sous-ensemble de l'AMO30).
// Il n'apporte donc absolument rien par rapport à AMO20 ou l'AMO30.
filename: "AMO10_deputes_actifs_mandats_actifs_organes_XV.json",
ignoreForWeb: !0,
legislature: y.Quinze,
repairZip: J,
structure: 1,
title: "Députés actifs et organes de la XVème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/15/amo/deputes_actifs_mandats_actifs_organes/AMO10_deputes_actifs_mandats_actifs_organes_XV.json.zip"
},
{
// AMO20 (XVII)
//
// Contient les députés de la législature, actifs ou non (invalidés, etc), les sénateurs actuels
// Pour les députés :
// * avec tous leurs mandats de la législature
// * y compris les mandats achevés
// * y compris leurs partis politiques (typeOrgane: "PARPOL")
// * mais sans les mandats des législatures précédentes (qui sont dans AMO40)
//
// Contient tous les organes référencés par les mandats
// * avec le xsiType de l'organe
// * avec des commissions sénatoriales (permanentes et spéciales) en cours
// * avec des délégations sénatoriales en cours
// * avec des groupes sénatoriaux en cours
// * avec des ministères en cours
// * avec les Présidences de la République (y compris Sarkozy)
// * avec le Conseil constitutionnel
//
// Ce fichier est un sous-ensemble à tous les niveaux du fichier AMO30.
// Il n'apporte donc absolument rien par rapport à l'AMO30.
filename: "AMO20_dep_sen_min_tous_mandats_et_organes_XVII.json",
ignoreForWeb: !0,
legislature: y.DixSept,
repairZip: J,
structure: 1,
title: "Acteurs et organes de la XVIIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/17/amo/deputes_senateurs_ministres_legislature/AMO20_dep_sen_min_tous_mandats_et_organes.json.zip"
},
{
// AMO20 (XVI)
//
// Contient les députés de la législature, actifs ou non (invalidés, etc), les sénateurs actuels
// Pour les députés :
// * avec tous leurs mandats de la législature
// * y compris les mandats achevés
// * y compris leurs partis politiques (typeOrgane: "PARPOL")
// * mais sans les mandats des législatures précédentes (qui sont dans AMO40)
//
// Contient tous les organes référencés par les mandats
// * avec le xsiType de l'organe
// * avec des commissions sénatoriales (permanentes et spéciales) en cours
// * avec des délégations sénatoriales en cours
// * avec des groupes sénatoriaux en cours
// * avec des ministères en cours
// * avec les Présidences de la République (y compris Sarkozy)
// * avec le Conseil constitutionnel
//
// Ce fichier est un sous-ensemble à tous les niveaux du fichier AMO30.
// Il n'apporte donc absolument rien par rapport à l'AMO30.
filename: "AMO20_dep_sen_min_tous_mandats_et_organes_XVI.json",
ignoreForWeb: !0,
legislature: y.Seize,
repairZip: J,
structure: 1,
title: "Acteurs et organes de la XVIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/16/amo/deputes_senateurs_ministres_legislature/AMO20_dep_sen_min_tous_mandats_et_organes.json.zip"
},
{
// AMO20 (XV)
//
// Contient les députés de la législature, actifs ou non (invalidés, etc), les sénateurs actuels
// Pour les députés :
// * avec tous leurs mandats de la législature
// * y compris les mandats achevés
// * y compris leurs partis politiques (typeOrgane: "PARPOL")
// * mais sans les mandats des législatures précédentes (qui sont dans AMO40)
//
// Contient tous les organes référencés par les mandats
// * avec le xsiType de l'organe
// * avec des commissions sénatoriales (permanentes et spéciales) en cours
// * avec des délégations sénatoriales en cours
// * avec des groupes sénatoriaux en cours
// * avec des ministères en cours
// * avec les Présidences de la République (y compris Sarkozy)
// * avec le Conseil constitutionnel
//
// Ce fichier est un sous-ensemble à tous les niveaux du fichier AMO30.
// Il n'apporte donc absolument rien par rapport à l'AMO30.
filename: "AMO20_dep_sen_min_tous_mandats_et_organes_XV.json",
ignoreForWeb: !0,
legislature: y.Quinze,
repairZip: J,
structure: 1,
title: "Acteurs et organes de la XVème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/15/amo/deputes_senateurs_ministres_legislature/AMO20_dep_sen_min_tous_mandats_et_organes_XV.json.zip"
},
{
// AMO20 (XIV)
//
// Comme AMO20 (XV) mais pour la XIVème législature
// Tous les acteurs sauf un (PA429892) sont présents en plus à jour dans AMO30.
// Cet acteur PA429892 (ancienne Sénatrice) n'est présent dans aucun des autres
// fichiers AMO.
// Tous les organes sont présents en plus complets dans AMO30.
//
// Ce fichier est donc à un détail prêt (PA429892) un sous-ensemble d'AMO30.
// Il n'apporte donc quasiment rien par rapport à l'AMO30.
filename: "AMO20_dep_sen_min_tous_mandats_et_organes_XIV.json",
ignoreForWeb: !0,
legislature: y.Quatorze,
structure: 0,
title: "Acteurs et organes de la XIVème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/14/amo/deputes_senateurs_ministres_legislatures_XIV/AMO20_dep_sen_min_tous_mandats_et_organes_XIV.json.zip"
},
{
// AMO30 (XVII)
//
// Ce fichier contient tous les acteurs et organes.
// C'est un sur-ensemble des fichiers AMO20.
filename: "AMO30_tous_acteurs_tous_mandats_tous_organes_historique.json",
legislature: y.All,
repairZip: J,
structure: 1,
title: "Historique de tous les acteurs et organes depuis la XIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/17/amo/tous_acteurs_mandats_organes_xi_legislature/AMO30_tous_acteurs_tous_mandats_tous_organes_historique.json.zip"
},
// {
// // AMO30 (XVI)
// //
// // Ce fichier contient tous les acteurs et organes.
// // C'est un sur-ensemble des fichiers AMO20.
// filename: "AMO30_tous_acteurs_tous_mandats_tous_organes_historique.json",
// legislature: Legislature.All,
// repairZip: repairForJsonSubdirectory,
// structure: DatasetStructure.SegmentedFiles,
// title:
// "Historique de tous les acteurs et organes depuis la XIème législature",
// url: "https://data.assemblee-nationale.fr/static/openData/repository/16/amo/tous_acteurs_mandats_organes_xi_legislature/AMO30_tous_acteurs_tous_mandats_tous_organes_historique.json.zip",
// },
// {
// // AMO30 (XV)
// //
// // Ce fichier contient tous les acteurs et organes.
// // C'est un sur-ensemble des fichiers AMO20.
// filename: "AMO30_tous_acteurs_tous_mandats_tous_organes_historique.json",
// legislature: Legislature.All,
// repairZip: (dataset: Dataset, dataDir: string) => {
// const targetDir = path.join(dataDir, dataset.filename)
// if (fs.existsSync(targetDir)) {
// fs.removeSync(targetDir)
// }
// fs.moveSync(path.join(dataDir, "json"), targetDir)
// },
// structure: DatasetStructure.SegmentedFiles,
// title:
// "Historique de tous les acteurs et organes depuis la XIème législature",
// url: "https://data.assemblee-nationale.fr/static/openData/repository/15/amo/tous_acteurs_mandats_organes_xi_legislature/AMO30_tous_acteurs_tous_mandats_tous_organes_historique.json.zip",
// },
{
// AMO40 (XVII)
//
// Contient les députés actifs (les mêmes qu'AMO20)
// * avec presque tous leurs mandats
// * y compris les mandats achevés et ceux des législatures précédentes
// * y compris leurs partis politiques précédents
// * mais sans leur parti politique actuel (typeOrgane: "PARPOL")
//
// Contient beaucoup d'organes référencés, y compris ceux des législatures
// précédentes
// * mais il manque le xsiType des organes
// * ne contient pas les organes sénatoriaux
// * ne contient pas les ministères
// * ne contient pas la Présidence de la République
// * ne contient pas le Conseil constitutionnel
//
// Pour les acteurs, ce dépôt est un sous-ensemble strict de AMO30 :
// Il a moins d'acteurs et il sont moins complets.
//
// Pour les organes :
// Quand l'organe est aussi présent dans AMO30, il vaut mieux prendre celui
// d'AMO30, car il contient le xsiType (c'est la seule différence semble-t-i).
// Sinon, il faut le prendre seulement si on est intéressé par les législatures
// précédentes.
filename: "AMO40_deputes_actifs_mandats_actifs_organes_divises_XVII.json",
ignoreForWeb: !0,
legislature: y.DixSept,
repairZip: (e, n) => {
const t = r.join(n, e.filename);
l.existsSync(t) && l.removeSync(t), l.mkdirSync(t), l.pathExistsSync(r.join(n, "acteur")) && l.moveSync(
r.join(n, "acteur"),
r.join(t, "acteur")
), l.moveSync(
r.join(n, "organe"),
r.join(t, "organe")
);
},
structure: 1,
title: "Députés actifs et organes de la XVIIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/17/amo/deputes_actifs_mandats_actifs_organes_divises/AMO40_deputes_actifs_mandats_actifs_organes_divises.json.zip"
},
{
// AMO40 (XVI)
//
// Contient les députés actifs (les mêmes qu'AMO20)
// * avec presque tous leurs mandats
// * y compris les mandats achevés et ceux des législatures précédentes
// * y compris leurs partis politiques précédents
// * mais sans leur parti politique actuel (typeOrgane: "PARPOL")
//
// Contient beaucoup d'organes référencés, y compris ceux des législatures
// précédentes
// * mais il manque le xsiType des organes
// * ne contient pas les organes sénatoriaux
// * ne contient pas les ministères
// * ne contient pas la Présidence de la République
// * ne contient pas le Conseil constitutionnel
//
// Pour les acteurs, ce dépôt est un sous-ensemble strict de AMO30 :
// Il a moins d'acteurs et il sont moins complets.
//
// Pour les organes :
// Quand l'organe est aussi présent dans AMO30, il vaut mieux prendre celui
// d'AMO30, car il contient le xsiType (c'est la seule différence semble-t-i).
// Sinon, il faut le prendre seulement si on est intéressé par les législatures
// précédentes.
filename: "AMO40_deputes_actifs_mandats_actifs_organes_divises_XVI.json",
ignoreForWeb: !0,
legislature: y.Seize,
repairZip: (e, n) => {
const t = r.join(n, e.filename);
l.existsSync(t) && l.removeSync(t), l.mkdirSync(t), l.pathExistsSync(r.join(n, "acteur")) && l.moveSync(
r.join(n, "acteur"),
r.join(t, "acteur")
), l.moveSync(
r.join(n, "organe"),
r.join(t, "organe")
);
},
structure: 1,
title: "Députés actifs et organes de la XVIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/16/amo/deputes_actifs_mandats_actifs_organes_divises/AMO40_deputes_actifs_mandats_actifs_organes_divises.json.zip"
},
{
// AMO40 (XV)
//
// Contient les députés actifs (les mêmes qu'AMO20)
// * avec presque tous leurs mandats
// * y compris les mandats achevés et ceux des législatures précédentes
// * y compris leurs partis politiques précédents
// * mais sans leur parti politique actuel (typeOrgane: "PARPOL")
//
// Contient beaucoup d'organes référencés, y compris ceux des législatures
// précédentes
// * mais il manque le xsiType des organes
// * ne contient pas les organes sénatoriaux
// * ne contient pas les ministères
// * ne contient pas la Présidence de la République
// * ne contient pas le Conseil constitutionnel
//
// Pour les acteurs, ce dépôt est un sous-ensemble strict de AMO30 :
// Il a moins d'acteurs et il sont moins complets.
//
// Pour les organes :
// Quand l'organe est aussi présent dans AMO30, il vaut mieux prendre celui
// d'AMO30, car il contient le xsiType (c'est la seule différence semble-t-i).
// Sinon, il faut le prendre seulement si on est intéressé par les législatures
// précédentes.
filename: "AMO40_deputes_actifs_mandats_actifs_organes_divises_XV.json",
ignoreForWeb: !0,
legislature: y.Quinze,
repairZip: (e, n) => {
const t = r.join(n, e.filename);
l.existsSync(t) && l.removeSync(t), l.mkdirSync(t), l.moveSync(
r.join(n, "acteur"),
r.join(t, "acteur")
), l.moveSync(
r.join(n, "organe"),
r.join(t, "organe")
);
},
structure: 1,
title: "Députés actifs et organes de la XVème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/15/amo/deputes_actifs_mandats_actifs_organes_divises/AMO40_deputes_actifs_mandats_actifs_organes_divises_XV.json.zip"
},
{
// AMO50 (XVII)
//
// Attention, ce fichier n'est pas mis à jour régulièrement !
//
// Pour les acteurs :
// * c'est un sous ensemble obsolète d'AMO30
// * il manque les xsiType aux mandats
//
// Pour les organes :
// * c'est un sous ensemble obsolète d'AMO30
// * il manque les xsiType
//
// Ce fichier n'apporte donc absolument rien par rapport à l'AMO30,
// dont il est un sous ensemble obsolète.
filename: "AMO50_acteurs_mandats_organes_divises_XVII.json",
ignoreForWeb: !0,
legislature: y.DixSept,
repairZip: (e, n) => {
const t = r.join(n, e.filename);
l.existsSync(t) && l.removeSync(t), l.mkdirSync(t), l.moveSync(
r.join(n, "mandat"),
r.join(t, "mandat")
), l.moveSync(
r.join(n, "acteur"),
r.join(t, "acteur")
), l.moveSync(
r.join(n, "organe"),
r.join(t, "organe")
);
},
structure: 1,
title: "Acteurs, mandats et organes de la XVIIème législature (fichiers séparés, y compris mandats)",
url: "https://data.assemblee-nationale.fr/static/openData/repository/17/amo/acteurs_mandats_organes_divises/AMO50_acteurs_mandats_organes_divises.json.zip"
},
{
// AMO50 (XVI)
//
// Attention, ce fichier n'est pas mis à jour régulièrement !
//
// Pour les acteurs :
// * c'est un sous ensemble obsolète d'AMO30
// * il manque les xsiType aux mandats
//
// Pour les organes :
// * c'est un sous ensemble obsolète d'AMO30
// * il manque les xsiType
//
// Ce fichier n'apporte donc absolument rien par rapport à l'AMO30,
// dont il est un sous ensemble obsolète.
filename: "AMO50_acteurs_mandats_organes_divises_XVI.json",
ignoreForWeb: !0,
legislature: y.Seize,
repairZip: (e, n) => {
const t = r.join(n, e.filename);
l.existsSync(t) && l.removeSync(t), l.mkdirSync(t), l.moveSync(
r.join(n, "mandat"),
r.join(t, "mandat")
), l.moveSync(
r.join(n, "acteur"),
r.join(t, "acteur")
), l.moveSync(
r.join(n, "organe"),
r.join(t, "organe")
);
},
structure: 1,
title: "Acteurs, mandats et organes de la XVIème législature (fichiers séparés, y compris mandats)",
url: "https://data.assemblee-nationale.fr/static/openData/repository/16/amo/acteurs_mandats_organes_divises/AMO50_acteurs_mandats_organes_divises.json.zip"
},
{
// AMO50 (XV)
//
// Attention, ce fichier n'est pas mis à jour régulièrement !
//
// Pour les acteurs :
// * c'est un sous ensemble obsolète d'AMO30
// * il manque les xsiType aux mandats
//
// Pour les organes :
// * c'est un sous ensemble obsolète d'AMO30
// * il manque les xsiType
//
// Ce fichier n'apporte donc absolument rien par rapport à l'AMO30,
// dont il est un sous ensemble obsolète.
filename: "AMO50_acteurs_mandats_organes_divises_XV.json",
ignoreForWeb: !0,
legislature: y.Quinze,
repairZip: (e, n) => {
const t = r.join(n, e.filename);
l.existsSync(t) && l.removeSync(t), l.mkdirSync(t), l.moveSync(
r.join(n, "mandat"),
r.join(t, "mandat")
), l.moveSync(
r.join(n, "acteur"),
r.join(t, "acteur")
), l.moveSync(
r.join(n, "organe"),
r.join(t, "organe")
);
},
structure: 1,
title: "Acteurs, mandats et organes de la XVème législature (fichiers séparés, y compris mandats)",
url: "https://data.assemblee-nationale.fr/static/openData/repository/15/amo/acteurs_mandats_organes_divises/AMO50_acteurs_mandats_organes_divises_XV.json.zip"
}
],
agendas: [
{
filename: "Agenda_XVII.json",
legislature: y.DixSept,
repairZip: J,
structure: 1,
title: "Agenda de la XVIIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/17/vp/reunions/Agenda.json.zip"
},
{
filename: "Agenda_XVI.json",
legislature: y.Seize,
repairZip: J,
structure: 1,
title: "Agenda de la XVIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/16/vp/reunions/Agenda.json.zip"
},
{
filename: "Agenda_XV.json",
legislature: y.Quinze,
repairZip: J,
structure: 1,
title: "Agenda de la XVème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/15/vp/reunions/Agenda_XV.json.zip"
},
{
filename: "Agenda_XIV.json",
legislature: y.Quatorze,
structure: 0,
title: "Agenda de la XIVème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/14/vp/reunions/Agenda_XIV.json.zip"
}
],
amendements: [
{
filename: "Amendements_XVII.json",
legislature: y.DixSept,
repairZip: J,
structure: 1,
title: "Amendements de la XVIIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/17/loi/amendements_div_legis/Amendements.json.zip"
},
{
filename: "Amendements_XVI.json",
legislature: y.Seize,
repairZip: J,
structure: 1,
title: "Amendements de la XVIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/16/loi/amendements_div_legis/Amendements.json.zip"
},
{
filename: "Amendements_XV.json",
legislature: y.Quinze,
repairZip: J,
structure: 1,
title: "Amendements de la XVème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/15/loi/amendements_legis/Amendements_XV.json.zip"
}
// {
// filename: "Amendements_XIV.json",
// ignoreForWeb: true,
// legislature: Legislature.Quatorze,
// structure: DatasetStructure.SingleFile,
// title: "Amendements de la XIVème législature",
// url:
// "https://data.assemblee-nationale.fr/static/openData/repository/14/loi/amendements_legis_XIV/Amendements_XIV.json.zip",
// },
],
dossiersLegislatifs: [
{
filename: "Dossiers_Legislatifs_XVII.json",
legislature: y.DixSept,
repairZip: J,
structure: 1,
title: "Dossiers législatifs de la XVIIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/17/loi/dossiers_legislatifs/Dossiers_Legislatifs.json.zip"
},
{
filename: "Dossiers_Legislatifs_XVI.json",
legislature: y.Seize,
repairZip: J,
structure: 1,
title: "Dossiers législatifs de la XVIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/16/loi/dossiers_legislatifs/Dossiers_Legislatifs.json.zip"
},
{
filename: "Dossiers_Legislatifs_XV.json",
legislature: y.Quinze,
repairZip: J,
structure: 1,
title: "Dossiers législatifs de la XVème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/15/loi/dossiers_legislatifs/Dossiers_Legislatifs_XV.json.zip"
},
{
filename: "Dossiers_Legislatifs_XIV.json",
legislature: y.Quatorze,
structure: 0,
title: "Dossiers législatifs de la XIVème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/14/loi/dossiers_legislatifs/Dossiers_Legislatifs_XIV.json.zip"
}
],
scrutins: [
{
filename: "Scrutins_XVII.json",
legislature: y.DixSept,
repairZip: J,
structure: 1,
title: "Scrutins de la XVIIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/17/loi/scrutins/Scrutins.json.zip"
},
{
filename: "Scrutins_XVI.json",
legislature: y.Seize,
repairZip: J,
structure: 1,
title: "Scrutins de la XVIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/16/loi/scrutins/Scrutins.json.zip"
},
{
filename: "Scrutins_XV.json",
legislature: y.Quinze,
repairZip: J,
structure: 1,
title: "Scrutins de la XVème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/15/loi/scrutins/Scrutins_XV.json.zip"
},
{
filename: "Scrutins_XIV.json",
legislature: y.Quatorze,
structure: 0,
title: "Scrutins de la XIVème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/14/loi/scrutins/Scrutins_XIV.json.zip"
}
],
questions: [
{
filename: "Questions_ecrites_XVII.json",
legislature: y.DixSept,
repairZip: J,
structure: 1,
title: "Questions écrites de la XVIIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/17/questions/questions_ecrites/Questions_ecrites.json.zip"
},
{
filename: "Questions_ecrites_XVI.json",
legislature: y.Seize,
repairZip: J,
structure: 1,
title: "Questions écrites de la XVIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/16/questions/questions_ecrites/Questions_ecrites.json.zip"
},
{
filename: "Questions_gouvernement_XVII.json",
legislature: y.DixSept,
repairZip: J,
structure: 1,
title: "Questions au gouvernement de la XVIIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/17/questions/questions_gouvernement/Questions_gouvernement.json.zip"
},
{
filename: "Questions_gouvernement_XVI.json",
legislature: y.Seize,
repairZip: J,
structure: 1,
title: "Questions au gouvernement de la XVIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/16/questions/questions_gouvernement/Questions_gouvernement.json.zip"
},
{
filename: "Questions_orales_XVII.json",
legislature: y.DixSept,
repairZip: J,
structure: 1,
title: "Questions orales sans débats de la XVIIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/17/questions/questions_orales_sans_debat/Questions_orales_sans_debat.json.zip"
},
{
filename: "Questions_orales_XVI.json",
legislature: y.Seize,
repairZip: J,
structure: 1,
title: "Questions orales sans débats de la XVIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/16/questions/questions_orales_sans_debat/Questions_orales_sans_debat.json.zip"
}
],
comptesRendusSeances: [
{
filename: "Comptes_Rendus_Seances_XVII.xml",
legislature: y.DixSept,
repairZip: (e, n) => {
const t = r.join(n, e.filename);
l.existsSync(t) && l.removeSync(t), l.moveSync(r.join(n, "xml"), t);
},
structure: 1,
title: "Comptes rendus des séances publiques de la XVIIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/17/vp/syceronbrut/syseron.xml.zip"
},
{
filename: "Comptes_Rendus_Seances_XVI.xml",
legislature: y.Seize,
repairZip: (e, n) => {
const t = r.join(n, e.filename);
l.existsSync(t) && l.removeSync(t), l.moveSync(r.join(n, "xml"), t);
},
structure: 1,
title: "Comptes rendus des séances publiques de la XVIème législature",
url: "https://data.assemblee-nationale.fr/static/openData/repository/16/vp/syceronbrut/syseron.xml.zip"
}
]
};
function* k(e, n = []) {
const t = r.join(e, ...n);
if (l.existsSync(t))
for (const s of l.readdirSync(t)) {
if (s[0] === ".")
continue;
const m = r.join(t, s), v = [...n, s];
l.statSync(m).isDirectory() ? yield* k(e, v) : yield v;
}
}
var ln = /* @__PURE__ */ ((e) => (e.M = "M.", e.Mme = "Mme", e))(ln || {}), pn = /* @__PURE__ */ ((e) => (e.MandatAvecSuppleantType = "MandatAvecSuppleant_Type", e.MandatMissionType = "MandatMission_Type", e.MandatParlementaireType = "MandatParlementaire_type", e.MandatSimpleType = "MandatSimple_Type", e))(pn || {}), cn = /* @__PURE__ */ ((e) => (e.CollectivitésDOutreMerEtNouvelleCalédonie = "Collectivités d'outre-mer et Nouvelle-Calédonie", e.Dom = "Dom", e.FrançaisÉtablisHorsDeFrance = "Français établis hors de France", e.Métropolitain = "Métropolitain", e))(cn || {}), mn = /* @__PURE__ */ ((e) => (e.AgriculteursExploitants = "Agriculteurs exploitants", e.ArtisansCommerçantsChefsDEntreprises = "Artisans, commerçants, chefs d'entreprises", e.ArtisansCommerçantsEtChefsDEntrepriseAncien = "Artisans, commerçants et chefs d'entreprise", e.AutresPersonnesSansActivitéProfessionnelle = "Autres personnes sans activité professionnelle", e.CadresEtProfessionsIntellectuellesSupérieures = "Cadres et professions intellectuelles supérieures", e.Employés = "Employés", e.Ouvriers = "Ouvriers", e.ProfessionsIntermédiaires = "Professions intermédiaires", e.ProfessionsIntermédiairesAncien = "Professions Intermédiaires", e.Retraités = "Retraités", e.SansProfessionDéclarée = "Sans profession déclarée", e))(mn || {}), dn = /* @__PURE__ */ ((e) => (e.GroupePolitiqueType = "GroupePolitique_type", e.OrganeCirconscriptionType = "OrganeCirconscription_type", e.OrganeExterneType = "OrganeExterne_Type", e.OrganeExtraParlementaireType = "OrganeExtraParlementaire_type", e.OrganeParlementaireInternational = "OrganeParlementaireInternational", e.OrganeParlementaireType = "OrganeParlementaire_Type", e))(dn || {}), fn = /* @__PURE__ */ ((e) => (e.H = "H", e.M = "M", e.O = "O", e.T = "T", e))(fn || {}), jn = /* @__PURE__ */ ((e) => (e.Majoritaire = "Majoritaire", e.Minoritaire = "Minoritaire", e.Opposition = "Opposition", e))(jn || {}), yn = /* @__PURE__ */ ((e) => (e.AssembléeConsultativeProvisoire = "Assemblée consultative provisoire", e.AssembléesNationalesConstituantes = "Assemblées nationales constituantes", e.The3ÈmeRépublique = "3ème République", e.The4ÈmeRépublique = "4ème République", e.The5ÈmeRépublique = "5ème République", e))(yn || {});
let Oe = class {
static toActeursEtOrganes(n) {
return Ie(JSON.parse(n), _("ActeursEtOrganes"));
}
static acteursEtOrganesToJson(n) {
return JSON.stringify(Ce(n, _("ActeursEtOrganes")), null, 2);
}
static toActeur(n) {
return Ie(JSON.parse(n), _("Acteur"));
}
static acteurToJson(n) {
return JSON.stringify(Ce(n, _("Acteur")), null, 2);
}
static toOrgane(n) {
return Ie(JSON.parse(n), _("Organe"));
}
static organeToJson(n) {
return JSON.stringify(Ce(n, _("Organe")), null, 2);
}
};
function re(e, n, t = "") {
throw Error(
t ? `Invalid value for key "${t}". Expected type ${JSON.stringify(
e
)} but got ${JSON.stringify(n)}` : `Invalid value ${JSON.stringify(n)} for type ${JSON.stringify(e)}`
);
}
function Sn(e) {
if (e.jsonToJS === void 0) {
const n = {};
e.props.forEach((t) => n[t.json] = { key: t.js, typ: t.typ }), e.jsonToJS = n;
}
return e.jsonToJS;
}
function An(e) {
if (e.jsToJSON === void 0) {
const n = {};
e.props.forEach((t) => n[t.js] = { key: t.json, typ: t.typ }), e.jsToJSON = n;
}
return e.jsToJSON;
}
function ce(e, n, t, s = "") {
function m(o, i) {
return typeof o == typeof i ? i : re(o, i, s);
}
function v(o, i) {
const u = o.length;
for (let S = 0; S < u; S++) {
const p = o[S];
try {
return ce(i, p, t);
} catch {
}
}
return re(o, i);
}
function D(o, i) {
return o.indexOf(i) !== -1 ? i : re(o, i);
}
function O(o, i) {
return Array.isArray(i) ? i.map((u) => ce(u, o, t)) : re("array", i);
}
function I(o) {
if (o === null)
return null;
const i = new Date(o);
return isNaN(i.valueOf()) ? re("Date", o) : i;
}
function C(o, i, u) {
if (u === null || typeof u != "object" || Array.isArray(u))
return re("object", u);
const S = {};
return Object.getOwnPropertyNames(o).forEach((p) => {
const E = o[p], h = Object.prototype.hasOwnProperty.call(u, p) ? u[p] : void 0;
S[E.key] = ce(h, E.typ, t, E.key);
}), Object.getOwnPropertyNames(u).forEach((p) => {
Object.prototype.hasOwnProperty.call(o, p) || (S[p] = ce(u[p], i, t, p));
}), S;
}
if (n === "any") return e;
if (n === null)
return e === null ? e : re(n, e);
for (; typeof n == "object" && n.ref !== void 0; )
n = vn[n.ref];
return Array.isArray(n) ? D(n, e) : typeof n == "object" ? n.hasOwnProperty("unionMembers") ? v(n.unionMembers, e) : n.hasOwnProperty("arrayItems") ? O(n.arrayItems, e) : n.hasOwnProperty("props") ? C(t(n), n.additional, e) : re(n, e) : n === Date && typeof e != "number" ? I(e) : m(n, e);
}
function Ie(e, n) {
return ce(e, n, Sn);
}
function Ce(e, n) {
return ce(e, n, An);
}
function ae(e) {
return { arrayItems: e };
}
function f(...e) {
return { unionMembers: e };
}
function L(e, n) {
return { props: e, additional: n };
}
function _(e) {
return { ref: e };
}
const vn = {
ActeursEtOrganes: L(
[
{ json: "organes", js: "organes", typ: ae(_("Organe")) },
{ json: "acteurs", js: "acteurs", typ: ae(_("Acteur")) }
],
!1
),
Acteur: L(
[
{ json: "schemaVersion", js: "schemaVersion", typ: f(void 0, "") },
{ json: "uid", js: "uid", typ: "" },
{ json: "etatCivil", js: "etatCivil", typ: _("EtatCivil") },
{
json: "profession",
js: "profession",
typ: f(void 0, _("Profession"))
},
{ json: "uriHatvp", js: "uriHatvp", typ: f(void 0, "") },
{
json: "adresses",
js: "adresses",
typ: f(void 0, ae(f(_("AdresseElectronique"), _("AdressePostale"))))
},
{ json: "mandats", js: "mandats", typ: f(void 0, ae(_("Mandat"))) },
{ json: "photo", js: "photo", typ: f(void 0, _("Photo")) },
{ json: "deports", js: "deports", typ: f(void 0, ae(_("Deport"))) }
],
!1
),
AdresseElectronique: L(
[
{ json: "xsiType", js: "xsiType", typ: "" },
{ json: "uid", js: "uid", typ: "" },
{ json: "type", js: "type", typ: "" },
{ json: "typeLibelle", js: "typeLibelle", typ: "" },
{ json: "poids", js: "poids", typ: f(void 0, "") },
{
json: "adresseDeRattachement",
js: "adresseDeRattachement",
typ: f(void 0, "")
},
{ json: "valElec", js: "valElec", typ: f(void 0, "") }
],
!1
),
AdressePostale: L(
[
{ json: "xsiType", js: "xsiType", typ: "" },
{ json: "uid", js: "uid", typ: "" },
{ json: "type", js: "type", typ: "" },
{ json: "typeLibelle", js: "typeLibelle", typ: "" },
{ json: "poids", js: "poids", typ: f(void 0, "") },
{ json: "intitule", js: "intitule", typ: f(void 0, "") },
{ json: "numeroRue", js: "numeroRue", typ: f(void 0, "") },
{ json: "nomRue", js: "nomRue", typ: f(void 0, "") },
{
json: "complementAdresse",
js: "complementAdresse",
typ: f(void 0, "")
},
{ json: "codePostal", js: "codePostal", typ: f(void 0, "") },
{ json: "ville", js: "ville", typ: f(void 0, "") }
],
!1
),
EtatCivil: L(
[
{ json: "ident", js: "ident", typ: _("Ident") },
{ json: "infoNaissance", js: "infoNaissance", typ: _("InfoNaissance") },
{ json: "dateDeces", js: "dateDeces", typ: f(void 0, Date) }
],
!1
),
Ident: L(
[
{ json: "civ", js: "civ", typ: _("Civ") },
{ json: "prenom", js: "prenom", typ: "" },
{ json: "nom", js: "nom", typ: "" },
{ json: "alpha", js: "alpha", typ: "" },
{ json: "trigramme", js: "trigramme", typ: f(void 0, "") }
],
!1
),
InfoNaissance: L(
[
{ json: "dateNais", js: "dateNais", typ: f(void 0, Date) },
{ json: "villeNais", js: "villeNais", typ: f(void 0, "") },
{ json: "depNais", js: "depNais", typ: f(void 0, "") },
{ json: "paysNais", js: "paysNais", typ: f(void 0, "") }
],
!1
),
Mandat: L(
[
{ json: "xsiType", js: "xsiType", typ: f(void 0, _("TypeMandat")) },
{ json: "uid", js: "uid", typ: "" },
{ json: "acteurRef", js: "acteurRef", typ: "" },
{ json: "legislature", js: "legislature", typ: f(void 0, "") },
{ json: "typeOrgane", js: "typeOrgane", typ: _("CodeTypeOrgane") },
{ json: "dateDebut", js: "dateDebut", typ: Date },
{
json: "datePublication",
js: "datePublication",
typ: f(void 0, Date)
},
{ json: "dateFin", js: "dateFin", typ: f(void 0, Date) },
{ json: "preseance", js: "preseance", typ: f(void 0, "") },
{ json: "nominPrincipale", js: "nominPrincipale", typ: "" },
{ json: "infosQualite", js: "infosQualite", typ: _("InfosQualite") },
{ json: "organesRefs", js: "organesRefs", typ: ae("") },
{ json: "suppleant", js: "suppleant", typ: f(void 0, _("Suppleant")) },
{ json: "election", js: "election", typ: f(void 0, _("Election")) },
{ json: "mandature", js: "mandature", typ: f(void 0, _("Mandature")) },
{
json: "collaborateurs",
js: "collaborateurs",
typ: f(void 0, ae(_("Collaborateur")))
},
{ json: "libelle", js: "libelle", typ: f(void 0, "") },
{
json: "missionSuivanteRef",
js: "missionSuivanteRef",
typ: f(void 0, "")
},
{
json: "missionPrecedenteRef",
js: "missionPrecedenteRef",
typ: f(void 0, "")
}
],
!1
),
Collaborateur: L(
[
{ json: "qualite", js: "qualite", typ: f(void 0, _("Civ")) },
{ json: "prenom", js: "prenom", typ: "" },
{ json: "nom", js: "nom", typ: "" }
],
!1
),
Election: L(
[
{ json: "lieu", js: "lieu", typ: _("Lieu") },
{ json: "causeMandat", js: "causeMandat", typ: f(void 0, "") },
{
json: "refCirconscription",
js: "refCirconscription",
typ: f(void 0, "")
}
],
!1
),
Lieu: L(
[
{ json: "region", js: "region", typ: f(void 0, "") },
{
json: "regionType",
js: "regionType",
typ: f(void 0, _("RegionType"))
},
{ json: "departement", js: "departement", typ: f(void 0, "") },
{ json: "numDepartement", js: "numDepartement", typ: f(void 0, "") },
{ json: "numCirco", js: "numCirco", typ: f(void 0, "") }
],
!1
),
InfosQualite: L(
[
{ json: "codeQualite", js: "codeQualite", typ: f(void 0, "") },
{ json: "libQualite", js: "libQualite", typ: "" },
{ json: "libQualiteSex", js: "libQualiteSex", typ: f(void 0, "") }
],
!1
),
Mandature: L(
[
{
json: "datePriseFonction",
js: "datePriseFonction",
typ: f(void 0, Date)
},
{ json: "causeFin", js: "causeFin", typ: f(void 0, "") },
{
json: "premiereElection",
js: "premiereElection",
typ: f(void 0, "")
},
{ json: "placeHemicycle", js: "placeHemicycle", typ: f(void 0, "") },
{
json: "mandatRemplaceRef",
js: "mandatRemplaceRef",
typ: f(void 0, "")
},
{ json: "matriculeVote", js: "matriculeVote", typ: f(void 0, "") }
],
!1
),
Suppleant: L(
[
{ json: "dateDebut", js: "dateDebut", typ: Date },
{ json: "dateFin", js: "dateFin", typ: f(void 0, Date) },
{ json: "suppleantRef", js: "suppleantRef", typ: "" }
],
!1
),
Profession: L(
[
{ json: "libelleCourant", js: "libelleCourant", typ: f(void 0, "") },
{ json: "socProcInsee", js: "socProcInsee", typ: _("SocProcInsee") }
],
!1
),
SocProcInsee: L(
[
{ json: "catSocPro", js: "catSocPro", typ: f(void 0, "") },
{ json: "famSocPro", js: "famSocPro", typ: f(void 0, _("FamSocPro")) }
],
!1
),
Deport: L(
[
{ json: "uid", js: "uid", typ: "" },
{ json: "chronotag", js: "chronotag", typ: "" },
{ json: "legislature", js: "legislature", typ: "" },
{ json: "refActeur", js: "refActeur", typ: "" },
{ json: "dateCreation", js: "dateCreation", typ: Date },
{ json: "datePublication", js: "datePublication", typ: Date },
{ json: "portee", js: "portee", typ: _("CodeEtLibelle") },
{ json: "lecture", js: "lecture", typ: _("CodeEtLibelle") },
{ json: "instance", js: "instance", typ: _("CodeEtLibelle") },
{ json: "cible", js: "cible", typ: _("Cible") },
{ json: "explication", js: "explication", typ: f(void 0, "") }
],
!1
),
Cible: L(
[
{ json: "type", js: "type", typ: _("CodeEtLibelle") },
{ json: "referenceTextuelle", js: "referenceTextuelle", typ: "" }
],
!1
),
CodeEtLibelle: L(
[
{ json: "code", js: "code", typ: "" },
{ json: "libelle", js: "libelle", typ: "" }
],
!1
),
Organe: L(
[
{ json: "schemaVersion", js: "schemaVersion", typ: f(void 0, "") },
{ json: "xsiType", js: "xsiType", typ: f(void 0, _("TypeOrgane")) },
{ json: "uid", js: "uid", typ: "" },
{ json: "codeType", js: "codeType", typ: _("CodeTypeOrgane") },
{ json: "libelle", js: "libelle", typ: "" },
{ json: "libelleEdition", js: "libelleEdition", typ: f(void 0, "") },
{ json: "libelleAbrege", js: "libelleAbrege", t