@tricoteuses/senat 2.22.16 → 3.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.
- package/README.md +168 -0
- package/lib/aggregates.d.ts +52 -0
- package/lib/aggregates.js +930 -0
- package/lib/aggregates.mjs +713 -0
- package/lib/aggregates.ts +833 -0
- package/lib/config.d.ts +10 -0
- package/lib/config.js +16 -0
- package/lib/config.mjs +16 -0
- package/lib/config.ts +26 -0
- package/lib/databases.d.ts +2 -0
- package/lib/databases.js +26 -0
- package/lib/databases.mjs +57 -0
- package/lib/databases.ts +71 -0
- package/lib/datasets.d.ts +34 -0
- package/lib/datasets.js +233 -0
- package/lib/datasets.mjs +78 -0
- package/lib/datasets.ts +118 -0
- package/lib/fields.d.ts +10 -0
- package/lib/fields.js +68 -0
- package/lib/fields.mjs +22 -0
- package/lib/fields.ts +29 -0
- package/lib/git.d.ts +26 -0
- package/lib/git.js +167 -0
- package/lib/index.d.ts +13 -0
- package/lib/index.js +1 -0
- package/lib/index.mjs +7 -0
- package/lib/index.ts +64 -0
- package/lib/inserters.d.ts +98 -0
- package/lib/inserters.js +500 -0
- package/lib/inserters.mjs +360 -0
- package/lib/inserters.ts +521 -0
- package/lib/legislatures.json +38 -0
- package/lib/loaders.d.ts +58 -0
- package/lib/loaders.js +286 -0
- package/lib/loaders.mjs +158 -0
- package/lib/loaders.ts +271 -0
- package/lib/model/agenda.d.ts +6 -0
- package/lib/model/agenda.js +148 -0
- package/lib/model/ameli.d.ts +51 -0
- package/lib/model/ameli.js +149 -0
- package/lib/model/ameli.mjs +84 -0
- package/lib/model/ameli.ts +100 -0
- package/lib/model/commission.d.ts +18 -0
- package/lib/model/commission.js +269 -0
- package/lib/model/debats.d.ts +67 -0
- package/lib/model/debats.js +95 -0
- package/lib/model/debats.mjs +43 -0
- package/lib/model/debats.ts +68 -0
- package/lib/model/documents.d.ts +12 -0
- package/lib/model/documents.js +151 -0
- package/lib/model/dosleg.d.ts +7 -0
- package/lib/model/dosleg.js +326 -0
- package/lib/model/dosleg.mjs +196 -0
- package/lib/model/dosleg.ts +240 -0
- package/lib/model/index.d.ts +7 -0
- package/lib/model/index.js +7 -0
- package/lib/model/index.mjs +5 -0
- package/lib/model/index.ts +15 -0
- package/lib/model/questions.d.ts +45 -0
- package/lib/model/questions.js +89 -0
- package/lib/model/questions.mjs +71 -0
- package/lib/model/questions.ts +93 -0
- package/lib/model/scrutins.d.ts +13 -0
- package/lib/model/scrutins.js +114 -0
- package/lib/model/seance.d.ts +3 -0
- package/lib/model/seance.js +267 -0
- package/lib/model/sens.d.ts +146 -0
- package/lib/model/sens.js +454 -0
- package/lib/model/sens.mjs +415 -0
- package/lib/model/sens.ts +516 -0
- package/lib/model/texte.d.ts +7 -0
- package/lib/model/texte.js +256 -0
- package/lib/model/texte.mjs +208 -0
- package/lib/model/texte.ts +229 -0
- package/lib/model/util.d.ts +9 -0
- package/lib/model/util.js +38 -0
- package/lib/model/util.mjs +19 -0
- package/lib/model/util.ts +32 -0
- package/lib/parsers/texte.d.ts +7 -0
- package/lib/parsers/texte.js +228 -0
- package/lib/raw_types/ameli.d.ts +914 -0
- package/lib/raw_types/ameli.js +5 -0
- package/lib/raw_types/ameli.mjs +163 -0
- package/lib/raw_types/debats.d.ts +207 -0
- package/lib/raw_types/debats.js +5 -0
- package/lib/raw_types/debats.mjs +58 -0
- package/lib/raw_types/dosleg.d.ts +1619 -0
- package/lib/raw_types/dosleg.js +5 -0
- package/lib/raw_types/dosleg.mjs +438 -0
- package/lib/raw_types/questions.d.ts +419 -0
- package/lib/raw_types/questions.js +5 -0
- package/lib/raw_types/questions.mjs +11 -0
- package/lib/raw_types/senat.d.ts +11368 -0
- package/lib/raw_types/senat.js +5 -0
- package/lib/raw_types/sens.d.ts +8248 -0
- package/lib/raw_types/sens.js +5 -0
- package/lib/raw_types/sens.mjs +508 -0
- package/lib/raw_types_kysely/ameli.d.ts +915 -0
- package/lib/raw_types_kysely/ameli.js +7 -0
- package/lib/raw_types_kysely/ameli.mjs +5 -0
- package/lib/raw_types_kysely/ameli.ts +951 -0
- package/lib/raw_types_kysely/debats.d.ts +207 -0
- package/lib/raw_types_kysely/debats.js +7 -0
- package/lib/raw_types_kysely/debats.mjs +5 -0
- package/lib/raw_types_kysely/debats.ts +222 -0
- package/lib/raw_types_kysely/dosleg.d.ts +3532 -0
- package/lib/raw_types_kysely/dosleg.js +7 -0
- package/lib/raw_types_kysely/dosleg.mjs +5 -0
- package/lib/raw_types_kysely/dosleg.ts +3621 -0
- package/lib/raw_types_kysely/questions.d.ts +414 -0
- package/lib/raw_types_kysely/questions.js +7 -0
- package/lib/raw_types_kysely/questions.mjs +5 -0
- package/lib/raw_types_kysely/questions.ts +426 -0
- package/lib/raw_types_kysely/sens.d.ts +4394 -0
- package/lib/raw_types_kysely/sens.js +7 -0
- package/lib/raw_types_kysely/sens.mjs +5 -0
- package/lib/raw_types_kysely/sens.ts +4499 -0
- package/lib/raw_types_schemats/ameli.d.ts +539 -0
- package/lib/raw_types_schemats/ameli.js +2 -0
- package/lib/raw_types_schemats/ameli.mjs +2 -0
- package/lib/raw_types_schemats/ameli.ts +601 -0
- package/lib/raw_types_schemats/debats.d.ts +127 -0
- package/lib/raw_types_schemats/debats.js +2 -0
- package/lib/raw_types_schemats/debats.mjs +2 -0
- package/lib/raw_types_schemats/debats.ts +145 -0
- package/lib/raw_types_schemats/dosleg.d.ts +977 -0
- package/lib/raw_types_schemats/dosleg.js +2 -0
- package/lib/raw_types_schemats/dosleg.mjs +2 -0
- package/lib/raw_types_schemats/dosleg.ts +2193 -0
- package/lib/raw_types_schemats/questions.d.ts +235 -0
- package/lib/raw_types_schemats/questions.js +2 -0
- package/lib/raw_types_schemats/questions.mjs +2 -0
- package/lib/raw_types_schemats/questions.ts +249 -0
- package/lib/raw_types_schemats/sens.d.ts +6915 -0
- package/lib/raw_types_schemats/sens.js +2 -0
- package/lib/raw_types_schemats/sens.mjs +2 -0
- package/lib/raw_types_schemats/sens.ts +2907 -0
- package/lib/scripts/convert_data.d.ts +1 -0
- package/lib/scripts/convert_data.js +354 -0
- package/lib/scripts/convert_data.mjs +181 -0
- package/lib/scripts/convert_data.ts +243 -0
- package/lib/scripts/data-download.d.ts +1 -0
- package/lib/scripts/data-download.js +12 -0
- package/lib/scripts/datautil.d.ts +8 -0
- package/lib/scripts/datautil.js +34 -0
- package/lib/scripts/datautil.mjs +16 -0
- package/lib/scripts/datautil.ts +19 -0
- package/lib/scripts/images/transparent_150x192.jpg +0 -0
- package/lib/scripts/images/transparent_155x225.jpg +0 -0
- package/lib/scripts/parse_textes.d.ts +1 -0
- package/lib/scripts/parse_textes.js +44 -0
- package/lib/scripts/parse_textes.mjs +46 -0
- package/lib/scripts/parse_textes.ts +65 -0
- package/lib/scripts/retrieve_agenda.d.ts +1 -0
- package/lib/scripts/retrieve_agenda.js +132 -0
- package/lib/scripts/retrieve_cr_commission.d.ts +1 -0
- package/lib/scripts/retrieve_cr_commission.js +364 -0
- package/lib/scripts/retrieve_cr_seance.d.ts +6 -0
- package/lib/scripts/retrieve_cr_seance.js +347 -0
- package/lib/scripts/retrieve_documents.d.ts +3 -0
- package/lib/scripts/retrieve_documents.js +219 -0
- package/lib/scripts/retrieve_documents.mjs +249 -0
- package/lib/scripts/retrieve_documents.ts +298 -0
- package/lib/scripts/retrieve_open_data.d.ts +1 -0
- package/lib/scripts/retrieve_open_data.js +315 -0
- package/lib/scripts/retrieve_open_data.mjs +217 -0
- package/lib/scripts/retrieve_open_data.ts +268 -0
- package/lib/scripts/retrieve_senateurs_photos.d.ts +1 -0
- package/lib/scripts/retrieve_senateurs_photos.js +147 -0
- package/lib/scripts/retrieve_senateurs_photos.mjs +147 -0
- package/lib/scripts/retrieve_senateurs_photos.ts +177 -0
- package/lib/scripts/retrieve_videos.d.ts +1 -0
- package/lib/scripts/retrieve_videos.js +461 -0
- package/lib/scripts/shared/cli_helpers.d.ts +95 -0
- package/lib/scripts/shared/cli_helpers.js +91 -0
- package/lib/scripts/shared/cli_helpers.ts +36 -0
- package/lib/scripts/shared/util.d.ts +4 -0
- package/lib/scripts/shared/util.js +35 -0
- package/lib/scripts/shared/util.ts +33 -0
- package/lib/scripts/test_iter_load.d.ts +1 -0
- package/lib/scripts/test_iter_load.js +12 -0
- package/lib/src/config.d.ts +22 -0
- package/lib/src/config.js +17 -7
- package/lib/src/conversion_textes.js +5 -1
- package/lib/src/databases.d.ts +2 -1
- package/lib/src/databases_postgres.d.ts +4 -0
- package/lib/src/databases_postgres.js +23 -0
- package/lib/src/datasets.d.ts +4 -0
- package/lib/src/datasets.js +16 -2
- package/lib/src/git.d.ts +1 -0
- package/lib/src/git.js +45 -11
- package/lib/src/index.d.ts +19 -8
- package/lib/src/index.js +6 -1
- package/lib/src/loaders.js +10 -4
- package/lib/src/model/agenda.js +2 -2
- package/lib/src/model/ameli.d.ts +64 -52
- package/lib/src/model/ameli.js +147 -145
- package/lib/src/model/ameli_postgres.d.ts +67 -0
- package/lib/src/model/ameli_postgres.js +150 -0
- package/lib/src/model/commission.d.ts +3 -2
- package/lib/src/model/commission.js +2 -2
- package/lib/src/model/debats.d.ts +38 -66
- package/lib/src/model/debats.js +110 -93
- package/lib/src/model/documents.d.ts +32 -12
- package/lib/src/model/documents.js +171 -130
- package/lib/src/model/dosleg.d.ts +142 -5
- package/lib/src/model/dosleg.js +298 -156
- package/lib/src/model/questions.d.ts +54 -45
- package/lib/src/model/questions.js +89 -87
- package/lib/src/model/scrutins.d.ts +48 -13
- package/lib/src/model/scrutins.js +118 -111
- package/lib/src/model/seance.js +3 -3
- package/lib/src/model/sens.d.ts +109 -179
- package/lib/src/model/sens.js +384 -484
- package/lib/src/model/util.d.ts +0 -8
- package/lib/src/model/util.js +0 -23
- package/lib/src/parsers/texte.js +7 -7
- package/lib/src/raw_types/ameli.d.ts +1651 -803
- package/lib/src/raw_types/ameli.js +1816 -5
- package/lib/src/raw_types/debats.d.ts +353 -180
- package/lib/src/raw_types/debats.js +517 -5
- package/lib/src/raw_types/dosleg.d.ts +2862 -1527
- package/lib/src/raw_types/dosleg.js +4354 -5
- package/lib/src/raw_types/questions.d.ts +671 -395
- package/lib/src/raw_types/questions.js +1303 -5
- package/lib/src/raw_types/sens.d.ts +7743 -8148
- package/lib/src/raw_types/sens.js +10429 -5
- package/lib/src/raw_types_schemats/ameli.d.ts +4 -2
- package/lib/src/raw_types_schemats/debats.d.ts +2 -2
- package/lib/src/raw_types_schemats/dosleg.d.ts +2 -2
- package/lib/src/raw_types_schemats/questions.d.ts +2 -2
- package/lib/src/raw_types_schemats/sens.d.ts +10 -4216
- package/lib/src/scripts/convert_data.js +7 -6
- package/lib/src/scripts/convert_xml_to_html.js +2 -2
- package/lib/src/scripts/data-download.js +3 -2
- package/lib/src/scripts/retrieve_agenda.js +21 -9
- package/lib/src/scripts/retrieve_cr_commission.js +17 -17
- package/lib/src/scripts/retrieve_cr_seance.d.ts +14 -1
- package/lib/src/scripts/retrieve_cr_seance.js +10 -11
- package/lib/src/scripts/retrieve_documents.d.ts +11 -2
- package/lib/src/scripts/retrieve_documents.js +25 -14
- package/lib/src/scripts/retrieve_open_data.js +514 -153
- package/lib/src/scripts/retrieve_senateurs_photos.js +25 -11
- package/lib/src/scripts/retrieve_videos.js +12 -11
- package/lib/src/scripts/shared/cli_helpers.d.ts +1 -6
- package/lib/src/scripts/shared/cli_helpers.js +9 -8
- package/lib/src/scripts/shared/incremental_import_sql.d.ts +2 -0
- package/lib/src/scripts/shared/incremental_import_sql.js +894 -0
- package/lib/src/scripts/shared/prefixed_tables.d.ts +10 -0
- package/lib/src/scripts/shared/prefixed_tables.js +36 -0
- package/lib/src/scripts/shared/schema_version.d.ts +3 -0
- package/lib/src/scripts/shared/schema_version.js +97 -0
- package/lib/src/scripts/shared/staging_import.d.ts +3 -0
- package/lib/src/scripts/shared/staging_import.js +80 -0
- package/lib/src/scripts/shared/staging_metadata_sql.d.ts +1 -0
- package/lib/src/scripts/shared/staging_metadata_sql.js +221 -0
- package/lib/src/scripts/validate_prefixed_tables.d.ts +1 -0
- package/lib/src/scripts/validate_prefixed_tables.js +101 -0
- package/lib/src/types/ameli.d.ts +4 -4
- package/lib/src/types/debats.d.ts +2 -2
- package/lib/src/types/dosleg.d.ts +39 -39
- package/lib/src/types/questions.d.ts +2 -2
- package/lib/src/types/sens.d.ts +0 -2
- package/lib/src/types/texte.d.ts +1 -1
- package/lib/src/utils/cr_spliting.d.ts +9 -6
- package/lib/src/utils/cr_spliting.js +6 -101
- package/lib/src/utils/reunion_odj_building.d.ts +7 -3
- package/lib/src/utils/reunion_parsing.d.ts +2 -1
- package/lib/src/utils/reunion_parsing.js +2 -2
- package/lib/src/videos/match.js +8 -5
- package/lib/src/videos/pipeline.d.ts +6 -2
- package/lib/src/videos/pipeline.js +21 -8
- package/lib/src/videos/search.js +6 -2
- package/lib/strings.d.ts +1 -0
- package/lib/strings.js +18 -0
- package/lib/strings.mjs +18 -0
- package/lib/strings.ts +26 -0
- package/lib/tests/incrementalImportSql.test.d.ts +1 -0
- package/lib/tests/incrementalImportSql.test.js +155 -0
- package/lib/tests/prefixedTables.test.d.ts +1 -0
- package/lib/tests/prefixedTables.test.js +22 -0
- package/lib/tests/schemaVersion.test.d.ts +1 -0
- package/lib/tests/schemaVersion.test.js +23 -0
- package/lib/tests/validatePrefixedTables.test.d.ts +1 -0
- package/lib/tests/validatePrefixedTables.test.js +14 -0
- package/lib/types/agenda.d.ts +44 -0
- package/lib/types/agenda.js +1 -0
- package/lib/types/ameli.d.ts +5 -0
- package/lib/types/ameli.js +1 -0
- package/lib/types/ameli.mjs +13 -0
- package/lib/types/ameli.ts +21 -0
- package/lib/types/compte_rendu.d.ts +83 -0
- package/lib/types/compte_rendu.js +1 -0
- package/lib/types/debats.d.ts +2 -0
- package/lib/types/debats.js +1 -0
- package/lib/types/debats.mjs +2 -0
- package/lib/types/debats.ts +6 -0
- package/lib/types/dosleg.d.ts +70 -0
- package/lib/types/dosleg.js +1 -0
- package/lib/types/dosleg.mjs +151 -0
- package/lib/types/dosleg.ts +284 -0
- package/lib/types/questions.d.ts +2 -0
- package/lib/types/questions.js +1 -0
- package/lib/types/questions.mjs +1 -0
- package/lib/types/questions.ts +3 -0
- package/lib/types/sens.d.ts +10 -0
- package/lib/types/sens.js +1 -0
- package/lib/types/sens.mjs +1 -0
- package/lib/types/sens.ts +12 -0
- package/lib/types/sessions.d.ts +5 -0
- package/lib/types/sessions.js +84 -0
- package/lib/types/sessions.mjs +43 -0
- package/lib/types/sessions.ts +42 -0
- package/lib/types/texte.d.ts +74 -0
- package/lib/types/texte.js +16 -0
- package/lib/types/texte.mjs +16 -0
- package/lib/types/texte.ts +76 -0
- package/lib/typings/windows-1252.d.js +2 -0
- package/lib/typings/windows-1252.d.mjs +2 -0
- package/lib/typings/windows-1252.d.ts +11 -0
- package/lib/utils/cr_spliting.d.ts +28 -0
- package/lib/utils/cr_spliting.js +265 -0
- package/lib/utils/date.d.ts +10 -0
- package/lib/utils/date.js +100 -0
- package/lib/utils/nvs-timecode.d.ts +7 -0
- package/lib/utils/nvs-timecode.js +79 -0
- package/lib/utils/reunion_grouping.d.ts +9 -0
- package/lib/utils/reunion_grouping.js +361 -0
- package/lib/utils/reunion_odj_building.d.ts +5 -0
- package/lib/utils/reunion_odj_building.js +154 -0
- package/lib/utils/reunion_parsing.d.ts +23 -0
- package/lib/utils/reunion_parsing.js +209 -0
- package/lib/utils/scoring.d.ts +14 -0
- package/lib/utils/scoring.js +147 -0
- package/lib/utils/string_cleaning.d.ts +7 -0
- package/lib/utils/string_cleaning.js +57 -0
- package/lib/validators/config.d.ts +9 -0
- package/lib/validators/config.js +10 -0
- package/lib/validators/config.mjs +54 -0
- package/lib/validators/config.ts +79 -0
- package/lib/validators/senat.d.ts +0 -0
- package/lib/validators/senat.js +28 -0
- package/lib/validators/senat.mjs +24 -0
- package/lib/validators/senat.ts +26 -0
- package/package.json +11 -11
|
@@ -1,141 +1,182 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { streamUnsafeQuery } from "../databases_postgres";
|
|
2
|
+
function buildAuteursRapportSql(rapportIdSql) {
|
|
3
|
+
return `
|
|
4
|
+
(
|
|
5
|
+
select coalesce(json_agg(author_rows order by author_rows.ordre_num nulls last), '[]'::json)
|
|
6
|
+
from (
|
|
7
|
+
select
|
|
8
|
+
auteur.prenom as prenom,
|
|
9
|
+
auteur.nomuse as nom_usuel,
|
|
10
|
+
auteur.autmat as matricule,
|
|
11
|
+
ecr.ecrnumtri::text as ordre,
|
|
12
|
+
ecr.ecrnumtri as ordre_num,
|
|
13
|
+
rolsig.rolsiglib as role,
|
|
14
|
+
ecr.ecrqua as qualite
|
|
15
|
+
from senat.dosleg_auteur as auteur
|
|
16
|
+
left join senat.dosleg_ecr as ecr on ecr.autcod = auteur.autcod
|
|
17
|
+
left join senat.dosleg_rolsig as rolsig on rolsig.signataire = ecr.signataire
|
|
18
|
+
where ecr.rapcod = ${rapportIdSql}
|
|
19
|
+
) as author_rows
|
|
20
|
+
)
|
|
21
|
+
`;
|
|
7
22
|
}
|
|
8
|
-
function
|
|
9
|
-
return
|
|
23
|
+
function buildDocumentsAttachesSql(rapportIdSql) {
|
|
24
|
+
return `
|
|
25
|
+
(
|
|
26
|
+
select coalesce(json_agg(attached_rows), '[]'::json)
|
|
27
|
+
from (
|
|
28
|
+
select
|
|
29
|
+
docatt.docatturl as url,
|
|
30
|
+
typatt.typattlib as type_document
|
|
31
|
+
from senat.dosleg_docatt as docatt
|
|
32
|
+
left join senat.dosleg_typatt as typatt on docatt.typattcod = typatt.typattcod
|
|
33
|
+
where docatt.rapcod = ${rapportIdSql}
|
|
34
|
+
) as attached_rows
|
|
35
|
+
)
|
|
36
|
+
`;
|
|
10
37
|
}
|
|
11
|
-
function
|
|
12
|
-
return
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
.
|
|
38
|
+
function buildAuteursTexteSql(texteIdSql) {
|
|
39
|
+
return `
|
|
40
|
+
(
|
|
41
|
+
select coalesce(json_agg(author_rows order by author_rows.ordre_num nulls last), '[]'::json)
|
|
42
|
+
from (
|
|
43
|
+
select
|
|
44
|
+
auteur.prenom as prenom,
|
|
45
|
+
auteur.nomuse as nom_usuel,
|
|
46
|
+
auteur.autmat as matricule,
|
|
47
|
+
ecr.ecrnumtri::text as ordre,
|
|
48
|
+
ecr.ecrnumtri as ordre_num,
|
|
49
|
+
rolsig.rolsiglib as role,
|
|
50
|
+
ecr.ecrqua as qualite
|
|
51
|
+
from senat.dosleg_auteur as auteur
|
|
52
|
+
left join senat.dosleg_ecr as ecr on ecr.autcod = auteur.autcod
|
|
53
|
+
left join senat.dosleg_rolsig as rolsig on rolsig.signataire = ecr.signataire
|
|
54
|
+
where ecr.texcod = ${texteIdSql}
|
|
55
|
+
) as author_rows
|
|
56
|
+
)
|
|
57
|
+
`;
|
|
27
58
|
}
|
|
28
|
-
function
|
|
29
|
-
return
|
|
30
|
-
.withSchema("dosleg")
|
|
31
|
-
.selectFrom("docatt")
|
|
32
|
-
.leftJoin("typatt", "docatt.typattcod", "typatt.typattcod")
|
|
33
|
-
.where("docatt.rapcod", "=", rapportId)
|
|
34
|
-
.select(["docatt.docatturl as url", "typatt.typattlib as type_document"]));
|
|
59
|
+
function stripTrailingHashesSql(expr) {
|
|
60
|
+
return `regexp_replace(${expr}, '#+$', '')`;
|
|
35
61
|
}
|
|
36
|
-
function
|
|
37
|
-
return
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
.else(null)
|
|
45
|
-
.end()
|
|
46
|
-
.as("id"),
|
|
47
|
-
eb
|
|
48
|
-
.case()
|
|
49
|
-
.when("rap.typurl", "=", "I")
|
|
50
|
-
.then(stripTrailingHashes(concat(val("https://www.senat.fr/rap/"), rtrim(ref("rap.rapurl")))))
|
|
51
|
-
.else(stripTrailingHashes(rtrim(ref("rap.rapurl"))))
|
|
52
|
-
.end()
|
|
53
|
-
.as("url"),
|
|
54
|
-
rtrim(ref("denrap.libdenrap")).as("type"),
|
|
55
|
-
rtrim(rtrim(ref("rap.raptil"))).as("titre"),
|
|
56
|
-
rtrim(rtrim(ref("rap.rapsoustit"))).as("sous_titre"),
|
|
57
|
-
toDateString(ref("rap.date_depot")).as("date"),
|
|
58
|
-
"rap.sesann as session",
|
|
59
|
-
auteursRapport(ref("rap.rapcod")).as("auteurs"),
|
|
60
|
-
documentsAttaches(ref("rap.rapcod")).as("documents_annexes"),
|
|
61
|
-
];
|
|
62
|
+
function rapportIdSql() {
|
|
63
|
+
return `
|
|
64
|
+
case
|
|
65
|
+
when rap.rapurl is not null then
|
|
66
|
+
${stripTrailingHashesSql("regexp_replace(trim(rap.rapurl), '^(.*/)?(.*?)(\\.html)?$', '\\2')")}
|
|
67
|
+
else null
|
|
68
|
+
end
|
|
69
|
+
`;
|
|
62
70
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
.leftJoin("lecass", "lecass.lecassidt", "lecassrap.lecassidt")
|
|
71
|
-
.leftJoin("lecture", "lecture.lecidt", "lecass.lecidt")
|
|
72
|
-
.leftJoin("loi", "loi.loicod", "lecture.loicod")
|
|
73
|
-
.select((args) => ["loi.signet as signet_dossier", ...selectRapportAttributes(args)]);
|
|
74
|
-
export function rapports(lectureAssembleeId) {
|
|
75
|
-
return jsonArrayFrom(baseQueryRapports.select(selectRapportAttributes).where("lecassrap.lecassidt", "=", lectureAssembleeId));
|
|
71
|
+
function rapportUrlSql() {
|
|
72
|
+
return `
|
|
73
|
+
case
|
|
74
|
+
when rap.typurl = 'I' then ${stripTrailingHashesSql("'https://www.senat.fr/rap/' || rtrim(rap.rapurl)")}
|
|
75
|
+
else ${stripTrailingHashesSql("rtrim(rap.rapurl)")}
|
|
76
|
+
end
|
|
77
|
+
`;
|
|
76
78
|
}
|
|
77
|
-
function
|
|
78
|
-
return
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
"auteur.prenom as prenom",
|
|
86
|
-
"auteur.nomuse as nom_usuel",
|
|
87
|
-
"auteur.autmat as matricule",
|
|
88
|
-
"ecr.ecrnumtri as ordre",
|
|
89
|
-
"rolsig.rolsiglib as role",
|
|
90
|
-
"ecr.ecrqua as qualite",
|
|
91
|
-
])
|
|
92
|
-
.orderBy("ecr.ecrnumtri", "asc"));
|
|
79
|
+
function texteIdSql() {
|
|
80
|
+
return `
|
|
81
|
+
case
|
|
82
|
+
when texte.texurl is not null then
|
|
83
|
+
${stripTrailingHashesSql("regexp_replace(trim(texte.texurl), '^(.*/)?(.*?)(\\.html)?$', '\\2')")}
|
|
84
|
+
else null
|
|
85
|
+
end
|
|
86
|
+
`;
|
|
93
87
|
}
|
|
94
|
-
function
|
|
95
|
-
return
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
.then(stripTrailingHashes(sql `regexp_replace(trim(${ref("texte.texurl")}), '^(.*/)?(.*?)(\\.html)?$', '\\2')`))
|
|
102
|
-
.else(null)
|
|
103
|
-
.end()
|
|
104
|
-
.as("id"),
|
|
105
|
-
eb
|
|
106
|
-
.case()
|
|
107
|
-
.when("texte.typurl", "=", "I")
|
|
108
|
-
.then(stripTrailingHashes(concat(val("https://www.senat.fr/leg/"), rtrim(ref("texte.texurl")))))
|
|
109
|
-
.else(stripTrailingHashes(rtrim(ref("texte.texurl"))))
|
|
110
|
-
.end()
|
|
111
|
-
.as("url"),
|
|
112
|
-
rtrim(ref("oritxt.oritxtlib")).as("origine"),
|
|
113
|
-
"oritxt.oriordre as ordre_origine",
|
|
114
|
-
"oritxt.oritxtado as code_adoption",
|
|
115
|
-
"oritxt.oritxtmod as modification",
|
|
116
|
-
rtrim(ref("typtxt.typtxtlib")).as("type"),
|
|
117
|
-
toDateString(ref("texte.txtoritxtdat")).as("date"),
|
|
118
|
-
"texte.sesann as session",
|
|
119
|
-
auteursTexte(ref("texte.texcod")).as("auteurs"),
|
|
120
|
-
];
|
|
88
|
+
function texteUrlSql() {
|
|
89
|
+
return `
|
|
90
|
+
case
|
|
91
|
+
when texte.typurl = 'I' then ${stripTrailingHashesSql("'https://www.senat.fr/leg/' || rtrim(texte.texurl)")}
|
|
92
|
+
else ${stripTrailingHashesSql("rtrim(texte.texurl)")}
|
|
93
|
+
end
|
|
94
|
+
`;
|
|
121
95
|
}
|
|
122
|
-
|
|
123
|
-
.
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
96
|
+
function baseRapportsSelect(includeSignetDossier) {
|
|
97
|
+
const signet = includeSignetDossier ? "loi.signet as signet_dossier," : "";
|
|
98
|
+
return `
|
|
99
|
+
select
|
|
100
|
+
${signet}
|
|
101
|
+
rap.rapnum as numero,
|
|
102
|
+
raporg.orgcod as code_organisme,
|
|
103
|
+
${rapportIdSql()} as id,
|
|
104
|
+
${rapportUrlSql()} as url,
|
|
105
|
+
rtrim(denrap.libdenrap) as type,
|
|
106
|
+
rtrim(rtrim(rap.raptil)) as titre,
|
|
107
|
+
rtrim(rtrim(rap.rapsoustit)) as sous_titre,
|
|
108
|
+
to_char(rap.date_depot, 'YYYY-MM-DD') as date,
|
|
109
|
+
rap.sesann::int as session,
|
|
110
|
+
${buildAuteursRapportSql("rap.rapcod")} as auteurs,
|
|
111
|
+
${buildDocumentsAttachesSql("rap.rapcod")} as documents_annexes
|
|
112
|
+
`;
|
|
135
113
|
}
|
|
136
|
-
|
|
137
|
-
|
|
114
|
+
function baseTextesSelect(includeSignetDossier) {
|
|
115
|
+
const signet = includeSignetDossier ? "loi.signet as signet_dossier," : "";
|
|
116
|
+
return `
|
|
117
|
+
select
|
|
118
|
+
${signet}
|
|
119
|
+
texte.texnum as numero,
|
|
120
|
+
texte.orgcod as code_organisme,
|
|
121
|
+
${texteIdSql()} as id,
|
|
122
|
+
${texteUrlSql()} as url,
|
|
123
|
+
rtrim(oritxt.oritxtlib) as origine,
|
|
124
|
+
oritxt.oriordre as ordre_origine,
|
|
125
|
+
oritxt.oritxtado as code_adoption,
|
|
126
|
+
oritxt.oritxtmod as modification,
|
|
127
|
+
rtrim(typtxt.typtxtlib) as type,
|
|
128
|
+
to_char(texte.txtoritxtdat, 'YYYY-MM-DD') as date,
|
|
129
|
+
texte.sesann::int as session,
|
|
130
|
+
${buildAuteursTexteSql("texte.texcod")} as auteurs,
|
|
131
|
+
null::text as titre
|
|
132
|
+
`;
|
|
138
133
|
}
|
|
139
|
-
|
|
140
|
-
return
|
|
134
|
+
function buildFindAllRapportsQuery() {
|
|
135
|
+
return {
|
|
136
|
+
params: [],
|
|
137
|
+
query: `
|
|
138
|
+
${baseRapportsSelect(true)}
|
|
139
|
+
from senat.dosleg_rap as rap
|
|
140
|
+
left join senat.dosleg_raporg as raporg on raporg.rapcod = rap.rapcod
|
|
141
|
+
left join senat.dosleg_denrap as denrap on denrap.coddenrap = rap.coddenrap
|
|
142
|
+
left join senat.dosleg_lecassrap as lecassrap on lecassrap.rapcod = rap.rapcod
|
|
143
|
+
left join senat.dosleg_lecass as lecass on lecass.lecassidt = lecassrap.lecassidt
|
|
144
|
+
left join senat.dosleg_lecture as lecture on lecture.lecidt = lecass.lecidt
|
|
145
|
+
left join senat.dosleg_loi as loi on loi.loicod = lecture.loicod
|
|
146
|
+
`,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function buildFindAllTextesQuery() {
|
|
150
|
+
return {
|
|
151
|
+
params: [],
|
|
152
|
+
query: `
|
|
153
|
+
${baseTextesSelect(true)}
|
|
154
|
+
from senat.dosleg_texte as texte
|
|
155
|
+
left join senat.dosleg_oritxt as oritxt on oritxt.oritxtcod = texte.oritxtcod
|
|
156
|
+
left join senat.dosleg_typtxt as typtxt on typtxt.typtxtcod = texte.typtxtcod
|
|
157
|
+
left join senat.dosleg_lecass as lecass on lecass.lecassidt = texte.lecassidt
|
|
158
|
+
left join senat.dosleg_lecture as lecture on lecture.lecidt = lecass.lecidt
|
|
159
|
+
left join senat.dosleg_loi as loi on loi.loicod = lecture.loicod
|
|
160
|
+
order by array_position(array['0','2','1'], oritxt.oriordre)
|
|
161
|
+
`,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
export async function* findAllTextes() {
|
|
165
|
+
const { query, params } = buildFindAllTextesQuery();
|
|
166
|
+
for await (const row of streamUnsafeQuery(query, params)) {
|
|
167
|
+
yield {
|
|
168
|
+
...row,
|
|
169
|
+
auteurs: row.auteurs ?? [],
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
export async function* findAllRapports() {
|
|
174
|
+
const { query, params } = buildFindAllRapportsQuery();
|
|
175
|
+
for await (const row of streamUnsafeQuery(query, params)) {
|
|
176
|
+
yield {
|
|
177
|
+
...row,
|
|
178
|
+
auteurs: row.auteurs ?? [],
|
|
179
|
+
documents_annexes: row.documents_annexes ?? [],
|
|
180
|
+
};
|
|
181
|
+
}
|
|
141
182
|
}
|
|
@@ -1,7 +1,144 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
export interface DossierThemeRow {
|
|
2
|
+
libelle: string;
|
|
3
|
+
}
|
|
4
|
+
type DossierAuteurRow = {
|
|
5
|
+
matricule: string | null;
|
|
6
|
+
nom_usuel: string;
|
|
7
|
+
ordre: string | null;
|
|
8
|
+
prenom: string | null;
|
|
9
|
+
qualite: string | null;
|
|
10
|
+
role: string | null;
|
|
11
|
+
};
|
|
12
|
+
type DossierDocumentAnnexeRow = {
|
|
13
|
+
type_document: string;
|
|
14
|
+
url: string | null;
|
|
15
|
+
};
|
|
16
|
+
type DossierTexte = {
|
|
17
|
+
auteurs?: DossierAuteurRow[] | null;
|
|
18
|
+
code_adoption?: string | null;
|
|
19
|
+
code_organisme?: string | null;
|
|
20
|
+
date?: string | null;
|
|
21
|
+
id?: string | null;
|
|
22
|
+
modification?: string | null;
|
|
23
|
+
numero?: number | string | null;
|
|
24
|
+
ordre_origine?: string | null;
|
|
25
|
+
origine?: string | null;
|
|
26
|
+
session?: number | null;
|
|
27
|
+
titre?: string | null;
|
|
28
|
+
type?: string | null;
|
|
29
|
+
url?: string | null;
|
|
30
|
+
};
|
|
31
|
+
type DossierRapport = {
|
|
32
|
+
auteurs?: DossierAuteurRow[] | null;
|
|
33
|
+
code_organisme?: string | null;
|
|
34
|
+
date?: string | null;
|
|
35
|
+
documents_annexes?: DossierDocumentAnnexeRow[] | null;
|
|
36
|
+
id?: string | null;
|
|
37
|
+
numero?: number | string | null;
|
|
38
|
+
session?: number | null;
|
|
39
|
+
sous_titre?: string | null;
|
|
40
|
+
titre?: string | null;
|
|
41
|
+
type?: string | null;
|
|
42
|
+
url?: string | null;
|
|
43
|
+
};
|
|
44
|
+
type DossierDateSeance = {
|
|
45
|
+
date?: string | null;
|
|
46
|
+
};
|
|
47
|
+
type DossierLectureAssemblee = {
|
|
48
|
+
assemblee?: string | null;
|
|
49
|
+
code_organisme?: string | null;
|
|
50
|
+
date_publication_amendements_commission?: string | null;
|
|
51
|
+
date_publication_amendements_seance?: string | null;
|
|
52
|
+
dates_seances?: DossierDateSeance[] | null;
|
|
53
|
+
libelle_organisme?: string | null;
|
|
54
|
+
loi_intitule_modifie?: string | null;
|
|
55
|
+
numero_petite_loi?: number | null;
|
|
56
|
+
ordre_lecture_assemblee?: string | null;
|
|
57
|
+
origine_proposition?: string | null;
|
|
58
|
+
rapports?: DossierRapport[] | null;
|
|
59
|
+
session?: number | null;
|
|
60
|
+
textes?: DossierTexte[] | null;
|
|
61
|
+
url_cr_debats?: string | null;
|
|
62
|
+
url_petite_loi?: string | null;
|
|
63
|
+
};
|
|
64
|
+
type DossierLecture = {
|
|
65
|
+
lectures_assemblee?: DossierLectureAssemblee[] | null;
|
|
66
|
+
libelle?: string | null;
|
|
67
|
+
ordre_lecture?: number | string | null;
|
|
68
|
+
type_lecture?: string | null;
|
|
69
|
+
};
|
|
70
|
+
export interface DossierLegislatifResult {
|
|
71
|
+
code: string | null;
|
|
72
|
+
code_dossier_an: string | null;
|
|
73
|
+
code_nature_dossier: string | null;
|
|
74
|
+
code_organisme_resolution: string | null;
|
|
75
|
+
condition_saisine_CoC: string | null;
|
|
76
|
+
date_decision_CoC: string | null;
|
|
77
|
+
date_opposition_procedure_acceleree: string | null;
|
|
78
|
+
date_procedure_acceleree: string | null;
|
|
79
|
+
date_publication_JO: string | null;
|
|
80
|
+
date_publication_JO_correctif_1: string | null;
|
|
81
|
+
date_publication_JO_correctif_2: string | null;
|
|
82
|
+
date_promulgation: string | null;
|
|
83
|
+
date_retrait_procedure_acceleree: string | null;
|
|
84
|
+
date_saisine_CoC: string | null;
|
|
85
|
+
etat_dossier: string | null;
|
|
86
|
+
lectures: DossierLecture[];
|
|
87
|
+
libelle_decision_CoC: string | null;
|
|
88
|
+
libelle_type_dossier: string | null;
|
|
89
|
+
mot_cle: string | null;
|
|
90
|
+
num_decision_CoC: string | null;
|
|
91
|
+
numero: string | null;
|
|
92
|
+
numero_JO: string | null;
|
|
93
|
+
numero_JO_correctif_1: string | null;
|
|
94
|
+
numero_JO_correctif_2: string | null;
|
|
95
|
+
signet: string;
|
|
96
|
+
signet_alternatif: string | null;
|
|
97
|
+
themes: DossierThemeRow[];
|
|
98
|
+
titre: string | null;
|
|
99
|
+
titre_JO: string;
|
|
100
|
+
titre_court: string | null;
|
|
101
|
+
titre_long: string | null;
|
|
102
|
+
titre_long_original: string | null;
|
|
103
|
+
urgence: string | null;
|
|
104
|
+
url: string;
|
|
105
|
+
url_JO: string | null;
|
|
106
|
+
url_JO_correctif_1: string | null;
|
|
107
|
+
url_JO_correctif_2: string | null;
|
|
108
|
+
url_decision_CoC: string | null;
|
|
109
|
+
url_dossier_assemblee_nationale: string | null;
|
|
110
|
+
url_dossier_CoC: string | null;
|
|
111
|
+
url_ordonnance: string | null;
|
|
112
|
+
url_presentation_articles: string | null;
|
|
113
|
+
}
|
|
114
|
+
export type DossierWithLectures = DossierLegislatifResult & {
|
|
115
|
+
actes_legislatifs?: ActeLegislatif[] | null;
|
|
116
|
+
lectures?: DossierLecture[] | null;
|
|
117
|
+
numero_JO?: string | number | null;
|
|
118
|
+
signet: string;
|
|
119
|
+
themes?: DossierThemeRow[] | null;
|
|
120
|
+
url_JO?: string | null;
|
|
121
|
+
url_decision_CoC?: string | null;
|
|
122
|
+
url_dossier_CoC?: string | null;
|
|
123
|
+
};
|
|
124
|
+
export type ActeLegislatif = {
|
|
125
|
+
adoption?: string;
|
|
126
|
+
chambre: "AN" | "SN";
|
|
127
|
+
code_acte: string;
|
|
128
|
+
code_organisme: string | null;
|
|
129
|
+
date: string;
|
|
130
|
+
date_publication_JO?: string | null;
|
|
131
|
+
id?: string | null;
|
|
132
|
+
libelle: string;
|
|
133
|
+
numero?: string | number | null;
|
|
134
|
+
numero_JO?: string | number | null;
|
|
135
|
+
session?: number | null;
|
|
136
|
+
signet_dossier: string;
|
|
137
|
+
texte_url?: string | null;
|
|
138
|
+
uid: string;
|
|
139
|
+
url_legifrance?: string | null;
|
|
140
|
+
};
|
|
141
|
+
export declare function findAllDossiers(): AsyncGenerator<DossierLegislatifResult, void, unknown>;
|
|
4
142
|
export declare function getCodeActeLecture(codeNatureDossier: string, typeLecture: string, assemblee: string): string | null;
|
|
5
|
-
export
|
|
6
|
-
export declare function buildActesLegislatifs(dossier: any): any[];
|
|
143
|
+
export declare function buildActesLegislatifs(dossier: DossierWithLectures): ActeLegislatif[];
|
|
7
144
|
export {};
|