@tricoteuses/senat 1.3.1 → 1.3.2

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 (253) hide show
  1. package/lib/config.d.ts +1 -0
  2. package/lib/config.js +14 -45
  3. package/lib/databases.js +86 -143
  4. package/lib/datasets.js +78 -83
  5. package/lib/index.d.ts +7 -4
  6. package/lib/index.js +42 -419
  7. package/lib/loaders.js +149 -654
  8. package/lib/model/ameli.js +83 -21
  9. package/lib/model/debats.js +0 -1
  10. package/lib/model/dosleg.d.ts +1 -1
  11. package/lib/model/dosleg.js +179 -73
  12. package/lib/model/index.d.ts +3 -3
  13. package/lib/model/index.js +12 -46
  14. package/lib/model/questions.js +68 -39
  15. package/lib/model/sens.js +383 -113
  16. package/lib/model/texte.js +220 -290
  17. package/lib/model/util.js +9 -26
  18. package/lib/raw_types/ameli.js +5 -6
  19. package/lib/raw_types/debats.js +5 -6
  20. package/lib/raw_types/dosleg.js +5 -6
  21. package/lib/raw_types/questions.js +5 -6
  22. package/lib/raw_types/sens.js +5 -6
  23. package/lib/raw_types_schemats/ameli.js +1 -43
  24. package/lib/raw_types_schemats/debats.js +1 -22
  25. package/lib/raw_types_schemats/dosleg.js +1 -96
  26. package/lib/raw_types_schemats/questions.js +1 -22
  27. package/lib/raw_types_schemats/sens.js +1 -112
  28. package/lib/scripts/convert_data.js +181 -631
  29. package/lib/scripts/datautil.js +17 -60
  30. package/lib/scripts/parse_textes.js +46 -129
  31. package/lib/scripts/retrieve_documents.js +247 -513
  32. package/lib/scripts/retrieve_open_data.js +211 -368
  33. package/lib/scripts/retrieve_senateurs_photos.js +144 -239
  34. package/lib/scripts/shared/cli_helpers.js +30 -30
  35. package/lib/scripts/shared/util.js +28 -94
  36. package/lib/strings.js +20 -45
  37. package/lib/types/ameli.d.ts +1 -1
  38. package/lib/types/ameli.js +14 -25
  39. package/lib/types/debats.d.ts +1 -1
  40. package/lib/types/debats.js +3 -21
  41. package/lib/types/dosleg.d.ts +1 -1
  42. package/lib/types/dosleg.js +152 -119
  43. package/lib/types/questions.d.ts +1 -1
  44. package/lib/types/questions.js +1 -13
  45. package/lib/types/sens.d.ts +1 -1
  46. package/lib/types/sens.js +1 -13
  47. package/lib/types/sessions.js +44 -49
  48. package/lib/types/texte.js +17 -22
  49. package/lib/validators/config.js +47 -111
  50. package/lib/validators/senat.js +1 -5
  51. package/package.json +16 -38
  52. package/lib/aggregates.d.ts +0 -52
  53. package/lib/aggregates.mjs +0 -930
  54. package/lib/aggregates.ts +0 -833
  55. package/lib/config.mjs +0 -16
  56. package/lib/config.ts +0 -26
  57. package/lib/data/legislatures.json +0 -38
  58. package/lib/databases.mjs +0 -57
  59. package/lib/databases.ts +0 -71
  60. package/lib/datasets.mjs +0 -78
  61. package/lib/datasets.ts +0 -118
  62. package/lib/fields.d.ts +0 -10
  63. package/lib/fields.mjs +0 -68
  64. package/lib/fields.ts +0 -29
  65. package/lib/index.mjs +0 -4
  66. package/lib/index.ts +0 -42
  67. package/lib/inserters.d.ts +0 -98
  68. package/lib/inserters.mjs +0 -500
  69. package/lib/inserters.ts +0 -521
  70. package/lib/loaders.mjs +0 -158
  71. package/lib/loaders.ts +0 -271
  72. package/lib/model/ameli.mjs +0 -84
  73. package/lib/model/ameli.ts +0 -100
  74. package/lib/model/debats.mjs +0 -1
  75. package/lib/model/debats.ts +0 -0
  76. package/lib/model/dosleg.mjs +0 -196
  77. package/lib/model/dosleg.ts +0 -240
  78. package/lib/model/index.mjs +0 -4
  79. package/lib/model/index.ts +0 -14
  80. package/lib/model/questions.mjs +0 -71
  81. package/lib/model/questions.ts +0 -93
  82. package/lib/model/sens.mjs +0 -415
  83. package/lib/model/sens.ts +0 -516
  84. package/lib/model/texte.mjs +0 -208
  85. package/lib/model/texte.ts +0 -229
  86. package/lib/model/util.mjs +0 -19
  87. package/lib/model/util.ts +0 -32
  88. package/lib/raw_types/ameli.mjs +0 -5
  89. package/lib/raw_types/ameli.ts +0 -951
  90. package/lib/raw_types/debats.mjs +0 -5
  91. package/lib/raw_types/debats.ts +0 -222
  92. package/lib/raw_types/dosleg.mjs +0 -5
  93. package/lib/raw_types/dosleg.ts +0 -3625
  94. package/lib/raw_types/questions.mjs +0 -5
  95. package/lib/raw_types/questions.ts +0 -427
  96. package/lib/raw_types/sens.mjs +0 -5
  97. package/lib/raw_types/sens.ts +0 -4499
  98. package/lib/raw_types_kysely/ameli.d.ts +0 -6
  99. package/lib/raw_types_kysely/ameli.mjs +0 -7
  100. package/lib/raw_types_kysely/ameli.ts +0 -6
  101. package/lib/raw_types_kysely/debats.d.ts +0 -6
  102. package/lib/raw_types_kysely/debats.mjs +0 -7
  103. package/lib/raw_types_kysely/debats.ts +0 -6
  104. package/lib/raw_types_kysely/dosleg.d.ts +0 -6
  105. package/lib/raw_types_kysely/dosleg.mjs +0 -7
  106. package/lib/raw_types_kysely/dosleg.ts +0 -6
  107. package/lib/raw_types_kysely/questions.d.ts +0 -6
  108. package/lib/raw_types_kysely/questions.mjs +0 -7
  109. package/lib/raw_types_kysely/questions.ts +0 -6
  110. package/lib/raw_types_kysely/sens.d.ts +0 -6
  111. package/lib/raw_types_kysely/sens.mjs +0 -7
  112. package/lib/raw_types_kysely/sens.ts +0 -6
  113. package/lib/raw_types_kysely/texte.d.ts +0 -45
  114. package/lib/raw_types_kysely/texte.mjs +0 -7
  115. package/lib/raw_types_kysely/texte.ts +0 -53
  116. package/lib/raw_types_schemats/ameli.mjs +0 -2
  117. package/lib/raw_types_schemats/ameli.ts +0 -601
  118. package/lib/raw_types_schemats/debats.mjs +0 -2
  119. package/lib/raw_types_schemats/debats.ts +0 -145
  120. package/lib/raw_types_schemats/dosleg.mjs +0 -2
  121. package/lib/raw_types_schemats/dosleg.ts +0 -2195
  122. package/lib/raw_types_schemats/questions.mjs +0 -2
  123. package/lib/raw_types_schemats/questions.ts +0 -251
  124. package/lib/raw_types_schemats/sens.mjs +0 -2
  125. package/lib/raw_types_schemats/sens.ts +0 -2907
  126. package/lib/scripts/convert_data.mjs +0 -181
  127. package/lib/scripts/convert_data.ts +0 -243
  128. package/lib/scripts/datautil.mjs +0 -16
  129. package/lib/scripts/datautil.ts +0 -19
  130. package/lib/scripts/images/transparent_150x192.jpg +0 -0
  131. package/lib/scripts/images/transparent_155x225.jpg +0 -0
  132. package/lib/scripts/parse_textes.mjs +0 -46
  133. package/lib/scripts/parse_textes.ts +0 -65
  134. package/lib/scripts/retrieve_documents.mjs +0 -249
  135. package/lib/scripts/retrieve_documents.ts +0 -298
  136. package/lib/scripts/retrieve_open_data.mjs +0 -217
  137. package/lib/scripts/retrieve_open_data.ts +0 -274
  138. package/lib/scripts/retrieve_senateurs_photos.mjs +0 -147
  139. package/lib/scripts/retrieve_senateurs_photos.ts +0 -177
  140. package/lib/scripts/retrieve_textes.d.ts +0 -1
  141. package/lib/scripts/retrieve_textes.mjs +0 -328
  142. package/lib/scripts/retrieve_textes.ts +0 -143
  143. package/lib/scripts/shared/cli_helpers.ts +0 -36
  144. package/lib/scripts/shared/util.ts +0 -33
  145. package/lib/src/aggregates.d.ts +0 -52
  146. package/lib/src/aggregates.mjs +0 -726
  147. package/lib/src/config.d.ts +0 -2
  148. package/lib/src/config.mjs +0 -16
  149. package/lib/src/databases.d.ts +0 -18
  150. package/lib/src/databases.mjs +0 -55
  151. package/lib/src/datasets.d.ts +0 -28
  152. package/lib/src/datasets.mjs +0 -78
  153. package/lib/src/fields.d.ts +0 -10
  154. package/lib/src/fields.mjs +0 -22
  155. package/lib/src/index.d.ts +0 -8
  156. package/lib/src/index.mjs +0 -7
  157. package/lib/src/inserters.d.ts +0 -98
  158. package/lib/src/inserters.mjs +0 -360
  159. package/lib/src/loaders.d.ts +0 -36
  160. package/lib/src/loaders.mjs +0 -107
  161. package/lib/src/model/ameli.d.ts +0 -4
  162. package/lib/src/model/ameli.js +0 -57
  163. package/lib/src/model/debats.d.ts +0 -4
  164. package/lib/src/model/debats.js +0 -43
  165. package/lib/src/model/dosleg.d.ts +0 -197
  166. package/lib/src/model/dosleg.js +0 -169
  167. package/lib/src/model/index.d.ts +0 -4
  168. package/lib/src/model/index.js +0 -4
  169. package/lib/src/model/questions.d.ts +0 -89
  170. package/lib/src/model/questions.js +0 -76
  171. package/lib/src/model/sens.d.ts +0 -390
  172. package/lib/src/model/sens.js +0 -339
  173. package/lib/src/model/texte.d.ts +0 -7
  174. package/lib/src/model/texte.js +0 -183
  175. package/lib/src/raw_types_kysely/ameli.d.ts +0 -915
  176. package/lib/src/raw_types_kysely/ameli.js +0 -5
  177. package/lib/src/raw_types_kysely/debats.d.ts +0 -207
  178. package/lib/src/raw_types_kysely/debats.js +0 -5
  179. package/lib/src/raw_types_kysely/dosleg.d.ts +0 -3532
  180. package/lib/src/raw_types_kysely/dosleg.js +0 -5
  181. package/lib/src/raw_types_kysely/questions.d.ts +0 -414
  182. package/lib/src/raw_types_kysely/questions.js +0 -5
  183. package/lib/src/raw_types_kysely/sens.d.ts +0 -4394
  184. package/lib/src/raw_types_kysely/sens.js +0 -5
  185. package/lib/src/raw_types_schemats/ameli.d.ts +0 -541
  186. package/lib/src/raw_types_schemats/ameli.js +0 -2
  187. package/lib/src/raw_types_schemats/debats.d.ts +0 -127
  188. package/lib/src/raw_types_schemats/debats.js +0 -2
  189. package/lib/src/raw_types_schemats/dosleg.d.ts +0 -2027
  190. package/lib/src/raw_types_schemats/dosleg.js +0 -2
  191. package/lib/src/raw_types_schemats/questions.d.ts +0 -231
  192. package/lib/src/raw_types_schemats/questions.js +0 -2
  193. package/lib/src/raw_types_schemats/sens.d.ts +0 -2709
  194. package/lib/src/raw_types_schemats/sens.js +0 -2
  195. package/lib/src/scripts/convert_data.d.ts +0 -1
  196. package/lib/src/scripts/convert_data.js +0 -95
  197. package/lib/src/scripts/datautil.d.ts +0 -5
  198. package/lib/src/scripts/datautil.js +0 -16
  199. package/lib/src/scripts/parse_textes.d.ts +0 -1
  200. package/lib/src/scripts/parse_textes.js +0 -47
  201. package/lib/src/scripts/retrieve_documents.d.ts +0 -1
  202. package/lib/src/scripts/retrieve_documents.js +0 -258
  203. package/lib/src/scripts/retrieve_open_data.d.ts +0 -1
  204. package/lib/src/scripts/retrieve_open_data.js +0 -214
  205. package/lib/src/scripts/retrieve_senateurs_photos.d.ts +0 -1
  206. package/lib/src/scripts/retrieve_senateurs_photos.js +0 -147
  207. package/lib/src/scripts/shared/cli_helpers.d.ts +0 -44
  208. package/lib/src/scripts/shared/cli_helpers.js +0 -32
  209. package/lib/src/scripts/shared/util.d.ts +0 -3
  210. package/lib/src/scripts/shared/util.js +0 -28
  211. package/lib/src/strings.d.ts +0 -1
  212. package/lib/src/strings.mjs +0 -18
  213. package/lib/src/types/ameli.d.ts +0 -10
  214. package/lib/src/types/ameli.js +0 -13
  215. package/lib/src/types/debats.d.ts +0 -4
  216. package/lib/src/types/debats.js +0 -2
  217. package/lib/src/types/dosleg.d.ts +0 -98
  218. package/lib/src/types/dosleg.js +0 -151
  219. package/lib/src/types/questions.d.ts +0 -2
  220. package/lib/src/types/questions.js +0 -1
  221. package/lib/src/types/sens.d.ts +0 -10
  222. package/lib/src/types/sens.js +0 -1
  223. package/lib/src/types/sessions.d.ts +0 -42
  224. package/lib/src/types/sessions.js +0 -43
  225. package/lib/src/types/texte.d.ts +0 -61
  226. package/lib/src/types/texte.js +0 -16
  227. package/lib/src/validators/config.d.ts +0 -1
  228. package/lib/src/validators/config.js +0 -54
  229. package/lib/src/validators/senat.d.ts +0 -0
  230. package/lib/src/validators/senat.js +0 -24
  231. package/lib/strings.mjs +0 -18
  232. package/lib/strings.ts +0 -26
  233. package/lib/types/ameli.mjs +0 -13
  234. package/lib/types/ameli.ts +0 -21
  235. package/lib/types/debats.mjs +0 -2
  236. package/lib/types/debats.ts +0 -6
  237. package/lib/types/dosleg.mjs +0 -151
  238. package/lib/types/dosleg.ts +0 -284
  239. package/lib/types/questions.mjs +0 -1
  240. package/lib/types/questions.ts +0 -3
  241. package/lib/types/sens.mjs +0 -1
  242. package/lib/types/sens.ts +0 -12
  243. package/lib/types/sessions.mjs +0 -43
  244. package/lib/types/sessions.ts +0 -42
  245. package/lib/types/texte.mjs +0 -16
  246. package/lib/types/texte.ts +0 -76
  247. package/lib/typings/windows-1252.d.js +0 -2
  248. package/lib/typings/windows-1252.d.mjs +0 -2
  249. package/lib/typings/windows-1252.d.ts +0 -11
  250. package/lib/validators/config.mjs +0 -54
  251. package/lib/validators/config.ts +0 -79
  252. package/lib/validators/senat.mjs +0 -24
  253. package/lib/validators/senat.ts +0 -26
@@ -1,147 +0,0 @@
1
- import assert from "assert";
2
- import { execSync } from "child_process";
3
- import commandLineArgs from "command-line-args";
4
- import fs from "fs-extra";
5
- // import fetch from "node-fetch"
6
- import path from "path";
7
- // import stream from "stream"
8
- // import util from "util"
9
- import { findActif as findActifSenateurs } from "../model/sens";
10
- import { slugify } from "../strings";
11
- import { commonOptions } from "./shared/cli_helpers";
12
- const optionsDefinitions = [
13
- ...commonOptions,
14
- {
15
- alias: "f",
16
- help: "fetch sénateurs' pictures instead of retrieving them from files",
17
- name: "fetch",
18
- type: Boolean,
19
- },
20
- ];
21
- const options = commandLineArgs(optionsDefinitions);
22
- // const pipeline = util.promisify(stream.pipeline)
23
- async function retrievePhotosSenateurs() {
24
- const dataDir = options.dataDir;
25
- assert(dataDir, "Missing argument: data directory");
26
- const photosDir = path.join(dataDir, "photos_senateurs");
27
- const missingPhotoFilePath = path.resolve(__dirname, "images", "transparent_155x225.jpg");
28
- const sens = await Array.fromAsync(findActifSenateurs());
29
- // Download photos.
30
- fs.ensureDirSync(photosDir);
31
- if (options.fetch) {
32
- for (const sen of sens) {
33
- const photoStem = `${slugify(sen.sennomuse, "_")}_${slugify(sen.senprenomuse, "_")}${slugify(sen.senmat, "_")}`;
34
- const photoFilename = photoStem + ".jpg";
35
- const photoFilePath = path.join(photosDir, photoFilename);
36
- const photoTempFilename = photoStem + "_temp.jpg";
37
- const photoTempFilePath = path.join(photosDir, photoTempFilename);
38
- const urlPhoto = `https://www.senat.fr/senimg/${photoFilename}`;
39
- if (!options.silent) {
40
- console.log(`Loading photo ${urlPhoto} for ${sen.senprenomuse} ${sen.sennomuse}…`);
41
- }
42
- // Fetch fails with OpenSSL error: dh key too small.
43
- // (so does "curl").
44
- // for (let retries = 0; retries < 3; retries++) {
45
- // const response = await fetch(urlPhoto)
46
- // if (response.ok) {
47
- // await pipeline(response.body, fs.createWriteStream(photoTempFilePath))
48
- // fs.renameSync(photoTempFilePath, photoFilePath)
49
- // break
50
- // }
51
- // if (retries >= 2) {
52
- // console.warn(`Fetch failed: ${urlPhoto} (${sen.senprenomuse} ${sen.sennomuse})`)
53
- // console.warn(response.status, response.statusText)
54
- // console.warn(await response.text())
55
- // if (fs.existsSync(photoFilePath)) {
56
- // console.warn(" => Reusing existing image")
57
- // } else {
58
- // console.warn(" => Using blank image")
59
- // fs.copyFileSync(missingPhotoFilePath, photoFilePath)
60
- // }
61
- // break
62
- // }
63
- // }
64
- try {
65
- execSync(`wget --quiet -O ${photoTempFilename} ${urlPhoto}`, {
66
- cwd: photosDir,
67
- env: process.env,
68
- encoding: "utf-8",
69
- // stdio: ["ignore", "ignore", "pipe"],
70
- });
71
- fs.renameSync(photoTempFilePath, photoFilePath);
72
- }
73
- catch (error) {
74
- if (typeof error === "object" && error && "status" in error && error.status === 8) {
75
- console.error(`Unable to load photo for ${sen.senprenomuse} ${sen.sennomuse}`);
76
- continue;
77
- }
78
- throw error;
79
- }
80
- }
81
- }
82
- // Resize photos to 155x225, because some haven't exactly this size.
83
- for (const sen of sens) {
84
- const photoStem = `${slugify(sen.sennomuse, "_")}_${slugify(sen.senprenomuse, "_")}${slugify(sen.senmat, "_")}`;
85
- const photoFilename = photoStem + ".jpg";
86
- const photoFilePath = path.join(photosDir, photoFilename);
87
- if (fs.existsSync(photoFilePath)) {
88
- if (!options.silent) {
89
- console.log(`Resizing photo ${photoStem} for ${sen.senprenomuse} ${sen.sennomuse}…`);
90
- }
91
- execSync(`gm convert -resize 155x225! ${photoStem}.jpg ${photoStem}_155x225.jpg`, {
92
- cwd: photosDir,
93
- });
94
- }
95
- else {
96
- if (!options.silent) {
97
- console.warn(`Missing photo for ${sen.senprenomuse} ${sen.sennomuse}: using blank image`);
98
- }
99
- fs.copyFileSync(missingPhotoFilePath, path.join(photosDir, `${photoStem}_155x225.jpg`));
100
- }
101
- }
102
- // Create a mosaic of photos.
103
- if (!options.silent) {
104
- console.log("Creating mosaic of photos…");
105
- }
106
- const photoBySenmat = {};
107
- const rowsFilenames = [];
108
- for (let senIndex = 0, rowIndex = 0; senIndex < sens.length; senIndex += 25, rowIndex++) {
109
- const row = sens.slice(senIndex, senIndex + 25);
110
- const photosFilenames = [];
111
- for (const [columnIndex, sen] of row.entries()) {
112
- const photoStem = `${slugify(sen.sennomuse, "_")}_${slugify(sen.senprenomuse, "_")}${slugify(sen.senmat, "_")}`;
113
- const photoFilename = `${photoStem}_155x225.jpg`;
114
- photosFilenames.push(photoFilename);
115
- photoBySenmat[sen.senmat] = {
116
- chemin: `photos_senateurs/${photoFilename}`,
117
- cheminMosaique: "photos_senateurs/senateurs.jpg",
118
- hauteur: 225,
119
- largeur: 155,
120
- xMosaique: columnIndex * 155,
121
- yMosaique: rowIndex * 225,
122
- };
123
- }
124
- const rowFilename = `row-${rowIndex}.jpg`;
125
- execSync(`gm convert ${photosFilenames.join(" ")} +append ${rowFilename}`, {
126
- cwd: photosDir,
127
- });
128
- rowsFilenames.push(rowFilename);
129
- }
130
- execSync(`gm convert ${rowsFilenames.join(" ")} -append senateurs.jpg`, {
131
- cwd: photosDir,
132
- });
133
- for (const rowFilename of rowsFilenames) {
134
- fs.unlinkSync(path.join(photosDir, rowFilename));
135
- }
136
- if (!options.silent) {
137
- console.log("Creating JSON file containing informations on all pictures…");
138
- }
139
- const jsonFilePath = path.join(photosDir, "senateurs.json");
140
- fs.writeFileSync(jsonFilePath, JSON.stringify(photoBySenmat, null, 2));
141
- }
142
- retrievePhotosSenateurs()
143
- .then(() => process.exit(0))
144
- .catch((error) => {
145
- console.log(error);
146
- process.exit(1);
147
- });
@@ -1,44 +0,0 @@
1
- export declare const categoriesOption: {
2
- alias: string;
3
- defaultValue: string[];
4
- help: string;
5
- multiple: boolean;
6
- name: string;
7
- type: StringConstructor;
8
- };
9
- export declare const dataDirDefaultOption: {
10
- defaultOption: boolean;
11
- help: string;
12
- name: string;
13
- type: StringConstructor;
14
- };
15
- export declare const silentOption: {
16
- alias: string;
17
- help: string;
18
- name: string;
19
- type: BooleanConstructor;
20
- };
21
- export declare const verboseOption: {
22
- alias: string;
23
- help: string;
24
- name: string;
25
- type: BooleanConstructor;
26
- };
27
- export declare const commonOptions: ({
28
- alias: string;
29
- defaultValue: string[];
30
- help: string;
31
- multiple: boolean;
32
- name: string;
33
- type: StringConstructor;
34
- } | {
35
- defaultOption: boolean;
36
- help: string;
37
- name: string;
38
- type: StringConstructor;
39
- } | {
40
- alias: string;
41
- help: string;
42
- name: string;
43
- type: BooleanConstructor;
44
- })[];
@@ -1,32 +0,0 @@
1
- export const categoriesOption = {
2
- alias: "k",
3
- defaultValue: ["All"],
4
- help: "categories of datasets to reorganize",
5
- multiple: true,
6
- name: "categories",
7
- type: String,
8
- };
9
- export const dataDirDefaultOption = {
10
- defaultOption: true,
11
- help: "directory containing Sénat open data files",
12
- name: "dataDir",
13
- type: String,
14
- };
15
- export const silentOption = {
16
- alias: "s",
17
- help: "don't log anything",
18
- name: "silent",
19
- type: Boolean,
20
- };
21
- export const verboseOption = {
22
- alias: "v",
23
- help: "verbose logs",
24
- name: "verbose",
25
- type: Boolean,
26
- };
27
- export const commonOptions = [
28
- categoriesOption,
29
- dataDirDefaultOption,
30
- silentOption,
31
- verboseOption,
32
- ];
@@ -1,3 +0,0 @@
1
- export declare function isOptionEmptyOrHasValue(option: string, value: string): boolean;
2
- export declare function ensureAndClearDir(path: string): void;
3
- export declare function fetchWithRetry(url: string, retries?: number, backoff?: number): Promise<Response>;
@@ -1,28 +0,0 @@
1
- import fs from "fs-extra";
2
- export function isOptionEmptyOrHasValue(option, value) {
3
- return !option || option.length === 0 || option.includes(value);
4
- }
5
- export function ensureAndClearDir(path) {
6
- if (!fs.existsSync(path)) {
7
- fs.mkdirSync(path, { recursive: true });
8
- }
9
- else {
10
- fs.emptyDirSync(path);
11
- }
12
- }
13
- export async function fetchWithRetry(url, retries = 3, backoff = 300) {
14
- for (let attempt = 0; attempt < retries; attempt++) {
15
- try {
16
- return await fetch(url);
17
- }
18
- catch (error) {
19
- if (attempt === retries - 1) {
20
- throw error;
21
- }
22
- console.warn(`Fetch attempt ${attempt + 1} for ${url} failed. Retrying in ${backoff}ms…`);
23
- await new Promise((resolve) => setTimeout(resolve, backoff));
24
- backoff *= 2;
25
- }
26
- }
27
- throw new Error(`Failed to fetch ${url} after ${retries} attempts`);
28
- }
@@ -1 +0,0 @@
1
- export declare function slugify(string: string, replacement?: string): string;
@@ -1,18 +0,0 @@
1
- import originalSlugify from "slug";
2
- const slugifyCharmap = {
3
- ...originalSlugify.defaults.charmap,
4
- "'": " ",
5
- "@": " ",
6
- ".": " ",
7
- "-": "_",
8
- };
9
- export function slugify(string, replacement) {
10
- const options = {
11
- charmap: slugifyCharmap,
12
- mode: "rfc3986",
13
- };
14
- if (replacement) {
15
- options.replacement = replacement;
16
- }
17
- return originalSlugify(string, options);
18
- }
@@ -1,10 +0,0 @@
1
- import { ses as Ses, sub as Sub, subFields, txt_ameli } from "../raw_types_schemats/ameli";
2
- export { Ses, Sub };
3
- export interface TxtAmeli extends txt_ameli {
4
- subids?: subFields.id[];
5
- }
6
- export declare const sesFieldsToParseInt: string[];
7
- export declare const sesFieldsToTrim: string[];
8
- export declare const subFieldsToParseInt: string[];
9
- export declare const subFieldsToTrim: string[];
10
- export declare const txtAmeliFieldsToTrim: string[];
@@ -1,13 +0,0 @@
1
- export const sesFieldsToParseInt = ["ann"];
2
- export const sesFieldsToTrim = ["lil"];
3
- export const subFieldsToParseInt = ["pos", "posder", "prires"];
4
- export const subFieldsToTrim = ["lic", "lib", "sig", "style"];
5
- export const txtAmeliFieldsToTrim = [
6
- "num",
7
- "int",
8
- "inl",
9
- "libdelim",
10
- "libcplnat",
11
- "doslegsignet",
12
- "ordsnddelib",
13
- ];
@@ -1,4 +0,0 @@
1
- import { debats as Debat, lecassdeb as LecAssDeb } from "../raw_types_schemats/debats";
2
- export { Debat, LecAssDeb };
3
- export declare const debatsFieldsToTrim: string[];
4
- export declare const lecassdebFieldsToTrim: string[];
@@ -1,2 +0,0 @@
1
- export const debatsFieldsToTrim = ["deburl", "libspec"];
2
- export const lecassdebFieldsToTrim = ["lecassidt"];
@@ -1,98 +0,0 @@
1
- import { txt_ameliFields } from "../raw_types_schemats/ameli";
2
- import { ass as Ass, aud, audFields, auteur, date_seance, date_seanceFields as dateSeanceFields, deccoc as DecCoc, denrap as DenRap, docatt, docattFields, ecr, ecrFields, etaloi as EtaLoi, lecass, lecassFields, lecassrap, lecture, lectureFields, loi, org as Org, oritxt as OriTxt, qua as Qua, rap, raporg as RapOrg, raporgFields, scr as Scr, texte, texteFields, typatt as TypAtt, typlec as TypLec, typloi as TypLoi, typtxt as TypTxt, typurl as TypUrl, typurlFields } from "../raw_types_schemats/dosleg";
3
- import { Debat } from "./debats";
4
- import { TxtAmeli } from "./ameli";
5
- export { Ass, DecCoc, DenRap, EtaLoi, Org, OriTxt, Qua, RapOrg, Scr, TypAtt, TypLec, TypLoi, TypTxt, TypUrl, };
6
- export interface Aud extends aud {
7
- org?: Org;
8
- }
9
- export interface Auteur extends auteur {
10
- qua?: Qua;
11
- }
12
- export interface DateSeance extends date_seance {
13
- debat?: Debat;
14
- scrids?: string[];
15
- scrs?: Scr[];
16
- }
17
- export interface DocAtt extends docatt {
18
- rap?: Rap;
19
- typatt?: TypAtt;
20
- }
21
- export interface Ecr extends ecr {
22
- aut?: Auteur;
23
- }
24
- export interface LecAss extends lecass {
25
- ass?: Ass;
26
- auds?: Aud[];
27
- audcles?: audFields.audcle[];
28
- datesSeances?: DateSeance[];
29
- datesSeancesCodes?: dateSeanceFields.code[];
30
- debatdatseas: Date[];
31
- lecassraps?: LecAssRap[];
32
- lecassrapids?: string[];
33
- org?: Org;
34
- texcods: texteFields.texcod[];
35
- textes?: Texte[];
36
- }
37
- export interface LecAssRap extends lecassrap {
38
- rap?: Rap;
39
- }
40
- export interface Lecture extends lecture {
41
- typlec?: TypLec;
42
- lecassidts?: lecassFields.lecassidt[];
43
- lecasss?: LecAss[];
44
- }
45
- export interface Loi extends loi {
46
- deccoc?: DecCoc;
47
- etaloi?: EtaLoi;
48
- lecidts?: lectureFields.lecidt[];
49
- lectures?: Lecture[];
50
- typloi?: TypLoi;
51
- }
52
- export interface Rap extends rap {
53
- denrap?: DenRap;
54
- docattcles?: docattFields.docattcle[];
55
- docatts?: DocAtt[];
56
- ecrnums?: ecrFields.ecrnum[];
57
- ecrs?: Ecr[];
58
- orgcods?: raporgFields.orgcod[];
59
- orgs?: Org[];
60
- }
61
- export interface Texte extends texte {
62
- ecrs?: Ecr[];
63
- ecrnums?: ecrFields.ecrnum[];
64
- libtypurl?: typurlFields.libtypurl;
65
- org?: Org;
66
- oritxt: OriTxt;
67
- typtxt?: TypTxt;
68
- txtAmeli?: TxtAmeli;
69
- txtAmeliId: txt_ameliFields.id;
70
- }
71
- export declare const assFieldsToTrim: string[];
72
- export declare const audFieldsToTrim: string[];
73
- export declare const auteurFieldsToTrim: string[];
74
- export declare const dateSeanceFieldsToTrim: string[];
75
- export declare const deccocFieldsToTrim: string[];
76
- export declare const denrapFieldsToTrim: string[];
77
- export declare const docattFieldsToParseInt: string[];
78
- export declare const docattFieldsToTrim: string[];
79
- export declare const ecrFieldsToTrim: string[];
80
- export declare const etaloiFieldsToTrim: string[];
81
- export declare const lecassFieldsToTrim: string[];
82
- export declare const lecassrapFieldsToTrim: string[];
83
- export declare const lectureFieldsToTrim: string[];
84
- export declare const loiFieldsToTrim: string[];
85
- export declare const orgFieldsToTrim: string[];
86
- export declare const oritxtFieldsToTrim: string[];
87
- export declare const quaFieldsToTrim: string[];
88
- export declare const rapFieldsToParseInt: string[];
89
- export declare const rapFieldsToTrim: string[];
90
- export declare const raporgFieldsToTrim: string[];
91
- export declare const scrFieldsToTrim: string[];
92
- export declare const texteFieldsToParseInt: string[];
93
- export declare const texteFieldsToTrim: string[];
94
- export declare const typattFieldsToTrim: string[];
95
- export declare const typlecFieldsToTrim: string[];
96
- export declare const typloiFieldsToTrim: string[];
97
- export declare const typtxtFieldsToTrim: string[];
98
- export declare const typurlFieldsToTrim: string[];
@@ -1,151 +0,0 @@
1
- export const assFieldsToTrim = ["libass"];
2
- export const audFieldsToTrim = ["lecassidt", "audtit", "audurl", "orgcod"];
3
- export const auteurFieldsToTrim = [
4
- "autcod",
5
- "quacod",
6
- "typautcod",
7
- "nomuse",
8
- "prenom",
9
- "nomtec",
10
- "autmat",
11
- "autfct",
12
- ];
13
- export const dateSeanceFieldsToTrim = ["lecidt", "statut"];
14
- export const deccocFieldsToTrim = ["deccoccod", "deccoclib"];
15
- export const denrapFieldsToTrim = [
16
- "coddenrap",
17
- "typraprap",
18
- "libdenrap",
19
- "denrapmin",
20
- "denraptit",
21
- "denrapstymin",
22
- "solnatrapcod",
23
- ];
24
- export const docattFieldsToParseInt = ["docattcle", "rapcod"];
25
- export const docattFieldsToTrim = ["docatturl"];
26
- export const ecrFieldsToTrim = ["autcod", "ecrqua"];
27
- export const etaloiFieldsToTrim = ["etaloilib"];
28
- export const lecassFieldsToTrim = [
29
- "lecassidt",
30
- "lecidt",
31
- "ptlurl",
32
- "ptlnumcpl",
33
- "ptlnot",
34
- "ptlurl2",
35
- "ptlnot2",
36
- "ptlurl3",
37
- "ptlnot3",
38
- "ptlnumcpl2",
39
- "ptlnumcpl3",
40
- "lecassame",
41
- "orgcod",
42
- "loiintmod",
43
- "reucom",
44
- "debatsurl",
45
- "libppr",
46
- "ptlurlcom",
47
- "aliasppr",
48
- "lecassamecom",
49
- ];
50
- export const lecassrapFieldsToTrim = ["lecassidt"];
51
- export const lectureFieldsToTrim = ["lecidt", "loicod", "typleccod", "leccom"];
52
- export const loiFieldsToTrim = [
53
- "loicod",
54
- "typloicod",
55
- "deccoccod",
56
- "numero",
57
- "loient",
58
- "motclef",
59
- "loitit",
60
- "loiint",
61
- "url_jo",
62
- "loinumjo",
63
- "loititjo",
64
- "url_jo2",
65
- "loinumjo2",
66
- "deccocurl",
67
- "num_decision",
68
- "loicodmai",
69
- "loinoudelibcod",
70
- "motionloiorigcod",
71
- "url_ordonnance",
72
- "saisine_par",
73
- "loinumjo3",
74
- "url_jo3",
75
- "url_an",
76
- "url_presart",
77
- "signetalt",
78
- "orgcod",
79
- "doscocurl",
80
- "loiintori",
81
- ];
82
- export const orgFieldsToTrim = [
83
- "orgcod",
84
- "typorgcod",
85
- "orgnom",
86
- "orgliblon",
87
- "orglibaff",
88
- "orgurl",
89
- "orglibcou",
90
- "org_de",
91
- "urltra",
92
- "inttra",
93
- "orgnomcouv",
94
- "senorgcod",
95
- "html_color",
96
- ];
97
- export const oritxtFieldsToTrim = ["oritxtcod", "oritxtlib", "oritxtlibfem"];
98
- export const quaFieldsToTrim = ["quacod", "qualic", "quaabr", "quaabrplu"];
99
- export const rapFieldsToParseInt = ["rapcod", "sesann", "rapnum", "rapnuman"];
100
- export const rapFieldsToTrim = [
101
- "coddenrap",
102
- "blecod",
103
- "raptitcou",
104
- "raptil",
105
- "rapurl",
106
- "url2",
107
- "url3",
108
- "url4",
109
- "url2txt",
110
- "url3txt",
111
- "url4txt",
112
- "prix",
113
- "numerobis",
114
- "rapsoustit",
115
- "rapres",
116
- "forpubcod",
117
- ];
118
- export const raporgFieldsToTrim = ["orgcod"];
119
- export const scrFieldsToTrim = ["scrint", "soslib"];
120
- export const texteFieldsToParseInt = ["texcod", "sesann", "texnum"];
121
- export const texteFieldsToTrim = [
122
- "oritxtcod",
123
- "typtxtcod",
124
- "lecassidt",
125
- "orgcod",
126
- "texurl",
127
- "url2",
128
- "url3",
129
- "url4",
130
- "url2txt",
131
- "url3txt",
132
- "url4txt",
133
- "prix",
134
- "numerobis",
135
- "reserve_comspe",
136
- ];
137
- export const typattFieldsToTrim = ["typattlib"];
138
- export const typlecFieldsToTrim = ["typleccod", "typleclib"];
139
- export const typloiFieldsToTrim = [
140
- "typloicod",
141
- "typloilib",
142
- "groupe",
143
- "typloiden",
144
- "typloigen",
145
- "typloitit",
146
- "typloidenplu",
147
- "typloide",
148
- "typloiabr",
149
- ];
150
- export const typtxtFieldsToTrim = ["typtxtcod", "typtxtlib"];
151
- export const typurlFieldsToTrim = ["libtypurl"];
@@ -1,2 +0,0 @@
1
- import { tam_questions as Question } from "../raw_types_schemats/questions";
2
- export { Question };
@@ -1 +0,0 @@
1
- export {};
@@ -1,10 +0,0 @@
1
- import { sen as Sen } from "../raw_types_schemats/sens";
2
- export { Sen };
3
- export interface Photo {
4
- chemin: string;
5
- cheminMosaique: string;
6
- hauteur: number;
7
- largeur: number;
8
- xMosaique: number;
9
- yMosaique: number;
10
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,42 +0,0 @@
1
- export declare enum Session {
2
- "2012-2013" = 2012,
3
- "2013-2014" = 2013,
4
- "2014-2015" = 2014,
5
- "2015-2016" = 2015,
6
- "2016-2017" = 2016,
7
- "2017-2018" = 2017,
8
- "2018-2019" = 2018,
9
- "2019-2020" = 2019,
10
- "2020-2021" = 2020,
11
- "2021-2022" = 2021,
12
- "2022-2023" = 2022,
13
- "2023-2024" = 2023,
14
- "2024-2025" = 2024,
15
- "2025-2026" = 2025,
16
- "2026-2027" = 2026,
17
- "2027-2028" = 2027,
18
- "2028-2029" = 2028,
19
- "2029-2030" = 2029,
20
- "2030-2031" = 2030,
21
- "2031-2032" = 2031,
22
- "2032-2033" = 2032,
23
- "2033-2034" = 2033,
24
- "2034-2035" = 2034,
25
- "2035-2036" = 2035,
26
- "2036-2037" = 2036,
27
- "2037-2038" = 2037,
28
- "2038-2039" = 2038,
29
- "2039-2040" = 2039,
30
- "2040-2041" = 2040,
31
- "2041-2042" = 2041,
32
- "2042-2043" = 2042,
33
- "2043-2044" = 2043,
34
- "2044-2045" = 2044,
35
- "2045-2046" = 2045,
36
- "2046-2047" = 2046,
37
- "2047-2048" = 2047,
38
- "2048-2049" = 2048,
39
- "2049-2050" = 2049,
40
- "2050-2051" = 2050,
41
- "All" = 0
42
- }
@@ -1,43 +0,0 @@
1
- export var Session;
2
- (function (Session) {
3
- Session[Session["2012-2013"] = 2012] = "2012-2013";
4
- Session[Session["2013-2014"] = 2013] = "2013-2014";
5
- Session[Session["2014-2015"] = 2014] = "2014-2015";
6
- Session[Session["2015-2016"] = 2015] = "2015-2016";
7
- Session[Session["2016-2017"] = 2016] = "2016-2017";
8
- Session[Session["2017-2018"] = 2017] = "2017-2018";
9
- Session[Session["2018-2019"] = 2018] = "2018-2019";
10
- Session[Session["2019-2020"] = 2019] = "2019-2020";
11
- Session[Session["2020-2021"] = 2020] = "2020-2021";
12
- Session[Session["2021-2022"] = 2021] = "2021-2022";
13
- Session[Session["2022-2023"] = 2022] = "2022-2023";
14
- Session[Session["2023-2024"] = 2023] = "2023-2024";
15
- Session[Session["2024-2025"] = 2024] = "2024-2025";
16
- Session[Session["2025-2026"] = 2025] = "2025-2026";
17
- Session[Session["2026-2027"] = 2026] = "2026-2027";
18
- Session[Session["2027-2028"] = 2027] = "2027-2028";
19
- Session[Session["2028-2029"] = 2028] = "2028-2029";
20
- Session[Session["2029-2030"] = 2029] = "2029-2030";
21
- Session[Session["2030-2031"] = 2030] = "2030-2031";
22
- Session[Session["2031-2032"] = 2031] = "2031-2032";
23
- Session[Session["2032-2033"] = 2032] = "2032-2033";
24
- Session[Session["2033-2034"] = 2033] = "2033-2034";
25
- Session[Session["2034-2035"] = 2034] = "2034-2035";
26
- Session[Session["2035-2036"] = 2035] = "2035-2036";
27
- Session[Session["2036-2037"] = 2036] = "2036-2037";
28
- Session[Session["2037-2038"] = 2037] = "2037-2038";
29
- Session[Session["2038-2039"] = 2038] = "2038-2039";
30
- Session[Session["2039-2040"] = 2039] = "2039-2040";
31
- Session[Session["2040-2041"] = 2040] = "2040-2041";
32
- Session[Session["2041-2042"] = 2041] = "2041-2042";
33
- Session[Session["2042-2043"] = 2042] = "2042-2043";
34
- Session[Session["2043-2044"] = 2043] = "2043-2044";
35
- Session[Session["2044-2045"] = 2044] = "2044-2045";
36
- Session[Session["2045-2046"] = 2045] = "2045-2046";
37
- Session[Session["2046-2047"] = 2046] = "2046-2047";
38
- Session[Session["2047-2048"] = 2047] = "2047-2048";
39
- Session[Session["2048-2049"] = 2048] = "2048-2049";
40
- Session[Session["2049-2050"] = 2049] = "2049-2050";
41
- Session[Session["2050-2051"] = 2050] = "2050-2051";
42
- Session[Session["All"] = 0] = "All";
43
- })(Session || (Session = {}));