@tricoteuses/tisseuse 0.21.2 → 0.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/README.md +18 -0
  2. package/dist/{html-DWNF_0Ek.js → html-BTaoaqX5.js} +6688 -5737
  3. package/dist/index.js +72 -72
  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/parsed_bills.d.ts +19 -0
  26. package/dist/{src/lib → lib}/text_parsers/ast.d.ts +13 -3
  27. package/dist/lib/text_parsers/historical_versions.d.ts +18 -0
  28. package/dist/{src/lib → lib}/text_parsers/parsers.d.ts +2 -0
  29. package/dist/{src/lib → lib}/text_parsers/repeated_actions.d.ts +1 -0
  30. package/dist/{src/lib → lib}/text_parsers/texts.d.ts +12 -0
  31. package/dist/link-decision-metadata.js +32 -0
  32. package/dist/{resolver-BBrU9oGB.js → resolver-GT7457lQ.js} +316 -127
  33. package/dist/scripts/enrich_assemblee_documents.d.ts +1 -0
  34. package/dist/scripts/enrich_senat_documents.d.ts +1 -0
  35. package/dist/scripts/html_document_to_text.d.ts +1 -0
  36. package/dist/scripts/index_postgres_assemblee_amendments.d.ts +1 -0
  37. package/dist/scripts/index_postgres_assemblee_texts.d.ts +1 -0
  38. package/dist/scripts/index_postgres_judilibre.d.ts +1 -0
  39. package/dist/scripts/index_postgres_legifrance_articles.d.ts +1 -0
  40. package/dist/scripts/index_postgres_legifrance_jurisprudence.d.ts +1 -0
  41. package/dist/scripts/index_postgres_senat_amendments.d.ts +1 -0
  42. package/dist/scripts/index_postgres_senat_texts.d.ts +1 -0
  43. package/dist/scripts/parse_akoma_ntoso_bill_raw.d.ts +1 -0
  44. package/dist/scripts/parse_assemblee_bill_raw.d.ts +1 -0
  45. package/dist/scripts/profile_assemblee_document_parsing.d.ts +1 -0
  46. package/dist/scripts/profile_canutes_bill.d.ts +1 -0
  47. package/dist/scripts/replay_linker_scope.d.ts +1 -0
  48. package/dist/scripts/shared/assemblee_legislature.test.d.ts +1 -0
  49. package/dist/scripts/shared/checkpoint_cli_options.test.d.ts +1 -0
  50. package/dist/scripts/simplified_html_bill_to_table_of_contents.d.ts +1 -0
  51. package/dist/scripts/simplify_word_html.d.ts +1 -0
  52. package/dist/scripts/sync_postgres_assemblee_document_content.d.ts +1 -0
  53. package/dist/scripts/sync_postgres_senat_document_content.d.ts +1 -0
  54. package/dist/scripts/test_canutes_titles_cache.d.ts +1 -0
  55. package/dist/scripts/warm_canutes_text_titles_cache.d.ts +1 -0
  56. package/dist/server-f-legi.js +200 -94
  57. package/dist/server.js +1080 -959
  58. package/package.json +9 -4
  59. package/dist/{src/lib → lib}/alineas/alineas_numbers.d.ts +0 -0
  60. package/dist/{src/lib → lib}/article_temporal_status.test.d.ts +0 -0
  61. package/dist/{src/lib → lib}/articles.d.ts +0 -0
  62. package/dist/{src/lib → lib}/articles.test.d.ts +0 -0
  63. package/dist/{src/lib → lib}/assemblee_document_date.d.ts +0 -0
  64. package/dist/{src/lib → lib}/assemblee_document_date.test.d.ts +0 -0
  65. package/dist/{src/lib → lib}/asserts.d.ts +0 -0
  66. package/dist/{src/lib → lib}/cache.d.ts +0 -0
  67. package/dist/{src/lib → lib}/dates.d.ts +0 -0
  68. package/dist/{src/lib → lib}/extractors/action_directives.d.ts +0 -0
  69. package/dist/{src/lib → lib}/extractors/action_directives.test.d.ts +0 -0
  70. package/dist/{src/lib → lib}/extractors/action_directives_cpu.test.d.ts +0 -0
  71. package/dist/{src/lib → lib}/extractors/article_action_effects.d.ts +0 -0
  72. package/dist/{src/lib → lib}/extractors/article_action_effects.test.d.ts +0 -0
  73. package/dist/{src/lib → lib}/extractors/article_action_effects_long.test.d.ts +0 -0
  74. package/dist/{src/lib → lib}/extractors/article_action_targets.d.ts +0 -0
  75. package/dist/{src/lib → lib}/extractors/article_action_targets.test.d.ts +0 -0
  76. package/dist/{src/lib → lib}/extractors/article_portions.test.d.ts +0 -0
  77. package/dist/{src/lib → lib}/extractors/definitions.d.ts +0 -0
  78. package/dist/{src/lib/extractors/links.citation_scope.test.d.ts → lib/extractors/link_decisions.test.d.ts} +0 -0
  79. package/dist/{src/lib/extractors/links.code_titles.test.d.ts → lib/extractors/links.citation_scope.test.d.ts} +0 -0
  80. package/dist/{src/lib/extractors/links.doctrinal.test.d.ts → lib/extractors/links.code_titles.test.d.ts} +0 -0
  81. package/dist/{src/lib/extractors/links.european.test.d.ts → lib/extractors/links.doctrinal.test.d.ts} +0 -0
  82. package/dist/{src/lib/extractors/links.test.d.ts → lib/extractors/links.european.test.d.ts} +0 -0
  83. package/dist/{src/lib/extractors/portion_references.test.d.ts → lib/extractors/links.test.d.ts} +0 -0
  84. package/dist/{src/lib → lib}/extractors/portion_references.d.ts +0 -0
  85. package/dist/{src/lib/extractors/portion_references_cpu.test.d.ts → lib/extractors/portion_references.test.d.ts} +0 -0
  86. package/dist/{src/lib/extractors/qualified_versions.test.d.ts → lib/extractors/portion_references_cpu.test.d.ts} +0 -0
  87. package/dist/{src/lib → lib}/extractors/qualified_versions.d.ts +0 -0
  88. package/dist/{src/lib/extractors/references.test.d.ts → lib/extractors/qualified_versions.test.d.ts} +0 -0
  89. package/dist/{src/lib → lib}/extractors/quoted_text.d.ts +0 -0
  90. package/dist/{src/lib → lib}/extractors/references.d.ts +0 -0
  91. package/dist/{src/lib/text_parsers → lib/extractors}/references.test.d.ts +0 -0
  92. package/dist/{src/lib → lib}/extractors/table_of_contents.d.ts +0 -0
  93. package/dist/{src/lib → lib}/extractors/table_of_contents.test.d.ts +0 -0
  94. package/dist/{src/lib → lib}/f_legi/resolver.test.d.ts +0 -0
  95. package/dist/{src/lib → lib}/index.d.ts +0 -0
  96. package/dist/{src/lib → lib}/json.d.ts +0 -0
  97. package/dist/{src/lib/legi/canutes_article_preload.test.d.ts → lib/legi/article_abrogation.test.d.ts} +0 -0
  98. package/dist/{src/lib/legi/canutes_candidates.test.d.ts → lib/legi/article_history.test.d.ts} +0 -0
  99. package/dist/{src/lib/legi/canutes_resolver.test.d.ts → lib/legi/canutes_article_preload.test.d.ts} +0 -0
  100. package/dist/{src/lib/legi/canutes_resolver_cache.test.d.ts → lib/legi/canutes_candidates.test.d.ts} +0 -0
  101. package/dist/{src/lib/legi/canutes_resolver_europe.test.d.ts → lib/legi/canutes_resolver.test.d.ts} +0 -0
  102. package/dist/{src/lib/legi/canutes_root_cid_index.integration.test.d.ts → lib/legi/canutes_resolver_cache.test.d.ts} +0 -0
  103. package/dist/{src/lib/legi/canutes_section_roots.test.d.ts → lib/legi/canutes_resolver_europe.test.d.ts} +0 -0
  104. 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
  105. package/dist/{src/lib/legi/resolver.test.d.ts → lib/legi/canutes_section_roots.test.d.ts} +0 -0
  106. package/dist/{src/lib → lib}/legi/canutes_sql.d.ts +0 -0
  107. package/dist/{src/lib → lib}/legi/canutes_text_titles_cache.d.ts +0 -0
  108. package/dist/{src/lib/linkers/cited-article.test.d.ts → lib/legi/canutes_text_titles_cache.integration.test.d.ts} +0 -0
  109. package/dist/{src/lib → lib}/legi/canutes_titles_metrics.d.ts +0 -0
  110. package/dist/{src/lib/linkers/reference-mode.test.d.ts → lib/legi/modifying_act_article_real.test.d.ts} +0 -0
  111. package/dist/{src/lib/server/administrative_acts_autocompletion.test.d.ts → lib/legi/publication_components.test.d.ts} +0 -0
  112. package/dist/{src/lib/server/akn_rendering.test.d.ts → lib/legi/resolver.test.d.ts} +0 -0
  113. package/dist/{src/lib → lib}/legi/text_titles_infos.d.ts +0 -0
  114. package/dist/{src/lib/server/ameli_autocompletion.test.d.ts → lib/linkers/ambiguous_publication.test.d.ts} +0 -0
  115. package/dist/{src/lib/server/assemblee_amendment_search.test.d.ts → lib/linkers/cited-article.test.d.ts} +0 -0
  116. package/dist/{src/lib/server/assemblee_document_search.test.d.ts → lib/linkers/enumeration_scope.test.d.ts} +0 -0
  117. package/dist/{src/lib/server/atomic_files.test.d.ts → lib/linkers/html_decision_capture.test.d.ts} +0 -0
  118. package/dist/{src/lib/server/bill_action_resolver_invariance.test.d.ts → lib/linkers/html_named_text_article.test.d.ts} +0 -0
  119. package/dist/{src/lib/server/bill_citation_anaphora.test.d.ts → lib/linkers/html_publication_93_859_real.test.d.ts} +0 -0
  120. package/dist/{src/lib/server/bill_comparison.test.d.ts → lib/linkers/html_structure_real.test.d.ts} +0 -0
  121. package/dist/{src/lib/server/bill_target_scope.test.d.ts → lib/linkers/html_undecidable_real.test.d.ts} +0 -0
  122. package/dist/{src/lib/server/bofip_autocompletion.test.d.ts → lib/linkers/link_decision_html.test.d.ts} +0 -0
  123. package/dist/{src/lib/server/boss_autocompletion.test.d.ts → lib/linkers/named_text_article.test.d.ts} +0 -0
  124. package/dist/{src/lib/server/canutes_only_compatibility.test.d.ts → lib/linkers/quoted_section_scope.test.d.ts} +0 -0
  125. package/dist/{src/lib/server/document_git_checkpoint.test.d.ts → lib/linkers/reference-mode.test.d.ts} +0 -0
  126. package/dist/{src/lib → lib}/links.d.ts +6 -6
  127. /package/dist/{src/lib/server/enriched_document_checkpoint.test.d.ts → lib/links.test.d.ts} +0 -0
  128. /package/dist/{src/lib → lib}/loaders/assemblee.d.ts +0 -0
  129. /package/dist/{src/lib → lib}/loaders/legifrance.d.ts +0 -0
  130. /package/dist/{src/lib → lib}/markdown.d.ts +0 -0
  131. /package/dist/{src/lib → lib}/server/administrative_acts_autocompletion.d.ts +0 -0
  132. /package/dist/{src/lib/server/europe_autocompletion.test.d.ts → lib/server/administrative_acts_autocompletion.test.d.ts} +0 -0
  133. /package/dist/{src/lib/server/flegi_profiling.test.d.ts → lib/server/akn_rendering.test.d.ts} +0 -0
  134. /package/dist/{src/lib → lib}/server/alineas/alineas_images_utils.d.ts +0 -0
  135. /package/dist/{src/lib → lib}/server/ameli_autocompletion.d.ts +0 -0
  136. /package/dist/{src/lib/server/html_simplifier.test.d.ts → lib/server/ameli_autocompletion.test.d.ts} +0 -0
  137. /package/dist/{src/lib → lib}/server/assemblee_amendment_search.d.ts +0 -0
  138. /package/dist/{src/lib/server/international_treaties_autocompletion.test.d.ts → lib/server/assemblee_amendment_search.test.d.ts} +0 -0
  139. /package/dist/{src/lib → lib}/server/assemblee_document_search.d.ts +0 -0
  140. /package/dist/{src/lib/server/judilibre_search.test.d.ts → lib/server/assemblee_document_search.test.d.ts} +0 -0
  141. /package/dist/{src/lib → lib}/server/atomic_files.d.ts +0 -0
  142. /package/dist/{src/lib/server/jurisprudence_citations.test.d.ts → lib/server/atomic_files.test.d.ts} +0 -0
  143. /package/dist/{src/lib → lib}/server/auditors/config.d.ts +0 -0
  144. /package/dist/{src/lib/server/jurisprudence_jade.test.d.ts → lib/server/bill_action_resolver_invariance.test.d.ts} +0 -0
  145. /package/dist/{src/lib → lib}/server/bill_action_target_fixtures.d.ts +0 -0
  146. /package/dist/{src/lib/server/jurisprudence_store.integration.test.d.ts → lib/server/bill_citation_anaphora.test.d.ts} +0 -0
  147. /package/dist/{src/lib → lib}/server/bill_comparison.d.ts +0 -0
  148. /package/dist/{src/lib/server/jurisprudence_store_closed.test.d.ts → lib/server/bill_comparison.test.d.ts} +0 -0
  149. /package/dist/{src/lib/server/legifrance_article_search.test.d.ts → lib/server/bill_target_scope.test.d.ts} +0 -0
  150. /package/dist/{src/lib → lib}/server/bofip_autocompletion.d.ts +0 -0
  151. /package/dist/{src/lib/server/legifrance_jurisprudence_search.test.d.ts → lib/server/bofip_autocompletion.test.d.ts} +0 -0
  152. /package/dist/{src/lib → lib}/server/boss_autocompletion.d.ts +0 -0
  153. /package/dist/{src/lib/server/local_acts_autocompletion.test.d.ts → lib/server/boss_autocompletion.test.d.ts} +0 -0
  154. /package/dist/{src/lib → lib}/server/canutes_legacy_candidates.d.ts +0 -0
  155. /package/dist/{src/lib/server/masquage-typesense.test.d.ts → lib/server/canutes_only_compatibility.test.d.ts} +0 -0
  156. /package/dist/{src/lib → lib}/server/config.d.ts +0 -0
  157. /package/dist/{src/lib → lib}/server/databases/canutes_root_cid_index.d.ts +0 -0
  158. /package/dist/{src/lib → lib}/server/databases/canutes_text_titles_cache.d.ts +0 -0
  159. /package/dist/{src/lib → lib}/server/databases/index.d.ts +0 -0
  160. /package/dist/{src/lib → lib}/server/document_git_checkpoint.d.ts +0 -0
  161. /package/dist/{src/lib/server/parsed_amendments.test.d.ts → lib/server/document_git_checkpoint.test.d.ts} +0 -0
  162. /package/dist/{src/lib → lib}/server/enriched_document_checkpoint.d.ts +0 -0
  163. /package/dist/{src/lib/server/parsed_bills.test.d.ts → lib/server/enriched_document_checkpoint.test.d.ts} +0 -0
  164. /package/dist/{src/lib → lib}/server/europe_autocompletion.d.ts +0 -0
  165. /package/dist/{src/lib/server/raa_autocompletion.test.d.ts → lib/server/europe_autocompletion.test.d.ts} +0 -0
  166. /package/dist/{src/lib → lib}/server/f_legi/index.d.ts +0 -0
  167. /package/dist/{src/lib → lib}/server/flegi_profiling.d.ts +0 -0
  168. /package/dist/{src/lib/server/senat_amendment_search.test.d.ts → lib/server/flegi_profiling.test.d.ts} +0 -0
  169. /package/dist/{src/lib → lib}/server/html_simplifier.d.ts +0 -0
  170. /package/dist/{src/lib/server/senat_document_search.test.d.ts → lib/server/html_simplifier.test.d.ts} +0 -0
  171. /package/dist/{src/lib → lib}/server/index.d.ts +0 -0
  172. /package/dist/{src/lib → lib}/server/international_treaties_autocompletion.d.ts +0 -0
  173. /package/dist/{src/lib/server/shared_legal_text_sections.test.d.ts → lib/server/international_treaties_autocompletion.test.d.ts} +0 -0
  174. /package/dist/{src/lib → lib}/server/judilibre_search.d.ts +0 -0
  175. /package/dist/{src/lib/server/sql_profiling.test.d.ts → lib/server/judilibre_search.test.d.ts} +0 -0
  176. /package/dist/{src/lib → lib}/server/jurisprudence_citations.d.ts +0 -0
  177. /package/dist/{src/lib/server/sync_administrative_act_titles.test.d.ts → lib/server/jurisprudence_citations.test.d.ts} +0 -0
  178. /package/dist/{src/lib → lib}/server/jurisprudence_consultation.d.ts +0 -0
  179. /package/dist/{src/lib → lib}/server/jurisprudence_jade.d.ts +0 -0
  180. /package/dist/{src/lib/server/sync_assemblee_legal_texts.test.d.ts → lib/server/jurisprudence_jade.test.d.ts} +0 -0
  181. /package/dist/{src/lib → lib}/server/jurisprudence_store.d.ts +0 -0
  182. /package/dist/{src/lib/server/sync_local_act_titles.test.d.ts → lib/server/jurisprudence_store.integration.test.d.ts} +0 -0
  183. /package/dist/{src/lib/server/typesense_blue_green.test.d.ts → lib/server/jurisprudence_store_closed.test.d.ts} +0 -0
  184. /package/dist/{src/lib → lib}/server/legi/resolvers.d.ts +0 -0
  185. /package/dist/{src/lib → lib}/server/legifrance_article_search.d.ts +0 -0
  186. /package/dist/{src/lib/server/typesense_index_lock.test.d.ts → lib/server/legifrance_article_search.test.d.ts} +0 -0
  187. /package/dist/{src/lib → lib}/server/legifrance_jurisprudence_search.d.ts +0 -0
  188. /package/dist/{src/lib/text_parsers/action_citation_patterns.test.d.ts → lib/server/legifrance_jurisprudence_search.test.d.ts} +0 -0
  189. /package/dist/{src/lib → lib}/server/linkers/html.d.ts +0 -0
  190. /package/dist/{src/lib → lib}/server/local_acts_autocompletion.d.ts +0 -0
  191. /package/dist/{src/lib/text_parsers/action_directives.test.d.ts → lib/server/local_acts_autocompletion.test.d.ts} +0 -0
  192. /package/dist/{src/lib/text_parsers/action_occurrences.test.d.ts → lib/server/masquage-typesense.test.d.ts} +0 -0
  193. /package/dist/{src/lib → lib}/server/masquage_typesense.d.ts +0 -0
  194. /package/dist/{src/lib/text_parsers/action_position_cues.test.d.ts → lib/server/named_text_article_decisions.test.d.ts} +0 -0
  195. /package/dist/{src/lib → lib}/server/parsed_amendments.d.ts +0 -0
  196. /package/dist/{src/lib/text_parsers/action_words.test.d.ts → lib/server/parsed_amendments.test.d.ts} +0 -0
  197. /package/dist/{src/lib/text_parsers/actions.test.d.ts → lib/server/parsed_bill_abrogation.test.d.ts} +0 -0
  198. /package/dist/{src/lib/text_parsers/articles.test.d.ts → lib/server/parsed_bill_future_consultation.test.d.ts} +0 -0
  199. /package/dist/{src/lib/text_parsers/citations.test.d.ts → lib/server/parsed_bill_link_decisions.test.d.ts} +0 -0
  200. /package/dist/{src/lib/text_parsers/dates.test.d.ts → lib/server/parsed_bills.test.d.ts} +0 -0
  201. /package/dist/{src/lib → lib}/server/raa_autocompletion.d.ts +0 -0
  202. /package/dist/{src/lib/text_parsers/divisions.test.d.ts → lib/server/raa_autocompletion.test.d.ts} +0 -0
  203. /package/dist/{src/lib → lib}/server/senat_amendment_search.d.ts +0 -0
  204. /package/dist/{src/lib/text_parsers/doctrinal_references.test.d.ts → lib/server/senat_amendment_search.test.d.ts} +0 -0
  205. /package/dist/{src/lib → lib}/server/senat_document_search.d.ts +0 -0
  206. /package/dist/{src/lib/text_parsers/numbers.test.d.ts → lib/server/senat_document_search.test.d.ts} +0 -0
  207. /package/dist/{src/lib → lib}/server/senat_document_sources.d.ts +0 -0
  208. /package/dist/{src/lib → lib}/server/shared_legal_text_sections.d.ts +0 -0
  209. /package/dist/{src/lib/text_parsers/parsers.test.d.ts → lib/server/shared_legal_text_sections.test.d.ts} +0 -0
  210. /package/dist/{src/lib → lib}/server/sql_profiling.d.ts +0 -0
  211. /package/dist/{src/lib/text_parsers/portions.test.d.ts → lib/server/sql_profiling.test.d.ts} +0 -0
  212. /package/dist/{src/lib → lib}/server/sync_administrative_act_titles.d.ts +0 -0
  213. /package/dist/{src/lib/text_parsers/prepositions.test.d.ts → lib/server/sync_administrative_act_titles.test.d.ts} +0 -0
  214. /package/dist/{src/lib → lib}/server/sync_ameli_titles.d.ts +0 -0
  215. /package/dist/{src/lib → lib}/server/sync_assemblee_legal_texts.d.ts +0 -0
  216. /package/dist/{src/lib/text_parsers/relative_locations.test.d.ts → lib/server/sync_assemblee_legal_texts.test.d.ts} +0 -0
  217. /package/dist/{src/lib → lib}/server/sync_boss_titles.d.ts +0 -0
  218. /package/dist/{src/lib → lib}/server/sync_europe_titles.d.ts +0 -0
  219. /package/dist/{src/lib → lib}/server/sync_international_treaty_titles.d.ts +0 -0
  220. /package/dist/{src/lib → lib}/server/sync_local_act_titles.d.ts +0 -0
  221. /package/dist/{src/lib/text_parsers/repeated_actions.test.d.ts → lib/server/sync_local_act_titles.test.d.ts} +0 -0
  222. /package/dist/{src/lib → lib}/server/sync_raa_titles.d.ts +0 -0
  223. /package/dist/{src/lib → lib}/server/tables_of_contents.d.ts +0 -0
  224. /package/dist/{src/lib → lib}/server/text_parsers/transformers.d.ts +0 -0
  225. /package/dist/{src/lib → lib}/server/typesense_blue_green.d.ts +0 -0
  226. /package/dist/{src/lib/text_parsers/search_queries.test.d.ts → lib/server/typesense_blue_green.test.d.ts} +0 -0
  227. /package/dist/{src/lib → lib}/server/typesense_index_lock.d.ts +0 -0
  228. /package/dist/{src/lib/text_parsers/simplifiers.test.d.ts → lib/server/typesense_index_lock.test.d.ts} +0 -0
  229. /package/dist/{src/lib → lib}/test/text_titles_infos.d.ts +0 -0
  230. /package/dist/{src/lib → lib}/text_parsers/action_citation_patterns.d.ts +0 -0
  231. /package/dist/{src/lib/text_parsers/texts.test.d.ts → lib/text_parsers/action_citation_patterns.test.d.ts} +0 -0
  232. /package/dist/{src/lib → lib}/text_parsers/action_directives.d.ts +0 -0
  233. /package/dist/{src/lib/text_parsers/typography.test.d.ts → lib/text_parsers/action_directives.test.d.ts} +0 -0
  234. /package/dist/{src/lib → lib}/text_parsers/action_occurrences.d.ts +0 -0
  235. /package/dist/{src/scripts/add_links_to_assemblee_parsed_documents.d.ts → lib/text_parsers/action_occurrences.test.d.ts} +0 -0
  236. /package/dist/{src/lib → lib}/text_parsers/action_position_cues.d.ts +0 -0
  237. /package/dist/{src/scripts/add_links_to_html_document.d.ts → lib/text_parsers/action_position_cues.test.d.ts} +0 -0
  238. /package/dist/{src/lib → lib}/text_parsers/action_target_scopes.d.ts +0 -0
  239. /package/dist/{src/lib → lib}/text_parsers/action_words.d.ts +0 -0
  240. /package/dist/{src/scripts/add_links_to_legifrance.d.ts → lib/text_parsers/action_words.test.d.ts} +0 -0
  241. /package/dist/{src/lib → lib}/text_parsers/actions.d.ts +0 -0
  242. /package/dist/{src/scripts/add_links_to_senat_comptes_rendus.d.ts → lib/text_parsers/actions.test.d.ts} +0 -0
  243. /package/dist/{src/lib → lib}/text_parsers/amendment_action_directives.d.ts +0 -0
  244. /package/dist/{src/lib → lib}/text_parsers/articles.d.ts +0 -0
  245. /package/dist/{src/scripts/add_links_to_senat_parsed_documents.d.ts → lib/text_parsers/articles.test.d.ts} +0 -0
  246. /package/dist/{src/lib → lib}/text_parsers/citations.d.ts +0 -0
  247. /package/dist/{src/scripts/alimenter_jurisprudence_pilote.d.ts → lib/text_parsers/citations.test.d.ts} +0 -0
  248. /package/dist/{src/scripts/associate_jorf_textes_with_assemblee_commissions.d.ts → lib/text_parsers/code_annexes.test.d.ts} +0 -0
  249. /package/dist/{src/lib → lib}/text_parsers/dates.d.ts +0 -0
  250. /package/dist/{src/scripts/associate_jorf_textes_with_dossiers_legislatifs_assemblee.d.ts → lib/text_parsers/dates.test.d.ts} +0 -0
  251. /package/dist/{src/lib → lib}/text_parsers/divisions.d.ts +0 -0
  252. /package/dist/{src/scripts/compare_legi_bills.d.ts → lib/text_parsers/divisions.test.d.ts} +0 -0
  253. /package/dist/{src/lib → lib}/text_parsers/doctrinal_references.d.ts +0 -0
  254. /package/dist/{src/scripts/configure_postgres_assemblee_document_triggers.d.ts → lib/text_parsers/doctrinal_references.test.d.ts} +0 -0
  255. /package/dist/{src/lib → lib}/text_parsers/fragments.d.ts +0 -0
  256. /package/dist/{src/lib → lib}/text_parsers/helpers.d.ts +0 -0
  257. /package/dist/{src/scripts/configure_postgres_legi_resolver.d.ts → lib/text_parsers/historical_versions.test.d.ts} +0 -0
  258. /package/dist/{src/lib → lib}/text_parsers/legal_text_aliases.d.ts +0 -0
  259. /package/dist/{src/lib → lib}/text_parsers/numbers.d.ts +0 -0
  260. /package/dist/{src/scripts/configure_postgres_root_cid_index.d.ts → lib/text_parsers/numbers.test.d.ts} +0 -0
  261. /package/dist/{src/scripts/configure_postgres_senat_document_triggers.d.ts → lib/text_parsers/parsers.test.d.ts} +0 -0
  262. /package/dist/{src/lib → lib}/text_parsers/portions.d.ts +0 -0
  263. /package/dist/{src/scripts/enrich_assemblee_documents.d.ts → lib/text_parsers/portions.test.d.ts} +0 -0
  264. /package/dist/{src/lib → lib}/text_parsers/prepositions.d.ts +0 -0
  265. /package/dist/{src/scripts/enrich_senat_documents.d.ts → lib/text_parsers/prepositions.test.d.ts} +0 -0
  266. /package/dist/{src/lib → lib}/text_parsers/qualified_versions.d.ts +0 -0
  267. /package/dist/{src/lib → lib}/text_parsers/references.d.ts +0 -0
  268. /package/dist/{src/scripts/html_document_to_text.d.ts → lib/text_parsers/references.test.d.ts} +0 -0
  269. /package/dist/{src/lib → lib}/text_parsers/relative_locations.d.ts +0 -0
  270. /package/dist/{src/scripts/index_postgres_assemblee_amendments.d.ts → lib/text_parsers/relative_locations.test.d.ts} +0 -0
  271. /package/dist/{src/scripts/index_postgres_assemblee_texts.d.ts → lib/text_parsers/repeated_actions.test.d.ts} +0 -0
  272. /package/dist/{src/lib → lib}/text_parsers/search_queries.d.ts +0 -0
  273. /package/dist/{src/scripts/index_postgres_judilibre.d.ts → lib/text_parsers/search_queries.test.d.ts} +0 -0
  274. /package/dist/{src/lib → lib}/text_parsers/separators.d.ts +0 -0
  275. /package/dist/{src/lib → lib}/text_parsers/simplifiers.d.ts +0 -0
  276. /package/dist/{src/scripts/index_postgres_legifrance_articles.d.ts → lib/text_parsers/simplifiers.test.d.ts} +0 -0
  277. /package/dist/{src/lib → lib}/text_parsers/table_row_targets.d.ts +0 -0
  278. /package/dist/{src/lib → lib}/text_parsers/table_unit_notes.d.ts +0 -0
  279. /package/dist/{src/scripts/index_postgres_legifrance_jurisprudence.d.ts → lib/text_parsers/texts.test.d.ts} +0 -0
  280. /package/dist/{src/lib → lib}/text_parsers/transformers.d.ts +0 -0
  281. /package/dist/{src/lib → lib}/text_parsers/typography.d.ts +0 -0
  282. /package/dist/{src/scripts/index_postgres_senat_amendments.d.ts → lib/text_parsers/typography.test.d.ts} +0 -0
  283. /package/dist/{src/lib → lib}/textes.d.ts +0 -0
  284. /package/dist/{src/lib → lib}/timings.d.ts +0 -0
  285. /package/dist/{src/scripts/index_postgres_senat_texts.d.ts → scripts/add_links_to_assemblee_parsed_documents.d.ts} +0 -0
  286. /package/dist/{src/scripts/parse_akoma_ntoso_bill_raw.d.ts → scripts/add_links_to_html_document.d.ts} +0 -0
  287. /package/dist/{src/scripts/parse_assemblee_bill_raw.d.ts → scripts/add_links_to_legifrance.d.ts} +0 -0
  288. /package/dist/{src/scripts/profile_assemblee_document_parsing.d.ts → scripts/add_links_to_senat_comptes_rendus.d.ts} +0 -0
  289. /package/dist/{src/scripts/profile_canutes_bill.d.ts → scripts/add_links_to_senat_parsed_documents.d.ts} +0 -0
  290. /package/dist/{src/scripts → scripts}/add_positions_to_table_of_contents.d.ts +0 -0
  291. /package/dist/{src/scripts → scripts}/add_references_to_html_document.d.ts +0 -0
  292. /package/dist/{src/scripts/shared/assemblee_legislature.test.d.ts → scripts/alimenter_jurisprudence_pilote.d.ts} +0 -0
  293. /package/dist/{src/scripts/shared/checkpoint_cli_options.test.d.ts → scripts/associate_jorf_textes_with_assemblee_commissions.d.ts} +0 -0
  294. /package/dist/{src/scripts/simplified_html_bill_to_table_of_contents.d.ts → scripts/associate_jorf_textes_with_dossiers_legislatifs_assemblee.d.ts} +0 -0
  295. /package/dist/{src/scripts → scripts}/audit_doctrinal_references.d.ts +0 -0
  296. /package/dist/{src/scripts/simplify_word_html.d.ts → scripts/compare_legi_bills.d.ts} +0 -0
  297. /package/dist/{src/scripts → scripts}/configure.d.ts +0 -0
  298. /package/dist/{src/scripts/sync_postgres_assemblee_document_content.d.ts → scripts/configure_postgres_assemblee_document_triggers.d.ts} +0 -0
  299. /package/dist/{src/scripts/sync_postgres_senat_document_content.d.ts → scripts/configure_postgres_legi_resolver.d.ts} +0 -0
  300. /package/dist/{src/scripts/test_canutes_titles_cache.d.ts → scripts/configure_postgres_root_cid_index.d.ts} +0 -0
  301. /package/dist/{src/scripts/warm_canutes_text_titles_cache.d.ts → scripts/configure_postgres_senat_document_triggers.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,6 +178,7 @@ 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;
@@ -431,7 +432,7 @@ var h = class {
431
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] ?", {
432
433
  flags: "i",
433
434
  value: "n° "
434
- }), 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) => ({
435
436
  position: t.position(),
436
437
  text: t.text(),
437
438
  value: 1
@@ -439,11 +440,11 @@ var h = class {
439
440
  position: t.position(),
440
441
  text: t.text(),
441
442
  value: 1
442
- }) }), _([S(String.raw`\d+`), x(D, { default: "" })], { value: (e, t) => ({
443
+ }) }), _([S(String.raw`\d+`), x(O, { default: "" })], { value: (e, t) => ({
443
444
  position: t.position(),
444
445
  text: t.text(),
445
446
  value: parseInt(e[0])
446
- }) })), 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) => ({
447
448
  position: t.position(),
448
449
  text: t.text(),
449
450
  value: 0
@@ -451,11 +452,11 @@ var h = class {
451
452
  position: t.position(),
452
453
  text: t.text(),
453
454
  value: 1
454
- }) }), _([S(String.raw`[IVXLCDM]+`), x(D, { default: "" })], { value: (e, t) => ({
455
+ }) }), _([S(String.raw`[IVXLCDM]+`), x(O, { default: "" })], { value: (e, t) => ({
455
456
  position: t.position(),
456
457
  text: t.text(),
457
458
  value: d(e[0])
458
- }) })), he = g(S("dix", {
459
+ }) })), me = g(S("dix", {
459
460
  flags: "i",
460
461
  value: 10
461
462
  }), S("onze?", {
@@ -476,7 +477,7 @@ var h = class {
476
477
  }), S("seize?", {
477
478
  flags: "i",
478
479
  value: 16
479
- })), ge = g(S("vingt", {
480
+ })), he = g(S("vingt", {
480
481
  flags: "i",
481
482
  value: 20
482
483
  }), S("trente?", {
@@ -506,7 +507,7 @@ var h = class {
506
507
  }), S("nonante?", {
507
508
  flags: "i",
508
509
  value: 90
509
- })), _e = g(S("une?", {
510
+ })), ge = g(S("une?", {
510
511
  flags: "i",
511
512
  value: 1
512
513
  }), S("deux", {
@@ -533,8 +534,8 @@ var h = class {
533
534
  }), S("neu[fv]", {
534
535
  flags: "i",
535
536
  value: 9
536
- })), k = _([
537
- C("centaines", x([C("centaine", x([_e, se], {
537
+ })), _e = _([
538
+ C("centaines", x([C("centaine", x([ge, D], {
538
539
  default: 0,
539
540
  value: (e) => e[0]
540
541
  })), S("cent-", {
@@ -544,24 +545,24 @@ var h = class {
544
545
  default: 0,
545
546
  value: (e, { variables: t }) => 100 * t.centaine
546
547
  })),
547
- C("dizaines", x(ge, { default: 0 })),
548
+ C("dizaines", x(he, { default: 0 })),
548
549
  x(S("-(et-)?", { flags: "i" }), { default: "" }),
549
- C("dix", x(he, { default: 0 })),
550
- x(se, { default: "" }),
551
- C("unite", x(_e, { default: 0 }))
550
+ C("dix", x(me, { default: 0 })),
551
+ x(D, { default: "" }),
552
+ C("unite", x(ge, { default: 0 }))
552
553
  ], { value: (e, { variables: t }) => t.centaines + t.dizaines + t.dix + t.unite }), ve = g(S("1(er|ère)", {
553
554
  flags: "i",
554
555
  value: 1
555
556
  }), S("premi(er|ère)", {
556
557
  flags: "i",
557
558
  value: 1
558
- }), O, k), ye = g(S("premi(er|ère)", {
559
+ }), k, _e), ye = g(S("premi(er|ère)", {
559
560
  flags: "i",
560
561
  value: 1
561
562
  }), S("seconde?", {
562
563
  flags: "i",
563
564
  value: 2
564
- }), _([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À-ÖØ-öø-ÿ'’.-]+";
565
566
  function A(e, t) {
566
567
  let n = new h(e), r = t(n);
567
568
  if (n.remaining().trim().length > 0) return null;
@@ -580,7 +581,7 @@ function Ce(e) {
580
581
  if (!t) return null;
581
582
  let n = Array.from(new Set([t, Se(t)]));
582
583
  for (let e of n) {
583
- let t = A(e, be) ?? A(e, ve) ?? A(e, ue);
584
+ let t = A(e, be) ?? A(e, ve) ?? A(e, le);
584
585
  if (t !== null) return t;
585
586
  }
586
587
  return null;
@@ -709,7 +710,7 @@ var we = [
709
710
  position: t.position(),
710
711
  text: t.text().toLowerCase(),
711
712
  value: e
712
- }) }), 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`, {
713
714
  flags: "i",
714
715
  value: "01"
715
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`, {
@@ -890,8 +891,11 @@ var we = [
890
891
  })), F = S("ci ?- ?(après|avant|dessous|dessus)", {
891
892
  flags: "i",
892
893
  value: (e) => `ci-${e[1]}`
893
- }), 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;
894
- 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) {
895
899
  return (n) => {
896
900
  let r = [], i = n;
897
901
  for (let e of t) {
@@ -926,12 +930,12 @@ function Je(e) {
926
930
  };
927
931
  };
928
932
  }
929
- function* z(e) {
933
+ function* B(e) {
930
934
  if (e.transformations === void 0) yield e;
931
- else for (let t of e.transformations) yield* z(t);
935
+ else for (let t of e.transformations) yield* B(t);
932
936
  }
933
937
  function* Ye(e) {
934
- let t = [...z(e)].reverse(), n = { position: {
938
+ let t = [...B(e)].reverse(), n = { position: {
935
939
  start: 0,
936
940
  stop: 0
937
941
  } }, r = t.map((e) => {
@@ -988,7 +992,7 @@ function* Xe(e) {
988
992
  if (i + 1 < d) {
989
993
  let r = !1, o = n[i + 1];
990
994
  if (o.openingTag !== void 0 && o.outputIndex + o.outputLength < e.start) {
991
- let e = o.openingTag.match(L);
995
+ let e = o.openingTag.match(R);
992
996
  if (e !== null) {
993
997
  let t = e[1], n = t.toUpperCase();
994
998
  [
@@ -1013,7 +1017,7 @@ function* Xe(e) {
1013
1017
  if (i + 1 > f) {
1014
1018
  let a = !1, s = n[r], l = n[i + 1];
1015
1019
  if (s.openingTag !== void 0 && e.stop < l.outputIndex) {
1016
- let e = s.openingTag.match(L);
1020
+ let e = s.openingTag.match(R);
1017
1021
  if (e !== null) {
1018
1022
  let t = e[1], n = t.toUpperCase();
1019
1023
  [
@@ -1062,7 +1066,7 @@ function Ze(e) {
1062
1066
  }
1063
1067
  function Qe(e, t) {
1064
1068
  let n = t.map((e) => [e]);
1065
- 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);
1066
1070
  return n;
1067
1071
  }
1068
1072
  function $e(e, t) {
@@ -1175,7 +1179,7 @@ function at({ removeAWithHref: e } = {}) {
1175
1179
  sourceMap: a,
1176
1180
  title: s
1177
1181
  };
1178
- 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);
1179
1183
  if (p === null) {
1180
1184
  i.push(t.slice(n, l + 1).replace(/[\n\r]/g, " ")), n = l + 1;
1181
1185
  continue;
@@ -1269,7 +1273,7 @@ function at({ removeAWithHref: e } = {}) {
1269
1273
  "HEAD",
1270
1274
  "SCRIPT",
1271
1275
  "STYLE"
1272
- ].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({
1273
1277
  action: "ignore",
1274
1278
  inputIndex: c,
1275
1279
  name: h,
@@ -1393,7 +1397,7 @@ function ct(e) {
1393
1397
  [/<script.*?>.*?<\/script>/gis, ""],
1394
1398
  [/<style.*?>.*?<\/style>/gis, ""]
1395
1399
  ]) {
1396
- let i = B(e, r)(n);
1400
+ let i = V(e, r)(n);
1397
1401
  i.sourceMap.length !== 0 && (t.push(i), n = i.output);
1398
1402
  }
1399
1403
  return {
@@ -1403,7 +1407,7 @@ function ct(e) {
1403
1407
  transformations: t
1404
1408
  };
1405
1409
  }
1406
- function B(e, t) {
1410
+ function V(e, t) {
1407
1411
  return (n) => {
1408
1412
  let r = [], i = n.replaceAll(e, (e, ...n) => {
1409
1413
  let i = n.at(-2), a = t;
@@ -1423,14 +1427,14 @@ function B(e, t) {
1423
1427
  };
1424
1428
  };
1425
1429
  }
1426
- function V(e) {
1430
+ function H(e) {
1427
1431
  let t = [], n = e;
1428
1432
  for (let [e, r] of [
1429
1433
  [/(\sn°)([^\s])/gi, "$1 $2"],
1430
1434
  [/[\u200E\u200F]/g, ""],
1431
1435
  [/[\uF031-\uF039\uF041-\uF054\uF061-\uF06A]/g, ""]
1432
1436
  ]) {
1433
- let i = B(e, r)(n);
1437
+ let i = V(e, r)(n);
1434
1438
  i.sourceMap.length !== 0 && (t.push(i), n = i.output);
1435
1439
  }
1436
1440
  return {
@@ -1441,24 +1445,24 @@ function V(e) {
1441
1445
  };
1442
1446
  }
1443
1447
  function lt({ removeAWithHref: e } = {}) {
1444
- return (t) => R("Simplification du HTML", [
1448
+ return (t) => z("Simplification du HTML", [
1445
1449
  ot,
1446
1450
  st,
1447
1451
  ct,
1448
- V,
1449
- U,
1452
+ H,
1453
+ G,
1450
1454
  at({ removeAWithHref: e }),
1451
- H
1455
+ W
1452
1456
  ])(t);
1453
1457
  }
1454
- function ut(e) {
1455
- return R("Simplification du texte brut", [
1456
- V,
1457
- U,
1458
- H
1458
+ function U(e) {
1459
+ return z("Simplification du texte brut", [
1460
+ H,
1461
+ G,
1462
+ W
1459
1463
  ])(e);
1460
1464
  }
1461
- function H(e) {
1465
+ function W(e) {
1462
1466
  let t = [], n = e;
1463
1467
  for (let [e, r, i] of [
1464
1468
  [
@@ -1516,8 +1520,8 @@ function H(e) {
1516
1520
  transformations: t
1517
1521
  };
1518
1522
  }
1519
- function U(e) {
1520
- return R("Simplification des caractères unicodes", [
1523
+ function G(e) {
1524
+ return z("Simplification des caractères unicodes", [
1521
1525
  ["À", "À"],
1522
1526
  ["Â", "Â"],
1523
1527
  ["Ä", "Ä"],
@@ -1552,25 +1556,28 @@ function U(e) {
1552
1556
  [/[‐‑–·]/g, "-"],
1553
1557
  [/’/g, "'"],
1554
1558
  ["İ", "I"]
1555
- ].map(([e, t]) => B(e, t)))(e);
1559
+ ].map(([e, t]) => V(e, t)))(e);
1556
1560
  }
1557
1561
  //#endregion
1558
1562
  //#region src/lib/text_parsers/texts.ts
1559
- var W = {}, dt = {}, ft = {}, pt = {}, mt = {}, ht = {}, gt = 0;
1560
- function _t() {
1561
- return gt;
1563
+ var K = {}, q = {}, ut = {}, dt = {}, ft = {}, pt = {}, mt = 0;
1564
+ function ht() {
1565
+ return mt;
1562
1566
  }
1563
- function vt(e) {
1564
- gt++;
1567
+ function gt(e) {
1568
+ mt++;
1565
1569
  let t = e ?? {};
1566
- 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) ? {
1567
1571
  nature: t[0],
1568
1572
  title: t[1]
1569
- } : 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));
1570
1577
  }
1571
- function yt(e, t) {
1578
+ function vt(e, t) {
1572
1579
  let n = (e) => {
1573
- 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];
1574
1581
  return [
1575
1582
  +(r.length > 0),
1576
1583
  i?.fin ?? "",
@@ -1582,12 +1589,28 @@ function yt(e, t) {
1582
1589
  return i[0] - r[0] || i[1].localeCompare(r[1]) || i[2].localeCompare(r[2]) || e.localeCompare(t);
1583
1590
  });
1584
1591
  }
1585
- function G(e, t) {
1592
+ function J(e, t) {
1586
1593
  let n = e;
1587
1594
  for (let e of Object.keys(n)) delete n[e];
1588
1595
  Object.assign(e, t);
1589
1596
  }
1590
- 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", {
1591
1614
  flags: "i",
1592
1615
  value: (e) => {
1593
1616
  let t = e[0].toLowerCase();
@@ -1596,7 +1619,7 @@ var bt = (e) => Array.isArray(e) ? e : [e], K = v(g(S("Constitution", { value: "
1596
1619
  })), { value: (e) => ({
1597
1620
  nature: e,
1598
1621
  type: "texte"
1599
- }) }), 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] } : {
1600
1623
  ...e[1],
1601
1624
  num: e[0]
1602
1625
  } }));
@@ -1608,11 +1631,11 @@ S("décision( du Conseil constitutionnel)? (?<numero>[-/0-9A-Z]+ (QPC|DC|AN|D|EL
1608
1631
  type: "décision du Conseil constitutionnel"
1609
1632
  })
1610
1633
  });
1611
- var J = x(g(S(" de la République française", { flags: "i" }), S(" du pays", { flags: "i" })), { default: null }), St = g(_([
1612
- K,
1613
- 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,
1614
1637
  T,
1615
- q,
1638
+ X,
1616
1639
  S(".*")
1617
1640
  ], { value: (e) => {
1618
1641
  let t = {
@@ -1621,10 +1644,10 @@ var J = x(g(S(" de la République française", { flags: "i" }), S(" du pays", {
1621
1644
  }, n = e[4].trim() || void 0;
1622
1645
  return n !== void 0 && (t.titleRest = n), t;
1623
1646
  } }), _([
1624
- K,
1647
+ Y,
1625
1648
  S("[^()]+"),
1626
1649
  S(String.raw`\( ?`),
1627
- q,
1650
+ X,
1628
1651
  S(String.raw` ?\)`)
1629
1652
  ], { value: (e) => {
1630
1653
  let t = {
@@ -1641,14 +1664,14 @@ var J = x(g(S(" de la République française", { flags: "i" }), S(" du pays", {
1641
1664
  })), S(".+")], { value: (e) => {
1642
1665
  let t = { ...e[0] }, n = e[1].trim() || void 0;
1643
1666
  return n !== void 0 && (t.titleRest = n), t;
1644
- } })), Y = g(_([
1645
- K,
1646
- J,
1647
- x([T, q], {
1667
+ } })), Z = g(_([
1668
+ Y,
1669
+ St,
1670
+ x([T, X], {
1648
1671
  default: null,
1649
1672
  value: (e) => e[1]
1650
1673
  }),
1651
- x([T, v((e) => w(e.textTitlesInfos?.textCidByTitleRestWordsTree ?? pt)(e), { value: (e, t) => ({
1674
+ x([T, v((e) => w(e.textTitlesInfos?.textCidByTitleRestWordsTree ?? dt)(e), { value: (e, t) => ({
1652
1675
  ...e,
1653
1676
  titleRest: t.text()
1654
1677
  }) })], {
@@ -1657,35 +1680,35 @@ var J = x(g(S(" de la République française", { flags: "i" }), S(" du pays", {
1657
1680
  }),
1658
1681
  x([
1659
1682
  S(String.raw` ?\( ?`),
1660
- q,
1683
+ X,
1661
1684
  S(String.raw` ?\)`)
1662
1685
  ], {
1663
1686
  default: null,
1664
1687
  value: (e) => e[1]
1665
1688
  }),
1666
- x(We, { default: "" })
1689
+ x(I, { default: "" })
1667
1690
  ], { value: (e, t) => {
1668
1691
  let n = t.textTitlesInfos, r = (e) => {
1669
- if (!n) return W[e];
1692
+ if (!n) return K[e];
1670
1693
  let t = n.textInfosByCid[e];
1671
1694
  return t && {
1672
1695
  nature: t[0],
1673
1696
  title: t[1]
1674
1697
  };
1675
- }, i = n?.textsCidsByNatureAndDate ?? mt, a = n?.textsCidsByNatureAndNum ?? ht, { nature: o, type: s } = e[0], { date: c, num: l } = e[2] ?? e[4] ?? {}, { cid: u, titleRest: d } = e[3] ?? {};
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] ?? {};
1676
1699
  if (u === void 0 && c === void 0 && l === void 0) return;
1677
1700
  let f = /* @__PURE__ */ new Set();
1678
1701
  if (c !== void 0) {
1679
1702
  let e = i[o]?.[c];
1680
1703
  if (e !== void 0) {
1681
- let t = bt(e);
1704
+ let t = yt(e);
1682
1705
  f = f.size === 0 ? new Set(t) : f.intersection(new Set(t));
1683
1706
  }
1684
1707
  }
1685
1708
  if (l !== void 0) {
1686
1709
  let e = a[o]?.[l];
1687
1710
  if (e !== void 0) {
1688
- let t = bt(e);
1711
+ let t = yt(e);
1689
1712
  f = f.size === 0 ? new Set(t) : f.intersection(new Set(t));
1690
1713
  }
1691
1714
  }
@@ -1693,83 +1716,144 @@ var J = x(g(S(" de la République française", { flags: "i" }), S(" du pays", {
1693
1716
  let e = Array.isArray(u) ? u : [u];
1694
1717
  f = f.size === 0 ? new Set(e) : f.intersection(new Set(e.filter((e) => r(e)?.nature === o)));
1695
1718
  }
1696
- let p = f.size === 1 ? f.values().next().value : void 0, m = p === void 0 ? void 0 : r(p);
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);
1697
1720
  return Object.fromEntries(Object.entries({
1698
- cid: p,
1699
- candidateCids: o === "CODE" && f.size > 1 ? [...f] : void 0,
1721
+ cid: m,
1722
+ candidateCids: f.size > 1 ? [...f] : void 0,
1723
+ rectificatifCids: p?.rectificatifCids,
1700
1724
  date: c,
1701
- nature: o ?? m?.nature,
1725
+ nature: o ?? h?.nature,
1702
1726
  num: l,
1703
- title: m?.title,
1727
+ title: h?.title,
1704
1728
  titleRest: d,
1705
1729
  type: s
1706
1730
  }).filter(([, e]) => e !== void 0));
1707
- } }), _([(e) => w(e.textTitlesInfos?.textCidByOtherTitleWordsTree ?? ft)(e), x(We, { default: "" })], { value: (e, t) => {
1731
+ } }), _([(e) => w(e.textTitlesInfos?.textCidByOtherTitleWordsTree ?? ut)(e), x(I, { default: "" })], { value: (e, t) => {
1708
1732
  let { cid: n } = e[0], r = typeof n == "string" ? t.textTitlesInfos?.textInfosByCid[n] : void 0, i = t.textTitlesInfos ? r && {
1709
1733
  nature: r[0],
1710
1734
  title: r[1]
1711
- } : typeof n == "string" ? W[n] : void 0;
1735
+ } : typeof n == "string" ? K[n] : void 0;
1712
1736
  return Object.fromEntries(Object.entries({
1713
1737
  cid: n,
1714
1738
  ...i ?? {},
1715
1739
  type: "texte"
1716
1740
  }).filter(([, e]) => e !== void 0));
1717
- } })), Ct = _([
1718
- O,
1741
+ } })), wt = _([
1742
+ k,
1719
1743
  S("/"),
1720
- O,
1744
+ k,
1721
1745
  x(S(" ?/ ?(CEE?)", { value: (e) => e[1] }), { default: "" })
1722
- ], { 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] } : {
1723
1747
  ...e[1],
1724
1748
  num: e[0]
1725
- } }), 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)?", {
1726
1750
  flags: "i",
1727
1751
  value: (e) => {
1728
1752
  let t = e[0].toLowerCase();
1729
- 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");
1730
1754
  }
1731
1755
  }), x(S(String.raw` \((CE|CEE|EURATOM|UE(, EURATOM)?)\)`, { flags: "i" }), { default: "" })], { value: (e) => ({
1732
1756
  nature: e[0],
1733
1757
  legislation: "UE",
1734
1758
  type: "texte"
1735
- }) }), X = _([
1736
- Et,
1759
+ }) }), Q = _([
1760
+ Dt,
1737
1761
  T,
1738
- Tt
1762
+ Et
1739
1763
  ], { value: (e) => ({
1740
1764
  ...e[2],
1741
1765
  ...e[0]
1742
- }) }), Z = S("convention", {
1766
+ }) }), Ot = S("convention", {
1743
1767
  flags: "i",
1744
1768
  value: {
1745
1769
  nature: "CONVENTION",
1746
1770
  legislation: "international",
1747
1771
  type: "texte"
1748
1772
  }
1749
- }), Dt = _([x(Ve, { default: !1 }), g(_([
1750
- I,
1773
+ }), kt = _([x(Ve, { default: !1 }), g(_([
1774
+ L,
1751
1775
  T,
1752
- g(Y, X, Z, K, Et)
1776
+ g(Z, Q, Ot, Y, Dt)
1753
1777
  ], { value: (e) => ({
1754
1778
  ...e[2],
1755
1779
  ...e[0] === void 0 ? {} : e[0]
1756
- }) }), Y, X, Z)], { value: (e, t) => {
1780
+ }) }), Z, Q, Ot)], { value: (e, t) => {
1757
1781
  let n = {
1758
1782
  ...e[1],
1759
1783
  ...e[0] ? { ofTheSaid: !0 } : {},
1760
1784
  position: t.position()
1761
1785
  };
1762
1786
  return t.currentText = n, n;
1763
- } }), 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 {
1764
1848
  label;
1765
1849
  enabled;
1766
1850
  metrics = [];
1767
1851
  startedAt = performance.now();
1768
- constructor(e, t = kt()) {
1852
+ constructor(e, t = It()) {
1769
1853
  this.label = e, this.enabled = t;
1770
1854
  }
1771
1855
  add(e) {
1772
- 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)));
1773
1857
  }
1774
1858
  async time(e, t, n) {
1775
1859
  if (!this.enabled) return t();
@@ -1808,26 +1892,26 @@ var J = x(g(S(" de la République française", { flags: "i" }), S(" du pays", {
1808
1892
  }, null, 2));
1809
1893
  }
1810
1894
  };
1811
- function kt() {
1895
+ function It() {
1812
1896
  let e = globalThis.process?.env;
1813
1897
  return e?.PJL_BUILD_TIMINGS === "1" || e?.PJL_BUILD_TIMINGS === "true";
1814
1898
  }
1815
- function At() {
1899
+ function Lt() {
1816
1900
  let e = globalThis.process?.env;
1817
1901
  return e?.PJL_BUILD_TIMINGS_PROGRESS === "1" || e?.PJL_BUILD_TIMINGS_PROGRESS === "true";
1818
1902
  }
1819
1903
  //#endregion
1820
1904
  //#region src/lib/textes.ts
1821
- 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) => {
1822
1906
  let t = e.META.META_SPEC.META_TEXTE_VERSION.DATE_DEBUT;
1823
1907
  return t === void 0 || ["2222-02-22", "2999-01-01"].includes(t) ? e.META.META_SPEC.META_TEXTE_CHRONICLE.DATE_PUBLI : t;
1824
- }, Mt = (e) => {
1908
+ }, Bt = (e) => {
1825
1909
  let t = e.META.META_SPEC.META_TEXTE_CHRONICLE.DATE_TEXTE;
1826
1910
  if (!["2222-02-22", "2999-01-01"].includes(t)) return t;
1827
1911
  let n = e.META.META_SPEC.META_TEXTE_VERSION.DATE_DEBUT;
1828
1912
  if (n !== void 0 && !["2222-02-22", "2999-01-01"].includes(n)) return n;
1829
1913
  throw Error(`Missing date signature in text ${e.META.META_COMMUN.ID}`);
1830
- }, Nt = (e) => (t, n) => {
1914
+ }, Vt = (e) => (t, n) => {
1831
1915
  let r = e(t), i = e(n);
1832
1916
  if (r !== i) return r.localeCompare(i);
1833
1917
  let a = t.META.META_COMMUN, o = a.ORIGINE, s = n.META.META_COMMUN, c = s.ORIGINE;
@@ -1836,30 +1920,30 @@ var Q = (e) => e?.replace(/\n/g, " ").replace(/ {2,}/g, " ").replace(/ \(\d+\)\.
1836
1920
  if (c === "JORF") return 1;
1837
1921
  }
1838
1922
  throw Error(`TODO: Unable to sort texts ${a.ID} & ${s.ID} by date.`);
1839
- }, Pt = "current";
1840
- function Ft(e, t, n, r) {
1923
+ }, Ht = "current";
1924
+ function Ut(e, t, n, r) {
1841
1925
  n != null && ((e[t] ??= {})[n] ??= []).push(r);
1842
1926
  }
1843
- function It(e) {
1844
- return ut(e).output;
1927
+ function Wt(e) {
1928
+ return U(e).output;
1845
1929
  }
1846
- function Lt(e, t, n) {
1847
- 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;
1848
1932
  for (let e of r) i = i[e] ??= {};
1849
1933
  i.cid === void 0 ? i.cid = n : Array.isArray(i.cid) ? i.cid.push(n) : i.cid = [i.cid, n];
1850
1934
  }
1851
- async function Rt(e, t = {}) {
1852
- Bt(await Ht(e, t));
1935
+ async function Kt(e, t = {}) {
1936
+ Jt(await Xt(e, t));
1853
1937
  }
1854
- var zt = /* @__PURE__ */ new WeakMap();
1855
- function Bt(e) {
1856
- vt(e), zt.set(e, _t());
1938
+ var qt = /* @__PURE__ */ new WeakMap();
1939
+ function Jt(e) {
1940
+ gt(e), qt.set(e, ht());
1857
1941
  }
1858
- function Vt(e) {
1859
- return zt.get(e) === _t();
1942
+ function Yt(e) {
1943
+ return qt.get(e) === ht();
1860
1944
  }
1861
- async function Ht(e, { onProgress: t } = {}) {
1862
- 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 = {
1863
1947
  addOtherTitleWordsTreeMs: 0,
1864
1948
  addTitleRestWordsTreeMs: 0,
1865
1949
  cleanTitleMs: 0,
@@ -1890,7 +1974,7 @@ async function Ht(e, { onProgress: t } = {}) {
1890
1974
  count: n,
1891
1975
  phase: "parse:progress"
1892
1976
  }), await new Promise((e) => setTimeout(e, 0)));
1893
- let e = d("cleanTitleMs", () => Q(v));
1977
+ let e = d("cleanTitleMs", () => Rt(v));
1894
1978
  if ([
1895
1979
  "code",
1896
1980
  "décret",
@@ -1932,7 +2016,7 @@ async function Ht(e, { onProgress: t } = {}) {
1932
2016
  }
1933
2017
  }), u.otherTitleCount += y.size;
1934
2018
  for (let e of b) {
1935
- let t = d("parseTitleMs", () => St(new h(It(e))));
2019
+ let t = d("parseTitleMs", () => Ct(new h(Wt(e))));
1936
2020
  if (t === void 0 && g === "DECRET" && (u.fallbackDecretTitleCount++, t = {
1937
2021
  date: m ?? void 0,
1938
2022
  nature: g,
@@ -1941,16 +2025,16 @@ async function Ht(e, { onProgress: t } = {}) {
1941
2025
  type: "texte"
1942
2026
  }), t === void 0) throw Error(`Unparsable title of ${g} n° ${_ ?? ""} du ${m ?? ""} (${l}): ${e}`);
1943
2027
  if (u.parsedTitleCount++, d("indexNatureDateNumMs", () => {
1944
- 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);
1945
2029
  }), t.titleRest !== void 0) {
1946
2030
  let { titleRest: e } = t;
1947
2031
  u.titleRestCount++, d("addTitleRestWordsTreeMs", () => {
1948
- Lt(i, e, l);
2032
+ Gt(i, e, l);
1949
2033
  });
1950
2034
  }
1951
2035
  }
1952
2036
  for (let e of y) d("addOtherTitleWordsTreeMs", () => {
1953
- Lt(r, e, l);
2037
+ Gt(r, e, l);
1954
2038
  });
1955
2039
  }
1956
2040
  t?.({
@@ -1962,8 +2046,8 @@ async function Ht(e, { onProgress: t } = {}) {
1962
2046
  textCidByOtherTitleWordsTree: $(r),
1963
2047
  textCidByTitleRestWordsTree: $(i),
1964
2048
  textInfosByCid: a,
1965
- textsCidsByNatureAndDate: Ut(s),
1966
- textsCidsByNatureAndNum: Ut(c)
2049
+ textsCidsByNatureAndDate: Zt(s),
2050
+ textsCidsByNatureAndNum: Zt(c)
1967
2051
  }));
1968
2052
  t?.({ phase: "compact:done" });
1969
2053
  for (let [e, t] of Object.entries(l)) n.add({
@@ -1975,7 +2059,7 @@ async function Ht(e, { onProgress: t } = {}) {
1975
2059
  ...u
1976
2060
  }), f;
1977
2061
  }
1978
- function Ut(e) {
2062
+ function Zt(e) {
1979
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]))]));
1980
2064
  }
1981
2065
  function $(e) {
@@ -1993,8 +2077,113 @@ function $(e) {
1993
2077
  return t;
1994
2078
  }
1995
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
1996
2173
  //#region src/lib/legi/resolver.ts
1997
- 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
+ }
1998
2187
  getArticleHistoryInfo(e) {
1999
2188
  return Promise.resolve(void 0);
2000
2189
  }
@@ -2006,4 +2195,4 @@ var Wt = class {
2006
2195
  }
2007
2196
  };
2008
2197
  //#endregion
2009
- 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 };