@tricoteuses/assemblee 1.10.5 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/lib/amendements-79bwpkvR.js +154 -0
- package/lib/amendements-CV3s5a0M.js +667 -0
- package/lib/cleaners/index.d.ts +9 -9
- package/lib/cleaners.js +564 -0
- package/lib/datasets.d.ts +3 -3
- package/lib/dossiers_legislatifs.d.ts +2 -2
- package/lib/index.d.ts +17 -22
- package/lib/index.js +1542 -314
- package/lib/inserters.d.ts +5 -5
- package/lib/loaders-9mHdTl9L.js +4158 -0
- package/lib/loaders.d.ts +12 -12
- package/lib/loaders.js +29 -1689
- package/lib/organes.d.ts +1 -1
- package/lib/parse-Ccs6wcUg.js +2512 -0
- package/lib/parsers/index.d.ts +2 -3
- package/lib/parsers/plf.d.ts +1 -0
- package/lib/parsers/recherche_amendements.d.ts +2 -2
- package/lib/parsers/textes_lois.d.ts +1 -23
- package/lib/parsers.js +398 -0
- package/lib/raw_types/debats.d.ts +2 -2
- package/lib/raw_types/dossiers_legislatifs.d.ts +1 -1
- package/lib/schemas/acteurs_et_organes.json +1166 -0
- package/lib/schemas/agendas.json +1745 -0
- package/lib/schemas/amendements.json +2085 -0
- package/lib/schemas/debats.json +842 -0
- package/lib/schemas/dossiers_legislatifs.json +3874 -0
- package/lib/schemas/legislatures.json +17 -0
- package/lib/schemas/questions.json +704 -0
- package/lib/schemas/scrutins.json +701 -0
- package/lib/scripts/retrieve_deputes_photos.d.ts +1 -1
- package/lib/types/acteurs_et_organes.d.ts +340 -0
- package/lib/types/agendas.d.ts +236 -10
- package/lib/types/amendements.d.ts +276 -1
- package/lib/types/debats.d.ts +52 -2
- package/lib/types/dossiers_legislatifs.d.ts +403 -9
- package/lib/types/questions.d.ts +99 -2
- package/lib/types/scrutins.d.ts +101 -0
- package/lib/urls.d.ts +2 -2
- package/package.json +32 -94
- package/lib/api.js +0 -52
- package/lib/api.mjs +0 -45
- package/lib/bugs/acteur-00010/plugin.test.js +0 -90
- package/lib/bugs/acteur-00010/plugin.test.mjs +0 -33
- package/lib/bugs/acteur-00010.d.ts +0 -7
- package/lib/bugs/acteur-00010.js +0 -116
- package/lib/bugs/acteur-00010.mjs +0 -26
- package/lib/bugs/agenda-00002/plugin.test.js +0 -124
- package/lib/bugs/agenda-00002/plugin.test.mjs +0 -50
- package/lib/bugs/agenda-00002.d.ts +0 -15
- package/lib/bugs/agenda-00002.js +0 -406
- package/lib/bugs/agenda-00002.mjs +0 -172
- package/lib/bugs/agenda-00008/plugin.test.js +0 -92
- package/lib/bugs/agenda-00008/plugin.test.mjs +0 -31
- package/lib/bugs/agenda-00008.d.ts +0 -7
- package/lib/bugs/agenda-00008.js +0 -123
- package/lib/bugs/agenda-00008.mjs +0 -26
- package/lib/bugs/agenda-00011/plugin.test.d.ts +0 -1
- package/lib/bugs/agenda-00011/plugin.test.js +0 -263
- package/lib/bugs/agenda-00011/plugin.test.mjs +0 -152
- package/lib/bugs/agenda-00011.d.ts +0 -16
- package/lib/bugs/agenda-00011.js +0 -333
- package/lib/bugs/agenda-00011.mjs +0 -125
- package/lib/bugs.d.ts +0 -21
- package/lib/bugs.js +0 -452
- package/lib/bugs.mjs +0 -70
- package/lib/cleaners/actes_legislatifs.js +0 -315
- package/lib/cleaners/actes_legislatifs.mjs +0 -253
- package/lib/cleaners/acteurs.js +0 -265
- package/lib/cleaners/acteurs.mjs +0 -180
- package/lib/cleaners/amendements.js +0 -294
- package/lib/cleaners/amendements.mjs +0 -227
- package/lib/cleaners/debats.js +0 -12
- package/lib/cleaners/debats.mjs +0 -5
- package/lib/cleaners/documents.js +0 -205
- package/lib/cleaners/documents.mjs +0 -133
- package/lib/cleaners/dossiers_legislatifs.js +0 -131
- package/lib/cleaners/dossiers_legislatifs.mjs +0 -70
- package/lib/cleaners/index.js +0 -70
- package/lib/cleaners/index.mjs +0 -10
- package/lib/cleaners/organes.js +0 -65
- package/lib/cleaners/organes.mjs +0 -48
- package/lib/cleaners/questions.js +0 -12
- package/lib/cleaners/questions.mjs +0 -5
- package/lib/cleaners/reunions.js +0 -312
- package/lib/cleaners/reunions.mjs +0 -255
- package/lib/cleaners/scrutins.js +0 -340
- package/lib/cleaners/scrutins.mjs +0 -221
- package/lib/cleaners/xml.js +0 -74
- package/lib/cleaners/xml.mjs +0 -59
- package/lib/datasets.js +0 -837
- package/lib/datasets.mjs +0 -755
- package/lib/dates.js +0 -124
- package/lib/dates.mjs +0 -100
- package/lib/dossiers_legislatifs.js +0 -346
- package/lib/dossiers_legislatifs.mjs +0 -208
- package/lib/file_systems.js +0 -162
- package/lib/file_systems.mjs +0 -62
- package/lib/git.js +0 -223
- package/lib/git.mjs +0 -151
- package/lib/index.mjs +0 -17
- package/lib/inserters.js +0 -521
- package/lib/inserters.mjs +0 -337
- package/lib/loaders.mjs +0 -886
- package/lib/logger.js +0 -35
- package/lib/logger.mjs +0 -26
- package/lib/organes.js +0 -22
- package/lib/organes.mjs +0 -15
- package/lib/parsers/documents.d.ts +0 -62
- package/lib/parsers/documents.js +0 -453
- package/lib/parsers/documents.mjs +0 -370
- package/lib/parsers/index.js +0 -40
- package/lib/parsers/index.mjs +0 -4
- package/lib/parsers/recherche_amendements.js +0 -403
- package/lib/parsers/recherche_amendements.mjs +0 -167
- package/lib/parsers/textes_lois.js +0 -307
- package/lib/parsers/textes_lois.mjs +0 -264
- package/lib/raw_types/acteurs_et_organes.js +0 -1215
- package/lib/raw_types/acteurs_et_organes.mjs +0 -1148
- package/lib/raw_types/agendas.js +0 -777
- package/lib/raw_types/agendas.mjs +0 -724
- package/lib/raw_types/amendements.js +0 -1052
- package/lib/raw_types/amendements.mjs +0 -993
- package/lib/raw_types/debats.js +0 -630
- package/lib/raw_types/debats.mjs +0 -573
- package/lib/raw_types/dossiers_legislatifs.js +0 -1529
- package/lib/raw_types/dossiers_legislatifs.mjs +0 -1471
- package/lib/raw_types/questions.js +0 -469
- package/lib/raw_types/questions.mjs +0 -416
- package/lib/raw_types/scrutins.js +0 -651
- package/lib/raw_types/scrutins.mjs +0 -598
- package/lib/schemas/acteur/Acteur.json +0 -56
- package/lib/schemas/acteur/AdresseElectronique.json +0 -52
- package/lib/schemas/acteur/AdressePostale.json +0 -75
- package/lib/schemas/acteur/Civ.json +0 -14
- package/lib/schemas/acteur/Collaborateur.json +0 -29
- package/lib/schemas/acteur/EtatCivil.json +0 -51
- package/lib/schemas/acteur/Ident.json +0 -40
- package/lib/schemas/acteur/Lieu.json +0 -66
- package/lib/schemas/acteur/Mandat.json +0 -192
- package/lib/schemas/acteur/Profession.json +0 -46
- package/lib/schemas/agenda/Agenda.json +0 -318
- package/lib/schemas/agenda/CycleDeVie.json +0 -45
- package/lib/schemas/agenda/PointOdj.json +0 -82
- package/lib/schemas/amendement/Amendement.json +0 -246
- package/lib/schemas/amendement/Diff.json +0 -25
- package/lib/schemas/amendement/DispositifAmdtCredit.json +0 -85
- package/lib/schemas/amendement/Identifiant.json +0 -62
- package/lib/schemas/amendement/PointeurFragmentTexte.json +0 -127
- package/lib/schemas/amendement/Representation.json +0 -67
- package/lib/schemas/amendement/Total.json +0 -26
- package/lib/schemas/converted_from_type/acteurs_et_organes.json +0 -666
- package/lib/schemas/converted_from_type/agendas.json +0 -1100
- package/lib/schemas/converted_from_type/amendements.json +0 -3191
- package/lib/schemas/converted_from_type/debats.json +0 -682
- package/lib/schemas/converted_from_type/deputes.json +0 -26
- package/lib/schemas/converted_from_type/dossiers_legislatifs.json +0 -2918
- package/lib/schemas/converted_from_type/legislatures.json +0 -16
- package/lib/schemas/converted_from_type/questions.json +0 -328
- package/lib/schemas/converted_from_type/scrutins.json +0 -393
- package/lib/schemas/debat/Contenu.json +0 -75
- package/lib/schemas/debat/Debat.json +0 -40
- package/lib/schemas/debat/Metadonnees.json +0 -75
- package/lib/schemas/debat/Orateur.json +0 -60
- package/lib/schemas/debat/Point.json +0 -169
- package/lib/schemas/debat/Sommaire.json +0 -71
- package/lib/schemas/debat/SommaireElement.json +0 -108
- package/lib/schemas/debat/Texte.json +0 -34
- package/lib/schemas/document/CodeLibelle.json +0 -25
- package/lib/schemas/document/Document.json +0 -385
- package/lib/schemas/document/Indexation.json +0 -38
- package/lib/schemas/dossier/ActeLegislatif.json +0 -211
- package/lib/schemas/dossier/ActeLegislatifBase.json +0 -62
- package/lib/schemas/dossier/Agenda.json +0 -23
- package/lib/schemas/dossier/ConseilConstitutionnel.json +0 -35
- package/lib/schemas/dossier/Decision.json +0 -25
- package/lib/schemas/dossier/Dossier.json +0 -124
- package/lib/schemas/dossier/EtudeImpact.json +0 -29
- package/lib/schemas/dossier/EtudePlf.json +0 -105
- package/lib/schemas/dossier/Europe.json +0 -42
- package/lib/schemas/dossier/FamCodeLibelle.json +0 -25
- package/lib/schemas/dossier/InfoJO.json +0 -23
- package/lib/schemas/dossier/Initiateur.json +0 -36
- package/lib/schemas/dossier/Motion.json +0 -27
- package/lib/schemas/dossier/Promulgation.json +0 -62
- package/lib/schemas/dossier/Rapporteur.json +0 -36
- package/lib/schemas/dossier/Texte.json +0 -47
- package/lib/schemas/organe/CodeTypeOrgane.json +0 -43
- package/lib/schemas/organe/Organe.json +0 -136
- package/lib/schemas/organe/ViMoDe.json +0 -28
- package/lib/schemas/question/Auteur.json +0 -58
- package/lib/schemas/question/Cloture.json +0 -28
- package/lib/schemas/question/InfoJO.json +0 -40
- package/lib/schemas/question/MinAttribElement.json +0 -30
- package/lib/schemas/question/Question.json +0 -172
- package/lib/schemas/question/Renouvellement.json +0 -17
- package/lib/schemas/question/Signalement.json +0 -21
- package/lib/schemas/question/Texte.json +0 -24
- package/lib/schemas/scrutin/DecompteVoix.json +0 -35
- package/lib/schemas/scrutin/Dysfonctionnement.json +0 -50
- package/lib/schemas/scrutin/MiseAuPoint.json +0 -53
- package/lib/schemas/scrutin/OrganeVotant.json +0 -88
- package/lib/schemas/scrutin/Scrutin.json +0 -187
- package/lib/schemas/scrutin/Votant.json +0 -37
- package/lib/scripts/bugs_helper.d.ts +0 -13
- package/lib/scripts/bugs_helper.js +0 -595
- package/lib/scripts/bugs_helper.mjs +0 -251
- package/lib/scripts/clean_reorganized_data.js +0 -613
- package/lib/scripts/clean_reorganized_data.mjs +0 -276
- package/lib/scripts/diff_amendements.js +0 -249
- package/lib/scripts/diff_amendements.mjs +0 -202
- package/lib/scripts/document_dossiers_legislatifs.js +0 -655
- package/lib/scripts/document_dossiers_legislatifs.mjs +0 -414
- package/lib/scripts/get_today_reunions.js +0 -37
- package/lib/scripts/get_today_reunions.mjs +0 -31
- package/lib/scripts/merge_scrutins.js +0 -97
- package/lib/scripts/merge_scrutins.mjs +0 -47
- package/lib/scripts/parse_textes_lois.d.ts +0 -1
- package/lib/scripts/parse_textes_lois.js +0 -171
- package/lib/scripts/parse_textes_lois.mjs +0 -140
- package/lib/scripts/process_open_dataset.js +0 -301
- package/lib/scripts/process_open_dataset.mjs +0 -134
- package/lib/scripts/raw_types_from_amendements.js +0 -135
- package/lib/scripts/raw_types_from_amendements.mjs +0 -134
- package/lib/scripts/reorganize_data.js +0 -805
- package/lib/scripts/reorganize_data.mjs +0 -517
- package/lib/scripts/retrieve_deputes_photos.js +0 -310
- package/lib/scripts/retrieve_deputes_photos.mjs +0 -158
- package/lib/scripts/retrieve_documents.js +0 -547
- package/lib/scripts/retrieve_documents.mjs +0 -242
- package/lib/scripts/retrieve_open_data.js +0 -107
- package/lib/scripts/retrieve_open_data.mjs +0 -26
- package/lib/scripts/retrieve_pending_amendments.js +0 -206
- package/lib/scripts/retrieve_pending_amendments.mjs +0 -57
- package/lib/scripts/retrieve_senateurs_photos.js +0 -234
- package/lib/scripts/retrieve_senateurs_photos.mjs +0 -116
- package/lib/scripts/retrieve_textes_lois.d.ts +0 -1
- package/lib/scripts/retrieve_textes_lois.js +0 -240
- package/lib/scripts/retrieve_textes_lois.mjs +0 -85
- package/lib/scripts/shared/cli_helpers.js +0 -89
- package/lib/scripts/shared/cli_helpers.mjs +0 -81
- package/lib/scripts/test_iter_load.js +0 -155
- package/lib/scripts/test_iter_load.mjs +0 -72
- package/lib/scripts/test_load.js +0 -26
- package/lib/scripts/test_load.mjs +0 -16
- package/lib/scripts/test_load_big_files.js +0 -26
- package/lib/scripts/test_load_big_files.mjs +0 -16
- package/lib/scripts/validate_json.js +0 -353
- package/lib/scripts/validate_json.mjs +0 -184
- package/lib/shared_types/codes_actes.js +0 -231
- package/lib/shared_types/codes_actes.mjs +0 -224
- package/lib/strings.js +0 -16
- package/lib/strings.mjs +0 -7
- package/lib/types/acteurs_et_organes.js +0 -965
- package/lib/types/acteurs_et_organes.mjs +0 -906
- package/lib/types/agendas.js +0 -628
- package/lib/types/agendas.mjs +0 -575
- package/lib/types/amendements.js +0 -899
- package/lib/types/amendements.mjs +0 -842
- package/lib/types/debats.js +0 -619
- package/lib/types/debats.mjs +0 -562
- package/lib/types/dossiers_legislatifs.js +0 -1188
- package/lib/types/dossiers_legislatifs.mjs +0 -1130
- package/lib/types/legislatures.js +0 -17
- package/lib/types/legislatures.mjs +0 -10
- package/lib/types/questions.js +0 -454
- package/lib/types/questions.mjs +0 -401
- package/lib/types/scrutins.js +0 -556
- package/lib/types/scrutins.mjs +0 -503
- package/lib/urls.js +0 -325
- package/lib/urls.mjs +0 -258
- /package/lib/{bugs/acteur-00010/plugin.test.d.ts → scripts/add_links_to_documents.d.ts} +0 -0
- /package/lib/{bugs/agenda-00002/plugin.test.d.ts → scripts/copy-schemas.d.ts} +0 -0
- /package/lib/{bugs/agenda-00008/plugin.test.d.ts → scripts/generate-json-schemas.d.ts} +0 -0
|
@@ -1,315 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
require("core-js/modules/es.symbol.js");
|
|
4
|
-
require("core-js/modules/es.symbol.description.js");
|
|
5
|
-
require("core-js/modules/es.symbol.iterator.js");
|
|
6
|
-
require("core-js/modules/es.array.from.js");
|
|
7
|
-
require("core-js/modules/es.array.iterator.js");
|
|
8
|
-
require("core-js/modules/es.array.slice.js");
|
|
9
|
-
require("core-js/modules/es.date.to-string.js");
|
|
10
|
-
require("core-js/modules/es.function.name.js");
|
|
11
|
-
require("core-js/modules/es.object.define-property.js");
|
|
12
|
-
require("core-js/modules/es.object.to-string.js");
|
|
13
|
-
require("core-js/modules/es.regexp.exec.js");
|
|
14
|
-
require("core-js/modules/es.regexp.to-string.js");
|
|
15
|
-
require("core-js/modules/es.string.iterator.js");
|
|
16
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
17
|
-
Object.defineProperty(exports, "__esModule", {
|
|
18
|
-
value: true
|
|
19
|
-
});
|
|
20
|
-
exports.cleanActeLegislatif = cleanActeLegislatif;
|
|
21
|
-
exports.cleanActeOuDossierInitiateur = cleanActeOuDossierInitiateur;
|
|
22
|
-
require("core-js/modules/es.array.is-array.js");
|
|
23
|
-
var _assert = _interopRequireDefault(require("assert"));
|
|
24
|
-
var _acteurs = require("./acteurs");
|
|
25
|
-
var _xml = require("./xml");
|
|
26
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
27
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
28
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
29
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
30
|
-
function cleanActeLegislatif(acteLegislatif) {
|
|
31
|
-
(0, _xml.cleanXmlArtefacts)(acteLegislatif);
|
|
32
|
-
var xsiType = acteLegislatif["@xsi:type"];
|
|
33
|
-
if (xsiType !== undefined) {
|
|
34
|
-
acteLegislatif.xsiType = xsiType;
|
|
35
|
-
delete acteLegislatif["@xsi:type"];
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
//
|
|
39
|
-
|
|
40
|
-
var auteursRefs = acteLegislatif.auteurs;
|
|
41
|
-
if (auteursRefs !== undefined) {
|
|
42
|
-
auteursRefs = auteursRefs.acteurRef;
|
|
43
|
-
if (!Array.isArray(auteursRefs)) {
|
|
44
|
-
(0, _assert["default"])(auteursRefs);
|
|
45
|
-
auteursRefs = [auteursRefs];
|
|
46
|
-
}
|
|
47
|
-
acteLegislatif.auteursRefs = auteursRefs;
|
|
48
|
-
delete acteLegislatif.auteurs;
|
|
49
|
-
}
|
|
50
|
-
var casSaisine = acteLegislatif.casSaisine;
|
|
51
|
-
if (casSaisine !== undefined) {
|
|
52
|
-
cleanTypeDeclaration(casSaisine);
|
|
53
|
-
}
|
|
54
|
-
var contributionInternaute = acteLegislatif.contributionInternaute;
|
|
55
|
-
if (contributionInternaute !== undefined) {
|
|
56
|
-
(0, _xml.cleanXmlArtefacts)(contributionInternaute);
|
|
57
|
-
}
|
|
58
|
-
_assert["default"].strictEqual(acteLegislatif.dateRetrait, undefined);
|
|
59
|
-
var decision = acteLegislatif.decision;
|
|
60
|
-
if (decision !== undefined) {
|
|
61
|
-
cleanTypeDeclaration(decision);
|
|
62
|
-
}
|
|
63
|
-
var infoJo = acteLegislatif.infoJO;
|
|
64
|
-
if (infoJo !== undefined) {
|
|
65
|
-
cleanInfoJo(infoJo);
|
|
66
|
-
acteLegislatif.infoJo = infoJo;
|
|
67
|
-
delete acteLegislatif.infoJO;
|
|
68
|
-
}
|
|
69
|
-
var infoJoce = acteLegislatif.infoJOCE;
|
|
70
|
-
if (infoJoce !== undefined) {
|
|
71
|
-
acteLegislatif.infoJoce = infoJoce;
|
|
72
|
-
delete acteLegislatif.infoJOCE;
|
|
73
|
-
var refJoce = infoJoce.refJOCE;
|
|
74
|
-
if (refJoce !== undefined) {
|
|
75
|
-
infoJoce.refJoce = refJoce;
|
|
76
|
-
delete infoJoce.refJOCE;
|
|
77
|
-
}
|
|
78
|
-
var dateJoce = infoJoce.dateJOCE;
|
|
79
|
-
if (dateJoce !== undefined) {
|
|
80
|
-
infoJoce.dateJoce = dateJoce;
|
|
81
|
-
delete infoJoce.dateJOCE;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
var infoJoRect = acteLegislatif.infoJORect;
|
|
85
|
-
if (infoJoRect !== undefined) {
|
|
86
|
-
if (!Array.isArray(infoJoRect)) {
|
|
87
|
-
infoJoRect = [infoJoRect];
|
|
88
|
-
}
|
|
89
|
-
acteLegislatif.infoJoRect = infoJoRect;
|
|
90
|
-
delete acteLegislatif.infoJORect;
|
|
91
|
-
var _iterator = _createForOfIteratorHelper(infoJoRect),
|
|
92
|
-
_step;
|
|
93
|
-
try {
|
|
94
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
95
|
-
var infoJoRectItem = _step.value;
|
|
96
|
-
cleanInfoJo(infoJoRectItem);
|
|
97
|
-
}
|
|
98
|
-
} catch (err) {
|
|
99
|
-
_iterator.e(err);
|
|
100
|
-
} finally {
|
|
101
|
-
_iterator.f();
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// Convert acteLegislatif.initiateur and acteLegislatif.initiateurs to an Initiateur.
|
|
106
|
-
cleanActeOuDossierInitiateur(acteLegislatif);
|
|
107
|
-
var initiateur = acteLegislatif.initiateurs;
|
|
108
|
-
if (initiateur !== undefined) {
|
|
109
|
-
_assert["default"].strictEqual(acteLegislatif.initiateur, undefined);
|
|
110
|
-
if (initiateur.acteurRef === undefined) {
|
|
111
|
-
_assert["default"].notStrictEqual(initiateur.organeRef, undefined);
|
|
112
|
-
} else {
|
|
113
|
-
if (!Array.isArray(initiateur)) {
|
|
114
|
-
(0, _assert["default"])(initiateur);
|
|
115
|
-
initiateur = [initiateur];
|
|
116
|
-
}
|
|
117
|
-
initiateur = {
|
|
118
|
-
acteurs: initiateur
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
acteLegislatif.initiateur = initiateur;
|
|
122
|
-
delete acteLegislatif.initiateurs;
|
|
123
|
-
}
|
|
124
|
-
_assert["default"].strictEqual(acteLegislatif.odSeancejRef, undefined);
|
|
125
|
-
var provenanceRef = acteLegislatif.provenance;
|
|
126
|
-
if (provenanceRef !== undefined) {
|
|
127
|
-
delete acteLegislatif.provenance;
|
|
128
|
-
acteLegislatif.provenanceRef = provenanceRef;
|
|
129
|
-
}
|
|
130
|
-
var rapporteurs = acteLegislatif.rapporteurs;
|
|
131
|
-
if (rapporteurs !== undefined) {
|
|
132
|
-
rapporteurs = rapporteurs.rapporteur;
|
|
133
|
-
if (!Array.isArray(rapporteurs)) {
|
|
134
|
-
(0, _assert["default"])(rapporteurs);
|
|
135
|
-
rapporteurs = [rapporteurs];
|
|
136
|
-
}
|
|
137
|
-
acteLegislatif.rapporteurs = rapporteurs;
|
|
138
|
-
var _iterator2 = _createForOfIteratorHelper(rapporteurs),
|
|
139
|
-
_step2;
|
|
140
|
-
try {
|
|
141
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
142
|
-
var rapporteur = _step2.value;
|
|
143
|
-
(0, _acteurs.cleanRapporteur)(rapporteur);
|
|
144
|
-
}
|
|
145
|
-
} catch (err) {
|
|
146
|
-
_iterator2.e(err);
|
|
147
|
-
} finally {
|
|
148
|
-
_iterator2.f();
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
var referenceNor = acteLegislatif.referenceNOR;
|
|
152
|
-
if (referenceNor !== undefined) {
|
|
153
|
-
acteLegislatif.referenceNor = referenceNor;
|
|
154
|
-
delete acteLegislatif.referenceNOR;
|
|
155
|
-
}
|
|
156
|
-
_assert["default"].strictEqual(acteLegislatif.reunion, undefined);
|
|
157
|
-
var statutAdoption = acteLegislatif.statutAdoption;
|
|
158
|
-
if (statutAdoption !== undefined) {
|
|
159
|
-
cleanTypeDeclaration(statutAdoption);
|
|
160
|
-
}
|
|
161
|
-
var statutConclusion = acteLegislatif.statutConclusion;
|
|
162
|
-
if (statutConclusion !== undefined) {
|
|
163
|
-
cleanTypeDeclaration(statutConclusion);
|
|
164
|
-
if (statutConclusion.famCode === "TSORTFnull") {
|
|
165
|
-
// Occured once in https://git.en-root.org/tricoteuses/data/assemblee-brut/Dossiers_Legislatifs_XV/commit/8383800fe7d993da7b596c5b20fadc31c4df3835
|
|
166
|
-
delete acteLegislatif.statutConclusion;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
var texteAdopteRef = acteLegislatif.texteAdopte;
|
|
170
|
-
if (texteAdopteRef !== undefined) {
|
|
171
|
-
delete acteLegislatif.texteAdopte;
|
|
172
|
-
acteLegislatif.texteAdopteRef = texteAdopteRef;
|
|
173
|
-
}
|
|
174
|
-
var texteAssocieRef = acteLegislatif.texteAssocie;
|
|
175
|
-
if (texteAssocieRef !== undefined) {
|
|
176
|
-
delete acteLegislatif.texteAssocie;
|
|
177
|
-
acteLegislatif.texteAssocieRef = texteAssocieRef;
|
|
178
|
-
}
|
|
179
|
-
var textesAssocies = acteLegislatif.textesAssocies;
|
|
180
|
-
if (textesAssocies !== undefined) {
|
|
181
|
-
textesAssocies = textesAssocies.texteAssocie;
|
|
182
|
-
if (!Array.isArray(textesAssocies)) {
|
|
183
|
-
(0, _assert["default"])(textesAssocies);
|
|
184
|
-
textesAssocies = [textesAssocies];
|
|
185
|
-
}
|
|
186
|
-
acteLegislatif.textesAssocies = textesAssocies;
|
|
187
|
-
var _iterator3 = _createForOfIteratorHelper(textesAssocies),
|
|
188
|
-
_step3;
|
|
189
|
-
try {
|
|
190
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
191
|
-
var texteAssocie = _step3.value;
|
|
192
|
-
var _texteAssocieRef = texteAssocie.refTexteAssocie;
|
|
193
|
-
if (_texteAssocieRef !== undefined) {
|
|
194
|
-
delete texteAssocie.refTexteAssocie;
|
|
195
|
-
texteAssocie.texteAssocieRef = _texteAssocieRef;
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
} catch (err) {
|
|
199
|
-
_iterator3.e(err);
|
|
200
|
-
} finally {
|
|
201
|
-
_iterator3.f();
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
var typeDeclaration = acteLegislatif.typeDeclaration;
|
|
205
|
-
if (typeDeclaration !== undefined) {
|
|
206
|
-
cleanTypeDeclaration(typeDeclaration);
|
|
207
|
-
}
|
|
208
|
-
var typeMotion = acteLegislatif.typeMotion;
|
|
209
|
-
if (typeMotion !== undefined) {
|
|
210
|
-
cleanTypeDeclaration(typeMotion);
|
|
211
|
-
}
|
|
212
|
-
var typeMotionCensure = acteLegislatif.typeMotionCensure;
|
|
213
|
-
if (typeMotionCensure !== undefined) {
|
|
214
|
-
cleanTypeDeclaration(typeMotionCensure);
|
|
215
|
-
}
|
|
216
|
-
var voteRefs = acteLegislatif.voteRefs;
|
|
217
|
-
if (voteRefs !== undefined) {
|
|
218
|
-
voteRefs = voteRefs.voteRef;
|
|
219
|
-
if (!Array.isArray(voteRefs)) {
|
|
220
|
-
(0, _assert["default"])(voteRefs);
|
|
221
|
-
voteRefs = [voteRefs];
|
|
222
|
-
}
|
|
223
|
-
acteLegislatif.voteRefs = voteRefs;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
//
|
|
227
|
-
|
|
228
|
-
var actesLegislatifs = acteLegislatif.actesLegislatifs;
|
|
229
|
-
if (actesLegislatifs !== undefined) {
|
|
230
|
-
actesLegislatifs = actesLegislatifs.acteLegislatif;
|
|
231
|
-
if (!Array.isArray(actesLegislatifs)) {
|
|
232
|
-
(0, _assert["default"])(actesLegislatifs);
|
|
233
|
-
actesLegislatifs = [actesLegislatifs];
|
|
234
|
-
}
|
|
235
|
-
acteLegislatif.actesLegislatifs = actesLegislatifs;
|
|
236
|
-
var _iterator4 = _createForOfIteratorHelper(actesLegislatifs),
|
|
237
|
-
_step4;
|
|
238
|
-
try {
|
|
239
|
-
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
240
|
-
var _acteLegislatif = _step4.value;
|
|
241
|
-
cleanActeLegislatif(_acteLegislatif);
|
|
242
|
-
}
|
|
243
|
-
} catch (err) {
|
|
244
|
-
_iterator4.e(err);
|
|
245
|
-
} finally {
|
|
246
|
-
_iterator4.f();
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
function cleanActeOuDossierInitiateur(acteOuDossier) {
|
|
251
|
-
var initiateur = acteOuDossier.initiateur;
|
|
252
|
-
if (initiateur !== undefined) {
|
|
253
|
-
var acteurs = initiateur.acteurs;
|
|
254
|
-
if (acteurs !== undefined) {
|
|
255
|
-
acteurs = acteurs.acteur;
|
|
256
|
-
if (!Array.isArray(acteurs)) {
|
|
257
|
-
(0, _assert["default"])(acteurs);
|
|
258
|
-
acteurs = [acteurs];
|
|
259
|
-
}
|
|
260
|
-
if (acteurs.length > 0) {
|
|
261
|
-
initiateur.acteurs = acteurs;
|
|
262
|
-
} else {
|
|
263
|
-
delete initiateur.acteurs;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
var organeRef = initiateur.organes;
|
|
267
|
-
if (organeRef !== undefined) {
|
|
268
|
-
organeRef = organeRef.organe.organeRef.uid;
|
|
269
|
-
_assert["default"].notStrictEqual(organeRef, undefined);
|
|
270
|
-
initiateur.organeRef = organeRef;
|
|
271
|
-
delete initiateur.organes;
|
|
272
|
-
}
|
|
273
|
-
if (initiateur.acteurs === undefined && initiateur.organeRef === undefined) {
|
|
274
|
-
delete acteOuDossier.initiateur;
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
function cleanInfoJo(infoJo) {
|
|
279
|
-
(0, _xml.cleanXmlArtefacts)(infoJo);
|
|
280
|
-
var typeJo = infoJo.typeJO;
|
|
281
|
-
if (typeJo !== undefined) {
|
|
282
|
-
infoJo.typeJo = typeJo;
|
|
283
|
-
delete infoJo.typeJO;
|
|
284
|
-
}
|
|
285
|
-
var dateJo = infoJo.dateJO;
|
|
286
|
-
if (dateJo !== undefined) {
|
|
287
|
-
infoJo.dateJo = dateJo;
|
|
288
|
-
delete infoJo.dateJO;
|
|
289
|
-
}
|
|
290
|
-
_assert["default"].strictEqual(infoJo.pageJO, undefined);
|
|
291
|
-
var numJo = infoJo.numJO;
|
|
292
|
-
if (numJo !== undefined) {
|
|
293
|
-
infoJo.numJo = numJo;
|
|
294
|
-
delete infoJo.numJO;
|
|
295
|
-
}
|
|
296
|
-
var referenceNor = infoJo.referenceNOR;
|
|
297
|
-
if (referenceNor !== undefined) {
|
|
298
|
-
infoJo.referenceNor = referenceNor;
|
|
299
|
-
delete infoJo.referenceNOR;
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
function cleanTypeDeclaration(typeDeclaration) {
|
|
303
|
-
typeDeclaration.famCode = typeDeclaration.fam_code;
|
|
304
|
-
delete typeDeclaration.fam_code;
|
|
305
|
-
(0, _assert["default"])(typeDeclaration.famCode);
|
|
306
|
-
if (!typeDeclaration.libelle) {
|
|
307
|
-
// Occured once in https://git.en-root.org/tricoteuses/data/assemblee-brut/Dossiers_Legislatifs_XV/commit/8383800fe7d993da7b596c5b20fadc31c4df3835:
|
|
308
|
-
// "statutConclusion": {
|
|
309
|
-
// "fam_code": "TSORTFnull"
|
|
310
|
-
// },
|
|
311
|
-
// This famCode is an error.
|
|
312
|
-
typeDeclaration.libelle = typeDeclaration.famCode;
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfYWN0ZXVycyIsIl94bWwiLCJlIiwiX19lc01vZHVsZSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiciIsInQiLCJTeW1ib2wiLCJpdGVyYXRvciIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsImxlbmd0aCIsIl9uIiwiRiIsInMiLCJuIiwiZG9uZSIsInZhbHVlIiwiZiIsIlR5cGVFcnJvciIsIm8iLCJhIiwidSIsImNhbGwiLCJuZXh0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJjbGVhbkFjdGVMZWdpc2xhdGlmIiwiYWN0ZUxlZ2lzbGF0aWYiLCJjbGVhblhtbEFydGVmYWN0cyIsInhzaVR5cGUiLCJ1bmRlZmluZWQiLCJhdXRldXJzUmVmcyIsImF1dGV1cnMiLCJhY3RldXJSZWYiLCJhc3NlcnQiLCJjYXNTYWlzaW5lIiwiY2xlYW5UeXBlRGVjbGFyYXRpb24iLCJjb250cmlidXRpb25JbnRlcm5hdXRlIiwic3RyaWN0RXF1YWwiLCJkYXRlUmV0cmFpdCIsImRlY2lzaW9uIiwiaW5mb0pvIiwiaW5mb0pPIiwiY2xlYW5JbmZvSm8iLCJpbmZvSm9jZSIsImluZm9KT0NFIiwicmVmSm9jZSIsInJlZkpPQ0UiLCJkYXRlSm9jZSIsImRhdGVKT0NFIiwiaW5mb0pvUmVjdCIsImluZm9KT1JlY3QiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImluZm9Kb1JlY3RJdGVtIiwiZXJyIiwiY2xlYW5BY3RlT3VEb3NzaWVySW5pdGlhdGV1ciIsImluaXRpYXRldXIiLCJpbml0aWF0ZXVycyIsIm5vdFN0cmljdEVxdWFsIiwib3JnYW5lUmVmIiwiYWN0ZXVycyIsIm9kU2VhbmNlalJlZiIsInByb3ZlbmFuY2VSZWYiLCJwcm92ZW5hbmNlIiwicmFwcG9ydGV1cnMiLCJyYXBwb3J0ZXVyIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsImNsZWFuUmFwcG9ydGV1ciIsInJlZmVyZW5jZU5vciIsInJlZmVyZW5jZU5PUiIsInJldW5pb24iLCJzdGF0dXRBZG9wdGlvbiIsInN0YXR1dENvbmNsdXNpb24iLCJmYW1Db2RlIiwidGV4dGVBZG9wdGVSZWYiLCJ0ZXh0ZUFkb3B0ZSIsInRleHRlQXNzb2NpZVJlZiIsInRleHRlQXNzb2NpZSIsInRleHRlc0Fzc29jaWVzIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsInJlZlRleHRlQXNzb2NpZSIsInR5cGVEZWNsYXJhdGlvbiIsInR5cGVNb3Rpb24iLCJ0eXBlTW90aW9uQ2Vuc3VyZSIsInZvdGVSZWZzIiwidm90ZVJlZiIsImFjdGVzTGVnaXNsYXRpZnMiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0IiwiYWN0ZU91RG9zc2llciIsImFjdGV1ciIsIm9yZ2FuZXMiLCJvcmdhbmUiLCJ1aWQiLCJ0eXBlSm8iLCJ0eXBlSk8iLCJkYXRlSm8iLCJkYXRlSk8iLCJwYWdlSk8iLCJudW1KbyIsIm51bUpPIiwiZmFtX2NvZGUiLCJsaWJlbGxlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsZWFuZXJzL2FjdGVzX2xlZ2lzbGF0aWZzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5cbmltcG9ydCB7IGNsZWFuUmFwcG9ydGV1ciB9IGZyb20gXCIuL2FjdGV1cnNcIlxuaW1wb3J0IHsgY2xlYW5YbWxBcnRlZmFjdHMgfSBmcm9tIFwiLi94bWxcIlxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5BY3RlTGVnaXNsYXRpZihhY3RlTGVnaXNsYXRpZjogYW55KTogdm9pZCB7XG4gIGNsZWFuWG1sQXJ0ZWZhY3RzKGFjdGVMZWdpc2xhdGlmKVxuXG4gIGNvbnN0IHhzaVR5cGUgPSBhY3RlTGVnaXNsYXRpZltcIkB4c2k6dHlwZVwiXVxuICBpZiAoeHNpVHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgYWN0ZUxlZ2lzbGF0aWYueHNpVHlwZSA9IHhzaVR5cGVcbiAgICBkZWxldGUgYWN0ZUxlZ2lzbGF0aWZbXCJAeHNpOnR5cGVcIl1cbiAgfVxuXG4gIC8vXG5cbiAgbGV0IGF1dGV1cnNSZWZzID0gYWN0ZUxlZ2lzbGF0aWYuYXV0ZXVyc1xuICBpZiAoYXV0ZXVyc1JlZnMgIT09IHVuZGVmaW5lZCkge1xuICAgIGF1dGV1cnNSZWZzID0gYXV0ZXVyc1JlZnMuYWN0ZXVyUmVmXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGF1dGV1cnNSZWZzKSkge1xuICAgICAgYXNzZXJ0KGF1dGV1cnNSZWZzKVxuICAgICAgYXV0ZXVyc1JlZnMgPSBbYXV0ZXVyc1JlZnNdXG4gICAgfVxuICAgIGFjdGVMZWdpc2xhdGlmLmF1dGV1cnNSZWZzID0gYXV0ZXVyc1JlZnNcbiAgICBkZWxldGUgYWN0ZUxlZ2lzbGF0aWYuYXV0ZXVyc1xuICB9XG5cbiAgY29uc3QgY2FzU2Fpc2luZSA9IGFjdGVMZWdpc2xhdGlmLmNhc1NhaXNpbmVcbiAgaWYgKGNhc1NhaXNpbmUgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsZWFuVHlwZURlY2xhcmF0aW9uKGNhc1NhaXNpbmUpXG4gIH1cblxuICBjb25zdCBjb250cmlidXRpb25JbnRlcm5hdXRlID0gYWN0ZUxlZ2lzbGF0aWYuY29udHJpYnV0aW9uSW50ZXJuYXV0ZVxuICBpZiAoY29udHJpYnV0aW9uSW50ZXJuYXV0ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xlYW5YbWxBcnRlZmFjdHMoY29udHJpYnV0aW9uSW50ZXJuYXV0ZSlcbiAgfVxuXG4gIGFzc2VydC5zdHJpY3RFcXVhbChhY3RlTGVnaXNsYXRpZi5kYXRlUmV0cmFpdCwgdW5kZWZpbmVkKVxuXG4gIGNvbnN0IGRlY2lzaW9uID0gYWN0ZUxlZ2lzbGF0aWYuZGVjaXNpb25cbiAgaWYgKGRlY2lzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbGVhblR5cGVEZWNsYXJhdGlvbihkZWNpc2lvbilcbiAgfVxuXG4gIGNvbnN0IGluZm9KbyA9IGFjdGVMZWdpc2xhdGlmLmluZm9KT1xuICBpZiAoaW5mb0pvICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbGVhbkluZm9KbyhpbmZvSm8pXG4gICAgYWN0ZUxlZ2lzbGF0aWYuaW5mb0pvID0gaW5mb0pvXG4gICAgZGVsZXRlIGFjdGVMZWdpc2xhdGlmLmluZm9KT1xuICB9XG5cbiAgY29uc3QgaW5mb0pvY2UgPSBhY3RlTGVnaXNsYXRpZi5pbmZvSk9DRVxuICBpZiAoaW5mb0pvY2UgIT09IHVuZGVmaW5lZCkge1xuICAgIGFjdGVMZWdpc2xhdGlmLmluZm9Kb2NlID0gaW5mb0pvY2VcbiAgICBkZWxldGUgYWN0ZUxlZ2lzbGF0aWYuaW5mb0pPQ0VcblxuICAgIGNvbnN0IHJlZkpvY2UgPSBpbmZvSm9jZS5yZWZKT0NFXG4gICAgaWYgKHJlZkpvY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaW5mb0pvY2UucmVmSm9jZSA9IHJlZkpvY2VcbiAgICAgIGRlbGV0ZSBpbmZvSm9jZS5yZWZKT0NFXG4gICAgfVxuXG4gICAgY29uc3QgZGF0ZUpvY2UgPSBpbmZvSm9jZS5kYXRlSk9DRVxuICAgIGlmIChkYXRlSm9jZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpbmZvSm9jZS5kYXRlSm9jZSA9IGRhdGVKb2NlXG4gICAgICBkZWxldGUgaW5mb0pvY2UuZGF0ZUpPQ0VcbiAgICB9XG4gIH1cblxuICBsZXQgaW5mb0pvUmVjdCA9IGFjdGVMZWdpc2xhdGlmLmluZm9KT1JlY3RcbiAgaWYgKGluZm9Kb1JlY3QgIT09IHVuZGVmaW5lZCkge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShpbmZvSm9SZWN0KSkge1xuICAgICAgaW5mb0pvUmVjdCA9IFtpbmZvSm9SZWN0XVxuICAgIH1cbiAgICBhY3RlTGVnaXNsYXRpZi5pbmZvSm9SZWN0ID0gaW5mb0pvUmVjdFxuICAgIGRlbGV0ZSBhY3RlTGVnaXNsYXRpZi5pbmZvSk9SZWN0XG5cbiAgICBmb3IgKGNvbnN0IGluZm9Kb1JlY3RJdGVtIG9mIGluZm9Kb1JlY3QpIHtcbiAgICAgIGNsZWFuSW5mb0pvKGluZm9Kb1JlY3RJdGVtKVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbnZlcnQgYWN0ZUxlZ2lzbGF0aWYuaW5pdGlhdGV1ciBhbmQgYWN0ZUxlZ2lzbGF0aWYuaW5pdGlhdGV1cnMgdG8gYW4gSW5pdGlhdGV1ci5cbiAgY2xlYW5BY3RlT3VEb3NzaWVySW5pdGlhdGV1cihhY3RlTGVnaXNsYXRpZilcbiAgbGV0IGluaXRpYXRldXIgPSBhY3RlTGVnaXNsYXRpZi5pbml0aWF0ZXVyc1xuICBpZiAoaW5pdGlhdGV1ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGFjdGVMZWdpc2xhdGlmLmluaXRpYXRldXIsIHVuZGVmaW5lZClcbiAgICBpZiAoaW5pdGlhdGV1ci5hY3RldXJSZWYgPT09IHVuZGVmaW5lZCkge1xuICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGluaXRpYXRldXIub3JnYW5lUmVmLCB1bmRlZmluZWQpXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShpbml0aWF0ZXVyKSkge1xuICAgICAgICBhc3NlcnQoaW5pdGlhdGV1cilcbiAgICAgICAgaW5pdGlhdGV1ciA9IFtpbml0aWF0ZXVyXVxuICAgICAgfVxuICAgICAgaW5pdGlhdGV1ciA9IHtcbiAgICAgICAgYWN0ZXVyczogaW5pdGlhdGV1cixcbiAgICAgIH1cbiAgICB9XG4gICAgYWN0ZUxlZ2lzbGF0aWYuaW5pdGlhdGV1ciA9IGluaXRpYXRldXJcbiAgICBkZWxldGUgYWN0ZUxlZ2lzbGF0aWYuaW5pdGlhdGV1cnNcbiAgfVxuXG4gIGFzc2VydC5zdHJpY3RFcXVhbChhY3RlTGVnaXNsYXRpZi5vZFNlYW5jZWpSZWYsIHVuZGVmaW5lZClcblxuICBjb25zdCBwcm92ZW5hbmNlUmVmID0gYWN0ZUxlZ2lzbGF0aWYucHJvdmVuYW5jZVxuICBpZiAocHJvdmVuYW5jZVJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZGVsZXRlIGFjdGVMZWdpc2xhdGlmLnByb3ZlbmFuY2VcbiAgICBhY3RlTGVnaXNsYXRpZi5wcm92ZW5hbmNlUmVmID0gcHJvdmVuYW5jZVJlZlxuICB9XG5cbiAgbGV0IHJhcHBvcnRldXJzID0gYWN0ZUxlZ2lzbGF0aWYucmFwcG9ydGV1cnNcbiAgaWYgKHJhcHBvcnRldXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICByYXBwb3J0ZXVycyA9IHJhcHBvcnRldXJzLnJhcHBvcnRldXJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocmFwcG9ydGV1cnMpKSB7XG4gICAgICBhc3NlcnQocmFwcG9ydGV1cnMpXG4gICAgICByYXBwb3J0ZXVycyA9IFtyYXBwb3J0ZXVyc11cbiAgICB9XG4gICAgYWN0ZUxlZ2lzbGF0aWYucmFwcG9ydGV1cnMgPSByYXBwb3J0ZXVyc1xuICAgIGZvciAoY29uc3QgcmFwcG9ydGV1ciBvZiByYXBwb3J0ZXVycykge1xuICAgICAgY2xlYW5SYXBwb3J0ZXVyKHJhcHBvcnRldXIpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmVmZXJlbmNlTm9yID0gYWN0ZUxlZ2lzbGF0aWYucmVmZXJlbmNlTk9SXG4gIGlmIChyZWZlcmVuY2VOb3IgIT09IHVuZGVmaW5lZCkge1xuICAgIGFjdGVMZWdpc2xhdGlmLnJlZmVyZW5jZU5vciA9IHJlZmVyZW5jZU5vclxuICAgIGRlbGV0ZSBhY3RlTGVnaXNsYXRpZi5yZWZlcmVuY2VOT1JcbiAgfVxuXG4gIGFzc2VydC5zdHJpY3RFcXVhbChhY3RlTGVnaXNsYXRpZi5yZXVuaW9uLCB1bmRlZmluZWQpXG5cbiAgY29uc3Qgc3RhdHV0QWRvcHRpb24gPSBhY3RlTGVnaXNsYXRpZi5zdGF0dXRBZG9wdGlvblxuICBpZiAoc3RhdHV0QWRvcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIGNsZWFuVHlwZURlY2xhcmF0aW9uKHN0YXR1dEFkb3B0aW9uKVxuICB9XG5cbiAgY29uc3Qgc3RhdHV0Q29uY2x1c2lvbiA9IGFjdGVMZWdpc2xhdGlmLnN0YXR1dENvbmNsdXNpb25cbiAgaWYgKHN0YXR1dENvbmNsdXNpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIGNsZWFuVHlwZURlY2xhcmF0aW9uKHN0YXR1dENvbmNsdXNpb24pXG4gICAgaWYgKHN0YXR1dENvbmNsdXNpb24uZmFtQ29kZSA9PT0gXCJUU09SVEZudWxsXCIpIHtcbiAgICAgIC8vIE9jY3VyZWQgb25jZSBpbiBodHRwczovL2dpdC5lbi1yb290Lm9yZy90cmljb3RldXNlcy9kYXRhL2Fzc2VtYmxlZS1icnV0L0Rvc3NpZXJzX0xlZ2lzbGF0aWZzX1hWL2NvbW1pdC84MzgzODAwZmU3ZDk5M2RhN2I1OTZjNWIyMGZhZGMzMWM0ZGYzODM1XG4gICAgICBkZWxldGUgYWN0ZUxlZ2lzbGF0aWYuc3RhdHV0Q29uY2x1c2lvblxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHRleHRlQWRvcHRlUmVmID0gYWN0ZUxlZ2lzbGF0aWYudGV4dGVBZG9wdGVcbiAgaWYgKHRleHRlQWRvcHRlUmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICBkZWxldGUgYWN0ZUxlZ2lzbGF0aWYudGV4dGVBZG9wdGVcbiAgICBhY3RlTGVnaXNsYXRpZi50ZXh0ZUFkb3B0ZVJlZiA9IHRleHRlQWRvcHRlUmVmXG4gIH1cblxuICBjb25zdCB0ZXh0ZUFzc29jaWVSZWYgPSBhY3RlTGVnaXNsYXRpZi50ZXh0ZUFzc29jaWVcbiAgaWYgKHRleHRlQXNzb2NpZVJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZGVsZXRlIGFjdGVMZWdpc2xhdGlmLnRleHRlQXNzb2NpZVxuICAgIGFjdGVMZWdpc2xhdGlmLnRleHRlQXNzb2NpZVJlZiA9IHRleHRlQXNzb2NpZVJlZlxuICB9XG5cbiAgbGV0IHRleHRlc0Fzc29jaWVzID0gYWN0ZUxlZ2lzbGF0aWYudGV4dGVzQXNzb2NpZXNcbiAgaWYgKHRleHRlc0Fzc29jaWVzICE9PSB1bmRlZmluZWQpIHtcbiAgICB0ZXh0ZXNBc3NvY2llcyA9IHRleHRlc0Fzc29jaWVzLnRleHRlQXNzb2NpZVxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0ZXh0ZXNBc3NvY2llcykpIHtcbiAgICAgIGFzc2VydCh0ZXh0ZXNBc3NvY2llcylcbiAgICAgIHRleHRlc0Fzc29jaWVzID0gW3RleHRlc0Fzc29jaWVzXVxuICAgIH1cbiAgICBhY3RlTGVnaXNsYXRpZi50ZXh0ZXNBc3NvY2llcyA9IHRleHRlc0Fzc29jaWVzXG5cbiAgICBmb3IgKGNvbnN0IHRleHRlQXNzb2NpZSBvZiB0ZXh0ZXNBc3NvY2llcykge1xuICAgICAgY29uc3QgdGV4dGVBc3NvY2llUmVmID0gdGV4dGVBc3NvY2llLnJlZlRleHRlQXNzb2NpZVxuICAgICAgaWYgKHRleHRlQXNzb2NpZVJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGRlbGV0ZSB0ZXh0ZUFzc29jaWUucmVmVGV4dGVBc3NvY2llXG4gICAgICAgIHRleHRlQXNzb2NpZS50ZXh0ZUFzc29jaWVSZWYgPSB0ZXh0ZUFzc29jaWVSZWZcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCB0eXBlRGVjbGFyYXRpb24gPSBhY3RlTGVnaXNsYXRpZi50eXBlRGVjbGFyYXRpb25cbiAgaWYgKHR5cGVEZWNsYXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xlYW5UeXBlRGVjbGFyYXRpb24odHlwZURlY2xhcmF0aW9uKVxuICB9XG5cbiAgY29uc3QgdHlwZU1vdGlvbiA9IGFjdGVMZWdpc2xhdGlmLnR5cGVNb3Rpb25cbiAgaWYgKHR5cGVNb3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIGNsZWFuVHlwZURlY2xhcmF0aW9uKHR5cGVNb3Rpb24pXG4gIH1cblxuICBjb25zdCB0eXBlTW90aW9uQ2Vuc3VyZSA9IGFjdGVMZWdpc2xhdGlmLnR5cGVNb3Rpb25DZW5zdXJlXG4gIGlmICh0eXBlTW90aW9uQ2Vuc3VyZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xlYW5UeXBlRGVjbGFyYXRpb24odHlwZU1vdGlvbkNlbnN1cmUpXG4gIH1cblxuICBsZXQgdm90ZVJlZnMgPSBhY3RlTGVnaXNsYXRpZi52b3RlUmVmc1xuICBpZiAodm90ZVJlZnMgIT09IHVuZGVmaW5lZCkge1xuICAgIHZvdGVSZWZzID0gdm90ZVJlZnMudm90ZVJlZlxuICAgIGlmICghQXJyYXkuaXNBcnJheSh2b3RlUmVmcykpIHtcbiAgICAgIGFzc2VydCh2b3RlUmVmcylcbiAgICAgIHZvdGVSZWZzID0gW3ZvdGVSZWZzXVxuICAgIH1cbiAgICBhY3RlTGVnaXNsYXRpZi52b3RlUmVmcyA9IHZvdGVSZWZzXG4gIH1cblxuICAvL1xuXG4gIGxldCBhY3Rlc0xlZ2lzbGF0aWZzID0gYWN0ZUxlZ2lzbGF0aWYuYWN0ZXNMZWdpc2xhdGlmc1xuICBpZiAoYWN0ZXNMZWdpc2xhdGlmcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgYWN0ZXNMZWdpc2xhdGlmcyA9IGFjdGVzTGVnaXNsYXRpZnMuYWN0ZUxlZ2lzbGF0aWZcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWN0ZXNMZWdpc2xhdGlmcykpIHtcbiAgICAgIGFzc2VydChhY3Rlc0xlZ2lzbGF0aWZzKVxuICAgICAgYWN0ZXNMZWdpc2xhdGlmcyA9IFthY3Rlc0xlZ2lzbGF0aWZzXVxuICAgIH1cbiAgICBhY3RlTGVnaXNsYXRpZi5hY3Rlc0xlZ2lzbGF0aWZzID0gYWN0ZXNMZWdpc2xhdGlmc1xuICAgIGZvciAoY29uc3QgYWN0ZUxlZ2lzbGF0aWYgb2YgYWN0ZXNMZWdpc2xhdGlmcykge1xuICAgICAgY2xlYW5BY3RlTGVnaXNsYXRpZihhY3RlTGVnaXNsYXRpZilcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuQWN0ZU91RG9zc2llckluaXRpYXRldXIoYWN0ZU91RG9zc2llcjogYW55KTogdm9pZCB7XG4gIGNvbnN0IGluaXRpYXRldXIgPSBhY3RlT3VEb3NzaWVyLmluaXRpYXRldXJcbiAgaWYgKGluaXRpYXRldXIgIT09IHVuZGVmaW5lZCkge1xuICAgIGxldCBhY3RldXJzID0gaW5pdGlhdGV1ci5hY3RldXJzXG4gICAgaWYgKGFjdGV1cnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYWN0ZXVycyA9IGFjdGV1cnMuYWN0ZXVyXG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWN0ZXVycykpIHtcbiAgICAgICAgYXNzZXJ0KGFjdGV1cnMpXG4gICAgICAgIGFjdGV1cnMgPSBbYWN0ZXVyc11cbiAgICAgIH1cbiAgICAgIGlmIChhY3RldXJzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaW5pdGlhdGV1ci5hY3RldXJzID0gYWN0ZXVyc1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIGluaXRpYXRldXIuYWN0ZXVyc1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBvcmdhbmVSZWYgPSBpbml0aWF0ZXVyLm9yZ2FuZXNcbiAgICBpZiAob3JnYW5lUmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIG9yZ2FuZVJlZiA9IG9yZ2FuZVJlZi5vcmdhbmUub3JnYW5lUmVmLnVpZFxuICAgICAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKG9yZ2FuZVJlZiwgdW5kZWZpbmVkKVxuICAgICAgaW5pdGlhdGV1ci5vcmdhbmVSZWYgPSBvcmdhbmVSZWZcbiAgICAgIGRlbGV0ZSBpbml0aWF0ZXVyLm9yZ2FuZXNcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBpbml0aWF0ZXVyLmFjdGV1cnMgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgaW5pdGlhdGV1ci5vcmdhbmVSZWYgPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgZGVsZXRlIGFjdGVPdURvc3NpZXIuaW5pdGlhdGV1clxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBjbGVhbkluZm9KbyhpbmZvSm86IGFueSk6IHZvaWQge1xuICBjbGVhblhtbEFydGVmYWN0cyhpbmZvSm8pXG5cbiAgY29uc3QgdHlwZUpvID0gaW5mb0pvLnR5cGVKT1xuICBpZiAodHlwZUpvICE9PSB1bmRlZmluZWQpIHtcbiAgICBpbmZvSm8udHlwZUpvID0gdHlwZUpvXG4gICAgZGVsZXRlIGluZm9Kby50eXBlSk9cbiAgfVxuXG4gIGNvbnN0IGRhdGVKbyA9IGluZm9Kby5kYXRlSk9cbiAgaWYgKGRhdGVKbyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaW5mb0pvLmRhdGVKbyA9IGRhdGVKb1xuICAgIGRlbGV0ZSBpbmZvSm8uZGF0ZUpPXG4gIH1cblxuICBhc3NlcnQuc3RyaWN0RXF1YWwoaW5mb0pvLnBhZ2VKTywgdW5kZWZpbmVkKVxuXG4gIGNvbnN0IG51bUpvID0gaW5mb0pvLm51bUpPXG4gIGlmIChudW1KbyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaW5mb0pvLm51bUpvID0gbnVtSm9cbiAgICBkZWxldGUgaW5mb0pvLm51bUpPXG4gIH1cblxuICBjb25zdCByZWZlcmVuY2VOb3IgPSBpbmZvSm8ucmVmZXJlbmNlTk9SXG4gIGlmIChyZWZlcmVuY2VOb3IgIT09IHVuZGVmaW5lZCkge1xuICAgIGluZm9Kby5yZWZlcmVuY2VOb3IgPSByZWZlcmVuY2VOb3JcbiAgICBkZWxldGUgaW5mb0pvLnJlZmVyZW5jZU5PUlxuICB9XG59XG5cbmZ1bmN0aW9uIGNsZWFuVHlwZURlY2xhcmF0aW9uKHR5cGVEZWNsYXJhdGlvbjogYW55KSB7XG4gIHR5cGVEZWNsYXJhdGlvbi5mYW1Db2RlID0gdHlwZURlY2xhcmF0aW9uLmZhbV9jb2RlXG4gIGRlbGV0ZSB0eXBlRGVjbGFyYXRpb24uZmFtX2NvZGVcbiAgYXNzZXJ0KHR5cGVEZWNsYXJhdGlvbi5mYW1Db2RlKVxuXG4gIGlmICghdHlwZURlY2xhcmF0aW9uLmxpYmVsbGUpIHtcbiAgICAvLyBPY2N1cmVkIG9uY2UgaW4gaHR0cHM6Ly9naXQuZW4tcm9vdC5vcmcvdHJpY290ZXVzZXMvZGF0YS9hc3NlbWJsZWUtYnJ1dC9Eb3NzaWVyc19MZWdpc2xhdGlmc19YVi9jb21taXQvODM4MzgwMGZlN2Q5OTNkYTdiNTk2YzViMjBmYWRjMzFjNGRmMzgzNTpcbiAgICAvLyBcInN0YXR1dENvbmNsdXNpb25cIjoge1xuICAgIC8vICAgXCJmYW1fY29kZVwiOiBcIlRTT1JURm51bGxcIlxuICAgIC8vIH0sXG4gICAgLy8gVGhpcyBmYW1Db2RlIGlzIGFuIGVycm9yLlxuICAgIHR5cGVEZWNsYXJhdGlvbi5saWJlbGxlID0gdHlwZURlY2xhcmF0aW9uLmZhbUNvZGVcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsSUFBQSxHQUFBRixPQUFBO0FBQXlDLFNBQUFELHVCQUFBSSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFBQSxTQUFBRSwyQkFBQUMsQ0FBQSxFQUFBSCxDQUFBLFFBQUFJLENBQUEseUJBQUFDLE1BQUEsSUFBQUYsQ0FBQSxDQUFBRSxNQUFBLENBQUFDLFFBQUEsS0FBQUgsQ0FBQSxxQkFBQUMsQ0FBQSxRQUFBRyxLQUFBLENBQUFDLE9BQUEsQ0FBQUwsQ0FBQSxNQUFBQyxDQUFBLEdBQUFLLDJCQUFBLENBQUFOLENBQUEsTUFBQUgsQ0FBQSxJQUFBRyxDQUFBLHVCQUFBQSxDQUFBLENBQUFPLE1BQUEsSUFBQU4sQ0FBQSxLQUFBRCxDQUFBLEdBQUFDLENBQUEsT0FBQU8sRUFBQSxNQUFBQyxDQUFBLFlBQUFBLEVBQUEsZUFBQUMsQ0FBQSxFQUFBRCxDQUFBLEVBQUFFLENBQUEsV0FBQUEsRUFBQSxXQUFBSCxFQUFBLElBQUFSLENBQUEsQ0FBQU8sTUFBQSxLQUFBSyxJQUFBLFdBQUFBLElBQUEsTUFBQUMsS0FBQSxFQUFBYixDQUFBLENBQUFRLEVBQUEsVUFBQVgsQ0FBQSxXQUFBQSxFQUFBRyxDQUFBLFVBQUFBLENBQUEsS0FBQWMsQ0FBQSxFQUFBTCxDQUFBLGdCQUFBTSxTQUFBLGlKQUFBQyxDQUFBLEVBQUFDLENBQUEsT0FBQUMsQ0FBQSxnQkFBQVIsQ0FBQSxXQUFBQSxFQUFBLElBQUFULENBQUEsR0FBQUEs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
|
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
import assert from "assert";
|
|
2
|
-
import { cleanRapporteur } from "./acteurs.mjs";
|
|
3
|
-
import { cleanXmlArtefacts } from "./xml.mjs";
|
|
4
|
-
export function cleanActeLegislatif(acteLegislatif) {
|
|
5
|
-
cleanXmlArtefacts(acteLegislatif);
|
|
6
|
-
const xsiType = acteLegislatif["@xsi:type"];
|
|
7
|
-
if (xsiType !== undefined) {
|
|
8
|
-
acteLegislatif.xsiType = xsiType;
|
|
9
|
-
delete acteLegislatif["@xsi:type"];
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
//
|
|
13
|
-
|
|
14
|
-
let auteursRefs = acteLegislatif.auteurs;
|
|
15
|
-
if (auteursRefs !== undefined) {
|
|
16
|
-
auteursRefs = auteursRefs.acteurRef;
|
|
17
|
-
if (!Array.isArray(auteursRefs)) {
|
|
18
|
-
assert(auteursRefs);
|
|
19
|
-
auteursRefs = [auteursRefs];
|
|
20
|
-
}
|
|
21
|
-
acteLegislatif.auteursRefs = auteursRefs;
|
|
22
|
-
delete acteLegislatif.auteurs;
|
|
23
|
-
}
|
|
24
|
-
const casSaisine = acteLegislatif.casSaisine;
|
|
25
|
-
if (casSaisine !== undefined) {
|
|
26
|
-
cleanTypeDeclaration(casSaisine);
|
|
27
|
-
}
|
|
28
|
-
const contributionInternaute = acteLegislatif.contributionInternaute;
|
|
29
|
-
if (contributionInternaute !== undefined) {
|
|
30
|
-
cleanXmlArtefacts(contributionInternaute);
|
|
31
|
-
}
|
|
32
|
-
assert.strictEqual(acteLegislatif.dateRetrait, undefined);
|
|
33
|
-
const decision = acteLegislatif.decision;
|
|
34
|
-
if (decision !== undefined) {
|
|
35
|
-
cleanTypeDeclaration(decision);
|
|
36
|
-
}
|
|
37
|
-
const infoJo = acteLegislatif.infoJO;
|
|
38
|
-
if (infoJo !== undefined) {
|
|
39
|
-
cleanInfoJo(infoJo);
|
|
40
|
-
acteLegislatif.infoJo = infoJo;
|
|
41
|
-
delete acteLegislatif.infoJO;
|
|
42
|
-
}
|
|
43
|
-
const infoJoce = acteLegislatif.infoJOCE;
|
|
44
|
-
if (infoJoce !== undefined) {
|
|
45
|
-
acteLegislatif.infoJoce = infoJoce;
|
|
46
|
-
delete acteLegislatif.infoJOCE;
|
|
47
|
-
const refJoce = infoJoce.refJOCE;
|
|
48
|
-
if (refJoce !== undefined) {
|
|
49
|
-
infoJoce.refJoce = refJoce;
|
|
50
|
-
delete infoJoce.refJOCE;
|
|
51
|
-
}
|
|
52
|
-
const dateJoce = infoJoce.dateJOCE;
|
|
53
|
-
if (dateJoce !== undefined) {
|
|
54
|
-
infoJoce.dateJoce = dateJoce;
|
|
55
|
-
delete infoJoce.dateJOCE;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
let infoJoRect = acteLegislatif.infoJORect;
|
|
59
|
-
if (infoJoRect !== undefined) {
|
|
60
|
-
if (!Array.isArray(infoJoRect)) {
|
|
61
|
-
infoJoRect = [infoJoRect];
|
|
62
|
-
}
|
|
63
|
-
acteLegislatif.infoJoRect = infoJoRect;
|
|
64
|
-
delete acteLegislatif.infoJORect;
|
|
65
|
-
for (const infoJoRectItem of infoJoRect) {
|
|
66
|
-
cleanInfoJo(infoJoRectItem);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Convert acteLegislatif.initiateur and acteLegislatif.initiateurs to an Initiateur.
|
|
71
|
-
cleanActeOuDossierInitiateur(acteLegislatif);
|
|
72
|
-
let initiateur = acteLegislatif.initiateurs;
|
|
73
|
-
if (initiateur !== undefined) {
|
|
74
|
-
assert.strictEqual(acteLegislatif.initiateur, undefined);
|
|
75
|
-
if (initiateur.acteurRef === undefined) {
|
|
76
|
-
assert.notStrictEqual(initiateur.organeRef, undefined);
|
|
77
|
-
} else {
|
|
78
|
-
if (!Array.isArray(initiateur)) {
|
|
79
|
-
assert(initiateur);
|
|
80
|
-
initiateur = [initiateur];
|
|
81
|
-
}
|
|
82
|
-
initiateur = {
|
|
83
|
-
acteurs: initiateur
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
acteLegislatif.initiateur = initiateur;
|
|
87
|
-
delete acteLegislatif.initiateurs;
|
|
88
|
-
}
|
|
89
|
-
assert.strictEqual(acteLegislatif.odSeancejRef, undefined);
|
|
90
|
-
const provenanceRef = acteLegislatif.provenance;
|
|
91
|
-
if (provenanceRef !== undefined) {
|
|
92
|
-
delete acteLegislatif.provenance;
|
|
93
|
-
acteLegislatif.provenanceRef = provenanceRef;
|
|
94
|
-
}
|
|
95
|
-
let rapporteurs = acteLegislatif.rapporteurs;
|
|
96
|
-
if (rapporteurs !== undefined) {
|
|
97
|
-
rapporteurs = rapporteurs.rapporteur;
|
|
98
|
-
if (!Array.isArray(rapporteurs)) {
|
|
99
|
-
assert(rapporteurs);
|
|
100
|
-
rapporteurs = [rapporteurs];
|
|
101
|
-
}
|
|
102
|
-
acteLegislatif.rapporteurs = rapporteurs;
|
|
103
|
-
for (const rapporteur of rapporteurs) {
|
|
104
|
-
cleanRapporteur(rapporteur);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
const referenceNor = acteLegislatif.referenceNOR;
|
|
108
|
-
if (referenceNor !== undefined) {
|
|
109
|
-
acteLegislatif.referenceNor = referenceNor;
|
|
110
|
-
delete acteLegislatif.referenceNOR;
|
|
111
|
-
}
|
|
112
|
-
assert.strictEqual(acteLegislatif.reunion, undefined);
|
|
113
|
-
const statutAdoption = acteLegislatif.statutAdoption;
|
|
114
|
-
if (statutAdoption !== undefined) {
|
|
115
|
-
cleanTypeDeclaration(statutAdoption);
|
|
116
|
-
}
|
|
117
|
-
const statutConclusion = acteLegislatif.statutConclusion;
|
|
118
|
-
if (statutConclusion !== undefined) {
|
|
119
|
-
cleanTypeDeclaration(statutConclusion);
|
|
120
|
-
if (statutConclusion.famCode === "TSORTFnull") {
|
|
121
|
-
// Occured once in https://git.en-root.org/tricoteuses/data/assemblee-brut/Dossiers_Legislatifs_XV/commit/8383800fe7d993da7b596c5b20fadc31c4df3835
|
|
122
|
-
delete acteLegislatif.statutConclusion;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
const texteAdopteRef = acteLegislatif.texteAdopte;
|
|
126
|
-
if (texteAdopteRef !== undefined) {
|
|
127
|
-
delete acteLegislatif.texteAdopte;
|
|
128
|
-
acteLegislatif.texteAdopteRef = texteAdopteRef;
|
|
129
|
-
}
|
|
130
|
-
const texteAssocieRef = acteLegislatif.texteAssocie;
|
|
131
|
-
if (texteAssocieRef !== undefined) {
|
|
132
|
-
delete acteLegislatif.texteAssocie;
|
|
133
|
-
acteLegislatif.texteAssocieRef = texteAssocieRef;
|
|
134
|
-
}
|
|
135
|
-
let textesAssocies = acteLegislatif.textesAssocies;
|
|
136
|
-
if (textesAssocies !== undefined) {
|
|
137
|
-
textesAssocies = textesAssocies.texteAssocie;
|
|
138
|
-
if (!Array.isArray(textesAssocies)) {
|
|
139
|
-
assert(textesAssocies);
|
|
140
|
-
textesAssocies = [textesAssocies];
|
|
141
|
-
}
|
|
142
|
-
acteLegislatif.textesAssocies = textesAssocies;
|
|
143
|
-
for (const texteAssocie of textesAssocies) {
|
|
144
|
-
const texteAssocieRef = texteAssocie.refTexteAssocie;
|
|
145
|
-
if (texteAssocieRef !== undefined) {
|
|
146
|
-
delete texteAssocie.refTexteAssocie;
|
|
147
|
-
texteAssocie.texteAssocieRef = texteAssocieRef;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
const typeDeclaration = acteLegislatif.typeDeclaration;
|
|
152
|
-
if (typeDeclaration !== undefined) {
|
|
153
|
-
cleanTypeDeclaration(typeDeclaration);
|
|
154
|
-
}
|
|
155
|
-
const typeMotion = acteLegislatif.typeMotion;
|
|
156
|
-
if (typeMotion !== undefined) {
|
|
157
|
-
cleanTypeDeclaration(typeMotion);
|
|
158
|
-
}
|
|
159
|
-
const typeMotionCensure = acteLegislatif.typeMotionCensure;
|
|
160
|
-
if (typeMotionCensure !== undefined) {
|
|
161
|
-
cleanTypeDeclaration(typeMotionCensure);
|
|
162
|
-
}
|
|
163
|
-
let voteRefs = acteLegislatif.voteRefs;
|
|
164
|
-
if (voteRefs !== undefined) {
|
|
165
|
-
voteRefs = voteRefs.voteRef;
|
|
166
|
-
if (!Array.isArray(voteRefs)) {
|
|
167
|
-
assert(voteRefs);
|
|
168
|
-
voteRefs = [voteRefs];
|
|
169
|
-
}
|
|
170
|
-
acteLegislatif.voteRefs = voteRefs;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
//
|
|
174
|
-
|
|
175
|
-
let actesLegislatifs = acteLegislatif.actesLegislatifs;
|
|
176
|
-
if (actesLegislatifs !== undefined) {
|
|
177
|
-
actesLegislatifs = actesLegislatifs.acteLegislatif;
|
|
178
|
-
if (!Array.isArray(actesLegislatifs)) {
|
|
179
|
-
assert(actesLegislatifs);
|
|
180
|
-
actesLegislatifs = [actesLegislatifs];
|
|
181
|
-
}
|
|
182
|
-
acteLegislatif.actesLegislatifs = actesLegislatifs;
|
|
183
|
-
for (const acteLegislatif of actesLegislatifs) {
|
|
184
|
-
cleanActeLegislatif(acteLegislatif);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
export function cleanActeOuDossierInitiateur(acteOuDossier) {
|
|
189
|
-
const initiateur = acteOuDossier.initiateur;
|
|
190
|
-
if (initiateur !== undefined) {
|
|
191
|
-
let acteurs = initiateur.acteurs;
|
|
192
|
-
if (acteurs !== undefined) {
|
|
193
|
-
acteurs = acteurs.acteur;
|
|
194
|
-
if (!Array.isArray(acteurs)) {
|
|
195
|
-
assert(acteurs);
|
|
196
|
-
acteurs = [acteurs];
|
|
197
|
-
}
|
|
198
|
-
if (acteurs.length > 0) {
|
|
199
|
-
initiateur.acteurs = acteurs;
|
|
200
|
-
} else {
|
|
201
|
-
delete initiateur.acteurs;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
let organeRef = initiateur.organes;
|
|
205
|
-
if (organeRef !== undefined) {
|
|
206
|
-
organeRef = organeRef.organe.organeRef.uid;
|
|
207
|
-
assert.notStrictEqual(organeRef, undefined);
|
|
208
|
-
initiateur.organeRef = organeRef;
|
|
209
|
-
delete initiateur.organes;
|
|
210
|
-
}
|
|
211
|
-
if (initiateur.acteurs === undefined && initiateur.organeRef === undefined) {
|
|
212
|
-
delete acteOuDossier.initiateur;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
function cleanInfoJo(infoJo) {
|
|
217
|
-
cleanXmlArtefacts(infoJo);
|
|
218
|
-
const typeJo = infoJo.typeJO;
|
|
219
|
-
if (typeJo !== undefined) {
|
|
220
|
-
infoJo.typeJo = typeJo;
|
|
221
|
-
delete infoJo.typeJO;
|
|
222
|
-
}
|
|
223
|
-
const dateJo = infoJo.dateJO;
|
|
224
|
-
if (dateJo !== undefined) {
|
|
225
|
-
infoJo.dateJo = dateJo;
|
|
226
|
-
delete infoJo.dateJO;
|
|
227
|
-
}
|
|
228
|
-
assert.strictEqual(infoJo.pageJO, undefined);
|
|
229
|
-
const numJo = infoJo.numJO;
|
|
230
|
-
if (numJo !== undefined) {
|
|
231
|
-
infoJo.numJo = numJo;
|
|
232
|
-
delete infoJo.numJO;
|
|
233
|
-
}
|
|
234
|
-
const referenceNor = infoJo.referenceNOR;
|
|
235
|
-
if (referenceNor !== undefined) {
|
|
236
|
-
infoJo.referenceNor = referenceNor;
|
|
237
|
-
delete infoJo.referenceNOR;
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
function cleanTypeDeclaration(typeDeclaration) {
|
|
241
|
-
typeDeclaration.famCode = typeDeclaration.fam_code;
|
|
242
|
-
delete typeDeclaration.fam_code;
|
|
243
|
-
assert(typeDeclaration.famCode);
|
|
244
|
-
if (!typeDeclaration.libelle) {
|
|
245
|
-
// Occured once in https://git.en-root.org/tricoteuses/data/assemblee-brut/Dossiers_Legislatifs_XV/commit/8383800fe7d993da7b596c5b20fadc31c4df3835:
|
|
246
|
-
// "statutConclusion": {
|
|
247
|
-
// "fam_code": "TSORTFnull"
|
|
248
|
-
// },
|
|
249
|
-
// This famCode is an error.
|
|
250
|
-
typeDeclaration.libelle = typeDeclaration.famCode;
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJjbGVhblJhcHBvcnRldXIiLCJjbGVhblhtbEFydGVmYWN0cyIsImNsZWFuQWN0ZUxlZ2lzbGF0aWYiLCJhY3RlTGVnaXNsYXRpZiIsInhzaVR5cGUiLCJ1bmRlZmluZWQiLCJhdXRldXJzUmVmcyIsImF1dGV1cnMiLCJhY3RldXJSZWYiLCJBcnJheSIsImlzQXJyYXkiLCJjYXNTYWlzaW5lIiwiY2xlYW5UeXBlRGVjbGFyYXRpb24iLCJjb250cmlidXRpb25JbnRlcm5hdXRlIiwic3RyaWN0RXF1YWwiLCJkYXRlUmV0cmFpdCIsImRlY2lzaW9uIiwiaW5mb0pvIiwiaW5mb0pPIiwiY2xlYW5JbmZvSm8iLCJpbmZvSm9jZSIsImluZm9KT0NFIiwicmVmSm9jZSIsInJlZkpPQ0UiLCJkYXRlSm9jZSIsImRhdGVKT0NFIiwiaW5mb0pvUmVjdCIsImluZm9KT1JlY3QiLCJpbmZvSm9SZWN0SXRlbSIsImNsZWFuQWN0ZU91RG9zc2llckluaXRpYXRldXIiLCJpbml0aWF0ZXVyIiwiaW5pdGlhdGV1cnMiLCJub3RTdHJpY3RFcXVhbCIsIm9yZ2FuZVJlZiIsImFjdGV1cnMiLCJvZFNlYW5jZWpSZWYiLCJwcm92ZW5hbmNlUmVmIiwicHJvdmVuYW5jZSIsInJhcHBvcnRldXJzIiwicmFwcG9ydGV1ciIsInJlZmVyZW5jZU5vciIsInJlZmVyZW5jZU5PUiIsInJldW5pb24iLCJzdGF0dXRBZG9wdGlvbiIsInN0YXR1dENvbmNsdXNpb24iLCJmYW1Db2RlIiwidGV4dGVBZG9wdGVSZWYiLCJ0ZXh0ZUFkb3B0ZSIsInRleHRlQXNzb2NpZVJlZiIsInRleHRlQXNzb2NpZSIsInRleHRlc0Fzc29jaWVzIiwicmVmVGV4dGVBc3NvY2llIiwidHlwZURlY2xhcmF0aW9uIiwidHlwZU1vdGlvbiIsInR5cGVNb3Rpb25DZW5zdXJlIiwidm90ZVJlZnMiLCJ2b3RlUmVmIiwiYWN0ZXNMZWdpc2xhdGlmcyIsImFjdGVPdURvc3NpZXIiLCJhY3RldXIiLCJsZW5ndGgiLCJvcmdhbmVzIiwib3JnYW5lIiwidWlkIiwidHlwZUpvIiwidHlwZUpPIiwiZGF0ZUpvIiwiZGF0ZUpPIiwicGFnZUpPIiwibnVtSm8iLCJudW1KTyIsImZhbV9jb2RlIiwibGliZWxsZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGVhbmVycy9hY3Rlc19sZWdpc2xhdGlmcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuXG5pbXBvcnQgeyBjbGVhblJhcHBvcnRldXIgfSBmcm9tIFwiLi9hY3RldXJzXCJcbmltcG9ydCB7IGNsZWFuWG1sQXJ0ZWZhY3RzIH0gZnJvbSBcIi4veG1sXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuQWN0ZUxlZ2lzbGF0aWYoYWN0ZUxlZ2lzbGF0aWY6IGFueSk6IHZvaWQge1xuICBjbGVhblhtbEFydGVmYWN0cyhhY3RlTGVnaXNsYXRpZilcblxuICBjb25zdCB4c2lUeXBlID0gYWN0ZUxlZ2lzbGF0aWZbXCJAeHNpOnR5cGVcIl1cbiAgaWYgKHhzaVR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgIGFjdGVMZWdpc2xhdGlmLnhzaVR5cGUgPSB4c2lUeXBlXG4gICAgZGVsZXRlIGFjdGVMZWdpc2xhdGlmW1wiQHhzaTp0eXBlXCJdXG4gIH1cblxuICAvL1xuXG4gIGxldCBhdXRldXJzUmVmcyA9IGFjdGVMZWdpc2xhdGlmLmF1dGV1cnNcbiAgaWYgKGF1dGV1cnNSZWZzICE9PSB1bmRlZmluZWQpIHtcbiAgICBhdXRldXJzUmVmcyA9IGF1dGV1cnNSZWZzLmFjdGV1clJlZlxuICAgIGlmICghQXJyYXkuaXNBcnJheShhdXRldXJzUmVmcykpIHtcbiAgICAgIGFzc2VydChhdXRldXJzUmVmcylcbiAgICAgIGF1dGV1cnNSZWZzID0gW2F1dGV1cnNSZWZzXVxuICAgIH1cbiAgICBhY3RlTGVnaXNsYXRpZi5hdXRldXJzUmVmcyA9IGF1dGV1cnNSZWZzXG4gICAgZGVsZXRlIGFjdGVMZWdpc2xhdGlmLmF1dGV1cnNcbiAgfVxuXG4gIGNvbnN0IGNhc1NhaXNpbmUgPSBhY3RlTGVnaXNsYXRpZi5jYXNTYWlzaW5lXG4gIGlmIChjYXNTYWlzaW5lICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbGVhblR5cGVEZWNsYXJhdGlvbihjYXNTYWlzaW5lKVxuICB9XG5cbiAgY29uc3QgY29udHJpYnV0aW9uSW50ZXJuYXV0ZSA9IGFjdGVMZWdpc2xhdGlmLmNvbnRyaWJ1dGlvbkludGVybmF1dGVcbiAgaWYgKGNvbnRyaWJ1dGlvbkludGVybmF1dGUgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsZWFuWG1sQXJ0ZWZhY3RzKGNvbnRyaWJ1dGlvbkludGVybmF1dGUpXG4gIH1cblxuICBhc3NlcnQuc3RyaWN0RXF1YWwoYWN0ZUxlZ2lzbGF0aWYuZGF0ZVJldHJhaXQsIHVuZGVmaW5lZClcblxuICBjb25zdCBkZWNpc2lvbiA9IGFjdGVMZWdpc2xhdGlmLmRlY2lzaW9uXG4gIGlmIChkZWNpc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xlYW5UeXBlRGVjbGFyYXRpb24oZGVjaXNpb24pXG4gIH1cblxuICBjb25zdCBpbmZvSm8gPSBhY3RlTGVnaXNsYXRpZi5pbmZvSk9cbiAgaWYgKGluZm9KbyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xlYW5JbmZvSm8oaW5mb0pvKVxuICAgIGFjdGVMZWdpc2xhdGlmLmluZm9KbyA9IGluZm9Kb1xuICAgIGRlbGV0ZSBhY3RlTGVnaXNsYXRpZi5pbmZvSk9cbiAgfVxuXG4gIGNvbnN0IGluZm9Kb2NlID0gYWN0ZUxlZ2lzbGF0aWYuaW5mb0pPQ0VcbiAgaWYgKGluZm9Kb2NlICE9PSB1bmRlZmluZWQpIHtcbiAgICBhY3RlTGVnaXNsYXRpZi5pbmZvSm9jZSA9IGluZm9Kb2NlXG4gICAgZGVsZXRlIGFjdGVMZWdpc2xhdGlmLmluZm9KT0NFXG5cbiAgICBjb25zdCByZWZKb2NlID0gaW5mb0pvY2UucmVmSk9DRVxuICAgIGlmIChyZWZKb2NlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGluZm9Kb2NlLnJlZkpvY2UgPSByZWZKb2NlXG4gICAgICBkZWxldGUgaW5mb0pvY2UucmVmSk9DRVxuICAgIH1cblxuICAgIGNvbnN0IGRhdGVKb2NlID0gaW5mb0pvY2UuZGF0ZUpPQ0VcbiAgICBpZiAoZGF0ZUpvY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaW5mb0pvY2UuZGF0ZUpvY2UgPSBkYXRlSm9jZVxuICAgICAgZGVsZXRlIGluZm9Kb2NlLmRhdGVKT0NFXG4gICAgfVxuICB9XG5cbiAgbGV0IGluZm9Kb1JlY3QgPSBhY3RlTGVnaXNsYXRpZi5pbmZvSk9SZWN0XG4gIGlmIChpbmZvSm9SZWN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoaW5mb0pvUmVjdCkpIHtcbiAgICAgIGluZm9Kb1JlY3QgPSBbaW5mb0pvUmVjdF1cbiAgICB9XG4gICAgYWN0ZUxlZ2lzbGF0aWYuaW5mb0pvUmVjdCA9IGluZm9Kb1JlY3RcbiAgICBkZWxldGUgYWN0ZUxlZ2lzbGF0aWYuaW5mb0pPUmVjdFxuXG4gICAgZm9yIChjb25zdCBpbmZvSm9SZWN0SXRlbSBvZiBpbmZvSm9SZWN0KSB7XG4gICAgICBjbGVhbkluZm9KbyhpbmZvSm9SZWN0SXRlbSlcbiAgICB9XG4gIH1cblxuICAvLyBDb252ZXJ0IGFjdGVMZWdpc2xhdGlmLmluaXRpYXRldXIgYW5kIGFjdGVMZWdpc2xhdGlmLmluaXRpYXRldXJzIHRvIGFuIEluaXRpYXRldXIuXG4gIGNsZWFuQWN0ZU91RG9zc2llckluaXRpYXRldXIoYWN0ZUxlZ2lzbGF0aWYpXG4gIGxldCBpbml0aWF0ZXVyID0gYWN0ZUxlZ2lzbGF0aWYuaW5pdGlhdGV1cnNcbiAgaWYgKGluaXRpYXRldXIgIT09IHVuZGVmaW5lZCkge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChhY3RlTGVnaXNsYXRpZi5pbml0aWF0ZXVyLCB1bmRlZmluZWQpXG4gICAgaWYgKGluaXRpYXRldXIuYWN0ZXVyUmVmID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChpbml0aWF0ZXVyLm9yZ2FuZVJlZiwgdW5kZWZpbmVkKVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaW5pdGlhdGV1cikpIHtcbiAgICAgICAgYXNzZXJ0KGluaXRpYXRldXIpXG4gICAgICAgIGluaXRpYXRldXIgPSBbaW5pdGlhdGV1cl1cbiAgICAgIH1cbiAgICAgIGluaXRpYXRldXIgPSB7XG4gICAgICAgIGFjdGV1cnM6IGluaXRpYXRldXIsXG4gICAgICB9XG4gICAgfVxuICAgIGFjdGVMZWdpc2xhdGlmLmluaXRpYXRldXIgPSBpbml0aWF0ZXVyXG4gICAgZGVsZXRlIGFjdGVMZWdpc2xhdGlmLmluaXRpYXRldXJzXG4gIH1cblxuICBhc3NlcnQuc3RyaWN0RXF1YWwoYWN0ZUxlZ2lzbGF0aWYub2RTZWFuY2VqUmVmLCB1bmRlZmluZWQpXG5cbiAgY29uc3QgcHJvdmVuYW5jZVJlZiA9IGFjdGVMZWdpc2xhdGlmLnByb3ZlbmFuY2VcbiAgaWYgKHByb3ZlbmFuY2VSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgIGRlbGV0ZSBhY3RlTGVnaXNsYXRpZi5wcm92ZW5hbmNlXG4gICAgYWN0ZUxlZ2lzbGF0aWYucHJvdmVuYW5jZVJlZiA9IHByb3ZlbmFuY2VSZWZcbiAgfVxuXG4gIGxldCByYXBwb3J0ZXVycyA9IGFjdGVMZWdpc2xhdGlmLnJhcHBvcnRldXJzXG4gIGlmIChyYXBwb3J0ZXVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmFwcG9ydGV1cnMgPSByYXBwb3J0ZXVycy5yYXBwb3J0ZXVyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHJhcHBvcnRldXJzKSkge1xuICAgICAgYXNzZXJ0KHJhcHBvcnRldXJzKVxuICAgICAgcmFwcG9ydGV1cnMgPSBbcmFwcG9ydGV1cnNdXG4gICAgfVxuICAgIGFjdGVMZWdpc2xhdGlmLnJhcHBvcnRldXJzID0gcmFwcG9ydGV1cnNcbiAgICBmb3IgKGNvbnN0IHJhcHBvcnRldXIgb2YgcmFwcG9ydGV1cnMpIHtcbiAgICAgIGNsZWFuUmFwcG9ydGV1cihyYXBwb3J0ZXVyKVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlZmVyZW5jZU5vciA9IGFjdGVMZWdpc2xhdGlmLnJlZmVyZW5jZU5PUlxuICBpZiAocmVmZXJlbmNlTm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICBhY3RlTGVnaXNsYXRpZi5yZWZlcmVuY2VOb3IgPSByZWZlcmVuY2VOb3JcbiAgICBkZWxldGUgYWN0ZUxlZ2lzbGF0aWYucmVmZXJlbmNlTk9SXG4gIH1cblxuICBhc3NlcnQuc3RyaWN0RXF1YWwoYWN0ZUxlZ2lzbGF0aWYucmV1bmlvbiwgdW5kZWZpbmVkKVxuXG4gIGNvbnN0IHN0YXR1dEFkb3B0aW9uID0gYWN0ZUxlZ2lzbGF0aWYuc3RhdHV0QWRvcHRpb25cbiAgaWYgKHN0YXR1dEFkb3B0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbGVhblR5cGVEZWNsYXJhdGlvbihzdGF0dXRBZG9wdGlvbilcbiAgfVxuXG4gIGNvbnN0IHN0YXR1dENvbmNsdXNpb24gPSBhY3RlTGVnaXNsYXRpZi5zdGF0dXRDb25jbHVzaW9uXG4gIGlmIChzdGF0dXRDb25jbHVzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbGVhblR5cGVEZWNsYXJhdGlvbihzdGF0dXRDb25jbHVzaW9uKVxuICAgIGlmIChzdGF0dXRDb25jbHVzaW9uLmZhbUNvZGUgPT09IFwiVFNPUlRGbnVsbFwiKSB7XG4gICAgICAvLyBPY2N1cmVkIG9uY2UgaW4gaHR0cHM6Ly9naXQuZW4tcm9vdC5vcmcvdHJpY290ZXVzZXMvZGF0YS9hc3NlbWJsZWUtYnJ1dC9Eb3NzaWVyc19MZWdpc2xhdGlmc19YVi9jb21taXQvODM4MzgwMGZlN2Q5OTNkYTdiNTk2YzViMjBmYWRjMzFjNGRmMzgzNVxuICAgICAgZGVsZXRlIGFjdGVMZWdpc2xhdGlmLnN0YXR1dENvbmNsdXNpb25cbiAgICB9XG4gIH1cblxuICBjb25zdCB0ZXh0ZUFkb3B0ZVJlZiA9IGFjdGVMZWdpc2xhdGlmLnRleHRlQWRvcHRlXG4gIGlmICh0ZXh0ZUFkb3B0ZVJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgZGVsZXRlIGFjdGVMZWdpc2xhdGlmLnRleHRlQWRvcHRlXG4gICAgYWN0ZUxlZ2lzbGF0aWYudGV4dGVBZG9wdGVSZWYgPSB0ZXh0ZUFkb3B0ZVJlZlxuICB9XG5cbiAgY29uc3QgdGV4dGVBc3NvY2llUmVmID0gYWN0ZUxlZ2lzbGF0aWYudGV4dGVBc3NvY2llXG4gIGlmICh0ZXh0ZUFzc29jaWVSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgIGRlbGV0ZSBhY3RlTGVnaXNsYXRpZi50ZXh0ZUFzc29jaWVcbiAgICBhY3RlTGVnaXNsYXRpZi50ZXh0ZUFzc29jaWVSZWYgPSB0ZXh0ZUFzc29jaWVSZWZcbiAgfVxuXG4gIGxldCB0ZXh0ZXNBc3NvY2llcyA9IGFjdGVMZWdpc2xhdGlmLnRleHRlc0Fzc29jaWVzXG4gIGlmICh0ZXh0ZXNBc3NvY2llcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdGV4dGVzQXNzb2NpZXMgPSB0ZXh0ZXNBc3NvY2llcy50ZXh0ZUFzc29jaWVcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGV4dGVzQXNzb2NpZXMpKSB7XG4gICAgICBhc3NlcnQodGV4dGVzQXNzb2NpZXMpXG4gICAgICB0ZXh0ZXNBc3NvY2llcyA9IFt0ZXh0ZXNBc3NvY2llc11cbiAgICB9XG4gICAgYWN0ZUxlZ2lzbGF0aWYudGV4dGVzQXNzb2NpZXMgPSB0ZXh0ZXNBc3NvY2llc1xuXG4gICAgZm9yIChjb25zdCB0ZXh0ZUFzc29jaWUgb2YgdGV4dGVzQXNzb2NpZXMpIHtcbiAgICAgIGNvbnN0IHRleHRlQXNzb2NpZVJlZiA9IHRleHRlQXNzb2NpZS5yZWZUZXh0ZUFzc29jaWVcbiAgICAgIGlmICh0ZXh0ZUFzc29jaWVSZWYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkZWxldGUgdGV4dGVBc3NvY2llLnJlZlRleHRlQXNzb2NpZVxuICAgICAgICB0ZXh0ZUFzc29jaWUudGV4dGVBc3NvY2llUmVmID0gdGV4dGVBc3NvY2llUmVmXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgdHlwZURlY2xhcmF0aW9uID0gYWN0ZUxlZ2lzbGF0aWYudHlwZURlY2xhcmF0aW9uXG4gIGlmICh0eXBlRGVjbGFyYXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIGNsZWFuVHlwZURlY2xhcmF0aW9uKHR5cGVEZWNsYXJhdGlvbilcbiAgfVxuXG4gIGNvbnN0IHR5cGVNb3Rpb24gPSBhY3RlTGVnaXNsYXRpZi50eXBlTW90aW9uXG4gIGlmICh0eXBlTW90aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbGVhblR5cGVEZWNsYXJhdGlvbih0eXBlTW90aW9uKVxuICB9XG5cbiAgY29uc3QgdHlwZU1vdGlvbkNlbnN1cmUgPSBhY3RlTGVnaXNsYXRpZi50eXBlTW90aW9uQ2Vuc3VyZVxuICBpZiAodHlwZU1vdGlvbkNlbnN1cmUgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsZWFuVHlwZURlY2xhcmF0aW9uKHR5cGVNb3Rpb25DZW5zdXJlKVxuICB9XG5cbiAgbGV0IHZvdGVSZWZzID0gYWN0ZUxlZ2lzbGF0aWYudm90ZVJlZnNcbiAgaWYgKHZvdGVSZWZzICE9PSB1bmRlZmluZWQpIHtcbiAgICB2b3RlUmVmcyA9IHZvdGVSZWZzLnZvdGVSZWZcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodm90ZVJlZnMpKSB7XG4gICAgICBhc3NlcnQodm90ZVJlZnMpXG4gICAgICB2b3RlUmVmcyA9IFt2b3RlUmVmc11cbiAgICB9XG4gICAgYWN0ZUxlZ2lzbGF0aWYudm90ZVJlZnMgPSB2b3RlUmVmc1xuICB9XG5cbiAgLy9cblxuICBsZXQgYWN0ZXNMZWdpc2xhdGlmcyA9IGFjdGVMZWdpc2xhdGlmLmFjdGVzTGVnaXNsYXRpZnNcbiAgaWYgKGFjdGVzTGVnaXNsYXRpZnMgIT09IHVuZGVmaW5lZCkge1xuICAgIGFjdGVzTGVnaXNsYXRpZnMgPSBhY3Rlc0xlZ2lzbGF0aWZzLmFjdGVMZWdpc2xhdGlmXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFjdGVzTGVnaXNsYXRpZnMpKSB7XG4gICAgICBhc3NlcnQoYWN0ZXNMZWdpc2xhdGlmcylcbiAgICAgIGFjdGVzTGVnaXNsYXRpZnMgPSBbYWN0ZXNMZWdpc2xhdGlmc11cbiAgICB9XG4gICAgYWN0ZUxlZ2lzbGF0aWYuYWN0ZXNMZWdpc2xhdGlmcyA9IGFjdGVzTGVnaXNsYXRpZnNcbiAgICBmb3IgKGNvbnN0IGFjdGVMZWdpc2xhdGlmIG9mIGFjdGVzTGVnaXNsYXRpZnMpIHtcbiAgICAgIGNsZWFuQWN0ZUxlZ2lzbGF0aWYoYWN0ZUxlZ2lzbGF0aWYpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkFjdGVPdURvc3NpZXJJbml0aWF0ZXVyKGFjdGVPdURvc3NpZXI6IGFueSk6IHZvaWQge1xuICBjb25zdCBpbml0aWF0ZXVyID0gYWN0ZU91RG9zc2llci5pbml0aWF0ZXVyXG4gIGlmIChpbml0aWF0ZXVyICE9PSB1bmRlZmluZWQpIHtcbiAgICBsZXQgYWN0ZXVycyA9IGluaXRpYXRldXIuYWN0ZXVyc1xuICAgIGlmIChhY3RldXJzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGFjdGV1cnMgPSBhY3RldXJzLmFjdGV1clxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGFjdGV1cnMpKSB7XG4gICAgICAgIGFzc2VydChhY3RldXJzKVxuICAgICAgICBhY3RldXJzID0gW2FjdGV1cnNdXG4gICAgICB9XG4gICAgICBpZiAoYWN0ZXVycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGluaXRpYXRldXIuYWN0ZXVycyA9IGFjdGV1cnNcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRlbGV0ZSBpbml0aWF0ZXVyLmFjdGV1cnNcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgb3JnYW5lUmVmID0gaW5pdGlhdGV1ci5vcmdhbmVzXG4gICAgaWYgKG9yZ2FuZVJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvcmdhbmVSZWYgPSBvcmdhbmVSZWYub3JnYW5lLm9yZ2FuZVJlZi51aWRcbiAgICAgIGFzc2VydC5ub3RTdHJpY3RFcXVhbChvcmdhbmVSZWYsIHVuZGVmaW5lZClcbiAgICAgIGluaXRpYXRldXIub3JnYW5lUmVmID0gb3JnYW5lUmVmXG4gICAgICBkZWxldGUgaW5pdGlhdGV1ci5vcmdhbmVzXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgaW5pdGlhdGV1ci5hY3RldXJzID09PSB1bmRlZmluZWQgJiZcbiAgICAgIGluaXRpYXRldXIub3JnYW5lUmVmID09PSB1bmRlZmluZWRcbiAgICApIHtcbiAgICAgIGRlbGV0ZSBhY3RlT3VEb3NzaWVyLmluaXRpYXRldXJcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY2xlYW5JbmZvSm8oaW5mb0pvOiBhbnkpOiB2b2lkIHtcbiAgY2xlYW5YbWxBcnRlZmFjdHMoaW5mb0pvKVxuXG4gIGNvbnN0IHR5cGVKbyA9IGluZm9Kby50eXBlSk9cbiAgaWYgKHR5cGVKbyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaW5mb0pvLnR5cGVKbyA9IHR5cGVKb1xuICAgIGRlbGV0ZSBpbmZvSm8udHlwZUpPXG4gIH1cblxuICBjb25zdCBkYXRlSm8gPSBpbmZvSm8uZGF0ZUpPXG4gIGlmIChkYXRlSm8gIT09IHVuZGVmaW5lZCkge1xuICAgIGluZm9Kby5kYXRlSm8gPSBkYXRlSm9cbiAgICBkZWxldGUgaW5mb0pvLmRhdGVKT1xuICB9XG5cbiAgYXNzZXJ0LnN0cmljdEVxdWFsKGluZm9Kby5wYWdlSk8sIHVuZGVmaW5lZClcblxuICBjb25zdCBudW1KbyA9IGluZm9Kby5udW1KT1xuICBpZiAobnVtSm8gIT09IHVuZGVmaW5lZCkge1xuICAgIGluZm9Kby5udW1KbyA9IG51bUpvXG4gICAgZGVsZXRlIGluZm9Kby5udW1KT1xuICB9XG5cbiAgY29uc3QgcmVmZXJlbmNlTm9yID0gaW5mb0pvLnJlZmVyZW5jZU5PUlxuICBpZiAocmVmZXJlbmNlTm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICBpbmZvSm8ucmVmZXJlbmNlTm9yID0gcmVmZXJlbmNlTm9yXG4gICAgZGVsZXRlIGluZm9Kby5yZWZlcmVuY2VOT1JcbiAgfVxufVxuXG5mdW5jdGlvbiBjbGVhblR5cGVEZWNsYXJhdGlvbih0eXBlRGVjbGFyYXRpb246IGFueSkge1xuICB0eXBlRGVjbGFyYXRpb24uZmFtQ29kZSA9IHR5cGVEZWNsYXJhdGlvbi5mYW1fY29kZVxuICBkZWxldGUgdHlwZURlY2xhcmF0aW9uLmZhbV9jb2RlXG4gIGFzc2VydCh0eXBlRGVjbGFyYXRpb24uZmFtQ29kZSlcblxuICBpZiAoIXR5cGVEZWNsYXJhdGlvbi5saWJlbGxlKSB7XG4gICAgLy8gT2NjdXJlZCBvbmNlIGluIGh0dHBzOi8vZ2l0LmVuLXJvb3Qub3JnL3RyaWNvdGV1c2VzL2RhdGEvYXNzZW1ibGVlLWJydXQvRG9zc2llcnNfTGVnaXNsYXRpZnNfWFYvY29tbWl0LzgzODM4MDBmZTdkOTkzZGE3YjU5NmM1YjIwZmFkYzMxYzRkZjM4MzU6XG4gICAgLy8gXCJzdGF0dXRDb25jbHVzaW9uXCI6IHtcbiAgICAvLyAgIFwiZmFtX2NvZGVcIjogXCJUU09SVEZudWxsXCJcbiAgICAvLyB9LFxuICAgIC8vIFRoaXMgZmFtQ29kZSBpcyBhbiBlcnJvci5cbiAgICB0eXBlRGVjbGFyYXRpb24ubGliZWxsZSA9IHR5cGVEZWNsYXJhdGlvbi5mYW1Db2RlXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsTUFBTSxNQUFNLFFBQVE7QUFBQSxTQUVsQkMsZUFBZTtBQUFBLFNBQ2ZDLGlCQUFpQjtBQUUxQixPQUFPLFNBQVNDLG1CQUFtQkEsQ0FBQ0MsY0FBbUIsRUFBUTtFQUM3REYsaUJBQWlCLENBQUNFLGNBQWMsQ0FBQztFQUVqQyxNQUFNQyxPQUFPLEdBQUdELGNBQWMsQ0FBQyxXQUFXLENBQUM7RUFDM0MsSUFBSUMsT0FBTyxLQUFLQyxTQUFTLEVBQUU7SUFDekJGLGNBQWMsQ0FBQ0MsT0FBTyxHQUFHQSxPQUFPO0lBQ2hDLE9BQU9ELGNBQWMsQ0FBQyxXQUFXLENB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
|