@tricoteuses/senat 1.3.2 → 1.3.5

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 (42) hide show
  1. package/lib/config.js +4 -6
  2. package/lib/databases.js +34 -75
  3. package/lib/datasets.js +20 -28
  4. package/lib/index.d.ts +5 -0
  5. package/lib/index.js +4 -43
  6. package/lib/loaders.js +56 -74
  7. package/lib/model/ameli.js +8 -11
  8. package/lib/model/dosleg.js +47 -52
  9. package/lib/model/index.js +4 -13
  10. package/lib/model/questions.js +15 -18
  11. package/lib/model/sens.d.ts +1 -1
  12. package/lib/model/sens.js +65 -71
  13. package/lib/model/texte.js +17 -25
  14. package/lib/model/util.js +13 -21
  15. package/lib/raw_types/ameli.js +1 -2
  16. package/lib/raw_types/debats.js +1 -2
  17. package/lib/raw_types/dosleg.js +1 -2
  18. package/lib/raw_types/questions.js +1 -2
  19. package/lib/raw_types/sens.js +1 -2
  20. package/lib/raw_types_schemats/ameli.js +1 -2
  21. package/lib/raw_types_schemats/debats.js +1 -2
  22. package/lib/raw_types_schemats/dosleg.js +1 -2
  23. package/lib/raw_types_schemats/questions.js +1 -2
  24. package/lib/raw_types_schemats/sens.js +1 -2
  25. package/lib/scripts/convert_data.js +78 -83
  26. package/lib/scripts/datautil.js +9 -13
  27. package/lib/scripts/parse_textes.js +23 -28
  28. package/lib/scripts/retrieve_documents.js +56 -61
  29. package/lib/scripts/retrieve_open_data.js +44 -49
  30. package/lib/scripts/retrieve_senateurs_photos.js +31 -36
  31. package/lib/scripts/shared/cli_helpers.js +9 -12
  32. package/lib/scripts/shared/util.js +7 -15
  33. package/lib/strings.js +4 -10
  34. package/lib/types/ameli.js +5 -8
  35. package/lib/types/debats.js +2 -5
  36. package/lib/types/dosleg.js +28 -31
  37. package/lib/types/questions.js +1 -2
  38. package/lib/types/sens.js +1 -2
  39. package/lib/types/sessions.js +2 -5
  40. package/lib/types/texte.js +2 -5
  41. package/lib/validators/config.js +4 -7
  42. package/package.json +4 -4
@@ -1,32 +1,27 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findAll = findAll;
4
- exports.findSenatTexteUrls = findSenatTexteUrls;
5
- exports.findSenatRapportUrls = findSenatRapportUrls;
6
- const kysely_1 = require("kysely");
7
- const postgres_1 = require("kysely/helpers/postgres");
8
- const databases_1 = require("../databases");
9
- const util_1 = require("./util");
1
+ import { sql } from "kysely";
2
+ import { jsonArrayFrom } from "kysely/helpers/postgres";
3
+ import { dbDosleg } from "../databases";
4
+ import { concat, removeSubstring, rtrim, toDateString } from "./util";
10
5
  function orderOrdreOrigineTexte(expr) {
11
- return (0, kysely_1.sql) `array_position(array['0','2','1'], ${expr})`;
6
+ return sql `array_position(array['0','2','1'], ${expr})`;
12
7
  }
13
8
  function datesSeances(lectureAssembleeId) {
14
- return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
9
+ return jsonArrayFrom(dbDosleg
15
10
  .selectFrom("date_seance")
16
11
  .where("date_seance.lecidt", "=", lectureAssembleeId)
17
12
  .select(({ ref }) => [
18
- (0, util_1.toDateString)(ref("date_seance.date_s")).as("date"),
13
+ toDateString(ref("date_seance.date_s")).as("date"),
19
14
  ]));
20
15
  }
21
16
  function organismesRapport(rapportId) {
22
- return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
17
+ return jsonArrayFrom(dbDosleg
23
18
  .selectFrom("org")
24
19
  .leftJoin("raporg", "raporg.orgcod", "org.orgcod")
25
20
  .where("raporg.rapcod", "=", rapportId)
26
21
  .select(["org.orgnom as libelle"]));
27
22
  }
28
23
  function auteursRapport(rapportId) {
29
- return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
24
+ return jsonArrayFrom(dbDosleg
30
25
  .selectFrom("auteur")
31
26
  .leftJoin("ecr", "ecr.autcod", "auteur.autcod")
32
27
  .where("ecr.rapcod", "=", rapportId)
@@ -38,28 +33,28 @@ function auteursRapport(rapportId) {
38
33
  .orderBy("ecr.ecrnumtri", "asc"));
39
34
  }
40
35
  function rapports(lectureAssembleeId) {
41
- return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
36
+ return jsonArrayFrom(dbDosleg
42
37
  .selectFrom("rap")
43
38
  .leftJoin("lecassrap", "lecassrap.rapcod", "rap.rapcod")
44
39
  .leftJoin("denrap", "denrap.coddenrap", "rap.coddenrap")
45
40
  .where("lecassrap.lecassidt", "=", lectureAssembleeId)
46
41
  .select(({ eb, ref, val }) => [
47
42
  "rap.rapnum as numero",
48
- (0, util_1.rtrim)(ref("denrap.libdenrap")).as("type_rapport"),
43
+ rtrim(ref("denrap.libdenrap")).as("type_rapport"),
49
44
  eb
50
45
  .case()
51
46
  .when("rap.typurl", "=", "I")
52
- .then((0, util_1.concat)(val("https://www.senat.fr/rap/"), (0, util_1.rtrim)(ref("rap.rapurl"))))
53
- .else((0, util_1.rtrim)(ref("rap.rapurl")))
47
+ .then(concat(val("https://www.senat.fr/rap/"), rtrim(ref("rap.rapurl"))))
48
+ .else(rtrim(ref("rap.rapurl")))
54
49
  .end()
55
50
  .as("url"),
56
- (0, util_1.toDateString)(ref("rap.date_depot")).as("date_depot"),
51
+ toDateString(ref("rap.date_depot")).as("date_depot"),
57
52
  auteursRapport(ref("rap.rapcod")).as("auteurs"),
58
53
  organismesRapport(ref("rap.rapcod")).as("organismes"),
59
54
  ]));
60
55
  }
61
56
  function auteursTexte(texteId) {
62
- return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
57
+ return jsonArrayFrom(dbDosleg
63
58
  .selectFrom("auteur")
64
59
  .leftJoin("ecr", "ecr.autcod", "auteur.autcod")
65
60
  .where("ecr.texcod", "=", texteId)
@@ -71,7 +66,7 @@ function auteursTexte(texteId) {
71
66
  .orderBy("ecr.ecrnumtri", "asc"));
72
67
  }
73
68
  function textes(lectureAssembleeId) {
74
- return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
69
+ return jsonArrayFrom(dbDosleg
75
70
  .selectFrom("texte")
76
71
  .leftJoin("oritxt", "oritxt.oritxtcod", "texte.oritxtcod")
77
72
  .leftJoin("typtxt", "typtxt.typtxtcod", "texte.typtxtcod")
@@ -81,33 +76,33 @@ function textes(lectureAssembleeId) {
81
76
  eb
82
77
  .case()
83
78
  .when("texte.typurl", "=", "I")
84
- .then((0, util_1.removeSubstring)(ref("texte.texurl"), val(".html")))
79
+ .then(removeSubstring(ref("texte.texurl"), val(".html")))
85
80
  .else(null)
86
81
  .end()
87
82
  .as("id"),
88
83
  eb
89
84
  .case()
90
85
  .when("texte.typurl", "=", "I")
91
- .then((0, util_1.concat)(val("https://www.senat.fr/leg/"), (0, util_1.rtrim)(ref("texte.texurl"))))
92
- .else((0, util_1.rtrim)(ref("texte.texurl")))
86
+ .then(concat(val("https://www.senat.fr/leg/"), rtrim(ref("texte.texurl"))))
87
+ .else(rtrim(ref("texte.texurl")))
93
88
  .end()
94
89
  .as("url"),
95
- (0, util_1.rtrim)(ref("oritxt.oritxtlib")).as("origine_texte"),
96
- (0, util_1.rtrim)(ref("typtxt.typtxtlib")).as("type_texte"),
97
- (0, util_1.toDateString)(ref("texte.txtoritxtdat")).as("date"),
90
+ rtrim(ref("oritxt.oritxtlib")).as("origine_texte"),
91
+ rtrim(ref("typtxt.typtxtlib")).as("type_texte"),
92
+ toDateString(ref("texte.txtoritxtdat")).as("date"),
98
93
  "sesann as session",
99
94
  auteursTexte(ref("texte.texcod")).as("auteurs"),
100
95
  ])
101
96
  .orderBy(({ ref }) => orderOrdreOrigineTexte(ref("oritxt.oriordre"))));
102
97
  }
103
98
  function lecturesAssemblee(lectureId) {
104
- return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
99
+ return jsonArrayFrom(dbDosleg
105
100
  .selectFrom("lecass")
106
101
  .where("lecass.lecidt", "=", lectureId)
107
102
  .leftJoin("ass", "ass.codass", "lecass.codass")
108
103
  .leftJoin("org", "org.orgcod", "lecass.orgcod")
109
104
  .select(({ ref }) => [
110
- (0, util_1.rtrim)(ref("ass.libass")).as("assemblee"),
105
+ rtrim(ref("ass.libass")).as("assemblee"),
111
106
  "org.orgnom as libelle_organisme",
112
107
  "org.orgcod as code_organisme",
113
108
  "lecass.ordreass as ordre_lecture_assemblee",
@@ -118,71 +113,71 @@ function lecturesAssemblee(lectureId) {
118
113
  .orderBy("lecass.ordreass", "asc"));
119
114
  }
120
115
  function lectures(loiId) {
121
- return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
116
+ return jsonArrayFrom(dbDosleg
122
117
  .selectFrom("lecture")
123
118
  .leftJoin("typlec", "typlec.typleccod", "lecture.typleccod")
124
119
  .where("lecture.loicod", "=", loiId)
125
120
  .select(({ ref }) => [
126
- (0, util_1.rtrim)(ref("typlec.typleclib")).as("type_lecture"),
127
- (0, util_1.rtrim)(ref("lecture.leccom")).as("libelle"),
121
+ rtrim(ref("typlec.typleclib")).as("type_lecture"),
122
+ rtrim(ref("lecture.leccom")).as("libelle"),
128
123
  "typlec.typlecord as ordre_lecture",
129
124
  lecturesAssemblee(ref("lecture.lecidt")).as("lectures_assemblee"),
130
125
  ])
131
126
  .orderBy("typlec.typlecord", "asc"));
132
127
  }
133
128
  function themes(loiId) {
134
- return (0, postgres_1.jsonArrayFrom)(databases_1.dbDosleg
129
+ return jsonArrayFrom(dbDosleg
135
130
  .selectFrom("the")
136
131
  .leftJoin("loithe", "loithe.thecle", "the.thecle")
137
132
  .where("loithe.loicod", "=", loiId)
138
133
  .select(["the.thelib as libelle"]));
139
134
  }
140
- const findAllQuery = databases_1.dbDosleg
135
+ const findAllQuery = dbDosleg
141
136
  .selectFrom("loi")
142
137
  .leftJoin("typloi", "typloi.typloicod", "loi.typloicod")
143
138
  .leftJoin("etaloi", "etaloi.etaloicod", "loi.etaloicod")
144
139
  .select(({ eb, ref, val }) => [
145
140
  "loi.signet as signet",
146
- (0, util_1.concat)(val("https://www.senat.fr/dossier-legislatif/"), ref("loi.signet"), val(".html")).as("url"),
147
- (0, util_1.concat)((0, util_1.rtrim)(ref("typloi.typloiden")), val(" "), (0, util_1.rtrim)(ref("loi.loitit"))).as("titre"),
148
- (0, util_1.rtrim)(ref("loi.loient")).as("titre_court"),
149
- (0, util_1.rtrim)(ref("typloi.groupe")).as("code_nature_dossier"),
150
- (0, util_1.rtrim)(ref("typloi.typloilib")).as("libelle_type_dossier"),
151
- (0, util_1.rtrim)(ref("etaloi.etaloilib")).as("etat_dossier"),
141
+ concat(val("https://www.senat.fr/dossier-legislatif/"), ref("loi.signet"), val(".html")).as("url"),
142
+ concat(rtrim(ref("typloi.typloiden")), val(" "), rtrim(ref("loi.loitit"))).as("titre"),
143
+ rtrim(ref("loi.loient")).as("titre_court"),
144
+ rtrim(ref("typloi.groupe")).as("code_nature_dossier"),
145
+ rtrim(ref("typloi.typloilib")).as("libelle_type_dossier"),
146
+ rtrim(ref("etaloi.etaloilib")).as("etat_dossier"),
152
147
  "loi.url_an as url_dossier_assemblee_nationale",
153
- (0, util_1.toDateString)(ref("loi.date_decision")).as("date_decision_CoC"),
148
+ toDateString(ref("loi.date_decision")).as("date_decision_CoC"),
154
149
  "loi.num_decision as num_decision_CoC",
155
150
  "loi.deccocurl as url_decision_CoC",
156
- (0, util_1.toDateString)(ref("loi.saisine_date")).as("date_saisine_CoC"),
151
+ toDateString(ref("loi.saisine_date")).as("date_saisine_CoC"),
157
152
  "loi.saisine_par as condition_saisine_CoC",
158
- (0, util_1.toDateString)(ref("loi.date_loi")).as("date_promulgation"),
153
+ toDateString(ref("loi.date_loi")).as("date_promulgation"),
159
154
  "loi.numero as numero_loi",
160
155
  eb
161
156
  .case()
162
157
  .when("loi.loititjo", "is not", null)
163
- .then((0, util_1.concat)((0, util_1.rtrim)(ref("typloi.typloiden")), val(" "), (0, util_1.rtrim)(ref("loi.loititjo"))))
158
+ .then(concat(rtrim(ref("typloi.typloiden")), val(" "), rtrim(ref("loi.loititjo"))))
164
159
  .else("")
165
160
  .end()
166
161
  .as("titre_JO"),
167
- (0, util_1.toDateString)(ref("loi.loidatjo")).as("date_publication_JO"),
162
+ toDateString(ref("loi.loidatjo")).as("date_publication_JO"),
168
163
  "loi.loinumjo as numero_JO",
169
164
  "loi.url_jo as url_JO",
170
165
  lectures(ref("loi.loicod")).as("lectures"),
171
166
  themes(ref("loi.loicod")).as("themes"),
172
167
  ])
173
168
  .$narrowType();
174
- function findAll() {
169
+ export function findAll() {
175
170
  return findAllQuery.stream();
176
171
  }
177
- function findSenatTexteUrls(sessions = []) {
178
- return databases_1.dbDosleg
172
+ export function findSenatTexteUrls(sessions = []) {
173
+ return dbDosleg
179
174
  .selectFrom("texte")
180
175
  .where("texurl", "is not", null)
181
176
  .where("typurl", "=", "I")
182
177
  .$if(sessions.length > 0, (qb) => qb.where("sesann", "in", sessions))
183
178
  .select(({ eb, ref }) => [
184
179
  "sesann as session",
185
- (0, util_1.rtrim)(ref("texurl")).as("url"),
180
+ rtrim(ref("texurl")).as("url"),
186
181
  eb
187
182
  .case()
188
183
  .when("oritxtcod", "=", "1")
@@ -194,13 +189,13 @@ function findSenatTexteUrls(sessions = []) {
194
189
  .$narrowType()
195
190
  .stream();
196
191
  }
197
- function findSenatRapportUrls(sessions = []) {
198
- return databases_1.dbDosleg
192
+ export function findSenatRapportUrls(sessions = []) {
193
+ return dbDosleg
199
194
  .selectFrom("rap")
200
195
  .where("rapurl", "is not", null)
201
196
  .where("typurl", "=", "I")
202
197
  .$if(sessions.length > 0, (qb) => qb.where("sesann", "in", sessions))
203
- .select(({ ref }) => [(0, util_1.rtrim)(ref("rapurl")).as("url"), "sesann as session"])
198
+ .select(({ ref }) => [rtrim(ref("rapurl")).as("url"), "sesann as session"])
204
199
  .$narrowType()
205
200
  .stream();
206
201
  }
@@ -1,13 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findAllOrganismes = exports.findAllCirconscriptions = exports.findAllSens = exports.findAllQuestions = exports.findAllLois = exports.findAllAmendements = void 0;
4
- var ameli_1 = require("./ameli");
5
- Object.defineProperty(exports, "findAllAmendements", { enumerable: true, get: function () { return ameli_1.findAll; } });
6
- var dosleg_1 = require("./dosleg");
7
- Object.defineProperty(exports, "findAllLois", { enumerable: true, get: function () { return dosleg_1.findAll; } });
8
- var questions_1 = require("./questions");
9
- Object.defineProperty(exports, "findAllQuestions", { enumerable: true, get: function () { return questions_1.findAll; } });
10
- var sens_1 = require("./sens");
11
- Object.defineProperty(exports, "findAllSens", { enumerable: true, get: function () { return sens_1.findAll; } });
12
- Object.defineProperty(exports, "findAllCirconscriptions", { enumerable: true, get: function () { return sens_1.findAllCirconscriptions; } });
13
- Object.defineProperty(exports, "findAllOrganismes", { enumerable: true, get: function () { return sens_1.findAllOrganismes; } });
1
+ export { findAll as findAllAmendements } from "./ameli";
2
+ export { findAll as findAllLois } from "./dosleg";
3
+ export { findAll as findAllQuestions } from "./questions";
4
+ export { findAll as findAllSens, findAllCirconscriptions, findAllOrganismes, } from "./sens";
@@ -1,15 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findAll = findAll;
4
- const postgres_1 = require("kysely/helpers/postgres");
5
- const databases_1 = require("../databases");
6
- const util_1 = require("./util");
1
+ import { jsonArrayFrom } from "kysely/helpers/postgres";
2
+ import { dbQuestions } from "../databases";
3
+ import { expandToRows, rtrim, toDateString } from "./util";
7
4
  function reponses(questionId) {
8
- return (0, postgres_1.jsonArrayFrom)(databases_1.dbQuestions
5
+ return jsonArrayFrom(dbQuestions
9
6
  .selectFrom("tam_reponses")
10
7
  .where("tam_reponses.idque", "=", questionId)
11
8
  .select(({ ref }) => [
12
- (0, util_1.toDateString)(ref("tam_reponses.datejorep")).as("date_reponse_JO"),
9
+ toDateString(ref("tam_reponses.datejorep")).as("date_reponse_JO"),
13
10
  "tam_reponses.minreplib as ministere_reponse",
14
11
  "tam_reponses.txtrep as texte",
15
12
  "tam_reponses.txterrrep as texte_erratum",
@@ -17,13 +14,13 @@ function reponses(questionId) {
17
14
  .orderBy("tam_reponses.datejorep asc"));
18
15
  }
19
16
  function themes(questionId) {
20
- return (0, postgres_1.jsonArrayFrom)(databases_1.dbQuestions
17
+ return jsonArrayFrom(dbQuestions
21
18
  .with("question_theme", (db) => db
22
19
  .selectFrom("tam_questions")
23
20
  .select(({ eb, ref, val }) => [
24
21
  "id as question_id",
25
22
  eb
26
- .cast((0, util_1.expandToRows)(ref("tam_questions.themes"), val("#(\\d+)")), "smallint")
23
+ .cast(expandToRows(ref("tam_questions.themes"), val("#(\\d+)")), "smallint")
27
24
  .as("theme_id"),
28
25
  ]))
29
26
  .selectFrom("the")
@@ -32,7 +29,7 @@ function themes(questionId) {
32
29
  .select("the.thelib as libelle")
33
30
  .orderBy("the.thenouidt asc"));
34
31
  }
35
- const findAllQuery = databases_1.dbQuestions
32
+ const findAllQuery = dbQuestions
36
33
  .selectFrom("tam_questions")
37
34
  .leftJoin("tam_ministeres", "tam_questions.mindepotid", "tam_ministeres.minid")
38
35
  .leftJoin("sortquestion", (join) => join.onRef("tam_questions.sorquecod", "=", (eb) => eb.cast("sortquestion.sorquecod", "bigint")))
@@ -53,14 +50,14 @@ const findAllQuery = databases_1.dbQuestions
53
50
  "tam_questions.circonscription as circonscription",
54
51
  "tam_questions.groupe as groupe",
55
52
  "tam_questions.ratgrp as type_appartenance",
56
- (0, util_1.toDateString)(ref("tam_questions.datejodepot")).as("date_publication_JO"),
57
- (0, util_1.rtrim)(ref("tam_questions.mindepotlib")).as("ministere_depot"),
58
- (0, util_1.toDateString)(ref("tam_ministeres.datedebut")).as("ministere_depot_date_debut"),
59
- (0, util_1.toDateString)(ref("tam_questions.datejotran")).as("date_transmission"),
53
+ toDateString(ref("tam_questions.datejodepot")).as("date_publication_JO"),
54
+ rtrim(ref("tam_questions.mindepotlib")).as("ministere_depot"),
55
+ toDateString(ref("tam_ministeres.datedebut")).as("ministere_depot_date_debut"),
56
+ toDateString(ref("tam_questions.datejotran")).as("date_transmission"),
60
57
  "tam_questions.mintranlib as ministere_transmission",
61
- (0, util_1.toDateString)(ref("tam_questions.datejorep1")).as("date_reponse_JO"),
58
+ toDateString(ref("tam_questions.datejorep1")).as("date_reponse_JO"),
62
59
  "tam_questions.minreplib1 as ministere_reponse",
63
- (0, util_1.toDateString)(ref("tam_questions.datecloture")).as("date_cloture"),
60
+ toDateString(ref("tam_questions.datecloture")).as("date_cloture"),
64
61
  "tam_questions.refquerappelee as reference_question_rappelee",
65
62
  //"tam_questions.url as url", // TODO ?
66
63
  "tam_questions.txtque as texte",
@@ -71,6 +68,6 @@ const findAllQuery = databases_1.dbQuestions
71
68
  themes(ref("tam_questions.id")).as("themes"),
72
69
  reponses(ref("tam_questions.id")).as("reponses"),
73
70
  ]);
74
- function findAll() {
71
+ export function findAll() {
75
72
  return findAllQuery.stream();
76
73
  }
@@ -389,8 +389,8 @@ declare const findAllOrganismesQuery: import("kysely").SelectQueryBuilder<{
389
389
  zongeo: import("../raw_types/sens").Zongeo;
390
390
  all_organismes: {
391
391
  orgcod: string;
392
- typorgcod: string;
393
392
  orgdatfin: Date | null;
393
+ typorgcod: string;
394
394
  evelib: string | null;
395
395
  evelic: string | null;
396
396
  evelil: string | null;