@tricoteuses/tisseuse 0.21.1 → 0.22.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 (308) hide show
  1. package/README.md +4 -0
  2. package/dist/{html-tp0cMUmA.js → html-BTaoaqX5.js} +6964 -5672
  3. package/dist/index.js +93 -431
  4. package/dist/{src/lib → lib}/extractors/article_portions.d.ts +14 -0
  5. package/dist/{src/lib → lib}/extractors/links.d.ts +117 -3
  6. package/dist/{src/lib → lib}/f_legi/resolver.d.ts +23 -4
  7. package/dist/lib/legi/article_abrogation.d.ts +25 -0
  8. package/dist/lib/legi/article_history.d.ts +11 -0
  9. package/dist/lib/legi/article_structure.d.ts +9 -0
  10. package/dist/{src/lib → lib}/legi/canutes_resolver.d.ts +17 -16
  11. package/dist/lib/legi/law_article.d.ts +13 -0
  12. package/dist/lib/legi/named_text_article.d.ts +22 -0
  13. package/dist/lib/legi/publication_components.d.ts +22 -0
  14. package/dist/lib/legi/publication_components.fixture.d.ts +3 -0
  15. package/dist/{src/lib → lib}/legi/resolver.d.ts +40 -0
  16. package/dist/lib/linkers/enumeration_scope.fixture.d.ts +19 -0
  17. package/dist/{src/lib → lib}/linkers/html.d.ts +16 -3
  18. package/dist/lib/linkers/html_decision_capture.d.ts +18 -0
  19. package/dist/lib/linkers/link_decision_html.d.ts +4 -0
  20. package/dist/lib/linkers/link_decision_metadata.d.ts +15 -0
  21. package/dist/{src/lib → lib}/linkers/markdown.d.ts +7 -1
  22. package/dist/lib/linkers/named_text_article.d.ts +1 -0
  23. package/dist/lib/linkers/quoted_section.fixture.d.ts +1 -0
  24. package/dist/lib/linkers/table_column_texts.d.ts +4 -0
  25. package/dist/{src/lib → lib}/server/index.d.ts +2 -0
  26. package/dist/lib/server/jurisprudence_citations.d.ts +46 -0
  27. package/dist/lib/server/jurisprudence_consultation.d.ts +55 -0
  28. package/dist/lib/server/jurisprudence_jade.d.ts +57 -0
  29. package/dist/lib/server/jurisprudence_store.d.ts +36 -0
  30. package/dist/{src/lib → lib}/server/parsed_bills.d.ts +19 -0
  31. package/dist/{src/lib → lib}/text_parsers/ast.d.ts +13 -3
  32. package/dist/lib/text_parsers/historical_versions.d.ts +18 -0
  33. package/dist/{src/lib → lib}/text_parsers/parsers.d.ts +5 -0
  34. package/dist/{src/lib → lib}/text_parsers/repeated_actions.d.ts +1 -0
  35. package/dist/{src/lib → lib}/text_parsers/texts.d.ts +12 -0
  36. package/dist/link-decision-metadata.js +32 -0
  37. package/dist/{resolver-CzmDH4S3.js → resolver-GT7457lQ.js} +345 -145
  38. package/dist/scripts/compare_legi_bills.d.ts +1 -0
  39. package/dist/scripts/configure_postgres_assemblee_document_triggers.d.ts +1 -0
  40. package/dist/scripts/configure_postgres_legi_resolver.d.ts +1 -0
  41. package/dist/scripts/configure_postgres_root_cid_index.d.ts +1 -0
  42. package/dist/scripts/configure_postgres_senat_document_triggers.d.ts +1 -0
  43. package/dist/scripts/enrich_assemblee_documents.d.ts +1 -0
  44. package/dist/scripts/enrich_senat_documents.d.ts +1 -0
  45. package/dist/scripts/html_document_to_text.d.ts +1 -0
  46. package/dist/scripts/index_postgres_assemblee_amendments.d.ts +1 -0
  47. package/dist/scripts/index_postgres_assemblee_texts.d.ts +1 -0
  48. package/dist/scripts/index_postgres_judilibre.d.ts +1 -0
  49. package/dist/scripts/index_postgres_legifrance_articles.d.ts +1 -0
  50. package/dist/scripts/index_postgres_legifrance_jurisprudence.d.ts +1 -0
  51. package/dist/scripts/index_postgres_senat_amendments.d.ts +1 -0
  52. package/dist/scripts/index_postgres_senat_texts.d.ts +1 -0
  53. package/dist/scripts/parse_akoma_ntoso_bill_raw.d.ts +1 -0
  54. package/dist/scripts/parse_assemblee_bill_raw.d.ts +1 -0
  55. package/dist/scripts/profile_assemblee_document_parsing.d.ts +1 -0
  56. package/dist/scripts/profile_canutes_bill.d.ts +1 -0
  57. package/dist/scripts/replay_linker_scope.d.ts +1 -0
  58. package/dist/scripts/shared/assemblee_legislature.test.d.ts +1 -0
  59. package/dist/scripts/shared/checkpoint_cli_options.test.d.ts +1 -0
  60. package/dist/scripts/simplified_html_bill_to_table_of_contents.d.ts +1 -0
  61. package/dist/scripts/simplify_word_html.d.ts +1 -0
  62. package/dist/scripts/sync_postgres_assemblee_document_content.d.ts +1 -0
  63. package/dist/scripts/sync_postgres_senat_document_content.d.ts +1 -0
  64. package/dist/scripts/test_canutes_titles_cache.d.ts +1 -0
  65. package/dist/scripts/warm_canutes_text_titles_cache.d.ts +1 -0
  66. package/dist/server-f-legi.js +200 -94
  67. package/dist/server.js +1309 -884
  68. package/package.json +10 -4
  69. package/dist/{src/lib → lib}/alineas/alineas_numbers.d.ts +0 -0
  70. package/dist/{src/lib → lib}/article_temporal_status.test.d.ts +0 -0
  71. package/dist/{src/lib → lib}/articles.d.ts +0 -0
  72. package/dist/{src/lib → lib}/articles.test.d.ts +0 -0
  73. package/dist/{src/lib → lib}/assemblee_document_date.d.ts +0 -0
  74. package/dist/{src/lib → lib}/assemblee_document_date.test.d.ts +0 -0
  75. package/dist/{src/lib → lib}/asserts.d.ts +0 -0
  76. package/dist/{src/lib → lib}/cache.d.ts +0 -0
  77. package/dist/{src/lib → lib}/dates.d.ts +0 -0
  78. package/dist/{src/lib → lib}/extractors/action_directives.d.ts +0 -0
  79. package/dist/{src/lib → lib}/extractors/action_directives.test.d.ts +0 -0
  80. package/dist/{src/lib → lib}/extractors/action_directives_cpu.test.d.ts +0 -0
  81. package/dist/{src/lib → lib}/extractors/article_action_effects.d.ts +0 -0
  82. package/dist/{src/lib → lib}/extractors/article_action_effects.test.d.ts +0 -0
  83. package/dist/{src/lib → lib}/extractors/article_action_effects_long.test.d.ts +0 -0
  84. package/dist/{src/lib → lib}/extractors/article_action_targets.d.ts +0 -0
  85. package/dist/{src/lib → lib}/extractors/article_action_targets.test.d.ts +0 -0
  86. package/dist/{src/lib → lib}/extractors/article_portions.test.d.ts +0 -0
  87. package/dist/{src/lib → lib}/extractors/definitions.d.ts +0 -0
  88. package/dist/{src/lib/extractors/links.citation_scope.test.d.ts → lib/extractors/link_decisions.test.d.ts} +0 -0
  89. package/dist/{src/lib/extractors/links.code_titles.test.d.ts → lib/extractors/links.citation_scope.test.d.ts} +0 -0
  90. package/dist/{src/lib/extractors/links.doctrinal.test.d.ts → lib/extractors/links.code_titles.test.d.ts} +0 -0
  91. package/dist/{src/lib/extractors/links.european.test.d.ts → lib/extractors/links.doctrinal.test.d.ts} +0 -0
  92. package/dist/{src/lib/extractors/links.test.d.ts → lib/extractors/links.european.test.d.ts} +0 -0
  93. package/dist/{src/lib/extractors/portion_references.test.d.ts → lib/extractors/links.test.d.ts} +0 -0
  94. package/dist/{src/lib → lib}/extractors/portion_references.d.ts +0 -0
  95. package/dist/{src/lib/extractors/portion_references_cpu.test.d.ts → lib/extractors/portion_references.test.d.ts} +0 -0
  96. package/dist/{src/lib/extractors/qualified_versions.test.d.ts → lib/extractors/portion_references_cpu.test.d.ts} +0 -0
  97. package/dist/{src/lib → lib}/extractors/qualified_versions.d.ts +0 -0
  98. package/dist/{src/lib/extractors/references.test.d.ts → lib/extractors/qualified_versions.test.d.ts} +0 -0
  99. package/dist/{src/lib → lib}/extractors/quoted_text.d.ts +0 -0
  100. package/dist/{src/lib → lib}/extractors/references.d.ts +0 -0
  101. package/dist/{src/lib/text_parsers → lib/extractors}/references.test.d.ts +0 -0
  102. package/dist/{src/lib → lib}/extractors/table_of_contents.d.ts +0 -0
  103. package/dist/{src/lib → lib}/extractors/table_of_contents.test.d.ts +0 -0
  104. package/dist/{src/lib → lib}/f_legi/resolver.test.d.ts +0 -0
  105. package/dist/{src/lib → lib}/index.d.ts +0 -0
  106. package/dist/{src/lib → lib}/json.d.ts +0 -0
  107. package/dist/{src/lib/legi/canutes_article_preload.test.d.ts → lib/legi/article_abrogation.test.d.ts} +0 -0
  108. package/dist/{src/lib/legi/canutes_candidates.test.d.ts → lib/legi/article_history.test.d.ts} +0 -0
  109. package/dist/{src/lib/legi/canutes_resolver.test.d.ts → lib/legi/canutes_article_preload.test.d.ts} +0 -0
  110. package/dist/{src/lib/legi/canutes_resolver_cache.test.d.ts → lib/legi/canutes_candidates.test.d.ts} +0 -0
  111. package/dist/{src/lib/legi/canutes_resolver_europe.test.d.ts → lib/legi/canutes_resolver.test.d.ts} +0 -0
  112. package/dist/{src/lib/legi/canutes_root_cid_index.integration.test.d.ts → lib/legi/canutes_resolver_cache.test.d.ts} +0 -0
  113. package/dist/{src/lib/legi/canutes_section_roots.test.d.ts → lib/legi/canutes_resolver_europe.test.d.ts} +0 -0
  114. package/dist/{src/lib/legi/canutes_text_titles_cache.integration.test.d.ts → lib/legi/canutes_root_cid_index.integration.test.d.ts} +0 -0
  115. package/dist/{src/lib/legi/resolver.test.d.ts → lib/legi/canutes_section_roots.test.d.ts} +0 -0
  116. package/dist/{src/lib → lib}/legi/canutes_sql.d.ts +0 -0
  117. package/dist/{src/lib → lib}/legi/canutes_text_titles_cache.d.ts +0 -0
  118. package/dist/{src/lib/linkers/cited-article.test.d.ts → lib/legi/canutes_text_titles_cache.integration.test.d.ts} +0 -0
  119. package/dist/{src/lib → lib}/legi/canutes_titles_metrics.d.ts +0 -0
  120. package/dist/{src/lib/linkers/reference-mode.test.d.ts → lib/legi/modifying_act_article_real.test.d.ts} +0 -0
  121. package/dist/{src/lib/server/administrative_acts_autocompletion.test.d.ts → lib/legi/publication_components.test.d.ts} +0 -0
  122. package/dist/{src/lib/server/akn_rendering.test.d.ts → lib/legi/resolver.test.d.ts} +0 -0
  123. package/dist/{src/lib → lib}/legi/text_titles_infos.d.ts +0 -0
  124. package/dist/{src/lib/server/ameli_autocompletion.test.d.ts → lib/linkers/ambiguous_publication.test.d.ts} +0 -0
  125. package/dist/{src/lib/server/assemblee_amendment_search.test.d.ts → lib/linkers/cited-article.test.d.ts} +0 -0
  126. package/dist/{src/lib/server/assemblee_document_search.test.d.ts → lib/linkers/enumeration_scope.test.d.ts} +0 -0
  127. package/dist/{src/lib/server/atomic_files.test.d.ts → lib/linkers/html_decision_capture.test.d.ts} +0 -0
  128. package/dist/{src/lib/server/bill_action_resolver_invariance.test.d.ts → lib/linkers/html_named_text_article.test.d.ts} +0 -0
  129. package/dist/{src/lib/server/bill_citation_anaphora.test.d.ts → lib/linkers/html_publication_93_859_real.test.d.ts} +0 -0
  130. package/dist/{src/lib/server/bill_comparison.test.d.ts → lib/linkers/html_structure_real.test.d.ts} +0 -0
  131. package/dist/{src/lib/server/bill_target_scope.test.d.ts → lib/linkers/html_undecidable_real.test.d.ts} +0 -0
  132. package/dist/{src/lib/server/bofip_autocompletion.test.d.ts → lib/linkers/link_decision_html.test.d.ts} +0 -0
  133. package/dist/{src/lib/server/boss_autocompletion.test.d.ts → lib/linkers/named_text_article.test.d.ts} +0 -0
  134. package/dist/{src/lib/server/canutes_only_compatibility.test.d.ts → lib/linkers/quoted_section_scope.test.d.ts} +0 -0
  135. package/dist/{src/lib/server/document_git_checkpoint.test.d.ts → lib/linkers/reference-mode.test.d.ts} +0 -0
  136. package/dist/{src/lib → lib}/links.d.ts +6 -6
  137. /package/dist/{src/lib/server/enriched_document_checkpoint.test.d.ts → lib/links.test.d.ts} +0 -0
  138. /package/dist/{src/lib → lib}/loaders/assemblee.d.ts +0 -0
  139. /package/dist/{src/lib → lib}/loaders/legifrance.d.ts +0 -0
  140. /package/dist/{src/lib → lib}/markdown.d.ts +0 -0
  141. /package/dist/{src/lib → lib}/server/administrative_acts_autocompletion.d.ts +0 -0
  142. /package/dist/{src/lib/server/europe_autocompletion.test.d.ts → lib/server/administrative_acts_autocompletion.test.d.ts} +0 -0
  143. /package/dist/{src/lib/server/flegi_profiling.test.d.ts → lib/server/akn_rendering.test.d.ts} +0 -0
  144. /package/dist/{src/lib → lib}/server/alineas/alineas_images_utils.d.ts +0 -0
  145. /package/dist/{src/lib → lib}/server/ameli_autocompletion.d.ts +0 -0
  146. /package/dist/{src/lib/server/html_simplifier.test.d.ts → lib/server/ameli_autocompletion.test.d.ts} +0 -0
  147. /package/dist/{src/lib → lib}/server/assemblee_amendment_search.d.ts +0 -0
  148. /package/dist/{src/lib/server/international_treaties_autocompletion.test.d.ts → lib/server/assemblee_amendment_search.test.d.ts} +0 -0
  149. /package/dist/{src/lib → lib}/server/assemblee_document_search.d.ts +0 -0
  150. /package/dist/{src/lib/server/judilibre_search.test.d.ts → lib/server/assemblee_document_search.test.d.ts} +0 -0
  151. /package/dist/{src/lib → lib}/server/atomic_files.d.ts +0 -0
  152. /package/dist/{src/lib/server/legifrance_article_search.test.d.ts → lib/server/atomic_files.test.d.ts} +0 -0
  153. /package/dist/{src/lib → lib}/server/auditors/config.d.ts +0 -0
  154. /package/dist/{src/lib/server/legifrance_jurisprudence_search.test.d.ts → lib/server/bill_action_resolver_invariance.test.d.ts} +0 -0
  155. /package/dist/{src/lib → lib}/server/bill_action_target_fixtures.d.ts +0 -0
  156. /package/dist/{src/lib/server/local_acts_autocompletion.test.d.ts → lib/server/bill_citation_anaphora.test.d.ts} +0 -0
  157. /package/dist/{src/lib → lib}/server/bill_comparison.d.ts +0 -0
  158. /package/dist/{src/lib/server/masquage-typesense.test.d.ts → lib/server/bill_comparison.test.d.ts} +0 -0
  159. /package/dist/{src/lib/server/parsed_amendments.test.d.ts → lib/server/bill_target_scope.test.d.ts} +0 -0
  160. /package/dist/{src/lib → lib}/server/bofip_autocompletion.d.ts +0 -0
  161. /package/dist/{src/lib/server/parsed_bills.test.d.ts → lib/server/bofip_autocompletion.test.d.ts} +0 -0
  162. /package/dist/{src/lib → lib}/server/boss_autocompletion.d.ts +0 -0
  163. /package/dist/{src/lib/server/raa_autocompletion.test.d.ts → lib/server/boss_autocompletion.test.d.ts} +0 -0
  164. /package/dist/{src/lib → lib}/server/canutes_legacy_candidates.d.ts +0 -0
  165. /package/dist/{src/lib/server/senat_amendment_search.test.d.ts → lib/server/canutes_only_compatibility.test.d.ts} +0 -0
  166. /package/dist/{src/lib → lib}/server/config.d.ts +0 -0
  167. /package/dist/{src/lib → lib}/server/databases/canutes_root_cid_index.d.ts +0 -0
  168. /package/dist/{src/lib → lib}/server/databases/canutes_text_titles_cache.d.ts +0 -0
  169. /package/dist/{src/lib → lib}/server/databases/index.d.ts +0 -0
  170. /package/dist/{src/lib → lib}/server/document_git_checkpoint.d.ts +0 -0
  171. /package/dist/{src/lib/server/senat_document_search.test.d.ts → lib/server/document_git_checkpoint.test.d.ts} +0 -0
  172. /package/dist/{src/lib → lib}/server/enriched_document_checkpoint.d.ts +0 -0
  173. /package/dist/{src/lib/server/shared_legal_text_sections.test.d.ts → lib/server/enriched_document_checkpoint.test.d.ts} +0 -0
  174. /package/dist/{src/lib → lib}/server/europe_autocompletion.d.ts +0 -0
  175. /package/dist/{src/lib/server/sql_profiling.test.d.ts → lib/server/europe_autocompletion.test.d.ts} +0 -0
  176. /package/dist/{src/lib → lib}/server/f_legi/index.d.ts +0 -0
  177. /package/dist/{src/lib → lib}/server/flegi_profiling.d.ts +0 -0
  178. /package/dist/{src/lib/server/sync_administrative_act_titles.test.d.ts → lib/server/flegi_profiling.test.d.ts} +0 -0
  179. /package/dist/{src/lib → lib}/server/html_simplifier.d.ts +0 -0
  180. /package/dist/{src/lib/server/sync_assemblee_legal_texts.test.d.ts → lib/server/html_simplifier.test.d.ts} +0 -0
  181. /package/dist/{src/lib → lib}/server/international_treaties_autocompletion.d.ts +0 -0
  182. /package/dist/{src/lib/server/sync_local_act_titles.test.d.ts → lib/server/international_treaties_autocompletion.test.d.ts} +0 -0
  183. /package/dist/{src/lib → lib}/server/judilibre_search.d.ts +0 -0
  184. /package/dist/{src/lib/server/typesense_blue_green.test.d.ts → lib/server/judilibre_search.test.d.ts} +0 -0
  185. /package/dist/{src/lib/server/typesense_index_lock.test.d.ts → lib/server/jurisprudence_citations.test.d.ts} +0 -0
  186. /package/dist/{src/lib/text_parsers/action_citation_patterns.test.d.ts → lib/server/jurisprudence_jade.test.d.ts} +0 -0
  187. /package/dist/{src/lib/text_parsers/action_directives.test.d.ts → lib/server/jurisprudence_store.integration.test.d.ts} +0 -0
  188. /package/dist/{src/lib/text_parsers/action_occurrences.test.d.ts → lib/server/jurisprudence_store_closed.test.d.ts} +0 -0
  189. /package/dist/{src/lib → lib}/server/legi/resolvers.d.ts +0 -0
  190. /package/dist/{src/lib → lib}/server/legifrance_article_search.d.ts +0 -0
  191. /package/dist/{src/lib/text_parsers/action_position_cues.test.d.ts → lib/server/legifrance_article_search.test.d.ts} +0 -0
  192. /package/dist/{src/lib → lib}/server/legifrance_jurisprudence_search.d.ts +0 -0
  193. /package/dist/{src/lib/text_parsers/action_words.test.d.ts → lib/server/legifrance_jurisprudence_search.test.d.ts} +0 -0
  194. /package/dist/{src/lib → lib}/server/linkers/html.d.ts +0 -0
  195. /package/dist/{src/lib → lib}/server/local_acts_autocompletion.d.ts +0 -0
  196. /package/dist/{src/lib/text_parsers/actions.test.d.ts → lib/server/local_acts_autocompletion.test.d.ts} +0 -0
  197. /package/dist/{src/lib/text_parsers/articles.test.d.ts → lib/server/masquage-typesense.test.d.ts} +0 -0
  198. /package/dist/{src/lib → lib}/server/masquage_typesense.d.ts +0 -0
  199. /package/dist/{src/lib/text_parsers/citations.test.d.ts → lib/server/named_text_article_decisions.test.d.ts} +0 -0
  200. /package/dist/{src/lib → lib}/server/parsed_amendments.d.ts +0 -0
  201. /package/dist/{src/lib/text_parsers/dates.test.d.ts → lib/server/parsed_amendments.test.d.ts} +0 -0
  202. /package/dist/{src/lib/text_parsers/divisions.test.d.ts → lib/server/parsed_bill_abrogation.test.d.ts} +0 -0
  203. /package/dist/{src/lib/text_parsers/doctrinal_references.test.d.ts → lib/server/parsed_bill_future_consultation.test.d.ts} +0 -0
  204. /package/dist/{src/lib/text_parsers/numbers.test.d.ts → lib/server/parsed_bill_link_decisions.test.d.ts} +0 -0
  205. /package/dist/{src/lib/text_parsers/parsers.test.d.ts → lib/server/parsed_bills.test.d.ts} +0 -0
  206. /package/dist/{src/lib → lib}/server/raa_autocompletion.d.ts +0 -0
  207. /package/dist/{src/lib/text_parsers/portions.test.d.ts → lib/server/raa_autocompletion.test.d.ts} +0 -0
  208. /package/dist/{src/lib → lib}/server/senat_amendment_search.d.ts +0 -0
  209. /package/dist/{src/lib/text_parsers/prepositions.test.d.ts → lib/server/senat_amendment_search.test.d.ts} +0 -0
  210. /package/dist/{src/lib → lib}/server/senat_document_search.d.ts +0 -0
  211. /package/dist/{src/lib/text_parsers/relative_locations.test.d.ts → lib/server/senat_document_search.test.d.ts} +0 -0
  212. /package/dist/{src/lib → lib}/server/senat_document_sources.d.ts +0 -0
  213. /package/dist/{src/lib → lib}/server/shared_legal_text_sections.d.ts +0 -0
  214. /package/dist/{src/lib/text_parsers/repeated_actions.test.d.ts → lib/server/shared_legal_text_sections.test.d.ts} +0 -0
  215. /package/dist/{src/lib → lib}/server/sql_profiling.d.ts +0 -0
  216. /package/dist/{src/lib/text_parsers/search_queries.test.d.ts → lib/server/sql_profiling.test.d.ts} +0 -0
  217. /package/dist/{src/lib → lib}/server/sync_administrative_act_titles.d.ts +0 -0
  218. /package/dist/{src/lib/text_parsers/simplifiers.test.d.ts → lib/server/sync_administrative_act_titles.test.d.ts} +0 -0
  219. /package/dist/{src/lib → lib}/server/sync_ameli_titles.d.ts +0 -0
  220. /package/dist/{src/lib → lib}/server/sync_assemblee_legal_texts.d.ts +0 -0
  221. /package/dist/{src/lib/text_parsers/texts.test.d.ts → lib/server/sync_assemblee_legal_texts.test.d.ts} +0 -0
  222. /package/dist/{src/lib → lib}/server/sync_boss_titles.d.ts +0 -0
  223. /package/dist/{src/lib → lib}/server/sync_europe_titles.d.ts +0 -0
  224. /package/dist/{src/lib → lib}/server/sync_international_treaty_titles.d.ts +0 -0
  225. /package/dist/{src/lib → lib}/server/sync_local_act_titles.d.ts +0 -0
  226. /package/dist/{src/lib/text_parsers/typography.test.d.ts → lib/server/sync_local_act_titles.test.d.ts} +0 -0
  227. /package/dist/{src/lib → lib}/server/sync_raa_titles.d.ts +0 -0
  228. /package/dist/{src/lib → lib}/server/tables_of_contents.d.ts +0 -0
  229. /package/dist/{src/lib → lib}/server/text_parsers/transformers.d.ts +0 -0
  230. /package/dist/{src/lib → lib}/server/typesense_blue_green.d.ts +0 -0
  231. /package/dist/{src/scripts/add_links_to_assemblee_parsed_documents.d.ts → lib/server/typesense_blue_green.test.d.ts} +0 -0
  232. /package/dist/{src/lib → lib}/server/typesense_index_lock.d.ts +0 -0
  233. /package/dist/{src/scripts/add_links_to_html_document.d.ts → lib/server/typesense_index_lock.test.d.ts} +0 -0
  234. /package/dist/{src/lib → lib}/test/text_titles_infos.d.ts +0 -0
  235. /package/dist/{src/lib → lib}/text_parsers/action_citation_patterns.d.ts +0 -0
  236. /package/dist/{src/scripts/add_links_to_legifrance.d.ts → lib/text_parsers/action_citation_patterns.test.d.ts} +0 -0
  237. /package/dist/{src/lib → lib}/text_parsers/action_directives.d.ts +0 -0
  238. /package/dist/{src/scripts/add_links_to_senat_comptes_rendus.d.ts → lib/text_parsers/action_directives.test.d.ts} +0 -0
  239. /package/dist/{src/lib → lib}/text_parsers/action_occurrences.d.ts +0 -0
  240. /package/dist/{src/scripts/add_links_to_senat_parsed_documents.d.ts → lib/text_parsers/action_occurrences.test.d.ts} +0 -0
  241. /package/dist/{src/lib → lib}/text_parsers/action_position_cues.d.ts +0 -0
  242. /package/dist/{src/scripts/associate_jorf_textes_with_assemblee_commissions.d.ts → lib/text_parsers/action_position_cues.test.d.ts} +0 -0
  243. /package/dist/{src/lib → lib}/text_parsers/action_target_scopes.d.ts +0 -0
  244. /package/dist/{src/lib → lib}/text_parsers/action_words.d.ts +0 -0
  245. /package/dist/{src/scripts/associate_jorf_textes_with_dossiers_legislatifs_assemblee.d.ts → lib/text_parsers/action_words.test.d.ts} +0 -0
  246. /package/dist/{src/lib → lib}/text_parsers/actions.d.ts +0 -0
  247. /package/dist/{src/scripts/compare_legi_bills.d.ts → lib/text_parsers/actions.test.d.ts} +0 -0
  248. /package/dist/{src/lib → lib}/text_parsers/amendment_action_directives.d.ts +0 -0
  249. /package/dist/{src/lib → lib}/text_parsers/articles.d.ts +0 -0
  250. /package/dist/{src/scripts/configure_postgres_assemblee_document_triggers.d.ts → lib/text_parsers/articles.test.d.ts} +0 -0
  251. /package/dist/{src/lib → lib}/text_parsers/citations.d.ts +0 -0
  252. /package/dist/{src/scripts/configure_postgres_legi_resolver.d.ts → lib/text_parsers/citations.test.d.ts} +0 -0
  253. /package/dist/{src/scripts/configure_postgres_root_cid_index.d.ts → lib/text_parsers/code_annexes.test.d.ts} +0 -0
  254. /package/dist/{src/lib → lib}/text_parsers/dates.d.ts +0 -0
  255. /package/dist/{src/scripts/configure_postgres_senat_document_triggers.d.ts → lib/text_parsers/dates.test.d.ts} +0 -0
  256. /package/dist/{src/lib → lib}/text_parsers/divisions.d.ts +0 -0
  257. /package/dist/{src/scripts/enrich_assemblee_documents.d.ts → lib/text_parsers/divisions.test.d.ts} +0 -0
  258. /package/dist/{src/lib → lib}/text_parsers/doctrinal_references.d.ts +0 -0
  259. /package/dist/{src/scripts/enrich_senat_documents.d.ts → lib/text_parsers/doctrinal_references.test.d.ts} +0 -0
  260. /package/dist/{src/lib → lib}/text_parsers/fragments.d.ts +0 -0
  261. /package/dist/{src/lib → lib}/text_parsers/helpers.d.ts +0 -0
  262. /package/dist/{src/scripts/html_document_to_text.d.ts → lib/text_parsers/historical_versions.test.d.ts} +0 -0
  263. /package/dist/{src/lib → lib}/text_parsers/legal_text_aliases.d.ts +0 -0
  264. /package/dist/{src/lib → lib}/text_parsers/numbers.d.ts +0 -0
  265. /package/dist/{src/scripts/index_postgres_assemblee_amendments.d.ts → lib/text_parsers/numbers.test.d.ts} +0 -0
  266. /package/dist/{src/scripts/index_postgres_assemblee_texts.d.ts → lib/text_parsers/parsers.test.d.ts} +0 -0
  267. /package/dist/{src/lib → lib}/text_parsers/portions.d.ts +0 -0
  268. /package/dist/{src/scripts/index_postgres_judilibre.d.ts → lib/text_parsers/portions.test.d.ts} +0 -0
  269. /package/dist/{src/lib → lib}/text_parsers/prepositions.d.ts +0 -0
  270. /package/dist/{src/scripts/index_postgres_legifrance_articles.d.ts → lib/text_parsers/prepositions.test.d.ts} +0 -0
  271. /package/dist/{src/lib → lib}/text_parsers/qualified_versions.d.ts +0 -0
  272. /package/dist/{src/lib → lib}/text_parsers/references.d.ts +0 -0
  273. /package/dist/{src/scripts/index_postgres_legifrance_jurisprudence.d.ts → lib/text_parsers/references.test.d.ts} +0 -0
  274. /package/dist/{src/lib → lib}/text_parsers/relative_locations.d.ts +0 -0
  275. /package/dist/{src/scripts/index_postgres_senat_amendments.d.ts → lib/text_parsers/relative_locations.test.d.ts} +0 -0
  276. /package/dist/{src/scripts/index_postgres_senat_texts.d.ts → lib/text_parsers/repeated_actions.test.d.ts} +0 -0
  277. /package/dist/{src/lib → lib}/text_parsers/search_queries.d.ts +0 -0
  278. /package/dist/{src/scripts/parse_akoma_ntoso_bill_raw.d.ts → lib/text_parsers/search_queries.test.d.ts} +0 -0
  279. /package/dist/{src/lib → lib}/text_parsers/separators.d.ts +0 -0
  280. /package/dist/{src/lib → lib}/text_parsers/simplifiers.d.ts +0 -0
  281. /package/dist/{src/scripts/parse_assemblee_bill_raw.d.ts → lib/text_parsers/simplifiers.test.d.ts} +0 -0
  282. /package/dist/{src/lib → lib}/text_parsers/table_row_targets.d.ts +0 -0
  283. /package/dist/{src/lib → lib}/text_parsers/table_unit_notes.d.ts +0 -0
  284. /package/dist/{src/scripts/profile_assemblee_document_parsing.d.ts → lib/text_parsers/texts.test.d.ts} +0 -0
  285. /package/dist/{src/lib → lib}/text_parsers/transformers.d.ts +0 -0
  286. /package/dist/{src/lib → lib}/text_parsers/typography.d.ts +0 -0
  287. /package/dist/{src/scripts/profile_canutes_bill.d.ts → lib/text_parsers/typography.test.d.ts} +0 -0
  288. /package/dist/{src/lib → lib}/textes.d.ts +0 -0
  289. /package/dist/{src/lib → lib}/timings.d.ts +0 -0
  290. /package/dist/{src/scripts/shared/assemblee_legislature.test.d.ts → scripts/add_links_to_assemblee_parsed_documents.d.ts} +0 -0
  291. /package/dist/{src/scripts/shared/checkpoint_cli_options.test.d.ts → scripts/add_links_to_html_document.d.ts} +0 -0
  292. /package/dist/{src/scripts/simplified_html_bill_to_table_of_contents.d.ts → scripts/add_links_to_legifrance.d.ts} +0 -0
  293. /package/dist/{src/scripts/simplify_word_html.d.ts → scripts/add_links_to_senat_comptes_rendus.d.ts} +0 -0
  294. /package/dist/{src/scripts/sync_postgres_assemblee_document_content.d.ts → scripts/add_links_to_senat_parsed_documents.d.ts} +0 -0
  295. /package/dist/{src/scripts → scripts}/add_positions_to_table_of_contents.d.ts +0 -0
  296. /package/dist/{src/scripts → scripts}/add_references_to_html_document.d.ts +0 -0
  297. /package/dist/{src/scripts/sync_postgres_senat_document_content.d.ts → scripts/alimenter_jurisprudence_pilote.d.ts} +0 -0
  298. /package/dist/{src/scripts/test_canutes_titles_cache.d.ts → scripts/associate_jorf_textes_with_assemblee_commissions.d.ts} +0 -0
  299. /package/dist/{src/scripts/warm_canutes_text_titles_cache.d.ts → scripts/associate_jorf_textes_with_dossiers_legislatifs_assemblee.d.ts} +0 -0
  300. /package/dist/{src/scripts → scripts}/audit_doctrinal_references.d.ts +0 -0
  301. /package/dist/{src/scripts → scripts}/configure.d.ts +0 -0
  302. /package/dist/{src/scripts → scripts}/extract_alineas_images.d.ts +0 -0
  303. /package/dist/{src/scripts → scripts}/generate_alineas_numbers_review.d.ts +0 -0
  304. /package/dist/{src/scripts → scripts}/index_typesense.d.ts +0 -0
  305. /package/dist/{src/scripts → scripts}/merge_reviewed_alineas_numbers.d.ts +0 -0
  306. /package/dist/{src/scripts → scripts}/set_articles_missing_num.d.ts +0 -0
  307. /package/dist/{src/scripts → scripts}/shared/assemblee_legislature.d.ts +0 -0
  308. /package/dist/{src/scripts → scripts}/shared/checkpoint_cli_options.d.ts +0 -0
@@ -178,11 +178,13 @@ function m(e, t) {
178
178
  var h = class {
179
179
  input;
180
180
  offset;
181
+ ignoreReferenceRepetitionQualifiers = !1;
181
182
  currentArticle = void 0;
182
183
  currentText = void 0;
183
184
  length = 0;
184
185
  usedInputs = void 0;
185
186
  variables = {};
187
+ textTitlesInfos;
186
188
  constructor(e, t = 0) {
187
189
  this.input = e, this.offset = t;
188
190
  }
@@ -294,7 +296,7 @@ var h = class {
294
296
  let i = Math.max(0, r.offset - t);
295
297
  for (let t = r.offset; t >= i; t--) {
296
298
  let i = new h(r.input, t);
297
- i.variables = { ...r.variables }, i.currentArticle = r.currentArticle, i.currentText = r.currentText;
299
+ i.variables = { ...r.variables }, i.currentArticle = r.currentArticle, i.currentText = r.currentText, i.textTitlesInfos = r.textTitlesInfos;
298
300
  let a = (Array.isArray(e) ? _(e, { exportVariables: !0 }) : e)(i);
299
301
  if (a !== void 0 && i.offset === r.offset) {
300
302
  let e = a;
@@ -430,7 +432,7 @@ var h = class {
430
432
  }, re = S(" ?['’] ?", { value: "'" }), T = S(" "), ie = S(" ?", { value: "" }), ae = S("[a-z]", { flags: "i" }), oe = S(String.raw`(?=$|\P{Alphabetic})`, { flags: "iv" }), E = S("n ?[°o] ?", {
431
433
  flags: "i",
432
434
  value: "n° "
433
- }), se = S("-"), ce = S(", ?", { value: ", " }), le = S("(, ?| )", { value: ", " }), D = S("(èm)?e"), ue = g(S("1er", { value: (e, t) => ({
435
+ }), D = S("-"), se = S(", ?", { value: ", " }), ce = S("(, ?| )", { value: ", " }), O = S("(èm)?e"), le = g(S("1er", { value: (e, t) => ({
434
436
  position: t.position(),
435
437
  text: t.text(),
436
438
  value: 1
@@ -438,11 +440,11 @@ var h = class {
438
440
  position: t.position(),
439
441
  text: t.text(),
440
442
  value: 1
441
- }) }), _([S(String.raw`\d+`), x(D, { default: "" })], { value: (e, t) => ({
443
+ }) }), _([S(String.raw`\d+`), x(O, { default: "" })], { value: (e, t) => ({
442
444
  position: t.position(),
443
445
  text: t.text(),
444
446
  value: parseInt(e[0])
445
- }) })), O = S(String.raw`\d+`, { value: (e) => parseInt(e[0]) }), de = g(S("1er", { value: 1 }), _([S(String.raw`\d+`), D], { value: (e) => parseInt(e[0]) })), fe = S(String.raw`[IVXLCDM]+`, { value: (e) => d(e[0]) }), pe = g(S("IER|Ier", { value: 1 }), _([S(String.raw`[IVXLCDM]+`), D], { value: (e) => d(e[0]) })), me = g(S("0I", { value: (e, t) => ({
447
+ }) })), k = S(String.raw`\d+`, { value: (e) => parseInt(e[0]) }), ue = g(S("1er", { value: 1 }), _([S(String.raw`\d+`), O], { value: (e) => parseInt(e[0]) })), de = S(String.raw`[IVXLCDM]+`, { value: (e) => d(e[0]) }), fe = g(S("IER|Ier", { value: 1 }), _([S(String.raw`[IVXLCDM]+`), O], { value: (e) => d(e[0]) })), pe = g(S("0I", { value: (e, t) => ({
446
448
  position: t.position(),
447
449
  text: t.text(),
448
450
  value: 0
@@ -450,11 +452,11 @@ var h = class {
450
452
  position: t.position(),
451
453
  text: t.text(),
452
454
  value: 1
453
- }) }), _([S(String.raw`[IVXLCDM]+`), x(D, { default: "" })], { value: (e, t) => ({
455
+ }) }), _([S(String.raw`[IVXLCDM]+`), x(O, { default: "" })], { value: (e, t) => ({
454
456
  position: t.position(),
455
457
  text: t.text(),
456
458
  value: d(e[0])
457
- }) })), he = g(S("dix", {
459
+ }) })), me = g(S("dix", {
458
460
  flags: "i",
459
461
  value: 10
460
462
  }), S("onze?", {
@@ -475,7 +477,7 @@ var h = class {
475
477
  }), S("seize?", {
476
478
  flags: "i",
477
479
  value: 16
478
- })), ge = g(S("vingt", {
480
+ })), he = g(S("vingt", {
479
481
  flags: "i",
480
482
  value: 20
481
483
  }), S("trente?", {
@@ -505,7 +507,7 @@ var h = class {
505
507
  }), S("nonante?", {
506
508
  flags: "i",
507
509
  value: 90
508
- })), _e = g(S("une?", {
510
+ })), ge = g(S("une?", {
509
511
  flags: "i",
510
512
  value: 1
511
513
  }), S("deux", {
@@ -532,8 +534,8 @@ var h = class {
532
534
  }), S("neu[fv]", {
533
535
  flags: "i",
534
536
  value: 9
535
- })), k = _([
536
- C("centaines", x([C("centaine", x([_e, se], {
537
+ })), _e = _([
538
+ C("centaines", x([C("centaine", x([ge, D], {
537
539
  default: 0,
538
540
  value: (e) => e[0]
539
541
  })), S("cent-", {
@@ -543,24 +545,24 @@ var h = class {
543
545
  default: 0,
544
546
  value: (e, { variables: t }) => 100 * t.centaine
545
547
  })),
546
- C("dizaines", x(ge, { default: 0 })),
548
+ C("dizaines", x(he, { default: 0 })),
547
549
  x(S("-(et-)?", { flags: "i" }), { default: "" }),
548
- C("dix", x(he, { default: 0 })),
549
- x(se, { default: "" }),
550
- C("unite", x(_e, { default: 0 }))
550
+ C("dix", x(me, { default: 0 })),
551
+ x(D, { default: "" }),
552
+ C("unite", x(ge, { default: 0 }))
551
553
  ], { value: (e, { variables: t }) => t.centaines + t.dizaines + t.dix + t.unite }), ve = g(S("1(er|ère)", {
552
554
  flags: "i",
553
555
  value: 1
554
556
  }), S("premi(er|ère)", {
555
557
  flags: "i",
556
558
  value: 1
557
- }), O, k), ye = g(S("premi(er|ère)", {
559
+ }), k, _e), ye = g(S("premi(er|ère)", {
558
560
  flags: "i",
559
561
  value: 1
560
562
  }), S("seconde?", {
561
563
  flags: "i",
562
564
  value: 2
563
- }), _([k, S("ième", { flags: "i" })], { value: (e) => e[0] })), be = g(de, ye), xe = "[0-9]+(?:e|er|ere|ère)?|[A-Za-zÀ-ÖØ-öø-ÿ'’.-]+";
565
+ }), _([_e, S("ième", { flags: "i" })], { value: (e) => e[0] })), be = g(ue, ye), xe = "[0-9]+(?:e|er|ere|ère)?|[A-Za-zÀ-ÖØ-öø-ÿ'’.-]+";
564
566
  function A(e, t) {
565
567
  let n = new h(e), r = t(n);
566
568
  if (n.remaining().trim().length > 0) return null;
@@ -579,7 +581,7 @@ function Ce(e) {
579
581
  if (!t) return null;
580
582
  let n = Array.from(new Set([t, Se(t)]));
581
583
  for (let e of n) {
582
- let t = A(e, be) ?? A(e, ve) ?? A(e, ue);
584
+ let t = A(e, be) ?? A(e, ve) ?? A(e, le);
583
585
  if (t !== null) return t;
584
586
  }
585
587
  return null;
@@ -708,7 +710,7 @@ var we = [
708
710
  position: t.position(),
709
711
  text: t.text().toLowerCase(),
710
712
  value: e
711
- }) }), De = S(String.raw`[12]\d{3}`), Oe = v(g(fe, S(String.raw`1[0-4]|\d`)), { value: (e) => p(parseInt(e)) }), ke = g(S(String.raw`1\s*er`, {
713
+ }) }), De = S(String.raw`[12]\d{3}`), Oe = v(g(de, S(String.raw`1[0-4]|\d`)), { value: (e) => p(parseInt(e)) }), ke = g(S(String.raw`1\s*er`, {
712
714
  flags: "i",
713
715
  value: "01"
714
716
  }), S(String.raw`[12]\d|3[01]`, { value: (e) => e[0] }), S(String.raw`\d`, { value: (e) => "0" + e[0] })), Ae = g(S(String.raw`1\s*er`, {
@@ -889,8 +891,11 @@ var we = [
889
891
  })), F = S("ci ?- ?(après|avant|dessous|dessus)", {
890
892
  flags: "i",
891
893
  value: (e) => `ci-${e[1]}`
892
- }), Ue = _([T, F], { value: (e) => e[1] }), We = S(" précitée?", { flags: "i" }), Ge = g(F, N), Ke = _([x(S("ces ", { flags: "i" }), { default: "" }), N], { value: (e) => e[1] }), qe = g(F, P), I = _([x(S("ce(tte|t)? ", { flags: "i" }), { default: "" }), P], { value: (e) => e[1] }), L = /^<\/?(!DOCTYPE|\?XML|[A-Z][A-Z0-9]*)/i;
893
- function R(e, t) {
894
+ }), Ue = _([T, F], { value: (e) => e[1] }), I = S(" précitée?", { flags: "i" }), We = g(F, N), Ge = _([x(S("ces ", { flags: "i" }), { default: "" }), N], { value: (e) => e[1] }), Ke = g(F, P), qe = S("ce(tte|t)?(?= )", {
895
+ flags: "i",
896
+ value: { relative: 0 }
897
+ }), L = g(_([x([qe, T], { default: "" }), P], { value: (e) => e[1] }), qe), R = /^<\/?(!DOCTYPE|\?XML|[A-Z][A-Z0-9]*)/i;
898
+ function z(e, t) {
894
899
  return (n) => {
895
900
  let r = [], i = n;
896
901
  for (let e of t) {
@@ -925,12 +930,12 @@ function Je(e) {
925
930
  };
926
931
  };
927
932
  }
928
- function* z(e) {
933
+ function* B(e) {
929
934
  if (e.transformations === void 0) yield e;
930
- else for (let t of e.transformations) yield* z(t);
935
+ else for (let t of e.transformations) yield* B(t);
931
936
  }
932
937
  function* Ye(e) {
933
- let t = [...z(e)].reverse(), n = { position: {
938
+ let t = [...B(e)].reverse(), n = { position: {
934
939
  start: 0,
935
940
  stop: 0
936
941
  } }, r = t.map((e) => {
@@ -987,7 +992,7 @@ function* Xe(e) {
987
992
  if (i + 1 < d) {
988
993
  let r = !1, o = n[i + 1];
989
994
  if (o.openingTag !== void 0 && o.outputIndex + o.outputLength < e.start) {
990
- let e = o.openingTag.match(L);
995
+ let e = o.openingTag.match(R);
991
996
  if (e !== null) {
992
997
  let t = e[1], n = t.toUpperCase();
993
998
  [
@@ -1012,7 +1017,7 @@ function* Xe(e) {
1012
1017
  if (i + 1 > f) {
1013
1018
  let a = !1, s = n[r], l = n[i + 1];
1014
1019
  if (s.openingTag !== void 0 && e.stop < l.outputIndex) {
1015
- let e = s.openingTag.match(L);
1020
+ let e = s.openingTag.match(R);
1016
1021
  if (e !== null) {
1017
1022
  let t = e[1], n = t.toUpperCase();
1018
1023
  [
@@ -1061,7 +1066,7 @@ function Ze(e) {
1061
1066
  }
1062
1067
  function Qe(e, t) {
1063
1068
  let n = t.map((e) => [e]);
1064
- for (let { sourceMap: t } of [...z(e)].reverse()) n = $e(t, n);
1069
+ for (let { sourceMap: t } of [...B(e)].reverse()) n = $e(t, n);
1065
1070
  return n;
1066
1071
  }
1067
1072
  function $e(e, t) {
@@ -1174,7 +1179,7 @@ function at({ removeAWithHref: e } = {}) {
1174
1179
  sourceMap: a,
1175
1180
  title: s
1176
1181
  };
1177
- let u = t.slice(c, l + 1), d = u.startsWith("</"), f = u.length, p = u.match(L);
1182
+ let u = t.slice(c, l + 1), d = u.startsWith("</"), f = u.length, p = u.match(R);
1178
1183
  if (p === null) {
1179
1184
  i.push(t.slice(n, l + 1).replace(/[\n\r]/g, " ")), n = l + 1;
1180
1185
  continue;
@@ -1268,7 +1273,7 @@ function at({ removeAWithHref: e } = {}) {
1268
1273
  "HEAD",
1269
1274
  "SCRIPT",
1270
1275
  "STYLE"
1271
- ].includes(h) || e && h === "A" && / href=/i.test(u)) c > n && i.push(t.slice(n, c).replace(/[\n\r]/g, " ")), o.push({
1276
+ ].includes(h) || e && h === "A" && / href=/i.test(u) || h === "SPAN" && /\bdata-alinea\s*=/i.test(u) && /\bclass\s*=\s*(["'])[^"']*\balinea\b[^"']*\1/i.test(u) || h === "P" && /\bdata-pastille\s*=/i.test(u) && /\bclass\s*=\s*(["'])[^"']*\bpastille\b[^"']*\1/i.test(u)) c > n && i.push(t.slice(n, c).replace(/[\n\r]/g, " ")), o.push({
1272
1277
  action: "ignore",
1273
1278
  inputIndex: c,
1274
1279
  name: h,
@@ -1392,7 +1397,7 @@ function ct(e) {
1392
1397
  [/<script.*?>.*?<\/script>/gis, ""],
1393
1398
  [/<style.*?>.*?<\/style>/gis, ""]
1394
1399
  ]) {
1395
- let i = B(e, r)(n);
1400
+ let i = V(e, r)(n);
1396
1401
  i.sourceMap.length !== 0 && (t.push(i), n = i.output);
1397
1402
  }
1398
1403
  return {
@@ -1402,7 +1407,7 @@ function ct(e) {
1402
1407
  transformations: t
1403
1408
  };
1404
1409
  }
1405
- function B(e, t) {
1410
+ function V(e, t) {
1406
1411
  return (n) => {
1407
1412
  let r = [], i = n.replaceAll(e, (e, ...n) => {
1408
1413
  let i = n.at(-2), a = t;
@@ -1422,14 +1427,14 @@ function B(e, t) {
1422
1427
  };
1423
1428
  };
1424
1429
  }
1425
- function V(e) {
1430
+ function H(e) {
1426
1431
  let t = [], n = e;
1427
1432
  for (let [e, r] of [
1428
1433
  [/(\sn°)([^\s])/gi, "$1 $2"],
1429
1434
  [/[\u200E\u200F]/g, ""],
1430
1435
  [/[\uF031-\uF039\uF041-\uF054\uF061-\uF06A]/g, ""]
1431
1436
  ]) {
1432
- let i = B(e, r)(n);
1437
+ let i = V(e, r)(n);
1433
1438
  i.sourceMap.length !== 0 && (t.push(i), n = i.output);
1434
1439
  }
1435
1440
  return {
@@ -1440,24 +1445,24 @@ function V(e) {
1440
1445
  };
1441
1446
  }
1442
1447
  function lt({ removeAWithHref: e } = {}) {
1443
- return (t) => R("Simplification du HTML", [
1448
+ return (t) => z("Simplification du HTML", [
1444
1449
  ot,
1445
1450
  st,
1446
1451
  ct,
1447
- V,
1448
- U,
1452
+ H,
1453
+ G,
1449
1454
  at({ removeAWithHref: e }),
1450
- H
1455
+ W
1451
1456
  ])(t);
1452
1457
  }
1453
- function ut(e) {
1454
- return R("Simplification du texte brut", [
1455
- V,
1456
- U,
1457
- H
1458
+ function U(e) {
1459
+ return z("Simplification du texte brut", [
1460
+ H,
1461
+ G,
1462
+ W
1458
1463
  ])(e);
1459
1464
  }
1460
- function H(e) {
1465
+ function W(e) {
1461
1466
  let t = [], n = e;
1462
1467
  for (let [e, r, i] of [
1463
1468
  [
@@ -1515,8 +1520,8 @@ function H(e) {
1515
1520
  transformations: t
1516
1521
  };
1517
1522
  }
1518
- function U(e) {
1519
- return R("Simplification des caractères unicodes", [
1523
+ function G(e) {
1524
+ return z("Simplification des caractères unicodes", [
1520
1525
  ["À", "À"],
1521
1526
  ["Â", "Â"],
1522
1527
  ["Ä", "Ä"],
@@ -1551,25 +1556,28 @@ function U(e) {
1551
1556
  [/[‐‑–·]/g, "-"],
1552
1557
  [/’/g, "'"],
1553
1558
  ["İ", "I"]
1554
- ].map(([e, t]) => B(e, t)))(e);
1559
+ ].map(([e, t]) => V(e, t)))(e);
1555
1560
  }
1556
1561
  //#endregion
1557
1562
  //#region src/lib/text_parsers/texts.ts
1558
- var W = {}, dt = {}, ft = {}, pt = {}, mt = {}, ht = {}, gt = 0;
1559
- function _t() {
1560
- return gt;
1563
+ var K = {}, q = {}, ut = {}, dt = {}, ft = {}, pt = {}, mt = 0;
1564
+ function ht() {
1565
+ return mt;
1561
1566
  }
1562
- function vt(e) {
1563
- gt++;
1567
+ function gt(e) {
1568
+ mt++;
1564
1569
  let t = e ?? {};
1565
- G(dt, t.codeTitleVersionsByCid ?? {}), G(ft, t.textCidByOtherTitleWordsTree ?? {}), G(pt, t.textCidByTitleRestWordsTree ?? {}), G(W, Object.fromEntries(Object.entries(t.textInfosByCid ?? {}).map(([e, t]) => [e, Array.isArray(t) ? {
1570
+ J(q, t.codeTitleVersionsByCid ?? {}), J(ut, t.textCidByOtherTitleWordsTree ?? {}), J(dt, t.textCidByTitleRestWordsTree ?? {}), J(K, Object.fromEntries(Object.entries(t.textInfosByCid ?? {}).map(([e, t]) => [e, Array.isArray(t) ? {
1566
1571
  nature: t[0],
1567
1572
  title: t[1]
1568
- } : t]))), G(mt, t.textsCidsByNatureAndDate ?? {}), G(ht, t.textsCidsByNatureAndNum ?? {});
1573
+ } : t]))), J(ft, t.textsCidsByNatureAndDate ?? {}), J(pt, t.textsCidsByNatureAndNum ?? {});
1574
+ }
1575
+ function _t(e, t) {
1576
+ return [...new Set(e)].filter((e) => (q[e] ?? []).some(({ debut: e, fin: n }) => e < n && e <= t && t < n));
1569
1577
  }
1570
- function yt(e, t) {
1578
+ function vt(e, t) {
1571
1579
  let n = (e) => {
1572
- let n = dt[e] ?? [], r = n.filter(({ debut: e, fin: n }) => e <= t && t < n), i = (r.length > 0 ? r : n.filter(({ debut: e }) => e <= t)).toSorted((e, t) => t.fin.localeCompare(e.fin) || t.debut.localeCompare(e.debut))[0];
1580
+ let n = q[e] ?? [], r = n.filter(({ debut: e, fin: n }) => e <= t && t < n), i = (r.length > 0 ? r : n.filter(({ debut: e }) => e <= t)).toSorted((e, t) => t.fin.localeCompare(e.fin) || t.debut.localeCompare(e.debut))[0];
1573
1581
  return [
1574
1582
  +(r.length > 0),
1575
1583
  i?.fin ?? "",
@@ -1581,12 +1589,28 @@ function yt(e, t) {
1581
1589
  return i[0] - r[0] || i[1].localeCompare(r[1]) || i[2].localeCompare(r[2]) || e.localeCompare(t);
1582
1590
  });
1583
1591
  }
1584
- function G(e, t) {
1592
+ function J(e, t) {
1585
1593
  let n = e;
1586
1594
  for (let e of Object.keys(n)) delete n[e];
1587
1595
  Object.assign(e, t);
1588
1596
  }
1589
- var bt = (e) => Array.isArray(e) ? e : [e], K = v(g(S("Constitution", { value: "CONSTITUTION" }), S("arrêtés?|circulaires?|code professionnel local|code|décret-loi|décrets?|livre(?= des procédures fiscales)|loi constitutionnelle|loi d'orientation quinquennale|loi d'orientation|loi de programme|loi locale|loi organique|loi quinquennale|loi|ordonnance (?:du Roi|locale|ministérielle|royale)|ordonnance", {
1597
+ var yt = (e) => Array.isArray(e) ? e : [e];
1598
+ function bt(e) {
1599
+ if (e.size < 2) return;
1600
+ let t = [...e].map((e) => ({
1601
+ cid: e,
1602
+ ...K[e]
1603
+ }));
1604
+ if (t.some(({ cid: e, nature: t, title: n }) => !e.startsWith("JORFTEXT") || t === "CODE" || n === void 0)) return;
1605
+ let n = t.filter(({ title: e }) => !/ \(rectificatif\)$/iu.test(e));
1606
+ if (n.length !== 1) return;
1607
+ let r = n[0];
1608
+ return t.every(({ nature: e, title: t }) => e === r.nature && (t === r.title || t?.replace(/ \(rectificatif\)$/iu, "") === r.title)) ? {
1609
+ cid: r.cid,
1610
+ rectificatifCids: t.filter(({ cid: e }) => e !== r.cid).map(({ cid: e }) => e)
1611
+ } : void 0;
1612
+ }
1613
+ var Y = v(g(S("Constitution", { value: "CONSTITUTION" }), S("arrêtés?|circulaires?|code professionnel local|code|décret-loi|décrets?|livre(?= des procédures fiscales)|loi constitutionnelle|loi d'orientation quinquennale|loi d'orientation|loi de programme|loi locale|loi organique|loi quinquennale|loi|ordonnance (?:du Roi|locale|ministérielle|royale)|ordonnance", {
1590
1614
  flags: "i",
1591
1615
  value: (e) => {
1592
1616
  let t = e[0].toLowerCase();
@@ -1595,7 +1619,7 @@ var bt = (e) => Array.isArray(e) ? e : [e], K = v(g(S("Constitution", { value: "
1595
1619
  })), { value: (e) => ({
1596
1620
  nature: e,
1597
1621
  type: "texte"
1598
- }) }), xt = _([x(E, { default: null }), S(String.raw`\d+(-\d+)?`)], { value: (e) => e[1] }), q = g(M, _([xt, x(Pe, { default: null })], { value: (e) => e[1] === null ? { num: e[0] } : {
1622
+ }) }), xt = _([x(E, { default: null }), S(String.raw`\d+(-\d+)?`)], { value: (e) => e[1] }), X = g(M, _([xt, x(Pe, { default: null })], { value: (e) => e[1] === null ? { num: e[0] } : {
1599
1623
  ...e[1],
1600
1624
  num: e[0]
1601
1625
  } }));
@@ -1607,11 +1631,11 @@ S("décision( du Conseil constitutionnel)? (?<numero>[-/0-9A-Z]+ (QPC|DC|AN|D|EL
1607
1631
  type: "décision du Conseil constitutionnel"
1608
1632
  })
1609
1633
  });
1610
- var J = x(g(S(" de la République française", { flags: "i" }), S(" du pays", { flags: "i" })), { default: null }), St = g(_([
1611
- K,
1612
- J,
1634
+ var St = x(g(S(" de la République française", { flags: "i" }), S(" du pays", { flags: "i" })), { default: null }), Ct = g(_([
1635
+ Y,
1636
+ St,
1613
1637
  T,
1614
- q,
1638
+ X,
1615
1639
  S(".*")
1616
1640
  ], { value: (e) => {
1617
1641
  let t = {
@@ -1620,10 +1644,10 @@ var J = x(g(S(" de la République française", { flags: "i" }), S(" du pays", {
1620
1644
  }, n = e[4].trim() || void 0;
1621
1645
  return n !== void 0 && (t.titleRest = n), t;
1622
1646
  } }), _([
1623
- K,
1647
+ Y,
1624
1648
  S("[^()]+"),
1625
1649
  S(String.raw`\( ?`),
1626
- q,
1650
+ X,
1627
1651
  S(String.raw` ?\)`)
1628
1652
  ], { value: (e) => {
1629
1653
  let t = {
@@ -1640,14 +1664,14 @@ var J = x(g(S(" de la République française", { flags: "i" }), S(" du pays", {
1640
1664
  })), S(".+")], { value: (e) => {
1641
1665
  let t = { ...e[0] }, n = e[1].trim() || void 0;
1642
1666
  return n !== void 0 && (t.titleRest = n), t;
1643
- } })), Y = g(_([
1644
- K,
1645
- J,
1646
- x([T, q], {
1667
+ } })), Z = g(_([
1668
+ Y,
1669
+ St,
1670
+ x([T, X], {
1647
1671
  default: null,
1648
1672
  value: (e) => e[1]
1649
1673
  }),
1650
- x([T, v(w(pt), { value: (e, t) => ({
1674
+ x([T, v((e) => w(e.textTitlesInfos?.textCidByTitleRestWordsTree ?? dt)(e), { value: (e, t) => ({
1651
1675
  ...e,
1652
1676
  titleRest: t.text()
1653
1677
  }) })], {
@@ -1656,109 +1680,180 @@ var J = x(g(S(" de la République française", { flags: "i" }), S(" du pays", {
1656
1680
  }),
1657
1681
  x([
1658
1682
  S(String.raw` ?\( ?`),
1659
- q,
1683
+ X,
1660
1684
  S(String.raw` ?\)`)
1661
1685
  ], {
1662
1686
  default: null,
1663
1687
  value: (e) => e[1]
1664
1688
  }),
1665
- x(We, { default: "" })
1666
- ], { value: (e) => {
1667
- let { nature: t, type: n } = e[0], { date: r, num: i } = e[2] ?? e[4] ?? {}, { cid: a, titleRest: o } = e[3] ?? {};
1668
- if (a === void 0 && r === void 0 && i === void 0) return;
1669
- let s = /* @__PURE__ */ new Set();
1670
- if (r !== void 0) {
1671
- let e = mt[t]?.[r];
1689
+ x(I, { default: "" })
1690
+ ], { value: (e, t) => {
1691
+ let n = t.textTitlesInfos, r = (e) => {
1692
+ if (!n) return K[e];
1693
+ let t = n.textInfosByCid[e];
1694
+ return t && {
1695
+ nature: t[0],
1696
+ title: t[1]
1697
+ };
1698
+ }, i = n?.textsCidsByNatureAndDate ?? ft, a = n?.textsCidsByNatureAndNum ?? pt, { nature: o, type: s } = e[0], { date: c, num: l } = e[2] ?? e[4] ?? {}, { cid: u, titleRest: d } = e[3] ?? {};
1699
+ if (u === void 0 && c === void 0 && l === void 0) return;
1700
+ let f = /* @__PURE__ */ new Set();
1701
+ if (c !== void 0) {
1702
+ let e = i[o]?.[c];
1672
1703
  if (e !== void 0) {
1673
- let t = bt(e);
1674
- s = s.size === 0 ? new Set(t) : s.intersection(new Set(t));
1704
+ let t = yt(e);
1705
+ f = f.size === 0 ? new Set(t) : f.intersection(new Set(t));
1675
1706
  }
1676
1707
  }
1677
- if (i !== void 0) {
1678
- let e = ht[t]?.[i];
1708
+ if (l !== void 0) {
1709
+ let e = a[o]?.[l];
1679
1710
  if (e !== void 0) {
1680
- let t = bt(e);
1681
- s = s.size === 0 ? new Set(t) : s.intersection(new Set(t));
1711
+ let t = yt(e);
1712
+ f = f.size === 0 ? new Set(t) : f.intersection(new Set(t));
1682
1713
  }
1683
1714
  }
1684
- if (a !== void 0) {
1685
- let e = Array.isArray(a) ? a : [a];
1686
- s = s.size === 0 ? new Set(e) : s.intersection(new Set(e.filter((e) => W[e].nature === t)));
1715
+ if (u !== void 0) {
1716
+ let e = Array.isArray(u) ? u : [u];
1717
+ f = f.size === 0 ? new Set(e) : f.intersection(new Set(e.filter((e) => r(e)?.nature === o)));
1687
1718
  }
1688
- let c = s.size === 1 ? s.values().next().value : void 0, l = c === void 0 ? void 0 : W[c];
1719
+ let p = f.size > 1 ? bt(f) : void 0, m = f.size === 1 ? f.values().next().value : p?.cid, h = m === void 0 ? void 0 : r(m);
1689
1720
  return Object.fromEntries(Object.entries({
1690
- cid: c,
1691
- candidateCids: t === "CODE" && s.size > 1 ? [...s] : void 0,
1692
- date: r,
1693
- nature: t ?? l?.nature,
1694
- num: i,
1695
- title: l?.title,
1696
- titleRest: o,
1697
- type: n
1721
+ cid: m,
1722
+ candidateCids: f.size > 1 ? [...f] : void 0,
1723
+ rectificatifCids: p?.rectificatifCids,
1724
+ date: c,
1725
+ nature: o ?? h?.nature,
1726
+ num: l,
1727
+ title: h?.title,
1728
+ titleRest: d,
1729
+ type: s
1698
1730
  }).filter(([, e]) => e !== void 0));
1699
- } }), _([w(ft), x(We, { default: "" })], { value: (e) => {
1700
- let { cid: t } = e[0], n = typeof t == "string" ? W[t] : void 0;
1731
+ } }), _([(e) => w(e.textTitlesInfos?.textCidByOtherTitleWordsTree ?? ut)(e), x(I, { default: "" })], { value: (e, t) => {
1732
+ let { cid: n } = e[0], r = typeof n == "string" ? t.textTitlesInfos?.textInfosByCid[n] : void 0, i = t.textTitlesInfos ? r && {
1733
+ nature: r[0],
1734
+ title: r[1]
1735
+ } : typeof n == "string" ? K[n] : void 0;
1701
1736
  return Object.fromEntries(Object.entries({
1702
- cid: t,
1703
- ...n ?? {},
1737
+ cid: n,
1738
+ ...i ?? {},
1704
1739
  type: "texte"
1705
1740
  }).filter(([, e]) => e !== void 0));
1706
- } })), Ct = _([
1707
- O,
1741
+ } })), wt = _([
1742
+ k,
1708
1743
  S("/"),
1709
- O,
1744
+ k,
1710
1745
  x(S(" ?/ ?(CEE?)", { value: (e) => e[1] }), { default: "" })
1711
- ], { value: (e) => `${e[0]}/${e[2]}${e[3] ? `/${e[3]}` : ""}` }), wt = _([x(E, { default: "" }), Ct], { value: (e) => e[1] }), Tt = g(_([wt, x(Pe, { default: null })], { value: (e) => e[1] === null ? { num: e[0] } : {
1746
+ ], { value: (e) => `${e[0]}/${e[2]}${e[3] ? `/${e[3]}` : ""}` }), Tt = _([x(E, { default: "" }), wt], { value: (e) => e[1] }), Et = g(_([Tt, x(Pe, { default: null })], { value: (e) => e[1] === null ? { num: e[0] } : {
1712
1747
  ...e[1],
1713
1748
  num: e[0]
1714
- } }), M), Et = _([S("arrêtés?|arrêts?|avis|décisions?|déclarations?|délibérations?|directive(?: d'exécution|déléguée)?|informations?|instructions?|lettres?|règlement(?: d'exécution)?", {
1749
+ } }), M), Dt = _([S("arrêtés?|arrêts?|avis|décisions?|déclarations?|délibérations?|directive(?: d'exécution|déléguée)?|informations?|instructions?|lettres?|recommandations?|règlement(?: d'exécution)?", {
1715
1750
  flags: "i",
1716
1751
  value: (e) => {
1717
1752
  let t = e[0].toLowerCase();
1718
- return t.startsWith("arrêté") ? "ARRETEEURO" : t.startsWith("arrêt") ? "ARRETEURO" : t.startsWith("avis") ? "AVISEURO" : t.startsWith("décision") ? "DECISION_EURO" : t.startsWith("déclaration") ? "DECLARATIONEURO" : t.startsWith("délibération") ? "DELIBERATIONEURO" : t.startsWith("directive") ? "DIRECTIVE_EURO" : t.startsWith("information") ? "INFORMATIONEURO" : t.startsWith("instruction") ? "INSTRUCTIONEURO" : t.startsWith("lettre") ? "LETTREEURO" : (t.startsWith("règlement"), "REGLEMENTEUROPEEN");
1753
+ return t.startsWith("arrêté") ? "ARRETEEURO" : t.startsWith("arrêt") ? "ARRETEURO" : t.startsWith("avis") ? "AVISEURO" : t.startsWith("décision") ? "DECISION_EURO" : t.startsWith("déclaration") ? "DECLARATIONEURO" : t.startsWith("délibération") ? "DELIBERATIONEURO" : t.startsWith("directive") ? "DIRECTIVE_EURO" : t.startsWith("information") ? "INFORMATIONEURO" : t.startsWith("instruction") ? "INSTRUCTIONEURO" : t.startsWith("lettre") ? "LETTREEURO" : t.startsWith("recommandation") ? "RECOMMANDATIONEURO" : (t.startsWith("règlement"), "REGLEMENTEUROPEEN");
1719
1754
  }
1720
1755
  }), x(S(String.raw` \((CE|CEE|EURATOM|UE(, EURATOM)?)\)`, { flags: "i" }), { default: "" })], { value: (e) => ({
1721
1756
  nature: e[0],
1722
1757
  legislation: "UE",
1723
1758
  type: "texte"
1724
- }) }), X = _([
1725
- Et,
1759
+ }) }), Q = _([
1760
+ Dt,
1726
1761
  T,
1727
- Tt
1762
+ Et
1728
1763
  ], { value: (e) => ({
1729
1764
  ...e[2],
1730
1765
  ...e[0]
1731
- }) }), Z = S("convention", {
1766
+ }) }), Ot = S("convention", {
1732
1767
  flags: "i",
1733
1768
  value: {
1734
1769
  nature: "CONVENTION",
1735
1770
  legislation: "international",
1736
1771
  type: "texte"
1737
1772
  }
1738
- }), Dt = _([x(Ve, { default: !1 }), g(_([
1739
- I,
1773
+ }), kt = _([x(Ve, { default: !1 }), g(_([
1774
+ L,
1740
1775
  T,
1741
- g(Y, X, Z, K, Et)
1776
+ g(Z, Q, Ot, Y, Dt)
1742
1777
  ], { value: (e) => ({
1743
1778
  ...e[2],
1744
1779
  ...e[0] === void 0 ? {} : e[0]
1745
- }) }), Y, X, Z)], { value: (e, t) => {
1780
+ }) }), Z, Q, Ot)], { value: (e, t) => {
1746
1781
  let n = {
1747
1782
  ...e[1],
1748
1783
  ...e[0] ? { ofTheSaid: !0 } : {},
1749
1784
  position: t.position()
1750
1785
  };
1751
1786
  return t.currentText = n, n;
1752
- } }), Ot = class {
1787
+ } }), At = _([S("annexe", { flags: "i" }), x([
1788
+ T,
1789
+ x(E, { default: "" }),
1790
+ _([g(de, k, _([ae, S(String.raw`\b`)], { value: (e) => e[0] })), te([D, k])], { value: (e, t) => t.text() })
1791
+ ], {
1792
+ default: "",
1793
+ value: (e) => e[2]
1794
+ })], { value: (e) => e[1] }), jt = g(ze, [T, Ie]), Mt = g(_([
1795
+ L,
1796
+ T,
1797
+ S("annexe\\b", { flags: "i" })
1798
+ ], { value: (e, t) => e[0].relative === 0 ? {
1799
+ nature: "CODE",
1800
+ sameAnnex: !0,
1801
+ type: "texte",
1802
+ position: t.position()
1803
+ } : void 0 }), _([
1804
+ At,
1805
+ jt,
1806
+ kt
1807
+ ], { value: (e, t) => {
1808
+ let n = e[2];
1809
+ return n.nature === "CODE" ? {
1810
+ ...n,
1811
+ annex: e[0],
1812
+ position: t.position()
1813
+ } : void 0;
1814
+ } })), Nt = _([
1815
+ v(At, { value: (e, t) => ({
1816
+ annex: e,
1817
+ position: t.position()
1818
+ }) }),
1819
+ jt,
1820
+ kt
1821
+ ], { value: (e, t) => {
1822
+ let n = e[2];
1823
+ if (n.nature === "CODE") return;
1824
+ let { annex: r, position: i } = e[0];
1825
+ return {
1826
+ child: {
1827
+ num: `annexe${r ? ` ${r}` : ""}`,
1828
+ position: i,
1829
+ type: "article"
1830
+ },
1831
+ parent: {
1832
+ ...n,
1833
+ publicationAnnex: r
1834
+ },
1835
+ position: t.position(),
1836
+ type: "parent-enfant"
1837
+ };
1838
+ } });
1839
+ function Pt(e, t) {
1840
+ let n = e === void 0 ? void 0 : K[e];
1841
+ if (n?.nature !== "CODE") return [];
1842
+ let r = new h(U(`${n.title}, annexe${t ? ` ${t}` : ""}`).output), i = Z(r);
1843
+ return r.remaining() || i === void 0 ? [] : (i.candidateCids ?? (i.cid === void 0 ? [] : [i.cid])).filter((t) => t !== e);
1844
+ }
1845
+ //#endregion
1846
+ //#region src/lib/timings.ts
1847
+ var Ft = class {
1753
1848
  label;
1754
1849
  enabled;
1755
1850
  metrics = [];
1756
1851
  startedAt = performance.now();
1757
- constructor(e, t = kt()) {
1852
+ constructor(e, t = It()) {
1758
1853
  this.label = e, this.enabled = t;
1759
1854
  }
1760
1855
  add(e) {
1761
- this.enabled && (this.metrics.push(e), At() && console.info(`[timing:${this.label}]`, JSON.stringify(e)));
1856
+ this.enabled && (this.metrics.push(e), Lt() && console.info(`[timing:${this.label}]`, JSON.stringify(e)));
1762
1857
  }
1763
1858
  async time(e, t, n) {
1764
1859
  if (!this.enabled) return t();
@@ -1797,26 +1892,26 @@ var J = x(g(S(" de la République française", { flags: "i" }), S(" du pays", {
1797
1892
  }, null, 2));
1798
1893
  }
1799
1894
  };
1800
- function kt() {
1895
+ function It() {
1801
1896
  let e = globalThis.process?.env;
1802
1897
  return e?.PJL_BUILD_TIMINGS === "1" || e?.PJL_BUILD_TIMINGS === "true";
1803
1898
  }
1804
- function At() {
1899
+ function Lt() {
1805
1900
  let e = globalThis.process?.env;
1806
1901
  return e?.PJL_BUILD_TIMINGS_PROGRESS === "1" || e?.PJL_BUILD_TIMINGS_PROGRESS === "true";
1807
1902
  }
1808
1903
  //#endregion
1809
1904
  //#region src/lib/textes.ts
1810
- var Q = (e) => e?.replace(/\n/g, " ").replace(/ {2,}/g, " ").replace(/ \(\d+\)\.?$/, "").replace(/\.$/, ""), jt = (e) => {
1905
+ var Rt = (e) => e?.replace(/\n/g, " ").replace(/ {2,}/g, " ").replace(/ \(\d+\)\.?$/, "").replace(/\.$/, ""), zt = (e) => {
1811
1906
  let t = e.META.META_SPEC.META_TEXTE_VERSION.DATE_DEBUT;
1812
1907
  return t === void 0 || ["2222-02-22", "2999-01-01"].includes(t) ? e.META.META_SPEC.META_TEXTE_CHRONICLE.DATE_PUBLI : t;
1813
- }, Mt = (e) => {
1908
+ }, Bt = (e) => {
1814
1909
  let t = e.META.META_SPEC.META_TEXTE_CHRONICLE.DATE_TEXTE;
1815
1910
  if (!["2222-02-22", "2999-01-01"].includes(t)) return t;
1816
1911
  let n = e.META.META_SPEC.META_TEXTE_VERSION.DATE_DEBUT;
1817
1912
  if (n !== void 0 && !["2222-02-22", "2999-01-01"].includes(n)) return n;
1818
1913
  throw Error(`Missing date signature in text ${e.META.META_COMMUN.ID}`);
1819
- }, Nt = (e) => (t, n) => {
1914
+ }, Vt = (e) => (t, n) => {
1820
1915
  let r = e(t), i = e(n);
1821
1916
  if (r !== i) return r.localeCompare(i);
1822
1917
  let a = t.META.META_COMMUN, o = a.ORIGINE, s = n.META.META_COMMUN, c = s.ORIGINE;
@@ -1825,30 +1920,30 @@ var Q = (e) => e?.replace(/\n/g, " ").replace(/ {2,}/g, " ").replace(/ \(\d+\)\.
1825
1920
  if (c === "JORF") return 1;
1826
1921
  }
1827
1922
  throw Error(`TODO: Unable to sort texts ${a.ID} & ${s.ID} by date.`);
1828
- }, Pt = "current";
1829
- function Ft(e, t, n, r) {
1923
+ }, Ht = "current";
1924
+ function Ut(e, t, n, r) {
1830
1925
  n != null && ((e[t] ??= {})[n] ??= []).push(r);
1831
1926
  }
1832
- function It(e) {
1833
- return ut(e).output;
1927
+ function Wt(e) {
1928
+ return U(e).output;
1834
1929
  }
1835
- function Lt(e, t, n) {
1836
- let r = It(Q(t).replace(/[,()]/g, " ")).split(" ").map((e) => /^[IVX]+$/gi.test(e) ? d(e).toString() : e.toLowerCase().replace(/^no$/, "n°")), i = e;
1930
+ function Gt(e, t, n) {
1931
+ let r = Wt(Rt(t).replace(/[,()]/g, " ")).split(" ").map((e) => /^[IVX]+$/gi.test(e) ? d(e).toString() : e.toLowerCase().replace(/^no$/, "n°")), i = e;
1837
1932
  for (let e of r) i = i[e] ??= {};
1838
1933
  i.cid === void 0 ? i.cid = n : Array.isArray(i.cid) ? i.cid.push(n) : i.cid = [i.cid, n];
1839
1934
  }
1840
- async function Rt(e, t = {}) {
1841
- Bt(await Ht(e, t));
1935
+ async function Kt(e, t = {}) {
1936
+ Jt(await Xt(e, t));
1842
1937
  }
1843
- var zt = /* @__PURE__ */ new WeakMap();
1844
- function Bt(e) {
1845
- vt(e), zt.set(e, _t());
1938
+ var qt = /* @__PURE__ */ new WeakMap();
1939
+ function Jt(e) {
1940
+ gt(e), qt.set(e, ht());
1846
1941
  }
1847
- function Vt(e) {
1848
- return zt.get(e) === _t();
1942
+ function Yt(e) {
1943
+ return qt.get(e) === ht();
1849
1944
  }
1850
- async function Ht(e, { onProgress: t } = {}) {
1851
- let n = new Ot("legi.buildTextTitlesInfos"), r = {}, i = {}, a = {}, o = {}, s = {}, c = {}, l = {
1945
+ async function Xt(e, { onProgress: t } = {}) {
1946
+ let n = new Ft("legi.buildTextTitlesInfos"), r = {}, i = {}, a = {}, o = {}, s = {}, c = {}, l = {
1852
1947
  addOtherTitleWordsTreeMs: 0,
1853
1948
  addTitleRestWordsTreeMs: 0,
1854
1949
  cleanTitleMs: 0,
@@ -1879,7 +1974,7 @@ async function Ht(e, { onProgress: t } = {}) {
1879
1974
  count: n,
1880
1975
  phase: "parse:progress"
1881
1976
  }), await new Promise((e) => setTimeout(e, 0)));
1882
- let e = d("cleanTitleMs", () => Q(v));
1977
+ let e = d("cleanTitleMs", () => Rt(v));
1883
1978
  if ([
1884
1979
  "code",
1885
1980
  "décret",
@@ -1921,7 +2016,7 @@ async function Ht(e, { onProgress: t } = {}) {
1921
2016
  }
1922
2017
  }), u.otherTitleCount += y.size;
1923
2018
  for (let e of b) {
1924
- let t = d("parseTitleMs", () => St(new h(It(e))));
2019
+ let t = d("parseTitleMs", () => Ct(new h(Wt(e))));
1925
2020
  if (t === void 0 && g === "DECRET" && (u.fallbackDecretTitleCount++, t = {
1926
2021
  date: m ?? void 0,
1927
2022
  nature: g,
@@ -1930,16 +2025,16 @@ async function Ht(e, { onProgress: t } = {}) {
1930
2025
  type: "texte"
1931
2026
  }), t === void 0) throw Error(`Unparsable title of ${g} n° ${_ ?? ""} du ${m ?? ""} (${l}): ${e}`);
1932
2027
  if (u.parsedTitleCount++, d("indexNatureDateNumMs", () => {
1933
- Ft(s, g, t.date, l), Ft(c, g, t.num, l);
2028
+ Ut(s, g, t.date, l), Ut(c, g, t.num, l);
1934
2029
  }), t.titleRest !== void 0) {
1935
2030
  let { titleRest: e } = t;
1936
2031
  u.titleRestCount++, d("addTitleRestWordsTreeMs", () => {
1937
- Lt(i, e, l);
2032
+ Gt(i, e, l);
1938
2033
  });
1939
2034
  }
1940
2035
  }
1941
2036
  for (let e of y) d("addOtherTitleWordsTreeMs", () => {
1942
- Lt(r, e, l);
2037
+ Gt(r, e, l);
1943
2038
  });
1944
2039
  }
1945
2040
  t?.({
@@ -1951,8 +2046,8 @@ async function Ht(e, { onProgress: t } = {}) {
1951
2046
  textCidByOtherTitleWordsTree: $(r),
1952
2047
  textCidByTitleRestWordsTree: $(i),
1953
2048
  textInfosByCid: a,
1954
- textsCidsByNatureAndDate: Ut(s),
1955
- textsCidsByNatureAndNum: Ut(c)
2049
+ textsCidsByNatureAndDate: Zt(s),
2050
+ textsCidsByNatureAndNum: Zt(c)
1956
2051
  }));
1957
2052
  t?.({ phase: "compact:done" });
1958
2053
  for (let [e, t] of Object.entries(l)) n.add({
@@ -1964,7 +2059,7 @@ async function Ht(e, { onProgress: t } = {}) {
1964
2059
  ...u
1965
2060
  }), f;
1966
2061
  }
1967
- function Ut(e) {
2062
+ function Zt(e) {
1968
2063
  return Object.fromEntries(Object.entries(e).map(([e, t]) => [e, Object.fromEntries(Object.entries(t).map(([e, t]) => [e, t.length === 1 ? t[0] : t]))]));
1969
2064
  }
1970
2065
  function $(e) {
@@ -1982,8 +2077,113 @@ function $(e) {
1982
2077
  return t;
1983
2078
  }
1984
2079
  //#endregion
2080
+ //#region src/lib/legi/article_history.ts
2081
+ function Qt(e) {
2082
+ if (e.length === 0) return;
2083
+ let t = /* @__PURE__ */ new Map();
2084
+ for (let n of e) {
2085
+ let e = n.versions?.VERSION, r = Array.isArray(e) ? e : e == null ? [] : [e], i = new Set([n.id]);
2086
+ for (let e of r) {
2087
+ let t = e?.LIEN_ART?.["@id"];
2088
+ typeof t == "string" && i.add(t);
2089
+ }
2090
+ let a = [...i].sort().join("\0"), o = n.dateDebut ?? "0001-01-01", s = t.get(a);
2091
+ (s === void 0 || o > s.dateDebut) && t.set(a, {
2092
+ dateDebut: o,
2093
+ id: n.id
2094
+ });
2095
+ }
2096
+ if (t.size !== 1) return;
2097
+ let [{ id: n }] = [...t.values()];
2098
+ return { articleId: n };
2099
+ }
2100
+ //#endregion
2101
+ //#region src/lib/legi/publication_components.ts
2102
+ function $t(e, t) {
2103
+ if (e.length !== 2 || new Set(e).size !== 2 || e.some((e) => !/^JORFTEXT\d{12}$/.test(e)) || t.length !== 2 || new Set(t.map(({ cid: e }) => e)).size !== 2 || t.some(({ cid: t }) => !e.includes(t))) return;
2104
+ let n = t[0];
2105
+ if (![
2106
+ "LOI",
2107
+ "ORDONNANCE",
2108
+ "DECRET"
2109
+ ].includes(n.nature ?? "") || [
2110
+ "num",
2111
+ "dateTexte",
2112
+ "datePubli",
2113
+ "nor"
2114
+ ].some((e) => {
2115
+ let r = e;
2116
+ return !n[r] || t.some((e) => e[r] !== n[r]);
2117
+ }) || t.some((e) => e.nature !== n.nature)) return;
2118
+ let r = t.filter((e) => e.hasVisas && e.hasSignataires && e.children?.length && e.children.every(({ id: e, kind: t }) => t === "art" && /^JORFARTI\d{12}$/.test(e))), i = t.filter((e) => !e.hasVisas && !e.hasSignataires && e.children?.length === 1 && e.children[0].kind === "scta" && /^JORFSCTA\d{12}$/.test(e.children[0].id) && e.children[0].title?.trim() === "Annexe");
2119
+ if (!(r.length !== 1 || i.length !== 1 || r[0].cid === i[0].cid)) return {
2120
+ candidates: t,
2121
+ bodyCid: r[0].cid,
2122
+ annexCid: i[0].cid
2123
+ };
2124
+ }
2125
+ //#endregion
2126
+ //#region src/lib/legi/article_abrogation.ts
2127
+ function en({ candidates: e, date: t, missingContext: n, num: r, rows: i, textId: a }) {
2128
+ if (i.length === 0 || i.length > 128 || e.length !== i.length || n !== 0) return;
2129
+ let o = new Map(i.map((e) => [e.id, e])), s = (e) => e !== null && /^\d{4}-\d{2}-\d{2}$/.test(e);
2130
+ if (o.size !== i.length || new Set(e.map(({ id: e }) => e)).size !== i.length) return;
2131
+ for (let e of i) {
2132
+ if (e.textId !== a || e.num !== r || !s(e.dateDebut) || !s(e.dateFin) || e.versions?.length !== i.length) return;
2133
+ let t = /* @__PURE__ */ new Set();
2134
+ for (let n of e.versions) {
2135
+ let e = o.get(n.id);
2136
+ if (e === void 0 || t.has(n.id) || !s(n.dateDebut) || !s(n.dateFin) || n.dateDebut !== e.dateDebut || n.dateFin !== e.dateFin || n.etat !== void 0 && n.etat !== e.etat) return;
2137
+ t.add(n.id);
2138
+ }
2139
+ if (t.size !== i.length) return;
2140
+ }
2141
+ for (let t of e) {
2142
+ let e = o.get(t.id);
2143
+ if (e === void 0 || t.textId !== a || t.num !== r || t.dateDebut !== e.dateDebut || t.dateFin !== e.dateFin) return;
2144
+ }
2145
+ let c = i.filter(({ dateDebut: e, dateFin: t }) => e < t);
2146
+ if (c.length === 0 || c.some(({ dateFin: e }) => e > t)) return;
2147
+ let l = c.map(({ dateFin: e }) => e).sort().at(-1), u = c.filter(({ dateFin: e }) => e === l);
2148
+ if (!(u.length !== 1 || u[0].etat !== "ABROGE")) return {
2149
+ candidates: e,
2150
+ terminalId: u[0].id
2151
+ };
2152
+ }
2153
+ //#endregion
2154
+ //#region src/lib/legi/article_structure.ts
2155
+ function tn(e, t) {
2156
+ if (!(e === void 0 || e.length < 2 || e.some(({ dateDebut: e, dateFin: t }) => !/^\d{4}-\d{2}-\d{2}$/.test(e ?? "") || !/^\d{4}-\d{2}-\d{2}$/.test(t ?? "") || e >= t))) return e.every(({ dateDebut: e, dateFin: n }) => e <= t && t < n) ? "valable" : "invalide";
2157
+ }
2158
+ function nn(e, t, n, r, i) {
2159
+ let a = e.filter(({ dateDebut: e, dateFin: t }) => e < t && e <= n && n < t);
2160
+ if (a.length < 2 || e.length > 128 || t.size !== a.length || new Set(e.map(({ id: e }) => e)).size !== e.length || e.some(({ id: e, textId: t, num: n }) => !/^LEGIARTI\d{12}$/.test(e) || t !== r || n !== i)) return;
2161
+ let o = {};
2162
+ for (let { id: e } of a) {
2163
+ let r = tn(t.get(e), n);
2164
+ if (r === void 0) return;
2165
+ o[e] = r;
2166
+ }
2167
+ if (Object.values(o).filter((e) => e === "valable").length === 1) return {
2168
+ candidates: e,
2169
+ structures: o
2170
+ };
2171
+ }
2172
+ //#endregion
1985
2173
  //#region src/lib/legi/resolver.ts
1986
- var Wt = class {
2174
+ var rn = class {
2175
+ getVerifiedPublicationComponents(e) {
2176
+ return Promise.resolve(void 0);
2177
+ }
2178
+ getLawArticleType(e) {
2179
+ return Promise.resolve(void 0);
2180
+ }
2181
+ getVerifiedArticleAbrogation(e) {
2182
+ return Promise.resolve(void 0);
2183
+ }
2184
+ getVerifiedArticleStructure(e) {
2185
+ return Promise.resolve(void 0);
2186
+ }
1987
2187
  getArticleHistoryInfo(e) {
1988
2188
  return Promise.resolve(void 0);
1989
2189
  }
@@ -1995,4 +2195,4 @@ var Wt = class {
1995
2195
  }
1996
2196
  };
1997
2197
  //#endregion
1998
- export { Fe as $, lt as A, g as At, nt as B, w as Bt, Z as C, ie as Ct, ct as D, ce as Dt, st as E, E as Et, Ze as F, x as Ft, Ue as G, d as Gt, N as H, c as Ht, Je as I, ee as It, qe as J, Ge as K, Qe as L, S as Lt, H as M, v as Mt, U as N, y as Nt, B as O, le as Ot, R as P, b as Pt, Ve as Q, tt as R, te as Rt, Y as S, T as St, ot as T, oe as Tt, P as U, l as Ut, rt as V, m as Vt, F as W, u as Wt, He as X, I as Y, Be as Z, xt as _, pe as _t, Vt as a, M as at, Dt as b, Ce as bt, jt as c, k as ct, Ot as d, ye as dt, Ie as et, St as f, Ee as ft, wt as g, fe as gt, q as h, O as ht, Bt as i, j as it, ut as j, _ as jt, V as k, h as kt, Mt as l, be as lt, K as m, ue as mt, Rt as n, ze as nt, Pt as o, je as ot, Tt as p, Te as pt, Ke as q, Ht as r, Re as rt, Q as s, ve as st, Wt as t, Le as tt, Nt as u, de as ut, J as v, me as vt, at as w, ae as wt, X as x, re as xt, yt as y, xe as yt, et as z, C as zt };
2198
+ export { Ue as $, u as $t, Z as A, re as At, W as B, _ as Bt, X as C, le as Ct, vt as D, pe as Dt, St as E, fe as Et, ct as F, E as Ft, Qe as G, ee as Gt, z as H, y as Ht, V as I, se as It, nt as J, C as Jt, tt as K, S as Kt, H as L, ce as Lt, at as M, ie as Mt, ot as N, ae as Nt, kt as O, xe as Ot, st as P, oe as Pt, F as Q, l as Qt, lt as R, h as Rt, Y as S, Te as St, xt as T, de as Tt, Ze as U, b as Ut, G as V, v as Vt, Je as W, x as Wt, N as X, m as Xt, rt as Y, w as Yt, P as Z, c as Zt, Mt as _, _e as _t, Qt as a, He as at, Ct as b, ye as bt, Jt as c, Fe as ct, Rt as d, ze as dt, d as en, I as et, zt as f, Re as ft, _t as g, ve as gt, Ft as h, je as ht, $t as i, L as it, Ot as j, T as jt, Q as k, Ce as kt, Yt as l, Ie as lt, Vt as m, M as mt, nn as n, Ge as nt, Kt as o, Be as ot, Bt as p, j as pt, et as q, te as qt, en as r, Ke as rt, Xt as s, Ve as st, rn as t, We as tt, Ht as u, Le as ut, Nt as v, be as vt, Tt as w, k as wt, Et as x, Ee as xt, Pt as y, ue as yt, U as z, g as zt };