UNPKG

@tricoteuses/assemblee

Version:

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

70 lines 8.99 kB
import assert from "assert"; import { cleanActeLegislatif, cleanActeOuDossierInitiateur } from "./actes_legislatifs.mjs"; import { cleanRapporteur } from "./acteurs.mjs"; import { cleanXmlArtefacts } from "./xml.mjs"; export function cleanDossierParlementaire(dossierParlementaire) { cleanXmlArtefacts(dossierParlementaire); const xsiType = dossierParlementaire["@xsi:type"]; if (xsiType !== undefined) { dossierParlementaire.xsiType = xsiType; delete dossierParlementaire["@xsi:type"]; } const titreDossier = dossierParlementaire.titreDossier; cleanXmlArtefacts(titreDossier); cleanActeOuDossierInitiateur(dossierParlementaire); let actesLegislatifs = dossierParlementaire.actesLegislatifs; if (actesLegislatifs !== undefined) { actesLegislatifs = actesLegislatifs.acteLegislatif; if (!Array.isArray(actesLegislatifs)) { assert(actesLegislatifs); actesLegislatifs = [actesLegislatifs]; } dossierParlementaire.actesLegislatifs = actesLegislatifs; for (const acteLegislatif of actesLegislatifs) { cleanActeLegislatif(acteLegislatif); } } let plf = dossierParlementaire.PLF; if (plf !== undefined) { plf = plf.EtudePLF; assert(Array.isArray(plf)); delete dossierParlementaire.PLF; dossierParlementaire.plf = plf; for (const etudePlf of plf) { let rapporteurs = etudePlf.rapporteur; if (rapporteurs !== undefined) { if (!Array.isArray(rapporteurs)) { assert(rapporteurs); rapporteurs = [rapporteurs]; } delete etudePlf.rapporteur; etudePlf.rapporteurs = rapporteurs; for (const rapporteur of rapporteurs) { cleanRapporteur(rapporteur); } } let missionMinefi = etudePlf.missionMinefi; if (missionMinefi !== undefined) { cleanMission(missionMinefi); } etudePlf.ordreDiqs = etudePlf.ordreDIQS; delete etudePlf.ordreDIQS; assert(etudePlf.ordreDiqs); } } } function cleanMission(mission) { let missions = mission.missions; if (missions !== undefined) { missions = missions.mission; if (!Array.isArray(missions)) { assert(missions); missions = [missions]; } mission.missions = missions; for (const missionItem of missions) { cleanMission(missionItem); } } } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjbGVhbkFjdGVMZWdpc2xhdGlmIiwiY2xlYW5BY3RlT3VEb3NzaWVySW5pdGlhdGV1ciIsImNsZWFuUmFwcG9ydGV1ciIsImNsZWFuWG1sQXJ0ZWZhY3RzIiwiY2xlYW5Eb3NzaWVyUGFybGVtZW50YWlyZSIsImRvc3NpZXJQYXJsZW1lbnRhaXJlIiwieHNpVHlwZSIsInVuZGVmaW5lZCIsInRpdHJlRG9zc2llciIsImFjdGVzTGVnaXNsYXRpZnMiLCJhY3RlTGVnaXNsYXRpZiIsIkFycmF5IiwiaXNBcnJheSIsInBsZiIsIlBMRiIsIkV0dWRlUExGIiwiZXR1ZGVQbGYiLCJyYXBwb3J0ZXVycyIsInJhcHBvcnRldXIiLCJtaXNzaW9uTWluZWZpIiwiY2xlYW5NaXNzaW9uIiwib3JkcmVEaXFzIiwib3JkcmVESVFTIiwibWlzc2lvbiIsIm1pc3Npb25zIiwibWlzc2lvbkl0ZW0iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xlYW5lcnMvZG9zc2llcnNfbGVnaXNsYXRpZnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCJcblxuaW1wb3J0IHtcbiAgY2xlYW5BY3RlTGVnaXNsYXRpZixcbiAgY2xlYW5BY3RlT3VEb3NzaWVySW5pdGlhdGV1cixcbn0gZnJvbSBcIi4vYWN0ZXNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHsgY2xlYW5SYXBwb3J0ZXVyIH0gZnJvbSBcIi4vYWN0ZXVyc1wiXG5pbXBvcnQgeyBjbGVhblhtbEFydGVmYWN0cyB9IGZyb20gXCIuL3htbFwiXG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkRvc3NpZXJQYXJsZW1lbnRhaXJlKGRvc3NpZXJQYXJsZW1lbnRhaXJlOiBhbnkpOiB2b2lkIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoZG9zc2llclBhcmxlbWVudGFpcmUpXG5cbiAgY29uc3QgeHNpVHlwZSA9IGRvc3NpZXJQYXJsZW1lbnRhaXJlW1wiQHhzaTp0eXBlXCJdXG4gIGlmICh4c2lUeXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZS54c2lUeXBlID0geHNpVHlwZVxuICAgIGRlbGV0ZSBkb3NzaWVyUGFybGVtZW50YWlyZVtcIkB4c2k6dHlwZVwiXVxuICB9XG5cbiAgY29uc3QgdGl0cmVEb3NzaWVyID0gZG9zc2llclBhcmxlbWVudGFpcmUudGl0cmVEb3NzaWVyXG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKHRpdHJlRG9zc2llcilcblxuICBjbGVhbkFjdGVPdURvc3NpZXJJbml0aWF0ZXVyKGRvc3NpZXJQYXJsZW1lbnRhaXJlKVxuXG4gIGxldCBhY3Rlc0xlZ2lzbGF0aWZzID0gZG9zc2llclBhcmxlbWVudGFpcmUuYWN0ZXNMZWdpc2xhdGlmc1xuICBpZiAoYWN0ZXNMZWdpc2xhdGlmcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgYWN0ZXNMZWdpc2xhdGlmcyA9IGFjdGVzTGVnaXNsYXRpZnMuYWN0ZUxlZ2lzbGF0aWZcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWN0ZXNMZWdpc2xhdGlmcykpIHtcbiAgICAgIGFzc2VydChhY3Rlc0xlZ2lzbGF0aWZzKVxuICAgICAgYWN0ZXNMZWdpc2xhdGlmcyA9IFthY3Rlc0xlZ2lzbGF0aWZzXVxuICAgIH1cbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZS5hY3Rlc0xlZ2lzbGF0aWZzID0gYWN0ZXNMZWdpc2xhdGlmc1xuICAgIGZvciAoY29uc3QgYWN0ZUxlZ2lzbGF0aWYgb2YgYWN0ZXNMZWdpc2xhdGlmcykge1xuICAgICAgY2xlYW5BY3RlTGVnaXNsYXRpZihhY3RlTGVnaXNsYXRpZilcbiAgICB9XG4gIH1cblxuICBsZXQgcGxmID0gZG9zc2llclBhcmxlbWVudGFpcmUuUExGXG4gIGlmIChwbGYgIT09IHVuZGVmaW5lZCkge1xuICAgIHBsZiA9IHBsZi5FdHVkZVBMRlxuICAgIGFzc2VydChBcnJheS5pc0FycmF5KHBsZikpXG4gICAgZGVsZXRlIGRvc3NpZXJQYXJsZW1lbnRhaXJlLlBMRlxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlLnBsZiA9IHBsZlxuXG4gICAgZm9yIChjb25zdCBldHVkZVBsZiBvZiBwbGYpIHtcbiAgICAgIGxldCByYXBwb3J0ZXVycyA9IGV0dWRlUGxmLnJhcHBvcnRldXJcbiAgICAgIGlmIChyYXBwb3J0ZXVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheShyYXBwb3J0ZXVycykpIHtcbiAgICAgICAgICBhc3NlcnQocmFwcG9ydGV1cnMpXG4gICAgICAgICAgcmFwcG9ydGV1cnMgPSBbcmFwcG9ydGV1cnNdXG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIGV0dWRlUGxmLnJhcHBvcnRldXJcbiAgICAgICAgZXR1ZGVQbGYucmFwcG9ydGV1cnMgPSByYXBwb3J0ZXVyc1xuICAgICAgICBmb3IgKGNvbnN0IHJhcHBvcnRldXIgb2YgcmFwcG9ydGV1cnMpIHtcbiAgICAgICAgICBjbGVhblJhcHBvcnRldXIocmFwcG9ydGV1cilcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBsZXQgbWlzc2lvbk1pbmVmaSA9IGV0dWRlUGxmLm1pc3Npb25NaW5lZmlcbiAgICAgIGlmIChtaXNzaW9uTWluZWZpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY2xlYW5NaXNzaW9uKG1pc3Npb25NaW5lZmkpXG4gICAgICB9XG5cbiAgICAgIGV0dWRlUGxmLm9yZHJlRGlxcyA9IGV0dWRlUGxmLm9yZHJlRElRU1xuICAgICAgZGVsZXRlIGV0dWRlUGxmLm9yZHJlRElRU1xuICAgICAgYXNzZXJ0KGV0dWRlUGxmLm9yZHJlRGlxcylcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xlYW5NaXNzaW9uKG1pc3Npb246IGFueSkge1xuICBsZXQgbWlzc2lvbnMgPSBtaXNzaW9uLm1pc3Npb25zXG4gIGlmIChtaXNzaW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbWlzc2lvbnMgPSBtaXNzaW9ucy5taXNzaW9uXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG1pc3Npb25zKSkge1xuICAgICAgYXNzZXJ0KG1pc3Npb25zKVxuICAgICAgbWlzc2lvbnMgPSBbbWlzc2lvbnNdXG4gICAgfVxuICAgIG1pc3Npb24ubWlzc2lvbnMgPSBtaXNzaW9uc1xuICAgIGZvciAoY29uc3QgbWlzc2lvbkl0ZW0gb2YgbWlzc2lvbnMpIHtcbiAgICAgIGNsZWFuTWlzc2lvbihtaXNzaW9uSXRlbSlcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLFFBQVE7QUFBQSxTQUd6QkMsbUJBQW1CLEVBQ25CQyw0QkFBNEI7QUFBQSxTQUVyQkMsZUFBZTtBQUFBLFNBQ2ZDLGlCQUFpQjtBQUUxQixPQUFPLFNBQVNDLHlCQUF5QkEsQ0FBQ0Msb0JBQXlCLEVBQVE7RUFDekVGLGlCQUFpQixDQUFDRSxvQkFBb0IsQ0FBQztFQUV2QyxNQUFNQyxPQUFPLEdBQUdELG9CQUFvQixDQUFDLFdBQVcsQ0FBQztFQUNqRCxJQUFJQyxPQUFPLEtBQUtDLFNBQVMsRUFBRTtJQUN6QkYsb0JBQW9CLENBQUNDLE9BQU8sR0FBR0EsT0FBTztJQUN0QyxPQUFPRCxvQkFBb0IsQ0FBQyxXQUFXLENBQUM7RUFDMUM7RUFFQSxNQUFNRyxZQUFZLEdBQUdILG9CQUFvQixDQUFDRyxZQUFZO0VBQ3RETCxpQkFBaUIsQ0FBQ0ssWUFBWSxDQUFDO0VBRS9CUCw0QkFBNEIsQ0FBQ0ksb0JBQW9CLENBQUM7RUFFbEQsSUFBSUksZ0JBQWdCLEdBQUdKLG9CQUFvQixDQUFDSSxnQkFBZ0I7RUFDNUQsSUFBSUEsZ0JBQWdCLEtBQUtGLFNBQVMsRUFBRTtJQUNsQ0UsZ0JBQWdCLEdBQUdBLGdCQUFnQixDQUFDQyxjQUFjO0lBQ2xELElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxPQUFPLENBQUNILGdCQUFnQixDQUFDLEVBQUU7TUFDcENWLE1BQU0sQ0FBQ1UsZ0JBQWdCLENBQUM7TUFDeEJBLGdCQUFnQixHQUFHLENBQUNBLGdCQUFnQixDQUFDO0lBQ3ZDO0lBQ0FKLG9CQUFvQixDQUFDSSxnQkFBZ0IsR0FBR0EsZ0JBQWdCO0lBQ3hELEtBQUssTUFBTUMsY0FBYyxJQUFJRCxnQkFBZ0IsRUFBRTtNQUM3Q1QsbUJBQW1CLENBQUNVLGNBQWMsQ0FBQztJQUNyQztFQUNGO0VBRUEsSUFBSUcsR0FBRyxHQUFHUixvQkFBb0IsQ0FBQ1MsR0FBRztFQUNsQyxJQUFJRCxHQUFHLEtBQUtOLFNBQVMsRUFBRTtJQUNyQk0sR0FBRyxHQUFHQSxHQUFHLENBQUNFLFFBQVE7SUFDbEJoQixNQUFNLENBQUNZLEtBQUssQ0FBQ0MsT0FBTyxDQUFDQyxHQUFHLENBQUMsQ0FBQztJQUMxQixPQUFPUixvQkFBb0IsQ0FBQ1MsR0FBRztJQUMvQlQsb0JBQW9CLENBQUNRLEdBQUcsR0FBR0EsR0FBRztJQUU5QixLQUFLLE1BQU1HLFFBQVEsSUFBSUgsR0FBRyxFQUFFO01BQzFCLElBQUlJLFdBQVcsR0FBR0QsUUFBUSxDQUFDRSxVQUFVO01BQ3JDLElBQUlELFdBQVcsS0FBS1YsU0FBUyxFQUFFO1FBQzdCLElBQUksQ0FBQ0ksS0FBSyxDQUFDQyxPQUFPLENBQUNLLFdBQVcsQ0FBQyxFQUFFO1VBQy9CbEIsTUFBTSxDQUFDa0IsV0FBVyxDQUFDO1VBQ25CQSxXQUFXLEdBQUcsQ0FBQ0EsV0FBVyxDQUFDO1FBQzdCO1FBQ0EsT0FBT0QsUUFBUSxDQUFDRSxVQUFVO1FBQzFCRixRQUFRLENBQUNDLFdBQVcsR0FBR0EsV0FBVztRQUNsQyxLQUFLLE1BQU1DLFVBQVUsSUFBSUQsV0FBVyxFQUFFO1VBQ3BDZixlQUFlLENBQUNnQixVQUFVLENBQUM7UUFDN0I7TUFDRjtNQUVBLElBQUlDLGFBQWEsR0FBR0gsUUFBUSxDQUFDRyxhQUFhO01BQzFDLElBQUlBLGFBQWEsS0FBS1osU0FBUyxFQUFFO1FBQy9CYSxZQUFZLENBQUNELGFBQWEsQ0FBQztNQUM3QjtNQUVBSCxRQUFRLENBQUNLLFNBQVMsR0FBR0wsUUFBUSxDQUFDTSxTQUFTO01BQ3ZDLE9BQU9OLFFBQVEsQ0FBQ00sU0FBUztNQUN6QnZCLE1BQU0sQ0FBQ2lCLFFBQVEsQ0FBQ0ssU0FBUyxDQUFDO0lBQzVCO0VBQ0Y7QUFDRjtBQUVBLFNBQVNELFlBQVlBLENBQUNHLE9BQVksRUFBRTtFQUNsQyxJQUFJQyxRQUFRLEdBQUdELE9BQU8sQ0FBQ0MsUUFBUTtFQUMvQixJQUFJQSxRQUFRLEtBQUtqQixTQUFTLEVBQUU7SUFDMUJpQixRQUFRLEdBQUdBLFFBQVEsQ0FBQ0QsT0FBTztJQUMzQixJQUFJLENBQUNaLEtBQUssQ0FBQ0MsT0FBTyxDQUFDWSxRQUFRLENBQUMsRUFBRTtNQUM1QnpCLE1BQU0sQ0FBQ3lCLFFBQVEsQ0FBQztNQUNoQkEsUUFBUSxHQUFHLENBQUNBLFFBQVEsQ0FBQztJQUN2QjtJQUNBRCxPQUFPLENBQUNDLFFBQVEsR0FBR0EsUUFBUTtJQUMzQixLQUFLLE1BQU1DLFdBQVcsSUFBSUQsUUFBUSxFQUFFO01BQ2xDSixZQUFZLENBQUNLLFdBQVcsQ0FBQztJQUMzQjtFQUNGO0FBQ0YiLCJpZ25vcmVMaXN0IjpbXX0=