@tricoteuses/assemblee 1.9.13 → 1.10.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 (235) hide show
  1. package/README.md +0 -5
  2. package/lib/api.js +1 -1
  3. package/lib/api.mjs +1 -1
  4. package/lib/bugs/acteur-00010/plugin.test.js +5 -5
  5. package/lib/bugs/acteur-00010/plugin.test.mjs +1 -1
  6. package/lib/bugs/acteur-00010.js +17 -18
  7. package/lib/bugs/acteur-00010.mjs +1 -1
  8. package/lib/bugs/agenda-00002/plugin.test.js +6 -6
  9. package/lib/bugs/agenda-00002/plugin.test.mjs +1 -1
  10. package/lib/bugs/agenda-00002.js +31 -32
  11. package/lib/bugs/agenda-00002.mjs +3 -3
  12. package/lib/bugs/agenda-00008/plugin.test.js +5 -5
  13. package/lib/bugs/agenda-00008/plugin.test.mjs +1 -1
  14. package/lib/bugs/agenda-00008.js +17 -18
  15. package/lib/bugs/agenda-00008.mjs +1 -1
  16. package/lib/bugs/agenda-00011/plugin.test.js +10 -10
  17. package/lib/bugs/agenda-00011/plugin.test.mjs +1 -1
  18. package/lib/bugs/agenda-00011.js +28 -29
  19. package/lib/bugs/agenda-00011.mjs +3 -3
  20. package/lib/bugs.js +27 -29
  21. package/lib/bugs.mjs +3 -3
  22. package/lib/cleaners/actes_legislatifs.js +5 -5
  23. package/lib/cleaners/actes_legislatifs.mjs +1 -1
  24. package/lib/cleaners/acteurs.js +5 -5
  25. package/lib/cleaners/acteurs.mjs +1 -1
  26. package/lib/cleaners/amendements.js +5 -5
  27. package/lib/cleaners/amendements.mjs +1 -1
  28. package/lib/cleaners/debats.js +1 -1
  29. package/lib/cleaners/debats.mjs +1 -1
  30. package/lib/cleaners/documents.js +5 -5
  31. package/lib/cleaners/documents.mjs +1 -1
  32. package/lib/cleaners/dossiers_legislatifs.js +5 -5
  33. package/lib/cleaners/dossiers_legislatifs.mjs +1 -1
  34. package/lib/cleaners/index.d.ts +0 -1
  35. package/lib/cleaners/index.js +1 -8
  36. package/lib/cleaners/index.mjs +1 -2
  37. package/lib/cleaners/organes.js +2 -2
  38. package/lib/cleaners/organes.mjs +1 -1
  39. package/lib/cleaners/questions.js +1 -1
  40. package/lib/cleaners/questions.mjs +1 -1
  41. package/lib/cleaners/reunions.js +5 -5
  42. package/lib/cleaners/reunions.mjs +1 -1
  43. package/lib/cleaners/scrutins.js +8 -8
  44. package/lib/cleaners/scrutins.mjs +1 -1
  45. package/lib/cleaners/xml.js +8 -8
  46. package/lib/cleaners/xml.mjs +1 -1
  47. package/lib/datasets.d.ts +1 -13
  48. package/lib/datasets.js +10 -29
  49. package/lib/datasets.mjs +2 -21
  50. package/lib/dates.js +3 -4
  51. package/lib/dates.mjs +1 -1
  52. package/lib/dossiers_legislatifs.js +8 -8
  53. package/lib/dossiers_legislatifs.mjs +1 -1
  54. package/lib/file_systems.js +15 -14
  55. package/lib/file_systems.mjs +3 -3
  56. package/lib/git.js +5 -5
  57. package/lib/git.mjs +1 -1
  58. package/lib/index.d.ts +1 -0
  59. package/lib/index.js +8 -1
  60. package/lib/index.mjs +2 -1
  61. package/lib/inserters.js +4 -4
  62. package/lib/inserters.mjs +1 -1
  63. package/lib/loaders.d.ts +0 -5
  64. package/lib/loaders.js +255 -299
  65. package/lib/loaders.mjs +1 -13
  66. package/lib/logger.js +1 -1
  67. package/lib/logger.mjs +1 -1
  68. package/lib/organes.js +1 -1
  69. package/lib/organes.mjs +1 -1
  70. package/lib/parsers/documents.js +11 -11
  71. package/lib/parsers/documents.mjs +1 -1
  72. package/lib/parsers/index.d.ts +1 -0
  73. package/lib/parsers/index.js +8 -1
  74. package/lib/parsers/index.mjs +2 -1
  75. package/lib/parsers/recherche_amendements.js +17 -15
  76. package/lib/parsers/recherche_amendements.mjs +1 -1
  77. package/lib/parsers/textes_lois.d.ts +22 -15
  78. package/lib/parsers/textes_lois.js +264 -752
  79. package/lib/parsers/textes_lois.mjs +249 -597
  80. package/lib/raw_types/acteurs_et_organes.js +9 -9
  81. package/lib/raw_types/acteurs_et_organes.mjs +1 -1
  82. package/lib/raw_types/agendas.d.ts +1 -0
  83. package/lib/raw_types/agendas.js +11 -10
  84. package/lib/raw_types/agendas.mjs +3 -2
  85. package/lib/raw_types/amendements.js +9 -9
  86. package/lib/raw_types/amendements.mjs +1 -1
  87. package/lib/raw_types/debats.js +9 -9
  88. package/lib/raw_types/debats.mjs +1 -1
  89. package/lib/raw_types/dossiers_legislatifs.js +9 -9
  90. package/lib/raw_types/dossiers_legislatifs.mjs +1 -1
  91. package/lib/raw_types/questions.js +9 -9
  92. package/lib/raw_types/questions.mjs +1 -1
  93. package/lib/raw_types/scrutins.js +9 -9
  94. package/lib/raw_types/scrutins.mjs +1 -1
  95. package/lib/scripts/bugs_helper.js +25 -26
  96. package/lib/scripts/bugs_helper.mjs +3 -3
  97. package/lib/scripts/clean_reorganized_data.js +256 -245
  98. package/lib/scripts/clean_reorganized_data.mjs +18 -29
  99. package/lib/scripts/diff_amendements.js +9 -8
  100. package/lib/scripts/diff_amendements.mjs +1 -1
  101. package/lib/scripts/document_dossiers_legislatifs.js +24 -27
  102. package/lib/scripts/document_dossiers_legislatifs.mjs +3 -3
  103. package/lib/scripts/get_today_reunions.js +3 -2
  104. package/lib/scripts/get_today_reunions.mjs +1 -1
  105. package/lib/scripts/merge_scrutins.js +9 -8
  106. package/lib/scripts/merge_scrutins.mjs +1 -1
  107. package/lib/scripts/parse_textes_lois.js +6 -5
  108. package/lib/scripts/parse_textes_lois.mjs +1 -1
  109. package/lib/scripts/process_open_dataset.d.ts +0 -2
  110. package/lib/scripts/process_open_dataset.js +19 -19
  111. package/lib/scripts/process_open_dataset.mjs +3 -5
  112. package/lib/scripts/raw_types_from_amendements.d.ts +0 -1
  113. package/lib/scripts/raw_types_from_amendements.js +122 -198
  114. package/lib/scripts/raw_types_from_amendements.mjs +105 -60
  115. package/lib/scripts/reorganize_data.js +14 -15
  116. package/lib/scripts/reorganize_data.mjs +3 -3
  117. package/lib/scripts/retrieve_deputes_photos.js +40 -31
  118. package/lib/scripts/retrieve_deputes_photos.mjs +10 -2
  119. package/lib/scripts/retrieve_documents.d.ts +1 -1
  120. package/lib/scripts/retrieve_documents.js +230 -138
  121. package/lib/scripts/retrieve_documents.mjs +87 -38
  122. package/lib/scripts/retrieve_open_data.js +27 -30
  123. package/lib/scripts/retrieve_open_data.mjs +5 -8
  124. package/lib/scripts/retrieve_pending_amendments.js +14 -14
  125. package/lib/scripts/retrieve_pending_amendments.mjs +1 -1
  126. package/lib/scripts/retrieve_senateurs_photos.js +10 -10
  127. package/lib/scripts/retrieve_senateurs_photos.mjs +1 -1
  128. package/lib/scripts/retrieve_textes_lois.js +17 -15
  129. package/lib/scripts/retrieve_textes_lois.mjs +1 -1
  130. package/lib/scripts/shared/cli_helpers.d.ts +11 -0
  131. package/lib/scripts/shared/cli_helpers.js +13 -2
  132. package/lib/scripts/shared/cli_helpers.mjs +12 -1
  133. package/lib/scripts/test_iter_load.js +5 -19
  134. package/lib/scripts/test_iter_load.mjs +2 -9
  135. package/lib/scripts/test_load.js +2 -2
  136. package/lib/scripts/test_load.mjs +1 -1
  137. package/lib/scripts/test_load_big_files.js +2 -2
  138. package/lib/scripts/test_load_big_files.mjs +1 -1
  139. package/lib/scripts/validate_json.js +17 -18
  140. package/lib/scripts/validate_json.mjs +3 -3
  141. package/lib/shared_types/codes_actes.js +1 -1
  142. package/lib/shared_types/codes_actes.mjs +1 -1
  143. package/lib/strings.js +1 -1
  144. package/lib/strings.mjs +1 -1
  145. package/lib/types/acteurs_et_organes.js +9 -9
  146. package/lib/types/acteurs_et_organes.mjs +1 -1
  147. package/lib/types/agendas.d.ts +1 -0
  148. package/lib/types/agendas.js +11 -10
  149. package/lib/types/agendas.mjs +3 -2
  150. package/lib/types/amendements.js +9 -9
  151. package/lib/types/amendements.mjs +1 -1
  152. package/lib/types/debats.js +9 -9
  153. package/lib/types/debats.mjs +1 -1
  154. package/lib/types/dossiers_legislatifs.d.ts +13 -0
  155. package/lib/types/dossiers_legislatifs.js +47 -9
  156. package/lib/types/dossiers_legislatifs.mjs +39 -1
  157. package/lib/types/legislatures.js +1 -1
  158. package/lib/types/legislatures.mjs +1 -1
  159. package/lib/types/questions.js +9 -9
  160. package/lib/types/questions.mjs +1 -1
  161. package/lib/types/scrutins.js +9 -9
  162. package/lib/types/scrutins.mjs +1 -1
  163. package/lib/urls.js +2 -2
  164. package/lib/urls.mjs +1 -1
  165. package/package.json +14 -20
  166. package/lib/cleaners/textes_loi.d.ts +0 -1
  167. package/lib/cleaners/textes_loi.js +0 -12
  168. package/lib/cleaners/textes_loi.mjs +0 -5
  169. package/lib/examples/PIONANR5L15B0020/input.d.ts +0 -2
  170. package/lib/examples/PIONANR5L15B0020/input.js +0 -10
  171. package/lib/examples/PIONANR5L15B0020/input.mjs +0 -193
  172. package/lib/examples/PIONANR5L15B0020/input.ts +0 -193
  173. package/lib/examples/PIONANR5L15B0020/loi.json +0 -26
  174. package/lib/examples/PIONANR5L15B0020/loi_populated.json +0 -29
  175. package/lib/examples/PIONANR5L15B0020/meta.json +0 -28
  176. package/lib/examples/PIONANR5L15B0020/motifs.json +0 -5
  177. package/lib/examples/PIONANR5L15B0020/motifs_populated.json +0 -6
  178. package/lib/examples/PIONANR5L15B0020/sommaire.json +0 -3
  179. package/lib/examples/PRJLANR5L16B0914/input.d.ts +0 -2
  180. package/lib/examples/PRJLANR5L16B0914/input.js +0 -10
  181. package/lib/examples/PRJLANR5L16B0914/input.mjs +0 -322
  182. package/lib/examples/PRJLANR5L16B0914/input.ts +0 -322
  183. package/lib/examples/PRJLANR5L16B0914/loi.json +0 -14
  184. package/lib/examples/PRJLANR5L16B0914/loi_populated.json +0 -20
  185. package/lib/examples/PRJLANR5L16B0914/meta.json +0 -35
  186. package/lib/examples/PRJLANR5L16B0914/motifs.json +0 -4
  187. package/lib/examples/PRJLANR5L16B0914/motifs_populated.json +0 -5
  188. package/lib/examples/PRJLANR5L16B0914/sommaire.json +0 -3
  189. package/lib/examples/PRJLANR5L16B2014/README.md +0 -2
  190. package/lib/examples/PRJLANR5L16B2014/input.d.ts +0 -2
  191. package/lib/examples/PRJLANR5L16B2014/input.js +0 -10
  192. package/lib/examples/PRJLANR5L16B2014/input.mjs +0 -577
  193. package/lib/examples/PRJLANR5L16B2014/input.ts +0 -577
  194. package/lib/examples/PRJLANR5L16B2014/loi.json +0 -369
  195. package/lib/examples/PRJLANR5L16B2014/meta.json +0 -31
  196. package/lib/examples/PRJLANR5L16B2014/motifs.json +0 -5
  197. package/lib/examples/PRJLANR5L16B2014/sommaire.json +0 -51
  198. package/lib/examples/PRJLANR5L16B2424/alineas.json +0 -44
  199. package/lib/examples/PRJLANR5L16B2424/input.d.ts +0 -2
  200. package/lib/examples/PRJLANR5L16B2424/input.js +0 -10
  201. package/lib/examples/PRJLANR5L16B2424/input.mjs +0 -322
  202. package/lib/examples/PRJLANR5L16B2424/input.ts +0 -322
  203. package/lib/examples/PRJLANR5L16B2424/loi.json +0 -74
  204. package/lib/examples/PRJLANR5L16B2424/loi_populated.json +0 -87
  205. package/lib/examples/PRJLANR5L16B2424/meta.json +0 -31
  206. package/lib/examples/PRJLANR5L16B2424/motifs.json +0 -4
  207. package/lib/examples/PRJLANR5L16B2424/motifs_populated.json +0 -5
  208. package/lib/examples/PRJLANR5L16B2424/sommaire.json +0 -3
  209. package/lib/examples/PRJLANR5L16B2462/input.d.ts +0 -2
  210. package/lib/examples/PRJLANR5L16B2462/input.js +0 -10
  211. package/lib/examples/PRJLANR5L16B2462/input.mjs +0 -1308
  212. package/lib/examples/PRJLANR5L16B2462/input.ts +0 -1308
  213. package/lib/examples/PRJLANR5L16B2462/loi.json +0 -74
  214. package/lib/examples/PRJLANR5L16B2462/loi_populated.json +0 -310
  215. package/lib/examples/PRJLANR5L16B2462/meta.json +0 -29
  216. package/lib/examples/PRJLANR5L16B2462/motifs.json +0 -6
  217. package/lib/examples/PRJLANR5L16B2462/motifs_populated.json +0 -6
  218. package/lib/examples/PRJLANR5L16B2462/sommaire.json +0 -50
  219. package/lib/examples/README.md +0 -3
  220. package/lib/raw_types/textes_loi.d.ts +0 -93
  221. package/lib/raw_types/textes_loi.js +0 -429
  222. package/lib/raw_types/textes_loi.mjs +0 -378
  223. package/lib/schemas/texte_loi/Alinea.json +0 -36
  224. package/lib/schemas/texte_loi/ExposeMotifs.json +0 -24
  225. package/lib/schemas/texte_loi/MetaDonnees.json +0 -126
  226. package/lib/schemas/texte_loi/ProjetLoi.json +0 -64
  227. package/lib/schemas/texte_loi/Sommaire.json +0 -48
  228. package/lib/schemas/texte_loi/TexteLoi.json +0 -225
  229. package/lib/schemas/texte_loi/TexteLoiPartiel.json +0 -237
  230. package/lib/scripts/process_textes_loi_dataset.d.ts +0 -7
  231. package/lib/scripts/process_textes_loi_dataset.js +0 -373
  232. package/lib/scripts/process_textes_loi_dataset.mjs +0 -239
  233. package/lib/types/textes_loi.d.ts +0 -94
  234. package/lib/types/textes_loi.js +0 -429
  235. package/lib/types/textes_loi.mjs +0 -378
@@ -1,378 +0,0 @@
1
- // To parse this data:
2
- //
3
- // import { Convert, TextesLoi } from "./file";
4
- //
5
- // const textesLoi = Convert.toTextesLoi(json);
6
- //
7
- // These functions will throw an error if the JSON doesn't
8
- // match the expected interface, even if the JSON is valid.
9
-
10
- export let Cardinal = /*#__PURE__*/function (Cardinal) {
11
- Cardinal["A"] = "A";
12
- Cardinal["B"] = "B";
13
- Cardinal["Bis"] = "bis";
14
- Cardinal["BisA"] = "bis A";
15
- Cardinal["C"] = "C";
16
- Cardinal["CardinalNouveau"] = "(nouveau)";
17
- Cardinal["Empty"] = "";
18
- Cardinal["Er"] = "er";
19
- Cardinal["Nouveau"] = "nouveau";
20
- return Cardinal;
21
- }({});
22
- export let Organe = /*#__PURE__*/function (Organe) {
23
- Organe["Assembl\xE9eNationale"] = "Assembl\xE9e Nationale";
24
- Organe["OrganeAssembl\xE9eNationale"] = "ASSEMBL\xC9E NATIONALE";
25
- return Organe;
26
- }({});
27
- export let Fonction = /*#__PURE__*/function (Fonction) {
28
- Fonction["D\xE9put\xE9"] = "D\xE9put\xE9";
29
- Fonction["D\xE9put\xE9e"] = "D\xE9put\xE9e";
30
- Fonction["Empty"] = "";
31
- return Fonction;
32
- }({});
33
- export let TypeDivision = /*#__PURE__*/function (TypeDivision) {
34
- TypeDivision["Chapitre"] = "Chapitre";
35
- TypeDivision["Titre"] = "Titre";
36
- return TypeDivision;
37
- }({});
38
- export let TypeTexte = /*#__PURE__*/function (TypeTexte) {
39
- TypeTexte["MotionDeCensure"] = "Motion de censure";
40
- TypeTexte["PropositionDeLoi"] = "Proposition de loi";
41
- TypeTexte["PropositionDeLoiConstitutionnelle"] = "PROPOSITION DE LOI CONSTITUTIONNELLE";
42
- TypeTexte["PropositionDeLoiOrganique"] = "PROPOSITION DE LOI ORGANIQUE";
43
- TypeTexte["TypeTexteMotionDeCensure"] = "MOTION DE CENSURE";
44
- TypeTexte["TypeTextePropositionDeLoi"] = "PROPOSITION DE LOI";
45
- return TypeTexte;
46
- }({});
47
-
48
- // Converts JSON strings to/from your types
49
- // and asserts the results of JSON.parse at runtime
50
- export class Convert {
51
- static toTextesLoi(json) {
52
- return cast(JSON.parse(json), r("TextesLoi"));
53
- }
54
- static textesLoiToJson(value) {
55
- return JSON.stringify(uncast(value, r("TextesLoi")), null, 2);
56
- }
57
- }
58
- function invalidValue(typ, val, key, parent = '') {
59
- const prettyTyp = prettyTypeName(typ);
60
- const parentText = parent ? ` on ${parent}` : '';
61
- const keyText = key ? ` for key "${key}"` : '';
62
- throw Error(`Invalid value${keyText}${parentText}. Expected ${prettyTyp} but got ${JSON.stringify(val)}`);
63
- }
64
- function prettyTypeName(typ) {
65
- if (Array.isArray(typ)) {
66
- if (typ.length === 2 && typ[0] === undefined) {
67
- return `an optional ${prettyTypeName(typ[1])}`;
68
- } else {
69
- return `one of [${typ.map(a => {
70
- return prettyTypeName(a);
71
- }).join(", ")}]`;
72
- }
73
- } else if (typeof typ === "object" && typ.literal !== undefined) {
74
- return typ.literal;
75
- } else {
76
- return typeof typ;
77
- }
78
- }
79
- function jsonToJSProps(typ) {
80
- if (typ.jsonToJS === undefined) {
81
- const map = {};
82
- typ.props.forEach(p => map[p.json] = {
83
- key: p.js,
84
- typ: p.typ
85
- });
86
- typ.jsonToJS = map;
87
- }
88
- return typ.jsonToJS;
89
- }
90
- function jsToJSONProps(typ) {
91
- if (typ.jsToJSON === undefined) {
92
- const map = {};
93
- typ.props.forEach(p => map[p.js] = {
94
- key: p.json,
95
- typ: p.typ
96
- });
97
- typ.jsToJSON = map;
98
- }
99
- return typ.jsToJSON;
100
- }
101
- function transform(val, typ, getProps, key = '', parent = '') {
102
- function transformPrimitive(typ, val) {
103
- if (typeof typ === typeof val) return val;
104
- return invalidValue(typ, val, key, parent);
105
- }
106
- function transformUnion(typs, val) {
107
- // val must validate against one typ in typs
108
- const l = typs.length;
109
- for (let i = 0; i < l; i++) {
110
- const typ = typs[i];
111
- try {
112
- return transform(val, typ, getProps);
113
- } catch (_) {}
114
- }
115
- return invalidValue(typs, val, key, parent);
116
- }
117
- function transformEnum(cases, val) {
118
- if (cases.indexOf(val) !== -1) return val;
119
- return invalidValue(cases.map(a => {
120
- return l(a);
121
- }), val, key, parent);
122
- }
123
- function transformArray(typ, val) {
124
- // val must be an array with no invalid elements
125
- if (!Array.isArray(val)) return invalidValue(l("array"), val, key, parent);
126
- return val.map(el => transform(el, typ, getProps));
127
- }
128
- function transformDate(val) {
129
- if (val === null) {
130
- return null;
131
- }
132
- const d = new Date(val);
133
- if (isNaN(d.valueOf())) {
134
- return invalidValue(l("Date"), val, key, parent);
135
- }
136
- return d;
137
- }
138
- function transformObject(props, additional, val) {
139
- if (val === null || typeof val !== "object" || Array.isArray(val)) {
140
- return invalidValue(l(ref || "object"), val, key, parent);
141
- }
142
- const result = {};
143
- Object.getOwnPropertyNames(props).forEach(key => {
144
- const prop = props[key];
145
- const v = Object.prototype.hasOwnProperty.call(val, key) ? val[key] : undefined;
146
- result[prop.key] = transform(v, prop.typ, getProps, key, ref);
147
- });
148
- Object.getOwnPropertyNames(val).forEach(key => {
149
- if (!Object.prototype.hasOwnProperty.call(props, key)) {
150
- result[key] = transform(val[key], additional, getProps, key, ref);
151
- }
152
- });
153
- return result;
154
- }
155
- if (typ === "any") return val;
156
- if (typ === null) {
157
- if (val === null) return val;
158
- return invalidValue(typ, val, key, parent);
159
- }
160
- if (typ === false) return invalidValue(typ, val, key, parent);
161
- let ref = undefined;
162
- while (typeof typ === "object" && typ.ref !== undefined) {
163
- ref = typ.ref;
164
- typ = typeMap[typ.ref];
165
- }
166
- if (Array.isArray(typ)) return transformEnum(typ, val);
167
- if (typeof typ === "object") {
168
- return typ.hasOwnProperty("unionMembers") ? transformUnion(typ.unionMembers, val) : typ.hasOwnProperty("arrayItems") ? transformArray(typ.arrayItems, val) : typ.hasOwnProperty("props") ? transformObject(getProps(typ), typ.additional, val) : invalidValue(typ, val, key, parent);
169
- }
170
- // Numbers can be parsed by Date but shouldn't be.
171
- if (typ === Date && typeof val !== "number") return transformDate(val);
172
- return transformPrimitive(typ, val);
173
- }
174
- function cast(val, typ) {
175
- return transform(val, typ, jsonToJSProps);
176
- }
177
- function uncast(val, typ) {
178
- return transform(val, typ, jsToJSONProps);
179
- }
180
- function l(typ) {
181
- return {
182
- literal: typ
183
- };
184
- }
185
- function a(typ) {
186
- return {
187
- arrayItems: typ
188
- };
189
- }
190
- function u(...typs) {
191
- return {
192
- unionMembers: typs
193
- };
194
- }
195
- function o(props, additional) {
196
- return {
197
- props,
198
- additional
199
- };
200
- }
201
- function r(name) {
202
- return {
203
- ref: name
204
- };
205
- }
206
- const typeMap = {
207
- "TextesLoi": o([{
208
- json: "documentRef",
209
- js: "documentRef",
210
- typ: ""
211
- }, {
212
- json: "titre",
213
- js: "titre",
214
- typ: ""
215
- }, {
216
- json: "organe",
217
- js: "organe",
218
- typ: r("Organe")
219
- }, {
220
- json: "typeTexte",
221
- js: "typeTexte",
222
- typ: r("TypeTexte")
223
- }, {
224
- json: "commission",
225
- js: "commission",
226
- typ: ""
227
- }, {
228
- json: "procedureAcceleree",
229
- js: "procedureAcceleree",
230
- typ: true
231
- }, {
232
- json: "representants",
233
- js: "representants",
234
- typ: r("Representants")
235
- }, {
236
- json: "dateConstitution",
237
- js: "dateConstitution",
238
- typ: Date
239
- }, {
240
- json: "dateDepotAssemblee",
241
- js: "dateDepotAssemblee",
242
- typ: Date
243
- }, {
244
- json: "numeroLegislature",
245
- js: "numeroLegislature",
246
- typ: 0
247
- }, {
248
- json: "numeroTexte",
249
- js: "numeroTexte",
250
- typ: ""
251
- }, {
252
- json: "sommaire",
253
- js: "sommaire",
254
- typ: u(a(r("SommaireElement")), r("PurpleSommaire"))
255
- }, {
256
- json: "contenu",
257
- js: "contenu",
258
- typ: r("Contenu")
259
- }, {
260
- json: "signataires",
261
- js: "signataires",
262
- typ: u(undefined, a(r("Signataire")))
263
- }], false),
264
- "Contenu": o([{
265
- json: "articles",
266
- js: "articles",
267
- typ: a(r("Article"))
268
- }, {
269
- json: "exposeMotifs",
270
- js: "exposeMotifs",
271
- typ: r("ExposeMotifs")
272
- }], false),
273
- "Article": o([{
274
- json: "numeroArticle",
275
- js: "numeroArticle",
276
- typ: 0
277
- }, {
278
- json: "numeroArticles",
279
- js: "numeroArticles",
280
- typ: a("any")
281
- }, {
282
- json: "cardinal",
283
- js: "cardinal",
284
- typ: r("Cardinal")
285
- }, {
286
- json: "parent",
287
- js: "parent",
288
- typ: ""
289
- }, {
290
- json: "nouveau",
291
- js: "nouveau",
292
- typ: true
293
- }, {
294
- json: "titre",
295
- js: "titre",
296
- typ: ""
297
- }, {
298
- json: "alineas",
299
- js: "alineas",
300
- typ: a(r("Alinea"))
301
- }, {
302
- json: "texte",
303
- js: "texte",
304
- typ: ""
305
- }], false),
306
- "Alinea": o([{
307
- json: "numeroAlinea",
308
- js: "numeroAlinea",
309
- typ: 0
310
- }, {
311
- json: "texte",
312
- js: "texte",
313
- typ: ""
314
- }, {
315
- json: "debut",
316
- js: "debut",
317
- typ: u(undefined, "")
318
- }, {
319
- json: "fin",
320
- js: "fin",
321
- typ: u(undefined, "")
322
- }], false),
323
- "ExposeMotifs": o([{
324
- json: "texte",
325
- js: "texte",
326
- typ: ""
327
- }, {
328
- json: "citation",
329
- js: "citation",
330
- typ: u(undefined, "")
331
- }], false),
332
- "Representants": o([{
333
- json: "par",
334
- js: "par",
335
- typ: a(r("Signataire"))
336
- }], false),
337
- "Signataire": o([{
338
- json: "nom",
339
- js: "nom",
340
- typ: ""
341
- }, {
342
- json: "fonction",
343
- js: "fonction",
344
- typ: r("Fonction")
345
- }], false),
346
- "SommaireElement": o([{
347
- json: "typeDivision",
348
- js: "typeDivision",
349
- typ: r("TypeDivision")
350
- }, {
351
- json: "numeroDivision",
352
- js: "numeroDivision",
353
- typ: ""
354
- }, {
355
- json: "sequence",
356
- js: "sequence",
357
- typ: 0
358
- }, {
359
- json: "titre",
360
- js: "titre",
361
- typ: ""
362
- }, {
363
- json: "parent",
364
- js: "parent",
365
- typ: u(undefined, "")
366
- }], false),
367
- "PurpleSommaire": o([{
368
- json: "sommaire",
369
- js: "sommaire",
370
- typ: a("any")
371
- }], false),
372
- "Cardinal": ["A", "B", "bis", "bis A", "C", "(nouveau)", "", "er", "nouveau"],
373
- "Organe": ["Assemblée Nationale", "ASSEMBLÉE NATIONALE"],
374
- "Fonction": ["Député", "Députée", ""],
375
- "TypeDivision": ["Chapitre", "Titre"],
376
- "TypeTexte": ["Motion de censure", "Proposition de loi", "PROPOSITION DE LOI CONSTITUTIONNELLE", "PROPOSITION DE LOI ORGANIQUE", "MOTION DE CENSURE", "PROPOSITION DE LOI"]
377
- };
378
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDYXJkaW5hbCIsIk9yZ2FuZSIsIkZvbmN0aW9uIiwiVHlwZURpdmlzaW9uIiwiVHlwZVRleHRlIiwiQ29udmVydCIsInRvVGV4dGVzTG9pIiwianNvbiIsImNhc3QiLCJKU09OIiwicGFyc2UiLCJyIiwidGV4dGVzTG9pVG9Kc29uIiwidmFsdWUiLCJzdHJpbmdpZnkiLCJ1bmNhc3QiLCJpbnZhbGlkVmFsdWUiLCJ0eXAiLCJ2YWwiLCJrZXkiLCJwYXJlbnQiLCJwcmV0dHlUeXAiLCJwcmV0dHlUeXBlTmFtZSIsInBhcmVudFRleHQiLCJrZXlUZXh0IiwiRXJyb3IiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJtYXAiLCJhIiwiam9pbiIsImxpdGVyYWwiLCJqc29uVG9KU1Byb3BzIiwianNvblRvSlMiLCJwcm9wcyIsImZvckVhY2giLCJwIiwianMiLCJqc1RvSlNPTlByb3BzIiwianNUb0pTT04iLCJ0cmFuc2Zvcm0iLCJnZXRQcm9wcyIsInRyYW5zZm9ybVByaW1pdGl2ZSIsInRyYW5zZm9ybVVuaW9uIiwidHlwcyIsImwiLCJpIiwiXyIsInRyYW5zZm9ybUVudW0iLCJjYXNlcyIsImluZGV4T2YiLCJ0cmFuc2Zvcm1BcnJheSIsImVsIiwidHJhbnNmb3JtRGF0ZSIsImQiLCJEYXRlIiwiaXNOYU4iLCJ2YWx1ZU9mIiwidHJhbnNmb3JtT2JqZWN0IiwiYWRkaXRpb25hbCIsInJlZiIsInJlc3VsdCIsIk9iamVjdCIsImdldE93blByb3BlcnR5TmFtZXMiLCJwcm9wIiwidiIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsInR5cGVNYXAiLCJ1bmlvbk1lbWJlcnMiLCJhcnJheUl0ZW1zIiwidSIsIm8iLCJuYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jhd190eXBlcy90ZXh0ZXNfbG9pLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRvIHBhcnNlIHRoaXMgZGF0YTpcbi8vXG4vLyAgIGltcG9ydCB7IENvbnZlcnQsIFRleHRlc0xvaSB9IGZyb20gXCIuL2ZpbGVcIjtcbi8vXG4vLyAgIGNvbnN0IHRleHRlc0xvaSA9IENvbnZlcnQudG9UZXh0ZXNMb2koanNvbik7XG4vL1xuLy8gVGhlc2UgZnVuY3Rpb25zIHdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIEpTT04gZG9lc24ndFxuLy8gbWF0Y2ggdGhlIGV4cGVjdGVkIGludGVyZmFjZSwgZXZlbiBpZiB0aGUgSlNPTiBpcyB2YWxpZC5cblxuZXhwb3J0IGludGVyZmFjZSBUZXh0ZXNMb2kge1xuICAgIGRvY3VtZW50UmVmOiAgICAgICAgc3RyaW5nO1xuICAgIHRpdHJlOiAgICAgICAgICAgICAgc3RyaW5nO1xuICAgIG9yZ2FuZTogICAgICAgICAgICAgT3JnYW5lO1xuICAgIHR5cGVUZXh0ZTogICAgICAgICAgVHlwZVRleHRlO1xuICAgIGNvbW1pc3Npb246ICAgICAgICAgc3RyaW5nO1xuICAgIHByb2NlZHVyZUFjY2VsZXJlZTogYm9vbGVhbjtcbiAgICByZXByZXNlbnRhbnRzOiAgICAgIFJlcHJlc2VudGFudHM7XG4gICAgZGF0ZUNvbnN0aXR1dGlvbjogICBEYXRlO1xuICAgIGRhdGVEZXBvdEFzc2VtYmxlZTogRGF0ZTtcbiAgICBudW1lcm9MZWdpc2xhdHVyZTogIG51bWJlcjtcbiAgICBudW1lcm9UZXh0ZTogICAgICAgIHN0cmluZztcbiAgICBzb21tYWlyZTogICAgICAgICAgIFNvbW1haXJlRWxlbWVudFtdIHwgUHVycGxlU29tbWFpcmU7XG4gICAgY29udGVudTogICAgICAgICAgICBDb250ZW51O1xuICAgIHNpZ25hdGFpcmVzPzogICAgICAgU2lnbmF0YWlyZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnUge1xuICAgIGFydGljbGVzOiAgICAgQXJ0aWNsZVtdO1xuICAgIGV4cG9zZU1vdGlmczogRXhwb3NlTW90aWZzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFydGljbGUge1xuICAgIG51bWVyb0FydGljbGU6ICBudW1iZXI7XG4gICAgbnVtZXJvQXJ0aWNsZXM6IGFueVtdO1xuICAgIGNhcmRpbmFsOiAgICAgICBDYXJkaW5hbDtcbiAgICBwYXJlbnQ6ICAgICAgICAgc3RyaW5nO1xuICAgIG5vdXZlYXU6ICAgICAgICBib29sZWFuO1xuICAgIHRpdHJlOiAgICAgICAgICBzdHJpbmc7XG4gICAgYWxpbmVhczogICAgICAgIEFsaW5lYVtdO1xuICAgIHRleHRlOiAgICAgICAgICBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWxpbmVhIHtcbiAgICBudW1lcm9BbGluZWE6IG51bWJlcjtcbiAgICB0ZXh0ZTogICAgICAgIHN0cmluZztcbiAgICBkZWJ1dD86ICAgICAgIHN0cmluZztcbiAgICBmaW4/OiAgICAgICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gQ2FyZGluYWwge1xuICAgIEEgPSBcIkFcIixcbiAgICBCID0gXCJCXCIsXG4gICAgQmlzID0gXCJiaXNcIixcbiAgICBCaXNBID0gXCJiaXMgQVwiLFxuICAgIEMgPSBcIkNcIixcbiAgICBDYXJkaW5hbE5vdXZlYXUgPSBcIihub3V2ZWF1KVwiLFxuICAgIEVtcHR5ID0gXCJcIixcbiAgICBFciA9IFwiZXJcIixcbiAgICBOb3V2ZWF1ID0gXCJub3V2ZWF1XCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhwb3NlTW90aWZzIHtcbiAgICB0ZXh0ZTogICAgIHN0cmluZztcbiAgICBjaXRhdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gT3JnYW5lIHtcbiAgICBBc3NlbWJsw6llTmF0aW9uYWxlID0gXCJBc3NlbWJsw6llIE5hdGlvbmFsZVwiLFxuICAgIE9yZ2FuZUFzc2VtYmzDqWVOYXRpb25hbGUgPSBcIkFTU0VNQkzDiUUgTkFUSU9OQUxFXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwcmVzZW50YW50cyB7XG4gICAgcGFyOiBTaWduYXRhaXJlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0YWlyZSB7XG4gICAgbm9tOiAgICAgIHN0cmluZztcbiAgICBmb25jdGlvbjogRm9uY3Rpb247XG59XG5cbmV4cG9ydCBlbnVtIEZvbmN0aW9uIHtcbiAgICBEw6lwdXTDqSA9IFwiRMOpcHV0w6lcIixcbiAgICBEw6lwdXTDqWUgPSBcIkTDqXB1dMOpZVwiLFxuICAgIEVtcHR5ID0gXCJcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb21tYWlyZUVsZW1lbnQge1xuICAgIHR5cGVEaXZpc2lvbjogICBUeXBlRGl2aXNpb247XG4gICAgbnVtZXJvRGl2aXNpb246IHN0cmluZztcbiAgICBzZXF1ZW5jZTogICAgICAgbnVtYmVyO1xuICAgIHRpdHJlOiAgICAgICAgICBzdHJpbmc7XG4gICAgcGFyZW50PzogICAgICAgIHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gVHlwZURpdmlzaW9uIHtcbiAgICBDaGFwaXRyZSA9IFwiQ2hhcGl0cmVcIixcbiAgICBUaXRyZSA9IFwiVGl0cmVcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdXJwbGVTb21tYWlyZSB7XG4gICAgc29tbWFpcmU6IGFueVtdO1xufVxuXG5leHBvcnQgZW51bSBUeXBlVGV4dGUge1xuICAgIE1vdGlvbkRlQ2Vuc3VyZSA9IFwiTW90aW9uIGRlIGNlbnN1cmVcIixcbiAgICBQcm9wb3NpdGlvbkRlTG9pID0gXCJQcm9wb3NpdGlvbiBkZSBsb2lcIixcbiAgICBQcm9wb3NpdGlvbkRlTG9pQ29uc3RpdHV0aW9ubmVsbGUgPSBcIlBST1BPU0lUSU9OIERFIExPSSBDT05TVElUVVRJT05ORUxMRVwiLFxuICAgIFByb3Bvc2l0aW9uRGVMb2lPcmdhbmlxdWUgPSBcIlBST1BPU0lUSU9OIERFIExPSSBPUkdBTklRVUVcIixcbiAgICBUeXBlVGV4dGVNb3Rpb25EZUNlbnN1cmUgPSBcIk1PVElPTiBERSBDRU5TVVJFXCIsXG4gICAgVHlwZVRleHRlUHJvcG9zaXRpb25EZUxvaSA9IFwiUFJPUE9TSVRJT04gREUgTE9JXCIsXG59XG5cbi8vIENvbnZlcnRzIEpTT04gc3RyaW5ncyB0by9mcm9tIHlvdXIgdHlwZXNcbi8vIGFuZCBhc3NlcnRzIHRoZSByZXN1bHRzIG9mIEpTT04ucGFyc2UgYXQgcnVudGltZVxuZXhwb3J0IGNsYXNzIENvbnZlcnQge1xuICAgIHB1YmxpYyBzdGF0aWMgdG9UZXh0ZXNMb2koanNvbjogc3RyaW5nKTogVGV4dGVzTG9pIHtcbiAgICAgICAgcmV0dXJuIGNhc3QoSlNPTi5wYXJzZShqc29uKSwgcihcIlRleHRlc0xvaVwiKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyB0ZXh0ZXNMb2lUb0pzb24odmFsdWU6IFRleHRlc0xvaSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh1bmNhc3QodmFsdWUsIHIoXCJUZXh0ZXNMb2lcIikpLCBudWxsLCAyKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGludmFsaWRWYWx1ZSh0eXA6IGFueSwgdmFsOiBhbnksIGtleTogYW55LCBwYXJlbnQ6IGFueSA9ICcnKTogbmV2ZXIge1xuICAgIGNvbnN0IHByZXR0eVR5cCA9IHByZXR0eVR5cGVOYW1lKHR5cCk7XG4gICAgY29uc3QgcGFyZW50VGV4dCA9IHBhcmVudCA/IGAgb24gJHtwYXJlbnR9YCA6ICcnO1xuICAgIGNvbnN0IGtleVRleHQgPSBrZXkgPyBgIGZvciBrZXkgXCIke2tleX1cImAgOiAnJztcbiAgICB0aHJvdyBFcnJvcihgSW52YWxpZCB2YWx1ZSR7a2V5VGV4dH0ke3BhcmVudFRleHR9LiBFeHBlY3RlZCAke3ByZXR0eVR5cH0gYnV0IGdvdCAke0pTT04uc3RyaW5naWZ5KHZhbCl9YCk7XG59XG5cbmZ1bmN0aW9uIHByZXR0eVR5cGVOYW1lKHR5cDogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0eXApKSB7XG4gICAgICAgIGlmICh0eXAubGVuZ3RoID09PSAyICYmIHR5cFswXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gYGFuIG9wdGlvbmFsICR7cHJldHR5VHlwZU5hbWUodHlwWzFdKX1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGBvbmUgb2YgWyR7dHlwLm1hcChhID0+IHsgcmV0dXJuIHByZXR0eVR5cGVOYW1lKGEpOyB9KS5qb2luKFwiLCBcIil9XWA7XG4gICAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0eXAgPT09IFwib2JqZWN0XCIgJiYgdHlwLmxpdGVyYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdHlwLmxpdGVyYWw7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0eXA7XG4gICAgfVxufVxuXG5mdW5jdGlvbiBqc29uVG9KU1Byb3BzKHR5cDogYW55KTogYW55IHtcbiAgICBpZiAodHlwLmpzb25Ub0pTID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgbWFwOiBhbnkgPSB7fTtcbiAgICAgICAgdHlwLnByb3BzLmZvckVhY2goKHA6IGFueSkgPT4gbWFwW3AuanNvbl0gPSB7IGtleTogcC5qcywgdHlwOiBwLnR5cCB9KTtcbiAgICAgICAgdHlwLmpzb25Ub0pTID0gbWFwO1xuICAgIH1cbiAgICByZXR1cm4gdHlwLmpzb25Ub0pTO1xufVxuXG5mdW5jdGlvbiBqc1RvSlNPTlByb3BzKHR5cDogYW55KTogYW55IHtcbiAgICBpZiAodHlwLmpzVG9KU09OID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgbWFwOiBhbnkgPSB7fTtcbiAgICAgICAgdHlwLnByb3BzLmZvckVhY2goKHA6IGFueSkgPT4gbWFwW3AuanNdID0geyBrZXk6IHAuanNvbiwgdHlwOiBwLnR5cCB9KTtcbiAgICAgICAgdHlwLmpzVG9KU09OID0gbWFwO1xuICAgIH1cbiAgICByZXR1cm4gdHlwLmpzVG9KU09OO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm0odmFsOiBhbnksIHR5cDogYW55LCBnZXRQcm9wczogYW55LCBrZXk6IGFueSA9ICcnLCBwYXJlbnQ6IGFueSA9ICcnKTogYW55IHtcbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1QcmltaXRpdmUodHlwOiBzdHJpbmcsIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHR5cGVvZiB0eXAgPT09IHR5cGVvZiB2YWwpIHJldHVybiB2YWw7XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1Vbmlvbih0eXBzOiBhbnlbXSwgdmFsOiBhbnkpOiBhbnkge1xuICAgICAgICAvLyB2YWwgbXVzdCB2YWxpZGF0ZSBhZ2FpbnN0IG9uZSB0eXAgaW4gdHlwc1xuICAgICAgICBjb25zdCBsID0gdHlwcy5sZW5ndGg7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB0eXAgPSB0eXBzW2ldO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBnZXRQcm9wcyk7XG4gICAgICAgICAgICB9IGNhdGNoIChfKSB7fVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwcywgdmFsLCBrZXksIHBhcmVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJhbnNmb3JtRW51bShjYXNlczogc3RyaW5nW10sIHZhbDogYW55KTogYW55IHtcbiAgICAgICAgaWYgKGNhc2VzLmluZGV4T2YodmFsKSAhPT0gLTEpIHJldHVybiB2YWw7XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUoY2FzZXMubWFwKGEgPT4geyByZXR1cm4gbChhKTsgfSksIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybUFycmF5KHR5cDogYW55LCB2YWw6IGFueSk6IGFueSB7XG4gICAgICAgIC8vIHZhbCBtdXN0IGJlIGFuIGFycmF5IHdpdGggbm8gaW52YWxpZCBlbGVtZW50c1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsKSkgcmV0dXJuIGludmFsaWRWYWx1ZShsKFwiYXJyYXlcIiksIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgICAgICByZXR1cm4gdmFsLm1hcChlbCA9PiB0cmFuc2Zvcm0oZWwsIHR5cCwgZ2V0UHJvcHMpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2Zvcm1EYXRlKHZhbDogYW55KTogYW55IHtcbiAgICAgICAgaWYgKHZhbCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZCA9IG5ldyBEYXRlKHZhbCk7XG4gICAgICAgIGlmIChpc05hTihkLnZhbHVlT2YoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUobChcIkRhdGVcIiksIHZhbCwga2V5LCBwYXJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zZm9ybU9iamVjdChwcm9wczogeyBbazogc3RyaW5nXTogYW55IH0sIGFkZGl0aW9uYWw6IGFueSwgdmFsOiBhbnkpOiBhbnkge1xuICAgICAgICBpZiAodmFsID09PSBudWxsIHx8IHR5cGVvZiB2YWwgIT09IFwib2JqZWN0XCIgfHwgQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW52YWxpZFZhbHVlKGwocmVmIHx8IFwib2JqZWN0XCIpLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhwcm9wcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvcCA9IHByb3BzW2tleV07XG4gICAgICAgICAgICBjb25zdCB2ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZhbCwga2V5KSA/IHZhbFtrZXldIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgcmVzdWx0W3Byb3Aua2V5XSA9IHRyYW5zZm9ybSh2LCBwcm9wLnR5cCwgZ2V0UHJvcHMsIGtleSwgcmVmKTtcbiAgICAgICAgfSk7XG4gICAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHZhbCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIGtleSkpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybSh2YWxba2V5XSwgYWRkaXRpb25hbCwgZ2V0UHJvcHMsIGtleSwgcmVmKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgaWYgKHR5cCA9PT0gXCJhbnlcIikgcmV0dXJuIHZhbDtcbiAgICBpZiAodHlwID09PSBudWxsKSB7XG4gICAgICAgIGlmICh2YWwgPT09IG51bGwpIHJldHVybiB2YWw7XG4gICAgICAgIHJldHVybiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICB9XG4gICAgaWYgKHR5cCA9PT0gZmFsc2UpIHJldHVybiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICBsZXQgcmVmOiBhbnkgPSB1bmRlZmluZWQ7XG4gICAgd2hpbGUgKHR5cGVvZiB0eXAgPT09IFwib2JqZWN0XCIgJiYgdHlwLnJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlZiA9IHR5cC5yZWY7XG4gICAgICAgIHR5cCA9IHR5cGVNYXBbdHlwLnJlZl07XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHR5cCkpIHJldHVybiB0cmFuc2Zvcm1FbnVtKHR5cCwgdmFsKTtcbiAgICBpZiAodHlwZW9mIHR5cCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXR1cm4gdHlwLmhhc093blByb3BlcnR5KFwidW5pb25NZW1iZXJzXCIpID8gdHJhbnNmb3JtVW5pb24odHlwLnVuaW9uTWVtYmVycywgdmFsKVxuICAgICAgICAgICAgOiB0eXAuaGFzT3duUHJvcGVydHkoXCJhcnJheUl0ZW1zXCIpICAgID8gdHJhbnNmb3JtQXJyYXkodHlwLmFycmF5SXRlbXMsIHZhbClcbiAgICAgICAgICAgIDogdHlwLmhhc093blByb3BlcnR5KFwicHJvcHNcIikgICAgICAgICA/IHRyYW5zZm9ybU9iamVjdChnZXRQcm9wcyh0eXApLCB0eXAuYWRkaXRpb25hbCwgdmFsKVxuICAgICAgICAgICAgOiBpbnZhbGlkVmFsdWUodHlwLCB2YWwsIGtleSwgcGFyZW50KTtcbiAgICB9XG4gICAgLy8gTnVtYmVycyBjYW4gYmUgcGFyc2VkIGJ5IERhdGUgYnV0IHNob3VsZG4ndCBiZS5cbiAgICBpZiAodHlwID09PSBEYXRlICYmIHR5cGVvZiB2YWwgIT09IFwibnVtYmVyXCIpIHJldHVybiB0cmFuc2Zvcm1EYXRlKHZhbCk7XG4gICAgcmV0dXJuIHRyYW5zZm9ybVByaW1pdGl2ZSh0eXAsIHZhbCk7XG59XG5cbmZ1bmN0aW9uIGNhc3Q8VD4odmFsOiBhbnksIHR5cDogYW55KTogVCB7XG4gICAgcmV0dXJuIHRyYW5zZm9ybSh2YWwsIHR5cCwganNvblRvSlNQcm9wcyk7XG59XG5cbmZ1bmN0aW9uIHVuY2FzdDxUPih2YWw6IFQsIHR5cDogYW55KTogYW55IHtcbiAgICByZXR1cm4gdHJhbnNmb3JtKHZhbCwgdHlwLCBqc1RvSlNPTlByb3BzKTtcbn1cblxuZnVuY3Rpb24gbCh0eXA6IGFueSkge1xuICAgIHJldHVybiB7IGxpdGVyYWw6IHR5cCB9O1xufVxuXG5mdW5jdGlvbiBhKHR5cDogYW55KSB7XG4gICAgcmV0dXJuIHsgYXJyYXlJdGVtczogdHlwIH07XG59XG5cbmZ1bmN0aW9uIHUoLi4udHlwczogYW55W10pIHtcbiAgICByZXR1cm4geyB1bmlvbk1lbWJlcnM6IHR5cHMgfTtcbn1cblxuZnVuY3Rpb24gbyhwcm9wczogYW55W10sIGFkZGl0aW9uYWw6IGFueSkge1xuICAgIHJldHVybiB7IHByb3BzLCBhZGRpdGlvbmFsIH07XG59XG5cbmZ1bmN0aW9uIHIobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHsgcmVmOiBuYW1lIH07XG59XG5cbmNvbnN0IHR5cGVNYXA6IGFueSA9IHtcbiAgICBcIlRleHRlc0xvaVwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcImRvY3VtZW50UmVmXCIsIGpzOiBcImRvY3VtZW50UmVmXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwidGl0cmVcIiwganM6IFwidGl0cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJvcmdhbmVcIiwganM6IFwib3JnYW5lXCIsIHR5cDogcihcIk9yZ2FuZVwiKSB9LFxuICAgICAgICB7IGpzb246IFwidHlwZVRleHRlXCIsIGpzOiBcInR5cGVUZXh0ZVwiLCB0eXA6IHIoXCJUeXBlVGV4dGVcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImNvbW1pc3Npb25cIiwganM6IFwiY29tbWlzc2lvblwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInByb2NlZHVyZUFjY2VsZXJlZVwiLCBqczogXCJwcm9jZWR1cmVBY2NlbGVyZWVcIiwgdHlwOiB0cnVlIH0sXG4gICAgICAgIHsganNvbjogXCJyZXByZXNlbnRhbnRzXCIsIGpzOiBcInJlcHJlc2VudGFudHNcIiwgdHlwOiByKFwiUmVwcmVzZW50YW50c1wiKSB9LFxuICAgICAgICB7IGpzb246IFwiZGF0ZUNvbnN0aXR1dGlvblwiLCBqczogXCJkYXRlQ29uc3RpdHV0aW9uXCIsIHR5cDogRGF0ZSB9LFxuICAgICAgICB7IGpzb246IFwiZGF0ZURlcG90QXNzZW1ibGVlXCIsIGpzOiBcImRhdGVEZXBvdEFzc2VtYmxlZVwiLCB0eXA6IERhdGUgfSxcbiAgICAgICAgeyBqc29uOiBcIm51bWVyb0xlZ2lzbGF0dXJlXCIsIGpzOiBcIm51bWVyb0xlZ2lzbGF0dXJlXCIsIHR5cDogMCB9LFxuICAgICAgICB7IGpzb246IFwibnVtZXJvVGV4dGVcIiwganM6IFwibnVtZXJvVGV4dGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJzb21tYWlyZVwiLCBqczogXCJzb21tYWlyZVwiLCB0eXA6IHUoYShyKFwiU29tbWFpcmVFbGVtZW50XCIpKSwgcihcIlB1cnBsZVNvbW1haXJlXCIpKSB9LFxuICAgICAgICB7IGpzb246IFwiY29udGVudVwiLCBqczogXCJjb250ZW51XCIsIHR5cDogcihcIkNvbnRlbnVcIikgfSxcbiAgICAgICAgeyBqc29uOiBcInNpZ25hdGFpcmVzXCIsIGpzOiBcInNpZ25hdGFpcmVzXCIsIHR5cDogdSh1bmRlZmluZWQsIGEocihcIlNpZ25hdGFpcmVcIikpKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkNvbnRlbnVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJhcnRpY2xlc1wiLCBqczogXCJhcnRpY2xlc1wiLCB0eXA6IGEocihcIkFydGljbGVcIikpIH0sXG4gICAgICAgIHsganNvbjogXCJleHBvc2VNb3RpZnNcIiwganM6IFwiZXhwb3NlTW90aWZzXCIsIHR5cDogcihcIkV4cG9zZU1vdGlmc1wiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkFydGljbGVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJudW1lcm9BcnRpY2xlXCIsIGpzOiBcIm51bWVyb0FydGljbGVcIiwgdHlwOiAwIH0sXG4gICAgICAgIHsganNvbjogXCJudW1lcm9BcnRpY2xlc1wiLCBqczogXCJudW1lcm9BcnRpY2xlc1wiLCB0eXA6IGEoXCJhbnlcIikgfSxcbiAgICAgICAgeyBqc29uOiBcImNhcmRpbmFsXCIsIGpzOiBcImNhcmRpbmFsXCIsIHR5cDogcihcIkNhcmRpbmFsXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJwYXJlbnRcIiwganM6IFwicGFyZW50XCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwibm91dmVhdVwiLCBqczogXCJub3V2ZWF1XCIsIHR5cDogdHJ1ZSB9LFxuICAgICAgICB7IGpzb246IFwidGl0cmVcIiwganM6IFwidGl0cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJhbGluZWFzXCIsIGpzOiBcImFsaW5lYXNcIiwgdHlwOiBhKHIoXCJBbGluZWFcIikpIH0sXG4gICAgICAgIHsganNvbjogXCJ0ZXh0ZVwiLCBqczogXCJ0ZXh0ZVwiLCB0eXA6IFwiXCIgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJBbGluZWFcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJudW1lcm9BbGluZWFcIiwganM6IFwibnVtZXJvQWxpbmVhXCIsIHR5cDogMCB9LFxuICAgICAgICB7IGpzb246IFwidGV4dGVcIiwganM6IFwidGV4dGVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJkZWJ1dFwiLCBqczogXCJkZWJ1dFwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgICAgICB7IGpzb246IFwiZmluXCIsIGpzOiBcImZpblwiLCB0eXA6IHUodW5kZWZpbmVkLCBcIlwiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIkV4cG9zZU1vdGlmc1wiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInRleHRlXCIsIGpzOiBcInRleHRlXCIsIHR5cDogXCJcIiB9LFxuICAgICAgICB7IGpzb246IFwiY2l0YXRpb25cIiwganM6IFwiY2l0YXRpb25cIiwgdHlwOiB1KHVuZGVmaW5lZCwgXCJcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJSZXByZXNlbnRhbnRzXCI6IG8oW1xuICAgICAgICB7IGpzb246IFwicGFyXCIsIGpzOiBcInBhclwiLCB0eXA6IGEocihcIlNpZ25hdGFpcmVcIikpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiU2lnbmF0YWlyZVwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcIm5vbVwiLCBqczogXCJub21cIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJmb25jdGlvblwiLCBqczogXCJmb25jdGlvblwiLCB0eXA6IHIoXCJGb25jdGlvblwiKSB9LFxuICAgIF0sIGZhbHNlKSxcbiAgICBcIlNvbW1haXJlRWxlbWVudFwiOiBvKFtcbiAgICAgICAgeyBqc29uOiBcInR5cGVEaXZpc2lvblwiLCBqczogXCJ0eXBlRGl2aXNpb25cIiwgdHlwOiByKFwiVHlwZURpdmlzaW9uXCIpIH0sXG4gICAgICAgIHsganNvbjogXCJudW1lcm9EaXZpc2lvblwiLCBqczogXCJudW1lcm9EaXZpc2lvblwiLCB0eXA6IFwiXCIgfSxcbiAgICAgICAgeyBqc29uOiBcInNlcXVlbmNlXCIsIGpzOiBcInNlcXVlbmNlXCIsIHR5cDogMCB9LFxuICAgICAgICB7IGpzb246IFwidGl0cmVcIiwganM6IFwidGl0cmVcIiwgdHlwOiBcIlwiIH0sXG4gICAgICAgIHsganNvbjogXCJwYXJlbnRcIiwganM6IFwicGFyZW50XCIsIHR5cDogdSh1bmRlZmluZWQsIFwiXCIpIH0sXG4gICAgXSwgZmFsc2UpLFxuICAgIFwiUHVycGxlU29tbWFpcmVcIjogbyhbXG4gICAgICAgIHsganNvbjogXCJzb21tYWlyZVwiLCBqczogXCJzb21tYWlyZVwiLCB0eXA6IGEoXCJhbnlcIikgfSxcbiAgICBdLCBmYWxzZSksXG4gICAgXCJDYXJkaW5hbFwiOiBbXG4gICAgICAgIFwiQVwiLFxuICAgICAgICBcIkJcIixcbiAgICAgICAgXCJiaXNcIixcbiAgICAgICAgXCJiaXMgQVwiLFxuICAgICAgICBcIkNcIixcbiAgICAgICAgXCIobm91dmVhdSlcIixcbiAgICAgICAgXCJcIixcbiAgICAgICAgXCJlclwiLFxuICAgICAgICBcIm5vdXZlYXVcIixcbiAgICBdLFxuICAgIFwiT3JnYW5lXCI6IFtcbiAgICAgICAgXCJBc3NlbWJsw6llIE5hdGlvbmFsZVwiLFxuICAgICAgICBcIkFTU0VNQkzDiUUgTkFUSU9OQUxFXCIsXG4gICAgXSxcbiAgICBcIkZvbmN0aW9uXCI6IFtcbiAgICAgICAgXCJEw6lwdXTDqVwiLFxuICAgICAgICBcIkTDqXB1dMOpZVwiLFxuICAgICAgICBcIlwiLFxuICAgIF0sXG4gICAgXCJUeXBlRGl2aXNpb25cIjogW1xuICAgICAgICBcIkNoYXBpdHJlXCIsXG4gICAgICAgIFwiVGl0cmVcIixcbiAgICBdLFxuICAgIFwiVHlwZVRleHRlXCI6IFtcbiAgICAgICAgXCJNb3Rpb24gZGUgY2Vuc3VyZVwiLFxuICAgICAgICBcIlByb3Bvc2l0aW9uIGRlIGxvaVwiLFxuICAgICAgICBcIlBST1BPU0lUSU9OIERFIExPSSBDT05TVElUVVRJT05ORUxMRVwiLFxuICAgICAgICBcIlBST1BPU0lUSU9OIERFIExPSSBPUkdBTklRVUVcIixcbiAgICAgICAgXCJNT1RJT04gREUgQ0VOU1VSRVwiLFxuICAgICAgICBcIlBST1BPU0lUSU9OIERFIExPSVwiLFxuICAgIF0sXG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQTBDQSxXQUFZQSxRQUFRLDBCQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQUEsT0FBUkEsUUFBUTtBQUFBO0FBaUJwQixXQUFZQyxNQUFNLDBCQUFOQSxNQUFNO0VBQU5BLE1BQU07RUFBTkEsTUFBTTtFQUFBLE9BQU5BLE1BQU07QUFBQTtBQWNsQixXQUFZQyxRQUFRLDBCQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBUkEsUUFBUTtFQUFSQSxRQUFRO0VBQUEsT0FBUkEsUUFBUTtBQUFBO0FBY3BCLFdBQVlDLFlBQVksMEJBQVpBLFlBQVk7RUFBWkEsWUFBWTtFQUFaQSxZQUFZO0VBQUEsT0FBWkEsWUFBWTtBQUFBO0FBU3hCLFdBQVlDLFNBQVMsMEJBQVRBLFNBQVM7RUFB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
@@ -1,36 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "Alinea",
4
- "description": "Alineas composant l'article.",
5
- "type": "object",
6
- "properties": {
7
- "alineas": {
8
- "type": "array",
9
- "items": {
10
- "type": "object",
11
- "description": "Liste des alineas",
12
- "properties": {
13
- "numeroAlinea": {
14
- "type": "integer",
15
- "description": "Numéro de l'alinea"
16
- },
17
- "debut": {
18
- "type": "string",
19
- "description": "Première ligne de l'alinea"
20
- },
21
- "fin": {
22
- "type": "string",
23
- "description": "Dernière ligne de l'alinea. Si l'alinea ne comporte qu'une seule ligne, laisser ce champ vide."
24
- }
25
- },
26
- "required": [
27
- "numeroAlinea",
28
- "debut"
29
- ]
30
- }
31
- }
32
- },
33
- "required": [
34
- "alineas"
35
- ]
36
- }
@@ -1,24 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "ExposeMotifs",
4
- "description": "Exposé des motifs d'un texte de loi.",
5
- "type": "object",
6
- "properties": {
7
- "citation": {
8
- "type": "string",
9
- "description": "Citation ou texte introductif de l'exposé des motifs"
10
- },
11
- "debut": {
12
- "type": "string",
13
- "description": "Premier paragraphe de l'exposé des motifs. Si la mention \"EXPOSÉ DES MOTIFS\" est absente, laisser ce champ vide."
14
- },
15
- "fin": {
16
- "type": "string",
17
- "description": "Dernier paragraphe de l'exposé des motifs. Il est situé juste avant le texte \"PROPOSITION DE LOI\" ou \"PROJET DE LOI\". Si l'exposée des motifs ne comporte qu'un seul paragraphe, laisser ce champ vide. Si la mention \"EXPOSÉ DES MOTIFS\" est absente, laisser ce champ vide."
18
- }
19
- },
20
- "required": [
21
- "debut",
22
- "fin"
23
- ]
24
- }
@@ -1,126 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "MetaDonnees",
4
- "description": "Information sur le texte de loi.",
5
- "type": "object",
6
- "properties": {
7
- "documentRef": {
8
- "description": "Identifiant unique.",
9
- "type": "string"
10
- },
11
- "titre": {
12
- "description": "Titre du texte de loi",
13
- "type": "string"
14
- },
15
- "organe": {
16
- "description": "Chambre (e.g. Assemblée Nationale, Sénat)",
17
- "type": "string"
18
- },
19
- "typeTexte": {
20
- "description": "Type du texte : (e.g. Projet de loi, Proposition de loi)",
21
- "type": "string"
22
- },
23
- "commission": {
24
- "description": "Commission",
25
- "type": "string"
26
- },
27
- "procedureAcceleree": {
28
- "description": "Procédure accélérée : true/false",
29
- "type": "boolean"
30
- },
31
- "representants": {
32
- "type": "object",
33
- "properties": {
34
- "auNomDe": {
35
- "type": "array",
36
- "items": {
37
- "type": "object",
38
- "properties": {
39
- "nom": {
40
- "description": "Présenté au nom du représentant",
41
- "type": "string"
42
- },
43
- "fonction": {
44
- "description": "Fonction du représentant",
45
- "type": "string"
46
- }
47
- },
48
- "required": [
49
- "nom",
50
- "fonction"
51
- ]
52
- }
53
- },
54
- "par": {
55
- "type": "array",
56
- "items": {
57
- "type": "object",
58
- "properties": {
59
- "nom": {
60
- "description": "Présenté par Nom du député",
61
- "type": "string"
62
- },
63
- "fonction": {
64
- "description": "Fonction du député",
65
- "type": "string"
66
- }
67
- },
68
- "required": [
69
- "nom",
70
- "fonction"
71
- ]
72
- }
73
- }
74
- }
75
- },
76
- "signataires": {
77
- "type": "array",
78
- "items": {
79
- "type": "object",
80
- "properties": {
81
- "nom": {
82
- "description": "Nom du signataire",
83
- "type": "string"
84
- },
85
- "fonction": {
86
- "description": "Fonction du signataire",
87
- "type": "string"
88
- }
89
- },
90
- "required": [
91
- "nom",
92
- "fonction"
93
- ]
94
- }
95
- },
96
- "dateConstitution": {
97
- "description": "Date de la constitution",
98
- "type": "string"
99
- },
100
- "dateDepotAssemblee": {
101
- "description": "Date d'enregistrement à la Présidence de l’Assemblée nationale",
102
- "type": "string"
103
- },
104
- "numeroLegislature": {
105
- "description": "Numéro de la législature",
106
- "type": "integer"
107
- },
108
- "numeroTexte": {
109
- "description": "Numéro du texte",
110
- "type": "string"
111
- }
112
- },
113
- "required": [
114
- "documentRef",
115
- "titre",
116
- "organe",
117
- "typeTexte",
118
- "commission",
119
- "representants",
120
- "dateConstitution",
121
- "dateDepotAssemblee",
122
- "numeroLegislature",
123
- "numeroTexte",
124
- "procedureAcceleree"
125
- ]
126
- }