@tricoteuses/assemblee
Version:
Retrieve, clean up & handle French Assemblée nationale's open data
153 lines (152 loc) • 4.79 kB
JavaScript
import { n as e } from "./amendements-D3Jr9MQa.js";
import t from "node:assert";
//#region src/cleaners/xml.ts
var n = {
false: !1,
true: !0
}, r = "http://schemas.assemblee-nationale.fr/referentiel", i = "http://www.w3.org/2001/XMLSchema-instance";
function a(e, r) {
let i = e[r];
if (i == null) {
delete e[r];
return;
}
let a = n[i];
return t.notStrictEqual(a, void 0, `Invalid boolean value: ${r} = ${i}`), e[r] = a, a;
}
function o(e, n) {
let r = e[n];
if (r == null) {
delete e[n];
return;
}
let i = Number.parseInt(r);
return t(!Number.isNaN(i), `Invalid number value: ${n} = ${r}`), e[n] = i, i;
}
function s(e, { recursive: n } = {}) {
if (e != null) {
if (Array.isArray(e)) {
if (e.length === 0) return;
if (n) for (let [t, r] of e.entries()) {
let i = s(r, { recursive: n });
i !== r && (e[t] = i ?? null);
}
return e;
}
if (typeof e == "object" && e.constructor === Object) {
let a = e;
if (Object.keys(a).length === 0 || a["@xsi:nil"] === "true") return;
let o = a["@xmlns"] ?? a.xmlns;
if (o !== void 0 && (t.strictEqual(o, r), delete a["@xmlns"], delete a.xmlns), a["@xmlns:xsi"] === i && delete a["@xmlns:xsi"], n) for (let [e, t] of Object.entries(a)) {
let r = s(t, { recursive: n });
r === void 0 ? delete a[e] : r !== t && (a[e] = r);
}
else for (let [e, t] of Object.entries(a)) (t == null || t["@xsi:nil"] === "true" || Array.isArray(t) && t.length === 0 || !Array.isArray(t) && t.constructor === Object && Object.keys(t).length === 0) && delete a[e];
return Object.keys(a).length === 0 ? void 0 : a;
}
return e;
}
}
//#endregion
//#region src/cleaners/amendements.ts
function c(e) {
return Array.isArray(e) ? e : [e];
}
function l(t) {
return t === "Après" ? "Apres" : e.includes(t) ? t : "A";
}
function u(e) {
let n = e;
s(n);
let r = n.signataires;
s(r);
let i = r.auteur;
s(i);
let o = r.cosignataires;
if (o !== void 0) {
let e = o.acteurRef;
e !== void 0 && (r.cosignatairesRefs = c(e)), delete r.cosignataires;
}
let u = r.libelle;
if (u !== void 0) {
let e = u.replace(/ |\u00A0/g, " ").split(" ").filter(Boolean).join(" ");
e ? r.libelle = e : delete r.libelle;
}
let f = n.pointeurFragmentTexte;
s(f);
let p = f.division;
if (p !== void 0) {
s(p);
let e = p.avant_A_Apres;
e !== void 0 && (delete p.avant_A_Apres, p.avantAApres = e === "Après" ? "Apres" : e);
}
let m = f.amendementStandard;
if (m !== void 0) {
s(m);
let e = m.alinea;
if (e !== void 0) {
s(e);
let t = e.avant_A_Apres;
typeof t == "string" && (delete e.avant_A_Apres, e.avantAApres = l(t)), f.alinea = e;
}
delete f.amendementStandard;
}
let h = n.corps;
if (h !== void 0) {
s(h);
let e = h.contenuAuteur;
if (e !== void 0) {
s(e);
let n = e.avantAppel;
n !== void 0 && (s(n), d(n.dispositifAmdtCreditPLF, { rectificatif: !1 }), d(n.dispositifAmdtCreditPLFR, { rectificatif: !0 }), Object.keys(n).length === 0 && delete e.avantAppel), t.strictEqual(e.annexeExposeSommaire, void 0), d(e.dispositifAmdtCreditPLF, { rectificatif: !1 }), d(e.dispositifAmdtCreditPLFR, { rectificatif: !0 });
}
}
let g = n.cycleDeVie;
if (g !== void 0) {
s(g);
let e = g.etatDesTraitements;
s(e), s(e.etat), e.sousEtat !== void 0 && s(e.sousEtat);
}
let _ = n.representations;
if (_ !== void 0) {
let e = _.representation;
t(!Array.isArray(e)), n.representation = e, delete n.representations, s(e), t.strictEqual(e.repSource, void 0), t.strictEqual(e.offset, void 0), t.strictEqual(e.dateDispoRepresentation, void 0);
let r = e.statutRepresentation;
a(r, "canonique"), a(r, "enregistrement"), a(r, "officielle"), a(r, "transcription"), a(r, "verbatim");
}
return n.loiReference !== void 0 && s(n.loiReference), n.discussionCommune !== void 0 && s(n.discussionCommune), n.discussionIdentique !== void 0 && s(n.discussionIdentique), n;
}
function d(e, { rectificatif: t }) {
if (e !== void 0) {
let n = e.listeProgrammes, r = n === void 0 ? void 0 : Array.isArray(n) ? n : n.programme === void 0 ? void 0 : c(n.programme);
if (r !== void 0) {
e.listeProgrammes = r;
for (let e of r) {
s(e);
let n = e.lignesCredits;
if (n !== void 0) {
let r = Array.isArray(n) ? n : n.ligneCredit === void 0 ? void 0 : c(n.ligneCredit);
if (r === void 0) delete e.lignesCredits;
else {
e.lignesCredits = r;
for (let e of r) t ? f(e) : s(e);
}
}
}
}
}
}
function f(e) {
s(e);
let t = e.lignesCredits;
if (t !== void 0) {
let n = Array.isArray(t) ? t : t.ligneCredit === void 0 ? void 0 : c(t.ligneCredit);
if (n === void 0) delete e.lignesCredits;
else {
e.lignesCredits = n;
for (let e of n) f(e);
}
}
}
//#endregion
export { s as i, a as n, o as r, u as t };