@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.
Files changed (274) hide show
  1. package/README.md +8 -1
  2. package/lib/amendements-79bwpkvR.js +154 -0
  3. package/lib/amendements-CV3s5a0M.js +667 -0
  4. package/lib/cleaners/index.d.ts +9 -9
  5. package/lib/cleaners.js +564 -0
  6. package/lib/datasets.d.ts +3 -3
  7. package/lib/dossiers_legislatifs.d.ts +2 -2
  8. package/lib/index.d.ts +17 -22
  9. package/lib/index.js +1542 -314
  10. package/lib/inserters.d.ts +5 -5
  11. package/lib/loaders-9mHdTl9L.js +4158 -0
  12. package/lib/loaders.d.ts +12 -12
  13. package/lib/loaders.js +29 -1689
  14. package/lib/organes.d.ts +1 -1
  15. package/lib/parse-Ccs6wcUg.js +2512 -0
  16. package/lib/parsers/index.d.ts +2 -3
  17. package/lib/parsers/plf.d.ts +1 -0
  18. package/lib/parsers/recherche_amendements.d.ts +2 -2
  19. package/lib/parsers/textes_lois.d.ts +1 -23
  20. package/lib/parsers.js +398 -0
  21. package/lib/raw_types/debats.d.ts +2 -2
  22. package/lib/raw_types/dossiers_legislatifs.d.ts +1 -1
  23. package/lib/schemas/acteurs_et_organes.json +1166 -0
  24. package/lib/schemas/agendas.json +1745 -0
  25. package/lib/schemas/amendements.json +2085 -0
  26. package/lib/schemas/debats.json +842 -0
  27. package/lib/schemas/dossiers_legislatifs.json +3874 -0
  28. package/lib/schemas/legislatures.json +17 -0
  29. package/lib/schemas/questions.json +704 -0
  30. package/lib/schemas/scrutins.json +701 -0
  31. package/lib/scripts/retrieve_deputes_photos.d.ts +1 -1
  32. package/lib/types/acteurs_et_organes.d.ts +340 -0
  33. package/lib/types/agendas.d.ts +236 -10
  34. package/lib/types/amendements.d.ts +276 -1
  35. package/lib/types/debats.d.ts +52 -2
  36. package/lib/types/dossiers_legislatifs.d.ts +403 -9
  37. package/lib/types/questions.d.ts +99 -2
  38. package/lib/types/scrutins.d.ts +101 -0
  39. package/lib/urls.d.ts +2 -2
  40. package/package.json +32 -94
  41. package/lib/api.js +0 -52
  42. package/lib/api.mjs +0 -45
  43. package/lib/bugs/acteur-00010/plugin.test.js +0 -90
  44. package/lib/bugs/acteur-00010/plugin.test.mjs +0 -33
  45. package/lib/bugs/acteur-00010.d.ts +0 -7
  46. package/lib/bugs/acteur-00010.js +0 -116
  47. package/lib/bugs/acteur-00010.mjs +0 -26
  48. package/lib/bugs/agenda-00002/plugin.test.js +0 -124
  49. package/lib/bugs/agenda-00002/plugin.test.mjs +0 -50
  50. package/lib/bugs/agenda-00002.d.ts +0 -15
  51. package/lib/bugs/agenda-00002.js +0 -406
  52. package/lib/bugs/agenda-00002.mjs +0 -172
  53. package/lib/bugs/agenda-00008/plugin.test.js +0 -92
  54. package/lib/bugs/agenda-00008/plugin.test.mjs +0 -31
  55. package/lib/bugs/agenda-00008.d.ts +0 -7
  56. package/lib/bugs/agenda-00008.js +0 -123
  57. package/lib/bugs/agenda-00008.mjs +0 -26
  58. package/lib/bugs/agenda-00011/plugin.test.d.ts +0 -1
  59. package/lib/bugs/agenda-00011/plugin.test.js +0 -263
  60. package/lib/bugs/agenda-00011/plugin.test.mjs +0 -152
  61. package/lib/bugs/agenda-00011.d.ts +0 -16
  62. package/lib/bugs/agenda-00011.js +0 -333
  63. package/lib/bugs/agenda-00011.mjs +0 -125
  64. package/lib/bugs.d.ts +0 -21
  65. package/lib/bugs.js +0 -452
  66. package/lib/bugs.mjs +0 -70
  67. package/lib/cleaners/actes_legislatifs.js +0 -315
  68. package/lib/cleaners/actes_legislatifs.mjs +0 -253
  69. package/lib/cleaners/acteurs.js +0 -265
  70. package/lib/cleaners/acteurs.mjs +0 -180
  71. package/lib/cleaners/amendements.js +0 -294
  72. package/lib/cleaners/amendements.mjs +0 -227
  73. package/lib/cleaners/debats.js +0 -12
  74. package/lib/cleaners/debats.mjs +0 -5
  75. package/lib/cleaners/documents.js +0 -205
  76. package/lib/cleaners/documents.mjs +0 -133
  77. package/lib/cleaners/dossiers_legislatifs.js +0 -131
  78. package/lib/cleaners/dossiers_legislatifs.mjs +0 -70
  79. package/lib/cleaners/index.js +0 -70
  80. package/lib/cleaners/index.mjs +0 -10
  81. package/lib/cleaners/organes.js +0 -65
  82. package/lib/cleaners/organes.mjs +0 -48
  83. package/lib/cleaners/questions.js +0 -12
  84. package/lib/cleaners/questions.mjs +0 -5
  85. package/lib/cleaners/reunions.js +0 -312
  86. package/lib/cleaners/reunions.mjs +0 -255
  87. package/lib/cleaners/scrutins.js +0 -340
  88. package/lib/cleaners/scrutins.mjs +0 -221
  89. package/lib/cleaners/xml.js +0 -74
  90. package/lib/cleaners/xml.mjs +0 -59
  91. package/lib/datasets.js +0 -837
  92. package/lib/datasets.mjs +0 -755
  93. package/lib/dates.js +0 -124
  94. package/lib/dates.mjs +0 -100
  95. package/lib/dossiers_legislatifs.js +0 -346
  96. package/lib/dossiers_legislatifs.mjs +0 -208
  97. package/lib/file_systems.js +0 -162
  98. package/lib/file_systems.mjs +0 -62
  99. package/lib/git.js +0 -223
  100. package/lib/git.mjs +0 -151
  101. package/lib/index.mjs +0 -17
  102. package/lib/inserters.js +0 -521
  103. package/lib/inserters.mjs +0 -337
  104. package/lib/loaders.mjs +0 -886
  105. package/lib/logger.js +0 -35
  106. package/lib/logger.mjs +0 -26
  107. package/lib/organes.js +0 -22
  108. package/lib/organes.mjs +0 -15
  109. package/lib/parsers/documents.d.ts +0 -62
  110. package/lib/parsers/documents.js +0 -453
  111. package/lib/parsers/documents.mjs +0 -370
  112. package/lib/parsers/index.js +0 -40
  113. package/lib/parsers/index.mjs +0 -4
  114. package/lib/parsers/recherche_amendements.js +0 -403
  115. package/lib/parsers/recherche_amendements.mjs +0 -167
  116. package/lib/parsers/textes_lois.js +0 -307
  117. package/lib/parsers/textes_lois.mjs +0 -264
  118. package/lib/raw_types/acteurs_et_organes.js +0 -1215
  119. package/lib/raw_types/acteurs_et_organes.mjs +0 -1148
  120. package/lib/raw_types/agendas.js +0 -777
  121. package/lib/raw_types/agendas.mjs +0 -724
  122. package/lib/raw_types/amendements.js +0 -1052
  123. package/lib/raw_types/amendements.mjs +0 -993
  124. package/lib/raw_types/debats.js +0 -630
  125. package/lib/raw_types/debats.mjs +0 -573
  126. package/lib/raw_types/dossiers_legislatifs.js +0 -1529
  127. package/lib/raw_types/dossiers_legislatifs.mjs +0 -1471
  128. package/lib/raw_types/questions.js +0 -469
  129. package/lib/raw_types/questions.mjs +0 -416
  130. package/lib/raw_types/scrutins.js +0 -651
  131. package/lib/raw_types/scrutins.mjs +0 -598
  132. package/lib/schemas/acteur/Acteur.json +0 -56
  133. package/lib/schemas/acteur/AdresseElectronique.json +0 -52
  134. package/lib/schemas/acteur/AdressePostale.json +0 -75
  135. package/lib/schemas/acteur/Civ.json +0 -14
  136. package/lib/schemas/acteur/Collaborateur.json +0 -29
  137. package/lib/schemas/acteur/EtatCivil.json +0 -51
  138. package/lib/schemas/acteur/Ident.json +0 -40
  139. package/lib/schemas/acteur/Lieu.json +0 -66
  140. package/lib/schemas/acteur/Mandat.json +0 -192
  141. package/lib/schemas/acteur/Profession.json +0 -46
  142. package/lib/schemas/agenda/Agenda.json +0 -318
  143. package/lib/schemas/agenda/CycleDeVie.json +0 -45
  144. package/lib/schemas/agenda/PointOdj.json +0 -82
  145. package/lib/schemas/amendement/Amendement.json +0 -246
  146. package/lib/schemas/amendement/Diff.json +0 -25
  147. package/lib/schemas/amendement/DispositifAmdtCredit.json +0 -85
  148. package/lib/schemas/amendement/Identifiant.json +0 -62
  149. package/lib/schemas/amendement/PointeurFragmentTexte.json +0 -127
  150. package/lib/schemas/amendement/Representation.json +0 -67
  151. package/lib/schemas/amendement/Total.json +0 -26
  152. package/lib/schemas/converted_from_type/acteurs_et_organes.json +0 -666
  153. package/lib/schemas/converted_from_type/agendas.json +0 -1100
  154. package/lib/schemas/converted_from_type/amendements.json +0 -3191
  155. package/lib/schemas/converted_from_type/debats.json +0 -682
  156. package/lib/schemas/converted_from_type/deputes.json +0 -26
  157. package/lib/schemas/converted_from_type/dossiers_legislatifs.json +0 -2918
  158. package/lib/schemas/converted_from_type/legislatures.json +0 -16
  159. package/lib/schemas/converted_from_type/questions.json +0 -328
  160. package/lib/schemas/converted_from_type/scrutins.json +0 -393
  161. package/lib/schemas/debat/Contenu.json +0 -75
  162. package/lib/schemas/debat/Debat.json +0 -40
  163. package/lib/schemas/debat/Metadonnees.json +0 -75
  164. package/lib/schemas/debat/Orateur.json +0 -60
  165. package/lib/schemas/debat/Point.json +0 -169
  166. package/lib/schemas/debat/Sommaire.json +0 -71
  167. package/lib/schemas/debat/SommaireElement.json +0 -108
  168. package/lib/schemas/debat/Texte.json +0 -34
  169. package/lib/schemas/document/CodeLibelle.json +0 -25
  170. package/lib/schemas/document/Document.json +0 -385
  171. package/lib/schemas/document/Indexation.json +0 -38
  172. package/lib/schemas/dossier/ActeLegislatif.json +0 -211
  173. package/lib/schemas/dossier/ActeLegislatifBase.json +0 -62
  174. package/lib/schemas/dossier/Agenda.json +0 -23
  175. package/lib/schemas/dossier/ConseilConstitutionnel.json +0 -35
  176. package/lib/schemas/dossier/Decision.json +0 -25
  177. package/lib/schemas/dossier/Dossier.json +0 -124
  178. package/lib/schemas/dossier/EtudeImpact.json +0 -29
  179. package/lib/schemas/dossier/EtudePlf.json +0 -105
  180. package/lib/schemas/dossier/Europe.json +0 -42
  181. package/lib/schemas/dossier/FamCodeLibelle.json +0 -25
  182. package/lib/schemas/dossier/InfoJO.json +0 -23
  183. package/lib/schemas/dossier/Initiateur.json +0 -36
  184. package/lib/schemas/dossier/Motion.json +0 -27
  185. package/lib/schemas/dossier/Promulgation.json +0 -62
  186. package/lib/schemas/dossier/Rapporteur.json +0 -36
  187. package/lib/schemas/dossier/Texte.json +0 -47
  188. package/lib/schemas/organe/CodeTypeOrgane.json +0 -43
  189. package/lib/schemas/organe/Organe.json +0 -136
  190. package/lib/schemas/organe/ViMoDe.json +0 -28
  191. package/lib/schemas/question/Auteur.json +0 -58
  192. package/lib/schemas/question/Cloture.json +0 -28
  193. package/lib/schemas/question/InfoJO.json +0 -40
  194. package/lib/schemas/question/MinAttribElement.json +0 -30
  195. package/lib/schemas/question/Question.json +0 -172
  196. package/lib/schemas/question/Renouvellement.json +0 -17
  197. package/lib/schemas/question/Signalement.json +0 -21
  198. package/lib/schemas/question/Texte.json +0 -24
  199. package/lib/schemas/scrutin/DecompteVoix.json +0 -35
  200. package/lib/schemas/scrutin/Dysfonctionnement.json +0 -50
  201. package/lib/schemas/scrutin/MiseAuPoint.json +0 -53
  202. package/lib/schemas/scrutin/OrganeVotant.json +0 -88
  203. package/lib/schemas/scrutin/Scrutin.json +0 -187
  204. package/lib/schemas/scrutin/Votant.json +0 -37
  205. package/lib/scripts/bugs_helper.d.ts +0 -13
  206. package/lib/scripts/bugs_helper.js +0 -595
  207. package/lib/scripts/bugs_helper.mjs +0 -251
  208. package/lib/scripts/clean_reorganized_data.js +0 -613
  209. package/lib/scripts/clean_reorganized_data.mjs +0 -276
  210. package/lib/scripts/diff_amendements.js +0 -249
  211. package/lib/scripts/diff_amendements.mjs +0 -202
  212. package/lib/scripts/document_dossiers_legislatifs.js +0 -655
  213. package/lib/scripts/document_dossiers_legislatifs.mjs +0 -414
  214. package/lib/scripts/get_today_reunions.js +0 -37
  215. package/lib/scripts/get_today_reunions.mjs +0 -31
  216. package/lib/scripts/merge_scrutins.js +0 -97
  217. package/lib/scripts/merge_scrutins.mjs +0 -47
  218. package/lib/scripts/parse_textes_lois.d.ts +0 -1
  219. package/lib/scripts/parse_textes_lois.js +0 -171
  220. package/lib/scripts/parse_textes_lois.mjs +0 -140
  221. package/lib/scripts/process_open_dataset.js +0 -301
  222. package/lib/scripts/process_open_dataset.mjs +0 -134
  223. package/lib/scripts/raw_types_from_amendements.js +0 -135
  224. package/lib/scripts/raw_types_from_amendements.mjs +0 -134
  225. package/lib/scripts/reorganize_data.js +0 -805
  226. package/lib/scripts/reorganize_data.mjs +0 -517
  227. package/lib/scripts/retrieve_deputes_photos.js +0 -310
  228. package/lib/scripts/retrieve_deputes_photos.mjs +0 -158
  229. package/lib/scripts/retrieve_documents.js +0 -547
  230. package/lib/scripts/retrieve_documents.mjs +0 -242
  231. package/lib/scripts/retrieve_open_data.js +0 -107
  232. package/lib/scripts/retrieve_open_data.mjs +0 -26
  233. package/lib/scripts/retrieve_pending_amendments.js +0 -206
  234. package/lib/scripts/retrieve_pending_amendments.mjs +0 -57
  235. package/lib/scripts/retrieve_senateurs_photos.js +0 -234
  236. package/lib/scripts/retrieve_senateurs_photos.mjs +0 -116
  237. package/lib/scripts/retrieve_textes_lois.d.ts +0 -1
  238. package/lib/scripts/retrieve_textes_lois.js +0 -240
  239. package/lib/scripts/retrieve_textes_lois.mjs +0 -85
  240. package/lib/scripts/shared/cli_helpers.js +0 -89
  241. package/lib/scripts/shared/cli_helpers.mjs +0 -81
  242. package/lib/scripts/test_iter_load.js +0 -155
  243. package/lib/scripts/test_iter_load.mjs +0 -72
  244. package/lib/scripts/test_load.js +0 -26
  245. package/lib/scripts/test_load.mjs +0 -16
  246. package/lib/scripts/test_load_big_files.js +0 -26
  247. package/lib/scripts/test_load_big_files.mjs +0 -16
  248. package/lib/scripts/validate_json.js +0 -353
  249. package/lib/scripts/validate_json.mjs +0 -184
  250. package/lib/shared_types/codes_actes.js +0 -231
  251. package/lib/shared_types/codes_actes.mjs +0 -224
  252. package/lib/strings.js +0 -16
  253. package/lib/strings.mjs +0 -7
  254. package/lib/types/acteurs_et_organes.js +0 -965
  255. package/lib/types/acteurs_et_organes.mjs +0 -906
  256. package/lib/types/agendas.js +0 -628
  257. package/lib/types/agendas.mjs +0 -575
  258. package/lib/types/amendements.js +0 -899
  259. package/lib/types/amendements.mjs +0 -842
  260. package/lib/types/debats.js +0 -619
  261. package/lib/types/debats.mjs +0 -562
  262. package/lib/types/dossiers_legislatifs.js +0 -1188
  263. package/lib/types/dossiers_legislatifs.mjs +0 -1130
  264. package/lib/types/legislatures.js +0 -17
  265. package/lib/types/legislatures.mjs +0 -10
  266. package/lib/types/questions.js +0 -454
  267. package/lib/types/questions.mjs +0 -401
  268. package/lib/types/scrutins.js +0 -556
  269. package/lib/types/scrutins.mjs +0 -503
  270. package/lib/urls.js +0 -325
  271. package/lib/urls.mjs +0 -258
  272. /package/lib/{bugs/acteur-00010/plugin.test.d.ts → scripts/add_links_to_documents.d.ts} +0 -0
  273. /package/lib/{bugs/agenda-00002/plugin.test.d.ts → scripts/copy-schemas.d.ts} +0 -0
  274. /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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