UNPKG

@tricoteuses/assemblee

Version:

Retrieve, clean up & handle French Assemblée nationale's open data

618 lines (617 loc) 18.7 kB
import { F as e, H as t } from "./questions-CsNQoayp.js"; import { i as n, n as r, r as i, t as a } from "./amendements-DaB_5WaI.js"; import { S as o } from "./loaders-CY8EGNSM.js"; import s from "node:assert"; import "fs-extra"; import "node:path"; //#region src/cleaners/acteurs.ts function c(e) { let t = e; n(t); let r = t.uid; s.strictEqual(r["@xsi:type"], "IdActeur_type"), t.uid = r["#text"], s(t.uid); let i = t.etatCivil; { n(i); let e = i.ident; { n(e); let t = i.infoNaissance; n(t); } } let a = t.profession; if (a !== void 0) { n(a); let e = a.socProcINSEE; s(e), n(e), delete a.socProcINSEE, a.socProcInsee = e; } let o = t.uri_hatvp; o !== void 0 && (t.uriHatvp = o, delete t.uri_hatvp); let c = t.adresses; if (c !== void 0) { let e = Array.isArray(c) ? c : c.adresse; if (e === void 0 ? delete t.adresses : Array.isArray(e) ? t.adresses = e : (s.notStrictEqual(e, null), s.strictEqual(typeof e, "object"), t.adresses = e = [e]), e !== void 0) for (let t of e) { n(t); let e = t["@xsi:type"]; s([ "AdresseMail_Type", "AdressePostale_Type", "AdresseSiteWeb_Type", "AdresseTelephonique_Type" ].includes(e ?? ""), `Unexpected "@xsi:type": ${e}`), t.xsiType = e, delete t["@xsi:type"], s.notStrictEqual(t.uid, void 0), s.notStrictEqual(t.type, void 0), s.notStrictEqual(t.typeLibelle, void 0), e === "AdressePostale_Type" && s.strictEqual(t.adresseDeRattachement, void 0); } } let l = t.mandats; if (l !== void 0) { let e = [], r = Array.isArray(l) ? l : l.mandat; Array.isArray(r) ? e = t.mandats = r : typeof r == "object" && (e = t.mandats = [r]); for (let t of e) { n(t); let e = t["@xsi:type"]; e !== void 0 && (t.xsiType = e, delete t["@xsi:type"]); let r = t.infosQualite; n(r); let i = t.organes; s(i), delete t.organes; let a = i.organeRef; s(a), Array.isArray(a) || (a = [a]), t.organesRefs = a; let o = t.suppleants; if (delete t.suppleants, o) { let e = o.suppleant; s(e), t.suppleant = e, n(e); } let c = t.election; if (c !== void 0) { n(c); let e = c.lieu; n(e); } let l = t.mandature; l !== void 0 && n(l), s.strictEqual(t.chambre, void 0); let u = t.collaborateurs; if (u != null) { let e = Array.isArray(u) ? u.filter((e) => e !== null) : [u], r = []; e.map(({ collaborateur: e }) => { if (Array.isArray(e)) for (let t of e) t !== null && r.push(t); else e && r.push(e); }), r.length === 0 ? delete t.collaborateurs : t.collaborateurs = r; for (let e of r) n(e), s.strictEqual(e.dateDebut, void 0), s.strictEqual(e.dateFin, void 0); } let d = t.InfosHorsSIAN; d !== void 0 && (n(d), s.strictEqual(d.HATVP_URI, void 0), s.strictEqual(Object.keys(d).length, 0), delete t.InfosHorsSIAN); } e.sort((e, t) => e.uid.length === t.uid.length ? e.uid.localeCompare(t.uid) : e.uid.length - t.uid.length); } let u = t.deports; if (u !== void 0) { let e = [], r = Array.isArray(u) ? u : u.deport; Array.isArray(r) ? e = t.deports = r : typeof r == "object" && (e = t.deports = [r]); for (let t of e) { n(t); let e = t.cible; n(e), s.strictEqual(e.references, void 0); } e.sort((e, t) => e.uid.length === t.uid.length ? e.uid.localeCompare(t.uid) : e.uid.length - t.uid.length); } return t; } function l(e) { let t = e.etudePLFRef; e.etudePLFRef !== void 0 && (delete e.etudePLFRef, e.etudePlfRef = t); } //#endregion //#region src/cleaners/documents.ts function u(e) { return Array.isArray(e) ? e : [e]; } function d(e) { let t = e; if (n(t), t.metadatas?.dateSuppression !== void 0) { for (let e of Object.getOwnPropertyNames(t)) delete t[e]; return t; } let i = t["@xsi:type"]; i !== void 0 && (t.xsiType = i, delete t["@xsi:type"]); let a = t.cycleDeVie; s(a); { let e = a.chrono; s(e), n(e); } let o = t.divisions; if (o !== void 0) { let e = Array.isArray(o) ? o : u(o.division); t.divisions = e; for (let t of e) d(t); } s.strictEqual(t.redacteur, void 0); let c = t.classification; s(c), n(c); let l = t.auteurs; if (l !== void 0) { let e = Array.isArray(l) ? l : u(l.auteur); t.auteurs = e; for (let t of e) { let e = t.organe; e !== void 0 && (t.organeRef = e.organeRef, delete t.organe); } } let f = t.notice; r(f, "adoptionConforme"); let p = t.coSignataires; if (p !== void 0) { let e = Array.isArray(p) ? p : u(p.coSignataire); t.coSignataires = e; for (let t of e) { n(t), r(t, "edite"); let e = t.acteur; if (e !== void 0) { let n = e.acteurRef; s(n), delete t.acteur, t.acteurRef = n; } let i = t.organe; i !== void 0 && r(i, "etApparentes"); } } let m = t.depotAmendements; if (m !== void 0) { n(m); let e = m.amendementsSeance; n(e), r(e, "amendable"); let t = m.amendementsCommission; if (t !== void 0) { let e = Array.isArray(t) ? t : u(t.commission); m.amendementsCommission = e; for (let t of e) n(t), r(t, "amendable"), s.strictEqual(t.dateLimiteDepot, void 0); } } let h = t.imprimerie; if (h != null) { n(h); let e = h.DIAN; e !== void 0 && (delete h.DIAN, h.dian = e); let t = h.ISBN; t !== void 0 && (delete h.ISBN, h.isbn = t); let r = h.ISSN; r !== void 0 && (delete h.ISSN, h.issn = r); } r(t, "rapportPublie"); let g = t.organesReferents; return g !== void 0 && (t.organesReferents = Array.isArray(g) ? g : u(g.organeRef)), t; } //#endregion //#region src/cleaners/actes_legislatifs.ts function f(e) { return Array.isArray(e) ? e : [e]; } function p(e) { let t = e; n(t); let r = t["@xsi:type"]; r !== void 0 && (t.xsiType = r, delete t["@xsi:type"]); let i = t.auteurs; i !== void 0 && (t.auteursRefs = f(i.acteurRef), delete t.auteurs); let a = t.casSaisine; a !== void 0 && h(a); let o = t.contributionInternaute; o !== void 0 && n(o), s.strictEqual(t.dateRetrait, void 0); let c = t.decision; c !== void 0 && h(c); let u = t.infoJO; u !== void 0 && (g(u), t.infoJo = u, delete t.infoJO); let d = t.infoJOCE; if (d !== void 0) { t.infoJoce = d, delete t.infoJOCE; let e = d.refJOCE; e !== void 0 && (d.refJoce = e, delete d.refJOCE); let n = d.dateJOCE; n !== void 0 && (d.dateJoce = n, delete d.dateJOCE); } let _ = t.infoJORect; if (_ !== void 0) { let e = f(_); t.infoJoRect = e, delete t.infoJORect; for (let t of e) g(t); } m(t); let v = t.initiateurs; v !== void 0 && (s.strictEqual(t.initiateur, void 0), !Array.isArray(v) && v.acteurRef === void 0 ? (s.notStrictEqual(v.organeRef, void 0), t.initiateur = { organeRef: v.organeRef }) : t.initiateur = { acteurs: f(v) }, delete t.initiateurs), s.strictEqual(t.odSeancejRef, void 0); let y = t.provenance; y !== void 0 && (delete t.provenance, t.provenanceRef = y); let b = t.rapporteurs; if (b !== void 0 && !Array.isArray(b)) { let e = f(b.rapporteur); t.rapporteurs = e; for (let t of e) l(t); } let x = t.referenceNOR; x !== void 0 && (t.referenceNor = x, delete t.referenceNOR), s.strictEqual(t.reunion, void 0); let S = t.statutAdoption; S !== void 0 && h(S); let C = t.statutConclusion; C !== void 0 && (h(C), C.famCode === "TSORTFnull" && delete t.statutConclusion); let w = t.texteAdopte; w !== void 0 && (delete t.texteAdopte, t.texteAdopteRef = w); let T = t.texteAssocie; T !== void 0 && (delete t.texteAssocie, t.texteAssocieRef = T); let E = t.textesAssocies; if (E !== void 0 && !Array.isArray(E)) { let e = f(E.texteAssocie); t.textesAssocies = e; for (let t of e) { let e = t.refTexteAssocie; e !== void 0 && (delete t.refTexteAssocie, t.texteAssocieRef = e); } } let D = t.typeDeclaration; D !== void 0 && h(D); let O = t.typeMotion; O !== void 0 && h(O); let k = t.typeMotionCensure; k !== void 0 && h(k); let A = t.voteRefs; A !== void 0 && !Array.isArray(A) && (t.voteRefs = f(A.voteRef)); let j = t.actesLegislatifs; if (j !== void 0 && !Array.isArray(j)) { let e = f(j.acteLegislatif); t.actesLegislatifs = e; for (let t of e) p(t); } } function m(e) { let t = e, n = t.initiateur; if (n !== void 0) { let e = n.acteurs; if (e !== void 0 && !Array.isArray(e)) { let t = f(e.acteur); t.length > 0 ? n.acteurs = t : delete n.acteurs; } let r = n.organes; r !== void 0 && (n.organeRef = r.organe.organeRef.uid, s.notStrictEqual(n.organeRef, void 0), delete n.organes), n.acteurs === void 0 && n.organeRef === void 0 && delete t.initiateur; } } function h(e) { e.famCode = e.fam_code, delete e.fam_code, s(e.famCode), e.libelle || (e.libelle = e.famCode); } function g(e) { n(e); let t = e.typeJO; t !== void 0 && (e.typeJo = t, delete e.typeJO); let r = e.dateJO; r !== void 0 && (e.dateJo = r, delete e.dateJO), s.strictEqual(e.pageJO, void 0); let i = e.numJO; i !== void 0 && (e.numJo = i, delete e.numJO); let a = e.referenceNOR; a !== void 0 && (e.referenceNor = a, delete e.referenceNOR); } //#endregion //#region src/cleaners/dossiers_legislatifs.ts function _(e) { let t = e; n(t); let r = t["@xsi:type"]; r !== void 0 && (t.xsiType = r, delete t["@xsi:type"]); let i = t.titreDossier; n(i), m(t); let a = t.actesLegislatifs; if (a != null) { let e = Array.isArray(a) ? a : a.acteLegislatif; Array.isArray(e) || (s(e), e = [e]); let n = e; t.actesLegislatifs = n; for (let e of n) p(e); } let o = t.PLF; if (o !== void 0) { let e = o.EtudePLF; s(Array.isArray(e)), delete t.PLF, t.plf = e; for (let t of e) { let e = t.rapporteur; if (e !== void 0) { Array.isArray(e) || (s(e), e = [e]), delete t.rapporteur, t.rapporteurs = e; for (let t of e) l(t); } let n = t.missionMinefi; n !== void 0 && v(n), t.ordreDiqs = t.ordreDIQS, delete t.ordreDIQS, s(t.ordreDiqs); } } return t; } function v(e) { let t = e.missions; if (t !== void 0) { let n = Array.isArray(t) ? t : t.mission; Array.isArray(n) || (s(n), n = [n]), e.missions = n; for (let e of n) v(e); } } //#endregion //#region src/cleaners/organes.ts function y(e) { let t = e; n(t); let r = t["@xsi:type"]; r !== void 0 && (t.xsiType = r, delete t["@xsi:type"]); let i = t.viMoDe; i !== void 0 && n(i); let a = t.organeParent; a !== void 0 && (delete t.organeParent, t.organeParentRef = a), s.strictEqual(t.chambre, void 0); let o = t.secretariat; o !== void 0 && n(o); let c = t.lieu; if (c !== void 0) { n(c); let e = c.region; e !== void 0 && n(e); let t = c.departement; t !== void 0 && n(t); } t.couleurAssociee === null && delete t.couleurAssociee; let l = t.listePays; if (l !== void 0) { let e = Array.isArray(l) ? l : l.paysRef; Array.isArray(e) || (s.strictEqual(typeof e, "string"), e = [e]), t.listePays = e; } return t; } //#endregion //#region src/cleaners/reunions.ts function b(e) { n(e); let t = e.chrono; s(t); { n(t); let e = t.creation; s.strictEqual(typeof e, "string"), e = new Date(e), t.creation = e; let r = t.cloture; r !== void 0 && (s.strictEqual(typeof r, "string"), r = new Date(r), t.cloture = r); } } function x(e) { let t = e; n(t), r(t, "captationVideo"), r(t, "comiteSecret"), r(t, "ouverturePresse"); let i = t["@xsi:type"]; i !== void 0 && (t.xsiType = i, delete t["@xsi:type"]); let a = t.timeStampDebut; s.notStrictEqual(a, void 0), t.timestampDebut = a, delete t.timeStampDebut; let o = t.timeStampFin; o !== void 0 && (s.strictEqual(typeof o, "string"), t.timestampFin = new Date(o), delete t.timeStampFin); let c = t.lieu; c !== void 0 && n(c); let l = t.cycleDeVie; s.notStrictEqual(l, void 0), b(l); let u = t.demandeurs; if (u != null) { let e = u.acteur; if (e !== void 0) { Array.isArray(e) || (s.notStrictEqual(e, null), s.strictEqual(typeof e, "object"), e = [e]); let t = e.filter((e) => e !== null); u.acteurs = t, delete u.acteur; for (let e of t) n(e); } let t = u.organe; t !== void 0 && n(t); } let d = t.demandeur; if (d != null) { s.strictEqual(t.demandeurs, void 0), delete t.demandeur; let e = d.acteur; if (e !== void 0) { s.notStrictEqual(e, null), s.strictEqual(typeof e, "object"); let r = [e]; d.acteurs = r, delete d.acteur, t.demandeurs = d; for (let e of r) n(e); } let r = d.organe; r !== void 0 && n(r); } let f = t.participants; if (f != null) { n(f); let e = f.participantsInternes; if (e != null) { let t = Array.isArray(e) ? e : e.participantInterne; Array.isArray(t) || (s.notStrictEqual(t, null), s.strictEqual(typeof t, "object"), t = [t]), f.participantsInternes = t; } let t = f.personnesAuditionnees; if (t !== void 0) { let e = Array.isArray(t) ? t : t === null ? null : t.personneAuditionnee; if (e === null) delete f.personnesAuditionnees; else { Array.isArray(e) || (s.strictEqual(typeof e, "object"), e = [e]), e = e.filter((e) => e !== null), e.length > 0 ? f.personnesAuditionnees = e : delete f.personnesAuditionnees; for (let t of e) { let e = t.uid, r = e["@xsi:type"]; s(r), t.xsiType = r; let i = e["#text"]; s(i), t.uid = i; let a = t.ident; s(a), n(a); } } } } if (t.ODJ !== void 0 && t.ODJ !== null) { let e = t.ODJ; t.odj = e, delete t.ODJ; { n(e); let t = e.convocationODJ; t !== void 0 && (e.convocationOdj = Array.isArray(t.item) ? t.item : [t.item], delete e.convocationODJ); let i = e.resumeODJ; i !== void 0 && (e.resumeOdj = Array.isArray(i.item) ? i.item : [i.item], delete e.resumeODJ); let a = e.pointsODJ; if (a !== void 0) { let t = Array.isArray(a.pointODJ) ? a.pointODJ : [a.pointODJ]; e.pointsOdj = t; for (let e of t) { n(e), r(e, "comiteSecret"); let t = e["@xsi:type"]; t !== void 0 && (e.xsiType = t, delete e["@xsi:type"]); let i = e.cycleDeVie; s.notStrictEqual(i, void 0), b(i), s.strictEqual(e.demandeurPoint, void 0); let a = e.dossiersLegislatifsRefs; a !== void 0 && (e.dossiersLegislatifsRefs = Array.isArray(a) ? a : Array.isArray(a.dossierRef) ? a.dossierRef : [a.dossierRef]), e.typePointOdj = e.typePointODJ, delete e.typePointODJ, s.strictEqual(e.textesAssocies, void 0), e.natureTravauxOdj = e.natureTravauxODJ, delete e.natureTravauxODJ; let o = e.dateConfPres; if (o !== void 0) { s.strictEqual(typeof o, "string"); let t = o; s(/^\d{4}-\d{2}-\d{2}\+\d{2}:00$/.test(t)), e.dateConfPres = new Date(t.split("+")[0]); } let c = e.dateLettreMinistre; if (c !== void 0) { s.strictEqual(typeof c, "string"); let t = c; s(/^\d{4}-\d{2}-\d{2}\+\d{2}:00$/.test(t)), e.dateLettreMinistre = new Date(t.split("+")[0]); } } delete e.pointsODJ; } } } let p = t.identifiants; if (p !== void 0) { n(p); let e = p.numSeanceJO; e !== void 0 && (p.numSeanceJo = e, delete p.numSeanceJO); let t = p.idJO; t !== void 0 && (p.idJo = t, delete p.idJO); let r = p.DateSeance; s.strictEqual(typeof r, "string"); let i = r; s(/^\d{4}-\d{2}-\d{2}\+\d{2}:00$/.test(i)), p.dateSeance = new Date(i.split("+")[0]), delete p.DateSeance; } let m = t.infosReunionsInternationale; if (m !== void 0) { n(m), r(m, "estReunionInternationale"); let e = m.listePays; if (e != null) { let t = Array.isArray(e) ? e : e.paysRef; Array.isArray(t) || (s.strictEqual(typeof t, "string"), t = [t]), m.listePays = t; } } return t; } //#endregion //#region src/cleaners/scrutins.ts function S(e) { return "votant" in e; } function C(e) { if (e == null) return; if (typeof e == "string") return s.strictEqual(e, "0"), []; if (Array.isArray(e)) { let t = e.filter((e) => e !== null); if (t.length === 0 || !S(t[0])) return t; let n = []; for (let e of t) { s(S(e)); let t = e.votant; Array.isArray(t) ? n.push(...t) : n.push(t); } return n; } let t = [], n = e.votant; return Array.isArray(n) ? t.push(...n) : t.push(n), t; } function w(e) { n(e); let t = e.nonVotants ?? e.nonVotant; if (e.nonVotants === void 0 ? delete e.nonVotant : s.strictEqual(e.nonVotant, void 0), t !== void 0) { let n = C(t); if (n !== void 0 && n.length === 0) delete e.nonVotants; else if (n !== void 0) { e.nonVotants = n; for (let e of n) D(e); } } let r = e.pour ?? e.pours; if (e.pour === void 0 ? delete e.pours : s.strictEqual(e.pours, void 0), r !== void 0) { let t = C(r); if (s(t), t.length === 0) delete e.pour; else { e.pour = t; for (let e of t) D(e); } } let i = e.contre ?? e.contres; if (e.contre === void 0 ? delete e.contres : s.strictEqual(e.contres, void 0), i !== void 0) { let t = C(i); if (s(t), t.length === 0) delete e.contre; else { e.contre = t; for (let e of t) D(e); } } let a = e.abstentions ?? e.abstention; if (e.abstentions === void 0 ? delete e.abstention : s.strictEqual(e.abstention, void 0), a !== void 0) { let t = C(a); if (s(t), t.length === 0) delete e.abstentions; else { e.abstentions = t; for (let e of t) D(e); } } let o = e.nonVotantsVolontaires; if (o !== void 0) { let t = C(o); if (s(t), t.length === 0) delete e.nonVotantsVolontaires; else { e.nonVotantsVolontaires = t; for (let e of t) D(e); } } } function T(e) { n(e), e.abstention !== void 0 && (s.strictEqual(e.abstentions, void 0), e.abstentions = e.abstention, delete e.abstention), e.nonVotant !== void 0 && (s.strictEqual(e.nonVotants, void 0), e.nonVotants = e.nonVotant, delete e.nonVotant); } function E(e) { let t = e; n(t); let r = t.demandeur; n(r), s.strictEqual(r.referenceLegislative, void 0); let i = t.objet; n(i), s.strictEqual(i.referenceLegislative, void 0); let a = t.miseAuPoint; if (a !== void 0) { w(a); let e = a.dysfonctionnement; e !== void 0 && (w(e), Object.values(e).every((e) => e === void 0) && delete a.dysfonctionnement), Object.values(a).every((e) => e === void 0) && delete t.miseAuPoint; } let o = t.syntheseVote; T(o.decompte); let c = t.ventilationVotes.organe; s(c); let l = c.groupes.groupe; s(Array.isArray(l)); for (let e of l) { let t = e.vote; T(t.decompteVoix), w(t.decompteNominatif); } return t.ventilationVotes = { ...c, groupes: l }, t; } function D(e) { r(e, "parDelegation"), i(e, "numPlace"); } //#endregion //#region src/cleaners/questions.ts function O(t) { let r = e.parse(t); return n(r, { recursive: !0 }), r; } //#endregion //#region src/cleaners/debats.ts function k(e) { let r = t.safeParse(e); if (r.success) { let e = r.data; return n(e, { recursive: !0 }), e; } return o.parse(e); } //#endregion export { c as cleanActeur, a as cleanAmendement, k as cleanCompteRendu, d as cleanDocumentOrDivision, _ as cleanDossierParlementaire, y as cleanOrgane, O as cleanQuestion, x as cleanReunion, E as cleanScrutin };