@tricoteuses/assemblee 3.2.11 → 3.2.13

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 (3) hide show
  1. package/LICENSE.md +38 -38
  2. package/README.md +153 -153
  3. package/package.json +134 -134
package/LICENSE.md CHANGED
@@ -1,38 +1,38 @@
1
- # Tricoteuses-Assemblee
2
-
3
- ## _Retrieve, clean up & handle French Assemblée nationale's open data_
4
-
5
- By:
6
-
7
- - Henry Boisgibault <mailto:henry.boisgibault@proton.me>
8
- - Jérémie Corpinot <mailto:jerem.freelance@codingbox.fr>
9
- - Mathilde Couvreur <mailto:mathilde.couvreur@gmail.com>
10
- - Loïc Dachary <mailto:loic@dachary.org>
11
- - Pierre Drege <mailto:dregop@proton.me>
12
- - Nelson Herbin <mailto:nelson@herbin.info>
13
- - implicitdef
14
- - Hélène Jonin <mailto:helene.jonin@gmail.com>
15
- - Pauline Léon <mailto:paulineleon@tutanota.com>
16
- - Paul-Henry Ngounou <mailto:ngpaulhenry@gmail.com>
17
- - Emmanuel Raviart <mailto:emmanuel@raviart.com>
18
-
19
- Copyright:
20
-
21
- - © 2019, 2020, 2021 Loïc Dachary & Emmanuel Raviart
22
- - © 2022 Emmanuel Raviart
23
- - © 2023, 2024, 2025, 2026 Logora & Emmanuel Raviart
24
-
25
- https://git.tricoteuses.fr/logiciels/tricoteuses-assemblee
26
-
27
- > Tricoteuses-Assemblee is free software; you can redistribute it and/or modify
28
- > it under the terms of the GNU Affero General Public License as
29
- > published by the Free Software Foundation, either version 3 of the
30
- > License, or (at your option) any later version.
31
- >
32
- > Tricoteuses-Assemblee is distributed in the hope that it will be useful,
33
- > but WITHOUT ANY WARRANTY; without even the implied warranty of
34
- > MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35
- > GNU Affero General Public License for more details.
36
- >
37
- > You should have received a copy of the GNU Affero General Public License
38
- > along with this program. If not, see <http://www.gnu.org/licenses/>.
1
+ # Tricoteuses-Assemblee
2
+
3
+ ## _Retrieve, clean up & handle French Assemblée nationale's open data_
4
+
5
+ By:
6
+
7
+ - Henry Boisgibault <mailto:henry.boisgibault@proton.me>
8
+ - Jérémie Corpinot <mailto:jerem.freelance@codingbox.fr>
9
+ - Mathilde Couvreur <mailto:mathilde.couvreur@gmail.com>
10
+ - Loïc Dachary <mailto:loic@dachary.org>
11
+ - Pierre Drege <mailto:dregop@proton.me>
12
+ - Nelson Herbin <mailto:nelson@herbin.info>
13
+ - implicitdef
14
+ - Hélène Jonin <mailto:helene.jonin@gmail.com>
15
+ - Pauline Léon <mailto:paulineleon@tutanota.com>
16
+ - Paul-Henry Ngounou <mailto:ngpaulhenry@gmail.com>
17
+ - Emmanuel Raviart <mailto:emmanuel@raviart.com>
18
+
19
+ Copyright:
20
+
21
+ - © 2019, 2020, 2021 Loïc Dachary & Emmanuel Raviart
22
+ - © 2022 Emmanuel Raviart
23
+ - © 2023, 2024, 2025, 2026 Logora & Emmanuel Raviart
24
+
25
+ https://git.tricoteuses.fr/logiciels/tricoteuses-assemblee
26
+
27
+ > Tricoteuses-Assemblee is free software; you can redistribute it and/or modify
28
+ > it under the terms of the GNU Affero General Public License as
29
+ > published by the Free Software Foundation, either version 3 of the
30
+ > License, or (at your option) any later version.
31
+ >
32
+ > Tricoteuses-Assemblee is distributed in the hope that it will be useful,
33
+ > but WITHOUT ANY WARRANTY; without even the implied warranty of
34
+ > MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35
+ > GNU Affero General Public License for more details.
36
+ >
37
+ > You should have received a copy of the GNU Affero General Public License
38
+ > along with this program. If not, see <http://www.gnu.org/licenses/>.
package/README.md CHANGED
@@ -1,153 +1,153 @@
1
- # Tricoteuses-Assemblee
2
-
3
- ## _Retrieve, clean up & handle French Assemblée nationale's open data_
4
-
5
- _Tricoteuses Légifrance_ is free and open source software.
6
-
7
- - [software repository](https://git.tricoteuses.fr/logiciels/tricoteuses-assemblee)
8
- - [GNU Affero General Public License version 3 or greater](https://git.tricoteuses.fr/logiciels/tricoteuses-assemblee/-/tree/master/LICENSE.md)
9
-
10
- ## documentation
11
-
12
- - [Architecture](doc/architecture.md)
13
- - [Browser Usage](doc/BROWSER_USAGE.md) - Using this package in browser/Vite projects
14
-
15
- ## Installation
16
-
17
- ```bash
18
- git clone https://git.tricoteuses.fr/logiciels/tricoteuses-assemblee
19
- cd tricoteuses-assemblee/
20
- ```
21
-
22
- ```bash
23
- npm install
24
- ```
25
-
26
- ## Download and clean data
27
-
28
- ### Basic usage
29
-
30
- Create a directory to store the data, then run the following command to download, reorganize and clean the data.
31
-
32
- ```bash
33
- mkdir ../assemblee-data/
34
- npm run data:download ../assemblee-data
35
- ```
36
-
37
- ### Available Commands
38
-
39
- - `npm run data:download <dir>`: Download, reorganize, and clean data
40
- - `npm run data:retrieve_open_data <dir>`: Download raw data files.
41
- - `npm run data:reorganize_data <dir>`: Reorganize raw files by entity.
42
- - `npm run data:clean_data <dir>`: Clean and validate reorganized files.
43
- - `npm run data:retrieve_deputes_photos <dir>`: Retrieval of députés' pictures from Assemblée nationale's website
44
- - `npm run data:retrieve_senateurs_photos <dir>`: Retrieval of sénateurs' pictures from Assemblée nationale's website
45
- - `npm run data:retrieve_documents <dir>`: Retrieval of legislative documents from Assemblée nationale's website
46
- - `npm run data:retrieve_pending_amendements <dir>`: Retrieval of pending amendments from Assemblée nationale's website (waiting to be processed by Assemblée services)
47
-
48
- _Notes_:
49
-
50
- - Reorganized files (generated by the _data:reorganize_data_ command) are also available in [Tricoteuses / Data / Données brutes de l'Assemblée](https://git.en-root.org/tricoteuses/data/assemblee-brut). They are updated on a regular basis.
51
- - Split & cleaned files (generated by the _data:clean_data_ command) are also available in [Tricoteuses / Data / Données nettoyées de l'Assemblée](https://git.en-root.org/tricoteuses/data/assemblee-nettoye) with the `_nettoye` suffix. They are updated on a regular basis.
52
-
53
- ### Filtering Options
54
-
55
- Downloading and cleaning all the data is long and takes up a lot of disk space. It is possible to choose the type of data that you want to retrieve to reduce the load.
56
-
57
- Examples:
58
-
59
- ```bash
60
- # Only download amendments
61
- npm run data:download ../assemblee-data -- -k Amendements
62
-
63
- # Only process 16th and 17th legislatures
64
- npm run data:download ../assemblee-data -- -l 16 -l 17
65
-
66
- # Retrieve comptes rendus de seance and commissions for one legislature
67
- npm run data:retrieve_open_data ../assemblee-data -- --categories ComptesRendus --legislature 17 --fetchCrCommissions
68
- ```
69
-
70
- ### Common Options
71
-
72
- - `--categories` or `-k <name>`: Filter by dataset categories (Available options : `ActeursEtOrganes`, `Agendas`, `Amendements`, `DossiersLegislatifs`, `Photos`, `Scrutins`, `Questions`, `ComptesRendus`)
73
-
74
- - `--legislature` or `-l <number>`: Specify one or more legislatures to process (e.g., `-l 15 -l 16`)
75
- - `--dataDir <path>` (Mandatory): Path to the working directory where all data is stored (required)
76
- - `--silent` or `-s`: Disable logging
77
- - `--verbose` or `-v`: Enable verbose logging
78
- - `--fetch` or `-f`: Force re-download of data even if already present
79
- - `--commit` or `-c`: Automatically commit cleaned data
80
- - `--pull` or `-p`: Pull repositories before starting
81
- - `--clone` or `-C <url>`: Clone Git repositories from a remote group or organization
82
- - `--remote` or `-r <name>`: Push commits to specified Git remote(s)
83
- - `--keepDir`: Keep Dir (Implement before cleaning data)
84
- - `--only-recent` (number): If files are already present, skip files that are above the specified number of days and skip old legislatures (e.g. `-only-recent 30`)
85
-
86
- If you use such options, use them in all subsequent commands too (_data:regorganize_data_ and _data:clean_data_).
87
-
88
- ### Options for Data Retrieval
89
-
90
- With `data:retrieve_open_data`,
91
-
92
- - use `--categories=ComptesRendus` to retrieve comptes rendus de séance for the selected legislature(s).
93
-
94
- Note:
95
-
96
- - Comptes-rendus & videos of commissions are retrieved when cleaning agendas data.
97
-
98
- ### Options for Cleaning Data
99
-
100
- - `--dataset` or `-d <name>`: Clean a specific dataset only
101
- - `--fetchCrCommissions`: Retrieve and parse CR commissions
102
- - `--fetchVideos`: Retrieve videos
103
- - `--fetchDocuments` : Specify to retrieve documents
104
- - `--no-reset-after-commit`: Skip Git reset after committing (useful to preserve local changes)
105
- - `--no-validate` or `-V`: Skip schema validation during cleaning
106
- - `--parseDocuments`: Specify to parse documents into cleaned json
107
-
108
- Note:
109
-
110
- - use `--categories=Agendas` together with `--fetchCrCommissions` to retrieve comptes rendus de commission.
111
- - use `--categories=Agendas` together with `--fetchVideos` to retrieve videos of commissions.
112
-
113
- ### Options for Retrieving Documents
114
-
115
- - `--full` or `-f`: Retrieve all documents, even those already downloaded
116
- - `--document-type` or `-T <type>`: Restrict to specific document types (e.g., `PION`)
117
-
118
- ## Download using Docker
119
-
120
- A Docker image that downloads and cleans the data all at once is available. Build it locally or run it from the container registry.
121
- Use the environment variables `LEGISLATURE` and `CATEGORIES` if needed.
122
-
123
- ```bash
124
- docker run --pull always --name tricoteuses-assemblee -v ../assemblee-data:/app/assemblee-data -e LEGISLATURE=17 -d git.tricoteuses.fr/logiciels/tricoteuses-assemblee:latest
125
- ```
126
-
127
- ## Using the data
128
-
129
- Once the data is downloaded and cleaned, you can use loaders to retrieve it.
130
- To use loaders in your project, you can install the _@tricoteuses/assemblee_ package, and import the iterator functions that you need.
131
-
132
- ```bash
133
- npm install @tricoteuses/assemblee
134
- ```
135
-
136
- ```js
137
- import {
138
- iterLoadAssembleeActeurs,
139
- iterLoadAssembleeOrganes,
140
- iterLoadAssembleeReunions,
141
- iterLoadAssembleeScrutins,
142
- iterLoadAssembleeDocuments,
143
- iterLoadAssembleeDossiersParlementaires,
144
- iterLoadAssembleeAmendements,
145
- iterLoadAssembleeQuestions,
146
- iterLoadAssembleeComptesRendus,
147
- } from "@tricoteuses/assemblee/loaders"
148
-
149
- // Pass data directory and legislature as arguments
150
- for (const { acteur } of iterLoadAssembleeActeurs("../assemblee-data", 17)) {
151
- console.log(acteur.uid)
152
- }
153
- ```
1
+ # Tricoteuses-Assemblee
2
+
3
+ ## _Retrieve, clean up & handle French Assemblée nationale's open data_
4
+
5
+ _Tricoteuses Légifrance_ is free and open source software.
6
+
7
+ - [software repository](https://git.tricoteuses.fr/logiciels/tricoteuses-assemblee)
8
+ - [GNU Affero General Public License version 3 or greater](https://git.tricoteuses.fr/logiciels/tricoteuses-assemblee/-/tree/master/LICENSE.md)
9
+
10
+ ## documentation
11
+
12
+ - [Architecture](doc/architecture.md)
13
+ - [Browser Usage](doc/BROWSER_USAGE.md) - Using this package in browser/Vite projects
14
+
15
+ ## Installation
16
+
17
+ ```bash
18
+ git clone https://git.tricoteuses.fr/logiciels/tricoteuses-assemblee
19
+ cd tricoteuses-assemblee/
20
+ ```
21
+
22
+ ```bash
23
+ npm install
24
+ ```
25
+
26
+ ## Download and clean data
27
+
28
+ ### Basic usage
29
+
30
+ Create a directory to store the data, then run the following command to download, reorganize and clean the data.
31
+
32
+ ```bash
33
+ mkdir ../assemblee-data/
34
+ npm run data:download ../assemblee-data
35
+ ```
36
+
37
+ ### Available Commands
38
+
39
+ - `npm run data:download <dir>`: Download, reorganize, and clean data
40
+ - `npm run data:retrieve_open_data <dir>`: Download raw data files.
41
+ - `npm run data:reorganize_data <dir>`: Reorganize raw files by entity.
42
+ - `npm run data:clean_data <dir>`: Clean and validate reorganized files.
43
+ - `npm run data:retrieve_deputes_photos <dir>`: Retrieval of députés' pictures from Assemblée nationale's website
44
+ - `npm run data:retrieve_senateurs_photos <dir>`: Retrieval of sénateurs' pictures from Assemblée nationale's website
45
+ - `npm run data:retrieve_documents <dir>`: Retrieval of legislative documents from Assemblée nationale's website
46
+ - `npm run data:retrieve_pending_amendements <dir>`: Retrieval of pending amendments from Assemblée nationale's website (waiting to be processed by Assemblée services)
47
+
48
+ _Notes_:
49
+
50
+ - Reorganized files (generated by the _data:reorganize_data_ command) are also available in [Tricoteuses / Data / Données brutes de l'Assemblée](https://git.en-root.org/tricoteuses/data/assemblee-brut). They are updated on a regular basis.
51
+ - Split & cleaned files (generated by the _data:clean_data_ command) are also available in [Tricoteuses / Data / Données nettoyées de l'Assemblée](https://git.en-root.org/tricoteuses/data/assemblee-nettoye) with the `_nettoye` suffix. They are updated on a regular basis.
52
+
53
+ ### Filtering Options
54
+
55
+ Downloading and cleaning all the data is long and takes up a lot of disk space. It is possible to choose the type of data that you want to retrieve to reduce the load.
56
+
57
+ Examples:
58
+
59
+ ```bash
60
+ # Only download amendments
61
+ npm run data:download ../assemblee-data -- -k Amendements
62
+
63
+ # Only process 16th and 17th legislatures
64
+ npm run data:download ../assemblee-data -- -l 16 -l 17
65
+
66
+ # Retrieve comptes rendus de seance and commissions for one legislature
67
+ npm run data:retrieve_open_data ../assemblee-data -- --categories ComptesRendus --legislature 17 --fetchCrCommissions
68
+ ```
69
+
70
+ ### Common Options
71
+
72
+ - `--categories` or `-k <name>`: Filter by dataset categories (Available options : `ActeursEtOrganes`, `Agendas`, `Amendements`, `DossiersLegislatifs`, `Photos`, `Scrutins`, `Questions`, `ComptesRendus`)
73
+
74
+ - `--legislature` or `-l <number>`: Specify one or more legislatures to process (e.g., `-l 15 -l 16`)
75
+ - `--dataDir <path>` (Mandatory): Path to the working directory where all data is stored (required)
76
+ - `--silent` or `-s`: Disable logging
77
+ - `--verbose` or `-v`: Enable verbose logging
78
+ - `--fetch` or `-f`: Force re-download of data even if already present
79
+ - `--commit` or `-c`: Automatically commit cleaned data
80
+ - `--pull` or `-p`: Pull repositories before starting
81
+ - `--clone` or `-C <url>`: Clone Git repositories from a remote group or organization
82
+ - `--remote` or `-r <name>`: Push commits to specified Git remote(s)
83
+ - `--keepDir`: Keep Dir (Implement before cleaning data)
84
+ - `--only-recent` (number): If files are already present, skip files that are above the specified number of days and skip old legislatures (e.g. `-only-recent 30`)
85
+
86
+ If you use such options, use them in all subsequent commands too (_data:regorganize_data_ and _data:clean_data_).
87
+
88
+ ### Options for Data Retrieval
89
+
90
+ With `data:retrieve_open_data`,
91
+
92
+ - use `--categories=ComptesRendus` to retrieve comptes rendus de séance for the selected legislature(s).
93
+
94
+ Note:
95
+
96
+ - Comptes-rendus & videos of commissions are retrieved when cleaning agendas data.
97
+
98
+ ### Options for Cleaning Data
99
+
100
+ - `--dataset` or `-d <name>`: Clean a specific dataset only
101
+ - `--fetchCrCommissions`: Retrieve and parse CR commissions
102
+ - `--fetchVideos`: Retrieve videos
103
+ - `--fetchDocuments` : Specify to retrieve documents
104
+ - `--no-reset-after-commit`: Skip Git reset after committing (useful to preserve local changes)
105
+ - `--no-validate` or `-V`: Skip schema validation during cleaning
106
+ - `--parseDocuments`: Specify to parse documents into cleaned json
107
+
108
+ Note:
109
+
110
+ - use `--categories=Agendas` together with `--fetchCrCommissions` to retrieve comptes rendus de commission.
111
+ - use `--categories=Agendas` together with `--fetchVideos` to retrieve videos of commissions.
112
+
113
+ ### Options for Retrieving Documents
114
+
115
+ - `--full` or `-f`: Retrieve all documents, even those already downloaded
116
+ - `--document-type` or `-T <type>`: Restrict to specific document types (e.g., `PION`)
117
+
118
+ ## Download using Docker
119
+
120
+ A Docker image that downloads and cleans the data all at once is available. Build it locally or run it from the container registry.
121
+ Use the environment variables `LEGISLATURE` and `CATEGORIES` if needed.
122
+
123
+ ```bash
124
+ docker run --pull always --name tricoteuses-assemblee -v ../assemblee-data:/app/assemblee-data -e LEGISLATURE=17 -d git.tricoteuses.fr/logiciels/tricoteuses-assemblee:latest
125
+ ```
126
+
127
+ ## Using the data
128
+
129
+ Once the data is downloaded and cleaned, you can use loaders to retrieve it.
130
+ To use loaders in your project, you can install the _@tricoteuses/assemblee_ package, and import the iterator functions that you need.
131
+
132
+ ```bash
133
+ npm install @tricoteuses/assemblee
134
+ ```
135
+
136
+ ```js
137
+ import {
138
+ iterLoadAssembleeActeurs,
139
+ iterLoadAssembleeOrganes,
140
+ iterLoadAssembleeReunions,
141
+ iterLoadAssembleeScrutins,
142
+ iterLoadAssembleeDocuments,
143
+ iterLoadAssembleeDossiersParlementaires,
144
+ iterLoadAssembleeAmendements,
145
+ iterLoadAssembleeQuestions,
146
+ iterLoadAssembleeComptesRendus,
147
+ } from "@tricoteuses/assemblee/loaders"
148
+
149
+ // Pass data directory and legislature as arguments
150
+ for (const { acteur } of iterLoadAssembleeActeurs("../assemblee-data", 17)) {
151
+ console.log(acteur.uid)
152
+ }
153
+ ```
package/package.json CHANGED
@@ -1,134 +1,134 @@
1
- {
2
- "name": "@tricoteuses/assemblee",
3
- "version": "3.2.11",
4
- "description": "Retrieve, clean up & handle French Assemblée nationale's open data",
5
- "keywords": [
6
- "Assemblée nationale",
7
- "France",
8
- "open data",
9
- "Parliament"
10
- ],
11
- "author": "Emmanuel Raviart <emmanuel@raviart.com>",
12
- "contributors": [
13
- "Henry Boisgibault <henry.boisgibault@proton.me>",
14
- "Jérémie Corpinot <jerem.freelance@codingbox.fr>",
15
- "Mathilde Couvreur <mathilde.couvreur@gmail.com>",
16
- "Loïc Dachary <loic@dachary.org>",
17
- "Pierre Drege <dregop@proton.me>",
18
- "Nelson Herbin <nelson@herbin.info>",
19
- "implicitdef",
20
- "Hélène Jonin <helene.jonin@gmail.com>",
21
- "Pauline Léon <paulineleon@tutanota.com>",
22
- "Paul-Henry Ngounou <ngpaulhenry@gmail.com>"
23
- ],
24
- "bugs": {
25
- "url": "https://git.tricoteuses.fr/logiciels/tricoteuses-assemblee/issues"
26
- },
27
- "homepage": "https://tricoteuses.fr/",
28
- "license": "AGPL-3.0-or-later",
29
- "repository": {
30
- "type": "git",
31
- "url": "https://git.tricoteuses.fr/logiciels/tricoteuses-assemblee.git"
32
- },
33
- "type": "module",
34
- "engines": {
35
- "node": ">=20.0.0"
36
- },
37
- "files": [
38
- "lib"
39
- ],
40
- "exports": {
41
- ".": {
42
- "typedoc": "./src/index.ts",
43
- "import": "./lib/index.js",
44
- "types": "./lib/index.d.ts"
45
- },
46
- "./cleaners": {
47
- "typedoc": "./src/cleaners/index.ts",
48
- "import": "./lib/cleaners.js",
49
- "types": "./lib/cleaners/index.d.ts"
50
- },
51
- "./git": {
52
- "typedoc": "./src/git.ts",
53
- "import": "./lib/git.js",
54
- "types": "./lib/git.d.ts"
55
- },
56
- "./loaders": {
57
- "typedoc": "./src/loaders.ts",
58
- "import": "./lib/loaders.js",
59
- "types": "./lib/loaders.d.ts"
60
- },
61
- "./parsers": {
62
- "typedoc": "./src/parsers/index.ts",
63
- "import": "./lib/parsers.js",
64
- "types": "./lib/parsers/index.d.ts"
65
- },
66
- "./package.json": "./package.json"
67
- },
68
- "publishConfig": {
69
- "access": "public"
70
- },
71
- "scripts": {
72
- "build": "vite build && npm run prettier",
73
- "clean": "rimraf lib",
74
- "data:clean_data": "tsx src/scripts/clean_reorganized_data.ts --no-validate",
75
- "data:download": "tsx src/scripts/data-download.ts",
76
- "data:reorganize_data": "tsx src/scripts/reorganize_data.ts --no-validate-raw",
77
- "data:retrieve_deputes_photos": "tsx src/scripts/retrieve_deputes_photos.ts --fetch",
78
- "data:retrieve_documents": "tsx src/scripts/retrieve_documents.ts",
79
- "data:retrieve_open_data": "tsx src/scripts/retrieve_open_data.ts --fetch",
80
- "data:retrieve_pending_amendements": "tsx src/scripts/retrieve_pending_amendments.ts --incremental",
81
- "data:retrieve_senateurs_photos": "tsx src/scripts/retrieve_senateurs_photos.ts --fetch",
82
- "lint": "eslint .",
83
- "prepare": "npm run build",
84
- "prettier": "prettier --write \"src/**/*.ts\"",
85
- "test": "vitest run",
86
- "test:iter_load": "tsx src/scripts/test_iter_load.ts",
87
- "type-check": "tsc --noEmit",
88
- "type-check:watch": "npm run type-check -- --watch"
89
- },
90
- "dependencies": {
91
- "cheerio": "^1.2.0",
92
- "date-fns": "^4.4.0",
93
- "deep-equal": "^2.2.3",
94
- "deep-object-diff": "^1.1.9",
95
- "fast-xml-parser": "^5.9.3",
96
- "fs-extra": "^11.3.5",
97
- "glob": "^13.0.6",
98
- "js-yaml": "^5.2.0",
99
- "node-html-parser": "^8.0.3",
100
- "node-stream-zip": "^1.15.0",
101
- "p-limit": "^7.3.0",
102
- "sharp": "^0.35.2",
103
- "zod": "^4.4.3",
104
- "zod-opts": "^1.0.0"
105
- },
106
- "devDependencies": {
107
- "@eslint/js": "^10.0.1",
108
- "@types/deep-equal": "^1.0.4",
109
- "@types/fs-extra": "^11.0.4",
110
- "@types/js-yaml": "^4.0.9",
111
- "@types/node": "^26.0.1",
112
- "@types/temp": "^0.9.4",
113
- "@types/unzipper": "^0.10.11",
114
- "ajv": "^8.20.0",
115
- "eslint": "^10.6.0",
116
- "globals": "^17.7.0",
117
- "prettier": "^3.9.1",
118
- "rimraf": "^6.1.3",
119
- "temp": "^0.9.4",
120
- "ts-json-schema-generator": "^2.9.0",
121
- "tslib": "^2.8.1",
122
- "tsx": "^4.22.4",
123
- "typedoc": "^0.28.19",
124
- "typedoc-plugin-markdown": "^4.12.0",
125
- "typescript": "^6.0.3",
126
- "typescript-eslint": "^8.62.0",
127
- "vite": "^8.1.0",
128
- "vite-plugin-dts": "^5.0.3",
129
- "vitest": "^4.1.9"
130
- },
131
- "overrides": {
132
- "@microsoft/api-extractor": "7.55.0"
133
- }
134
- }
1
+ {
2
+ "name": "@tricoteuses/assemblee",
3
+ "version": "3.2.13",
4
+ "description": "Retrieve, clean up & handle French Assemblée nationale's open data",
5
+ "keywords": [
6
+ "Assemblée nationale",
7
+ "France",
8
+ "open data",
9
+ "Parliament"
10
+ ],
11
+ "author": "Emmanuel Raviart <emmanuel@raviart.com>",
12
+ "contributors": [
13
+ "Henry Boisgibault <henry.boisgibault@proton.me>",
14
+ "Jérémie Corpinot <jerem.freelance@codingbox.fr>",
15
+ "Mathilde Couvreur <mathilde.couvreur@gmail.com>",
16
+ "Loïc Dachary <loic@dachary.org>",
17
+ "Pierre Drege <dregop@proton.me>",
18
+ "Nelson Herbin <nelson@herbin.info>",
19
+ "implicitdef",
20
+ "Hélène Jonin <helene.jonin@gmail.com>",
21
+ "Pauline Léon <paulineleon@tutanota.com>",
22
+ "Paul-Henry Ngounou <ngpaulhenry@gmail.com>"
23
+ ],
24
+ "bugs": {
25
+ "url": "https://git.tricoteuses.fr/logiciels/tricoteuses-assemblee/issues"
26
+ },
27
+ "homepage": "https://tricoteuses.fr/",
28
+ "license": "AGPL-3.0-or-later",
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "https://git.tricoteuses.fr/logiciels/tricoteuses-assemblee.git"
32
+ },
33
+ "type": "module",
34
+ "engines": {
35
+ "node": ">=20.0.0"
36
+ },
37
+ "files": [
38
+ "lib"
39
+ ],
40
+ "exports": {
41
+ ".": {
42
+ "typedoc": "./src/index.ts",
43
+ "import": "./lib/index.js",
44
+ "types": "./lib/index.d.ts"
45
+ },
46
+ "./cleaners": {
47
+ "typedoc": "./src/cleaners/index.ts",
48
+ "import": "./lib/cleaners.js",
49
+ "types": "./lib/cleaners/index.d.ts"
50
+ },
51
+ "./git": {
52
+ "typedoc": "./src/git.ts",
53
+ "import": "./lib/git.js",
54
+ "types": "./lib/git.d.ts"
55
+ },
56
+ "./loaders": {
57
+ "typedoc": "./src/loaders.ts",
58
+ "import": "./lib/loaders.js",
59
+ "types": "./lib/loaders.d.ts"
60
+ },
61
+ "./parsers": {
62
+ "typedoc": "./src/parsers/index.ts",
63
+ "import": "./lib/parsers.js",
64
+ "types": "./lib/parsers/index.d.ts"
65
+ },
66
+ "./package.json": "./package.json"
67
+ },
68
+ "publishConfig": {
69
+ "access": "public"
70
+ },
71
+ "scripts": {
72
+ "build": "vite build && npm run prettier",
73
+ "clean": "rimraf lib",
74
+ "data:clean_data": "tsx src/scripts/clean_reorganized_data.ts --no-validate",
75
+ "data:download": "tsx src/scripts/data-download.ts",
76
+ "data:reorganize_data": "tsx src/scripts/reorganize_data.ts --no-validate-raw",
77
+ "data:retrieve_deputes_photos": "tsx src/scripts/retrieve_deputes_photos.ts --fetch",
78
+ "data:retrieve_documents": "tsx src/scripts/retrieve_documents.ts",
79
+ "data:retrieve_open_data": "tsx src/scripts/retrieve_open_data.ts --fetch",
80
+ "data:retrieve_pending_amendements": "tsx src/scripts/retrieve_pending_amendments.ts --incremental",
81
+ "data:retrieve_senateurs_photos": "tsx src/scripts/retrieve_senateurs_photos.ts --fetch",
82
+ "lint": "eslint .",
83
+ "prepare": "npm run build",
84
+ "prettier": "prettier --write \"src/**/*.ts\"",
85
+ "test": "vitest run",
86
+ "test:iter_load": "tsx src/scripts/test_iter_load.ts",
87
+ "type-check": "tsc --noEmit",
88
+ "type-check:watch": "npm run type-check -- --watch"
89
+ },
90
+ "dependencies": {
91
+ "cheerio": "^1.2.0",
92
+ "date-fns": "^4.4.0",
93
+ "deep-equal": "^2.2.3",
94
+ "deep-object-diff": "^1.1.9",
95
+ "fast-xml-parser": "^5.9.3",
96
+ "fs-extra": "^11.3.5",
97
+ "glob": "^13.0.6",
98
+ "js-yaml": "^5.2.0",
99
+ "node-html-parser": "^8.0.3",
100
+ "node-stream-zip": "^1.15.0",
101
+ "p-limit": "^7.3.0",
102
+ "sharp": "^0.35.2",
103
+ "zod": "^4.4.3",
104
+ "zod-opts": "^1.0.0"
105
+ },
106
+ "devDependencies": {
107
+ "@eslint/js": "^10.0.1",
108
+ "@types/deep-equal": "^1.0.4",
109
+ "@types/fs-extra": "^11.0.4",
110
+ "@types/js-yaml": "^4.0.9",
111
+ "@types/node": "^26.0.1",
112
+ "@types/temp": "^0.9.4",
113
+ "@types/unzipper": "^0.10.11",
114
+ "ajv": "^8.20.0",
115
+ "eslint": "^10.6.0",
116
+ "globals": "^17.7.0",
117
+ "prettier": "^3.9.1",
118
+ "rimraf": "^6.1.3",
119
+ "temp": "^0.9.4",
120
+ "ts-json-schema-generator": "^2.9.0",
121
+ "tslib": "^2.8.1",
122
+ "tsx": "^4.22.4",
123
+ "typedoc": "^0.28.19",
124
+ "typedoc-plugin-markdown": "^4.12.0",
125
+ "typescript": "^6.0.3",
126
+ "typescript-eslint": "^8.62.0",
127
+ "vite": "^8.1.0",
128
+ "vite-plugin-dts": "^5.0.3",
129
+ "vitest": "^4.1.9"
130
+ },
131
+ "overrides": {
132
+ "@microsoft/api-extractor": "7.55.0"
133
+ }
134
+ }