@tricoteuses/assemblee 1.10.4 → 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 (275) 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/acteurs_et_organes.d.ts +4 -2
  22. package/lib/raw_types/debats.d.ts +2 -2
  23. package/lib/raw_types/dossiers_legislatifs.d.ts +1 -1
  24. package/lib/schemas/acteurs_et_organes.json +1166 -0
  25. package/lib/schemas/agendas.json +1745 -0
  26. package/lib/schemas/amendements.json +2085 -0
  27. package/lib/schemas/debats.json +842 -0
  28. package/lib/schemas/dossiers_legislatifs.json +3874 -0
  29. package/lib/schemas/legislatures.json +17 -0
  30. package/lib/schemas/questions.json +704 -0
  31. package/lib/schemas/scrutins.json +701 -0
  32. package/lib/scripts/retrieve_deputes_photos.d.ts +1 -1
  33. package/lib/types/acteurs_et_organes.d.ts +344 -2
  34. package/lib/types/agendas.d.ts +236 -10
  35. package/lib/types/amendements.d.ts +276 -1
  36. package/lib/types/debats.d.ts +52 -2
  37. package/lib/types/dossiers_legislatifs.d.ts +403 -9
  38. package/lib/types/questions.d.ts +99 -2
  39. package/lib/types/scrutins.d.ts +101 -0
  40. package/lib/urls.d.ts +2 -2
  41. package/package.json +33 -95
  42. package/lib/api.js +0 -52
  43. package/lib/api.mjs +0 -45
  44. package/lib/bugs/acteur-00010/plugin.test.js +0 -90
  45. package/lib/bugs/acteur-00010/plugin.test.mjs +0 -33
  46. package/lib/bugs/acteur-00010.d.ts +0 -7
  47. package/lib/bugs/acteur-00010.js +0 -116
  48. package/lib/bugs/acteur-00010.mjs +0 -26
  49. package/lib/bugs/agenda-00002/plugin.test.js +0 -124
  50. package/lib/bugs/agenda-00002/plugin.test.mjs +0 -50
  51. package/lib/bugs/agenda-00002.d.ts +0 -15
  52. package/lib/bugs/agenda-00002.js +0 -406
  53. package/lib/bugs/agenda-00002.mjs +0 -172
  54. package/lib/bugs/agenda-00008/plugin.test.js +0 -92
  55. package/lib/bugs/agenda-00008/plugin.test.mjs +0 -31
  56. package/lib/bugs/agenda-00008.d.ts +0 -7
  57. package/lib/bugs/agenda-00008.js +0 -123
  58. package/lib/bugs/agenda-00008.mjs +0 -26
  59. package/lib/bugs/agenda-00011/plugin.test.d.ts +0 -1
  60. package/lib/bugs/agenda-00011/plugin.test.js +0 -263
  61. package/lib/bugs/agenda-00011/plugin.test.mjs +0 -152
  62. package/lib/bugs/agenda-00011.d.ts +0 -16
  63. package/lib/bugs/agenda-00011.js +0 -333
  64. package/lib/bugs/agenda-00011.mjs +0 -125
  65. package/lib/bugs.d.ts +0 -21
  66. package/lib/bugs.js +0 -452
  67. package/lib/bugs.mjs +0 -70
  68. package/lib/cleaners/actes_legislatifs.js +0 -315
  69. package/lib/cleaners/actes_legislatifs.mjs +0 -253
  70. package/lib/cleaners/acteurs.js +0 -265
  71. package/lib/cleaners/acteurs.mjs +0 -180
  72. package/lib/cleaners/amendements.js +0 -294
  73. package/lib/cleaners/amendements.mjs +0 -227
  74. package/lib/cleaners/debats.js +0 -12
  75. package/lib/cleaners/debats.mjs +0 -5
  76. package/lib/cleaners/documents.js +0 -205
  77. package/lib/cleaners/documents.mjs +0 -133
  78. package/lib/cleaners/dossiers_legislatifs.js +0 -131
  79. package/lib/cleaners/dossiers_legislatifs.mjs +0 -70
  80. package/lib/cleaners/index.js +0 -70
  81. package/lib/cleaners/index.mjs +0 -10
  82. package/lib/cleaners/organes.js +0 -65
  83. package/lib/cleaners/organes.mjs +0 -48
  84. package/lib/cleaners/questions.js +0 -12
  85. package/lib/cleaners/questions.mjs +0 -5
  86. package/lib/cleaners/reunions.js +0 -312
  87. package/lib/cleaners/reunions.mjs +0 -255
  88. package/lib/cleaners/scrutins.js +0 -340
  89. package/lib/cleaners/scrutins.mjs +0 -221
  90. package/lib/cleaners/xml.js +0 -95
  91. package/lib/cleaners/xml.mjs +0 -58
  92. package/lib/datasets.js +0 -837
  93. package/lib/datasets.mjs +0 -755
  94. package/lib/dates.js +0 -124
  95. package/lib/dates.mjs +0 -100
  96. package/lib/dossiers_legislatifs.js +0 -346
  97. package/lib/dossiers_legislatifs.mjs +0 -208
  98. package/lib/file_systems.js +0 -162
  99. package/lib/file_systems.mjs +0 -62
  100. package/lib/git.js +0 -223
  101. package/lib/git.mjs +0 -151
  102. package/lib/index.mjs +0 -17
  103. package/lib/inserters.js +0 -521
  104. package/lib/inserters.mjs +0 -337
  105. package/lib/loaders.mjs +0 -886
  106. package/lib/logger.js +0 -35
  107. package/lib/logger.mjs +0 -26
  108. package/lib/organes.js +0 -22
  109. package/lib/organes.mjs +0 -15
  110. package/lib/parsers/documents.d.ts +0 -62
  111. package/lib/parsers/documents.js +0 -453
  112. package/lib/parsers/documents.mjs +0 -370
  113. package/lib/parsers/index.js +0 -40
  114. package/lib/parsers/index.mjs +0 -4
  115. package/lib/parsers/recherche_amendements.js +0 -403
  116. package/lib/parsers/recherche_amendements.mjs +0 -167
  117. package/lib/parsers/textes_lois.js +0 -307
  118. package/lib/parsers/textes_lois.mjs +0 -264
  119. package/lib/raw_types/acteurs_et_organes.js +0 -1213
  120. package/lib/raw_types/acteurs_et_organes.mjs +0 -1146
  121. package/lib/raw_types/agendas.js +0 -777
  122. package/lib/raw_types/agendas.mjs +0 -724
  123. package/lib/raw_types/amendements.js +0 -1052
  124. package/lib/raw_types/amendements.mjs +0 -993
  125. package/lib/raw_types/debats.js +0 -630
  126. package/lib/raw_types/debats.mjs +0 -573
  127. package/lib/raw_types/dossiers_legislatifs.js +0 -1529
  128. package/lib/raw_types/dossiers_legislatifs.mjs +0 -1471
  129. package/lib/raw_types/questions.js +0 -469
  130. package/lib/raw_types/questions.mjs +0 -416
  131. package/lib/raw_types/scrutins.js +0 -651
  132. package/lib/raw_types/scrutins.mjs +0 -598
  133. package/lib/schemas/acteur/Acteur.json +0 -56
  134. package/lib/schemas/acteur/AdresseElectronique.json +0 -52
  135. package/lib/schemas/acteur/AdressePostale.json +0 -75
  136. package/lib/schemas/acteur/Civ.json +0 -14
  137. package/lib/schemas/acteur/Collaborateur.json +0 -29
  138. package/lib/schemas/acteur/EtatCivil.json +0 -51
  139. package/lib/schemas/acteur/Ident.json +0 -40
  140. package/lib/schemas/acteur/Lieu.json +0 -66
  141. package/lib/schemas/acteur/Mandat.json +0 -192
  142. package/lib/schemas/acteur/Profession.json +0 -46
  143. package/lib/schemas/agenda/Agenda.json +0 -318
  144. package/lib/schemas/agenda/CycleDeVie.json +0 -45
  145. package/lib/schemas/agenda/PointOdj.json +0 -82
  146. package/lib/schemas/amendement/Amendement.json +0 -246
  147. package/lib/schemas/amendement/Diff.json +0 -25
  148. package/lib/schemas/amendement/DispositifAmdtCredit.json +0 -85
  149. package/lib/schemas/amendement/Identifiant.json +0 -62
  150. package/lib/schemas/amendement/PointeurFragmentTexte.json +0 -127
  151. package/lib/schemas/amendement/Representation.json +0 -67
  152. package/lib/schemas/amendement/Total.json +0 -26
  153. package/lib/schemas/converted_from_type/acteurs_et_organes.json +0 -666
  154. package/lib/schemas/converted_from_type/agendas.json +0 -1100
  155. package/lib/schemas/converted_from_type/amendements.json +0 -3191
  156. package/lib/schemas/converted_from_type/debats.json +0 -682
  157. package/lib/schemas/converted_from_type/deputes.json +0 -26
  158. package/lib/schemas/converted_from_type/dossiers_legislatifs.json +0 -2918
  159. package/lib/schemas/converted_from_type/legislatures.json +0 -16
  160. package/lib/schemas/converted_from_type/questions.json +0 -328
  161. package/lib/schemas/converted_from_type/scrutins.json +0 -393
  162. package/lib/schemas/debat/Contenu.json +0 -75
  163. package/lib/schemas/debat/Debat.json +0 -40
  164. package/lib/schemas/debat/Metadonnees.json +0 -75
  165. package/lib/schemas/debat/Orateur.json +0 -60
  166. package/lib/schemas/debat/Point.json +0 -169
  167. package/lib/schemas/debat/Sommaire.json +0 -71
  168. package/lib/schemas/debat/SommaireElement.json +0 -108
  169. package/lib/schemas/debat/Texte.json +0 -34
  170. package/lib/schemas/document/CodeLibelle.json +0 -25
  171. package/lib/schemas/document/Document.json +0 -385
  172. package/lib/schemas/document/Indexation.json +0 -38
  173. package/lib/schemas/dossier/ActeLegislatif.json +0 -211
  174. package/lib/schemas/dossier/ActeLegislatifBase.json +0 -62
  175. package/lib/schemas/dossier/Agenda.json +0 -23
  176. package/lib/schemas/dossier/ConseilConstitutionnel.json +0 -35
  177. package/lib/schemas/dossier/Decision.json +0 -25
  178. package/lib/schemas/dossier/Dossier.json +0 -124
  179. package/lib/schemas/dossier/EtudeImpact.json +0 -29
  180. package/lib/schemas/dossier/EtudePlf.json +0 -105
  181. package/lib/schemas/dossier/Europe.json +0 -42
  182. package/lib/schemas/dossier/FamCodeLibelle.json +0 -25
  183. package/lib/schemas/dossier/InfoJO.json +0 -23
  184. package/lib/schemas/dossier/Initiateur.json +0 -36
  185. package/lib/schemas/dossier/Motion.json +0 -27
  186. package/lib/schemas/dossier/Promulgation.json +0 -62
  187. package/lib/schemas/dossier/Rapporteur.json +0 -36
  188. package/lib/schemas/dossier/Texte.json +0 -47
  189. package/lib/schemas/organe/CodeTypeOrgane.json +0 -43
  190. package/lib/schemas/organe/Organe.json +0 -136
  191. package/lib/schemas/organe/ViMoDe.json +0 -28
  192. package/lib/schemas/question/Auteur.json +0 -58
  193. package/lib/schemas/question/Cloture.json +0 -28
  194. package/lib/schemas/question/InfoJO.json +0 -40
  195. package/lib/schemas/question/MinAttribElement.json +0 -30
  196. package/lib/schemas/question/Question.json +0 -172
  197. package/lib/schemas/question/Renouvellement.json +0 -17
  198. package/lib/schemas/question/Signalement.json +0 -21
  199. package/lib/schemas/question/Texte.json +0 -24
  200. package/lib/schemas/scrutin/DecompteVoix.json +0 -35
  201. package/lib/schemas/scrutin/Dysfonctionnement.json +0 -50
  202. package/lib/schemas/scrutin/MiseAuPoint.json +0 -53
  203. package/lib/schemas/scrutin/OrganeVotant.json +0 -88
  204. package/lib/schemas/scrutin/Scrutin.json +0 -187
  205. package/lib/schemas/scrutin/Votant.json +0 -37
  206. package/lib/scripts/bugs_helper.d.ts +0 -13
  207. package/lib/scripts/bugs_helper.js +0 -595
  208. package/lib/scripts/bugs_helper.mjs +0 -251
  209. package/lib/scripts/clean_reorganized_data.js +0 -610
  210. package/lib/scripts/clean_reorganized_data.mjs +0 -273
  211. package/lib/scripts/diff_amendements.js +0 -249
  212. package/lib/scripts/diff_amendements.mjs +0 -202
  213. package/lib/scripts/document_dossiers_legislatifs.js +0 -655
  214. package/lib/scripts/document_dossiers_legislatifs.mjs +0 -414
  215. package/lib/scripts/get_today_reunions.js +0 -37
  216. package/lib/scripts/get_today_reunions.mjs +0 -31
  217. package/lib/scripts/merge_scrutins.js +0 -97
  218. package/lib/scripts/merge_scrutins.mjs +0 -47
  219. package/lib/scripts/parse_textes_lois.d.ts +0 -1
  220. package/lib/scripts/parse_textes_lois.js +0 -171
  221. package/lib/scripts/parse_textes_lois.mjs +0 -140
  222. package/lib/scripts/process_open_dataset.js +0 -301
  223. package/lib/scripts/process_open_dataset.mjs +0 -134
  224. package/lib/scripts/raw_types_from_amendements.js +0 -135
  225. package/lib/scripts/raw_types_from_amendements.mjs +0 -134
  226. package/lib/scripts/reorganize_data.js +0 -805
  227. package/lib/scripts/reorganize_data.mjs +0 -517
  228. package/lib/scripts/retrieve_deputes_photos.js +0 -310
  229. package/lib/scripts/retrieve_deputes_photos.mjs +0 -158
  230. package/lib/scripts/retrieve_documents.js +0 -547
  231. package/lib/scripts/retrieve_documents.mjs +0 -242
  232. package/lib/scripts/retrieve_open_data.js +0 -107
  233. package/lib/scripts/retrieve_open_data.mjs +0 -26
  234. package/lib/scripts/retrieve_pending_amendments.js +0 -206
  235. package/lib/scripts/retrieve_pending_amendments.mjs +0 -57
  236. package/lib/scripts/retrieve_senateurs_photos.js +0 -234
  237. package/lib/scripts/retrieve_senateurs_photos.mjs +0 -116
  238. package/lib/scripts/retrieve_textes_lois.d.ts +0 -1
  239. package/lib/scripts/retrieve_textes_lois.js +0 -240
  240. package/lib/scripts/retrieve_textes_lois.mjs +0 -85
  241. package/lib/scripts/shared/cli_helpers.js +0 -89
  242. package/lib/scripts/shared/cli_helpers.mjs +0 -81
  243. package/lib/scripts/test_iter_load.js +0 -155
  244. package/lib/scripts/test_iter_load.mjs +0 -72
  245. package/lib/scripts/test_load.js +0 -26
  246. package/lib/scripts/test_load.mjs +0 -16
  247. package/lib/scripts/test_load_big_files.js +0 -26
  248. package/lib/scripts/test_load_big_files.mjs +0 -16
  249. package/lib/scripts/validate_json.js +0 -353
  250. package/lib/scripts/validate_json.mjs +0 -184
  251. package/lib/shared_types/codes_actes.js +0 -231
  252. package/lib/shared_types/codes_actes.mjs +0 -224
  253. package/lib/strings.js +0 -16
  254. package/lib/strings.mjs +0 -7
  255. package/lib/types/acteurs_et_organes.js +0 -963
  256. package/lib/types/acteurs_et_organes.mjs +0 -904
  257. package/lib/types/agendas.js +0 -628
  258. package/lib/types/agendas.mjs +0 -575
  259. package/lib/types/amendements.js +0 -899
  260. package/lib/types/amendements.mjs +0 -842
  261. package/lib/types/debats.js +0 -619
  262. package/lib/types/debats.mjs +0 -562
  263. package/lib/types/dossiers_legislatifs.js +0 -1188
  264. package/lib/types/dossiers_legislatifs.mjs +0 -1130
  265. package/lib/types/legislatures.js +0 -17
  266. package/lib/types/legislatures.mjs +0 -10
  267. package/lib/types/questions.js +0 -454
  268. package/lib/types/questions.mjs +0 -401
  269. package/lib/types/scrutins.js +0 -556
  270. package/lib/types/scrutins.mjs +0 -503
  271. package/lib/urls.js +0 -325
  272. package/lib/urls.mjs +0 -258
  273. /package/lib/{bugs/acteur-00010/plugin.test.d.ts → scripts/add_links_to_documents.d.ts} +0 -0
  274. /package/lib/{bugs/agenda-00002/plugin.test.d.ts → scripts/copy-schemas.d.ts} +0 -0
  275. /package/lib/{bugs/agenda-00008/plugin.test.d.ts → scripts/generate-json-schemas.d.ts} +0 -0
@@ -1,95 +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.cleanBooleanAttribute = cleanBooleanAttribute;
21
- exports.cleanIntegerAttribute = cleanIntegerAttribute;
22
- exports.cleanXmlArtefacts = cleanXmlArtefacts;
23
- require("core-js/modules/es.array.concat.js");
24
- require("core-js/modules/es.array.is-array.js");
25
- require("core-js/modules/es.object.entries.js");
26
- require("core-js/modules/es.object.keys.js");
27
- require("core-js/modules/es.parse-int.js");
28
- var _assert = _interopRequireDefault(require("assert"));
29
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
30
- function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
31
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
32
- 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; } }
33
- 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; }
34
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
35
- function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
36
- var booleanByString = {
37
- "false": false,
38
- "true": true
39
- };
40
- function cleanBooleanAttribute(o, key) {
41
- var stringValue = o[key];
42
- if (stringValue === undefined || stringValue === null) {
43
- delete o[key];
44
- return undefined;
45
- }
46
- var booleanValue = booleanByString[stringValue];
47
- _assert["default"].notStrictEqual(booleanValue, undefined, "Invalid boolean value: ".concat(key, " = ").concat(stringValue));
48
- o[key] = booleanValue;
49
- return booleanValue;
50
- }
51
- function cleanIntegerAttribute(o, key) {
52
- var stringValue = o[key];
53
- if (stringValue === undefined || stringValue === null) {
54
- delete o[key];
55
- return undefined;
56
- }
57
- var integerValue = parseInt(stringValue);
58
- (0, _assert["default"])(!isNaN(integerValue), "Invalid number value: ".concat(key, " = ").concat(stringValue));
59
- o[key] = integerValue;
60
- return integerValue;
61
- }
62
-
63
- /// Remove XML fields that have no use in JSON.
64
- function cleanXmlArtefacts(o) {
65
- // Remove namespaces.
66
- function cleanXmlns(field) {
67
- if (field !== undefined) {
68
- _assert["default"].strictEqual(field, "http://schemas.assemblee-nationale.fr/referentiel");
69
- if (field === o["@xmlns"]) {
70
- delete o["@xmlns"];
71
- } else {
72
- delete o["xmlns"];
73
- }
74
- }
75
- }
76
- cleanXmlns(o["@xmlns"]);
77
- cleanXmlns(o["xmlns"]);
78
- var xmlnsXsi = o["@xmlns:xsi"];
79
- if (xmlnsXsi !== undefined) {
80
- _assert["default"].strictEqual(xmlnsXsi, "http://www.w3.org/2001/XMLSchema-instance");
81
- delete o["@xmlns:xsi"];
82
- }
83
-
84
- // Remove null or empty items.
85
-
86
- for (var _i = 0, _Object$entries = Object.entries(o); _i < _Object$entries.length; _i++) {
87
- var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
88
- key = _Object$entries$_i[0],
89
- value = _Object$entries$_i[1];
90
- if (value === null || value !== undefined && (value["@xsi:nil"] === "true" || Array.isArray(value) && value.length === 0 || value.constructor === Object && Object.keys(value).length === 0)) {
91
- delete o[key];
92
- }
93
- }
94
- }
95
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsIl9zbGljZWRUb0FycmF5IiwiciIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJUeXBlRXJyb3IiLCJhIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0IiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwibGVuZ3RoIiwibiIsImwiLCJTeW1ib2wiLCJpdGVyYXRvciIsImkiLCJ1IiwiZiIsIm8iLCJuZXh0IiwiT2JqZWN0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImlzQXJyYXkiLCJib29sZWFuQnlTdHJpbmciLCJjbGVhbkJvb2xlYW5BdHRyaWJ1dGUiLCJrZXkiLCJzdHJpbmdWYWx1ZSIsInVuZGVmaW5lZCIsImJvb2xlYW5WYWx1ZSIsImFzc2VydCIsIm5vdFN0cmljdEVxdWFsIiwiY29uY2F0IiwiY2xlYW5JbnRlZ2VyQXR0cmlidXRlIiwiaW50ZWdlclZhbHVlIiwicGFyc2VJbnQiLCJpc05hTiIsImNsZWFuWG1sQXJ0ZWZhY3RzIiwiY2xlYW5YbWxucyIsImZpZWxkIiwic3RyaWN0RXF1YWwiLCJ4bWxuc1hzaSIsIl9pIiwiX09iamVjdCRlbnRyaWVzIiwiZW50cmllcyIsIl9PYmplY3QkZW50cmllcyRfaSIsImtleXMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xlYW5lcnMveG1sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5cbmNvbnN0IGJvb2xlYW5CeVN0cmluZzogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gIGZhbHNlOiBmYWxzZSxcbiAgdHJ1ZTogdHJ1ZSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuQm9vbGVhbkF0dHJpYnV0ZShcbiAgbzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAga2V5OiBzdHJpbmcsXG4pOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3RyaW5nVmFsdWUgPSBvW2tleV1cbiAgaWYgKHN0cmluZ1ZhbHVlID09PSB1bmRlZmluZWQgfHwgc3RyaW5nVmFsdWUgPT09IG51bGwpIHtcbiAgICBkZWxldGUgb1trZXldXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG4gIGNvbnN0IGJvb2xlYW5WYWx1ZSA9IGJvb2xlYW5CeVN0cmluZ1tzdHJpbmdWYWx1ZV1cbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIGJvb2xlYW5WYWx1ZSxcbiAgICB1bmRlZmluZWQsXG4gICAgYEludmFsaWQgYm9vbGVhbiB2YWx1ZTogJHtrZXl9ID0gJHtzdHJpbmdWYWx1ZX1gLFxuICApXG4gIG9ba2V5XSA9IGJvb2xlYW5WYWx1ZVxuICByZXR1cm4gYm9vbGVhblZhbHVlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkludGVnZXJBdHRyaWJ1dGUoXG4gIG86IHsgW2tleTogc3RyaW5nXTogYW55IH0sXG4gIGtleTogc3RyaW5nLFxuKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3RyaW5nVmFsdWUgPSBvW2tleV1cbiAgaWYgKHN0cmluZ1ZhbHVlID09PSB1bmRlZmluZWQgfHwgc3RyaW5nVmFsdWUgPT09IG51bGwpIHtcbiAgICBkZWxldGUgb1trZXldXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG4gIGNvbnN0IGludGVnZXJWYWx1ZSA9IHBhcnNlSW50KHN0cmluZ1ZhbHVlKVxuICBhc3NlcnQoIWlzTmFOKGludGVnZXJWYWx1ZSksIGBJbnZhbGlkIG51bWJlciB2YWx1ZTogJHtrZXl9ID0gJHtzdHJpbmdWYWx1ZX1gKVxuICBvW2tleV0gPSBpbnRlZ2VyVmFsdWVcbiAgcmV0dXJuIGludGVnZXJWYWx1ZVxufVxuXG4vLy8gUmVtb3ZlIFhNTCBmaWVsZHMgdGhhdCBoYXZlIG5vIHVzZSBpbiBKU09OLlxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuWG1sQXJ0ZWZhY3RzKG86IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiB2b2lkIHtcbiAgLy8gUmVtb3ZlIG5hbWVzcGFjZXMuXG4gIGZ1bmN0aW9uIGNsZWFuWG1sbnMoZmllbGQ6IGFueSkge1xuICAgIGlmIChmaWVsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBcImh0dHA6Ly9zY2hlbWFzLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvcmVmZXJlbnRpZWxcIixcbiAgICAgIClcbiAgICAgIGlmIChmaWVsZCA9PT0gb1tcIkB4bWxuc1wiXSkge1xuICAgICAgICBkZWxldGUgb1tcIkB4bWxuc1wiXVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIG9bXCJ4bWxuc1wiXVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNsZWFuWG1sbnMob1tcIkB4bWxuc1wiXSlcbiAgY2xlYW5YbWxucyhvW1wieG1sbnNcIl0pXG5cbiAgY29uc3QgeG1sbnNYc2kgPSBvW1wiQHhtbG5zOnhzaVwiXVxuICBpZiAoeG1sbnNYc2kgIT09IHVuZGVmaW5lZCkge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbCh4bWxuc1hzaSwgXCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZVwiKVxuICAgIGRlbGV0ZSBvW1wiQHhtbG5zOnhzaVwiXVxuICB9XG5cbiAgLy8gUmVtb3ZlIG51bGwgb3IgZW1wdHkgaXRlbXMuXG5cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMobykpIHtcbiAgICBpZiAoXG4gICAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgKHZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgKHZhbHVlW1wiQHhzaTpuaWxcIl0gPT09IFwidHJ1ZVwiIHx8XG4gICAgICAgICAgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkgfHxcbiAgICAgICAgICAodmFsdWUuY29uc3RydWN0b3IgPT09IE9iamVjdCAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwKSkpXG4gICAgKSB7XG4gICAgICBkZWxldGUgb1trZXldXG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUEyQixTQUFBRCx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLGdCQUFBQSxDQUFBO0FBQUEsU0FBQUUsZUFBQUMsQ0FBQSxFQUFBSCxDQUFBLFdBQUFJLGVBQUEsQ0FBQUQsQ0FBQSxLQUFBRSxxQkFBQSxDQUFBRixDQUFBLEVBQUFILENBQUEsS0FBQU0sMkJBQUEsQ0FBQUgsQ0FBQSxFQUFBSCxDQUFBLEtBQUFPLGdCQUFBO0FBQUEsU0FBQUEsaUJBQUEsY0FBQUMsU0FBQTtBQUFBLFNBQUFGLDRCQUFBSCxDQUFBLEVBQUFNLENBQUEsUUFBQU4sQ0FBQSwyQkFBQUEsQ0FBQSxTQUFBTyxpQkFBQSxDQUFBUCxDQUFBLEVBQUFNLENBQUEsT0FBQUUsQ0FBQSxNQUFBQyxRQUFBLENBQUFDLElBQUEsQ0FBQVYsQ0FBQSxFQUFBVyxLQUFBLDZCQUFBSCxDQUFBLElBQUFSLENBQUEsQ0FBQVksV0FBQSxLQUFBSixDQUFBLEdBQUFSLENBQUEsQ0FBQVksV0FBQSxDQUFBQyxJQUFBLGFBQUFMLENBQUEsY0FBQUEsQ0FBQSxHQUFBTSxLQUFBLENBQUFDLElBQUEsQ0FBQWYsQ0FBQSxvQkFBQVEsQ0FBQSwrQ0FBQVEsSUFBQSxDQUFBUixDQUFBLElBQUFELGlCQUFBLENBQUFQLENBQUEsRUFBQU0sQ0FBQTtBQUFBLFNBQUFDLGtCQUFBUCxDQUFBLEVBQUFNLENB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
@@ -1,58 +0,0 @@
1
- import assert from "assert";
2
- const booleanByString = {
3
- false: false,
4
- true: true
5
- };
6
- export function cleanBooleanAttribute(o, key) {
7
- const stringValue = o[key];
8
- if (stringValue === undefined || stringValue === null) {
9
- delete o[key];
10
- return undefined;
11
- }
12
- const booleanValue = booleanByString[stringValue];
13
- assert.notStrictEqual(booleanValue, undefined, `Invalid boolean value: ${key} = ${stringValue}`);
14
- o[key] = booleanValue;
15
- return booleanValue;
16
- }
17
- export function cleanIntegerAttribute(o, key) {
18
- const stringValue = o[key];
19
- if (stringValue === undefined || stringValue === null) {
20
- delete o[key];
21
- return undefined;
22
- }
23
- const integerValue = parseInt(stringValue);
24
- assert(!isNaN(integerValue), `Invalid number value: ${key} = ${stringValue}`);
25
- o[key] = integerValue;
26
- return integerValue;
27
- }
28
-
29
- /// Remove XML fields that have no use in JSON.
30
- export function cleanXmlArtefacts(o) {
31
- // Remove namespaces.
32
- function cleanXmlns(field) {
33
- if (field !== undefined) {
34
- assert.strictEqual(field, "http://schemas.assemblee-nationale.fr/referentiel");
35
- if (field === o["@xmlns"]) {
36
- delete o["@xmlns"];
37
- } else {
38
- delete o["xmlns"];
39
- }
40
- }
41
- }
42
- cleanXmlns(o["@xmlns"]);
43
- cleanXmlns(o["xmlns"]);
44
- const xmlnsXsi = o["@xmlns:xsi"];
45
- if (xmlnsXsi !== undefined) {
46
- assert.strictEqual(xmlnsXsi, "http://www.w3.org/2001/XMLSchema-instance");
47
- delete o["@xmlns:xsi"];
48
- }
49
-
50
- // Remove null or empty items.
51
-
52
- for (const [key, value] of Object.entries(o)) {
53
- if (value === null || value !== undefined && (value["@xsi:nil"] === "true" || Array.isArray(value) && value.length === 0 || value.constructor === Object && Object.keys(value).length === 0)) {
54
- delete o[key];
55
- }
56
- }
57
- }
58
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJib29sZWFuQnlTdHJpbmciLCJmYWxzZSIsInRydWUiLCJjbGVhbkJvb2xlYW5BdHRyaWJ1dGUiLCJvIiwia2V5Iiwic3RyaW5nVmFsdWUiLCJ1bmRlZmluZWQiLCJib29sZWFuVmFsdWUiLCJub3RTdHJpY3RFcXVhbCIsImNsZWFuSW50ZWdlckF0dHJpYnV0ZSIsImludGVnZXJWYWx1ZSIsInBhcnNlSW50IiwiaXNOYU4iLCJjbGVhblhtbEFydGVmYWN0cyIsImNsZWFuWG1sbnMiLCJmaWVsZCIsInN0cmljdEVxdWFsIiwieG1sbnNYc2kiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJjb25zdHJ1Y3RvciIsImtleXMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xlYW5lcnMveG1sLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5cbmNvbnN0IGJvb2xlYW5CeVN0cmluZzogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gIGZhbHNlOiBmYWxzZSxcbiAgdHJ1ZTogdHJ1ZSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuQm9vbGVhbkF0dHJpYnV0ZShcbiAgbzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbiAga2V5OiBzdHJpbmcsXG4pOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3RyaW5nVmFsdWUgPSBvW2tleV1cbiAgaWYgKHN0cmluZ1ZhbHVlID09PSB1bmRlZmluZWQgfHwgc3RyaW5nVmFsdWUgPT09IG51bGwpIHtcbiAgICBkZWxldGUgb1trZXldXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG4gIGNvbnN0IGJvb2xlYW5WYWx1ZSA9IGJvb2xlYW5CeVN0cmluZ1tzdHJpbmdWYWx1ZV1cbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIGJvb2xlYW5WYWx1ZSxcbiAgICB1bmRlZmluZWQsXG4gICAgYEludmFsaWQgYm9vbGVhbiB2YWx1ZTogJHtrZXl9ID0gJHtzdHJpbmdWYWx1ZX1gLFxuICApXG4gIG9ba2V5XSA9IGJvb2xlYW5WYWx1ZVxuICByZXR1cm4gYm9vbGVhblZhbHVlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkludGVnZXJBdHRyaWJ1dGUoXG4gIG86IHsgW2tleTogc3RyaW5nXTogYW55IH0sXG4gIGtleTogc3RyaW5nLFxuKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3Qgc3RyaW5nVmFsdWUgPSBvW2tleV1cbiAgaWYgKHN0cmluZ1ZhbHVlID09PSB1bmRlZmluZWQgfHwgc3RyaW5nVmFsdWUgPT09IG51bGwpIHtcbiAgICBkZWxldGUgb1trZXldXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG4gIGNvbnN0IGludGVnZXJWYWx1ZSA9IHBhcnNlSW50KHN0cmluZ1ZhbHVlKVxuICBhc3NlcnQoIWlzTmFOKGludGVnZXJWYWx1ZSksIGBJbnZhbGlkIG51bWJlciB2YWx1ZTogJHtrZXl9ID0gJHtzdHJpbmdWYWx1ZX1gKVxuICBvW2tleV0gPSBpbnRlZ2VyVmFsdWVcbiAgcmV0dXJuIGludGVnZXJWYWx1ZVxufVxuXG4vLy8gUmVtb3ZlIFhNTCBmaWVsZHMgdGhhdCBoYXZlIG5vIHVzZSBpbiBKU09OLlxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuWG1sQXJ0ZWZhY3RzKG86IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiB2b2lkIHtcbiAgLy8gUmVtb3ZlIG5hbWVzcGFjZXMuXG4gIGZ1bmN0aW9uIGNsZWFuWG1sbnMoZmllbGQ6IGFueSkge1xuICAgIGlmIChmaWVsZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBcImh0dHA6Ly9zY2hlbWFzLmFzc2VtYmxlZS1uYXRpb25hbGUuZnIvcmVmZXJlbnRpZWxcIixcbiAgICAgIClcbiAgICAgIGlmIChmaWVsZCA9PT0gb1tcIkB4bWxuc1wiXSkge1xuICAgICAgICBkZWxldGUgb1tcIkB4bWxuc1wiXVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGVsZXRlIG9bXCJ4bWxuc1wiXVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNsZWFuWG1sbnMob1tcIkB4bWxuc1wiXSlcbiAgY2xlYW5YbWxucyhvW1wieG1sbnNcIl0pXG5cbiAgY29uc3QgeG1sbnNYc2kgPSBvW1wiQHhtbG5zOnhzaVwiXVxuICBpZiAoeG1sbnNYc2kgIT09IHVuZGVmaW5lZCkge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbCh4bWxuc1hzaSwgXCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZVwiKVxuICAgIGRlbGV0ZSBvW1wiQHhtbG5zOnhzaVwiXVxuICB9XG5cbiAgLy8gUmVtb3ZlIG51bGwgb3IgZW1wdHkgaXRlbXMuXG5cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMobykpIHtcbiAgICBpZiAoXG4gICAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgKHZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgKHZhbHVlW1wiQHhzaTpuaWxcIl0gPT09IFwidHJ1ZVwiIHx8XG4gICAgICAgICAgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkgfHxcbiAgICAgICAgICAodmFsdWUuY29uc3RydWN0b3IgPT09IE9iamVjdCAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwKSkpXG4gICAgKSB7XG4gICAgICBkZWxldGUgb1trZXldXG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE1BQU0sTUFBTSxRQUFRO0FBRTNCLE1BQU1DLGVBQTJDLEdBQUc7RUFDbERDLEtBQUssRUFBRSxLQUFLO0VBQ1pDLElBQUksRUFBRTtBQUNSLENBQUM7QUFFRCxPQUFPLFNBQVNDLHFCQUFxQkEsQ0FDbkNDLENBQXlCLEVBQ3pCQyxHQUFXLEVB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