@tricoteuses/senat 1.1.1 → 1.3.1

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 (259) hide show
  1. package/README.md +53 -15
  2. package/lib/aggregates.d.ts +4 -6
  3. package/lib/aggregates.mjs +908 -780
  4. package/lib/aggregates.ts +8 -122
  5. package/lib/data/legislatures.json +38 -0
  6. package/lib/databases.d.ts +9 -0
  7. package/lib/databases.js +41 -11
  8. package/lib/databases.mjs +32 -1
  9. package/lib/databases.ts +40 -1
  10. package/lib/fields.mjs +64 -18
  11. package/lib/index.d.ts +5 -6
  12. package/lib/index.js +8 -99
  13. package/lib/index.mjs +4 -6
  14. package/lib/index.ts +9 -26
  15. package/lib/inserters.d.ts +0 -4
  16. package/lib/inserters.mjs +461 -337
  17. package/lib/inserters.ts +0 -24
  18. package/lib/legislatures.json +38 -0
  19. package/lib/loaders.d.ts +64 -0
  20. package/lib/loaders.js +682 -0
  21. package/lib/loaders.mjs +158 -0
  22. package/lib/loaders.ts +271 -0
  23. package/lib/model/ameli.d.ts +105 -4
  24. package/lib/model/ameli.js +20 -160
  25. package/lib/model/ameli.mjs +84 -57
  26. package/lib/model/ameli.ts +94 -80
  27. package/lib/model/debats.d.ts +0 -4
  28. package/lib/model/debats.js +1 -122
  29. package/lib/model/debats.mjs +1 -43
  30. package/lib/model/debats.ts +0 -68
  31. package/lib/model/dosleg.d.ts +227 -29
  32. package/lib/model/dosleg.js +92 -832
  33. package/lib/model/dosleg.mjs +196 -337
  34. package/lib/model/dosleg.ts +213 -531
  35. package/lib/model/index.d.ts +4 -5
  36. package/lib/model/index.js +14 -15
  37. package/lib/model/index.mjs +4 -5
  38. package/lib/model/index.ts +8 -5
  39. package/lib/model/questions.d.ts +88 -2
  40. package/lib/model/questions.js +40 -45
  41. package/lib/model/questions.mjs +71 -8
  42. package/lib/model/questions.ts +90 -11
  43. package/lib/model/sens.d.ts +524 -2
  44. package/lib/model/sens.js +172 -49
  45. package/lib/model/sens.mjs +415 -9
  46. package/lib/model/sens.ts +514 -16
  47. package/lib/model/texte.d.ts +7 -0
  48. package/lib/model/texte.js +321 -0
  49. package/lib/model/texte.mjs +208 -0
  50. package/lib/model/texte.ts +229 -0
  51. package/lib/model/util.d.ts +7 -1
  52. package/lib/model/util.js +37 -53
  53. package/lib/model/util.mjs +19 -10
  54. package/lib/model/util.ts +30 -14
  55. package/lib/raw_types/ameli.d.ts +912 -538
  56. package/lib/raw_types/ameli.js +1 -39
  57. package/lib/raw_types/ameli.mjs +4 -1
  58. package/lib/raw_types/ameli.ts +947 -597
  59. package/lib/raw_types/debats.d.ts +204 -124
  60. package/lib/raw_types/debats.js +1 -18
  61. package/lib/raw_types/debats.mjs +4 -1
  62. package/lib/raw_types/debats.ts +218 -141
  63. package/lib/raw_types/dosleg.d.ts +3533 -2024
  64. package/lib/raw_types/dosleg.js +1 -92
  65. package/lib/raw_types/dosleg.mjs +4 -1
  66. package/lib/raw_types/dosleg.ts +3621 -2189
  67. package/lib/raw_types/questions.d.ts +404 -220
  68. package/lib/raw_types/questions.js +1 -18
  69. package/lib/raw_types/questions.mjs +4 -1
  70. package/lib/raw_types/questions.ts +404 -226
  71. package/lib/raw_types/sens.d.ts +4391 -2706
  72. package/lib/raw_types/sens.js +1 -108
  73. package/lib/raw_types/sens.mjs +4 -1
  74. package/lib/raw_types/sens.ts +4495 -2903
  75. package/lib/raw_types_kysely/ameli.d.ts +6 -0
  76. package/lib/raw_types_kysely/ameli.mjs +7 -0
  77. package/lib/raw_types_kysely/ameli.ts +6 -0
  78. package/lib/raw_types_kysely/debats.d.ts +6 -0
  79. package/lib/raw_types_kysely/debats.mjs +7 -0
  80. package/lib/raw_types_kysely/debats.ts +6 -0
  81. package/lib/raw_types_kysely/dosleg.d.ts +6 -0
  82. package/lib/raw_types_kysely/dosleg.mjs +7 -0
  83. package/lib/raw_types_kysely/dosleg.ts +6 -0
  84. package/lib/raw_types_kysely/questions.d.ts +6 -0
  85. package/lib/raw_types_kysely/questions.mjs +7 -0
  86. package/lib/raw_types_kysely/questions.ts +6 -0
  87. package/lib/raw_types_kysely/sens.d.ts +6 -0
  88. package/lib/raw_types_kysely/sens.mjs +7 -0
  89. package/lib/raw_types_kysely/sens.ts +6 -0
  90. package/lib/raw_types_kysely/texte.d.ts +45 -0
  91. package/lib/raw_types_kysely/texte.mjs +7 -0
  92. package/lib/raw_types_kysely/texte.ts +53 -0
  93. package/lib/raw_types_schemats/ameli.d.ts +541 -0
  94. package/lib/raw_types_schemats/ameli.js +45 -0
  95. package/lib/raw_types_schemats/ameli.mjs +2 -0
  96. package/lib/raw_types_schemats/ameli.ts +601 -0
  97. package/lib/raw_types_schemats/debats.d.ts +127 -0
  98. package/lib/raw_types_schemats/debats.js +24 -0
  99. package/lib/raw_types_schemats/debats.mjs +2 -0
  100. package/lib/raw_types_schemats/debats.ts +145 -0
  101. package/lib/raw_types_schemats/dosleg.d.ts +2029 -0
  102. package/lib/raw_types_schemats/dosleg.js +98 -0
  103. package/lib/raw_types_schemats/dosleg.mjs +2 -0
  104. package/lib/raw_types_schemats/dosleg.ts +2195 -0
  105. package/lib/raw_types_schemats/questions.d.ts +233 -0
  106. package/lib/raw_types_schemats/questions.js +24 -0
  107. package/lib/raw_types_schemats/questions.mjs +2 -0
  108. package/lib/raw_types_schemats/questions.ts +251 -0
  109. package/lib/raw_types_schemats/sens.d.ts +2709 -0
  110. package/lib/raw_types_schemats/sens.js +114 -0
  111. package/lib/raw_types_schemats/sens.mjs +2 -0
  112. package/lib/raw_types_schemats/sens.ts +2907 -0
  113. package/lib/scripts/convert_data.js +574 -215
  114. package/lib/scripts/convert_data.mjs +134 -99
  115. package/lib/scripts/convert_data.ts +173 -112
  116. package/lib/scripts/datautil.d.ts +5 -0
  117. package/lib/scripts/datautil.js +64 -0
  118. package/lib/scripts/datautil.mjs +16 -0
  119. package/lib/scripts/datautil.ts +19 -0
  120. package/lib/scripts/parse_textes.js +132 -0
  121. package/lib/scripts/parse_textes.mjs +46 -0
  122. package/lib/scripts/parse_textes.ts +65 -0
  123. package/lib/scripts/retrieve_documents.d.ts +1 -0
  124. package/lib/scripts/retrieve_documents.js +521 -0
  125. package/lib/scripts/retrieve_documents.mjs +249 -0
  126. package/lib/scripts/retrieve_documents.ts +298 -0
  127. package/lib/scripts/retrieve_open_data.js +77 -69
  128. package/lib/scripts/retrieve_open_data.mjs +48 -49
  129. package/lib/scripts/retrieve_open_data.ts +74 -58
  130. package/lib/scripts/retrieve_senateurs_photos.js +45 -63
  131. package/lib/scripts/retrieve_senateurs_photos.mjs +4 -21
  132. package/lib/scripts/retrieve_senateurs_photos.ts +6 -29
  133. package/lib/scripts/retrieve_textes.mjs +325 -74
  134. package/lib/scripts/retrieve_textes.ts +111 -63
  135. package/lib/scripts/shared/cli_helpers.d.ts +44 -0
  136. package/lib/scripts/shared/cli_helpers.js +35 -0
  137. package/lib/scripts/shared/cli_helpers.ts +36 -0
  138. package/lib/scripts/shared/util.d.ts +3 -0
  139. package/lib/scripts/shared/util.js +102 -0
  140. package/lib/scripts/shared/util.ts +33 -0
  141. package/lib/src/aggregates.d.ts +52 -0
  142. package/lib/src/aggregates.mjs +726 -0
  143. package/lib/src/config.d.ts +2 -0
  144. package/lib/src/config.mjs +16 -0
  145. package/lib/src/databases.d.ts +18 -0
  146. package/lib/src/databases.mjs +55 -0
  147. package/lib/src/datasets.d.ts +28 -0
  148. package/lib/src/datasets.mjs +78 -0
  149. package/lib/src/fields.d.ts +10 -0
  150. package/lib/src/fields.mjs +22 -0
  151. package/lib/src/index.d.ts +8 -0
  152. package/lib/src/index.mjs +7 -0
  153. package/lib/src/inserters.d.ts +98 -0
  154. package/lib/src/inserters.mjs +360 -0
  155. package/lib/src/loaders.d.ts +36 -0
  156. package/lib/src/loaders.mjs +107 -0
  157. package/lib/src/model/ameli.d.ts +4 -0
  158. package/lib/src/model/ameli.js +57 -0
  159. package/lib/src/model/debats.d.ts +4 -0
  160. package/lib/src/model/debats.js +43 -0
  161. package/lib/src/model/dosleg.d.ts +197 -0
  162. package/lib/src/model/dosleg.js +169 -0
  163. package/lib/src/model/index.d.ts +4 -0
  164. package/lib/src/model/index.js +4 -0
  165. package/lib/src/model/questions.d.ts +89 -0
  166. package/lib/src/model/questions.js +76 -0
  167. package/lib/src/model/sens.d.ts +390 -0
  168. package/lib/src/model/sens.js +339 -0
  169. package/lib/src/model/texte.d.ts +7 -0
  170. package/lib/src/model/texte.js +183 -0
  171. package/lib/src/raw_types_kysely/ameli.d.ts +915 -0
  172. package/lib/src/raw_types_kysely/ameli.js +5 -0
  173. package/lib/src/raw_types_kysely/debats.d.ts +207 -0
  174. package/lib/src/raw_types_kysely/debats.js +5 -0
  175. package/lib/src/raw_types_kysely/dosleg.d.ts +3532 -0
  176. package/lib/src/raw_types_kysely/dosleg.js +5 -0
  177. package/lib/src/raw_types_kysely/questions.d.ts +414 -0
  178. package/lib/src/raw_types_kysely/questions.js +5 -0
  179. package/lib/src/raw_types_kysely/sens.d.ts +4394 -0
  180. package/lib/src/raw_types_kysely/sens.js +5 -0
  181. package/lib/src/raw_types_schemats/ameli.d.ts +541 -0
  182. package/lib/src/raw_types_schemats/ameli.js +2 -0
  183. package/lib/src/raw_types_schemats/debats.d.ts +127 -0
  184. package/lib/src/raw_types_schemats/debats.js +2 -0
  185. package/lib/src/raw_types_schemats/dosleg.d.ts +2027 -0
  186. package/lib/src/raw_types_schemats/dosleg.js +2 -0
  187. package/lib/src/raw_types_schemats/questions.d.ts +231 -0
  188. package/lib/src/raw_types_schemats/questions.js +2 -0
  189. package/lib/src/raw_types_schemats/sens.d.ts +2709 -0
  190. package/lib/src/raw_types_schemats/sens.js +2 -0
  191. package/lib/src/scripts/convert_data.d.ts +1 -0
  192. package/lib/src/scripts/convert_data.js +95 -0
  193. package/lib/src/scripts/datautil.d.ts +5 -0
  194. package/lib/src/scripts/datautil.js +16 -0
  195. package/lib/src/scripts/parse_textes.d.ts +1 -0
  196. package/lib/src/scripts/parse_textes.js +47 -0
  197. package/lib/src/scripts/retrieve_documents.d.ts +1 -0
  198. package/lib/src/scripts/retrieve_documents.js +258 -0
  199. package/lib/src/scripts/retrieve_open_data.d.ts +1 -0
  200. package/lib/src/scripts/retrieve_open_data.js +214 -0
  201. package/lib/src/scripts/retrieve_senateurs_photos.d.ts +1 -0
  202. package/lib/src/scripts/retrieve_senateurs_photos.js +147 -0
  203. package/lib/src/scripts/shared/cli_helpers.d.ts +44 -0
  204. package/lib/src/scripts/shared/cli_helpers.js +32 -0
  205. package/lib/src/scripts/shared/util.d.ts +3 -0
  206. package/lib/src/scripts/shared/util.js +28 -0
  207. package/lib/src/strings.d.ts +1 -0
  208. package/lib/src/strings.mjs +18 -0
  209. package/lib/src/types/ameli.d.ts +10 -0
  210. package/lib/src/types/ameli.js +13 -0
  211. package/lib/src/types/debats.d.ts +4 -0
  212. package/lib/src/types/debats.js +2 -0
  213. package/lib/src/types/dosleg.d.ts +98 -0
  214. package/lib/src/types/dosleg.js +151 -0
  215. package/lib/src/types/questions.d.ts +2 -0
  216. package/lib/src/types/questions.js +1 -0
  217. package/lib/src/types/sens.d.ts +10 -0
  218. package/lib/src/types/sens.js +1 -0
  219. package/lib/src/types/sessions.d.ts +42 -0
  220. package/lib/src/types/sessions.js +43 -0
  221. package/lib/src/types/texte.d.ts +61 -0
  222. package/lib/src/types/texte.js +16 -0
  223. package/lib/src/validators/config.d.ts +1 -0
  224. package/lib/src/validators/config.js +54 -0
  225. package/lib/src/validators/senat.d.ts +0 -0
  226. package/lib/src/validators/senat.js +24 -0
  227. package/lib/types/ameli.d.ts +1 -1
  228. package/lib/types/ameli.js +2 -2
  229. package/lib/types/ameli.ts +1 -1
  230. package/lib/types/debats.d.ts +1 -1
  231. package/lib/types/debats.js +2 -2
  232. package/lib/types/debats.ts +1 -1
  233. package/lib/types/dosleg.d.ts +2 -2
  234. package/lib/types/dosleg.js +2 -2
  235. package/lib/types/dosleg.ts +2 -2
  236. package/lib/types/questions.d.ts +1 -1
  237. package/lib/types/questions.js +2 -2
  238. package/lib/types/questions.ts +1 -1
  239. package/lib/types/sens.d.ts +1 -3
  240. package/lib/types/sens.js +2 -5
  241. package/lib/types/sens.mjs +1 -23
  242. package/lib/types/sens.ts +1 -25
  243. package/lib/types/sessions.d.ts +42 -0
  244. package/lib/types/sessions.js +51 -0
  245. package/lib/types/sessions.mjs +43 -0
  246. package/lib/types/sessions.ts +42 -0
  247. package/lib/types/texte.d.ts +65 -0
  248. package/lib/types/texte.js +24 -0
  249. package/lib/types/texte.mjs +16 -0
  250. package/lib/types/texte.ts +76 -0
  251. package/package.json +35 -10
  252. package/lib/aggregates.js +0 -1122
  253. package/lib/fields.js +0 -68
  254. package/lib/inserters.js +0 -518
  255. package/lib/scripts/fix_db.js +0 -144
  256. package/lib/scripts/fix_db.mjs +0 -64
  257. package/lib/scripts/fix_db.ts +0 -75
  258. package/lib/scripts/retrieve_textes.js +0 -179
  259. /package/lib/scripts/{fix_db.d.ts → parse_textes.d.ts} +0 -0
@@ -0,0 +1,2 @@
1
+ declare const validConfig: any;
2
+ export default validConfig;
@@ -0,0 +1,16 @@
1
+ require("dotenv").config();
2
+ import { validateConfig } from "./validators/config";
3
+ const config = {
4
+ db: {
5
+ host: process.env.TRICOTEUSES_SENAT_DB_HOST || "localhost",
6
+ password: process.env.TRICOTEUSES_SENAT_DB_PASSWORD || "opendata",
7
+ port: process.env.TRICOTEUSES_SENAT_DB_PORT || 5432,
8
+ user: process.env.TRICOTEUSES_SENAT_DB_USER || "opendata",
9
+ },
10
+ };
11
+ const [validConfig, error] = validateConfig(config);
12
+ if (error !== null) {
13
+ console.error(`Error in configuration:\n${JSON.stringify(validConfig, null, 2)}\nError:\n${JSON.stringify(error, null, 2)}`);
14
+ process.exit(-1);
15
+ }
16
+ export default validConfig;
@@ -0,0 +1,18 @@
1
+ import { Kysely } from "kysely";
2
+ import PgPromise from "pg-promise";
3
+ import { DB as DoslegDatabase } from "./raw_types_kysely/dosleg";
4
+ import { DB as QuestionsDatabase } from "./raw_types_kysely/questions";
5
+ import { DB as SensDatabase } from "./raw_types_kysely/sens";
6
+ export declare const pgPromise: PgPromise.IMain<{}, import("pg-promise/typescript/pg-subset").IClient>;
7
+ export declare const dbNames: string[];
8
+ export declare const dbByName: {
9
+ [name: string]: any;
10
+ };
11
+ export declare const dbDosleg: Kysely<DoslegDatabase>;
12
+ export declare const dbQuestions: Kysely<QuestionsDatabase>;
13
+ export declare const dbSens: Kysely<SensDatabase>;
14
+ export declare let dbSharedConnectionObjectByName: {
15
+ [name: string]: PgPromise.IConnected<unknown, any>;
16
+ };
17
+ export declare function checkDatabase(name: string): Promise<any>;
18
+ export declare function checkDatabases(): Promise<void>;
@@ -0,0 +1,55 @@
1
+ import { Kysely, PostgresDialect } from "kysely";
2
+ import * as pg from "pg";
3
+ import Cursor from "pg-cursor";
4
+ import PgPromise from "pg-promise";
5
+ import config from "./config";
6
+ import { datasets } from "./datasets";
7
+ const int8TypeId = 20;
8
+ // Map int8 to number.
9
+ pg.types.setTypeParser(int8TypeId, (val) => {
10
+ return parseInt(val, 10);
11
+ });
12
+ export const pgPromise = PgPromise();
13
+ export const dbNames = ["ameli", "debats", "dosleg"];
14
+ export const dbByName = {};
15
+ for (const name of dbNames) {
16
+ dbByName[name] = pgPromise({
17
+ database: name,
18
+ host: config.db.host,
19
+ password: config.db.password,
20
+ port: config.db.port,
21
+ user: config.db.user,
22
+ });
23
+ }
24
+ function createDb(database, schema) {
25
+ const dialect = new PostgresDialect({
26
+ pool: new pg.Pool({
27
+ database: database,
28
+ host: config.db.host,
29
+ user: config.db.user,
30
+ password: config.db.password,
31
+ port: config.db.port,
32
+ max: 10,
33
+ }),
34
+ cursor: Cursor,
35
+ });
36
+ return new Kysely({
37
+ log: ["error"],
38
+ dialect: dialect,
39
+ }).withSchema(schema);
40
+ }
41
+ export const dbDosleg = createDb(datasets.dosleg.database, datasets.dosleg.schema);
42
+ export const dbQuestions = createDb(datasets.questions.database, datasets.questions.schema);
43
+ export const dbSens = createDb(datasets.sens.database, datasets.sens.schema);
44
+ export let dbSharedConnectionObjectByName = {};
45
+ export async function checkDatabase(name) {
46
+ // Check that database exists.
47
+ const db = dbByName[name];
48
+ dbSharedConnectionObjectByName[name] = await db.connect();
49
+ return db;
50
+ }
51
+ export async function checkDatabases() {
52
+ for (const name of dbNames) {
53
+ await checkDatabase(name);
54
+ }
55
+ }
@@ -0,0 +1,28 @@
1
+ export interface Dataset {
2
+ database: string;
3
+ repairEncoding: boolean;
4
+ repairZip?: (dataset: Dataset, dataDir: string) => void;
5
+ schema: string;
6
+ title: string;
7
+ url: string;
8
+ }
9
+ export interface Datasets {
10
+ ameli: Dataset;
11
+ debats: Dataset;
12
+ dosleg: Dataset;
13
+ questions: Dataset;
14
+ sens: Dataset;
15
+ }
16
+ export declare enum EnabledDatasets {
17
+ None = 0,
18
+ Ameli = 1,
19
+ Debats = 2,
20
+ DosLeg = 4,
21
+ Questions = 8,
22
+ Sens = 16,
23
+ PhotosSenateurs = 32,
24
+ All = 63
25
+ }
26
+ export declare const datasets: Datasets;
27
+ export declare function getEnabledDatasets(categories: any): EnabledDatasets;
28
+ export declare function getChosenFromEnabledDatasets(categories: any): Dataset[];
@@ -0,0 +1,78 @@
1
+ import fs from "fs-extra";
2
+ import path from "path";
3
+ import assert from "assert";
4
+ export var EnabledDatasets;
5
+ (function (EnabledDatasets) {
6
+ EnabledDatasets[EnabledDatasets["None"] = 0] = "None";
7
+ EnabledDatasets[EnabledDatasets["Ameli"] = 1] = "Ameli";
8
+ EnabledDatasets[EnabledDatasets["Debats"] = 2] = "Debats";
9
+ EnabledDatasets[EnabledDatasets["DosLeg"] = 4] = "DosLeg";
10
+ EnabledDatasets[EnabledDatasets["Questions"] = 8] = "Questions";
11
+ EnabledDatasets[EnabledDatasets["Sens"] = 16] = "Sens";
12
+ EnabledDatasets[EnabledDatasets["PhotosSenateurs"] = 32] = "PhotosSenateurs";
13
+ EnabledDatasets[EnabledDatasets["All"] = 63] = "All";
14
+ })(EnabledDatasets || (EnabledDatasets = {}));
15
+ export const datasets = {
16
+ ameli: {
17
+ database: "ameli",
18
+ repairEncoding: false,
19
+ repairZip: (dataset, dataDir) => {
20
+ const sqlFilename = `${dataset.database}.sql`;
21
+ const sqlFilePath = path.join(dataDir, sqlFilename);
22
+ fs.removeSync(sqlFilePath);
23
+ fs.moveSync(path.join(dataDir, "var", "opt", "opendata", sqlFilename), sqlFilePath);
24
+ },
25
+ schema: "public",
26
+ title: "Amendements",
27
+ url: "https://data.senat.fr/data/ameli/ameli.zip",
28
+ },
29
+ debats: {
30
+ database: "debats",
31
+ repairEncoding: true,
32
+ schema: "public",
33
+ title: "Informations relatives aux comptes rendus intégraux de la séance publique",
34
+ url: "https://data.senat.fr/data/debats/debats.zip",
35
+ },
36
+ dosleg: {
37
+ database: "dosleg",
38
+ repairEncoding: true,
39
+ schema: "public",
40
+ title: "Dossiers législatifs",
41
+ url: "https://data.senat.fr/data/dosleg/dosleg.zip",
42
+ },
43
+ questions: {
44
+ database: "questions",
45
+ repairEncoding: true,
46
+ schema: "questions",
47
+ title: "Questions écrites et orales posées par les sénateurs au Gouvernement",
48
+ url: "https://data.senat.fr/data/questions/questions.zip",
49
+ },
50
+ sens: {
51
+ database: "sens",
52
+ repairEncoding: true,
53
+ repairZip: (dataset, dataDir) => {
54
+ const sqlFilename = `${dataset.database}.sql`;
55
+ const sqlFilePath = path.join(dataDir, sqlFilename);
56
+ fs.removeSync(sqlFilePath);
57
+ fs.moveSync(path.join(dataDir, "export_sens.sql"), sqlFilePath);
58
+ },
59
+ schema: "public",
60
+ title: "Sénateurs (y compris organes et présence)",
61
+ url: "https://data.senat.fr/data/senateurs/export_sens.zip",
62
+ },
63
+ };
64
+ export function getEnabledDatasets(categories) {
65
+ categories.map((datasetName) => assert.notStrictEqual(EnabledDatasets[datasetName], undefined, `Unknown name of dataset: ${datasetName}`));
66
+ return categories.reduce((enabledDatasets, datasetName) => enabledDatasets |
67
+ EnabledDatasets[datasetName], EnabledDatasets.None);
68
+ }
69
+ export function getChosenFromEnabledDatasets(categories) {
70
+ const enabledDatasets = getEnabledDatasets(categories);
71
+ return [
72
+ enabledDatasets & EnabledDatasets.Ameli ? datasets.ameli : null,
73
+ enabledDatasets & EnabledDatasets.Debats ? datasets.debats : null,
74
+ enabledDatasets & EnabledDatasets.DosLeg ? datasets.dosleg : null,
75
+ enabledDatasets & EnabledDatasets.Questions ? datasets.questions : null,
76
+ enabledDatasets & EnabledDatasets.Sens ? datasets.sens : null,
77
+ ].filter((dataset) => dataset !== null);
78
+ }
@@ -0,0 +1,10 @@
1
+ export declare function parseIntFields(fieldsNames: string[], entry: {
2
+ [fieldName: string]: any;
3
+ } | null): {
4
+ [fieldName: string]: any;
5
+ } | null;
6
+ export declare function trimFieldsRight(fieldsNames: string[], entry: {
7
+ [fieldName: string]: any;
8
+ } | null): {
9
+ [fieldName: string]: any;
10
+ } | null;
@@ -0,0 +1,22 @@
1
+ export function parseIntFields(fieldsNames, entry) {
2
+ if (entry === null) {
3
+ return null;
4
+ }
5
+ for (const fieldName of fieldsNames) {
6
+ if (entry[fieldName] !== null) {
7
+ entry[fieldName] = parseInt(entry[fieldName]);
8
+ }
9
+ }
10
+ return entry;
11
+ }
12
+ export function trimFieldsRight(fieldsNames, entry) {
13
+ if (entry === null) {
14
+ return null;
15
+ }
16
+ for (const fieldName of fieldsNames) {
17
+ if (entry[fieldName] != null) {
18
+ entry[fieldName] = entry[fieldName].trimEnd();
19
+ }
20
+ }
21
+ return entry;
22
+ }
@@ -0,0 +1,8 @@
1
+ export { allFollows, Aggregator, } from "./aggregates";
2
+ export { insertAudReferences, insertDateSeanceReferences, insertAuteurReferences, insertDocAttReferences, insertEcrReferences, insertLecassReferences, insertLecassrapReferences, insertLectureReferences, insertLoiReferences, insertRapReferences, insertTexteReferences, OutputData, } from "./inserters";
3
+ export { Ses, sesFieldsToParseInt, sesFieldsToTrim, Sub, subFieldsToParseInt, subFieldsToTrim, TxtAmeli, txtAmeliFieldsToTrim, } from "./types/ameli";
4
+ export { Debat, debatsFieldsToTrim, LecAssDeb, lecassdebFieldsToTrim, } from "./types/debats";
5
+ export { Ass, assFieldsToTrim, Aud, audFieldsToTrim, Auteur, auteurFieldsToTrim, DateSeance, dateSeanceFieldsToTrim, DecCoc, deccocFieldsToTrim, DenRap, denrapFieldsToTrim, DocAtt, docattFieldsToParseInt, docattFieldsToTrim, Ecr, ecrFieldsToTrim, EtaLoi, etaloiFieldsToTrim, LecAss, lecassFieldsToTrim, LecAssRap, lecassrapFieldsToTrim, Lecture, lectureFieldsToTrim, Loi, loiFieldsToTrim, Org, orgFieldsToTrim, OriTxt, oritxtFieldsToTrim, Qua, quaFieldsToTrim, Rap, rapFieldsToParseInt, rapFieldsToTrim, RapOrg, raporgFieldsToTrim, Scr, scrFieldsToTrim, Texte, texteFieldsToParseInt, texteFieldsToTrim, TypAtt, typattFieldsToTrim, TypLec, typlecFieldsToTrim, TypLoi, typloiFieldsToTrim, TypTxt, typtxtFieldsToTrim, TypUrl, typurlFieldsToTrim, } from "./types/dosleg";
6
+ export { Photo, Sen, } from "./types/sens";
7
+ export { Session } from "./types/sessions";
8
+ export { parseIntFields, trimFieldsRight, } from "./fields";
@@ -0,0 +1,7 @@
1
+ export { allFollows, Aggregator, } from "./aggregates";
2
+ export { insertAudReferences, insertDateSeanceReferences, insertAuteurReferences, insertDocAttReferences, insertEcrReferences, insertLecassReferences, insertLecassrapReferences, insertLectureReferences, insertLoiReferences, insertRapReferences, insertTexteReferences, } from "./inserters";
3
+ export { sesFieldsToParseInt, sesFieldsToTrim, subFieldsToParseInt, subFieldsToTrim, txtAmeliFieldsToTrim, } from "./types/ameli";
4
+ export { debatsFieldsToTrim, lecassdebFieldsToTrim, } from "./types/debats";
5
+ export { assFieldsToTrim, audFieldsToTrim, auteurFieldsToTrim, dateSeanceFieldsToTrim, deccocFieldsToTrim, denrapFieldsToTrim, docattFieldsToParseInt, docattFieldsToTrim, ecrFieldsToTrim, etaloiFieldsToTrim, lecassFieldsToTrim, lecassrapFieldsToTrim, lectureFieldsToTrim, loiFieldsToTrim, orgFieldsToTrim, oritxtFieldsToTrim, quaFieldsToTrim, rapFieldsToParseInt, rapFieldsToTrim, raporgFieldsToTrim, scrFieldsToTrim, texteFieldsToParseInt, texteFieldsToTrim, typattFieldsToTrim, typlecFieldsToTrim, typloiFieldsToTrim, typtxtFieldsToTrim, typurlFieldsToTrim, } from "./types/dosleg";
6
+ export { Session } from "./types/sessions";
7
+ export { parseIntFields, trimFieldsRight, } from "./fields";
@@ -0,0 +1,98 @@
1
+ import { TxtAmeli } from "./types/ameli";
2
+ import { Debat } from "./types/debats";
3
+ import { Ass, Aud, Auteur, DateSeance, DecCoc, DenRap, DocAtt, Ecr, EtaLoi, LecAss, LecAssRap, Lecture, Loi, Org, OriTxt, Qua, Rap, Scr, Texte, TypAtt, TypLec, TypLoi, TypTxt, TypUrl } from "./types/dosleg";
4
+ export interface OutputData {
5
+ readonly ass?: {
6
+ [id: string]: Ass;
7
+ };
8
+ readonly aud?: {
9
+ [id: string]: Aud;
10
+ };
11
+ readonly auteur?: {
12
+ [id: string]: Auteur;
13
+ };
14
+ readonly date_seance?: {
15
+ [id: string]: DateSeance;
16
+ };
17
+ readonly debats?: {
18
+ [id: string]: Debat;
19
+ };
20
+ readonly deccoc?: {
21
+ [id: string]: DecCoc;
22
+ };
23
+ readonly denrap?: {
24
+ [id: string]: DenRap;
25
+ };
26
+ readonly docatt?: {
27
+ [id: string]: DocAtt;
28
+ };
29
+ readonly ecr?: {
30
+ [id: string]: Ecr;
31
+ };
32
+ readonly etaloi?: {
33
+ [id: string]: EtaLoi;
34
+ };
35
+ readonly lecass?: {
36
+ [id: string]: LecAss;
37
+ };
38
+ readonly lecassrap?: {
39
+ [id: string]: LecAssRap;
40
+ };
41
+ readonly lecture?: {
42
+ [id: string]: Lecture;
43
+ };
44
+ readonly loi?: {
45
+ [id: string]: Loi;
46
+ };
47
+ readonly org?: {
48
+ [id: string]: Org;
49
+ };
50
+ readonly oritxt?: {
51
+ [id: string]: OriTxt;
52
+ };
53
+ readonly qua?: {
54
+ [id: string]: Qua;
55
+ };
56
+ readonly rap?: {
57
+ [id: string]: Rap;
58
+ };
59
+ readonly scr?: {
60
+ [id: string]: Scr;
61
+ };
62
+ readonly texte?: {
63
+ [id: string]: Texte;
64
+ };
65
+ readonly typatt?: {
66
+ [id: string]: TypAtt;
67
+ };
68
+ readonly typlec?: {
69
+ [id: string]: TypLec;
70
+ };
71
+ readonly typloi?: {
72
+ [id: string]: TypLoi;
73
+ };
74
+ readonly typtxt?: {
75
+ [id: string]: TypTxt;
76
+ };
77
+ readonly typurl?: {
78
+ [id: string]: TypUrl;
79
+ };
80
+ readonly txt_ameli?: {
81
+ [id: string]: TxtAmeli;
82
+ };
83
+ }
84
+ type VisitedIdsByTableName = {
85
+ [tableName: string]: Set<number | string>;
86
+ };
87
+ export declare function insertAudReferences(aud: Aud, data: OutputData, visitedIdsByTableName: VisitedIdsByTableName): Aud;
88
+ export declare function insertAuteurReferences(auteur: Auteur, data: OutputData, visitedIdsByTableName: VisitedIdsByTableName): Auteur;
89
+ export declare function insertDateSeanceReferences(dateSeance: DateSeance, data: OutputData, visitedIdsByTableName: VisitedIdsByTableName): DateSeance;
90
+ export declare function insertDocAttReferences(docatt: DocAtt, data: OutputData, visitedIdsByTableName: VisitedIdsByTableName, performInsertRapReferences?: boolean): DocAtt;
91
+ export declare function insertEcrReferences(ecr: Ecr, data: OutputData, visitedIdsByTableName: VisitedIdsByTableName): Ecr;
92
+ export declare function insertLecassrapReferences(lecassrap: LecAssRap, data: OutputData, visitedIdsByTableName: VisitedIdsByTableName): LecAssRap;
93
+ export declare function insertLecassReferences(lecass: LecAss, data: OutputData, visitedIdsByTableName: VisitedIdsByTableName): LecAss;
94
+ export declare function insertLectureReferences(lecture: Lecture, data: OutputData, visitedIdsByTableName: VisitedIdsByTableName): Lecture;
95
+ export declare function insertLoiReferences(loi: Loi, data: OutputData, visitedIdsByTableName: VisitedIdsByTableName): Loi;
96
+ export declare function insertRapReferences(rap: Rap, data: OutputData, visitedIdsByTableName: VisitedIdsByTableName): Rap;
97
+ export declare function insertTexteReferences(texte: Texte, data: OutputData, visitedIdsByTableName: VisitedIdsByTableName): Texte;
98
+ export {};