@tricoteuses/senat 3.1.21 → 3.1.22

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 (388) hide show
  1. package/LICENSE.md +32 -32
  2. package/README.md +326 -326
  3. package/lib/add-js-extensions-v2.js +23 -0
  4. package/lib/add-js-extensions.js +17 -0
  5. package/lib/aggregates.d.ts +52 -0
  6. package/lib/aggregates.js +930 -0
  7. package/lib/aggregates.mjs +713 -0
  8. package/lib/aggregates.ts +833 -0
  9. package/lib/config.d.ts +10 -0
  10. package/lib/config.js +16 -0
  11. package/lib/config.mjs +16 -0
  12. package/lib/config.ts +26 -0
  13. package/lib/databases.d.ts +2 -0
  14. package/lib/databases.js +26 -0
  15. package/lib/databases.mjs +57 -0
  16. package/lib/databases.ts +71 -0
  17. package/lib/datasets.d.ts +34 -0
  18. package/lib/datasets.js +233 -0
  19. package/lib/datasets.mjs +78 -0
  20. package/lib/datasets.ts +118 -0
  21. package/lib/fields.d.ts +10 -0
  22. package/lib/fields.js +68 -0
  23. package/lib/fields.mjs +22 -0
  24. package/lib/fields.ts +29 -0
  25. package/lib/git.d.ts +26 -0
  26. package/lib/git.js +167 -0
  27. package/lib/index.d.ts +13 -0
  28. package/lib/index.js +1 -0
  29. package/lib/index.mjs +7 -0
  30. package/lib/index.ts +64 -0
  31. package/lib/inserters.d.ts +98 -0
  32. package/lib/inserters.js +500 -0
  33. package/lib/inserters.mjs +360 -0
  34. package/lib/inserters.ts +521 -0
  35. package/lib/legislatures.json +38 -0
  36. package/lib/loaders.d.ts +58 -0
  37. package/lib/loaders.js +286 -0
  38. package/lib/loaders.mjs +158 -0
  39. package/lib/loaders.ts +271 -0
  40. package/lib/model/agenda.d.ts +6 -0
  41. package/lib/model/agenda.js +148 -0
  42. package/lib/model/ameli.d.ts +51 -0
  43. package/lib/model/ameli.js +149 -0
  44. package/lib/model/ameli.mjs +84 -0
  45. package/lib/model/ameli.ts +100 -0
  46. package/lib/model/commission.d.ts +18 -0
  47. package/lib/model/commission.js +269 -0
  48. package/lib/model/debats.d.ts +67 -0
  49. package/lib/model/debats.js +95 -0
  50. package/lib/model/debats.mjs +43 -0
  51. package/lib/model/debats.ts +68 -0
  52. package/lib/model/documents.d.ts +12 -0
  53. package/lib/model/documents.js +151 -0
  54. package/lib/model/dosleg.d.ts +7 -0
  55. package/lib/model/dosleg.js +326 -0
  56. package/lib/model/dosleg.mjs +196 -0
  57. package/lib/model/dosleg.ts +240 -0
  58. package/lib/model/index.d.ts +7 -0
  59. package/lib/model/index.js +7 -0
  60. package/lib/model/index.mjs +5 -0
  61. package/lib/model/index.ts +15 -0
  62. package/lib/model/questions.d.ts +45 -0
  63. package/lib/model/questions.js +89 -0
  64. package/lib/model/questions.mjs +71 -0
  65. package/lib/model/questions.ts +93 -0
  66. package/lib/model/scrutins.d.ts +13 -0
  67. package/lib/model/scrutins.js +114 -0
  68. package/lib/model/seance.d.ts +3 -0
  69. package/lib/model/seance.js +267 -0
  70. package/lib/model/sens.d.ts +146 -0
  71. package/lib/model/sens.js +454 -0
  72. package/lib/model/sens.mjs +415 -0
  73. package/lib/model/sens.ts +516 -0
  74. package/lib/model/texte.d.ts +7 -0
  75. package/lib/model/texte.js +256 -0
  76. package/lib/model/texte.mjs +208 -0
  77. package/lib/model/texte.ts +229 -0
  78. package/lib/model/util.d.ts +9 -0
  79. package/lib/model/util.js +38 -0
  80. package/lib/model/util.mjs +19 -0
  81. package/lib/model/util.ts +32 -0
  82. package/lib/parsers/texte.d.ts +7 -0
  83. package/lib/parsers/texte.js +228 -0
  84. package/lib/raw_types/ameli.d.ts +914 -0
  85. package/lib/raw_types/ameli.js +5 -0
  86. package/lib/raw_types/ameli.mjs +163 -0
  87. package/lib/raw_types/debats.d.ts +207 -0
  88. package/lib/raw_types/debats.js +5 -0
  89. package/lib/raw_types/debats.mjs +58 -0
  90. package/lib/raw_types/dosleg.d.ts +1619 -0
  91. package/lib/raw_types/dosleg.js +5 -0
  92. package/lib/raw_types/dosleg.mjs +438 -0
  93. package/lib/raw_types/questions.d.ts +419 -0
  94. package/lib/raw_types/questions.js +5 -0
  95. package/lib/raw_types/questions.mjs +11 -0
  96. package/lib/raw_types/senat.d.ts +11368 -0
  97. package/lib/raw_types/senat.js +5 -0
  98. package/lib/raw_types/sens.d.ts +8248 -0
  99. package/lib/raw_types/sens.js +5 -0
  100. package/lib/raw_types/sens.mjs +508 -0
  101. package/lib/raw_types_kysely/ameli.d.ts +915 -0
  102. package/lib/raw_types_kysely/ameli.js +7 -0
  103. package/lib/raw_types_kysely/ameli.mjs +5 -0
  104. package/lib/raw_types_kysely/ameli.ts +951 -0
  105. package/lib/raw_types_kysely/debats.d.ts +207 -0
  106. package/lib/raw_types_kysely/debats.js +7 -0
  107. package/lib/raw_types_kysely/debats.mjs +5 -0
  108. package/lib/raw_types_kysely/debats.ts +222 -0
  109. package/lib/raw_types_kysely/dosleg.d.ts +3532 -0
  110. package/lib/raw_types_kysely/dosleg.js +7 -0
  111. package/lib/raw_types_kysely/dosleg.mjs +5 -0
  112. package/lib/raw_types_kysely/dosleg.ts +3621 -0
  113. package/lib/raw_types_kysely/questions.d.ts +414 -0
  114. package/lib/raw_types_kysely/questions.js +7 -0
  115. package/lib/raw_types_kysely/questions.mjs +5 -0
  116. package/lib/raw_types_kysely/questions.ts +426 -0
  117. package/lib/raw_types_kysely/sens.d.ts +4394 -0
  118. package/lib/raw_types_kysely/sens.js +7 -0
  119. package/lib/raw_types_kysely/sens.mjs +5 -0
  120. package/lib/raw_types_kysely/sens.ts +4499 -0
  121. package/lib/raw_types_schemats/ameli.d.ts +539 -0
  122. package/lib/raw_types_schemats/ameli.js +2 -0
  123. package/lib/raw_types_schemats/ameli.mjs +2 -0
  124. package/lib/raw_types_schemats/ameli.ts +601 -0
  125. package/lib/raw_types_schemats/debats.d.ts +127 -0
  126. package/lib/raw_types_schemats/debats.js +2 -0
  127. package/lib/raw_types_schemats/debats.mjs +2 -0
  128. package/lib/raw_types_schemats/debats.ts +145 -0
  129. package/lib/raw_types_schemats/dosleg.d.ts +977 -0
  130. package/lib/raw_types_schemats/dosleg.js +2 -0
  131. package/lib/raw_types_schemats/dosleg.mjs +2 -0
  132. package/lib/raw_types_schemats/dosleg.ts +2193 -0
  133. package/lib/raw_types_schemats/questions.d.ts +235 -0
  134. package/lib/raw_types_schemats/questions.js +2 -0
  135. package/lib/raw_types_schemats/questions.mjs +2 -0
  136. package/lib/raw_types_schemats/questions.ts +249 -0
  137. package/lib/raw_types_schemats/sens.d.ts +6915 -0
  138. package/lib/raw_types_schemats/sens.js +2 -0
  139. package/lib/raw_types_schemats/sens.mjs +2 -0
  140. package/lib/raw_types_schemats/sens.ts +2907 -0
  141. package/lib/scripts/convert_data.js +354 -0
  142. package/lib/scripts/convert_data.mjs +181 -0
  143. package/lib/scripts/convert_data.ts +243 -0
  144. package/lib/scripts/data-download.d.ts +1 -0
  145. package/lib/scripts/data-download.js +12 -0
  146. package/lib/scripts/datautil.d.ts +8 -0
  147. package/lib/scripts/datautil.js +34 -0
  148. package/lib/scripts/datautil.mjs +16 -0
  149. package/lib/scripts/datautil.ts +19 -0
  150. package/lib/scripts/images/transparent_150x192.jpg +0 -0
  151. package/lib/scripts/images/transparent_155x225.jpg +0 -0
  152. package/lib/scripts/parse_textes.d.ts +1 -0
  153. package/lib/scripts/parse_textes.js +44 -0
  154. package/lib/scripts/parse_textes.mjs +46 -0
  155. package/lib/scripts/parse_textes.ts +65 -0
  156. package/lib/scripts/retrieve_agenda.d.ts +1 -0
  157. package/lib/scripts/retrieve_agenda.js +132 -0
  158. package/lib/scripts/retrieve_cr_commission.d.ts +1 -0
  159. package/lib/scripts/retrieve_cr_commission.js +364 -0
  160. package/lib/scripts/retrieve_cr_seance.d.ts +6 -0
  161. package/lib/scripts/retrieve_cr_seance.js +347 -0
  162. package/lib/scripts/retrieve_documents.d.ts +3 -0
  163. package/lib/scripts/retrieve_documents.js +219 -0
  164. package/lib/scripts/retrieve_documents.mjs +249 -0
  165. package/lib/scripts/retrieve_documents.ts +298 -0
  166. package/lib/scripts/retrieve_open_data.d.ts +1 -0
  167. package/lib/scripts/retrieve_open_data.js +315 -0
  168. package/lib/scripts/retrieve_open_data.mjs +217 -0
  169. package/lib/scripts/retrieve_open_data.ts +268 -0
  170. package/lib/scripts/retrieve_senateurs_photos.d.ts +1 -0
  171. package/lib/scripts/retrieve_senateurs_photos.js +147 -0
  172. package/lib/scripts/retrieve_senateurs_photos.mjs +147 -0
  173. package/lib/scripts/retrieve_senateurs_photos.ts +177 -0
  174. package/lib/scripts/retrieve_videos.d.ts +1 -0
  175. package/lib/scripts/retrieve_videos.js +461 -0
  176. package/lib/scripts/shared/cli_helpers.d.ts +95 -0
  177. package/lib/scripts/shared/cli_helpers.js +91 -0
  178. package/lib/scripts/shared/cli_helpers.ts +36 -0
  179. package/lib/scripts/shared/util.d.ts +4 -0
  180. package/lib/scripts/shared/util.js +35 -0
  181. package/lib/scripts/shared/util.ts +33 -0
  182. package/lib/scripts/test_iter_load.d.ts +1 -0
  183. package/lib/scripts/test_iter_load.js +12 -0
  184. package/lib/src/ameli.d.ts +66 -0
  185. package/lib/src/ameli.js +1 -0
  186. package/lib/src/config.d.ts +43 -0
  187. package/lib/src/config.js +37 -0
  188. package/lib/src/conversion_textes.d.ts +11 -0
  189. package/lib/src/conversion_textes.js +320 -0
  190. package/lib/src/databases.d.ts +3 -0
  191. package/lib/src/databases.js +26 -0
  192. package/lib/src/databases_postgres.d.ts +4 -0
  193. package/lib/src/databases_postgres.js +23 -0
  194. package/lib/src/datasets.d.ts +38 -0
  195. package/lib/src/datasets.js +247 -0
  196. package/lib/src/db_types/ameli.d.ts +1762 -0
  197. package/lib/src/db_types/ameli.js +1074 -0
  198. package/lib/src/db_types/debats.d.ts +380 -0
  199. package/lib/src/db_types/debats.js +266 -0
  200. package/lib/src/db_types/dosleg.d.ts +2954 -0
  201. package/lib/src/db_types/dosleg.js +2005 -0
  202. package/lib/src/db_types/questions.d.ts +699 -0
  203. package/lib/src/db_types/questions.js +493 -0
  204. package/lib/src/db_types/sens.d.ts +7843 -0
  205. package/lib/src/db_types/sens.js +4691 -0
  206. package/lib/src/debats.d.ts +38 -0
  207. package/lib/src/debats.js +1 -0
  208. package/lib/src/dosleg.d.ts +142 -0
  209. package/lib/src/dosleg.js +193 -0
  210. package/lib/src/git.d.ts +27 -0
  211. package/lib/src/git.js +251 -0
  212. package/lib/src/loaders.d.ts +52 -0
  213. package/lib/src/loaders.js +260 -0
  214. package/lib/src/model/agenda.d.ts +6 -0
  215. package/lib/src/model/agenda.js +148 -0
  216. package/lib/src/model/ameli.d.ts +67 -0
  217. package/lib/src/model/ameli.js +150 -0
  218. package/lib/src/model/ameli_postgres.d.ts +67 -0
  219. package/lib/src/model/ameli_postgres.js +150 -0
  220. package/lib/src/model/commission.d.ts +19 -0
  221. package/lib/src/model/commission.js +269 -0
  222. package/lib/src/model/debats.d.ts +39 -0
  223. package/lib/src/model/debats.js +112 -0
  224. package/lib/src/model/documents.d.ts +32 -0
  225. package/lib/src/model/documents.js +182 -0
  226. package/lib/src/model/dosleg.d.ts +144 -0
  227. package/lib/src/model/dosleg.js +468 -0
  228. package/lib/src/model/index.d.ts +7 -0
  229. package/lib/src/model/index.js +7 -0
  230. package/lib/src/model/questions.d.ts +54 -0
  231. package/lib/src/model/questions.js +91 -0
  232. package/lib/src/model/scrutins.d.ts +48 -0
  233. package/lib/src/model/scrutins.js +121 -0
  234. package/lib/src/model/seance.d.ts +3 -0
  235. package/lib/src/model/seance.js +267 -0
  236. package/lib/src/model/sens.d.ts +112 -0
  237. package/lib/src/model/sens.js +385 -0
  238. package/lib/src/model/util.d.ts +1 -0
  239. package/lib/src/model/util.js +15 -0
  240. package/lib/src/other_types/questions.d.ts +2 -0
  241. package/lib/src/other_types/questions.js +1 -0
  242. package/lib/src/questions.d.ts +53 -0
  243. package/lib/src/questions.js +1 -0
  244. package/lib/src/raw_types/ameli.d.ts +1762 -0
  245. package/lib/src/raw_types/ameli.js +1074 -0
  246. package/lib/src/raw_types/debats.d.ts +380 -0
  247. package/lib/src/raw_types/debats.js +266 -0
  248. package/lib/src/raw_types/dosleg.d.ts +2954 -0
  249. package/lib/src/raw_types/dosleg.js +2005 -0
  250. package/lib/src/raw_types/questions.d.ts +699 -0
  251. package/lib/src/raw_types/questions.js +493 -0
  252. package/lib/src/raw_types/senat.d.ts +11372 -0
  253. package/lib/src/raw_types/senat.js +5 -0
  254. package/lib/src/raw_types/sens.d.ts +7843 -0
  255. package/lib/src/raw_types/sens.js +4691 -0
  256. package/lib/src/raw_types_schemats/ameli.d.ts +541 -0
  257. package/lib/src/raw_types_schemats/ameli.js +2 -0
  258. package/lib/src/raw_types_schemats/debats.d.ts +127 -0
  259. package/lib/src/raw_types_schemats/debats.js +2 -0
  260. package/lib/src/raw_types_schemats/dosleg.d.ts +977 -0
  261. package/lib/src/raw_types_schemats/dosleg.js +2 -0
  262. package/lib/src/raw_types_schemats/questions.d.ts +237 -0
  263. package/lib/src/raw_types_schemats/questions.js +2 -0
  264. package/lib/src/raw_types_schemats/sens.d.ts +2709 -0
  265. package/lib/src/raw_types_schemats/sens.js +2 -0
  266. package/lib/src/rich_types/agenda.d.ts +45 -0
  267. package/lib/src/rich_types/agenda.js +1 -0
  268. package/lib/src/rich_types/compte_rendu.d.ts +83 -0
  269. package/lib/src/rich_types/compte_rendu.js +1 -0
  270. package/lib/src/rich_types/dosleg.js +0 -7
  271. package/lib/src/rich_types/sessions.d.ts +6 -0
  272. package/lib/src/rich_types/sessions.js +19 -0
  273. package/lib/src/rich_types/texte.d.ts +72 -0
  274. package/lib/src/rich_types/texte.js +15 -0
  275. package/lib/src/scripts/convert_data.js +4 -5
  276. package/lib/src/scripts/retrieve_cr_commission.js +1 -1
  277. package/lib/src/scripts/retrieve_open_data.js +39 -0
  278. package/lib/src/scripts/retrieve_videos.js +1 -2
  279. package/lib/src/scripts/shared/incremental_import_sql.js +859 -859
  280. package/lib/src/scripts/shared/schema_version.js +84 -84
  281. package/lib/src/scripts/shared/staging_metadata_sql.js +214 -214
  282. package/lib/src/scripts/test_iter_load.d.ts +1 -0
  283. package/lib/src/scripts/test_iter_load.js +12 -0
  284. package/lib/src/scripts/validate_prefixed_tables.js +12 -12
  285. package/lib/src/sens.d.ts +104 -0
  286. package/lib/src/sens.js +1 -0
  287. package/lib/src/server/ameli.js +11 -13
  288. package/lib/src/server/conversion_textes.js +107 -107
  289. package/lib/src/server/debats.js +10 -15
  290. package/lib/src/server/documents.js +22 -25
  291. package/lib/src/server/dosleg.js +33 -44
  292. package/lib/src/server/questions.js +10 -11
  293. package/lib/src/server/scrutins.js +3 -7
  294. package/lib/src/server/sens.js +19 -36
  295. package/lib/src/types/agenda.d.ts +45 -0
  296. package/lib/src/types/agenda.js +1 -0
  297. package/lib/src/types/ameli.d.ts +1762 -0
  298. package/lib/src/types/ameli.js +1074 -0
  299. package/lib/src/types/compte_rendu.d.ts +83 -0
  300. package/lib/src/types/compte_rendu.js +1 -0
  301. package/lib/src/types/debats.d.ts +380 -0
  302. package/lib/src/types/debats.js +266 -0
  303. package/lib/src/types/dosleg.d.ts +2954 -0
  304. package/lib/src/types/dosleg.js +2005 -0
  305. package/lib/src/types/questions.d.ts +699 -0
  306. package/lib/src/types/questions.js +493 -0
  307. package/lib/src/types/sens.d.ts +7843 -0
  308. package/lib/src/types/sens.js +4691 -0
  309. package/lib/src/types/sessions.d.ts +6 -0
  310. package/lib/src/types/sessions.js +19 -0
  311. package/lib/src/types/texte.d.ts +72 -0
  312. package/lib/src/types/texte.js +15 -0
  313. package/lib/src/validators/config.d.ts +9 -0
  314. package/lib/src/validators/config.js +10 -0
  315. package/lib/src/videos/match.js +4 -4
  316. package/lib/strings.d.ts +1 -0
  317. package/lib/strings.js +18 -0
  318. package/lib/strings.mjs +18 -0
  319. package/lib/strings.ts +26 -0
  320. package/lib/tsconfig.tsbuildinfo +1 -0
  321. package/lib/types/agenda.d.ts +44 -0
  322. package/lib/types/agenda.js +1 -0
  323. package/lib/types/ameli.d.ts +5 -0
  324. package/lib/types/ameli.js +1 -0
  325. package/lib/types/ameli.mjs +13 -0
  326. package/lib/types/ameli.ts +21 -0
  327. package/lib/types/compte_rendu.d.ts +83 -0
  328. package/lib/types/compte_rendu.js +1 -0
  329. package/lib/types/debats.d.ts +2 -0
  330. package/lib/types/debats.js +1 -0
  331. package/lib/types/debats.mjs +2 -0
  332. package/lib/types/debats.ts +6 -0
  333. package/lib/types/dosleg.d.ts +70 -0
  334. package/lib/types/dosleg.js +1 -0
  335. package/lib/types/dosleg.mjs +151 -0
  336. package/lib/types/dosleg.ts +284 -0
  337. package/lib/types/questions.d.ts +2 -0
  338. package/lib/types/questions.js +1 -0
  339. package/lib/types/questions.mjs +1 -0
  340. package/lib/types/questions.ts +3 -0
  341. package/lib/types/sens.d.ts +10 -0
  342. package/lib/types/sens.js +1 -0
  343. package/lib/types/sens.mjs +1 -0
  344. package/lib/types/sens.ts +12 -0
  345. package/lib/types/sessions.d.ts +5 -0
  346. package/lib/types/sessions.js +84 -0
  347. package/lib/types/sessions.mjs +43 -0
  348. package/lib/types/sessions.ts +42 -0
  349. package/lib/types/texte.d.ts +74 -0
  350. package/lib/types/texte.js +16 -0
  351. package/lib/types/texte.mjs +16 -0
  352. package/lib/types/texte.ts +76 -0
  353. package/lib/typings/windows-1252.d.js +2 -0
  354. package/lib/typings/windows-1252.d.mjs +2 -0
  355. package/lib/typings/windows-1252.d.ts +11 -0
  356. package/lib/utils/cr_spliting.d.ts +28 -0
  357. package/lib/utils/cr_spliting.js +265 -0
  358. package/lib/utils/date.d.ts +10 -0
  359. package/lib/utils/date.js +100 -0
  360. package/lib/utils/nvs-timecode.d.ts +7 -0
  361. package/lib/utils/nvs-timecode.js +79 -0
  362. package/lib/utils/reunion_grouping.d.ts +9 -0
  363. package/lib/utils/reunion_grouping.js +361 -0
  364. package/lib/utils/reunion_odj_building.d.ts +5 -0
  365. package/lib/utils/reunion_odj_building.js +154 -0
  366. package/lib/utils/reunion_parsing.d.ts +23 -0
  367. package/lib/utils/reunion_parsing.js +209 -0
  368. package/lib/utils/scoring.d.ts +14 -0
  369. package/lib/utils/scoring.js +147 -0
  370. package/lib/utils/string_cleaning.d.ts +7 -0
  371. package/lib/utils/string_cleaning.js +57 -0
  372. package/lib/validators/config.d.ts +9 -0
  373. package/lib/validators/config.js +10 -0
  374. package/lib/validators/config.mjs +54 -0
  375. package/lib/validators/config.ts +79 -0
  376. package/lib/validators/senat.d.ts +0 -0
  377. package/lib/validators/senat.js +28 -0
  378. package/lib/validators/senat.mjs +24 -0
  379. package/lib/validators/senat.ts +26 -0
  380. package/package.json +119 -117
  381. package/lib/src/other_types/collaborateurs.d.ts +0 -5
  382. package/lib/src/parsers/collaborateurs.d.ts +0 -44
  383. package/lib/src/parsers/collaborateurs.js +0 -157
  384. package/lib/src/scripts/retrieve_collaborateurs.js +0 -166
  385. package/lib/tests/collaborateurs.test.js +0 -115
  386. /package/lib/{src/other_types/collaborateurs.js → add-js-extensions-v2.d.ts} +0 -0
  387. /package/lib/{src/scripts/retrieve_collaborateurs.d.ts → add-js-extensions.d.ts} +0 -0
  388. /package/lib/{tests/collaborateurs.test.d.ts → scripts/convert_data.d.ts} +0 -0
@@ -0,0 +1,104 @@
1
+ export interface FonctionRow {
2
+ date_debut: string | null;
3
+ date_fin: string | null;
4
+ libelle: string | null;
5
+ }
6
+ export interface MandatSenateurRow {
7
+ code_circonscription: string | null;
8
+ date_debut: string | null;
9
+ date_fin: string | null;
10
+ etat: string | null;
11
+ etat_debut: string | null;
12
+ etat_fin: string | null;
13
+ }
14
+ export interface MandatOrganismeRow {
15
+ code_organisme: string;
16
+ date_debut: string | null;
17
+ date_fin: string | null;
18
+ etat: string | null;
19
+ fonctions: FonctionRow[];
20
+ libelle: string | null;
21
+ type_code_organisme: string | null;
22
+ type_organisme: string | null;
23
+ }
24
+ export interface AdressePointContactRow {
25
+ bureau_distributeur: string | null;
26
+ code_cedex: string | null;
27
+ code_postal: string | null;
28
+ commune: string | null;
29
+ complement: string | null;
30
+ complement2: string | null;
31
+ libelle_cedex: string | null;
32
+ nom_voie: string | null;
33
+ numero_voie: string | null;
34
+ }
35
+ export interface TelephonePointContactRow {
36
+ numero: string | null;
37
+ type: string;
38
+ }
39
+ export interface PointContactRow {
40
+ adresses: AdressePointContactRow[];
41
+ id: string;
42
+ libelle: string | null;
43
+ telephones: TelephonePointContactRow[];
44
+ type: string;
45
+ }
46
+ export interface UrlRow {
47
+ code_url: string;
48
+ url: string;
49
+ }
50
+ export interface SenateurResult {
51
+ PCS_INSEE: string | null;
52
+ PCS_INSEE_24: string | null;
53
+ PCS_INSEE_42: string | null;
54
+ PCS_INSEE_8: string | null;
55
+ circonscription: string | null;
56
+ code_circonscription: string | null;
57
+ code_commission_permanente: string | null;
58
+ code_groupe_politique: string | null;
59
+ commission_permanente: string | null;
60
+ commissions: MandatOrganismeRow[];
61
+ courrier_electronique: string | null;
62
+ date_deces: string | null;
63
+ date_naissance: string | null;
64
+ delegations: MandatOrganismeRow[];
65
+ description_profession: string | null;
66
+ etat: string;
67
+ fonction_bureau_senat: string | null;
68
+ fonctions_bureau: FonctionRow[];
69
+ groupe_politique: string | null;
70
+ groupes: MandatOrganismeRow[];
71
+ mandats_senateur: MandatSenateurRow[];
72
+ matricule: string;
73
+ nom_usuel: string | null;
74
+ points_contact: PointContactRow[];
75
+ prenom_usuel: string;
76
+ qualite: string;
77
+ siege: string | null;
78
+ url_hatvp: string | null;
79
+ urls: UrlRow[];
80
+ }
81
+ export interface CirconscriptionResult {
82
+ article: string | null;
83
+ code: string;
84
+ date_debut: string | null;
85
+ date_fin: string | null;
86
+ etat: string | null;
87
+ identifiant: string;
88
+ libelle_departement: string;
89
+ libelle_region: string;
90
+ nombre_senateurs: string | null;
91
+ url: string | null;
92
+ }
93
+ export interface OrganismeResult {
94
+ code: string;
95
+ date_debut: string | null;
96
+ date_fin: string | null;
97
+ etat: string | null;
98
+ libelle: string | null;
99
+ libelle_court: string | null;
100
+ libelle_long: string | null;
101
+ type_code: string;
102
+ type_libelle: string | null;
103
+ url: string | null;
104
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -94,17 +94,17 @@ export async function* findAllAmendements(fromSession) {
94
94
  "avigvt.lib as avis_gouvernement",
95
95
  eb.fn.coalesce("sor.lib", "irr.libirr").as("sort"),
96
96
  "amd.rev as revision",
97
- sql `
98
- (
99
- case
100
- when ${eb.ref("amd.num")} like '%COM%' then 'https://www.senat.fr/amendements/commissions/'
101
- else 'https://www.senat.fr/amendements/'
102
- end ||
103
- ${eb.ref("ses.ann")}::text || '-' ||
104
- (${eb.ref("ses.ann")}::integer + 1)::text || '/' ||
105
- ${eb.ref("txt_ameli.numabs")} || '/Amdt_' ||
106
- ${eb.ref("amd.num")} || '.html'
107
- )
97
+ sql `
98
+ (
99
+ case
100
+ when ${eb.ref("amd.num")} like '%COM%' then 'https://www.senat.fr/amendements/commissions/'
101
+ else 'https://www.senat.fr/amendements/'
102
+ end ||
103
+ ${eb.ref("ses.ann")}::text || '-' ||
104
+ (${eb.ref("ses.ann")}::integer + 1)::text || '/' ||
105
+ ${eb.ref("txt_ameli.numabs")} || '/Amdt_' ||
106
+ ${eb.ref("amd.num")} || '.html'
107
+ )
108
108
  `.as("url"),
109
109
  "grppol_ameli.lilcou as au_nom_de_groupe_politique",
110
110
  sql `rtrim(${eb.ref("com_ameli.lil")})`.as("au_nom_de_commission"),
@@ -112,7 +112,6 @@ export async function* findAllAmendements(fromSession) {
112
112
  sql `(${eb.ref("cab.entid")} is not null)`.as("auteur_est_gouvernement"),
113
113
  // Sous-requête scalaire: numéro de scrutin
114
114
  eb
115
- .withSchema("senat")
116
115
  .selectFrom("dosleg_amescr as amescr")
117
116
  .leftJoin("dosleg_scr as scr", (join) => join.onRef("amescr.scrnum", "=", "scr.scrnum").onRef("amescr.sesann", "=", "scr.sesann"))
118
117
  .leftJoin("dosleg_date_seance as date_seance", "date_seance.code", "scr.code")
@@ -124,7 +123,6 @@ export async function* findAllAmendements(fromSession) {
124
123
  .as("scrutin_num"),
125
124
  // Sous-requête pour les auteurs
126
125
  jsonArrayFrom(eb
127
- .withSchema("senat")
128
126
  .selectFrom("ameli_amdsen as amdsen")
129
127
  .leftJoin("ameli_sen_ameli as sen_ameli", "sen_ameli.entid", "amdsen.senid")
130
128
  .leftJoin("ameli_grppol_ameli as grppol_ameli2", "grppol_ameli2.entid", "amdsen.grpid")
@@ -82,119 +82,119 @@ export async function convertSenatXmlToHtml(texteXml, outputFilePath) {
82
82
  }
83
83
  const metadata = extractMetadata(xmlDoc);
84
84
  const xmlBody = xmlDoc.querySelector("body");
85
- const style = `
86
- body {
87
- font-family: "URW Bookman", "Bookman Old Style", serif;
88
- max-width: 800px;
89
- margin: 40px auto;
90
- line-height: 1.5;
91
- color: #333;
92
- }
93
- .header {
94
- text-align: center;
95
- margin-bottom: 40px;
96
- border-bottom: 2px solid #333;
97
- padding-bottom: 20px;
98
- }
99
- .header-top {
100
- font-weight: bold;
101
- font-size: 1.2em;
102
- margin-bottom: 10px;
103
- }
104
- .header-session {
105
- text-transform: uppercase;
106
- font-size: 0.9em;
107
- margin-bottom: 5px;
108
- }
109
- .header-date {
110
- font-size: 0.9em;
111
- margin-bottom: 5px;
112
- }
113
- .header-number {
114
- font-weight: bold;
115
- font-size: 1.1em;
116
- margin-bottom: 20px;
117
- }
118
- .header-type {
119
- font-weight: bold;
120
- font-size: 1.5em;
121
- margin-top: 20px;
122
- }
123
- .header-authors {
124
- margin-top: 20px;
125
- font-style: italic;
126
- }
127
- .header-commission {
128
- margin-top: 15px;
129
- font-size: 0.9em;
130
- }
131
- h1 {
132
- text-align: center;
133
- font-size: 1.8em;
134
- margin-top: 10px;
135
- }
136
- p {
137
- margin: 0.6em 0;
138
- }
139
- p.has-alinea {
140
- position: relative;
141
- padding-left: 2.5em;
142
- }
143
- .alinea {
144
- position: absolute;
145
- left: 0;
146
- top: 0.15em;
147
- display: inline-flex;
148
- align-items: center;
149
- justify-content: center;
150
- min-width: 1.5em;
151
- height: 1.5em;
152
- padding: 0 0.3em;
153
- margin-right: 0.3em;
154
- font-size: 0.75em;
155
- font-weight: bold;
156
- color: #555;
157
- background-color: #f0f0f0;
158
- border: 1px solid #ccc;
159
- border-radius: 1em;
160
- }
161
- .num {
162
- font-weight: bold;
163
- margin-right: 0.2em;
164
- }
165
- .article {
166
- margin-top: 2em;
167
- }
168
- .article h3 {
169
- border-bottom: 1px solid #eee;
170
- padding-bottom: 5px;
171
- }
85
+ const style = `
86
+ body {
87
+ font-family: "URW Bookman", "Bookman Old Style", serif;
88
+ max-width: 800px;
89
+ margin: 40px auto;
90
+ line-height: 1.5;
91
+ color: #333;
92
+ }
93
+ .header {
94
+ text-align: center;
95
+ margin-bottom: 40px;
96
+ border-bottom: 2px solid #333;
97
+ padding-bottom: 20px;
98
+ }
99
+ .header-top {
100
+ font-weight: bold;
101
+ font-size: 1.2em;
102
+ margin-bottom: 10px;
103
+ }
104
+ .header-session {
105
+ text-transform: uppercase;
106
+ font-size: 0.9em;
107
+ margin-bottom: 5px;
108
+ }
109
+ .header-date {
110
+ font-size: 0.9em;
111
+ margin-bottom: 5px;
112
+ }
113
+ .header-number {
114
+ font-weight: bold;
115
+ font-size: 1.1em;
116
+ margin-bottom: 20px;
117
+ }
118
+ .header-type {
119
+ font-weight: bold;
120
+ font-size: 1.5em;
121
+ margin-top: 20px;
122
+ }
123
+ .header-authors {
124
+ margin-top: 20px;
125
+ font-style: italic;
126
+ }
127
+ .header-commission {
128
+ margin-top: 15px;
129
+ font-size: 0.9em;
130
+ }
131
+ h1 {
132
+ text-align: center;
133
+ font-size: 1.8em;
134
+ margin-top: 10px;
135
+ }
136
+ p {
137
+ margin: 0.6em 0;
138
+ }
139
+ p.has-alinea {
140
+ position: relative;
141
+ padding-left: 2.5em;
142
+ }
143
+ .alinea {
144
+ position: absolute;
145
+ left: 0;
146
+ top: 0.15em;
147
+ display: inline-flex;
148
+ align-items: center;
149
+ justify-content: center;
150
+ min-width: 1.5em;
151
+ height: 1.5em;
152
+ padding: 0 0.3em;
153
+ margin-right: 0.3em;
154
+ font-size: 0.75em;
155
+ font-weight: bold;
156
+ color: #555;
157
+ background-color: #f0f0f0;
158
+ border: 1px solid #ccc;
159
+ border-radius: 1em;
160
+ }
161
+ .num {
162
+ font-weight: bold;
163
+ margin-right: 0.2em;
164
+ }
165
+ .article {
166
+ margin-top: 2em;
167
+ }
168
+ .article h3 {
169
+ border-bottom: 1px solid #eee;
170
+ padding-bottom: 5px;
171
+ }
172
172
  `;
173
- const htmlDocTemplate = `<!DOCTYPE html>
174
- <html lang="fr">
175
- <head>
176
- <meta charset="utf-8">
177
- <title>${metadata.title || "Document Sénat"}</title>
178
- <style>${style}</style>
179
- </head>
180
- <body>
181
- <div class="header">
182
- <div class="header-top">SÉNAT</div>
183
- <div class="header-session">SESSION ORDINAIRE DE ${metadata.session || "...."}</div>
184
- ${metadata.date ? `<div class="header-date">Enregistré à la Présidence du Sénat le ${metadata.date}</div>` : ""}
185
- <div class="header-number">N° ${metadata.number || "...."}</div>
186
- <div class="header-type">${metadata.type || ""}</div>
187
- <div class="header-authors">${metadata.authors || ""}</div>
173
+ const htmlDocTemplate = `<!DOCTYPE html>
174
+ <html lang="fr">
175
+ <head>
176
+ <meta charset="utf-8">
177
+ <title>${metadata.title || "Document Sénat"}</title>
178
+ <style>${style}</style>
179
+ </head>
180
+ <body>
181
+ <div class="header">
182
+ <div class="header-top">SÉNAT</div>
183
+ <div class="header-session">SESSION ORDINAIRE DE ${metadata.session || "...."}</div>
184
+ ${metadata.date ? `<div class="header-date">Enregistré à la Présidence du Sénat le ${metadata.date}</div>` : ""}
185
+ <div class="header-number">N° ${metadata.number || "...."}</div>
186
+ <div class="header-type">${metadata.type || ""}</div>
187
+ <div class="header-authors">${metadata.authors || ""}</div>
188
188
  ${metadata.commission
189
189
  ? [
190
190
  `<div class="header-commission">Envoyée à la ${metadata.commission.toLowerCase()},`,
191
191
  "sous réserve de la constitution éventuelle d'une commission spéciale dans les conditions prévues",
192
192
  "par le Règlement.</div>",
193
193
  ].join(" ")
194
- : ""}
195
- </div>
196
- <h1>${metadata.title || ""}</h1>
197
- </body>
194
+ : ""}
195
+ </div>
196
+ <h1>${metadata.title || ""}</h1>
197
+ </body>
198
198
  </html>`;
199
199
  const { document: htmlDoc } = new JSDOM(htmlDocTemplate).window;
200
200
  const body = htmlDoc.body;
@@ -218,7 +218,7 @@ p.has-alinea {
218
218
  else if (child.nodeType === 1) {
219
219
  const element = child;
220
220
  const tagName = element.tagName.toLowerCase();
221
- let htmlElement = null;
221
+ let htmlElement;
222
222
  switch (tagName) {
223
223
  case "article": {
224
224
  htmlElement = htmlDoc.createElement("div");
@@ -13,7 +13,6 @@ export async function* findAll() {
13
13
  "debats.debsyn as etat_synchronisation",
14
14
  // Sections principales (PJL)
15
15
  jsonArrayFrom(eb
16
- .withSchema("senat")
17
16
  .selectFrom("debats_secdis as secdis")
18
17
  .leftJoin("debats_typsec as typsec", "typsec.typseccod", "secdis.typseccod")
19
18
  .select((eb2) => [
@@ -26,7 +25,6 @@ export async function* findAll() {
26
25
  "secdis.lecassidt as lecture_id",
27
26
  // Interventions de la section
28
27
  jsonArrayFrom(eb2
29
- .withSchema("senat")
30
28
  .selectFrom("debats_intpjl as intpjl")
31
29
  .leftJoin("dosleg_auteur as auteur", "auteur.autcod", "intpjl.autcod")
32
30
  .select([
@@ -35,11 +33,11 @@ export async function* findAll() {
35
33
  "intpjl.intfon as fonction_intervenant",
36
34
  "intpjl.inturl as url",
37
35
  "intpjl.intana as analyse",
38
- sql `json_build_object(
39
- 'code', auteur.autcod,
40
- 'nom', auteur.nomuse,
41
- 'prenom', auteur.prenom,
42
- 'matricule', auteur.autmat
36
+ sql `json_build_object(
37
+ 'code', auteur.autcod,
38
+ 'nom', auteur.nomuse,
39
+ 'prenom', auteur.prenom,
40
+ 'matricule', auteur.autmat
43
41
  )`.as("auteur"),
44
42
  ])
45
43
  .whereRef("intpjl.secdiscle", "=", "secdis.secdiscle")
@@ -49,7 +47,6 @@ export async function* findAll() {
49
47
  .orderBy("secdis.secdisordid", "asc")).as("sections"),
50
48
  // Sections diverses
51
49
  jsonArrayFrom(eb
52
- .withSchema("senat")
53
50
  .selectFrom("debats_secdivers as secdivers")
54
51
  .leftJoin("debats_typsec as typsec", "typsec.typseccod", "secdivers.typseccod")
55
52
  .select((eb2) => [
@@ -59,7 +56,6 @@ export async function* findAll() {
59
56
  "typsec.typseccat as categorie",
60
57
  // Interventions diverses
61
58
  jsonArrayFrom(eb2
62
- .withSchema("senat")
63
59
  .selectFrom("debats_intdivers as intdivers")
64
60
  .leftJoin("dosleg_auteur as auteur", "auteur.autcod", "intdivers.autcod")
65
61
  .select([
@@ -68,11 +64,11 @@ export async function* findAll() {
68
64
  "intdivers.intfon as fonction_intervenant",
69
65
  "intdivers.inturl as url",
70
66
  "intdivers.intana as analyse",
71
- sql `json_build_object(
72
- 'code', auteur.autcod,
73
- 'nom', auteur.nomuse,
74
- 'prenom', auteur.prenom,
75
- 'matricule', auteur.autmat
67
+ sql `json_build_object(
68
+ 'code', auteur.autcod,
69
+ 'nom', auteur.nomuse,
70
+ 'prenom', auteur.prenom,
71
+ 'matricule', auteur.autmat
76
72
  )`.as("auteur"),
77
73
  ])
78
74
  .whereRef("intdivers.secdiverscle", "=", "secdivers.secdiverscle")
@@ -81,7 +77,6 @@ export async function* findAll() {
81
77
  .whereRef("secdivers.datsea", "=", "debats.datsea")).as("sections_divers"),
82
78
  // Lectures
83
79
  jsonArrayFrom(eb
84
- .withSchema("senat")
85
80
  .selectFrom("debats_lecassdeb as lecassdeb")
86
81
  .select(["lecassdeb.lecassidt as id"])
87
82
  .whereRef("lecassdeb.datsea", "=", "debats.datsea")).as("lectures"),
@@ -14,18 +14,18 @@ export async function* findAllTextes() {
14
14
  "loi.signet as signet_dossier",
15
15
  "texte.texnum as numero",
16
16
  "texte.orgcod as code_organisme",
17
- sql `
18
- case
19
- when ${eb.ref("texte.texurl")} is not null then
20
- regexp_replace(regexp_replace(trim(${eb.ref("texte.texurl")}), '#+$', ''), '^(.*/)?(.*?)(\\.html)?$', '\\2')
21
- else null
22
- end
17
+ sql `
18
+ case
19
+ when ${eb.ref("texte.texurl")} is not null then
20
+ regexp_replace(regexp_replace(trim(${eb.ref("texte.texurl")}), '#+$', ''), '^(.*/)?(.*?)(\\.html)?$', '\\2')
21
+ else null
22
+ end
23
23
  `.as("id"),
24
- sql `
25
- case
26
- when ${eb.ref("texte.typurl")} = 'I' then regexp_replace('https://www.senat.fr/leg/' || rtrim(${eb.ref("texte.texurl")}), '#+$', '')
27
- else regexp_replace(rtrim(${eb.ref("texte.texurl")}), '#+$', '')
28
- end
24
+ sql `
25
+ case
26
+ when ${eb.ref("texte.typurl")} = 'I' then regexp_replace('https://www.senat.fr/leg/' || rtrim(${eb.ref("texte.texurl")}), '#+$', '')
27
+ else regexp_replace(rtrim(${eb.ref("texte.texurl")}), '#+$', '')
28
+ end
29
29
  `.as("url"),
30
30
  sql `rtrim(${eb.ref("oritxt.oritxtlib")})`.as("origine"),
31
31
  "oritxt.oriordre as ordre_origine",
@@ -36,7 +36,6 @@ export async function* findAllTextes() {
36
36
  sql `${eb.ref("texte.sesann")}::int`.as("session"),
37
37
  // Auteurs
38
38
  jsonArrayFrom(eb
39
- .withSchema("senat")
40
39
  .selectFrom("dosleg_auteur as auteur")
41
40
  .leftJoin("dosleg_ecr as ecr", "ecr.autcod", "auteur.autcod")
42
41
  .leftJoin("dosleg_rolsig as rolsig", "rolsig.signataire", "ecr.signataire")
@@ -75,18 +74,18 @@ export async function* findAllRapports() {
75
74
  "loi.signet as signet_dossier",
76
75
  "rap.rapnum as numero",
77
76
  "raporg.orgcod as code_organisme",
78
- sql `
79
- case
80
- when ${eb.ref("rap.rapurl")} is not null then
81
- regexp_replace(regexp_replace(trim(${eb.ref("rap.rapurl")}), '#+$', ''), '^(.*/)?(.*?)(\\.html)?$', '\\2')
82
- else null
83
- end
77
+ sql `
78
+ case
79
+ when ${eb.ref("rap.rapurl")} is not null then
80
+ regexp_replace(regexp_replace(trim(${eb.ref("rap.rapurl")}), '#+$', ''), '^(.*/)?(.*?)(\\.html)?$', '\\2')
81
+ else null
82
+ end
84
83
  `.as("id"),
85
- sql `
86
- case
87
- when ${eb.ref("rap.typurl")} = 'I' then regexp_replace('https://www.senat.fr/rap/' || rtrim(${eb.ref("rap.rapurl")}), '#+$', '')
88
- else regexp_replace(rtrim(${eb.ref("rap.rapurl")}), '#+$', '')
89
- end
84
+ sql `
85
+ case
86
+ when ${eb.ref("rap.typurl")} = 'I' then regexp_replace('https://www.senat.fr/rap/' || rtrim(${eb.ref("rap.rapurl")}), '#+$', '')
87
+ else regexp_replace(rtrim(${eb.ref("rap.rapurl")}), '#+$', '')
88
+ end
90
89
  `.as("url"),
91
90
  sql `rtrim(${eb.ref("denrap.libdenrap")})`.as("type"),
92
91
  sql `rtrim(rtrim(${eb.ref("rap.raptil")}))`.as("titre"),
@@ -95,7 +94,6 @@ export async function* findAllRapports() {
95
94
  sql `${eb.ref("rap.sesann")}::int`.as("session"),
96
95
  // Auteurs
97
96
  jsonArrayFrom(eb
98
- .withSchema("senat")
99
97
  .selectFrom("dosleg_auteur as auteur")
100
98
  .leftJoin("dosleg_ecr as ecr", "ecr.autcod", "auteur.autcod")
101
99
  .leftJoin("dosleg_rolsig as rolsig", "rolsig.signataire", "ecr.signataire")
@@ -111,7 +109,6 @@ export async function* findAllRapports() {
111
109
  .whereRef("ecr.rapcod", "=", "rap.rapcod")).as("auteurs"),
112
110
  // Documents annexes
113
111
  jsonArrayFrom(eb
114
- .withSchema("senat")
115
112
  .selectFrom("dosleg_docatt as docatt")
116
113
  .leftJoin("dosleg_typatt as typatt", "typatt.typattcod", "docatt.typattcod")
117
114
  .select(["docatt.docatturl as url", "typatt.typattlib as type_document"])