@tricoteuses/tisseuse 0.8.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/LICENSE.md +6 -2
  2. package/README.md +2 -2
  3. package/dist/html-DfrdIKTl.js +12741 -0
  4. package/dist/index.js +1262 -5183
  5. package/dist/lib/alineas/alineas_numbers.d.ts +5 -0
  6. package/dist/lib/articles.d.ts +1 -1
  7. package/dist/lib/extractors/action_directives.d.ts +54 -0
  8. package/dist/lib/extractors/article_portions.d.ts +59 -0
  9. package/dist/lib/extractors/definitions.d.ts +3 -0
  10. package/dist/lib/{text_parsers → extractors}/links.d.ts +35 -22
  11. package/dist/lib/extractors/references.d.ts +8 -0
  12. package/dist/lib/{table_of_contents.d.ts → extractors/table_of_contents.d.ts} +10 -2
  13. package/dist/lib/index.d.ts +18 -6
  14. package/dist/lib/linkers/html.d.ts +43 -0
  15. package/dist/lib/linkers/markdown.d.ts +14 -0
  16. package/dist/lib/loaders/assemblee.d.ts +3 -3
  17. package/dist/lib/loaders/legifrance.d.ts +10 -10
  18. package/dist/lib/markdown.d.ts +1 -0
  19. package/dist/lib/server/alineas/alineas_images_utils.d.ts +88 -0
  20. package/dist/lib/server/config.d.ts +1 -4
  21. package/dist/lib/server/databases/index.d.ts +3 -17
  22. package/dist/lib/server/html_simplifier.d.ts +34 -0
  23. package/dist/lib/server/index.d.ts +3 -0
  24. package/dist/lib/server/linkers/html.d.ts +20 -0
  25. package/dist/lib/server/tables_of_contents.d.ts +2 -0
  26. package/dist/lib/text_parsers/actions.d.ts +11 -1
  27. package/dist/lib/text_parsers/articles.d.ts +15 -15
  28. package/dist/lib/text_parsers/ast.d.ts +8 -3
  29. package/dist/lib/text_parsers/citations.d.ts +4 -4
  30. package/dist/lib/text_parsers/dates.d.ts +10 -10
  31. package/dist/lib/text_parsers/divisions.d.ts +13 -13
  32. package/dist/lib/text_parsers/helpers.d.ts +2 -1
  33. package/dist/lib/text_parsers/numbers.d.ts +16 -15
  34. package/dist/lib/text_parsers/parsers.d.ts +17 -1
  35. package/dist/lib/text_parsers/portions.d.ts +25 -19
  36. package/dist/lib/text_parsers/prepositions.d.ts +7 -6
  37. package/dist/lib/text_parsers/references.d.ts +17 -15
  38. package/dist/lib/text_parsers/relative_locations.d.ts +9 -9
  39. package/dist/lib/text_parsers/search_queries.d.ts +7 -0
  40. package/dist/lib/text_parsers/search_queries.test.d.ts +1 -0
  41. package/dist/lib/text_parsers/separators.d.ts +3 -3
  42. package/dist/lib/text_parsers/texts.d.ts +14 -14
  43. package/dist/lib/text_parsers/typography.d.ts +9 -9
  44. package/dist/scripts/add_links_to_senat_parsed_documents.d.ts +1 -0
  45. package/dist/scripts/{link_table_of_contents_to_simplified_html.d.ts → add_positions_to_table_of_contents.d.ts} +1 -13
  46. package/dist/scripts/associate_jorf_textes_with_assemblee_commissions.d.ts +1 -0
  47. package/dist/scripts/associate_jorf_textes_with_dossiers_legislatifs_assemblee.d.ts +1 -0
  48. package/dist/scripts/enrich_assemblee_documents.d.ts +1 -0
  49. package/dist/scripts/extract_alineas_images.d.ts +71 -0
  50. package/dist/scripts/generate_alineas_numbers_review.d.ts +24 -0
  51. package/dist/scripts/{extract_texts_infos.d.ts → index_typesense.d.ts} +1 -0
  52. package/dist/scripts/merge_reviewed_alineas_numbers.d.ts +16 -0
  53. package/dist/scripts/simplify_word_html.d.ts +1 -0
  54. package/dist/server.js +19497 -74
  55. package/package.json +29 -17
  56. package/dist/lib/server/databases/tisseuse.d.ts +0 -1
  57. package/dist/lib/text_parsers/index.d.ts +0 -8
  58. package/dist/lib/text_parsers/text_titles_infos.json.d.ts +0 -4
  59. package/dist/scripts/extract_assemblee_dossiers_et_documents_infos.d.ts +0 -6
  60. package/dist/scripts/test.d.ts +0 -0
  61. /package/dist/lib/{text_parsers/index.test.d.ts → extractors/action_directives.test.d.ts} +0 -0
  62. /package/dist/lib/{text_parsers/links.test.d.ts → extractors/article_portions.test.d.ts} +0 -0
  63. /package/dist/{scripts/add_links_to_assemblee_documents.d.ts → lib/extractors/links.test.d.ts} +0 -0
  64. /package/dist/{scripts/etude_natures_dates_et_titres_textes.d.ts → lib/extractors/references.test.d.ts} +0 -0
  65. /package/dist/{scripts/extract_jos_infos.d.ts → lib/server/html_simplifier.test.d.ts} +0 -0
@@ -1,18 +1,6 @@
1
1
  /**
2
2
  * TODO;
3
- * Ce script devrait travailler sur Documents_enrichi, mais ce n'est pas le seul.
4
- * Car il y a un script qui met les liens, etc.
5
- * Documents_enrichi doit contenir tout ce que contient Documents (sauf éventuellement des formats inutiles).
6
- * Il faut donc un script de syncronisation entre Documents et Documents_enrichi, qui (re)lance plusieurs scripts
7
- * quand quelque chose a changé entre les fichiers d'un Documents et ceux d'un Documents_enrichi.
8
- * Problème : le script de synchronisation devrait faire partie de @tricoteuses/assemblee.
9
- * Mais les scripts qui mettent les liens et ce script qui détecte la structure doit faire partie de @tricoteuses/tisseuse.
10
- * Quand le script de synchronisation détecte qu'une document (quelque soit son format a changé ou a été ajouté ou…) il devrait
11
- * lancer tisseuse.
12
- * Pas de problème car c'est tricoteuses-assemblee-update qui gère tout cela et tricoteuses-assemblee-update peut aussi bien
13
- * lancer des scripts assemblee que des scripts tisseuse.
14
- *
15
- * Ce script parse_bill_structure travaille sur un seul document (dans Documents_enrichi) dont le chemin lui est fourni.
3
+ * Ce script parse_bill_structure travaille sur un seul document (dans Documents_enrichis) dont le chemin lui est fourni.
16
4
  * Il suppose que le script simplify_assemblee_document, qui simplifie le document (et qui créé les fichiers intermédiaires
17
5
  * dans le répertoire) est déjà passé.
18
6
  *
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,71 @@
1
+ #!/usr/bin/env npx ts-node
2
+ /**
3
+ * Script d'extraction des images d'alinéa depuis les documents de l'Assemblée nationale
4
+ *
5
+ * Ce script parcourt tous les fichiers HTML des documents et extrait toutes les
6
+ * informations sur les pastilles d'alinéa dans un fichier JSON intermédiaire.
7
+ *
8
+ * Ce fichier JSON est ensuite utilisé par :
9
+ * - `merge_reviewed_alineas_numbers.ts` : pour fusionner les corrections manuelles
10
+ * - `generate_alineas_numbers_review.ts` : pour générer la page HTML de révision
11
+ *
12
+ * ## Usage
13
+ *
14
+ * ```bash
15
+ * npx tsx src/scripts/extract_alineas_images.ts [chemin_vers_documents] [--output fichier.json]
16
+ * ```
17
+ *
18
+ * Par défaut :
19
+ * - Analyse `/home/eraviart/Projects/tricoteuses/assemblee-data/Documents`
20
+ * - Génère `src/lib/alineas/alineas_images_extracted.json`
21
+ *
22
+ * ## Données extraites
23
+ *
24
+ * Pour chaque image unique (par hash) :
25
+ * - hash MD5, données base64, dimensions
26
+ * - Liste de toutes les occurrences avec contexte (document, article, position, voisins)
27
+ *
28
+ * Statistiques pré-calculées :
29
+ * - Nombre d'occurrences, positions en tête d'article
30
+ * - Transitions (prédécesseurs/successeurs)
31
+ *
32
+ * @module extract_alineas_images
33
+ */
34
+ /**
35
+ * Une occurrence d'une image dans un document
36
+ */
37
+ export interface ImageOccurrence {
38
+ documentPath: string;
39
+ articleId: string | null;
40
+ }
41
+ /**
42
+ * Données complètes d'une image unique (par hash)
43
+ */
44
+ export interface ImageData {
45
+ hash: string;
46
+ base64Src: string;
47
+ dimensions: {
48
+ width: number;
49
+ height: number;
50
+ } | null;
51
+ /** Hash de l'image après crop (suppression des bordures blanches/transparentes) */
52
+ croppedHash: string;
53
+ /** Données base64 de l'image croppée (avec préfixe data:image/png;base64,) */
54
+ croppedBase64Src: string;
55
+ occurrences: ImageOccurrence[];
56
+ }
57
+ /**
58
+ * Structure complète du fichier JSON extrait
59
+ */
60
+ export interface ExtractedData {
61
+ metadata: {
62
+ extractionDate: string;
63
+ documentsPath: string;
64
+ documentsAnalyzed: number;
65
+ documentsWithImages: number;
66
+ articlesAnalyzed: number;
67
+ totalOccurrences: number;
68
+ uniqueHashes: number;
69
+ };
70
+ images: Record<string, ImageData>;
71
+ }
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env npx ts-node
2
+ /**
3
+ * Script de génération d'un fichier HTML de révision des images d'alinéa
4
+ *
5
+ * Ce script lit le fichier JSON généré par `extract_alinea_images.ts` et génère
6
+ * un fichier HTML interactif permettant de visualiser chaque image d'alinéa,
7
+ * son hash MD5, et le numéro d'alinéa détecté pour permettre une correction manuelle.
8
+ *
9
+ * - `extract_alineas_images.ts` : pour extraire les images
10
+ * - `merge_reviewed_alineas_numbers.ts` : pour fusionner les corrections
11
+ *
12
+ * ## Usage
13
+ *
14
+ * ```bash
15
+ * npx tsx src/scripts/generate_alineas_numbers_review.ts [fichier_extrait.json] [--output fichier.html]
16
+ * ```
17
+ *
18
+ * Par défaut :
19
+ * - Lit `src/lib/alineas/alineas_images_extracted.json`
20
+ * - Génère `src/lib/alineas/alinea_review.html`
21
+ *
22
+ * @module generate_alineas_numbers_review
23
+ */
24
+ export {};
@@ -2,4 +2,5 @@ export interface Cartouche {
2
2
  badge?: string;
3
3
  date?: string;
4
4
  titre: string;
5
+ type: string;
5
6
  }
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env npx ts-node
2
+ /**
3
+ * Script de fusion des corrections manuelles des images d'alinéa
4
+ *
5
+ * Ce script fusionne les corrections manuelles (`alineas_numbers_reviewed.json`)
6
+ * avec le mapping existant (`alineas_numbers.ts`).
7
+ *
8
+ * ## Usage
9
+ *
10
+ * ```bash
11
+ * npx tsx src/scripts/merge_reviewed_alineas_numbers.ts
12
+ * ```
13
+ *
14
+ * @module merge_reviewed_alineas_numbers
15
+ */
16
+ export {};
@@ -0,0 +1 @@
1
+ export {};