@tricoteuses/assemblee 2.0.0 → 2.0.2

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 (161) hide show
  1. package/lib/amendements-CN7bRFdP.js +259 -0
  2. package/lib/amendements-CN7bRFdP.js.map +1 -0
  3. package/lib/amendements-Cg1lyCBp.js +735 -0
  4. package/lib/amendements-Cg1lyCBp.js.map +1 -0
  5. package/lib/api.d.ts +1 -0
  6. package/lib/api.d.ts.map +1 -0
  7. package/lib/cleaners/actes_legislatifs.d.ts +1 -0
  8. package/lib/cleaners/actes_legislatifs.d.ts.map +1 -0
  9. package/lib/cleaners/acteurs.d.ts +1 -0
  10. package/lib/cleaners/acteurs.d.ts.map +1 -0
  11. package/lib/cleaners/amendements.d.ts +1 -0
  12. package/lib/cleaners/amendements.d.ts.map +1 -0
  13. package/lib/cleaners/debats.d.ts +1 -0
  14. package/lib/cleaners/debats.d.ts.map +1 -0
  15. package/lib/cleaners/documents.d.ts +1 -0
  16. package/lib/cleaners/documents.d.ts.map +1 -0
  17. package/lib/cleaners/dossiers_legislatifs.d.ts +1 -0
  18. package/lib/cleaners/dossiers_legislatifs.d.ts.map +1 -0
  19. package/lib/cleaners/index.d.ts +1 -0
  20. package/lib/cleaners/index.d.ts.map +1 -0
  21. package/lib/cleaners/organes.d.ts +1 -0
  22. package/lib/cleaners/organes.d.ts.map +1 -0
  23. package/lib/cleaners/questions.d.ts +1 -0
  24. package/lib/cleaners/questions.d.ts.map +1 -0
  25. package/lib/cleaners/reunions.d.ts +1 -0
  26. package/lib/cleaners/reunions.d.ts.map +1 -0
  27. package/lib/cleaners/scrutins.d.ts +1 -0
  28. package/lib/cleaners/scrutins.d.ts.map +1 -0
  29. package/lib/cleaners/xml.d.ts +1 -0
  30. package/lib/cleaners/xml.d.ts.map +1 -0
  31. package/lib/cleaners.js +1082 -508
  32. package/lib/cleaners.js.map +1 -0
  33. package/lib/datasets.d.ts +1 -0
  34. package/lib/datasets.d.ts.map +1 -0
  35. package/lib/dates.d.ts +1 -0
  36. package/lib/dates.d.ts.map +1 -0
  37. package/lib/debats-BwZYgzXe.js +3978 -0
  38. package/lib/debats-BwZYgzXe.js.map +1 -0
  39. package/lib/dossiers_legislatifs.d.ts +1 -0
  40. package/lib/dossiers_legislatifs.d.ts.map +1 -0
  41. package/lib/file_systems.d.ts +1 -0
  42. package/lib/file_systems.d.ts.map +1 -0
  43. package/lib/git.d.ts +1 -0
  44. package/lib/git.d.ts.map +1 -0
  45. package/lib/index.d.ts +1 -0
  46. package/lib/index.d.ts.map +1 -0
  47. package/lib/index.js +1211 -808
  48. package/lib/index.js.map +1 -0
  49. package/lib/inserters.d.ts +1 -0
  50. package/lib/inserters.d.ts.map +1 -0
  51. package/lib/loaders.d.ts +1 -0
  52. package/lib/loaders.d.ts.map +1 -0
  53. package/lib/loaders.js +983 -27
  54. package/lib/loaders.js.map +1 -0
  55. package/lib/logger.d.ts +1 -0
  56. package/lib/logger.d.ts.map +1 -0
  57. package/lib/organes.d.ts +1 -0
  58. package/lib/organes.d.ts.map +1 -0
  59. package/lib/parse-CzW8NHW5.js +2850 -0
  60. package/lib/parse-CzW8NHW5.js.map +1 -0
  61. package/lib/parsers/index.d.ts +1 -0
  62. package/lib/parsers/index.d.ts.map +1 -0
  63. package/lib/parsers/plf.d.ts +1 -0
  64. package/lib/parsers/plf.d.ts.map +1 -0
  65. package/lib/parsers/recherche_amendements.d.ts +1 -0
  66. package/lib/parsers/recherche_amendements.d.ts.map +1 -0
  67. package/lib/parsers/textes_lois.d.ts +1 -0
  68. package/lib/parsers/textes_lois.d.ts.map +1 -0
  69. package/lib/parsers.js +287 -292
  70. package/lib/parsers.js.map +1 -0
  71. package/lib/raw_types/acteurs_et_organes.d.ts +1 -0
  72. package/lib/raw_types/acteurs_et_organes.d.ts.map +1 -0
  73. package/lib/raw_types/agendas.d.ts +1 -0
  74. package/lib/raw_types/agendas.d.ts.map +1 -0
  75. package/lib/raw_types/amendements.d.ts +1 -0
  76. package/lib/raw_types/amendements.d.ts.map +1 -0
  77. package/lib/raw_types/debats.d.ts +1 -0
  78. package/lib/raw_types/debats.d.ts.map +1 -0
  79. package/lib/raw_types/dossiers_legislatifs.d.ts +1 -0
  80. package/lib/raw_types/dossiers_legislatifs.d.ts.map +1 -0
  81. package/lib/raw_types/questions.d.ts +1 -0
  82. package/lib/raw_types/questions.d.ts.map +1 -0
  83. package/lib/raw_types/scrutins.d.ts +1 -0
  84. package/lib/raw_types/scrutins.d.ts.map +1 -0
  85. package/lib/schemas/acteurs_et_organes.d.json +982 -0
  86. package/lib/schemas/agendas.d.json +1561 -0
  87. package/lib/schemas/amendements.d.json +1901 -0
  88. package/lib/schemas/debats.d.json +623 -0
  89. package/lib/schemas/dossiers_legislatifs.d.json +3690 -0
  90. package/lib/schemas/legislatures.d.json +17 -0
  91. package/lib/schemas/questions.d.json +520 -0
  92. package/lib/schemas/scrutins.d.json +517 -0
  93. package/lib/scripts/add_links_to_documents.d.ts +1 -0
  94. package/lib/scripts/add_links_to_documents.d.ts.map +1 -0
  95. package/lib/scripts/clean_reorganized_data.d.ts +1 -0
  96. package/lib/scripts/clean_reorganized_data.d.ts.map +1 -0
  97. package/lib/scripts/copy-schemas.d.ts +1 -0
  98. package/lib/scripts/copy-schemas.d.ts.map +1 -0
  99. package/lib/scripts/diff_amendements.d.ts +1 -0
  100. package/lib/scripts/diff_amendements.d.ts.map +1 -0
  101. package/lib/scripts/document_dossiers_legislatifs.d.ts +1 -0
  102. package/lib/scripts/document_dossiers_legislatifs.d.ts.map +1 -0
  103. package/lib/scripts/generate-json-schemas.d.ts +1 -0
  104. package/lib/scripts/generate-json-schemas.d.ts.map +1 -0
  105. package/lib/scripts/get_today_reunions.d.ts +1 -0
  106. package/lib/scripts/get_today_reunions.d.ts.map +1 -0
  107. package/lib/scripts/merge_scrutins.d.ts +1 -0
  108. package/lib/scripts/merge_scrutins.d.ts.map +1 -0
  109. package/lib/scripts/process_open_dataset.d.ts +1 -0
  110. package/lib/scripts/process_open_dataset.d.ts.map +1 -0
  111. package/lib/scripts/raw_types_from_amendements.d.ts +1 -0
  112. package/lib/scripts/raw_types_from_amendements.d.ts.map +1 -0
  113. package/lib/scripts/reorganize_data.d.ts +1 -0
  114. package/lib/scripts/reorganize_data.d.ts.map +1 -0
  115. package/lib/scripts/retrieve_deputes_photos.d.ts +1 -0
  116. package/lib/scripts/retrieve_deputes_photos.d.ts.map +1 -0
  117. package/lib/scripts/retrieve_documents.d.ts +1 -0
  118. package/lib/scripts/retrieve_documents.d.ts.map +1 -0
  119. package/lib/scripts/retrieve_open_data.d.ts +1 -0
  120. package/lib/scripts/retrieve_open_data.d.ts.map +1 -0
  121. package/lib/scripts/retrieve_pending_amendments.d.ts +1 -0
  122. package/lib/scripts/retrieve_pending_amendments.d.ts.map +1 -0
  123. package/lib/scripts/retrieve_senateurs_photos.d.ts +1 -0
  124. package/lib/scripts/retrieve_senateurs_photos.d.ts.map +1 -0
  125. package/lib/scripts/shared/cli_helpers.d.ts +1 -0
  126. package/lib/scripts/shared/cli_helpers.d.ts.map +1 -0
  127. package/lib/scripts/test_iter_load.d.ts +1 -0
  128. package/lib/scripts/test_iter_load.d.ts.map +1 -0
  129. package/lib/scripts/test_load.d.ts +1 -0
  130. package/lib/scripts/test_load.d.ts.map +1 -0
  131. package/lib/scripts/test_load_big_files.d.ts +1 -0
  132. package/lib/scripts/test_load_big_files.d.ts.map +1 -0
  133. package/lib/scripts/validate_json.d.ts +1 -0
  134. package/lib/scripts/validate_json.d.ts.map +1 -0
  135. package/lib/shared_types/codes_actes.d.ts +1 -0
  136. package/lib/shared_types/codes_actes.d.ts.map +1 -0
  137. package/lib/strings.d.ts +1 -0
  138. package/lib/strings.d.ts.map +1 -0
  139. package/lib/types/acteurs_et_organes.d.ts +1 -0
  140. package/lib/types/acteurs_et_organes.d.ts.map +1 -0
  141. package/lib/types/agendas.d.ts +1 -0
  142. package/lib/types/agendas.d.ts.map +1 -0
  143. package/lib/types/amendements.d.ts +1 -0
  144. package/lib/types/amendements.d.ts.map +1 -0
  145. package/lib/types/debats.d.ts +1 -0
  146. package/lib/types/debats.d.ts.map +1 -0
  147. package/lib/types/dossiers_legislatifs.d.ts +1 -0
  148. package/lib/types/dossiers_legislatifs.d.ts.map +1 -0
  149. package/lib/types/legislatures.d.ts +1 -0
  150. package/lib/types/legislatures.d.ts.map +1 -0
  151. package/lib/types/questions.d.ts +1 -0
  152. package/lib/types/questions.d.ts.map +1 -0
  153. package/lib/types/scrutins.d.ts +1 -0
  154. package/lib/types/scrutins.d.ts.map +1 -0
  155. package/lib/urls.d.ts +1 -0
  156. package/lib/urls.d.ts.map +1 -0
  157. package/package.json +1 -3
  158. package/lib/amendements-79bwpkvR.js +0 -154
  159. package/lib/amendements-CV3s5a0M.js +0 -667
  160. package/lib/loaders-9mHdTl9L.js +0 -4158
  161. package/lib/parse-Ccs6wcUg.js +0 -2512
@@ -0,0 +1,259 @@
1
+ import assert from "node:assert";
2
+ import { A as AvantAApres } from "./amendements-Cg1lyCBp.js";
3
+ const BOOLEAN_MAP = {
4
+ false: false,
5
+ true: true
6
+ };
7
+ const XML_NAMESPACE = "http://schemas.assemblee-nationale.fr/referentiel";
8
+ const XSI_NAMESPACE = "http://www.w3.org/2001/XMLSchema-instance";
9
+ function cleanBooleanAttribute(o, key) {
10
+ const stringValue = o[key];
11
+ if (stringValue === void 0 || stringValue === null) {
12
+ delete o[key];
13
+ return void 0;
14
+ }
15
+ const booleanValue = BOOLEAN_MAP[stringValue];
16
+ assert.notStrictEqual(booleanValue, void 0, `Invalid boolean value: ${key} = ${stringValue}`);
17
+ o[key] = booleanValue;
18
+ return booleanValue;
19
+ }
20
+ function cleanIntegerAttribute(o, key) {
21
+ const stringValue = o[key];
22
+ if (stringValue === void 0 || stringValue === null) {
23
+ delete o[key];
24
+ return void 0;
25
+ }
26
+ const integerValue = Number.parseInt(stringValue);
27
+ assert(!Number.isNaN(integerValue), `Invalid number value: ${key} = ${stringValue}`);
28
+ o[key] = integerValue;
29
+ return integerValue;
30
+ }
31
+ function cleanXmlArtefacts(o) {
32
+ const xmlns = o["@xmlns"] ?? o["xmlns"];
33
+ if (xmlns !== void 0) {
34
+ assert.strictEqual(xmlns, XML_NAMESPACE);
35
+ delete o["@xmlns"];
36
+ delete o["xmlns"];
37
+ }
38
+ if (o["@xmlns:xsi"] === XSI_NAMESPACE) {
39
+ delete o["@xmlns:xsi"];
40
+ }
41
+ for (const key in o) {
42
+ const value = o[key];
43
+ if (value === null) {
44
+ delete o[key];
45
+ continue;
46
+ }
47
+ if (value === void 0)
48
+ continue;
49
+ if (value["@xsi:nil"] === "true" || Array.isArray(value) && value.length === 0 || !Array.isArray(value) && value.constructor === Object && Object.keys(value).length === 0) {
50
+ delete o[key];
51
+ }
52
+ }
53
+ }
54
+ function cleanAmendement(amendement) {
55
+ cleanXmlArtefacts(amendement);
56
+ const signataires = amendement.signataires;
57
+ {
58
+ cleanXmlArtefacts(signataires);
59
+ const auteur = signataires.auteur;
60
+ {
61
+ cleanXmlArtefacts(auteur);
62
+ }
63
+ if (signataires.cosignataires !== void 0) {
64
+ const acteurRef = signataires.cosignataires.acteurRef;
65
+ if (Array.isArray(acteurRef)) {
66
+ signataires.cosignatairesRefs = acteurRef;
67
+ } else {
68
+ assert(acteurRef);
69
+ signataires.cosignatairesRefs = [acteurRef];
70
+ }
71
+ delete signataires.cosignataires;
72
+ }
73
+ let libelle = signataires.libelle;
74
+ if (libelle !== void 0) {
75
+ libelle = libelle.split(" ").filter(Boolean).join(" ");
76
+ if (libelle) {
77
+ signataires.libelle = libelle;
78
+ } else {
79
+ delete signataires.libelle;
80
+ }
81
+ }
82
+ }
83
+ const pointeurFragmentTexte = amendement.pointeurFragmentTexte;
84
+ {
85
+ cleanXmlArtefacts(pointeurFragmentTexte);
86
+ const division = pointeurFragmentTexte.division;
87
+ if (division !== void 0) {
88
+ cleanXmlArtefacts(division);
89
+ let avantAApres = division.avant_A_Apres;
90
+ if (avantAApres !== void 0) {
91
+ delete division.avant_A_Apres;
92
+ if (avantAApres === "Après") {
93
+ avantAApres = AvantAApres.Apres;
94
+ }
95
+ division.avantAApres = avantAApres;
96
+ }
97
+ }
98
+ const amendementStandard = pointeurFragmentTexte.amendementStandard;
99
+ if (amendementStandard !== void 0) {
100
+ cleanXmlArtefacts(amendementStandard);
101
+ const alinea = amendementStandard.alinea;
102
+ if (alinea !== void 0) {
103
+ cleanXmlArtefacts(alinea);
104
+ let avantAApres = alinea.avant_A_Apres;
105
+ if (avantAApres !== void 0) {
106
+ delete alinea.avant_A_Apres;
107
+ if (avantAApres === "Après") {
108
+ avantAApres = AvantAApres.Apres;
109
+ } else if (![AvantAApres.A, AvantAApres.Apres, AvantAApres.Avant].includes(avantAApres)) {
110
+ avantAApres = AvantAApres.A;
111
+ }
112
+ alinea.avantAApres = avantAApres;
113
+ }
114
+ pointeurFragmentTexte.alinea = alinea;
115
+ }
116
+ delete pointeurFragmentTexte.amendementStandard;
117
+ }
118
+ }
119
+ const corps = amendement.corps;
120
+ if (corps !== void 0) {
121
+ cleanXmlArtefacts(corps);
122
+ const contenuAuteur = corps.contenuAuteur;
123
+ if (contenuAuteur !== void 0) {
124
+ cleanXmlArtefacts(contenuAuteur);
125
+ const avantAppel = contenuAuteur.avantAppel;
126
+ if (avantAppel !== void 0) {
127
+ cleanXmlArtefacts(avantAppel);
128
+ cleanDispositifAmdtCreditPLF(avantAppel.dispositifAmdtCreditPLF, {
129
+ rectificatif: false
130
+ });
131
+ cleanDispositifAmdtCreditPLF(avantAppel.dispositifAmdtCreditPLFR, {
132
+ rectificatif: true
133
+ });
134
+ if (Object.keys(avantAppel).length === 0) {
135
+ delete contenuAuteur.avantAppel;
136
+ }
137
+ }
138
+ assert.strictEqual(contenuAuteur.annexeExposeSommaire, void 0);
139
+ cleanDispositifAmdtCreditPLF(contenuAuteur.dispositifAmdtCreditPLF, {
140
+ rectificatif: false
141
+ });
142
+ cleanDispositifAmdtCreditPLF(contenuAuteur.dispositifAmdtCreditPLFR, {
143
+ rectificatif: true
144
+ });
145
+ }
146
+ }
147
+ const cycleDeVie = amendement.cycleDeVie;
148
+ if (cycleDeVie !== void 0) {
149
+ cleanXmlArtefacts(cycleDeVie);
150
+ const etatDesTraitements = cycleDeVie.etatDesTraitements;
151
+ {
152
+ cleanXmlArtefacts(etatDesTraitements);
153
+ const etat = etatDesTraitements.etat;
154
+ {
155
+ cleanXmlArtefacts(etat);
156
+ }
157
+ const sousEtat = etatDesTraitements.sousEtat;
158
+ if (sousEtat !== void 0) {
159
+ cleanXmlArtefacts(sousEtat);
160
+ }
161
+ }
162
+ }
163
+ if (amendement.representations !== void 0) {
164
+ const representation = amendement.representations.representation;
165
+ assert(!Array.isArray(representation));
166
+ amendement.representation = representation;
167
+ delete amendement.representations;
168
+ {
169
+ cleanXmlArtefacts(representation);
170
+ assert.strictEqual(representation.repSource, void 0);
171
+ assert.strictEqual(representation.offset, void 0);
172
+ assert.strictEqual(representation.dateDispoRepresentation, void 0);
173
+ const statutRepresentation = representation.statutRepresentation;
174
+ {
175
+ cleanBooleanAttribute(statutRepresentation, "canonique");
176
+ cleanBooleanAttribute(statutRepresentation, "enregistrement");
177
+ cleanBooleanAttribute(statutRepresentation, "officielle");
178
+ cleanBooleanAttribute(statutRepresentation, "transcription");
179
+ cleanBooleanAttribute(statutRepresentation, "verbatim");
180
+ }
181
+ }
182
+ }
183
+ const loiReference = amendement.loiReference;
184
+ if (loiReference !== void 0) {
185
+ cleanXmlArtefacts(loiReference);
186
+ }
187
+ const discussionCommune = amendement.discussionCommune;
188
+ if (discussionCommune !== void 0) {
189
+ cleanXmlArtefacts(discussionCommune);
190
+ }
191
+ const discussionIdentique = amendement.discussionIdentique;
192
+ if (discussionIdentique !== void 0) {
193
+ cleanXmlArtefacts(discussionIdentique);
194
+ }
195
+ }
196
+ function cleanDispositifAmdtCreditPLF(dispositifAmdtCreditPLF, { rectificatif }) {
197
+ if (dispositifAmdtCreditPLF !== void 0) {
198
+ const listeProgrammes = dispositifAmdtCreditPLF.listeProgrammes?.programme;
199
+ if (listeProgrammes !== void 0) {
200
+ if (Array.isArray(listeProgrammes)) {
201
+ dispositifAmdtCreditPLF.listeProgrammes = listeProgrammes;
202
+ } else {
203
+ assert(listeProgrammes);
204
+ dispositifAmdtCreditPLF.listeProgrammes = [listeProgrammes];
205
+ }
206
+ for (const programme of dispositifAmdtCreditPLF.listeProgrammes) {
207
+ cleanXmlArtefacts(programme);
208
+ if (programme.lignesCredits !== void 0) {
209
+ let lignesCredits = programme.lignesCredits.ligneCredit;
210
+ if (lignesCredits === void 0) {
211
+ delete programme.lignesCredits;
212
+ } else {
213
+ if (!Array.isArray(lignesCredits)) {
214
+ assert(lignesCredits);
215
+ lignesCredits = [lignesCredits];
216
+ }
217
+ programme.lignesCredits = lignesCredits;
218
+ }
219
+ if (lignesCredits !== void 0) {
220
+ for (const ligneCredit of lignesCredits) {
221
+ if (rectificatif) {
222
+ cleanLigneCreditPLFR(ligneCredit);
223
+ } else {
224
+ cleanXmlArtefacts(ligneCredit);
225
+ }
226
+ }
227
+ }
228
+ }
229
+ }
230
+ }
231
+ }
232
+ }
233
+ function cleanLigneCreditPLFR(ligneCreditPLFR) {
234
+ cleanXmlArtefacts(ligneCreditPLFR);
235
+ if (ligneCreditPLFR.lignesCredits !== void 0) {
236
+ let lignesCredits = ligneCreditPLFR.lignesCredits.ligneCredit;
237
+ if (lignesCredits === void 0) {
238
+ delete ligneCreditPLFR.lignesCredits;
239
+ } else {
240
+ if (!Array.isArray(lignesCredits)) {
241
+ assert(lignesCredits);
242
+ lignesCredits = [lignesCredits];
243
+ }
244
+ ligneCreditPLFR.lignesCredits = lignesCredits;
245
+ }
246
+ if (lignesCredits !== void 0) {
247
+ for (const ligneCredit of lignesCredits) {
248
+ cleanLigneCreditPLFR(ligneCredit);
249
+ }
250
+ }
251
+ }
252
+ }
253
+ export {
254
+ cleanBooleanAttribute as a,
255
+ cleanIntegerAttribute as b,
256
+ cleanXmlArtefacts as c,
257
+ cleanAmendement as d
258
+ };
259
+ //# sourceMappingURL=amendements-CN7bRFdP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amendements-CN7bRFdP.js","sources":["../src/cleaners/xml.js","../src/cleaners/amendements.js"],"sourcesContent":["import assert from \"node:assert\";\n// Move constant to module scope to avoid recreation\nconst BOOLEAN_MAP = {\n false: false,\n true: true,\n};\nconst XML_NAMESPACE = \"http://schemas.assemblee-nationale.fr/referentiel\";\nconst XSI_NAMESPACE = \"http://www.w3.org/2001/XMLSchema-instance\";\nexport function cleanBooleanAttribute(o, key) {\n const stringValue = o[key];\n if (stringValue === undefined || stringValue === null) {\n delete o[key];\n return undefined;\n }\n const booleanValue = BOOLEAN_MAP[stringValue];\n assert.notStrictEqual(booleanValue, undefined, `Invalid boolean value: ${key} = ${stringValue}`);\n o[key] = booleanValue;\n return booleanValue;\n}\nexport function cleanIntegerAttribute(o, key) {\n const stringValue = o[key];\n if (stringValue === undefined || stringValue === null) {\n delete o[key];\n return undefined;\n }\n const integerValue = Number.parseInt(stringValue);\n assert(!Number.isNaN(integerValue), `Invalid number value: ${key} = ${stringValue}`);\n o[key] = integerValue;\n return integerValue;\n}\n/// Remove XML fields that have no use in JSON.\nexport function cleanXmlArtefacts(o) {\n // Optimize namespace checks with direct property access\n const xmlns = o[\"@xmlns\"] ?? o[\"xmlns\"];\n if (xmlns !== undefined) {\n assert.strictEqual(xmlns, XML_NAMESPACE);\n delete o[\"@xmlns\"];\n delete o[\"xmlns\"];\n }\n if (o[\"@xmlns:xsi\"] === XSI_NAMESPACE) {\n delete o[\"@xmlns:xsi\"];\n }\n // Optimize empty checks with direct property access\n for (const key in o) {\n const value = o[key];\n if (value === null) {\n delete o[key];\n continue;\n }\n if (value === undefined)\n continue;\n if (value[\"@xsi:nil\"] === \"true\" ||\n (Array.isArray(value) && value.length === 0) ||\n (!Array.isArray(value) &&\n value.constructor === Object &&\n Object.keys(value).length === 0)) {\n delete o[key];\n }\n }\n}\n//# sourceMappingURL=xml.js.map","import assert from \"node:assert\";\nimport { cleanBooleanAttribute, cleanXmlArtefacts } from \"./xml\";\nimport { AvantAApres } from \"../types/amendements\";\nexport function cleanAmendement(amendement) {\n cleanXmlArtefacts(amendement);\n const signataires = amendement.signataires;\n {\n cleanXmlArtefacts(signataires);\n const auteur = signataires.auteur;\n {\n cleanXmlArtefacts(auteur);\n }\n if (signataires.cosignataires !== undefined) {\n const acteurRef = signataires.cosignataires.acteurRef;\n if (Array.isArray(acteurRef)) {\n signataires.cosignatairesRefs = acteurRef;\n }\n else {\n assert(acteurRef);\n signataires.cosignatairesRefs = [acteurRef];\n }\n delete signataires.cosignataires;\n }\n let libelle = signataires.libelle;\n if (libelle !== undefined) {\n libelle = libelle.split(\" \").filter(Boolean).join(\" \");\n if (libelle) {\n signataires.libelle = libelle;\n }\n else {\n delete signataires.libelle;\n }\n }\n }\n const pointeurFragmentTexte = amendement.pointeurFragmentTexte;\n {\n cleanXmlArtefacts(pointeurFragmentTexte);\n const division = pointeurFragmentTexte.division;\n if (division !== undefined) {\n cleanXmlArtefacts(division);\n let avantAApres = division.avant_A_Apres;\n if (avantAApres !== undefined) {\n delete division.avant_A_Apres;\n if (avantAApres === \"Après\") {\n avantAApres = AvantAApres.Apres;\n }\n division.avantAApres = avantAApres;\n }\n }\n const amendementStandard = pointeurFragmentTexte.amendementStandard;\n if (amendementStandard !== undefined) {\n cleanXmlArtefacts(amendementStandard);\n const alinea = amendementStandard.alinea;\n if (alinea !== undefined) {\n cleanXmlArtefacts(alinea);\n let avantAApres = alinea.avant_A_Apres;\n if (avantAApres !== undefined) {\n delete alinea.avant_A_Apres;\n if (avantAApres === \"Après\") {\n avantAApres = AvantAApres.Apres;\n }\n else if (![AvantAApres.A, AvantAApres.Apres, AvantAApres.Avant].includes(avantAApres)) {\n avantAApres = AvantAApres.A;\n }\n alinea.avantAApres = avantAApres;\n }\n pointeurFragmentTexte.alinea = alinea;\n }\n delete pointeurFragmentTexte.amendementStandard;\n }\n }\n const corps = amendement.corps;\n if (corps !== undefined) {\n cleanXmlArtefacts(corps);\n const contenuAuteur = corps.contenuAuteur;\n if (contenuAuteur !== undefined) {\n cleanXmlArtefacts(contenuAuteur);\n const avantAppel = contenuAuteur.avantAppel;\n if (avantAppel !== undefined) {\n cleanXmlArtefacts(avantAppel);\n cleanDispositifAmdtCreditPLF(avantAppel.dispositifAmdtCreditPLF, {\n rectificatif: false,\n });\n cleanDispositifAmdtCreditPLF(avantAppel.dispositifAmdtCreditPLFR, {\n rectificatif: true,\n });\n if (Object.keys(avantAppel).length === 0) {\n delete contenuAuteur.avantAppel;\n }\n }\n assert.strictEqual(contenuAuteur.annexeExposeSommaire, undefined);\n cleanDispositifAmdtCreditPLF(contenuAuteur.dispositifAmdtCreditPLF, {\n rectificatif: false,\n });\n cleanDispositifAmdtCreditPLF(contenuAuteur.dispositifAmdtCreditPLFR, {\n rectificatif: true,\n });\n }\n }\n const cycleDeVie = amendement.cycleDeVie;\n if (cycleDeVie !== undefined) {\n cleanXmlArtefacts(cycleDeVie);\n const etatDesTraitements = cycleDeVie.etatDesTraitements;\n {\n cleanXmlArtefacts(etatDesTraitements);\n const etat = etatDesTraitements.etat;\n {\n cleanXmlArtefacts(etat);\n }\n const sousEtat = etatDesTraitements.sousEtat;\n if (sousEtat !== undefined) {\n cleanXmlArtefacts(sousEtat);\n }\n }\n }\n if (amendement.representations !== undefined) {\n const representation = amendement.representations.representation;\n assert(!Array.isArray(representation));\n amendement.representation = representation;\n delete amendement.representations;\n {\n cleanXmlArtefacts(representation);\n assert.strictEqual(representation.repSource, undefined);\n assert.strictEqual(representation.offset, undefined);\n assert.strictEqual(representation.dateDispoRepresentation, undefined);\n const statutRepresentation = representation.statutRepresentation;\n {\n cleanBooleanAttribute(statutRepresentation, \"canonique\");\n cleanBooleanAttribute(statutRepresentation, \"enregistrement\");\n cleanBooleanAttribute(statutRepresentation, \"officielle\");\n cleanBooleanAttribute(statutRepresentation, \"transcription\");\n cleanBooleanAttribute(statutRepresentation, \"verbatim\");\n }\n }\n }\n const loiReference = amendement.loiReference;\n if (loiReference !== undefined) {\n cleanXmlArtefacts(loiReference);\n }\n const discussionCommune = amendement.discussionCommune;\n if (discussionCommune !== undefined) {\n cleanXmlArtefacts(discussionCommune);\n }\n const discussionIdentique = amendement.discussionIdentique;\n if (discussionIdentique !== undefined) {\n cleanXmlArtefacts(discussionIdentique);\n }\n}\nfunction cleanDispositifAmdtCreditPLF(dispositifAmdtCreditPLF, { rectificatif }) {\n if (dispositifAmdtCreditPLF !== undefined) {\n const listeProgrammes = dispositifAmdtCreditPLF.listeProgrammes?.programme;\n if (listeProgrammes !== undefined) {\n if (Array.isArray(listeProgrammes)) {\n dispositifAmdtCreditPLF.listeProgrammes = listeProgrammes;\n }\n else {\n assert(listeProgrammes);\n dispositifAmdtCreditPLF.listeProgrammes = [listeProgrammes];\n }\n for (const programme of dispositifAmdtCreditPLF.listeProgrammes) {\n cleanXmlArtefacts(programme);\n if (programme.lignesCredits !== undefined) {\n let lignesCredits = programme.lignesCredits.ligneCredit;\n if (lignesCredits === undefined) {\n delete programme.lignesCredits;\n }\n else {\n if (!Array.isArray(lignesCredits)) {\n assert(lignesCredits);\n lignesCredits = [lignesCredits];\n }\n programme.lignesCredits = lignesCredits;\n }\n if (lignesCredits !== undefined) {\n for (const ligneCredit of lignesCredits) {\n if (rectificatif) {\n cleanLigneCreditPLFR(ligneCredit);\n }\n else {\n cleanXmlArtefacts(ligneCredit);\n }\n }\n }\n }\n }\n }\n }\n}\nfunction cleanLigneCreditPLFR(ligneCreditPLFR) {\n cleanXmlArtefacts(ligneCreditPLFR);\n if (ligneCreditPLFR.lignesCredits !== undefined) {\n let lignesCredits = ligneCreditPLFR.lignesCredits.ligneCredit;\n if (lignesCredits === undefined) {\n delete ligneCreditPLFR.lignesCredits;\n }\n else {\n if (!Array.isArray(lignesCredits)) {\n assert(lignesCredits);\n lignesCredits = [lignesCredits];\n }\n ligneCreditPLFR.lignesCredits = lignesCredits;\n }\n if (lignesCredits !== undefined) {\n for (const ligneCredit of lignesCredits) {\n cleanLigneCreditPLFR(ligneCredit);\n }\n }\n }\n}\nexport function cleanTexteLegislatif(texteLegislatif) {\n cleanXmlArtefacts(texteLegislatif);\n // Note: The following fields in `texteLegislatif.amendements` are currently ignored:\n // * \"#text\"?: string;\n // * offset?: null;\n // * nom?: Nom;\n // * avant_A_Apres?: DivisionAvantAApres;\n // * dateDepot?: Date;\n // * documentURI?: string;\n // Because it seems they should belong to an \"amendement\".\n let amendement = texteLegislatif.amendements.amendement;\n if (Array.isArray(amendement)) {\n texteLegislatif.amendements = amendement;\n }\n else {\n assert(amendement);\n texteLegislatif.amendements = [amendement];\n }\n for (const amendement of texteLegislatif.amendements) {\n cleanAmendement(amendement);\n }\n}\n//# sourceMappingURL=amendements.js.map"],"names":[],"mappings":"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"}